資源描述:
《uC-OSII在NiosII上的移植》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、μC-OSII在NiosII軟核處理器上的移植姓名:學(xué)號:班級:電信0803關(guān)鍵字:μC/OS-IINios嵌入式實時操作系統(tǒng)引言μC/OS-II是一種源代碼公開、結(jié)構(gòu)小巧、具有可剝奪實時內(nèi)核的實時操作系統(tǒng)。其內(nèi)核提供任務(wù)調(diào)度與管理、時間管理、任務(wù)間同步與通信、內(nèi)存管理和中斷服務(wù)等功能。μC/OS-II適合于小型控制系統(tǒng),具有執(zhí)行效率高、占用空間小、實時性能優(yōu)良和可擴展性強等特點,加之它穩(wěn)定、可靠,現(xiàn)已被廣泛應(yīng)用在航空、醫(yī)療器械、工業(yè)控制等領(lǐng)域。Nios嵌入式處理器是Altera公司推出的一個32/16位精簡指令
2、集軟核處理器。在Altera公司推出的軟件SOPC中加載Nios核和相應(yīng)的外圍接口以及各種自定義指令,利用FPGA設(shè)計軟件進行綜合,下載到FPGA中就可以方便地實現(xiàn)一個具有特定功能的嵌入式處理器。這種設(shè)計思路增加了系統(tǒng)設(shè)計的靈活性,可以大大縮短產(chǎn)品研發(fā)和上市的時間。μC/OS-II和Nios相結(jié)合,可以構(gòu)成一種基于可配置的軟核處理器的嵌入式開發(fā)平臺,該平臺軟、硬件均可按照用戶需求進行剪裁配置,最大程度地提供了系統(tǒng)設(shè)計的靈活性,具有重要的應(yīng)用價值。1μC/OS-II簡介μC/OS-II并非一個完整的實時操作系統(tǒng),它
3、只是一個基于優(yōu)先級的搶占式實時內(nèi)核。在很多其它實時操作系統(tǒng)中,程序開發(fā)人員利用操作系統(tǒng)提供的API函數(shù)進行應(yīng)用程序的開發(fā),而μC/OS-II則有所不同。要想在μC/OS-II內(nèi)核上進行應(yīng)用程序的開發(fā),需要程序開發(fā)人員在實時內(nèi)核的基礎(chǔ)上建立自己的實時操作系統(tǒng)。和其它嵌入式操作系統(tǒng)一樣,μC/OS-II也不具有通用性,用戶要在目標(biāo)處理器上創(chuàng)建一個多任務(wù)的實時嵌入式系統(tǒng),首先要將操作系統(tǒng)移植到目標(biāo)處理器上,然后在移植好的操作系統(tǒng)平臺上開發(fā)應(yīng)用系統(tǒng)。2μC/OS-II的移植所謂移植,就是使μC/OS-II實時內(nèi)核能夠在其
4、它的微處理器或微控制器上運行。在移植時,要從硬件和軟件兩方面進行考慮。硬件方面主要考慮目標(biāo)處理器。雖然μC/OS-II大部分源代碼是用C語言編寫,但是完成和處理器有關(guān)的一些操作時,還是必須用匯編語言來實現(xiàn)的。寄存器的讀、寫只能通過匯編語言的存儲和加載指令來實現(xiàn)。要使μC/OS-II能夠正常工作,目標(biāo)處理器必須滿足以下要求:◇處理器的C編譯器能產(chǎn)生可重入代碼;◇用C語言可以開、關(guān)中斷;◇處理器支持中斷,并且能夠產(chǎn)生定時中斷(通常在10~100Hz之間);◇處理器能夠支持容納一定量數(shù)據(jù)的硬件堆棧;◇處理器有將堆棧指針
5、和其它寄存器讀出和存儲到堆?;騼?nèi)存中的指令。軟件方面主要分為四個部分:實時操作系統(tǒng)內(nèi)核、與處理器相關(guān)部分、與應(yīng)用相關(guān)部分以及用戶應(yīng)用系統(tǒng)。下面將結(jié)合Nios的移植過程進行具體闡述。3Nios處理器Nios嵌入式處理器是Altera公司推出的一個用戶可配置的16位或32位精簡指令集軟核處理器。Nios處理器可以配置成最多支持64個中斷,包括外部硬件中斷、內(nèi)部中斷以及TRAP(調(diào)試中斷)。Nios處理器可以配置使用32位內(nèi)部定時器,通過用軟件控制寫入幾個控制寄存器的內(nèi)容來獲得定時工作,與一般的定時器工作原理相同,可以
6、產(chǎn)生定時中斷。Nios處理器可以外接存儲802004.9學(xué)習(xí)園地LEARNINGGARDEN器,以使用的APEX20KE開發(fā)板為例,外接了512KB的SRAM資源,可以提供足夠的數(shù)據(jù)硬件堆棧。Nios處理器有自己的匯編語言指令集,可以完成各種算術(shù)和邏輯運算、數(shù)據(jù)傳送、流程控制以及按位操作。NiosSDKshell采用GNU編譯器,支持C/C++的編譯、連接,可以產(chǎn)生重入代碼,允許在C語言中嵌入?yún)R編語言。由以上分析可知,Nios處理器完全滿足μC/OS-II移植的處理器要求。更為有意義的是,Nios屬于軟核可配置處
7、理器,允許用戶根據(jù)需要進行剪裁和配置。相對于其它硬核處理器而言,Nios從硬件方面增加了系統(tǒng)的靈活性。圖1給出了一個32位Nios處理器的配置實例,命名為Nioscpu,后續(xù)的μC/OS-II移植工作就在Nioscpu上面進行。硬件設(shè)備采用的是Altera公司的APEX20KENios開發(fā)板,F(xiàn)PGA設(shè)計軟件為QuartusII3.0,Nios版本為3.10。Nioscpu系統(tǒng)中包括內(nèi)部ROM、外部擴展的SRAM、Flash、串行通信口UART、內(nèi)部定時器、外設(shè)接口7段數(shù)碼管、發(fā)光二極管以及按鍵開關(guān)等。4移植工作
8、μC/OS-II移植的軟件部分需要完成以下幾個部分工作。4.1與編譯器有關(guān)的代碼在不同的處理器中有不同的字長,所以必須定義一系列數(shù)據(jù)類型以確保移植的正確性。在μC/OS-II中,不使用C的short、int和long等數(shù)據(jù)類型,這些都是和編譯器相關(guān)的。在Nios處理器中,各種數(shù)據(jù)類型定義如下。typedefunsignedcharBOOLEAN;typedefunsign