写在前面:
很高兴获得这次试用机会,一直很想了解国内ARM MCU的发展,尤其是GD32系列的MCU。我也成功获得了第一次使用arm M4内核单片机的机会。
因为个人以后可能需要使用RT-Thread的一些功能在全国大学生智能车比赛中,遂决定做移植RT-thread的操作。
在我痛苦的移植过程中,我看见已经有其他开发者做出了标准版和nano的移植,我发现自己思路好像有些问题,遂部分参考,并且加以完善。争取以零基础视角完成这次移植工作
参考文章https://aijishu.com/a/1060000000372332
我收到的GD32F427RKT6开发板,好像有些人收到的GD32F427V。两者基本没有区别,包括内部存储等,好像开发板的电路略有区别,诸如gdlink的主控gd32f103一个贴正面一个贴反面
准备工具:keil(推荐5.34.0,因为是arm complier 5,6共存的版本)
Git(https://git-scm.com/)
Rt-thread env软件(https://www.rt-thread.org/download.html#download-rt-thread-studio)
可选工具:
Vscode(修改配置文件利器,https://code.visualstudio.com/)
Rt-thread studio(https://www.rt-thread.org/download.html#download-rt-thread-studio)
Pyocd 一种烧写工具 pip install pyocd
pyocd pack install gd32f427R
pyocd list
例程的使用
1、首先我们获取到一些官方库文件和例程
https://aijishu.com/a/1060000000356925
2、在keil pack管理器中导入GD32f4xx AddOn的pack
3、做一些配置 使之可以编译和下载
打开options for target
选择Device中查看是否有GD32F427RK
选择在debug设置中进行如下操作 选择CMSIS-DAP,打开JTAG 就可以愉快的debug了
4、随后对demo进行编译操作
GD32F4xx\\_Demo\\_Suites\\_V2.6.1\GD32427R\\_START\\_Demo\\_Suites\Projects,其中如果使用MDK5,需要使用project->manage->migrate to Version 5 Format方式转为MDK5
如果发现无法编译,可以将ARM complier切换为5版本
就可以看见led闪烁的demo已经通过GDLink被刷写进去了
5、随后可以选择打上断点,在debug里面进行调试
移植RT-thread
1、首先拉去RT-thread官方仓库
git clone https://gitee.com/rtthread/rt-thread
同时他们也在github上有仓库https://github.com/RT-Thread/rt-thread
仓库中已经有407的库文件,所以我们少量更改即可移植427
移植407的文档可供参考https://gitee.com/rtthread/rt-thread/blob/gitee\\_master/bsp/gd32/arm/docs/GD32\\_ARM%E7%B3%BB%E5%88%97BSP%E5%88%B6%E4%BD%9C%E6%95%99%E7%A8%8B.md
2、我们进入\rt-thread\bsp\gd32\arm\
找到gd32407v-start,复制一份后命名为gd32427R-start
3、修改配置文件,以MDK5为例
打开template.uvprojx,不要打开project.uvprojx
选择Device中查看是否有GD32F427RK,修改为GD32F427RK
与前面跑例程时候类似,选择在debug设置中进行如下操作 选择CMSIS-DAP,打开JTAG
4、随后下载官方库文件,更新库文件
在\bsp\gd32\arm\libraries添加
5、修改bsp\gd32\arm\gd32f427v-start\board\Sconscript
第25行改为GD32F427
6、修改串口配置
参考其他大佬的帖子,我修改了串口引脚(以下为大佬原文,非原创)
默认串口引脚PA9在GD32F427V-Start上不能使用,所以需要修改为其他的复用串口引脚,在项目文件/libraries/gd32\\_drivers/drv\\_usart.c里面修改,如下图:
7、ENV工具设置
使用cd等指令进入你的项目文件夹,
输入menuconfig进行配置
通过方向键和enter进入→ Hardware Drivers Config → On-chip Peripheral Drivers → Enable UART。敲击空格 配置uart0
进入→ RT-Thread Kernel → Kernel Device Object,
随后使用左右方向键
移动到save 保存,退出
8、编译
使用scons
进行编译
使用 scons --target=mdk5//注意小写
生成mdk5工程文件,也可以生成mdk4,iar等文件
也可以使用 scons –dist
生成打包好的工程文件在dist目录下
即可使用
也可以选择在RT-Thread studio打开项目
------------- 和测评无关的分割线 -------------
写在最后:
先期末去了,期末后把排针焊上,用串口链接msh跑个分,看一下f427多强(碎碎念 不是很明白为什么不给排针)