色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > μC/OS-II在51單片機上的移植

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

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

          假設(shè)現(xiàn)在從Fun1一直運行到Fun4,此時堆棧結(jié)構(gòu)如圖1所示,中間的ADD_A到ADD_D為堆棧中的數(shù)據(jù),左邊的SP到SP-7為堆棧指針,右邊的Fun1到Fun4為對應(yīng)的調(diào)用函數(shù)。運行Fun4時,此時SP與SP-1所存的值為ADD_D,而ADD_D為Fun3中子函數(shù)Fun4的下一行的地址,即Fun3中3-2行的地址,以此類推,ADD_C為2-2行地址,ADD_B 圖1函數(shù)運行及堆棧結(jié)構(gòu)圖為1-2行地址。

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

          b.JPG


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

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

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



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

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉