<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在51單片機上的移植

μC/OS-II在51單片機上的移植

作者: 時(shí)間:2012-04-27 來(lái)源:網(wǎng)絡(luò ) 收藏

假設現在從Fun1一直運行到Fun4,此時(shí)堆棧結構如圖1所示,中間的ADD_A到ADD_D為堆棧中的數據,左邊的SP到SP-7為堆棧指針,右邊的Fun1到Fun4為對應的調用函數。運行Fun4時(shí),此時(shí)SP與SP-1所存的值為ADD_D,而ADD_D為Fun3中子函數Fun4的下一行的地址,即Fun3中3-2行的地址,以此類(lèi)推,ADD_C為2-2行地址,ADD_B 圖1函數運行及堆棧結構圖為1-2行地址。

本文引用地址:http://dyxdggzs.com/article/171557.htm

b.JPG


當函數A調用函數B時(shí),進(jìn)入函數B時(shí)就會(huì )把函數A的斷點(diǎn)地址壓棧,而當函數B運行結束時(shí)則把堆棧中函數A的斷點(diǎn)地址彈出到PC指針,程序接著(zhù)從函數A的斷點(diǎn)開(kāi)始運行。如果在函數B中更改SP及SP-1中的數據,則函數B運行結束時(shí)就不會(huì )再返回函數A中,而返回到SP及SP-1更改后的數據所代表的地址。
以上是函數調用時(shí)的基本情況,如果是中斷則堆棧不僅保存斷點(diǎn)地址還會(huì )自動(dòng)保存寄存器的值。任務(wù)調度就是靠中斷來(lái)實(shí)現,中斷中所保存的斷點(diǎn)地址就是任務(wù)的斷點(diǎn)地址,當本任務(wù)要再次執行時(shí)就把斷點(diǎn)地址賦給PC就可以接著(zhù)任務(wù)被中斷時(shí)地址順序執行。

3 頭文件
相關(guān)的4個(gè)文件中有2個(gè)頭文件,這2個(gè)頭文件的比較簡(jiǎn)單,可以參考其它的移植程序。其中OS_CPU.H中主要是數據類(lèi)型的定義、堆棧生長(cháng)方向的定義、開(kāi)關(guān)中斷的定義以及函數級任務(wù)切換的宏定義。OS_CFG.H中主要是任務(wù)數、優(yōu)先級數、事件數、每秒中斷節拍數以及各種系統函數的使能定義。

4 匯編與C文件的移植
在要移植的匯編與C的兩個(gè)文件中有14個(gè)函數,其中9個(gè)是接口函數,可根據實(shí)際需要來(lái)決定,有5個(gè)是必須寫(xiě)的。這5個(gè)函數分別是:OS_CPU_C.C文件中的OSTaskStkInit()和OS_CPU_A.ASM文件中的OSStartHighRdy()、OSCtxSw()、OSIntCtxSw()與OSTickISR()。下面就這5個(gè)函數來(lái)做具體分析。



關(guān)鍵詞: 移植 機上 單片 OS-II

評論


相關(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>