亚洲一区亚洲二区亚洲三区,国产成人高清在线,久久久精品成人免费看,999久久久免费精品国产牛牛,青草视频在线观看完整版,狠狠夜色午夜久久综合热91,日韩精品视频在线免费观看

uC/OS-II在EP7312上的移植

時(shí)間:2023-05-01 08:35:46 計(jì)算機(jī)論文 我要投稿
  • 相關(guān)推薦

uC/OS-II在EP7312上的移植

摘要:首先介紹μC/OS-II操作系統(tǒng)的特點(diǎn),重點(diǎn)分析μC/OS-II在EP7312上的移植方法,介紹μC/OS-II在EP7312中的開(kāi)發(fā)過(guò)程。

    關(guān)鍵詞:嵌入式操作系統(tǒng) μC/OS-II EP7312

引 言

  隨著Internet和后PC時(shí)代的到來(lái),嵌入式系統(tǒng)的應(yīng)用愈來(lái)愈廣泛,嵌入式產(chǎn)品在人們的生活中無(wú)處不在。今天,嵌入式系統(tǒng)帶來(lái)的工業(yè)年產(chǎn)值已超過(guò)1萬(wàn)億美元,已經(jīng)在IT產(chǎn)業(yè)中占有很大的比重。

  通常,應(yīng)用程序?qū)η度胧杰浖幕疽笫求w積小、執(zhí)行速度快、具有較好的裁減性和可移植性。嵌入式軟件的靈魂是嵌入式操作系統(tǒng)。在特定的操作系統(tǒng)之上開(kāi)發(fā)應(yīng)用軟件,可以讓程序開(kāi)發(fā)人員屏蔽掉很多低層硬件細(xì)節(jié),使得應(yīng)用程序調(diào)試方便、移植簡(jiǎn)單、易維護(hù),同時(shí)開(kāi)發(fā)周期也短。目前,實(shí)時(shí)操作系統(tǒng)很多,如VxWorks、Window CE、pSOS、QNX、LynxOS等等。這些操作系統(tǒng)都具有高可靠性、很強(qiáng)的實(shí)時(shí)性等特點(diǎn),但它們都是商業(yè)操作系統(tǒng),價(jià)格昂貴,人們往往很難接受。μC/OS-II的出現(xiàn)是對(duì)這些商業(yè)操作系統(tǒng)的一個(gè)很大的沖擊。μC/OS-II是源碼公開(kāi)的實(shí)時(shí)操作系統(tǒng),是一個(gè)自由操作系統(tǒng)。程序開(kāi)發(fā)人員可以改寫(xiě)源代碼,使之符合自己的要求。裁減掉不需要的部分,使操作系統(tǒng)變得小巧、靈活,并且能滿足用戶特定操作系統(tǒng)的需要。

1 μC/OS-II簡(jiǎn)介

  μC/OS-II并非一個(gè)完整的實(shí)時(shí)操作系統(tǒng),它只是一個(gè)實(shí)時(shí)內(nèi)核。μC/OS-II不像其它實(shí)時(shí)操作系統(tǒng)一樣,提供給用戶的是一個(gè)標(biāo)準(zhǔn)的API函數(shù),程序開(kāi)發(fā)人員利用操作系統(tǒng)提供的API函數(shù)進(jìn)行應(yīng)用程序的開(kāi)發(fā)。要想在μC/OS-II內(nèi)核上進(jìn)行應(yīng)用程序的開(kāi)發(fā),就需要程序開(kāi)發(fā)人員在實(shí)時(shí)內(nèi)核的基礎(chǔ)上建立自己的實(shí)時(shí)操作系統(tǒng)。首先,把μC/OS-II移植到自己的硬件目標(biāo)板上,寫(xiě)出相應(yīng)的驅(qū)動(dòng)程序以及用戶圖形界面等等;在這些接口函數(shù)之上,加上用戶自己的應(yīng)用程序,就構(gòu)成了嵌入式軟件。

2 μC/OS-II在EP7312上的移植

  μC/OS-II的移植條件是:只要該處理器有堆棧,有CPU內(nèi)部寄存器入棧、出棧指令;使用的C編譯器支持內(nèi)嵌匯編(inline assembly)或者該C語(yǔ)言可擴(kuò)展,可連接匯編模塊,使得關(guān)中斷、開(kāi)中斷能在C語(yǔ)言程序中實(shí)現(xiàn)。Cirrus Logic公司生產(chǎn)的EP7312芯片內(nèi)部采用的是ARM720T處理器,內(nèi)部有37個(gè)寄存器。其中R13通常用作堆棧指針。堆棧尋址是隱含的,堆棧指針?biāo)付ǖ拇鎯?chǔ)單元就是堆棧的棧頂,堆棧尋址通常有兩種方式向上生長(zhǎng)和向下生長(zhǎng)。ARM處理器有ARM和Thumb兩種指令集。每種指令集都有豐富的指令可以對(duì)堆棧進(jìn)行操作。堆棧指針指向最后壓入堆棧的有效數(shù)據(jù),稱為滿堆棧(full stack);堆棧指針指向下一個(gè)數(shù)據(jù)項(xiàng)放入的空位置,稱為空堆棧(empty stack)。根據(jù)堆棧的生長(zhǎng)方向不同,可以生成4種類型的堆棧,即滿遞增、空遞增、滿遞減、空遞減。我們所使用的ARM SDT(ARM Software Development Kit)開(kāi)發(fā)系統(tǒng)內(nèi)含的編譯器,同樣也支持內(nèi)嵌匯編,所以μC/OS-II完全可以移植到EP7312上。

  μC/OS-II核心代碼很小,程序開(kāi)發(fā)人員要把它移植到自己的目標(biāo)板中只需做少量的工作。圖1是μC/OS-II硬件和軟件的體系結(jié)構(gòu)。

  雖然μC/OS-II大部分源代碼是用C語(yǔ)言寫(xiě)的,但是完成和處理器一些有關(guān)的代碼時(shí),還是必須要用匯編語(yǔ)言來(lái)實(shí)現(xiàn)的。寄存器的讀、寫(xiě)只能通過(guò)匯編語(yǔ)言的存儲(chǔ)和加載指令來(lái)實(shí)現(xiàn)。要使μC/OS-II能夠正常工作, 處理器必須滿足以下要求:

、 處理器的C編譯器能產(chǎn)生可重入代碼;

[1] [2] [3] [4] 

【uC/OS-II在EP7312上的移植】相關(guān)文章:

伊利諾大學(xué)UC分校04-29

移植04-29

什么是UC瀏覽器10-13

記憶移植作文02-20

核移植與線粒體04-26

記憶移植作文02-21

記憶移植不是夢(mèng)04-26

大樹(shù)移植技術(shù)04-28

假如記憶可以移植02-17

「記憶移植」開(kāi)新花04-26