【GD32F427开发板试用】2. RT-Thread标准版移植

本篇文章来自极术社区与兆易创新组织的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_GD32
    bool

config SOC_SERIES_GD32F4
    bool
    select ARCH_ARM_CORTEX_M4
    select 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)]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值