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

          新聞中心

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

          μC/OS-Ⅱ在ARM系列單片機(jī)S3C44B0x上的移植

          作者: 時(shí)間:2009-11-12 來(lái)源:網(wǎng)絡(luò) 收藏
          在這些函數(shù)中惟一必須需要編寫的函數(shù)是OSTa-skStkInit(),其他9個(gè)函數(shù)必須要聲明,但不一定要包含任何代碼。OSTaskCreate()和OSTaskCreateExt()通過(guò)調(diào)用OSTaskStkInit()函數(shù)來(lái)初始化任務(wù)的堆棧結(jié)構(gòu),因此,堆棧看起來(lái)就像剛發(fā)生過(guò)中斷,并將所有的寄存器都保存到堆棧中的情形一樣。OSTaskStkInit()的程序代碼如下:

          本文引用地址:http://www.ex-cimer.com/article/173566.htm


          (3)OS_CPU_A.ASM文件
          OS_CPU_A.ASM文件時(shí),要求用戶編寫4個(gè)簡(jiǎn)單的匯編語(yǔ)言函數(shù),它們分別是:StartHighRdy(),OSCtxSw(),OSIntCtxSw(),TickISR()。
          ①OSStartHighRdy():運(yùn)行最高優(yōu)先級(jí)的就緒任務(wù)。此函數(shù)僅在多任務(wù)啟動(dòng)時(shí)執(zhí)行一次,用來(lái)啟動(dòng)第1個(gè)(也就是最高優(yōu)先級(jí))任務(wù)運(yùn)行。它的程序代碼如下:


          ②OSCtxSw():任務(wù)級(jí)任務(wù)切換函數(shù)。實(shí)現(xiàn)CPU在正常運(yùn)行時(shí)任務(wù)間的切換,完成對(duì)當(dāng)前任務(wù)堆棧的保存和對(duì)最高優(yōu)先級(jí)任務(wù)堆棧的彈出,使最高優(yōu)先級(jí)的任務(wù)得到運(yùn)行。
          ③OSIntCtxSw():中斷級(jí)的任務(wù)切換函數(shù)。在中斷服務(wù)程序執(zhí)行完后,如果中斷使得更高優(yōu)先級(jí)的任務(wù)處于就緒狀態(tài),則該函數(shù)實(shí)現(xiàn)對(duì)任務(wù)的切換:保存中斷發(fā)生之前的那個(gè)任務(wù)的執(zhí)行現(xiàn)場(chǎng).恢復(fù)已處于就緒態(tài)的那個(gè)更高優(yōu)先級(jí)任務(wù)的執(zhí)行現(xiàn)場(chǎng),使優(yōu)先級(jí)更高的那個(gè)任務(wù)得以運(yùn)行,從而完成對(duì)任務(wù)的切換。
          ④OSTickISR():是系統(tǒng)時(shí)鐘的中斷服務(wù)函數(shù)。該函數(shù)的主要功能是檢查是否有由于延時(shí)而被掛起的任務(wù)轉(zhuǎn)為就緒態(tài)。如果有,則調(diào)用OSIntCtxSw()函數(shù)進(jìn)行任務(wù)切換,使已處于就緒態(tài)的且具有最高優(yōu)先級(jí)的任務(wù)運(yùn)行。

          4 測(cè)試代碼
          移植好μC/Ⅱ后,緊接著的工作就是驗(yàn)證移植好的μC/OS-II是否能正常工作。在這里采用不加任何應(yīng)用程序代碼的方法測(cè)試移植好的μC/OS-Ⅱ,這樣做有兩個(gè)優(yōu)點(diǎn):使測(cè)試移植代碼的工作變得更簡(jiǎn)單;如果有部分,μC/OS-II代碼不能正常工作,可以明白是被移植代碼本身的問題,而不是應(yīng)用代碼產(chǎn)生的問題。通過(guò)四個(gè)步驟來(lái)完成對(duì)移植代碼的測(cè)試:確保C編譯器、匯編編譯器及鏈接器正常工作;驗(yàn)證OSTaskStkInit()和OSStartHighRdy()函數(shù);驗(yàn)證OSCtxSw()函數(shù);驗(yàn)證OSIntCtxSw()和OSTick-ISR()函數(shù)。經(jīng)測(cè)試,以上四個(gè)測(cè)試過(guò)程均能正常通過(guò),表明被移植到中的μC/OS-Ⅱ操作系統(tǒng)已經(jīng)能正常工作了。

          5 結(jié)束語(yǔ)
          μC/OS-II是一種可配置、可裁剪的嵌入式實(shí)時(shí)操作系統(tǒng),現(xiàn)已被廣泛的移植應(yīng)用到多種處理器當(dāng)中。這里成功地將μC/OS-Ⅱ移植到了中,經(jīng)測(cè)試,移植好的μC/OS-Ⅱ代碼能正常的在S3C44B0x處理器中穩(wěn)定運(yùn)行。


          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          相關(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); })();