引言
目前的RT-Thread其实已经支持很多品牌的单片机了,对国产芯片的支持也很好,只不过很多人还不会移植。本文主要讲解移植GD32的单片机,如果你是其它类型的可以通用!
另外,如果你用STM32系列的芯片,建议你考虑下用RT-Studio,这个软件支持全系STM32的芯片。但是有好多芯片还不能支持,不支持的话就看今天的这个,主要用ENV工具配置环境和生成Keil工程。
一、下载RT-Thread和ENV工具
1.1 下载ENV工具
先下载ENV吧。下载后解压到你平时放软件的地方,因为这个软件解压就能用了。
安装好后运行env.exe 然后设置一下右键启动就可以了。
1.2 下载RT-Thread源码
下载地址:直接进去下载zip吧,有点大。
https://gitee.com/rtthread/rt-thread
下载下来进行解压。注意!路径不要有中文或特殊符号,不然会有一些莫名其妙的问题。
解压出来发现1.8G,不要慌!进入到 rt-thread-master\bsp 目录下,找到你自己芯片的品牌,以我的gd32为例,然后把除了gd32之外的文件全删掉只剩下gd32的文件。这时候你会发现,文件夹一下子变小了,才80M。
下一步,进入gd32文件。由于我的单片机是GD32F427系列的,属于arm架构芯片。所以把另外的risc-v删了
然后进入 arm 文件夹,里面有一些工程模板和开发板的模板。我的单片机是GD32F427,这时你可能会像我一样发现没有符合自己型号的文件,怎么办呢?先查看你芯片的内核是什么,例如我的是Cortex-M4,GD32F407也是Cortex-M4,基本上只要是F4系列都差不多是M4内核,所以复制一个内核一样的文件出来然后改个名。
进入GD32F427文件夹,删掉带有project名字的文件和Keil4的工程文件。
然后点开template.uvprojx,这是Keil5版本的MDK工程(如果你的是Keil4就用另一个的)。
点开后更换芯片型号为GD32F427VG,然后关闭保存退出。
至此,一个属于GD32F427VG的模板就做好了。下一步开始移植。
二、移植
去到你自己的项目目录下,新建一个项目文件,我的:GD32_Project
然后在里面新建3个子文件夹:Libraries、Project、RT_Thread。
- Libraries:存放单片机内核代码和外设驱动的库。
- Project:是存放自己编写的工程代码的地方,也就是Keil等等的主要在这下面编程。
- RT_Thread:存放RT-Thread代码的库。
2.1 配置Libraries文件夹
进入 rt-thread-master\bsp\gd32\arm\libraries 目录下,复制合适你自己芯片的固件。一共3个。复制到我们自己创建的Libraries文件夹下。
2.2 配置RT_Thread文件夹
在我们下载的RT-Thread源码中复制以下文件到我们自己的RT_Thread文件夹下
2.3 配置Project文件夹
把之前做好的GD32F427文件夹!里面!的内容复制到Project文件里面去。我这里不用Keil4,所以把Keil4的项目文件删了,保留了Keil5的。
下一步,配置template。主要配置一些常用项,千万别改这个工程名。我这里演示配置一下下载器、项目输出文件名等...
按照你自己的需要去设置,改完记得保存退出。
2.4 配置ENV
在项目文件夹空白地方右键,打开ComEmu Here,这个就是ENV。
输入命令回车,发现报错。这个就是我们移植改变目录后工具找不到库,问题不大,只需两步就改好了。
开始解决问题。打开本目录下的 Kconfig 文件,修改 RTT_DIR 的参数为我们自己创建的 RT_Thread 文件夹目录。两个点表示上一级目录。
打开 SConstruct 文件也更改一下路径
完事,重启启动ENV,输入菜单配置命令。发现可以成功打开这个节目了,这么说明没有问题了。
三、简答配置和测试移植环境
打开ENV后,简单介绍一下里面的控制。
- 回车:进入 或 选择。
- ESC:返回 和 退出。
- 键盘y:使能或者启用某个功能。
- 键盘y:关闭某个功能。
- 小键盘的上下左右:在里面可以控制要选择的选项。
3.1 打开LOG(如已打开,请忽略)
进入 RT-Thread Kernel ---> 然后打开 Enable debugging features 功能,然后进去,最后打开这两项。
退出到首界面,然后进入到按图中路径依次进入到当前界面,打开串口功能。
3.2 scons生成keil5工程
配置完后输入以下命令就可以生成keil5工程。
scons --target=mdk5
生成成功,可以看见目录下多了一些东西。
点开生成的keil5工程可以看到已经自动添加好 .c 文件、头文件路径包含、全局宏定义等等的。
编译。0 错误 0 警告,移植完毕。
结尾
使用ENV工具改的配置其实就是改根目录下的 rtconfig.h 文件而已,之所以用这个工具主要还是可以自动生成Keil5工程,包括后续添加自己的模块、添加RT-Thread的组件包等等的。添加完后自动生成工程架构。
如果你想学习如何使用ENV工具配置自动下载添加组件包、以及如何自动添加自己的模块文件。点赞关注,后面有时间我会继续更新。
有问题评论区见。