新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于ARM微處理器的uC/OS的移植設(shè)計(jì)

基于ARM微處理器的uC/OS的移植設(shè)計(jì)

作者: 時(shí)間:2009-09-02 來源:網(wǎng)絡(luò) 收藏

 概述

本文引用地址:http://www.butianyuan.cn/article/152361.htm

  嵌入式操作系統(tǒng)μC/OS-II是一個(gè)公開源代碼的占先式多任務(wù)的微內(nèi)核RTOS,其特點(diǎn)可以概括為以下幾個(gè)方面:公開源代碼,代碼結(jié)構(gòu)清晰、明了,注釋詳盡,組織有條理,可性好,可裁剪,可固化。內(nèi)核屬于搶占式,最多可以管理60個(gè)任務(wù)。目前國(guó)內(nèi)對(duì)μC/OS-II的研究和應(yīng)用都很多。只要買一本書就可獲得源代碼,對(duì)學(xué)校和教育的使用完全免費(fèi),商業(yè)應(yīng)用的費(fèi)用相對(duì)也很低。所以對(duì)μC/OS-II實(shí)時(shí)操作系統(tǒng)的學(xué)習(xí)研究、開發(fā)、應(yīng)用具有重要意義。

  大部分的μC/OS-II代碼是使用ANSI C語言書寫的,因此μC/OS-II的可性好,然而仍需要使用C和匯編語言寫一些處理器相關(guān)代碼。μC/OS-II的需要滿足以下要求:

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

 ?。?)可以使用C調(diào)用進(jìn)入和退出臨界區(qū)代碼;

 ?。?)處理器必須支持硬件中斷,并且需要一個(gè)定時(shí)中斷源;

 ?。?)處理器需要能夠容納一定數(shù)據(jù)的硬件堆棧;

 ?。?)處理器需要有能夠在CPU寄存器與內(nèi)核和堆棧交換數(shù)據(jù)的指令。

  7的S3C44B0X處理器完全滿足上述要求。它使用公司的16位/32位RISC結(jié)構(gòu),內(nèi)核是7TDMI,工作在66MHz,片上集成了以下部件:8K Cache、外部存儲(chǔ)器控制器、LCD控制器、4個(gè)DMA通道、2個(gè)UART、1個(gè)多主I2C總線控制器、1個(gè)I2C總線控制器,以及5通道PWM定時(shí)器和1個(gè)內(nèi)部定時(shí)器、8通道12位ADC等,能夠與常用的外圍設(shè)備實(shí)現(xiàn)無縫連接,功能強(qiáng)大。目前,國(guó)內(nèi)應(yīng)用較為廣泛。

  1內(nèi)核的移植

  μC/OS-II的移植只需要修改與處理器相關(guān)的代碼就可以了。具體有如下內(nèi)容:

 ?。?)os_cpu.h中需要設(shè)置一個(gè)常量來標(biāo)識(shí)堆棧增長(zhǎng)方向;

 ?。?)os_cpu.h中需要聲明幾個(gè)用于開關(guān)中斷和任務(wù)切換的宏;

  (3)os_cpu.h中需要針對(duì)具體處理器的字長(zhǎng)重新定義一系列數(shù)據(jù)類型;

 ?。?)os_cpu_a.asm需要改寫4個(gè)匯編語言的函數(shù);

  (5)os_cpu_c.c需要用c語言編寫6個(gè)簡(jiǎn)單函數(shù);

 ?。?)修改主頭文件include.h,將上面的三個(gè)文件和其他自己的頭文件加入。

  完成上述工作后,μC/OS-II就可以運(yùn)行在ARM處理器上了。

  2 LwIP的移植

  μC/OS-II本身沒有TCP/IP協(xié)議棧,目前的一些第三方TCP/IP支持都是完全商業(yè)化的,很少給出源代碼,影響了μC/OS-II的研究和推廣。通過把開放源代碼的TCP/IP協(xié)議棧LwIP移植到μC/OS-II上來,就獲得了一套可免費(fèi)研究、學(xué)習(xí)的嵌入式網(wǎng)絡(luò)軟件平臺(tái)。

tcp/ip相關(guān)文章:tcp/ip是什么



上一頁 1 2 3 下一頁

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉