将 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下的所有文件
文件类型要选All files为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
(本篇文章参考野火教程资料,如侵联)