为了账号安全,请及时绑定邮箱和手机立即绑定

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

标签:
Java

操作软件平台: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.

webp

选择这个版本进行下载,下载需要先注册登陆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文件夹中,

webp

将Micrium源码里的Micrium>Software>EvalbBoards>Micrium>uC-Eval-STM32F107>BSP里的bsp.c和bsp.h拷贝到BSP文件夹里,

webp

下一步将Micrium>Software>uC-CPU,uC-LIB,uCOS-III拷贝到LED流水灯>User目录下,这三个文件下每个文件夹下都有两个这样的GNU,IAR文件是多余的,由于Keil MDK仅使用到RealView编译器,所以这两个无关编译器文件可以删掉

webp

然后将User文件夹下的led文件夹剪切到BSP文件夹里面,并且删除main.c文件.

第四步:用Keil打开工程文件,移除废弃文件

webp

第五步:给工程添加如下组件

webp

为APP添加\User\APP下的所有文件

webp

文件类型要选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”窗口,给工程添加包含路径

webp

webp

第七步:编译项目, 发现有两个错误, 别慌!

第八步:修改:

将<stm32f10x_lib.h>改成<stm32f10x.h>

webp

在startup_stm32f10x_hd.s中做如下两处修改

webp

在cpu_cfg.h中的修改CPU_CFG_TS_32_EN,将其改为使能.

webp

同样在cpu_cfg.h中,

webp

在bsp.h中修改如下头文件,

webp

同样bsp.h中头文件段落以下代码全部删掉,只保留两个函数原型声明删完是这样的

webp

在bsp.c中删掉如下两个驱动函数,并修改初始化函数.

webp

webp

同时在bsp.c中做以下修改,

webp

在app_cfg.h中,将APP_CFG_SERIAL_EN改为DEF_DISABLED

webp

在app.c中,删除BSP_InitDisAll();

webp

并在起始任务函数中修改控制LED亮灭的函数

webp

app.c中如下这两个函数声明及其函数体都删掉,因为这两个函数的函数体是空的,且这两个函数没有被使用,

webp

然后编译就没有错误啦!

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

第九步:

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

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

2选择要下载的 HEX 文件

3校验、编程后执行

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

5开始编程。(如果出现一直连接的情况,按一下开发板的复位键即可)

webp

这就是一个简单的能在STM32开发板上面跑起来的例程, 接下来你就可以发挥你的想象力和编码能力啦, 想做什么就自己动手吧!!



作者:HurryChen
链接:https://www.jianshu.com/p/cb7d31f2c900


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消