【正文】
}。 /* An LED light cycle */}i + + 。if (i %300000 = = 0) /* Each light a LED light 30,000 times */{sysUtilsLightLed (LED_ ALL,FALSE) 。Execution of an interrupt return instruction。Call OSIntExit ()。Call OSIntEnter () or directly to the OSIntNesting plus 1。 / * Do not allow here!!! * /OSStart ()。}OSTickISR()程序清單 L void main(void){ OSInit ()。s stack to restore it。Get tasks need to restore the stack pointer:Stack Pointer = OSTCBHighRdy OSTCBStkPtr。OSTCBCur = OSTCBHighRdy。The current task stack pointer saved to the current task OS_TCB in:OSTCBCurOSTCBStkPtr = stack pointer。Execution of an interrupt return instruction。All processor registers from the new task39。OSPrioCur = OSPrioHighRdy。Call a userdefined OSTaskSwHook ()。The current task39。Return from interrupt instruction execution。New task39。Stack Pointer recovery tasks:Stack pointer = OSTCBHighRdyOSTCBStkPtr。 /*雙精度浮點(diǎn)數(shù)(64位長(zhǎng)度)*/typedef unsigned int OS_STK。 /*有符號(hào)32位整數(shù)*/typedef float FP32。 /*有符號(hào)16位整數(shù)*/typedef unsigned char INT32U。 /*有符號(hào)8位整數(shù)*/typedef unsigned char INT16U。 /*無(wú)符號(hào)布爾類(lèi)型*/typedef unsigned char INT8U。 在論文撰寫(xiě)過(guò)程中,也感謝曾在培訓(xùn)過(guò)程中指導(dǎo)我的葉老師,以及在公司實(shí)習(xí)過(guò)程中幫助我的各位同事。 論文的完成,也同樣少不了大學(xué)四年中教育我的老師們,沒(méi)有他們,我現(xiàn)在仍舊只是一個(gè)懵懂的少年。 經(jīng)過(guò)幾個(gè)月的查閱資料、資料學(xué)習(xí)和論文撰寫(xiě),成功完成了此篇論文《基于ARM9的μC/OSⅡ嵌入式系統(tǒng)移植》。隨著科技的發(fā)展,工業(yè)生產(chǎn)和日常生活的需要,作為一個(gè)具有明顯優(yōu)勢(shì)的實(shí)時(shí)操作系統(tǒng),μC/OSⅡ具有廣泛的應(yīng)用前景和市場(chǎng)價(jià)值,必定會(huì)在嵌入式中占據(jù)一席之地。,程序會(huì)在斷點(diǎn)處停止,然后進(jìn)行分步執(zhí)行操作同VB類(lèi)似,具體操作是點(diǎn)擊【Context Variable】按鈕(或者選擇【Processor Views】條目下的【Variables】)。將ARM9開(kāi)發(fā)板上的蜂鳴器\Lcd跳線進(jìn)行短接,啟動(dòng)方式的選擇跳線也短接,然后按RST鍵復(fù)位系統(tǒng)。設(shè)置之后,選用DebugRel生成目標(biāo),然后點(diǎn)擊Make編譯工程。打開(kāi)JFlashARM,點(diǎn)擊Options下拉菜單,找到Project settings選項(xiàng),點(diǎn)擊,在【General】中對(duì)連接USB端口進(jìn)行設(shè)置(不確定的情況下去系統(tǒng)設(shè)備管理器中查找),如圖515所示:圖515 JFashArm設(shè)置(1)在【Target Interface】條目中的【Core】選擇設(shè)備:ARM9,如圖516所示:圖516 JFashArm設(shè)置(2)JLink設(shè)置完畢。如圖513所示。圖510 (2)在【Language Settings】條目下依次選擇【ARM Assembler】,將其處理器設(shè)置成ARM920T,【ARM C Compliler】、【ARM C++ Complier】也是類(lèi)似操作,如圖511所示。 工程設(shè)置,還需要對(duì)于工程進(jìn)行相應(yīng)的設(shè)置在【Edit】→【DebugRel Settings】下在【Target】條目中選擇【Target Settings】,將其中的【Postlinker】設(shè)置成ARM fromELF,如圖510所示。 工程創(chuàng)建(軟件和驅(qū)動(dòng)),通過(guò)轉(zhuǎn)換口將JLinkH仿真器和ARM9的開(kāi)發(fā)板以及PC機(jī)連接起來(lái),ARM9的蜂鳴器短接跳線JP9。圖55 uCOS_II文件夾在API文件夾中只有一個(gè)應(yīng)用配置相關(guān)的頭文件:,如圖56所示:圖56 API文件夾include中有三個(gè)文件:、如圖57:圖57 include文件夾arm文件夾中也是三個(gè)文件:、其中后兩個(gè)是需要進(jìn)行配置的文件,如圖58所示:圖58 arm文件夾在SOURCE文件夾中有一個(gè)API文件夾()、這些是一些與系統(tǒng)服務(wù)相關(guān)的函數(shù)文件,比如消息機(jī)制,內(nèi)存共享,信號(hào)量等函數(shù)。源代碼如圖51所示:圖51 源代碼文件夾在S3C2440文件夾下有兩個(gè)子文件夾,分別是includes和source,如圖52所示:圖52 S3C2440文件夾下的文件、這些文件都是一些與芯片相關(guān)的頭文件。 函數(shù)配置實(shí)例移植是驗(yàn)證移植成功的關(guān)鍵。第五章 實(shí)例移植本章是在基于第四章內(nèi)容的基礎(chǔ)上,進(jìn)行一個(gè)詳細(xì)的代碼實(shí)例移植。 OSIntCtxSw()OSIn