新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 移植ucosII到STM32F103ZE(一)

移植ucosII到STM32F103ZE(一)

作者: 時(shí)間:2016-11-25 來源:網(wǎng)絡(luò) 收藏
一、開發(fā)環(huán)境:
1. 開發(fā)環(huán)境: keil uvision4 MDK4.12(windows XP)
MDK即RealView MDK(Microcontroller Development kit),是 ARM 公司目前最新推出的針對各種嵌入式處理器的軟件開發(fā)工具。RealViewMDK集成了業(yè)內(nèi)最領(lǐng)先的技術(shù),包括 uVision4 集成開發(fā)環(huán)境與 RealView 編譯器。支持 ARM7、ARM9 和最新的 Cortex-M3/M1/M0 核處理器,自動(dòng)配置啟動(dòng)代碼,集成 Flash 燒寫模塊,強(qiáng)大的 Simulation 設(shè)備模擬,性能分析等功能,與 ARM 之前的工具包 ADS 等相比,RealView 編譯器的最新版本可將性能改善超過 20%。
RealView MDK的突出特性:
菜鳥的阿拉伯飛毯—— 啟動(dòng)代碼生成向?qū)В詣?dòng)引導(dǎo),一日千里
啟動(dòng)代碼和系統(tǒng)硬件結(jié)合緊密,必須用匯編語言編寫,因而成為許多工程師難以跨越多門檻。RealView MDK的µVision3工具可以幫您自動(dòng)生成完善的啟動(dòng)代碼,并提供圖形化的窗口,隨您輕松修改。無論對于初學(xué)者還是有經(jīng)驗(yàn)的開發(fā)工程師,都能大大節(jié)省時(shí)間,提高開發(fā)效率。
高手的無劍勝有劍 —— 軟件模擬器,完全脫離硬件的軟件開發(fā)過程
RealView MDK的設(shè)備模擬器可以仿真整個(gè)目標(biāo)硬件,包括快速指令集仿真、外部信號(hào)和I/O仿真、中斷過程仿真、片內(nèi)所有外圍設(shè)備仿真等。開發(fā)工程師在無硬件的情況下即可開始軟件開發(fā)和調(diào)試,使軟硬件開發(fā)同步進(jìn)行,大大縮短開發(fā)周期。而一般的ARM開發(fā)工具僅提供指令集模擬器,只能支持ARM內(nèi)核模擬調(diào)試。
專家的哈雷望遠(yuǎn)鏡 —— 性能分析器,看得更遠(yuǎn)、看得更細(xì)、看得更清
RealView MDK的性能分析器好比哈雷望遠(yuǎn)鏡,讓您看得更遠(yuǎn)和更準(zhǔn),它輔助您查看代碼覆蓋情況,程序運(yùn)行時(shí)間,函數(shù)調(diào)用次數(shù)等高端控制功能,指導(dǎo)您輕松的進(jìn)行代碼優(yōu)化,成為嵌入式開發(fā)高手。通常這些功能只有價(jià)值數(shù)千美元的昂貴的Trace工具才能提供。
業(yè)界最優(yōu)秀的編譯器——RealView 編譯器,代碼更小,性能更高。
2. 處理器: STM32F103ZET6(神舟III號(hào)板)
3. OS版本: uC/OS-II V2.86
4. 外設(shè)庫版本:STM32F10x_StdPeriph_Lib_V3.5.0
5. 源碼下載:
1) 從st公司網(wǎng)站下載最新版本的stm32標(biāo)準(zhǔn)外設(shè)庫,版本是V3.5.0(2012-11-16)
http://www.st.com/internet/com/SOFTWARE_RESOURCES/SW_COMPONENT/FIRMWARE/stm32f10x_stdperiph_lib.zip
2) 下載uC/OS-II V2.86:
先去micrium網(wǎng)址注冊賬號(hào)
http://micrium.com/page/home
然后登陸并下載
http://micrium.com/newmicrium/uploads/file/appnotes/secure/Micrium-ST-uCOS-II-LCD-STM32.exe
二、 硬件資源介紹:
1. 簡介:
STM32F103ZET6是STM32F103系列最高端配置芯片,cortex-M3內(nèi)核的32位處理器(內(nèi)部數(shù)據(jù)路徑,寄存器,存儲(chǔ)器都是32位),采用哈佛結(jié)構(gòu),72M主頻,LQFP144封裝,片上有512K的flash和64K的SRAM。




STM32家族主要產(chǎn)品系列家譜
2. 指令系統(tǒng):
Cortex-M3只是用32位的thumb2指令。在支持了16位和32位的thumb-2指令集支持,cortex-M3無需把狀態(tài)在thumb和ARM之間來回的去換,尤其在使用大型條件嵌套以及執(zhí)行復(fù)雜運(yùn)算的時(shí)候,cortex-M3要比老一輩的ARM7執(zhí)行效率要高很多。




3. 寄存器組:
Cortex-M3處理器擁有R0-R15的寄存器組,其中R13作為堆棧指針SP。SP有兩個(gè),但在同一時(shí)刻只能有一個(gè)可以看到。這也就是所謂的“banked”寄存器。


R0-R12 都是32 位通用寄存器,用于數(shù)據(jù)操作。但是注意:絕大多數(shù)16 位Thumb 指令只能訪問R0-R7,而32 位Thumb-2 指令可以訪問所有寄存器。
Cortex-M3 擁有兩個(gè)堆棧指針,然而它們是banked,因此任一時(shí)刻只能使用其中的一個(gè)。
主堆棧指針(MSP):復(fù)位后缺省使用的堆棧指針,用于操作系統(tǒng)內(nèi)核以及異常處理例程(包括中斷服務(wù)例程)
進(jìn)程堆棧指針(PSP):由用戶的應(yīng)用程序代碼使用。
堆棧指針的最低兩位永遠(yuǎn)是0,這意味著堆棧總是4 字節(jié)對齊的。
寄存器及其功能:
xPSR 記錄ALU 標(biāo)志(0 標(biāo)志,進(jìn)位標(biāo)志,負(fù)數(shù)標(biāo)志,溢出標(biāo)志),執(zhí)行狀態(tài),以及當(dāng)前服務(wù)的中斷號(hào)
PRIMASK 除能所有的中斷——當(dāng)然了,不可屏蔽中斷(NMI)才不甩它呢。
FAULTMASK 除能所有的fault——NMI 依然不受影響,而且被除能的faults 會(huì)“上訪”,
BASEPRI 除能所有優(yōu)先級(jí)不高于某個(gè)具體數(shù)值的中斷。
CONTROL 中斷屏蔽寄存器組,有兩個(gè)作用:
a、定義特權(quán)級(jí)別;b、選擇當(dāng)前使用哪個(gè)堆棧指針。
4. 操作模式和特權(quán)極別:
Cortex-M3處理器制程兩種處理器模式和兩種特權(quán)操作。
兩種模式分別是處理者模式(handler mode)和線程模式(thread mode),主要是用于區(qū)別普通應(yīng)用程序的代碼和異常服務(wù)例程的代碼(包括中斷服務(wù)例程的代碼)。
兩種特權(quán)分級(jí)是特權(quán)級(jí)和用戶級(jí),用于提供一種存儲(chǔ)訪問的保護(hù)機(jī)制,使得普通的用戶程序代碼不能意外地或者惡意地執(zhí)行涉及到要害的操作。


ucosii不區(qū)分特權(quán)級(jí)和用戶級(jí),程序始終工作在特權(quán)級(jí),因此兩個(gè)堆棧指針的切換是全自動(dòng)的,就在出入異常服務(wù)例程時(shí)由硬件處理。
5. 存儲(chǔ)器映射:
CM3的存儲(chǔ)系統(tǒng)與傳統(tǒng)ARM架構(gòu)的相比,有過脫胎換股般的改革:
第一,它的存儲(chǔ)器映射是預(yù)定義的,并且還規(guī)定好了哪個(gè)位置使用哪條總線。
第二,CM3 的存儲(chǔ)器系統(tǒng)支持所謂的“位帶”(bit-band)操作。通過它,實(shí)現(xiàn)了對單一比特的原子操作。位帶操作僅適用于一些特殊的存儲(chǔ)器區(qū)域中。
http://blog.sina.com.cn/s/blog_abd39cc70101ci44.html
第三,CM3 的存儲(chǔ)器系統(tǒng)支持非對齊訪問和互斥訪問。這兩個(gè)特性是直到了ARMv7-M 時(shí)才出來的。
最后,CM3 的存儲(chǔ)器系統(tǒng)支持both小端配置和大端配置。
CM3 只有一個(gè)單一固定的存儲(chǔ)器映射。這一點(diǎn)極大地方便了軟件在各種CM3 單片機(jī)間的移植。存儲(chǔ)空間的一些位置用于調(diào)試組件等私有外設(shè),這個(gè)地址段被稱為“私有外設(shè)區(qū)”。私有外設(shè)區(qū)的組件包括:
1) 閃存地址重載及斷點(diǎn)單元(FPB)
2) 數(shù)據(jù)觀察點(diǎn)單元(DWT)
3) 儀器化跟蹤宏單元(ITM)
4) 嵌入式跟蹤宏單元(ETM)
5) 跟蹤端口接口單元(TPIU)
? ROM表
CM3 的地址空間是4GB, 程序可以在代碼區(qū),內(nèi)部SRAM 區(qū)以及外部RAM 區(qū)中執(zhí)行。但是因?yàn)橹噶羁偩€與數(shù)據(jù)總線是分開的,最理想的是把程序放到代碼區(qū),從而使取指和數(shù)據(jù)訪問各自使用自己的總線,并行不悖。


Cortex-M3 預(yù)定義的存儲(chǔ)器映射
CM3在定義了存儲(chǔ)器映射之外,還為存儲(chǔ)器的訪問規(guī)定了4種屬性,分別是:
? 可否緩沖(Bufferable)
? 可否緩存(Cacheable)
? 可否執(zhí)行(Executable)
? 可否共享(Sharable)

上一頁 1 2 下一頁

關(guān)鍵詞: 移植ucosIISTM32F103Z

評(píng)論


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

關(guān)閉