📄 read.me
字号:
uC/OS-II for the Texas Instruments TMS320C6201 DSP
Small data memory model
Port by : Kenneth Blake (ken@oberon.se, www.oberon.se)
June, 1999
Note the Code is WITHOUT ANY WARRANTY whatever; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
SOFTWARE IMPLEMENTATION
I have put the mailboxes,semaphores and queues within a structure named
KERNEL. I have done that because the TI debugger is good when
displaying a structure and the internals of it.
I have deleted error handling code as this clutters the code. (You should
have an error handling task that takes care of errors.)
The Texas Instruments C compiler version 3 is used with the following
switches:
cl6x -b -pdv -g -ss -s -q -mw -mi50 -o3 -on2 -os -x2 -fs..\work *.asm ..\source\OS_CPU_a.asm
*.c -fr..\work -z link.cmd -l rts6201.lib -o kernel.out
And by executing the bat file a.bat You get a complete compilation of all files
and a resulting "kernel.out" file.
DIRECTORY STRUCTURE
SOURCE-->uC/OS source code files
UCOS_II.C
OS_CORE.C
OS_MBOX.C
OS_MEM.C
OS_Q.C
OS_SEM.C
OS_TASK.C
OS_TIME.C
TIC6201-->DOC
read.me
-->SOURCE TMSC6201 port files
OS_CPU.ASM
OS_CPU.C
OS_CPU.H
-->TEST
An example of a working uC/OS Kernel.
with a "batfile" a.bat that makes all.
-->Work
A directory where the compiler has its
temporary files.
INTERRUPT HANDLERS
The KERNEL interrupt handlers sends an event to a task signaling that the
event has occured. This is a neat way for enabling the system to quickly respond
to interrupts and resume its priority event driven behaviour again.
SYSTEM TIMER
The timer executes with 1 millisec. The time can be lower as the
kernel's cpu load is very low.
TASK SWITCHING TIME
Lower than one microsecond. Normally 500 nanoseconds.
DEVELOPMENT SYSTEM
The code is made and tested with the Texas Instruments TMS320C6201 EVM board
running at 133 MHz.
To initialize the EVM board You should initialize it with : Evm6xrst.exe -i1 -m0
"LINK.CMD"
The linker command file puts the program code within the internal memory of the DSP.
I have divided the internal data memory so that the variables have the first 32 kbytes and
the other is used for some structures and task stacks.
"INIT.CMD"
A file for the debugger, The windows 95/98 icon property may look like :
C:\evm6x\Bin\evm6x.exe -n cpu_a -x -p 0 -t init.cmd
ADDITIONAL INFORMATION :
The implementation of the OS_ENTER_CRITICAL() OS_EXIT_CRITICAL() and the
task switching allows for special interrupt drivers to be executed autonomous
of the Uc/OS Kernel. There is sometime a need to have software for a fast
interrupt driven hardware part requiring a short latency time.
This is made possible by selecting which interrupts that are always allowed
and which interrupts that are not allowed to execute when the kernel is
executed.
If You put the Uc/OS source code within the directory that Your
application is, change "a.bat", it is possible for the debugger to
single step through all of the internal Uc/OS code also.
Have fun
Kenneth Blake
Oberon Data och Elektronik AB
Box 242
SE177 24 Jarfalla
Sweden
+46 8 580 33000
ken@oberon.se
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -