<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > uC/OSII移植步驟

uC/OSII移植步驟

作者: 時(shí)間:2016-10-08 來(lái)源:網(wǎng)絡(luò ) 收藏
1.μC/OS-Ⅱ概述
μC/OS-Ⅱ在特定處理器上的移植大部分工作集中在多任務(wù)切換的實(shí)現上,這部分代碼主要用來(lái)保存和恢復處理器的現場(chǎng)。但許多操作如讀/寫(xiě)寄存器不能用C語(yǔ)言而只能用匯編來(lái)實(shí)現。
將μC/OS-Ⅱ移植到ARM處理器上,只需要修改與處理器相關(guān)的3個(gè)文件: OS_CPU.H, OS_CPU_C.C, OS_CPU_A.ASM 。
2.OS_CPU.H的移植
1)數據類(lèi)型的定義
typedefunsignedcharBOOLEAN;
typedefunsignedcharINT8U;
typedefsignedcharINT8S;
typedefunsignedshortINT16U;
typedefsignedshortINT16S;
typedefunsignedintINT32U;
typedefsignedintINT32S;
typedeffloatFP32;
typedefdoubleFP64;
typedefunsignedintOS_STK;
typedefunsignedintOS_CPU_SR;
2)ARM處理器相關(guān)的宏定義
#defineOS_ENTER_CRITICAL()ARMDisableINT
#defineOS_EXIT_CRITICAL()ARMEnableINT
3)堆棧增長(cháng)方向的定義
#defineOS_STK_GROWTH1
3.OS_CPU_C.C的移植
1)任務(wù)椎棧初始化
任務(wù)椎棧初始化函數由OSTaskCreat()或OSTaskCreatEXT()調用,用來(lái)初始化任務(wù)并返回新的堆棧指針STK.初始狀態(tài)的堆棧模擬發(fā)生一次中斷后的堆棧結構,在A(yíng)RM體系結構下,任務(wù)堆??臻g由高到低將依次保存著(zhù)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;
上一頁(yè) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 下一頁(yè)

關(guān)鍵詞:

評論


相關(guān)推薦

技術(shù)專(zhuān)區

国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>