<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

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

            (1)OS_CPU.H

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

            表1 μC/OS-II使用的變量類型

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

           ?。?)OS_CPU_A.ASM

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

            ●OSStartHighRdy函數(shù):該函數(shù)由OSStart函數(shù)調(diào)用,OSStart函數(shù)負(fù)責(zé)調(diào)度就緒狀態(tài)的任務(wù)開始運(yùn)行 ,而其中OSStartHighRdy負(fù)責(zé)獲取新任務(wù)的堆棧指針,并從堆棧指針中恢復(fù)新任務(wù)的所有處理器寄存器 。函數(shù)要移植的原因就是因?yàn)樗婕皩⑻幚砥骷拇嫫鞅4娴蕉褩!?/P>

            ●OSCtxSw函數(shù):該函數(shù)由OS_TASK_SW宏調(diào)用,OS_TASK_SW宏由OSSched函數(shù)調(diào)用,OSSched函數(shù)負(fù)責(zé)任 務(wù)之間的切換。OSCtxSw函數(shù)在OSSched函數(shù)中負(fù)責(zé)將當(dāng)前任務(wù)對應(yīng)的處理器寄存器保存到堆棧中,并將 任務(wù)中需要恢復(fù)的處理器寄存器從堆棧中恢復(fù)出來。

            ●OSlntCtxSw函數(shù):該函數(shù)由OSlntExit函數(shù)調(diào)用,OSlntExit函數(shù)由OSTickISR函數(shù)調(diào)用。OSlntCtxSw 負(fù)責(zé)在定時(shí)中斷中任務(wù)之間的切換,保存當(dāng)前任務(wù)堆棧指針,并將新任務(wù)對應(yīng)的處理器寄存器從堆棧中 恢復(fù)出來。

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

           ?。?)OS_CPU_C.C

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

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



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

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();