<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è) > 嵌入式系統 > 設計應用 > μC/OS-II在S3C44BOX上的移植

μC/OS-II在S3C44BOX上的移植

作者: 時(shí)間:2013-03-30 來(lái)源:網(wǎng)絡(luò ) 收藏
  μC/OS-II在處理器S3C44B0X上的移植,就是使μC/OS-II在該微控制器上運行。由μC/OS-II文件系 統可知,在中,用戶(hù)所需要關(guān)注的就是與處理器相關(guān)的代碼,包括OS_CPU.H、OS_CPU_A.ASM和 OS_CPU_C.C三個(gè)文件。

 ?。?)OS_CPU.H

  在OS_CPU.H文件中定義。與編譯器相關(guān)的數據類(lèi)型。μS/OS-II為了保證可移植性,程序中沒(méi)有直接使 用int、unsigned int等定義,而是自己定義了一套數據類(lèi)型,例如,INT16U表示16位無(wú)符號整型。對于 32位內核ARM微控制器,INT16U是unsianed short型;若是16位的處理器,則是unsigned int型。; μC/OS-II使用的變量類(lèi)型如表1所示。

  表1 μC/OS-II使用的變量類(lèi)型

  同時(shí),在該文件中還定義了使能和禁止中斷宏、棧的增長(cháng)方向、定義符號OS_STK_GROWTH的值;還定義 了μC/OS-II的OS TASK SW宏,該宏是μC/OS-II從低優(yōu)先級任務(wù)切換到高優(yōu)先級任務(wù)時(shí)的調用,可以 采用下面兩種方式定義:一種是如果處理器支持軟中斷,那么可以使用軟中斷向量指向OSCtxSw函數;另 一種是直接調用OSCrxSw函數。

 ?。?)OS_CPU_A.ASM

  在該文件中有4個(gè)匯編函數需要移植,如下:

  ●OSStartHighRdy函數:該函數由OSStart函數調用,OSStart函數負責調度就緒狀態(tài)的任務(wù)開(kāi)始運行 ,而其中OSStartHighRdy負責獲取新任務(wù)的堆棧指針,并從堆棧指針中恢復新任務(wù)的所有處理器寄存器 。函數要移植的原因就是因為它涉及將處理器寄存器保存到堆棧。

  ●OSCtxSw函數:該函數由OS_TASK_SW宏調用,OS_TASK_SW宏由OSSched函數調用,OSSched函數負責任 務(wù)之間的切換。OSCtxSw函數在OSSched函數中負責將當前任務(wù)對應的處理器寄存器保存到堆棧中,并將 任務(wù)中需要恢復的處理器寄存器從堆棧中恢復出來(lái)。

  ●OSlntCtxSw函數:該函數由OSlntExit函數調用,OSlntExit函數由OSTickISR函數調用。OSlntCtxSw 負責在定時(shí)中斷中任務(wù)之間的切換,保存當前任務(wù)堆棧指針,并將新任務(wù)對應的處理器寄存器從堆棧中 恢復出來(lái)。

  ●OSTickISR函數:時(shí)間節拍函數,由定時(shí)中斷產(chǎn)生,主要負責在進(jìn)入時(shí)保存處理器寄存器,完成任務(wù) 時(shí)切換,退出時(shí)恢復寄存器并返回。

 ?。?)OS_CPU_C.C

  OS_CPU_C.C文件中有6個(gè)函數需要移植。

  其中,OSTaskStklnit函數是在任務(wù)創(chuàng )建時(shí)被調用的,它負責初始化任務(wù)的堆棧結構。其他的5個(gè)函數均 為鉤子函數:OSTaskCreateHook、OSTaskDelHook、OSTaskSwHook、OSTaskStatHook、OSTimeTickHook, 這些函數主要用來(lái)擴展;μC/OS-II的功能。



關(guān)鍵詞: μCOS-II S3C44BOX 移植過(guò)程

評論


相關(guān)推薦

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

關(guā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>