[rtl] ANNOUNCMENT 3ed Real Time Linux Workshop

2001-10-22 Thread Der Herr Hofrat


   Third Real-Time Linux Workshop
 
   26-29.11.2001
  Crowne Plaza in Milan San Donato
   Milano, Italy

As followup to the meetings of developers and users of real-time linux 
in Vienna and Orlando, the Third Real Time Linux Workshop is held in 
the framework of the Embedded Linux Expo  Conference and the Real-Time
 Embedded Computing Conference, Summit Milan, organized by ACTIVE 
Exhibitions Europe. This Summit will offer two days of tutorials, four 
tracks of conferences over two days, interesting keynotes, exhibitions 
and more. The contribution of the Real Time Linux Foundation to this 
outstanding event will be:

   - technical keynotes,
   - kick start sessions,
   - paper presentations,
   - work in progress reports,
   - real time linux tutorials,

For any further information take a look at the Real-Time Linux Foundation, 
http://www.realtimelinuxfoundation.org/, by following Contents-Events-
Real Time Linux Workshop 2001. For all events of the summit, organisational 
details and registration, please go to ACTIVE Exhibitions Europe's Summit 
Milan page, http://www.rtcgroup.com/summitmilan/invitation.html.
-- [rtl] ---
To unsubscribe:
echo unsubscribe rtl | mail [EMAIL PROTECTED] OR
echo unsubscribe rtl Your_email | mail [EMAIL PROTECTED]
--
For more information on Real-Time Linux see:
http://www.rtlinux.org/




Re: [rtl] Intel Hardware Performance Counters

2001-10-22 Thread Karim Yaghmour


Check this out:
http://oprofile.sourceforge.net/

This provides for hardware counter manipulation.

Karim

Chunky Kibbles wrote:
 
 On Sat, Oct 20, 2001 at 12:20:17AM -0400, Christopher D. Carothers wrote:
Gary -- use the rdtsc instruction which stands for read
  timestamp counter. This instruction will return the number of cycles the
  processor has been up since it was last rebooted. It is 64 bits so the
  processor will turn to slag before it overflows.
 
Below is the inline assembly language that will compile under gcc.
 
  __inline__ unsigned long long int rdtsc()
  {
unsigned long long int x;
__asm__ volatile (.byte 0x0f, 0x31 : =A (x));
return x;
  }
 
Note, that to get the seconds you need to divide by the speed of
  the processor. Inside the kernel you can get the speed directly by using
  the cpu_khz variable and multiple by 1000.0.
 
Final word, on SMP boxes each processor will have it own counter
  register and because of clock drift (and slightly offset boot times) these
  clocks will vary -- however, my experience is that for high-end/high-speed
  systems this amount is not that noticeable -- but they will differ...
 
Hope that helps,
Chris
 
 Fabulous. I'm using it to find out exactly how long a given RT task
 takes by adding these bits to the schedulers.
 
 But I also have to ask. There are other counters, there, that I've
 read about. There are 67 things that they can count, and they can do
 it at no cost to the system.
 
 eg, cache hitsmisses, cycles since counter was started, etc, etc.
 
 I'm also interested in these as a more general thing. The number of
 ticks is all well and good, but I'd also like to know other stuff.
 
 Thank-you very much,
 Gary (-;
 
 PS It's getting added later today (=
 -- [rtl] ---
 To unsubscribe:
 echo unsubscribe rtl | mail [EMAIL PROTECTED] OR
 echo unsubscribe rtl Your_email | mail [EMAIL PROTECTED]
 --
 For more information on Real-Time Linux see:
 http://www.rtlinux.org/

-- 
===
 Karim Yaghmour
   [EMAIL PROTECTED]
  Embedded and Real-Time Linux Expert
===
-- [rtl] ---
To unsubscribe:
echo unsubscribe rtl | mail [EMAIL PROTECTED] OR
echo unsubscribe rtl Your_email | mail [EMAIL PROTECTED]
--
For more information on Real-Time Linux see:
http://www.rtlinux.org/




[rtl] Error with sem_getvalue function

2001-10-22 Thread David Hamilton

This is a bug report for fsmlabs regarding RTLinux3.1 (at least)

The semaphore function ..

int sem_getvalue(sem_t* sem, int* sval)

is supposed to write the semaphore value to the int pointed to by sval, and
return an error code.
Instead, it doesn't write anything to sval, and returns the semaphore value.

I've looked at the code in /schedulers/rtl_sema.c
and the function is given by

int sem_getvalue(sem_t* sem, int* sval)
{
return sem-value;
}

which is incorrect.

David
-- [rtl] ---
To unsubscribe:
echo unsubscribe rtl | mail [EMAIL PROTECTED] OR
echo unsubscribe rtl Your_email | mail [EMAIL PROTECTED]
--
For more information on Real-Time Linux see:
http://www.rtlinux.org/




[rtl] Problem using multiple serial ports

2001-10-22 Thread Michael C. Riedl

Hi there!

Using dev/ttyS0 in my program works perfect, but I would like to use
/dev/ttyS1, /dev/ttyS2 and /dev/ttyS3 as well. To avoid any trouble, I
assigned a different interrupt to each of the four serial pots:

ttyS0  4
ttyS1  3
ttyS2  5
ttyS3  7

and I used the usual i/o-addresses. All is set using setserial.
Then I set uart=none for all four serial ports.

Now what is the proper call of rt_com_setup() for these four?
I thought the first parameter has to be 0, 1, 2 and 3 according
to the digit in ttyS*. Is this correct?

The hardware is definitely set up alright, as the board I am using can
be jumpered very conveniently to any setting desired. I also tested it
in Win98. There COM1 to COM3 worked perfect, just COM4 had a problem,
because Win98 refused to use Interrupt 7 for anything but a printer.

What do you think the problem might be? How can I use more than one
serial port? All I can tell is that rt_com_setup() returns -1.

My system:
Pentuim 75, 32 MB RAM
RTLinux 2.2.18
RT_Com 3.0

Thank you very much in advance for helping!

Michael C. Riedl
-- [rtl] ---
To unsubscribe:
echo unsubscribe rtl | mail [EMAIL PROTECTED] OR
echo unsubscribe rtl Your_email | mail [EMAIL PROTECTED]
--
For more information on Real-Time Linux see:
http://www.rtlinux.org/




[rtl] kernel-module version mismatch

2001-10-22 Thread Michael Nielsen

Hi !
I am new to rt-linux and also new to writing modules.
I first have installed mandrake 8.0 (kernel 2.4.3-20mdk) and thereafter i installed 
kernel 2.4.4 and after that i installed rtlinux v3.1 (kernel 2.4.4-rtl). I can run 
many of the examples from rt-linux without any problems what so ever.
I have written a very little and simple module under mandrake 8.0, which work fine 
there.
I now wanted to try my module under rt-linux (even though i haven't used any of 
rt-function-calls in rt-linux and the module isn't realtime).
I compile my sourcefile (ioex.c) whith gcc -c ioex.c, then i want to load the module 
with insmod ioex.o and then i get following statement :

ioex.o: kernel-module version mismatch
   ioex.o was compiled for kernel version 2.4.3-20mdk (my mandrake 8.0)
   while this kernel is version 2.4.4-rtl

I think that it must be gcc that is using some files from 2.4.3-20mdk, instead of some 
from 2.4.4-rtl.
Can someone please help me with my problem (how to tell gcc to use the rigth files)?
I can load the module with insmod -f ioex.o but i would be glad to load it without 
forcing.

Thanks in advance
Michael


-- [rtl] ---
To unsubscribe:
echo unsubscribe rtl | mail [EMAIL PROTECTED] OR
echo unsubscribe rtl Your_email | mail [EMAIL PROTECTED]
--
For more information on Real-Time Linux see:
http://www.rtlinux.org/




Re: [rtl] kernel-module version mismatch

2001-10-22 Thread Der Herr Hofrat

 Hi !
 I am new to rt-linux and also new to writing modules.
 I first have installed mandrake 8.0 (kernel 2.4.3-20mdk) and thereafter i installed 
kernel 2.4.4 and after that i installed rtlinux v3.1 (kernel 2.4.4-rtl). I can run 
many of the examples from rt-linux without any problems what so ever.
 I have written a very little and simple module under mandrake 8.0, which work fine 
there.
 I now wanted to try my module under rt-linux (even though i haven't used any of 
rt-function-calls in rt-linux and the module isn't realtime).
 I compile my sourcefile (ioex.c) whith gcc -c ioex.c, then i want to load the 
module with insmod ioex.o and then i get following statement :
 
 ioex.o: kernel-module version mismatch
ioex.o was compiled for kernel version 2.4.3-20mdk (my mandrake 8.0)
while this kernel is version 2.4.4-rtl
 
 I think that it must be gcc that is using some files from 2.4.3-20mdk, instead of 
some from 2.4.4-rtl.
 Can someone please help me with my problem (how to tell gcc to use the rigth files)?
 I can load the module with insmod -f ioex.o but i would be glad to load it without 
forcing.

that happens when you have the link in /usr/include/linux pointing to the wrong
kernel version - normaly 

/usr/include/linux - ../src/linux/include/linux
/usr/include/asm - ../src/linux/include/asm

so you need to make shure that these links are corect  AND that in /usr/src/
linux should be a link to the corect linux tree (make shure its not a directory)

linux - linux-2.4.4-rtl (or how ever you named the directory)

cd linux and atleast run make menuconfig so that modversion.h is built.


then go to the rtlinux-3.X/directory and 

ln -s /usr/src/linux linux (now rtlinux can find the corect kernel tree)

make distclean
make config
make dep
make 

now your modules should be for your 2.4.4-rtl kernel.

hofrat
-- [rtl] ---
To unsubscribe:
echo unsubscribe rtl | mail [EMAIL PROTECTED] OR
echo unsubscribe rtl Your_email | mail [EMAIL PROTECTED]
--
For more information on Real-Time Linux see:
http://www.rtlinux.org/




[rtl] modified rt_com

2001-10-22 Thread Will Shackleford

Attached is a modified form of the rt_com stuff that includes a number
of changes that we needed but perhaps someone else will find them useful
also.

It was based on the rt_com that came with rtlinux-3.0 that I downloaded in
February so it is possible the latest already includes some/all of these
changes or conflicting ones. I would have checked the latest
but the number of FTP users is maxed out every time I try to download from the
main FTP site and none of the mirrors appear to be up to date.

Changes:

rt_com_write returns the number of characters written rather than void.
The number of characters written could be less than the value the user passed
to rt_com_write because the buffer could be full and it now checks for the buffer
being full.

Changing the maximum number of serial ports connected to should now involve only
changing one #define.

The default value is 8.

The IOPORT and IRQ numbers to use can be set with module parameters.

i.e.

/sbin/insmod rt_com.o IOPORT=0x3F8,0x2F8 IRQ=4,3 NUM_SERIAL_PORTS=2

The actual number of serial ports doesn't have to equal the compiled in maximum.

Multiple serial ports can be placed on the same irq.

( With the Hostess 550 8 port serial card we had no choice but to put them all on the
same irq.)

To build the driver;

untar

edit the Makefile so that the first include will  find the directory where rtl.mk is 
located
and run
make rt_com.o



If you have any comments or questions for me please send them offlist to
[EMAIL PROTECTED] , since I only follow this list very intermittantly.

--Will





 new_rt_com.tar.gz


Re: [rtl] communication between modules

2001-10-22 Thread Norm Dresner

No reason to apologize, your English is almost perfect.

Anyway, there may be other means, but here are some:

1. Global variables.  You can export symbols in the module
that's loaded first and have each of the modules put into
these variables what it wishes to share and take out what
it needs from the others.

2. Simple Shared Memory.  You can reserve some RAM at the
top of memory to use as your own private shared memory
that Linux won't even see.  You can decide on the structure
you want for this area and AFAIK the first module to be
loaded has to mmap() this memory to get a virtual address
to use.

3. There's also a more complex shared memory driver
available for RTLinux which I've never used because my
needs aren't that complex.

Norm

- Original Message -
From: Massimiliano Cialdi [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Monday, October 22, 2001 3:13 PM
Subject: [rtl] communication between modules


 how a module can share some data with other modules?

 thanks and sorry for my english.
 --
 Massimiliano Cialdi
 [EMAIL PROTECTED]
 [EMAIL PROTECTED]
 -- [rtl] ---
 To unsubscribe:
 echo unsubscribe rtl | mail [EMAIL PROTECTED] OR
 echo unsubscribe rtl Your_email | mail
[EMAIL PROTECTED]
 --
 For more information on Real-Time Linux see:
 http://www.rtlinux.org/


-- [rtl] ---
To unsubscribe:
echo unsubscribe rtl | mail [EMAIL PROTECTED] OR
echo unsubscribe rtl Your_email | mail [EMAIL PROTECTED]
--
For more information on Real-Time Linux see:
http://www.rtlinux.org/




[rtl] disk write performance question

2001-10-22 Thread Loren Frank

Hi all. This is a bit peripheral to rtlinux, but hopefully someone here can
help me out.

I have written a data acquistion application using an rtlinux module,
and, while everything works well when I am not saving data to disk, during disk
writes I get pauses in the display. This is, as far as I understand it, a
result of disk write buffering, and I'm wondering if there is anything I can do
about it. 

I've tried fflush-ing the file and using setvbuf to set the file to
non-buffered mode, but neither of those had any effect on the pauses.  During
the pauses the cpu usage goes up from about 50% to 100% (most of it dedicated
to the system).

Is there any way for me to force a larger number of small disk writes so I can
minimize the gaps in the display?

Thanks,

Loren

-- [rtl] ---
To unsubscribe:
echo unsubscribe rtl | mail [EMAIL PROTECTED] OR
echo unsubscribe rtl Your_email | mail [EMAIL PROTECTED]
--
For more information on Real-Time Linux see:
http://www.rtlinux.org/




Re: [rtl] Error with sem_getvalue function

2001-10-22 Thread Victor Yodaiken

Thanks.

On Mon, Oct 22, 2001 at 02:13:13PM +0100, David Hamilton wrote:
 This is a bug report for fsmlabs regarding RTLinux3.1 (at least)
 
 The semaphore function ..
 
 int sem_getvalue(sem_t* sem, int* sval)
 
 is supposed to write the semaphore value to the int pointed to by sval, and
 return an error code.
 Instead, it doesn't write anything to sval, and returns the semaphore value.
 
 I've looked at the code in /schedulers/rtl_sema.c
 and the function is given by
 
 int sem_getvalue(sem_t* sem, int* sval)
 {
   return sem-value;
 }
 
 which is incorrect.
 
 David
 -- [rtl] ---
 To unsubscribe:
 echo unsubscribe rtl | mail [EMAIL PROTECTED] OR
 echo unsubscribe rtl Your_email | mail [EMAIL PROTECTED]
 --
 For more information on Real-Time Linux see:
 http://www.rtlinux.org/
-- [rtl] ---
To unsubscribe:
echo unsubscribe rtl | mail [EMAIL PROTECTED] OR
echo unsubscribe rtl Your_email | mail [EMAIL PROTECTED]
--
For more information on Real-Time Linux see:
http://www.rtlinux.org/