淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com 《手把手教你学STM32-UCOS》 主讲人 :正点原子团队 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com 开源电子网 公众平台:“正点原子” 官方网站:www.alientek.com 联系电话:13922348612 ddddd ALIENTEK 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com 《手把手教你学STM32-UCOS》 UCOSII在STM32F407上的移植 适用平台 STM32F1xx 开发板 (正点原子) STM32F4xx 开发板 (正点原子) ddddd 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com 目录 UCOSII移植准备工作 1 UCOSII简介 2 UCOSII测试软件设计 3 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
UCOSII在STM32F407上的移植 参考资料: 探索者STM32F4开发板 Micrium官方资料: 《STM32F4 UCOS开发手册》-第一章 UCOSII移植 Micrium官方资料: 《The Definitive Guide to ARM Cortex-M3 and Cortex-M4 Processors, 3rd Edition》(就是开发板光盘中的Cortex-M3和M4权威指南) 《Cortex-M4 Devices Generic User Guide》 www.themegallery.com
淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com 1、UCOSII移植准备工作 1.1 准备基础工程: 移植的时候需要一个基础工程,为了方便起见我们就选取跑马灯实验作为UCOSII移植的基础工程。 1.2 UCOSII源码: (1)、Micrium官网下载。 (2)、开发板光盘自带。 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com 2、UCOSII移植 2.1、UCOSII移植步骤: Step2 Step4 Step6 Step3 Step5 Step1 在基础工程中建立相应的文件夹:CONGIF、CORE和PORT 向CORE文件夹添加文件 向CONFIG文件夹添加文件 向PORT文件夹添加文件 将UOCOSII源码添加到工程中 修改sys.h文件 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com 2、UCOSII移植 UCOSII移植过程应注意事项: 1、向工程中添加文件时不要添加ucos_ii.c文件。 2、一定要将宏SYSTEM_SUPPORT_UCOS设置为1。 3、修改文件os_cpu_c.c文件中的函数OSTaskStkInit()。 4、stm32f4x_it.c文件中屏蔽掉PendSV_Handler()和SysTick_Handler() 这两个函数。 5、由于STM32F407内部带有FPU,所以在移植UCOSII的时候一定要注意对于FPU的处理! 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
2、UCOSII移植 2.2、CONGIF中文件: 2.3、PORT中文件: CONFIG中文件如下表: 文件名 描述 includes.h 包含一些头文件 os_cfg.h UCOSII配置文件 2.3、PORT中文件: PORT中文件如下表: 文件名 描述 os_cpu.h 头文件 os_dgb.c 调试相关文件 os_cpu_a.asm 汇编文件,完成任务切换 os_dgb_r.c os_cpu_c.c 与CPU相关文件,移植时需要修改
2、UCOSII移植 2.4、CORE中文件: CORE中文件如下表: 文件名 描述 os_core.c UCOSII内核文件。 os_flag.c UCOSII事件标志组相关文件。 os_mbox.c UCOSII消息邮箱文件。 os_mem.c UCOSII内存管理文件。 os_mutex.c UCOSII互斥信号量文件。 os_q.c UCOSII消息队列文件。 os_sem.c UCOSII信号量文件。 os_task.c UCOSII任务相关文件。 os_time.c UCOSII与时间相关文件 os_tmr.c UCOSII软件定时器相关文件。
2、UCOSII移植 2.5、UCOSII体系结构:
淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com 3、UCOSII测试软件设计 3.1、测试软件设计要求: (1)、创建一个start_task任务,Start任务用来创建其他任务。 (2)、创建一个led0_task任务,用来控制LED0的亮灭。 (3)、创建一个led1_task任务,用来控制LED1的亮灭。 (4)、创建一个float_task任务,用来测试浮点计算。 任务 任务优先级 任务堆栈(X4) 备注 statrt_task 10 128 led0_task 7 led1_task 6 float_task 5 任务堆栈8字节对齐 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com 3、UCOSII测试软件设计 3.2、实验结果分析: 分析实验结果是否达到程序设计要求,如果和实际要求结果不同的话需要分析是软件设计问题还是UCOSII移植过程中的问题。 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com 谢谢您对“正点原子”团队的支持 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com