<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 在CodeWarrior編譯環(huán)境下運行μC/OS―III

在CodeWarrior編譯環(huán)境下運行μC/OS―III

作者: 時(shí)間:2012-12-16 來(lái)源:網(wǎng)絡(luò ) 收藏

摘要:;;II是面向8/16位及低端32位單片機應用的RTOS,而新近推出的;;Ⅲ則面向高性能32位單片機,如ARM Cortex等。以Cortex—M4為內核的Kinetis系列單片機,不僅用于全國大學(xué)生飛思卡爾杯智能車(chē)競賽,也用于諸多大學(xué)的嵌入式系統教學(xué),官方提供的開(kāi)發(fā)環(huán)境是CodeWarrior。本文介紹如何利用CodeWarrior開(kāi)發(fā)環(huán)境,將;;在Kinetis單片機上運行起來(lái),以便將μC/OS—引入教學(xué)、科研與應用。
關(guān)鍵詞:μC/OS—;

引言
Kinetis系列是飛思卡爾公司基于A(yíng)RM Cortex—M4和Cortex—M0+內核的單片機,和Cortex—M3相比,M4內核主要增加了DSP運算指令和可選的浮點(diǎn)運算單元,同時(shí)保持了與Cortex—M3的兼容性,因此被寄予希望能逐步替代Cortex—M3。Kinetis也成為飛恿卡爾杯全國大學(xué)生智能車(chē)競賽新的硬件平臺之一。
μC/OS—Ⅲ是Micrium公司推出的全新RTOS,特別適用于那些有計算前導零(CLZ)硬件指令的高端32位CPU,可大大加速就緒表查找速度μC/OS—II的主要精華在于其巧妙的優(yōu)先級軟件查表算法,而對于有CLZ硬件算法指令的CPU,如MIPS、PowerPC、ARM11及以上系列,仍使用μC/OS一Ⅱ就不那么合理了。μC/OS—III源代碼公開(kāi),官方已提供對目前主流單片機的移植支持,并且針對幾大主流單片機都提供相應的教材,Kinetis就是其中之一。Micrium官方提供的基于Kinetis平臺的范例都是使用IAR作為集成開(kāi)發(fā)環(huán)境的,考慮到飛思卡爾官方的Code Warrior開(kāi)發(fā)環(huán)境有著(zhù)廣泛的用戶(hù)群,尤其是使用過(guò)S08/S12等單片機的用戶(hù),大多熟悉CodeWarrior。因此,本文將以Kinetis平臺為例,講述如何使用CodeWarrior集成開(kāi)發(fā)環(huán)境將μOS—III運行起來(lái),作為應用開(kāi)發(fā)的基礎,也便于那些教學(xué)中使用CodeWarrior編譯器的師生,將μC/OS—Ⅲ引入嵌入式系統教學(xué)。

1 CodeWarrior集成開(kāi)發(fā)環(huán)境
Kinetis包括K,X、L三大系列,K和X系列是基于Cortex—M4內核,而L系列是基于Cortex—M0+內核。K系列又包括K10~K70多個(gè)子系列,不同系列側重點(diǎn)不同,如K10是基準系列,K20帶USB,K60帶以太網(wǎng)。因為內核一樣,只是外設不同,因此μC/OS—III的移植都是通用的。本文以清華大學(xué)飛恩卡爾培訓中心為全國大學(xué)生智能車(chē)競賽提供的K10開(kāi)發(fā)套件為例進(jìn)行說(shuō)明。
針對Kinetis的CodeWarrior軟件版本為V10.x,可從官方網(wǎng)站下載免費教學(xué)版本。新版的CodeWarrior基予Eclipse開(kāi)發(fā)環(huán)境,支持S08/S12/ColdFire/Kinetis等系列單片機。本文使用的CodeWarrior版本為V10.2Special Edition。
最新版本的μC/OS—III源代碼可從Micrium公司官方網(wǎng)站下載,網(wǎng)站上的“Source code”欄目提供的只是內核的源代碼,不包括移植部分,也沒(méi)有相關(guān)的范例,而“μC/OS—III Books”欄目里可下載針對不同單片機的電子版教材及配套的范例工程。本文使用官方為Kinetis提供的IAR環(huán)境下的工程范例為參考。

2 μC/OS-Ⅲ的目錄結構
μC/OS—III的代碼組織中,除了內核相關(guān)的代碼文件外,還有兩個(gè)獨立的組件——μC/CPU和μC/LIB。μC/CPU用來(lái)封裝一個(gè)CPU的屬性,定義了與編譯器和CPU相關(guān)的數據類(lèi)型、寄存器的位寬、大小端格式、堆棧的增長(cháng)方式、開(kāi)關(guān)中斷的函數等等。換句話(huà)說(shuō),也就是把原來(lái)
μC/OS里的一些CPU硬件相關(guān)的定義和函數獨立成為一個(gè)組件,這樣,代碼的結構就更加清晰。而μC/LIB是一個(gè)基礎的函數庫,不依賴(lài)于任何的處理器和編譯器,主要包括一些字符串處理函數、數學(xué)相關(guān)函數,以及內存管理相關(guān)的函數。μC/OS—III依賴(lài)于μC/CPU和μC/LIB,
因此工程中必須包括μC/CPU和μC/LIB的相關(guān)文件才能完成編譯。
圖1展示了一個(gè)典型工程的文件結構。其中,μC/OS—III、μC/CPU、μC/LIB和配置文件部分都是必須的,加粗斜體的文件表示是需要移植的。lib_mem_a.a(chǎn)sm文件是用匯編語(yǔ)言編寫(xiě)的優(yōu)化的內存分配函數,可以不要(lib_cfg.h里的宏LIB_MEM_CFG_OPTIMIZE_ASM_EN要設置為0)。配置相關(guān)的頭文件必需的有4個(gè),其中,μC/OS—III、μC/CPU和μC/LIB三個(gè)組件各有一個(gè)對應的配置文件,還有一個(gè)是os_cfg_ app.h。os_cfg.h和os_cfg_app.h都是μC/OS—Ⅲ相關(guān)的配置文件,前者主要是功能的配置,如是否使用信號量、是否使用時(shí)間片輪轉調度、是否進(jìn)行參數檢查等等;后者主要是內核資源的配置,如空閑任務(wù)、時(shí)鐘節拍任務(wù)的堆棧大小、信號量、消息隊列等內核資源的數量等。“板級支持包”和“用戶(hù)程序”里列出的文件并不是必需的,只是一個(gè)范例。板級支持包用來(lái)定義與開(kāi)發(fā)板硬件相關(guān)的功能函數,如硬件韌始化函數、I/O操作函數、串口服務(wù)函數等等。使用板級支持包可以使代碼結構更清晰,方便代碼共享。

本文引用地址:http://dyxdggzs.com/article/170659.htm

a.JPG


從Micrium網(wǎng)站下載針對Kinetis的教材配套的范例工程壓縮包,解壓后目錄結構如圖2所示。Micrium公司的代碼組織結構非常清晰,對于程序開(kāi)發(fā)人員來(lái)說(shuō)是一個(gè)很好的參考。其中,uCOS-III、uC—CPU、uC—LIB三個(gè)文件夾下分別包含了該模塊對應的代碼,底下各有一個(gè)Cfg文件夾,里面包括了該模塊配置頭文件的模板。而移植相關(guān)的部分代碼文件都是按“CPU\編譯器”的目錄結構來(lái)組織,如uC—CPU下的ARM—Cortex—M4\IAR。EvalBoards文件夾是范例工程所在,按照“開(kāi)發(fā)板\編譯器”的結構組織。

51單片機相關(guān)文章:51單片機教程



上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: &mu C/OS&mdash III Kinetis CodeWarrior

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>