【GD32F427开发板试用】2. RT-Thread标准版移植
创始人
2024-05-24 17:12:16
0

本篇文章来自极术社区与兆易创新组织的GD32F427开发板评测活动,更多开发板试用活动请关注极术社区网站。作者:hehung

之前的帖子

【GD32F427开发板试用】1. 串口实现scanf输入控制LED

前言

一个嵌入式系统对于单片机开发可以事半功倍,目前常用的嵌入式系统有FreeRTOS以及RT-Thread,RT-Thread是国内的开元嵌入式操作系统,使用起来很方便,还支持Shell,本次将RT-Thread移植到GD32F427上。

本文主要实现如下功能:

  1. 基于RT-Thread 现在gd32407v-start的BSP更新为GD32F427V-Start的BSP,在MDK上完成RT-Thread标准版适配;
  2. 修改FINSH默认串口配置;
  3. 使用RT-Thread Stdio开发GD32F427V-start。

BSP移植源码以及资料下载:

源码可以直接在Gitee上下载,国内访问很快。
https://gitee.com/rtthread/rt-thread
当然也可以使用Github:https://github.com/RT-Thread/rt-thread
BSP制作过程中需要用到ENV工具。
EVN工具下载地址:https://www.rt-thread.org/download.html
ENV工具使用教程
ENV工具教程:https://www.rt-thread.org/document/site/#/development-tools/env/env?id=env-%E7%9A%84%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95

RT-Thread官方基于gd32f407v-start有较为详细的移植教程。
移植教程: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

移植工作

BSP

参考官方gd32f407v-start的移植教程,进行移植,因为gd32F407V-start与gd32f427v-start相似度很高,移植起来修改很小。

创建gd32f427v-start工程

进入目录: rt-thread-gitee_master\bsp\gd32\arm,将gd32f407v-start工程拷贝一份,更名为gd32f427v-start。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VDtA9nI3-1675930135219)(/img/bVbI1h)]

更新工程配置

如果使用的是MDK5,打开template.uvprojx文件,在MDK5上修改相关配置;
如果使用的是MDK4,打开template.uvproj文件,在MDK4上修改相关配置。

此处注意:必须要打开template.uvprojx/template.uvproj文件,不要打开project.uvprojx/project.uvproj。

  1. 修改目标设备
    如下,选择GD32F427VK
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZDablDL3-1675930135220)(/img/bVbI1i)]

  2. 修改调试器
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SBxpUmUG-1675930135220)(/img/bVbI1k)]

之后保存退出,即可。

更新库文件

将我们下载的最新的GD32F4xx_Firmware_Library库更新到:xxx/rt-thread-gitee_master\bsp\gd32\arm\libraries
因为RT-Thread官方并不会计时更新库,官方的库不包含对F427V的支持,需要更新到最新的库;
更新下图的内容
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Fhuep2uK-1675930135221)(/img/bVbI1m)]

修改librariex下的Kconfig文件

修改如下,删除不需要的配置。

config SOC_FAMILY_GD32boolconfig SOC_SERIES_GD32F4boolselect ARCH_ARM_CORTEX_M4select SOC_FAMILY_GD32

修改gd32f427v-start/SConstruct文件

本文件主要修改编译后的elf以及map文件名,不该也可以。
我修改为如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-u1DuWwGF-1675930135221)(/img/bVbI1n)]

修改链接文件

连接文件在gd32f427v-start/board/linker_scripts下,链接文件中主要修改RAM预计FLASH的起始,结束地址,通过查看数据手册,GD32F427vk的RAM大小为256KB,FLASH大小为3072KB。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cEl6NUcQ-1675930135221)(/img/bVbI1o)]

注意:虽然RAM地址为256KB,但是链接文件中只能写196KB的大小,不然heap初始化会进入硬件异常,我也不清楚具体原因,查看了用户手册,发现应该是内部RAM可用范围为196KB的原因,如下图,112+64+16 = 192KB。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-D1qksFkh-1675930135222)(/img/bVbI1p)]

GD32F427V的RAM大小为192KB,因为GD32F427VK只能用192KB,所以三个链接文件都不需要进行更新,可以直接使用。

修改board/Sconscript

修改如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NC10lTy1-1675930135222)(/img/bVbI1q)]

修改串口引脚

默认串口引脚PA9在GD32F427V-Start上不能使用,所以需要修改为其他的复用串口引脚,在libraries/gd32_drivers/drv_usart.c里面修改,如下图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SCYctfqQ-1675930135222)(/img/bVbI1r)]

配置串口USART0

一下步骤都需要使用到ENV工具,参考教程,在RT-Thread官方下载ENV工具,然后将工具添加到右键菜单栏,在工程目录gd32f427v-start下单击右键,选择ConEmu Here,打开ENV配置工具
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VVRfe0s9-1675930135222)(/img/bVbI1s)]

然后输入menuconfig打开配置菜单,进行如下配置

  1. 使能uart0
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ertS7Iiy-1675930135223)(/img/bVbI1t)]

  2. rt_kprintf关联到uart0
    修改rt_kprintf串口映射关系
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ObK3DdMV-1675930135223)(/img/bVbI1u)]

之后保存,退出

生成MDK5工程

配置完成之后,输入如下命令编译。

scons

输入如下命令生成MDK5工程

scons --target=MDK5

–target=MDK5/MDK4/IAR可以生成基于KEIL5/KEIL4/IAR的工程

验证RT-Thread是否移植成功

打开project.uvprojx,编译,下载,打开串口调试助手,可以看到如下界面,输入help,查看命令,并且LED2没500ms闪烁一次,表示移植成功。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7lCFrdSP-1675930135223)(/img/bVbI1v)]

使用RT-Thread Studio开发

目前已经实现了基于MDK5的开发环境的搭建,但是RT-Thread Studio开发起来更便捷一些,可以直接打开配置界面进行配置,然后编译下载,不需要在单独使用ENV工具进行配置。所以我决定后面都用RT-Thread Studio开发,下面说明过程。

打开ENV工具,使用下面的命令生成工程:

scons --dist

使用该命令后,会在工程目录下的dist目录下生成工程,还有一个是工程的压缩文件。

使用RT-Thread Studio 调试

之后导入工程,编译下载即可,很便捷,可以使用板载的GD-Link下载,也可以使用SWD,用JLINK或者是ST-LINK下载调试。
我试了一下,如果用ST-LINK下载是可以的,但是调试会报错,暂时没找到原因。
可以使用板载的GD-LINK下载,配置方式如下:

  1. 配置下载方式
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-coZ47TLe-1675930135223)(/img/bVbI2S)]

  2. 配置device名称
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-exSEBWSv-1675930135224)(/img/bVbI2T)]

  3. 下载信息
    可以看到下载的时候有报错信息,但是不用管它,依然可以下载成功,调试也是一样的,可以正常调试,暂时没找到具体报错原因,不影响使用。
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vqaOXUh5-1675930135224)(/img/bVbI2U)]

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...