基于ARM微處理器的uC/OS的移植設(shè)計
概述
本文引用地址:http://butianyuan.cn/article/152361.htm嵌入式操作系統(tǒng)μC/OS-II是一個公開源代碼的占先式多任務(wù)的微內(nèi)核RTOS,其特點可以概括為以下幾個方面:公開源代碼,代碼結(jié)構(gòu)清晰、明了,注釋詳盡,組織有條理,可移植性好,可裁剪,可固化。內(nèi)核屬于搶占式,最多可以管理60個任務(wù)。目前國內(nèi)對μC/OS-II的研究和應(yīng)用都很多。只要買一本書就可獲得源代碼,對學(xué)校和教育的使用完全免費,商業(yè)應(yīng)用的費用相對也很低。所以對μC/OS-II實時操作系統(tǒng)的學(xué)習(xí)研究、開發(fā)、應(yīng)用具有重要意義。
大部分的μC/OS-II代碼是使用ANSI C語言書寫的,因此μC/OS-II的可移植性好,然而仍需要使用C和匯編語言寫一些處理器相關(guān)代碼。μC/OS-II的移植需要滿足以下要求:
?。?)處理器的C編譯器可以產(chǎn)生可重入代碼;
?。?)可以使用C調(diào)用進入和退出臨界區(qū)代碼;
?。?)處理器必須支持硬件中斷,并且需要一個定時中斷源;
(4)處理器需要能夠容納一定數(shù)據(jù)的硬件堆棧;
(5)處理器需要有能夠在CPU寄存器與內(nèi)核和堆棧交換數(shù)據(jù)的指令。
基于ARM7的S3C44B0X處理器完全滿足上述要求。它使用ARM公司的16位/32位RISC結(jié)構(gòu),內(nèi)核是ARM7TDMI,工作在66MHz,片上集成了以下部件:8K Cache、外部存儲器控制器、LCD控制器、4個DMA通道、2個UART、1個多主I2C總線控制器、1個I2C總線控制器,以及5通道PWM定時器和1個內(nèi)部定時器、8通道12位ADC等,能夠與常用的外圍設(shè)備實現(xiàn)無縫連接,功能強大。目前,國內(nèi)應(yīng)用較為廣泛。
1內(nèi)核的移植
μC/OS-II的移植只需要修改與處理器相關(guān)的代碼就可以了。具體有如下內(nèi)容:
?。?)os_cpu.h中需要設(shè)置一個常量來標(biāo)識堆棧增長方向;
?。?)os_cpu.h中需要聲明幾個用于開關(guān)中斷和任務(wù)切換的宏;
?。?)os_cpu.h中需要針對具體處理器的字長重新定義一系列數(shù)據(jù)類型;
?。?)os_cpu_a.asm需要改寫4個匯編語言的函數(shù);
(5)os_cpu_c.c需要用c語言編寫6個簡單函數(shù);
?。?)修改主頭文件include.h,將上面的三個文件和其他自己的頭文件加入。
完成上述工作后,μC/OS-II就可以運行在ARM處理器上了。
2 LwIP的移植
μC/OS-II本身沒有TCP/IP協(xié)議棧,目前的一些第三方TCP/IP支持都是完全商業(yè)化的,很少給出源代碼,影響了μC/OS-II的研究和推廣。通過把開放源代碼的TCP/IP協(xié)議棧LwIP移植到μC/OS-II上來,就獲得了一套可免費研究、學(xué)習(xí)的嵌入式網(wǎng)絡(luò)軟件平臺。
tcp/ip相關(guān)文章:tcp/ip是什么
評論