0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何将RT-Thread移植到NXP MCUXPressoIDE上

恩智浦MCU加油站 来源:恩智浦MCU加油站 2025-02-13 10:37 次阅读

RT-Thread默认支持的IDE只有IAR 和 Keil, 那如何将RT-Thread移植到NXP MCUXPressoIDE上呢?本文内容比较简单但稍有琐碎,希望对有需要的小伙伴有所帮助。

MCUXpressoIDE是由恩智浦官方推出的基于Eclipse的集成开发环境,是LPCXpresso IDE的升级版本。它具有以下特点:

完全免费,支持所有NXP的MCU产品线

包含MCUXpresso配置工具(SDK Builder),可视化配置外设

基于Eclipse平台,支持丰富的插件生态

RT-Thread是一个开源的物联网操作系统,由中国开发者主导开发,具有以下特点:

开源、中立、稳定可靠

组件丰富,生态完善

软件包管理系统,降低开发难度

提供实时性强、资源占用小的内核

支持标准POSIX接口

完善的中文文档支持

本文受众:

本文面向熟悉RT-Thread并需要将其移植到MCUXPressoIDE的用户. 本文以FRDM-MCX C444为例,但是其中的移植步骤基本上是通用的, 其他NXP的芯片移植也可以借鉴这篇文章的内容。

本文所涉及的软件版本:

MCUXPressoIDE: 24.9 [Build 25][2024-09-26]

SDK: SDK_2_16_000_FRDM-MCX C444.

RT-Thread: V5.2.0

软硬件准备:

1. 下载并安装SDK. 导入MCUXpressoIDE并且确保您已经熟悉基本操作(可以导入SDK工程并成功运行一个基本的SDK helloworld).确保下载,调试,串口输出等基本技能已经掌握. 这些内容和RT-Thread没有任何关系,具体教程可以参见官方上手指南:

https://www.nxp.com/document/guide/‍getting‍-started-with-frdm-MCXC444:GS-FR‍DM-MCX C444

2. 下载RT-Thread源码(本文以5.20为准),因为目前RT-Thread主干已经支持了FRDM-MCX C444(Keil, GCC),所以强烈建议先使用Keil编译FRDM-MCX C444 RT-Thread工程,并且运行,确认基本的软硬件配置是OK的.具体Keil下指南见: https://github.com/RT-Thread/rt-thre‍ad/tree/master/bsp/n‍xp/mcx/MCXC

移植步骤: 1. 基于SDK创建一个新的工程(本文以SDKhello_world为蓝本).创建好后可以给整个工程改个名字,方便识别,养成好习惯(可选):

7e6c310a-e9a4-11ef-9310-92fbcf53809c.png

2. 将RT-Thread源代码文件复制进工程,并且将RT-Thread文件夹添加进编译系统:

7e83d030-e9a4-11ef-9310-92fbcf53809c.png

3. 因为RT-Thread没有专门针对MCXPressoIDE的构建系统,所以接下来一个主要的任务就是将RT-Thread中不需要的源代码删除.这个过长相当繁琐(基本占移植工作的95%以上),并且需要对RT-Thread本身的源代码有一定了解,这里仅仅举一个例子:

比如有关真对处理器架构的相关移植文件文件夹在RT-Thread/libcpu中,MCX C444是ARM Cortex-M0+内核的,且MCXPressoIDE是基于GCC编译器的,所以我需要只保留 t-threadlibcpuarmcortex-m0中context_gcc.S其余文件(文件夹)需要通通删除. RT-Thread其他地方的源码,包括C源码也有很多需要类似的处理(总共有100+处),这里就不在一一举例了,可以通过查看GCC构建中的Makefile文件或者env工具自动构建出来的Keil/IAR工程对比进行操作。

4. 添加Include路径: 如下图所示. 这一部分是否完成可以尝试编译来确认,如果都编译通过,则说明这步基本没问题:

7e9aeaf4-e9a4-11ef-9310-92fbcf53809c.png

5. 将hello_world.c改名为main.c,并且将hello_world工程中board.c也替换为MCX C444 RT-Thread工程中的board.c 并且修正一些编译过去,使之能通过编译.

6. 对于RT-Thread移植,需要几个特定的保留段(Keep section),因此我们要手动修改Linker File:

7eb3628c-e9a4-11ef-9310-92fbcf53809c.png

然后在linker File里添加如下字段:

7ec4ba64-e9a4-11ef-9310-92fbcf53809c.png

7. 到此, 移植步骤基本结束. 重新编译整个工程,并且下载到开发板中,复位后,打开串口.波特率115200. 会出现RT-Thread开机log, 并且工程默认已经实现了串口和GPIO驱动, 默认使能了Finish命令行输入”help”会打印帮助信息. ,另外开发板红色LED会以1Hz闪烁;

7edea582-e9a4-11ef-9310-92fbcf53809c.png

到此移植工作结束。注意:本工作只是实现了一个最小系统的移植,RT-Thread有众多的组件和生态,如果需要可以涉及继续手工移植源码,另外本工程的device driver只实现了pin和 serial,如需其他driver需要手工添加。

最后移植成功的完整工程将会随后发布在NXP的 AppcodeHub上,欢迎下载尝鲜!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    146

    文章

    17507

    浏览量

    354927
  • 恩智浦
    +关注

    关注

    14

    文章

    5908

    浏览量

    109597
  • 移植
    +关注

    关注

    1

    文章

    388

    浏览量

    28325
  • RT-Thread
    +关注

    关注

    31

    文章

    1324

    浏览量

    40886
  • mcuxpresso
    +关注

    关注

    1

    文章

    43

    浏览量

    4319

原文标题:将RT-Thread移植到MCUXPressoIDE上(基于FRDM-MCX C444)

文章出处:【微信号:NXP_SMART_HARDWARE,微信公众号:恩智浦MCU加油站】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    相关推荐

    RT-ThreadCAN实践

    开箱测试RT-Thread官方已完成了对英飞凌XMC7200EVK的移植,通过shell可以看到做好了uart3的console。本文介绍如何进行RT-ThreadCan
    的头像 发表于 11-13 01:03 1593次阅读
    <b class='flag-5'>RT-Thread</b><b class='flag-5'>上</b>CAN实践

    移植RT-Thread nanoCW32L083

    移植RT-Thread NanoCW32L083开发板,并成功运行。
    的头像 发表于 07-03 09:04 2.2w次阅读
    <b class='flag-5'>移植</b><b class='flag-5'>RT-Thread</b> nano<b class='flag-5'>到</b>CW32L083

    i.MX RT1170:VGLite移植RT-Thread Nano过程讲解()

    RT-Thread 是国人自主研发的开源实时操作系统(RTOS),RT-Thread Nano 是极简版的硬实时内核,内存占用小,移植简单。VGLite 是 NXP 提供的轻量级 2D
    的头像 发表于 11-09 11:20 3016次阅读
    i.MX <b class='flag-5'>RT</b>1170:VGLite<b class='flag-5'>移植</b><b class='flag-5'>RT-Thread</b> Nano过程讲解(<b class='flag-5'>上</b>)

    i.MX RT1170:VGLite移植RT-Thread Nano过程讲解(下)

    上篇介绍了如何移植 RT-Thread Nano 内核与 Finsh 控制台 RT1170。本篇继续介绍如何将
    的头像 发表于 11-09 11:22 1079次阅读

    如何将RT-Thread系统移植STM32f103标准库

    如何将RT-Thread系统移植STM32f103标准库呢?有哪些操作步骤?
    发表于 12-15 06:51

    移植RT-Thread的原理与方法

    大家好我是惊觉。是的,失踪人口回来了。最近参加了rt-thread的国产MCU移植活动,移植rt-thread华大的HC32L196。rt
    的头像 发表于 09-17 09:41 8074次阅读

    【国产MCU移植移植RT-Thread国产芯片HC32F460PETB

    【国产MCU移植移植RT-Thread国产芯片HC32F460PETB
    发表于 11-23 18:06 37次下载
    【国产MCU<b class='flag-5'>移植</b>】<b class='flag-5'>移植</b><b class='flag-5'>RT-Thread</b><b class='flag-5'>到</b>国产芯片HC32F460PETB

    【国产MCU移植移植RT-Thread国产芯片FM33LC026

    【国产MCU移植移植RT-Thread国产芯片FM33LC026
    发表于 11-30 16:51 22次下载
    【国产MCU<b class='flag-5'>移植</b>】<b class='flag-5'>移植</b><b class='flag-5'>RT-Thread</b><b class='flag-5'>到</b>国产芯片FM33LC026

    RT-thread如何将RT-thread系统移植stm32

    1.RT-thread简介T-Thread(Real Time-Thread),是一个嵌入式实时多线程操作系统。在 RT-Thread 系统中,任务调度通过线程实现的。
    发表于 12-08 11:06 21次下载
    【<b class='flag-5'>RT-thread</b>】<b class='flag-5'>如何将</b><b class='flag-5'>RT-thread</b>系统<b class='flag-5'>移植</b><b class='flag-5'>到</b>stm32

    RT-Thread系统移植STM32f103

    RT-Thread系统移植STM32f103
    发表于 12-09 12:51 26次下载
    <b class='flag-5'>RT-Thread</b>系统<b class='flag-5'>移植</b><b class='flag-5'>到</b>STM32f103

    基于 Keil MDK 移植 RT-Thread Nano

    本文介绍如何基于 Keil MDK 移植 RT-Thread Nano ,并以一个 stm32f103 的基础工程作为示例进行讲解。 RT-Thread Nano 已集成在 Keil MD...
    发表于 01-26 17:04 16次下载
    基于 Keil MDK <b class='flag-5'>移植</b> <b class='flag-5'>RT-Thread</b> Nano

    【嵌入式AI入门日记】 AI 模型移植 RT-Thread (1)

    本期我们分享主题是如何将 AI 模型部署嵌入式系统中,下一期介绍如何在 RT-Thread 操作系统运行 Mnist Demo(手写数
    发表于 01-26 17:08 3次下载
    【嵌入式AI入门日记】<b class='flag-5'>将</b> AI 模型<b class='flag-5'>移植</b><b class='flag-5'>到</b> <b class='flag-5'>RT-Thread</b> <b class='flag-5'>上</b>(1)

    如何创建RT-Thread Nano工程

    简单(比freeRTOS移植还简单)等,本文讲解如何将RT-Thread Nano移植GD3
    的头像 发表于 03-19 12:13 4004次阅读

    RT-Thread文档_内核移植

    RT-Thread文档_内核移植
    发表于 02-22 18:31 4次下载
    <b class='flag-5'>RT-Thread</b>文档_内核<b class='flag-5'>移植</b>

    RT-Thread文档_RT-Thread SMP 介绍与移植

    RT-Thread文档_RT-Thread SMP 介绍与移植
    发表于 02-22 18:31 9次下载
    <b class='flag-5'>RT-Thread</b>文档_<b class='flag-5'>RT-Thread</b> SMP 介绍与<b class='flag-5'>移植</b>