<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-Ⅱ在A(yíng)RM單片機S3C44B0x上的移植

μC/OS-Ⅱ在A(yíng)RM單片機S3C44B0x上的移植

作者: 時(shí)間:2014-10-31 來(lái)源:電子產(chǎn)品世界 收藏

  在這些函數中惟一必須需要編寫(xiě)的函數是OSTa-skStkInit(),其他9個(gè)函數必須要聲明,但不一定要包含任何代碼。 OSTaskCreate()和OSTaskCreateExt()通過(guò)調用OSTaskStkInit()函數來(lái)初始化任務(wù)的堆棧結構,因此,堆??雌饋?lái)就像剛發(fā)生過(guò)中斷,并將所有的寄存器都保存到堆棧中的情形一樣。OSTaskStkInit()的程序代碼如下:

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

  

5.jpg

 

  (3)移植OS_CPU_A.ASM文件

  在移植OS_CPU_A.ASM文件時(shí),要求用戶(hù)編寫(xiě)4個(gè)簡(jiǎn)單的匯編語(yǔ)言函數,它們分別是:OS-StartHighRdy(),OSCtxSw(),OSIntCtxSw(),OS-TickISR()。

 ?、貽SStartHighRdy():運行最高優(yōu)先級的就緒任務(wù)。此函數僅在多任務(wù)啟動(dòng)時(shí)執行一次,用來(lái)啟動(dòng)第1個(gè)(也就是最高優(yōu)先級)任務(wù)運行。它的程序代碼如下:

  

6.jpg

 

 ?、贠SCtxSw():任務(wù)級任務(wù)切換函數。實(shí)現CPU在正常運行時(shí)任務(wù)間的切換,完成對當前任務(wù)堆棧的保存和對最高優(yōu)先級任務(wù)堆棧的彈出,使最高優(yōu)先級的任務(wù)得到運行。

 ?、跲SIntCtxSw():中斷級的任務(wù)切換函數。在中斷服務(wù)程序執行完后,如果中斷使得更高優(yōu)先級的任務(wù)處于就緒狀態(tài),則該函數實(shí)現對任務(wù)的切換:保存中斷發(fā)生之前的那個(gè)任務(wù)的執行現場(chǎng).恢復已處于就緒態(tài)的那個(gè)更高優(yōu)先級任務(wù)的執行現場(chǎng),使優(yōu)先級更高的那個(gè)任務(wù)得以運行,從而完成對任務(wù)的切換。

 ?、躉STickISR():是系統時(shí)鐘的中斷服務(wù)函數。該函數的主要功能是檢查是否有由于延時(shí)而被掛起的任務(wù)轉為就緒態(tài)。如果有,則調用OSIntCtxSw()函數進(jìn)行任務(wù)切換,使已處于就緒態(tài)的且具有最高優(yōu)先級的任務(wù)運行。

  4 測試移植代碼

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

  5 結束語(yǔ)

  μC/OS-II是一種可配置、可裁剪的嵌入式實(shí)時(shí)操作系統,現已被廣泛的移植應用到多種處理器當中。這里成功地將μC/OS-Ⅱ移植到了系列單片機中,經(jīng)測試,移植好的μC/OS-Ⅱ代碼能正常的在S3C44B0x處理器中穩定運行。

c語(yǔ)言相關(guān)文章:c語(yǔ)言教程



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

關(guān)鍵詞: ARM S3C44B0x μC/OS-Ⅱ

評論


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