军军 · 2022年12月17日 · 上海市杨浦区

【GD32F427开发板试用】从0开始到RTthread移植

写在前面:
很高兴获得这次试用机会,一直很想了解国内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

pic2.png

3、做一些配置 使之可以编译和下载

打开options for target
选择Device中查看是否有GD32F427RK
选择在debug设置中进行如下操作 选择CMSIS-DAP,打开JTAG 就可以愉快的debug了

pic3.png

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版本

4.png

就可以看见led闪烁的demo已经通过GDLink被刷写进去了

5、随后可以选择打上断点,在debug里面进行调试

5.png

6.png

移植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

7.png
与前面跑例程时候类似,选择在debug设置中进行如下操作 选择CMSIS-DAP,打开JTAG

4、随后下载官方库文件,更新库文件

在\bsp\gd32\arm\libraries添加

8.png

9.png

5、修改bsp\gd32\arm\gd32f427v-start\board\Sconscript

10.png
第25行改为GD32F427

6、修改串口配置

参考其他大佬的帖子,我修改了串口引脚(以下为大佬原文,非原创)
默认串口引脚PA9在GD32F427V-Start上不能使用,所以需要修改为其他的复用串口引脚,在项目文件/libraries/gd32\\_drivers/drv\\_usart.c里面修改,如下图:
11.png

7、ENV工具设置

使用cd等指令进入你的项目文件夹,
输入menuconfig进行配置
通过方向键和enter进入→ Hardware Drivers Config → On-chip Peripheral Drivers → Enable UART。敲击空格 配置uart0

12.png
进入→ RT-Thread Kernel → Kernel Device Object,

13.png
随后使用左右方向键

14.png
移动到save 保存,退出

8、编译

使用
scons
进行编译

使用
scons --target=mdk5//注意小写
生成mdk5工程文件,也可以生成mdk4,iar等文件

也可以使用
scons –dist
生成打包好的工程文件在dist目录下

即可使用

也可以选择在RT-Thread studio打开项目

------------- 和测评无关的分割线 -------------
写在最后:
先期末去了,期末后把排针焊上,用串口链接msh跑个分,看一下f427多强(碎碎念 不是很明白为什么不给排针)

推荐阅读
关注数
10711
内容数
187
中国高性能通用微控制器领域的领跑者兆易创新GD系列芯片技术专栏。
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息