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