本帖最后由 jf_15811252 于 2022-5-20 09:42 编辑
测评
开发板的主控是GD32VF103RBT6,128Kflash以及32Kram,看着这个资源,跑操作系统已经完全够了,于是就开始动手移植RT-Thread Nano ,这个操作系统对 RAM 与 ROM 的开销非常小,在支持 semaphore 和 mailbox 特性,并运行两个线程 (main 线程 + idle 线程) 情况下,ROM 和 RAM 依然保持着极小的尺寸,RAM 占用约 1K 左右,ROM 占用 4K 左右 ,所以直接开始移植。
本次以MounRiver Studio(MRS)开发环境为例,这个开发环境比较友好,方便入手,也比较好用。 准备一个可以直接运行的裸机工程,这里以刚开始新建的工程为例。MRS开发环境新建工程可以参考:
https://bbs.elecfans.com/jishu_2280948_1_1.html
下载RT-Thead Nano 3.15版本的源码,然后在自己的工程中新建rt-thread文件夹用来存放rt-thread nano 的相关文件。
接下来打开源码,将src、libcpu以及include直接复制到自己工程下的rt-thread下,然后在源码文件夹下找到bsp文件夹,这个文件夹存放的是板级支持包,将board.c和rtconfig.h复制到自己的工程下
接下来打开libcpu文件夹,将里面的arm文件夹删掉
打开risc-v文件夹,只保留bumblebee文件夹和common文件夹
接下来打开工程,右击工程点击刷新或者按F5刷新
接下来只需添加头文件路径即可
添加完成如下所示
接下来添加汇编路径
添加完成如下
接下来点击编译,会发现汇报错,内容是找不到rtconfig.h,这里不知道什么原因,找了好久没找到,找了一种解决方法即把这个文件屏蔽,将内容复制到rtconfig.h中
报错
屏蔽
内容复制到rtconfig.h中
在次编译,0警告,0错误
接下来找到risc-v文件夹下,将main改为entry,因为在risc-v中启动代码是在entry函数中
在主函数中,将操作系统的头文件添加到main.c中,然后将裸机延时函数改为操作系统延时函数
在次编译,0错误,0警告,然后将程序下载到开发板中,程序正常运行,rt-thread nano在这块板子上已经跑起来了