您的位置 首页 IC

uC/OSII移植过程

1.μC/OS-Ⅱ概述μC/OS-Ⅱ在特定处理器上的移植大部分工作集中在多任务切换的实现上,这部分代码主要用来保存和恢复处理器的现场。但许多操作如读

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;

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/298387.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们