完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 jf_39160458 于 2021-10-13 16:03 编辑
1 RT-Thread介绍 RT-Thread全称是 Real time-Thread,顾名思义,它是一个嵌入式实时多线程操作系统。它是一款完全由国内团队开发维护的嵌入式实时操作系统(RTOS),具有完全的自主知识产权。经过近12个年头的沉淀,伴随着物联网的兴起,它正演变成一个功能强大、组件丰富的物联网操作系统。 RT-Thread的官网:https://www.rt-thread.org/。读者可以在官网上看到许多RT-Thread的相关介绍。 RT-Thread 主要采用 C 语言编写,浅显易懂,方便移植。它把面向对象的设计方法应用到实时系统设计中,使得代码风格优雅、架构清晰、系统模块化并且可裁剪性非常好。 本次移植所使用开发板为GD32星空派: 2 代码下载 目前RT-Thread提供很多下载方式,有百度网盘、GitHub、Gitee。本书推荐使用Gitee方式,下载连接:https://gitee.com/rtthread/rt-thread。 (1)打开网址:https://gitee.com/rtthread/rt-thread ,单击“统计”——“发行版”,建议下载 4.0.3版本。 GD32F303是基于ARM® Cortex®-M4处理器的32位通用微控制器。而rt-thread已经针对Cortex®-M4核提供了通用的移植代码,位于文件夹“libcpuarmcortex-m4”,如图: 可以看到事实上 rt-thread已经几乎支持了arm大部分系列的芯片。这里的代码基本都是汇编代码,主要是任务切换相关的。 由于rt-thread已经把移植工作中最难的部分标准化了,那我们接下来移植BSP可以说事半功倍。 3 BSP工程文件夹创建进入“bsp”文件夹,可以看到,目前已经支持了很多GD芯片系列了,其中就由GD32F303。但是我们也可以自己尝试一下移植工作,熟悉了一下流程。 (1)创建bsp基础工程文件夹 这里我们可以直接复制同样是Cortex®-M4核的芯片的bsp文件夹作为基础文件夹,例如这里我直接复制gd32450z-eval,这个bsp是gd32f450芯片的,也是Cortex®-M4核。新的文件夹名为gd32303e-qidian,进入该文件夹。 打开rtconfig.py文件,可以看到该文件指定了我们使用的芯片架构为arm cortex-m4 (2)修改template.uvprojx工程文件 打开“template.uvprojx”文件,我们需要修改芯片为“GD32F303ZE” 但是我在操作这一步的时候总是失败。 于是我找到官方例程“01_GPIO_Runing_Led”的GD32303E_EVAL.uvprojx文件,把它复制过来修改成 “template.uvprojx”。 打开,可以看到该工程有很多代码。 这些我们都不需要,直接删除所有代码文件,删除后如下: 修改为c99模式: 保存退出。 (3)修改库文件 打开“Libraries”文件夹,可以看到有很多GD32F4XX的库文件。 我们芯片是GD32F303,需要换成GD32F30X官方库文件。 先删除3个文件夹,保留SConscript文件 GD32F30X官方库文件可以去官网下载: http://www.gd32mcu.com/cn/download/0?kw=GD32F3 下载后,把GD32F30X官方库文件都复制过来,如图: 打开SConscript文件,需要将原先库文件的路径都改成GD32F30X库文件路径,修改后如下: (4)修改驱动文件 进入“drivers”文件夹,可以看到有很多驱动文件,都是之前GD32F450的,我们需要删除,保留board 和 drv_usart 即可,然后将我们下载的GD32F30X官方例程中的“gd32f30x_libopt.h”文件也复制过来,如图: 打开“SConscript”文件,删除红色框代码,只保留drv_usart.c相关的即可 (5)修改 board.h ,设置正确的内存大小 打开“board.h”文件,这里我们需要修改内存大小为我们芯片对应的大小,GD32F303ZE是64K,改成64即可: (6)修改Kconfig文件 打开“gd32303e-qidian”文件夹下的 Kconfig文件,需要将SOC_GD32450Z修改成 SOC_GD32303Z,同时删除红色框部分代码,因为我们GD32F303不支持SDRAM。 (7)menuconfig生成工程 修改到这里,我们差不多可以运行menuconfig生成我们keil工程文件了。进入menuconfig,我们不需要网络功能,把lwip的配置去掉,如图: (8)串口驱动 修改到这里,事实上,我们还差串口驱动修改,由于串口驱动的修改比较多,这里暂时不展开,可以先直接拿已经修改好的串口驱动文件覆盖即可。或者直接对编译报错的代码直接注释掉,后续我们再移植串口驱动 (9)修改编译错误 修改到这里,我们 输入 scons --target=mdk5 ,生成新工程文件后,我们打开“project.uvprojx”,然后开始编译,可以看到会有一些错误提示, 这个是头文件不对,我们需要把gd32f4xx.h 修改成 gd32f30x.h 修改编译报错后,可以看到编译成功,结果如下: 烧录到开发板也可以成功运行到main函数。 |
|
相关推荐
|
|
1056 浏览 0 评论
AI模型部署边缘设备的奇妙之旅:如何在边缘端部署OpenCV
3545 浏览 0 评论
tms320280021 adc采样波形,为什么adc采样频率上来波形就不好了?
1482 浏览 0 评论
2181 浏览 0 评论
1663 浏览 0 评论
75409 浏览 21 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-29 09:27 , Processed in 0.640780 second(s), Total 37, Slave 29 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号