利用STM32CubeMx创建关于RT-Thread的Makefile工程

利用STM32CubeMx创建关于RT-Thread的Makefile工程

一、序言

说到为什么要建立Makefile工程,还要从我的老年机(PC)说起,实在是有点跟不上了。于是我换了ArchLinux系统,开始向Linux系统迈进,开始学着在Linux下进行开发,于是才有了在Linux下开发RT-Thread的念头。我也看了RTT官方的文档,确实也有在Linux下开发的说明。但却是利用Scons和Env进行构建和编译的,也确实是很方便、很nice!但是我对scons一点不懂,而且我想利用Make进行构建编译,所以就必须要创建Makefile工程。恰好RTT官方也有利用STM32CubeMx建立RT-Thread的例程,这不巧了吗这不,那就开始干吧。

二、搭建环境

由于我手头上的板子是STM32F103ZE,所以我就以它举例了!打开STM32CubeMx,首先要添加RT-Thread的软件包,找到Help 菜单下的Manage embedded software packages,选择From UrlNew,添加链接https://www.rt-thread.org/download/cube/RealThread.RT-Thread.pdsc,这部分可以参考官方的说明文档

三、开始建立工程

第一步、选择芯片型号选择单片机型号
第二步、选择RT-Thread组件
选择组件
第三部、再配置组件(可以默认配置,有需要在修改)
配置rtt
第四步、生成工程
在这里插入图片描述

四、修改Makefile

我们不妨可以先进入工程目录,先make一下。不出所料,肯定是有错误的。如图错误1
这是因为rtthread已经帮我们实现了这个函数,其实还有两个函数,我们可以在stm32f1xx_it.c中注释掉。1
2
改完之后我们可以再编译一下。结果还是要出错。如下图:error2
这个错误我们需要在Makefile中添加一个.s文件3
改完之后我们在make一下,终于是没错误了!哈哈。make
此时我们可以在main.c中创建个线程,点个灯验证一下是不是成功了。经过几番折腾,灯依然是不闪烁,说明哪里出错了。这里我是在网上找了到了这位大神,需要在启动文件中修改一下用户函数入口(这里其实在链接文件中也有线索),修改如图:4
再次编译下载到单片机,等果然开始闪烁了,说明内核已经移植成功了!下面验证RT-Thread的FinSH,结果串口不能输入,也不能输出……

五、修改链接文件

串口没有输出说明FinSH还没有移植成功,此时内心有点问候它星星的意思了……在确定代码没错的前提下,那只能是程序没有被执行。于是查看链接文件,看了半天也没看出什么名堂,后来我拿官方在keil移植编译成功的链接文件进行比较,结果有惊天发现:5
当看到串口有输出,可以输入命令,灯在闪烁,我知道RT-Thread移植成功啦!

总结

总的来说并不是那么容易,但是过程是好的,学到了东西。在任何移植系统的过程中,难免会遇到奇怪的问题,但是总是有章可循的,实在不实行我们还可以百度、谷歌,毕竟大神还是有的。其实移植系统可以学到很多东西的,可以充分了解系统结构。最后附上我的工程

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值