Embedded Linux/Microcontroller Project

[an error occurred while processing this directive]

Index of /uclinux.org/pub/uCsimm/Rt-port

      Name                    Last modified       Size  Description

[DIR] Parent Directory 23-Jun-2000 12:48 - [TXT] RTL0.9J-uClinux.diff 12-Jun-2000 14:18 139k [TXT] patch1.diff 12-Jun-2000 14:18 2k [TXT] patch2.diff 12-Jun-2000 14:18 1k [TXT] patch3.diff 12-Jun-2000 14:18 1k [TXT] sampler.c 12-Jun-2000 14:18 2k

NMT-RTL release 0.9J 
PORT BY: Kwon Seok Kuon. kwonsk@mutech.co.kr Feb 10 2000.

This is a patch of Real Time support to uClinux-2.0.38.  And my note.
Thansk to Bernhard Kuhn (RTECv0.4) and NMT-RT peoples

I've used NMT-RTL release 0.9J as a base just because my desktop linix is
version 2.0.36 with RTL release 0.9J  I made this patch against  fresh installed
uClinux 2.0.38. If somebody need v1.0, well, i'll try. After seeing msg from
Bernhard and Stuart, i feel that there might be small changes.  because upper
layer (rt_sche.crt_time.crt_fifo.c)was not touched more than 10 lines (i'm not
sure, i didn't count it, maybe more than 20 lines? i don't know right now :-) )

Diffrences from NMT-RTL's are

1. rename moduel init/cleanup to xxx_init/xxx_cleanup and call this at
appropriate place. rt_time_init, rtl_scheduler_init at main.c and rtl_fifo_init
at /drivers/char/mem.c -> this is because rt-fifo is just another chardev.
and all chardev are initialized at there.

2. add call to rtl_application_init at main.c when registering all chardev
driver(rt-fifo) was done. -> this is because rt application might want to open

3. remove I8253_make_periodic functions (not make_task_periodic).  -> this
is because i386 plaform could use two timers (one channel for oneshot, another
for periodic) but EZ328 has just one timer. Actually  there are no reference to
this function in the release 0.9J, nobody calls it ( i think)  and periodic task
just needs oneshot timer.

4. remove I8253_disable_speaker/enable_speaker. We don't have speaker :-)

5. move  RTL module's source tree to the arch/m68knommu/kernel/rtl

6. move  RTL module's header files to include/rtl

7. As you know hardware specific part (interrupt controller and timer usage)

8. Makefile for rt-application is at linux/arch/m68knommu/kernel/rtl/Makefile.
You might edit this file for your own applications.

Some code improvement for speed is possible.

1. I just used stupid for loop for hooking RTaction this could be changed
to like that of M68EZ328_do_irq.

2. I've catched all interrupt at one handler, this could be changed to one
 handler for each interrupt level (0-7, 6?)  Actually, this MUST be done
because if a RT task which request interrupt for his own use, we must allow
rt-preemption with correct interrupt priority level.  I'll do this right now.

 3. Need many real testing of cource and timing analysis if somebody want

Examples compilation note
before try to make frank example, make a symbolic link (for include search)
like this
        ln -sf /opt/uClinux/linux/include/rtl

RTL0.9J-uClinux.diff -- Patch files against uClinux-2.0.38
patch1.diff -- bugfix in entry.S (misuse of bclrl instruction)
patch2.diff -- speed improvement in process_rt() function.

Have a good time.
Kwon Seok Kuon. kwonsk@mutech.co.kr Feb 10 2000.

Copyright © 1998 - 2002 D. Jeff Dionne and Michael Durrant Copyright © 2002 - 2018 Arcturus Networks Inc.
μClinux, uCsimm, μCsimm, uCdimm, μCdimm, Arcturus and the logos versions are Trademarks of Arcturus Networks Inc.