将 uC/OS III 移植到 STM32开发板

操作软件平台: Keil uVision5, Mac下的Windows10虚拟机

我用的是野火团队的STM32F103VET6开发板,野火的淘宝店铺:https://m.tb.cn/h.3pZzHil

OK!开始吧!

第一步: 安装Keil uVision5 ,该软件是由ARM公司提供,官网下载地址:http://www.keil.com/download/product/ ,这里给大家提供以下链接含MDK/Keil软件,F1/F4/F7芯片包及破解工具。该分享由网友提供,免去了大家从官网更新芯片包下载慢的麻烦,破解工具仅供学习交流使用,请支持正版。百度云下载链接:http://pan.baidu.com/s/1bpc7Xmf

第二步: 下载uC/OSIII源码, 官网地址:https://www.micrium.com/ ,点进download, 在Browse by MCU Manufacturer下面选STMicroelectronics, 点View all STMicroelectronics.
选择这个版本进行下载,下载需要先注册登陆Micrium.
第三步: 下载uC/OSIII例程, 这里提供给大家一个简单的LED流水灯例程,网盘下载链接:https://pan.baidu.com/s/1SbWjigi7V-KnuypTxtYofw ,提取码:2eee

在LED流水灯 >User下面新建一个APP文件夹 和一个BSP文件夹,

将Micrium源码里的Micrium>Software>EvalbBoards>Micrium>uC-Eval-STM32F107>uCOS-III里的如下文件拷贝到APP文件夹中,在这里插入图片描述
将Micrium源码里的Micrium>Software>EvalbBoards>Micrium>uC-Eval-STM32F107>BSP里的bsp.c和bsp.h拷贝到BSP文件夹里,在这里插入图片描述
下一步将Micrium>Software>uC-CPU,uC-LIB,uCOS-III拷贝到LED流水灯>User目录下,这三个文件下每个文件夹下都有两个这样的GNU,IAR文件是多余的,由于Keil MDK仅使用到RealView编译器,所以这两个无关编译器文件可以删掉在这里插入图片描述
然后将User文件夹下的led文件夹剪切到BSP文件夹里面,并且删除main.c文件.

第四步: 用Keil打开工程文件,移除废弃文件在这里插入图片描述
第五步: 给工程添加如下组件
在这里插入图片描述
为APP添加\User\APP下的所有文件在这里插入图片描述

为BSP组件添加\User\BSP文件夹下所有文件和\User\BSP\led下的.c文件

为uC/CPU组件添加\User\ uC-CPU文件夹下的所有文件和\User\ uC-CPU\ARM-Cortex-M3\ RealView文件夹下的所有文件

为uC/LIB组件添加\User\ uC-LIB文件夹下的所有文件和\User\ uC-LIB\Ports\ARM-Cortex-M3\ RealView文件夹下的所有文件

为uC/OS-III Source组件添加\User\ uCOS-III\ Source文件夹下的所有文件。

为uC/OS-III Port组件添加\User\uCOS-III\Ports\ARM-Cortex-M3\Generic\RealView文件夹下的所有文件。

第六步: 打开“Options for Target”窗口,给工程添加包含路径在这里插入图片描述
在这里插入图片描述
第七步: 编译项目, 发现有两个错误, 别慌!

第八步: 修改:

将<stm32f10x_lib.h>改成<stm32f10x.h>在这里插入图片描述
在startup_stm32f10x_hd.s中做如下两处修改
在这里插入图片描述
在cpu_cfg.h中的修改CPU_CFG_TS_32_EN,将其改为使能.在这里插入图片描述
同样在cpu_cfg.h中,在这里插入图片描述
在bsp.h中修改如下头文件,在这里插入图片描述
同样bsp.h中头文件段落以下代码全部删掉,只保留两个函数原型声明删完是这样的在这里插入图片描述
在bsp.c中删掉如下两个驱动函数,并修改初始化函数.在这里插入图片描述在这里插入图片描述
同时在bsp.c中做以下修改,在这里插入图片描述
在app_cfg.h中,将APP_CFG_SERIAL_EN改为DEF_DISABLED在这里插入图片描述
在app.c中,删除BSP_InitDisAll();在这里插入图片描述
并在起始任务函数中修改控制LED亮灭的函数在这里插入图片描述
app.c中如下这两个函数声明及其函数体都删掉,因为这两个函数的函数体是空的,且这两个函数没有被使用,在这里插入图片描述
然后编译就没有错误啦!

秉火的STM32开发板用的USB转串口的驱动芯片是CH340,你可以直接去野火的论坛去下载,你要是懒,emmmm点这里吧(https://pan.baidu.com/s/1VBvrXh2uv3dt31jINSuYyw 密码:m2pr) ,连接板子,给开发板上电.

第九步:

然后打开 mcuisp 软件,配置如下:

1搜索串口,设置波特率 115200(尽量不要设置的太高)

2选择要下载的 HEX 文件

3校验、编程后执行

4DTR 低电平复位,RTS 高电平进入 bootloader

5开始编程。(如果出现一直连接的情况,按一下开发板的复位键即可)在这里插入图片描述
这就是一个简单的能在STM32开发板上面跑起来的例程, 接下来你就可以发挥你的想象力和编码能力啦, 想做什么就自己动手吧!!

更多问题请访问野火🔥的论坛www.fireBBS.cn

(本篇文章参考野火教程资料,如侵联)