在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > uCOSii 在Coldfire MCF52235 上的移植

            uCOSii 在Coldfire MCF52235 上的移植

            作者: 時(shí)間:2012-11-21 來源:網(wǎng)絡(luò) 收藏

            介紹將C/ OS 實(shí)時(shí)操作系統(tǒng)到Co ldfire 處理器 上的方法, 為MCF5223x 系列微控制器的軟件開發(fā)提供了一個(gè)實(shí)時(shí)操作系統(tǒng)平臺(tái)。首先分析C/ OS 的特點(diǎn)和內(nèi)核結(jié)構(gòu), 結(jié)合 的結(jié)構(gòu)特點(diǎn)以及使用的軟硬件開發(fā)工具, 深入研究條件和實(shí)現(xiàn)方法, 詳細(xì)闡述系統(tǒng)中需要修改的文件、編寫的代碼及需要注意的問題。然后使用Co dew arr ior 6. 4 集成開發(fā)環(huán)境和評(píng)估板, 通過建立兩個(gè)應(yīng)用任務(wù), 驗(yàn)證了移植代碼的正確性, 說明在 上移植uC/ OS 是成功和可行的。在此介紹的移植過程和方法可以作為C/ OS 在其他微控制器中移植的典型范例。

            本文引用地址:http://www.biyoush.com/article/148240.htm

            C/ OS 是一種多任務(wù)實(shí)時(shí)操作系統(tǒng)。內(nèi)核源代碼公開、短小精干、可裁剪、執(zhí)行時(shí)間可確定, 可移植性較強(qiáng), 非常適用于一些中小型嵌入式系統(tǒng)開發(fā)。uC/OS 可以移植到8~ 64 位的不同類型、不同規(guī)模的嵌入式系統(tǒng), 并能在大部分的8 位、16 位、32 位, 甚至64 位的微處理器和DSP 上運(yùn)行[ 1] 。

            MCF52235 是飛思卡爾公司Co ldf ire 系列32 位單片機(jī)解決方案的嵌入式微控制器, 采用的是V2 版本的

            RISC 內(nèi)核。MCF52235 內(nèi)部有32 KB SRAM 和256 KB FLASH, 并且集成了標(biāo)準(zhǔn)的 外圍設(shè)備, 包括三個(gè)適合中長(zhǎng)距離通信的SCI, 一個(gè)I2 C 和一個(gè)用于系統(tǒng)內(nèi)部和外圍設(shè)備通信的Q SPI。在60 Hz的核心頻率下, MCF52235 的處理能力為56 MIPS, 具備較高的性能價(jià)格比[ 24] 。MCF52235 對(duì)于移植C/ OS 來說有足夠的

            RAM 和FLASH, 且有較快的處理速度和較低的成本,所以對(duì)于嵌入式應(yīng)用系統(tǒng)的開發(fā)來說, 嵌入C/ OS

            到MCF52235 微控制器是一個(gè)不錯(cuò)的選擇。uC/ OS 的體系結(jié)構(gòu)要實(shí)現(xiàn)C/ OS 向MCF52235 的移植, 需要做兩方面的工作: 一是重新定義內(nèi)核的大小和功能; 二是為內(nèi)核編寫與硬件相關(guān)的代碼。C/ OS 的文件結(jié)構(gòu)如圖1 所示。可以看到, C/ OS 與CPU 類型無關(guān)的C 代碼文件COS . C 包括很多文件, 它們是C/ OS 的內(nèi)核和很多功能函數(shù), 其中前三個(gè)文件是實(shí)時(shí)內(nèi)核、任務(wù)管理和時(shí)鐘節(jié)拍, 這三個(gè)文件是一定要用的。后面6 個(gè)功能函數(shù)用于任務(wù)間的通信, 應(yīng)用程序中可能只用到其中

            的幾個(gè), 不用的可以不包含進(jìn)去, 以免編譯時(shí)生成沒用的代碼。這部分代碼與CPU 類型無關(guān), 在移植時(shí), 這些文件不要改動(dòng)。配置文件OS_CFG. H 需要根據(jù)應(yīng)用要求來進(jìn)行,主要作用是確定C/ OS 提供的系統(tǒng)功能函數(shù), 應(yīng)用

            程序用哪些和不用哪些, 這個(gè)文件移植時(shí)需要修改。與CPU 類型有關(guān)的代碼文件主要有三個(gè): OS _CPU. H, OS_CPU_A. ASM 和OS_CPU_C. C。文件定義用于特定CPU 的數(shù)據(jù)類型來定義相關(guān)的宏。OS _CPU_A . ASM 是用匯編語言寫的與硬件有關(guān)的代碼,OS_CPU_C. C 是用C 語言寫的與硬件有關(guān)的代碼。由于移植使用C 交叉編譯工具, 在C 代碼中可以插入?yún)R編語句, 在移植中可將這兩個(gè)文件合并成一個(gè)文件[ 5] 。

            產(chǎn)生時(shí)鐘節(jié)拍的定時(shí)中斷來自微控制器內(nèi)部, 但并非來自V2 內(nèi)核內(nèi)部, 可以用實(shí)時(shí)時(shí)鐘產(chǎn)生定時(shí)中斷,

            也可以用片內(nèi)的外設(shè)模塊定時(shí)器單元來產(chǎn)生定時(shí)中斷,這部分代碼顯然與硬件相關(guān), 移植時(shí)要自己寫[ 6] 。

            image

            2 移植過程

            所謂移植, 就是使一個(gè)實(shí)時(shí)內(nèi)核能在某個(gè)微處理器或微控制器上運(yùn)行。為了方便移植, 大部分的C/ OS代碼是用C 語言寫的, 但仍需要用C 和匯編語言寫一些與處理器相關(guān)的代碼, 這是因?yàn)镃/ OSII 在讀寫處理器寄存器時(shí)只能通過匯編語言來實(shí)現(xiàn) 。移植過程主要包括移植前的準(zhǔn)備、BSP ( 板級(jí)支持包) 的編寫和與處理器相關(guān)代碼的修改和編寫。C/OS 核心代碼、與CPU 相關(guān)的接口程序、BSP 和用戶應(yīng)用程序之間的關(guān)系如圖2 所示。

            2. 1 移植前的準(zhǔn)備

            進(jìn)入C/ OS 官方網(wǎng)站下載C/ OS 源代碼。打開Codew arrior 6. 4 建立MCF52235 的工程文件, 然后把C/ OS 的源代碼文件加入到工程里面[ 8] 。其中有幾個(gè)地方需要改動(dòng):

            ( 1) 下載的源代碼中os_cfg _r. h 改為o s_cfg. h;os_dbg_r. c改為os_dbg. c。

            ( 2) 由于會(huì)引起重復(fù)定義錯(cuò)誤, 需要把源代碼中重復(fù)包含的文件注釋掉。

            ( 3) 需要在INT ERNAL_FLASH 模式下編譯, 而不能在RAM 模式下, 否則會(huì)產(chǎn)生溢出錯(cuò)誤。

            image

            2. 2 編寫B(tài)SP

            板級(jí)支持包( BSP) 是介于底層硬件和操作系統(tǒng)之間的軟件層次, 負(fù)責(zé)進(jìn)行系統(tǒng)啟動(dòng)后最初的硬件和軟件

            初始化, 并對(duì)底層硬件進(jìn)行封裝, 使得操作系統(tǒng)不再面對(duì)具體的硬件[ 9] 。在此建立兩個(gè)BSP 文件: BSP. ASM 和BSP. C。其中, BSP. ASM 中包含了匯編語言寫的中斷接口程序。BSP. C 中包含了硬件和軟件的初始化程序和產(chǎn)生時(shí)鐘節(jié)拍的中斷服務(wù)程序。

            2. 3 與處理器相關(guān)代碼的修改和編寫

            有三個(gè)與處理器相關(guān)的文件, 即OS_CPU . H, OS_CPU _ A. ASM 和OS _ CPU _ C. C 需要修改。由于MCF52235 有eMAC 模塊, 所以還需要編寫OS_CPU _I. ASM 文件, 用來在任務(wù)切換和中斷時(shí)以及中斷返回

            時(shí)保存和恢復(fù)相關(guān)寄存器。

            2. 3. 1 OS_CPU. H 的移植

            OS_CPU. H 包含了一些與處理器和編譯器相關(guān)的宏定義和數(shù)據(jù)類型定義。由于使用Codew arrior 編譯

            器, shor t 類型是16 位的, int 類型是32 位的。MCF52235 的堆棧是32 位寬的, 因此OS_STK 定義為

            32 位, 所有任務(wù)的堆棧必須聲明使用OS_ST K 這種數(shù)據(jù)類型。數(shù)據(jù)類型定義如下:

            ty pedef unsigned char BOOLEAN;

            ty pedef unsigned char INT 8U;

            ty pedef signed char INT8S;

            ty pedef unsigned sho rt INT16U;

            ty pedef signed shor t INT16S;

            ty pedef unsigned int INT32U;

            ty pedef signed int INT32S;

            typedef float FP32;

            typedef double FP64;

            typedef unsigned int OS_STK;

            typedef unsigned shor t OS_CPU_SR;

            ( 1) 臨界區(qū)域處理。像所有的實(shí)時(shí)性內(nèi)核一樣, 在進(jìn)入代碼臨界區(qū)時(shí)要關(guān)中斷, 完成時(shí)要開中斷。C/


            上一頁 1 2 3 下一頁

            關(guān)鍵詞: 移植 MCF52235 Coldfire uCOSii

            評(píng)論


            相關(guān)推薦

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

            關(guān)閉