文档介绍:2011级课程设计说明书
S3C2410处理器的uc/OS - I I系统移植
分组号:__9
学生姓名: 张超
学 号: **********
学生姓名: 何开顺
学 号: **********
学生姓名: 郭浩 器可以产生 可重入代码,并且支持内嵌汇编,
C环境中可任意的进行开关中断操作。综上所述uC/OS II 完全可以移植到S3C2410上运行。
主体移植过程
4. 1设置与处理器及编译器相关的代码
不同的编译器会使用不同的字节长度来表示同一数据类型,所以要定义一系列数据类型 以确保移植的正确性。下面是uC/OS II定义的一部分数据类型。
typedef unsigned char BOOLEAN;
typedef unsigned char INT8U; /*无符号 8 位*/
typedef signed char INT16S; /*带符号 8位*/
typedef unsigned int INT16U; /*无符号 16位*/
typedef signed int INT16S; /*带符号 16位*/
typedef unsigned long INT32U; /*无符号 32 位数*/
typedef signed long INT32S; /*带符号 32 位数*/
typedef float FP32; /*单精度浮点数*/
typedef double FP64; /*双精度浮点数*/
typedef unsigned int OS_STK; /*堆栈入口宽度*/
typedef unsigned int OS_CPU_SR; /*寄存器宽度*/
uC/OS II需要先关中断再访问临界区的代码,并且在访问完后重新允许中断。uC/OS II 定义了两个宏来禁止和允许中断:OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL(),本移植实 现这两个宏的汇编代码。
^define OS_ENTER_CRITICAL()(cpu_sr=OSCPUSaveSR())/*Disable interrupts*/
#define OS_EXIT_CRITICAL()(OSCPURestoreSR(cpu_sr))/^Enable interrupts*/
EXPORT OSCPUSaveSR
OSCPUSaveSR
mrs rl, cpsr
mov rO, rl
orr rl, rl, #0xc0
msr cpsr_cxsf, rl
mov pc, Ir
EXPORT OSCPURestoreSR
OSCPURestoreSR
msr cpsr_cxsf, rO
mov pc, Ir
OSTaskStklnit()
OSTaskCreateHook()
OSTaskDelHook()
OSTaskSwHook()
OSTaskStatHook()
OSTimeTickHookO
实际需要修改的只有OSTaskStklnit ()函数,其他五个函数需要声明,但不一定有实际 内容。这五个函数都是用户定义的,。如果需要使用这些 函数,可以将文件O