|
所有资料打包下载:
基于stm32 ucos ucgui的综合例子.rar
(15.05 MB, 下载次数: 384)
/*
*********************************************************************************************************
*
* 例程名称 : uC/OS-II_创建任务&邮箱例程
* uC/OS-II 版本 :V2.86
* ST固件库版本 :V3.4.0
* 例程版本 : V1.0
* 作 者 : armfly
* 开发环境 : KEIL的uVision V3.70、uVision V4.10、IAR的EWARM V5.30
*
*********************************************************************************************************
*/
【1】例程介绍
本例程提供如下功能:
(1) 提供一个基于u/COS-II操作系统的应用程序框架
(2) 演示如何创建多个任务
(3) 演示如何使用邮箱进行两个任务之间的通信
本程序共创建了6个任务:
(1) u/COS-II Idle任务,这是由操作系统创建的空闲任务,优先级最低
(2) u/COS-II Stat任务,这是由操作系统创建的统计任务,统计CPU运行时间、CPU占用率等
(3) u/COS-II Tmr任务,这是由操作系统创建的定时器任务,为应用程序提供软件定时器,未用
(4) AppTaskStart任务,这是由用户创建的启动任务,完成如下工作:
(a) 初始化BSP
(b) 创建1个邮箱AppUserIFMbox
(c) 创建2个任务,1个是用户界面任务AppTaskUserIF,1个是按键检测任务AppTaskKbd
(d) 之后控制LED1指示灯按照100ms的周期闪烁
(5) AppTaskKbd任务,这是由AppTaskStart创建的按键检测任务
按键检测任务AppTaskKbd实时检测USER键和TAMPER键的状态,当有键按下时,则向邮箱AppUserIFMbox
发送一条消息,消息内容为按键码变量的指针。
(6) AppTaskUserIF任务,这是由AppTaskStart创建的用户界面任务
户界面任务AppTaskUserIF等待邮箱中的消息,如果USER键按下的消息则打印u/COS-II系统信息,如果
收到TAMPER键按下则打印所有的任务名称和任务优先级;如果没有收到任何信息则打印一个旋转的字符和
CPU运行时间(单位为1个滴答)。
【2】例程文件夹说明
├─Libraries : 存放第3方提供的库或其源代码,这些代码一般是成熟的并经过验证的代码。
│ ├─CMSIS : CMSIS中间件源代码(目的是提供统一的调试接口),这是ST官方提供的固件库的一部分。
│ ├─STM32F10x_StdPeriph_Driver : STM32F10x系列MCU的固件库源代码,这是ST官方提供的固件库的核心代码。
│ └─uCOS-II : u/COS-II操作系统源代码,这是Micrium公司开发的多任务操作系统。
│
├─User : 这里存放用户自己编写的源代码
│ ├─app : 存放应用程序源代码
│ └─bsp : 存放底层驱动程序源代码,也就是板级支持包
│
└─project : 这里存放各类开发工具的工程文件
├─EWARMv5 : IAR公司EWARM工程文件
├─MDK-ARM(uV3) :KEIL的MDK工程文件,uVision3版本。uV3不能打开uV4版本的工程。
├─MDK-ARM(uV4) : KEIL的MDK工程文件,uVision4版本。uV4可以打开uV3版本的工程。
└─SourceInsight :SourceInsight工程文件,这是一款源代码编辑和浏览工具。
【3】工程中源代码分组说明
└─Flash : Target名称:Flash、CpuRAM 或 ExtSRAM
├─APP : 用户自己编写的应用程序
├─BSP : 用户自己编写的底层驱动程序
├─RVMDK : 和IDE开发工具相关的启动代码,一般是汇编源代码
├─StdPeriph_Driver : STM32F10x系列MCU的固件库源代码
├─CMSIS : CMSIS中间件源代码
├─uCOS-II/Source : u/COS-II操作系统源代码
├─uCOS-II/Port : u/COS-II操作系统内核接口层源代码
├─uCOS-II-CPU : u/COS-II操作系统CPU接口层源代码
├─Scatter : KEIL链接器用到的链接配置文件
└─Doc : 存放一些文档
【4】工程中Target说明
Flash : 目标代码定位在CPU内部Flash。ROM地址: 0x08000000 RAM地址: 0x20000000
CpuRAM : 目标代码定位在CPU内部RAM。 ROM地址: 0x20000000 RAM地址: 0x20008000
ExtSRAM : 目标代码定位在外部SRAM。 ROM地址: 0x68000000 RAM地址: 0x20000200 (前面0x200空间存放
中断向量表)
【5】资源占用情况
【安富莱STM32F103ZE-EK开发板V2和V3】
- CPU时钟: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线模式,无硬件流控,即无CTS和RTS口线
d) 波特率为115200bps
e) 8个数据位、1个起始位、1个停止位、无校验位、bit0先传输
f) 软件查询方式,未用中断
- CPU的中断
a) PendSV Handler 用于u/COS-II内核,直接调用OSPendSV()函数
b) SysTick_Handler 用于u/COS-II滴答,调用了Tmr_TickISR_Handler()函数
【安富莱STM32F103VE-EK开发板】
- CPU时钟:72MHz
- CPU的GPIO:
a) PB15连接了LED1指示灯,输出低电平点亮LED
b) PE1连接了USER键,低电平表示按下
c) PC13连接了TAMPER键,低电平表示按下
- CPU的USART1:
a) PA9用于USART1的TX,连接到板子上的RS232芯片(SP3232)
b) PA10用于USART1的RX,连接到板子上的RS232芯片(SP3232)
c) 串口为2线模式,无硬件流控,即无CTS和RTS口线
d) 波特率为115200bps
e) 8个数据位、1个起始位、1个停止位、无校验位、bit0先传输
f) 软件查询方式,未用中断
- CPU的中断
a) PendSV Handler 用于u/COS-II内核,中断向量等于OSPendSV()函数地址
b) SysTick_Handler 用于u/COS-II滴答,调用了Tmr_TickISR_Handler()函数
【6】调试方法
- 可以选择IAR的EWARM或者KEIL的MDK两种IDE进行开发调试
- 工程文件\Project\EWARMv5\project.eww,可以使用EWARM打开
- 工程文件\Project\MDK-ARM(uV3)\project.Uv2,可以使用MDK(uV3)打开
- 工程文件\Project\MDK-ARM(uV4)\project.uvproj,可以使用MDK(uV4)打开
- 工程文件\Project\SourceInsight\Demo.PR,可以使用SourceInsight打开
- 使用ARM仿真器(J-Link、ST-Link、U-Link)下载程序,或者通过串口ISP下载程序
- 支持在CPU内部Flash中调试、在CPU内部RAM中调试、在外部SRAM中调试
- 将开发板的COM1串口用一根直连串口线连接到计算机的RS232串口或者用USB转RS232串口线连接到计算机USB口
- 计算机上运行超级终端软件(windows开始菜单-附件-通信-超级终端)或者串口工具软件SecureCRT
注意:其它一些串口助手之类的软件不支持控制指令,将导致用户看不到字符旋转效果
- 程序运行后,串口软件的窗口将显示一个旋转的字符和动态的CPU运行时间,刷新周期为100ms
- 当按下USER键时,串口软件的窗口将显示u/COS-II系统信息
- 当按下TAMPER键时,串口软件的窗口将显示u/COS-II系统所有的任务名称和对应的任务优先级
【7】开发工具软件
- 所有的开发工具软件路径 : \光盘\04.工具软件
- SecureCRT :一个优秀的功能强大的超级终端工具
- SourceInsight : 一个优秀的源代码编辑和浏览工具
- KEIL_MDK : KEIL公司开发的集成开发环境(IDE)软件
- IAR_EWARM : IAR公司开发的集成开发环境(IDE)软件
- J-Link ARM : SEGGER公司开发的J-Link仿真器驱动软件(无需IDE支持,可以直接下载程序)
【8】参考资料
- 开发板的用户手册路径: \光盘\01.文档\01.开发板用户手册
- 开发板的硬件原理图路径: \光盘\02.硬件资料\01.硬件原理图
- 开发板所有芯片的数据手册路径: \光盘\02.硬件资料\03.外围芯片数据手册
- CPU的型号、引脚、封装等详细资料,请参考《STM32F103CDE数据手册.pdf》(ST官方发布的数据手册)
文件路径: \光盘\02.硬件资料\02.STM32 CPU数据手册
- CPU内部资源的详细介绍,请参考《STM32_RM_CH_V10_1.pdf》(ST官方发布的参考手册)
文件路径: \光盘\02.硬件资料\02.STM32 CPU数据手册
- CPU库函数的详细使用方法,请参考《stm32f10x_stdperiph_lib_um.chm》(英文)
文件路径: \光盘\01.文档\07.ST库函数手册(chm格式,英文)
- u/COS-II相关函数的详细使用方法,请参考《uCOS-II用户手册.chm》(中文)
文件路径: \光盘\03.软件资料\06.uCOS_II & ucGUI\
- MDK和EWARM开发环境的教程路径:\光盘\01.文档\02.KEIL和IAR软件使用教程
|
评分
-
查看全部评分
|