|
0.png (42.83 KB, 下載次數(shù): 164)
下載附件
2016-10-11 17:53 上傳
所有資料打包下載:
基于stm32 ucos ucgui的綜合例子.rar
(15.05 MB, 下載次數(shù): 384)
2016-10-11 17:51 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
/*
*********************************************************************************************************
*
* 例程名稱(chēng) : uC/OS-II_創(chuàng)建任務(wù)&郵箱例程
* uC/OS-II 版本 :V2.86
* ST固件庫(kù)版本 :V3.4.0
* 例程版本 : V1.0
* 作 者 : armfly
* 開(kāi)發(fā)環(huán)境 : KEIL的uVision V3.70、uVision V4.10、IAR的EWARM V5.30
*
*********************************************************************************************************
*/
【1】例程介紹
本例程提供如下功能:
(1) 提供一個(gè)基于u/COS-II操作系統(tǒng)的應(yīng)用程序框架
(2) 演示如何創(chuàng)建多個(gè)任務(wù)
(3) 演示如何使用郵箱進(jìn)行兩個(gè)任務(wù)之間的通信
本程序共創(chuàng)建了6個(gè)任務(wù):
(1) u/COS-II Idle任務(wù),這是由操作系統(tǒng)創(chuàng)建的空閑任務(wù),優(yōu)先級(jí)最低
(2) u/COS-II Stat任務(wù),這是由操作系統(tǒng)創(chuàng)建的統(tǒng)計(jì)任務(wù),統(tǒng)計(jì)CPU運(yùn)行時(shí)間、CPU占用率等
(3) u/COS-II Tmr任務(wù),這是由操作系統(tǒng)創(chuàng)建的定時(shí)器任務(wù),為應(yīng)用程序提供軟件定時(shí)器,未用
(4) AppTaskStart任務(wù),這是由用戶(hù)創(chuàng)建的啟動(dòng)任務(wù),完成如下工作:
(a) 初始化BSP
(b) 創(chuàng)建1個(gè)郵箱AppUserIFMbox
(c) 創(chuàng)建2個(gè)任務(wù),1個(gè)是用戶(hù)界面任務(wù)AppTaskUserIF,1個(gè)是按鍵檢測(cè)任務(wù)AppTaskKbd
(d) 之后控制LED1指示燈按照100ms的周期閃爍
(5) AppTaskKbd任務(wù),這是由AppTaskStart創(chuàng)建的按鍵檢測(cè)任務(wù)
按鍵檢測(cè)任務(wù)AppTaskKbd實(shí)時(shí)檢測(cè)USER鍵和TAMPER鍵的狀態(tài),當(dāng)有鍵按下時(shí),則向郵箱AppUserIFMbox
發(fā)送一條消息,消息內(nèi)容為按鍵碼變量的指針。
(6) AppTaskUserIF任務(wù),這是由AppTaskStart創(chuàng)建的用戶(hù)界面任務(wù)
戶(hù)界面任務(wù)AppTaskUserIF等待郵箱中的消息,如果USER鍵按下的消息則打印u/COS-II系統(tǒng)信息,如果
收到TAMPER鍵按下則打印所有的任務(wù)名稱(chēng)和任務(wù)優(yōu)先級(jí);如果沒(méi)有收到任何信息則打印一個(gè)旋轉(zhuǎn)的字符和
CPU運(yùn)行時(shí)間(單位為1個(gè)滴答)。
【2】例程文件夾說(shuō)明
├─Libraries : 存放第3方提供的庫(kù)或其源代碼,這些代碼一般是成熟的并經(jīng)過(guò)驗(yàn)證的代碼。
│ ├─CMSIS : CMSIS中間件源代碼(目的是提供統(tǒng)一的調(diào)試接口),這是ST官方提供的固件庫(kù)的一部分。
│ ├─STM32F10x_StdPeriph_Driver : STM32F10x系列MCU的固件庫(kù)源代碼,這是ST官方提供的固件庫(kù)的核心代碼。
│ └─uCOS-II : u/COS-II操作系統(tǒng)源代碼,這是Micrium公司開(kāi)發(fā)的多任務(wù)操作系統(tǒng)。
│
├─User : 這里存放用戶(hù)自己編寫(xiě)的源代碼
│ ├─app : 存放應(yīng)用程序源代碼
│ └─bsp : 存放底層驅(qū)動(dòng)程序源代碼,也就是板級(jí)支持包
│
└─project : 這里存放各類(lèi)開(kāi)發(fā)工具的工程文件
├─EWARMv5 : IAR公司EWARM工程文件
├─MDK-ARM(uV3) :KEIL的MDK工程文件,uVision3版本。uV3不能打開(kāi)uV4版本的工程。
├─MDK-ARM(uV4) : KEIL的MDK工程文件,uVision4版本。uV4可以打開(kāi)uV3版本的工程。
└─SourceInsight :SourceInsight工程文件,這是一款源代碼編輯和瀏覽工具。
【3】工程中源代碼分組說(shuō)明
└─Flash : Target名稱(chēng):Flash、CpuRAM 或 ExtSRAM
├─APP : 用戶(hù)自己編寫(xiě)的應(yīng)用程序
├─BSP : 用戶(hù)自己編寫(xiě)的底層驅(qū)動(dòng)程序
├─RVMDK : 和IDE開(kāi)發(fā)工具相關(guān)的啟動(dòng)代碼,一般是匯編源代碼
├─StdPeriph_Driver : STM32F10x系列MCU的固件庫(kù)源代碼
├─CMSIS : CMSIS中間件源代碼
├─uCOS-II/Source : u/COS-II操作系統(tǒng)源代碼
├─uCOS-II/Port : u/COS-II操作系統(tǒng)內(nèi)核接口層源代碼
├─uCOS-II-CPU : u/COS-II操作系統(tǒng)CPU接口層源代碼
├─Scatter : KEIL鏈接器用到的鏈接配置文件
└─Doc : 存放一些文檔
【4】工程中Target說(shuō)明
Flash : 目標(biāo)代碼定位在CPU內(nèi)部Flash。ROM地址: 0x08000000 RAM地址: 0x20000000
CpuRAM : 目標(biāo)代碼定位在CPU內(nèi)部RAM。 ROM地址: 0x20000000 RAM地址: 0x20008000
ExtSRAM : 目標(biāo)代碼定位在外部SRAM。 ROM地址: 0x68000000 RAM地址: 0x20000200 (前面0x200空間存放
中斷向量表)
【5】資源占用情況
【安富萊STM32F103ZE-EK開(kāi)發(fā)板V2和V3】
- CPU時(shí)鐘:72MHz
- CPU的GPIO:
a) PF6連接了LED1指示燈
b) PG8連接了USER鍵,低電平表示按下
c) PC13連接了TAMPER鍵,低電平表示按下
- CPU的USART1:
a) PA9用于USART1的TX,連接到板子上的RS232芯片(SP3232)
b) PA10用于USART1的RX,連接到板子上的RS232芯片(SP3232)
c) 串口為2線模式,無(wú)硬件流控,即無(wú)CTS和RTS口線
d) 波特率為115200bps
e) 8個(gè)數(shù)據(jù)位、1個(gè)起始位、1個(gè)停止位、無(wú)校驗(yàn)位、bit0先傳輸
f) 軟件查詢(xún)方式,未用中斷
- CPU的中斷
a) PendSV Handler 用于u/COS-II內(nèi)核,直接調(diào)用OSPendSV()函數(shù)
b) SysTick_Handler 用于u/COS-II滴答,調(diào)用了Tmr_TickISR_Handler()函數(shù)
【安富萊STM32F103VE-EK開(kāi)發(fā)板】
- CPU時(shí)鐘:72MHz
- CPU的GPIO:
a) PB15連接了LED1指示燈,輸出低電平點(diǎn)亮LED
b) PE1連接了USER鍵,低電平表示按下
c) PC13連接了TAMPER鍵,低電平表示按下
- CPU的USART1:
a) PA9用于USART1的TX,連接到板子上的RS232芯片(SP3232)
b) PA10用于USART1的RX,連接到板子上的RS232芯片(SP3232)
c) 串口為2線模式,無(wú)硬件流控,即無(wú)CTS和RTS口線
d) 波特率為115200bps
e) 8個(gè)數(shù)據(jù)位、1個(gè)起始位、1個(gè)停止位、無(wú)校驗(yàn)位、bit0先傳輸
f) 軟件查詢(xún)方式,未用中斷
- CPU的中斷
a) PendSV Handler 用于u/COS-II內(nèi)核,中斷向量等于OSPendSV()函數(shù)地址
b) SysTick_Handler 用于u/COS-II滴答,調(diào)用了Tmr_TickISR_Handler()函數(shù)
【6】調(diào)試方法
- 可以選擇IAR的EWARM或者KEIL的MDK兩種IDE進(jìn)行開(kāi)發(fā)調(diào)試
- 工程文件\Project\EWARMv5\project.eww,可以使用EWARM打開(kāi)
- 工程文件\Project\MDK-ARM(uV3)\project.Uv2,可以使用MDK(uV3)打開(kāi)
- 工程文件\Project\MDK-ARM(uV4)\project.uvproj,可以使用MDK(uV4)打開(kāi)
- 工程文件\Project\SourceInsight\Demo.PR,可以使用SourceInsight打開(kāi)
- 使用ARM仿真器(J-Link、ST-Link、U-Link)下載程序,或者通過(guò)串口ISP下載程序
- 支持在CPU內(nèi)部Flash中調(diào)試、在CPU內(nèi)部RAM中調(diào)試、在外部SRAM中調(diào)試
- 將開(kāi)發(fā)板的COM1串口用一根直連串口線連接到計(jì)算機(jī)的RS232串口或者用USB轉(zhuǎn)RS232串口線連接到計(jì)算機(jī)USB口
- 計(jì)算機(jī)上運(yùn)行超級(jí)終端軟件(windows開(kāi)始菜單-附件-通信-超級(jí)終端)或者串口工具軟件SecureCRT
注意:其它一些串口助手之類(lèi)的軟件不支持控制指令,將導(dǎo)致用戶(hù)看不到字符旋轉(zhuǎn)效果
- 程序運(yùn)行后,串口軟件的窗口將顯示一個(gè)旋轉(zhuǎn)的字符和動(dòng)態(tài)的CPU運(yùn)行時(shí)間,刷新周期為100ms
- 當(dāng)按下USER鍵時(shí),串口軟件的窗口將顯示u/COS-II系統(tǒng)信息
- 當(dāng)按下TAMPER鍵時(shí),串口軟件的窗口將顯示u/COS-II系統(tǒng)所有的任務(wù)名稱(chēng)和對(duì)應(yīng)的任務(wù)優(yōu)先級(jí)
【7】開(kāi)發(fā)工具軟件
- 所有的開(kāi)發(fā)工具軟件路徑 : \光盤(pán)\04.工具軟件
- SecureCRT :一個(gè)優(yōu)秀的功能強(qiáng)大的超級(jí)終端工具
- SourceInsight : 一個(gè)優(yōu)秀的源代碼編輯和瀏覽工具
- KEIL_MDK : KEIL公司開(kāi)發(fā)的集成開(kāi)發(fā)環(huán)境(IDE)軟件
- IAR_EWARM : IAR公司開(kāi)發(fā)的集成開(kāi)發(fā)環(huán)境(IDE)軟件
- J-Link ARM : SEGGER公司開(kāi)發(fā)的J-Link仿真器驅(qū)動(dòng)軟件(無(wú)需IDE支持,可以直接下載程序)
【8】參考資料
- 開(kāi)發(fā)板的用戶(hù)手冊(cè)路徑: \光盤(pán)\01.文檔\01.開(kāi)發(fā)板用戶(hù)手冊(cè)
- 開(kāi)發(fā)板的硬件原理圖路徑: \光盤(pán)\02.硬件資料\01.硬件原理圖
- 開(kāi)發(fā)板所有芯片的數(shù)據(jù)手冊(cè)路徑: \光盤(pán)\02.硬件資料\03.外圍芯片數(shù)據(jù)手冊(cè)
- CPU的型號(hào)、引腳、封裝等詳細(xì)資料,請(qǐng)參考《STM32F103CDE數(shù)據(jù)手冊(cè).pdf》(ST官方發(fā)布的數(shù)據(jù)手冊(cè))
文件路徑: \光盤(pán)\02.硬件資料\02.STM32 CPU數(shù)據(jù)手冊(cè)
- CPU內(nèi)部資源的詳細(xì)介紹,請(qǐng)參考《STM32_RM_CH_V10_1.pdf》(ST官方發(fā)布的參考手冊(cè))
文件路徑: \光盤(pán)\02.硬件資料\02.STM32 CPU數(shù)據(jù)手冊(cè)
- CPU庫(kù)函數(shù)的詳細(xì)使用方法,請(qǐng)參考《stm32f10x_stdperiph_lib_um.chm》(英文)
文件路徑: \光盤(pán)\01.文檔\07.ST庫(kù)函數(shù)手冊(cè)(chm格式,英文)
- u/COS-II相關(guān)函數(shù)的詳細(xì)使用方法,請(qǐng)參考《uCOS-II用戶(hù)手冊(cè).chm》(中文)
文件路徑: \光盤(pán)\03.軟件資料\06.uCOS_II & ucGUI\
- MDK和EWARM開(kāi)發(fā)環(huán)境的教程路徑:\光盤(pán)\01.文檔\02.KEIL和IAR軟件使用教程
|
評(píng)分
-
查看全部評(píng)分
|