新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > uC/OSII移植步骤

uC/OSII移植步骤

作者: 时间:2016-10-08 来源:网络 收藏
1.μC/OS-Ⅱ概述
μC/OS-Ⅱ在特定处理器上的移植大部分工作集中在多任务切换的实现上,这部分代码主要用来保存和恢复处理器的现场。但许多操作如读/写寄存器不能用C语言而只能用汇编来实现。
将μC/OS-Ⅱ移植到ARM处理器上,只需要修改与处理器相关的3个文件: OS_CPU.H, OS_CPU_C.C, OS_CPU_A.ASM 。
2.OS_CPU.H的移植
1)数据类型的定义
typedefunsignedcharBOOLEAN;
typedefunsignedcharINT8U;
typedefsignedcharINT8S;
typedefunsignedshortINT16U;
typedefsignedshortINT16S;
typedefunsignedintINT32U;
typedefsignedintINT32S;
typedeffloatFP32;
typedefdoubleFP64;
typedefunsignedintOS_STK;
typedefunsignedintOS_CPU_SR;
2)ARM处理器相关的宏定义
#defineOS_ENTER_CRITICAL()ARMDisableINT
#defineOS_EXIT_CRITICAL()ARMEnableINT
3)堆栈增长方向的定义
#defineOS_STK_GROWTH1
3.OS_CPU_C.C的移植
1)任务椎栈初始化
任务椎栈初始化函数由OSTaskCreat()或OSTaskCreatEXT()调用,用来初始化任务并返回新的堆栈指针STK.初始状态的堆栈模拟发生一次中断后的堆栈结构,在ARM体系结构下,任务堆栈空间由高到低将依次保存着PC,LR,R12…R0,CPSR,SPSR。堆栈初始化结束后,OSTaskSTKInit()返回新的堆栈栈顶指针OSTaskCreat()或OSTaskCreatEXT()将新的指针保存的OS_TCB中。
OS_STK *OSTaskStkInit (void (*task)(void *p_arg), void *p_arg, OS_STK *ptos, INT16U opt)
{
OS_STK *stk;
opt= opt;
上一页 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 下一页

关键词:

评论


相关推荐

技术专区