H743开发板RT-Thread Nano 内核移植

本文介绍了我个人在野火H743开发板上移植RT-Thread Nano版操作系统的一些经验和过程,希望能够和大家一起学习,共同进步

准备工作

准备材料:

  • H7开发板一块
  • RTT源码一份
  • H7裸机程序一份(带串口发送功能)

H743开发板
在这里插入图片描述

RTT-Nano源码一份,建议前往RTT官网下载https://www.rt-thread.org/document/site/tutorial/nano/an0038-nano-introduction/,点击箭头即可下载
在这里插入图片描述
裸机工程自行准备

将下载完成的RTT源码和裸机工程放入同一文件夹
在这里插入图片描述

第一步:RTT源码添加到工程目录

  1. 在裸机工程的首目录中新建RT-Thread文件夹,用于存放RTT源码
    在这里插入图片描述

  2. 在User文件夹中新建board文件夹

  3. 将RTT源码中的src文件夹和include文件夹以及libcpu中arm文件夹下的cortex-M7文件架复制到原裸机工程的RT-Thread文件夹下在这里插入图片描述

  4. 将rtt源码中bsp文件夹下的board.c和rtconfig.h文件分别复制到User的board文件夹和User文件夹根目录中。在这里插入图片描述

第二部:keil中添加工程

  1. 打开keil5软件,在工程中新建KERNEL文件夹和CORTE-M7文件夹
    在这里插入图片描述
  2. 在KERNEL文件夹中添加src文件夹中的所有c程序
    在这里插入图片描述
  3. 在CORTE-M7文件夹中添加 context_rvds.S 和 cpuport.c文件在这里插入图片描述
  4. 把新添加的RTT文件夹添加到keil目录中去
    在这里插入图片描述

keil程序编写

完成上述步骤后,点击编译会出现缺少.h文件的错误,注释箭头所示头文件即可在这里插入图片描述

注释后再度编译,会出现如下错误,这是由于引入操作系统过后,系统会接管部分系统中断,而导致的重复定义,我们需要把it.c中的对应中断函数注释即可。在这里插入图片描述

再次编译,会提示缺少rt_hw_borad_init()函数,如图所示这是由于没有将之前的board.c和rtconfig.h文件添加到工程。在这里插入图片描述
把board.c和rtconfig.h添加到工程中,即可解决问题。
在这里插入图片描述
接下去,我们需要将rt_kprintf()函数进行重定义,方便我们查看内核的调试信息。通过F12定位rt_kprintf()函数我们可以看到rt_kprintf()函数调用了
void rt_hw_console_output(const char *str);
这一函数,而该函数在操作系统中使用了weak关键字,即弱定义,我们只需要在程序里合适的地方再对该函数进行重定义即可使用rt_kprintf函数。

void rt_hw_console_output(const char *str)
{
	Usart_SendString((uint8_t *)str);
}

在这里插入图片描述
我们将函数写在了野火提供的bsp库,usart文件中。然后我们只需要在board.c中的rt_hw_board_init()函数中添加串口初始化函数,rt_kprintf()函数即可正常使用
在这里插入图片描述
我们将程序下载到板子上进行测试,打开串口调试助手,可以看到串口成功打印出了RT-Thread的版本信息。
在这里插入图片描述
最后,我们需要把rtconfig.h当中的RT_USING_HEAP宏开启,该宏的作用是打开内存管理,rtt中main函数是作为线程的形式存在,所有要打开后才可以执行main函数里面的相关内容。在这里插入图片描述

至此,RTT的移植已经完成,接下来就可以使用包括创建线程等RTOS的相关操作。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RT-Thread是一个开源、灵活且适用于嵌入式系统的实时操作系统,而RISC-V则是一种基于开源指令集架构的处理器设计。要在RISC-V平台上进行RT-Thread移植,需要进行以下几个步骤: 1. 硬件平台选择:首先,需要选择适合的RISC-V硬件平台来运行RT-Thread。可以选择一些流行的RISC-V开发板,如SiFive HiFive系列或者Loongson等。根据硬件平台选择适当的编译工具链和开发环境。 2. 编译工具链准备:为了在RISC-V平台上编译RT-Thread,需要准备适当的编译工具链。可以使用开源的RISC-V GNU工具链或LLVM工具链来编译和调试程序。 3. 移植RT-Thread内核:将RT-Thread内核源代码移植到RISC-V平台上。首先,需要根据目标平台的处理器架构,修改相关的的代码。然后,根据硬件平台的特性和需求,配置相关的外设驱动和系统组件。 4. 配置启动文件和链接脚本:在移植过程中,需要针对RISC-V平台编写适当的启动文件和链接脚本。启动文件负责初始化处理器、设置堆栈和启动操作系统,而链接脚本定义了程序的内存布局和链接规则。 5. 适配设备驱动:移植过程中,可能需要调整和适配一些硬件设备驱动,以便在RISC-V平台上正常工作。这包括串口通信、网络连接和外部设备驱动等。 6. 编译和调试:移植完成后,使用编译工具链将RT-Thread编译为可执行文件,然后将其烧录到RISC-V硬件平台上进行测试。使用调试工具进行调试和性能优化,确保RT-Thread在RISC-V上稳定运行。 总之,要在RISC-V平台上移植RT-Thread,需要根据硬件平台选择适当的工具链并进行适配和配置。通过适配内核、设备驱动和调试进行测试和优化,最终使RT-Thread能够在RISC-V平台上正常运行。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值