移植 uC/OS-III 到 STM32
首先,打开 Micrium 公司官方网站(http://micrium.com/),点击“Downloads”选项卡
进入下载页面,在“Brouse by MCU Manufacturer”栏目展开“STMicroelectronics”,单击“View
all STMicroelectronics”。

可以选择自己的stm32型号进行下载,下载前要登录该网站 。
移植过程
选择一个秉火 STM32 开发板可用的裸机例程作为程序模板,这里准备了一个简单的“LED 流水灯”例程。
拷贝下图路径下 uC/OS-III 源码文件到“APP”文件夹下。


拷贝下图路径下 uC/OS-III 源码文件到“BSP”文件夹下。







将“User”文件夹下的“led”文件夹剪切到“BSP”文件夹里面,并且删除“main.c”文件。 
并对应添加全部文件, 以app为例,其他的不再演示:


全部文件添加之后,再添加路径:


接下来需要对工程文件进行修改。首先修改工程的启动文件“startup_stm32f429_439xx.s”。其中将PendSV_Handler 和 SysTick_Handler 分 别 改 为 OS_CPU_PendSVHandler 和
OS_CPU_SysTickHandler,共两处。还有在复位时使能浮点支持。 

修改三:

“bsp.h”和“bsp.c”文件使用的都是 uC/OS-III 源码的 STM32 板载驱动代码,这里要改成自己的裸机板载驱动代码。“bsp.h”的修改如下:









接下来修改应用文件“app_cfg.h”和“app.c”。 在这里创建一个任务, 叫起始任务, 每
隔 5 秒切换一次 LED1 的亮灭状态,以此来验证 uC/OS-III 系统是否移植成功。
“app_cfg.h”的修改如下:




编译工程,没有错误和警告,下载程序正常运行,LED灯亮灭5s循环,移植成功。
移植 uC/OS-III 到 STM32的更多相关文章
- uc/os iii移植到STM32F4---IAR开发环境
也许是先入为主的原因,时钟用不惯Keil环境,大多数的教程都是拿keil写的,尝试将官方的uc/os iii 移植到IAR环境. 1.首先尝试从官网上下载的官方移植的代码,编译通过,但是执行会报堆栈溢 ...
- 在STM32F401上移植uC/OS的一个小问题 [原创]
STM32F401xx是意法半导体新推出的Cortex-M4内核的MCU,相较于已经非常流行的STM32F407xx和STM32F427xx等相同内核的MCU而言,其特点是功耗仅为128uA/MHz, ...
- uC/OS - III 移植 IAR平台
关于移植uC/OS-III 网上已经有很多教程了此处只是做个记录 首先下载源码然后解压得到下面的文件: 然后在模版工程里新建各种文件夹: 最后全部都添加进工程: OK了,编译一下,惊呆了,竟然 0错误 ...
- uC/OS II原理分析及源码阅读(一)
uC/OS II(Micro Control Operation System Two)是一个可以基于ROM运行的.可裁减的.抢占式.实时多任务内核,具有高度可移植性,特别适合于微处理器和控制器,是和 ...
- 关于uC/OS的简单学习(转)
1.微内核 与Linux的首要区别是,它是一个微内核,内核所实现的功能非常简单,主要包括: 一些通用函数,如TaskCreate(),OSMutexPend(),OSQPost()等. 中断处理函数, ...
- uc/os 任务删除
问题描述: uc/os 任务删除 问题解决: uc/os任务删除流程图 具体代码 注: 如上是关中断,以及取消优先级对应的就绪标志 关中断代码为: 取消就绪标志,实际上是将就绪表中指定 ...
- uc/os任务创建
问题描述: uc/os中任务创建 问题解决: 创建一个任务,任务从无到有.任务创建函数分两种, 一种是基本的创建函数OSTaskCreate, 另一种是扩展的任务创建函数OSTaskCrea ...
- uC/OS 的任务调度解析 (转)
uC/OS 的任务调度解析 1.任务调度器启动之后(初始化,主要是TCB的初始化),就可以创建任务,开始任务调度了,实际上第一个任务准确的说不是进行任务切换,而是进行启动当前最高优先级任务.uC/OS ...
- STM32F40G-EVAL_UC/OS III
micrum官网下载uc/os程序包: 包含文件cotex_M4.h:
- 【原创】uC/OS 中LES BX,DWORD PTR DS:_OSTCBCur的作用及原理
LES BX, DWORD PTR DS:_OSTCBCur ;OSTCBCur->OSTCBStkPtr = SS:SP!!! ], SS ;将当前SS(栈的基地址)寄存器值存放至当前任务控制 ...
随机推荐
- SwaggerUI+SpringMVC——构建RestFul API的可视化界面
今天给大家介绍一款工具,这个工具眼下可预见的优点是:自己主动维护最新的接口文档. 我们都知道,接口文档是非常重要的,可是随着代码的不断更新,文档却非常难持续跟着更新,今天要介绍的工具,完美的攻克了这个 ...
- 14、Java中用浮点型数据Float和Double进行精确计算时的精度问题
一.浮点计算中发生精度丢失 大概很多有编程经验的朋友都对这个问题不陌生了:无论你使用的是什么编程语言,在使用浮点型数据进行精确计算时,你都有可能遇到计算结果出错的情况.来看下面的例子. // 这是一个 ...
- openssh入门
ssh (secure shell),ssh协议支持登录及文件的传输加密防止数据截留! 01.下载 https://www.ssh.com/ ...
- HDUOJ--畅通工程
畅通工程 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- Hex棋
Hex棋,又叫六角棋,译作海克斯棋.据说这个游戏是约翰·纳什发明的.网上并没有太多介绍,第一次听说是在"中国大学生计算机博弈大赛"官网上. 棋盘为11×11的六边形小格子组成,它是 ...
- Wunderlist 云端任务管理(Todo list)工具
Wunderlist 是一个云端任务管理(Todo list)工具,支持 iPhone, iPad, Android, Windows, Mac OSX 以及 Web 端轻松同步,实现了真正意义上的跨 ...
- JQueryMobile开发必须的知道的知识(转)
移动Web页面的基本组成元素: 页面头部,页面内容,页面底部 <!DOCTYPE html> <html> <head> <title>My Page& ...
- 转 MySQL中的共享锁与排他锁
原文链接在MySQL中的行级锁,表级锁,页级锁中介绍过,行级锁是Mysql中锁定粒度最细的一种锁,行级锁能大大减少数据库操作的冲突.行级锁分为共享锁和排他锁两种,本文将详细介绍共享锁及排他锁的概念.使 ...
- jquery插件Flot的简单讲解
只是说一下基本用法,举一两个例子,详细用法请查看官方文档 使用方法是要先引入jquery插件,然后引入flot插件. <script type="text/javascript&quo ...
- spine 2.1.27 Pro 叠加方式(Blending)
将spine更新到2.1.27 Pro,发现有更多的叠加方式可用了,如图: 以前则只有Normal和Additive可选. 更多的叠加方式对于用spine做特效动画还是比较有用的.不过我还没试这些叠加 ...