<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 將RT-Thread移植到MCUXPressoIDE上(基于FRDM-MCX C444)

將RT-Thread移植到MCUXPressoIDE上(基于FRDM-MCX C444)

作者:Alex Yang 時(shí)間:2025-02-25 來(lái)源:恩智浦MCU加油站 收藏

默認支持的只有IAR 和 Keil, 那如何將移植到NXP MCUXPresso上呢?本文內容比較簡(jiǎn)單但稍有瑣碎,希望對有需要的小伙伴有所幫助。

本文引用地址:http://dyxdggzs.com/article/202502/467297.htm

MCUXpresso 是由恩智浦官方推出的基于Eclipse的集成開(kāi)發(fā)環(huán)境,是LPCXpresso IDE的升級版本。它具有以下特點(diǎn):

◆ 完全免費,支持所有NXP的MCU產(chǎn)品線(xiàn)

◆ 包含MCUXpresso配置工具(SDK Builder),可視化配置外設

◆ 基于Eclipse平臺,支持豐富的插件生態(tài)

是一個(gè)開(kāi)源的物聯(lián)網(wǎng)操作系統,由中國開(kāi)發(fā)者主導開(kāi)發(fā),具有以下特點(diǎn):

◆ 開(kāi)源、中立、穩定可靠

◆ 組件豐富,生態(tài)完善

◆ 軟件包管理系統,降低開(kāi)發(fā)難度

◆ 提供實(shí)時(shí)性強、資源占用小的內核

◆ 支持標準POSIX接口

◆ 完善的中文文檔支持

本文受眾:

本文面向熟悉RT-Thread并需要將其移植到MCUXPressoIDE的用戶(hù). 本文以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并且確保您已經(jīng)熟悉基本操作(可以導入SDK工程并成功運行一個(gè)基本的SDK helloworld).確保下載,調試,串口輸出等基本技能已經(jīng)掌握. 這些內容和RT-Thread沒(méi)有任何關(guān)系,具體教程可以參見(jiàn)官方上手指南:

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

2. 下載RT-Thread源碼(本文以5.20為準),因為目前RT-Thread主干已經(jīng)支持了FRDM-MCX C444(Keil, GCC),所以強烈建議先使用Keil編譯FRDM-MCX C444 RT-Thread工程,并且運行,確認基本的軟硬件配置是OK的.具體Keil下指南見(jiàn): https://github.com/RT-Thread/rt-thre?ad/tree/master/bsp/n?xp/mcx/MCX C

移植步驟:

1. 基于SDK創(chuàng )建一個(gè)新的工程(本文以SDK hello_world為藍本).創(chuàng )建好后可以給整個(gè)工程改個(gè)名字,方便識別,養成好習慣(可選):

圖片

2. 將RT-Thread源代碼文件復制進(jìn)工程,并且將RT-Thread文件夾添加進(jìn)編譯系統:

圖片

3. 因為RT-Thread沒(méi)有專(zhuān)門(mén)針對MCXPressoIDE的構建系統,所以接下來(lái)一個(gè)主要的任務(wù)就是將RT-Thread中不需要的源代碼刪除.這個(gè)過(guò)長(cháng)相當繁瑣(基本占移植工作的95%以上),并且需要對RT-Thread本身的源代碼有一定了解,這里僅僅舉一個(gè)例子:

比如有關(guān)真對處理器架構的相關(guān)移植文件文件夾在RT-Thread/libcpu中,MCX C444是ARM Cortex-M0+內核的,且MCXPressoIDE是基于GCC編譯器的,所以我需要只保留rt-threadlibcpuarmcortex-m0中context_gcc.S其余文件(文件夾)需要通通刪除. RT-Thread其他地方的源碼,包括C源碼也有很多需要類(lèi)似的處理(總共有100+處),這里就不在一一舉例了,可以通過(guò)查看GCC構建中的Makefile文件或者env工具自動(dòng)構建出來(lái)的Keil/IAR工程對比進(jìn)行操作。

4. 添加Include路徑: 如下圖所示. 這一部分是否完成可以嘗試編譯來(lái)確認,如果都編譯通過(guò),則說(shuō)明這步基本沒(méi)問(wèn)題:

圖片

5. 將hello_world.c改名為main.c,并且將hello_world工程中board.c也替換為MCX C444 RT-Thread工程中的board.c 并且修正一些編譯過(guò)去,使之能通過(guò)編譯.

6. 對于RT-Thread移植,需要幾個(gè)特定的保留段(Keep section),因此我們要手動(dòng)修改Linker File:

圖片

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

圖片

7. 到此, 移植步驟基本結束. 重新編譯整個(gè)工程,并且下載到開(kāi)發(fā)板中,復位后,打開(kāi)串口.波特率115200. 會(huì )出現RT-Thread開(kāi)機log, 并且工程默認已經(jīng)實(shí)現了串口和GPIO驅動(dòng), 默認使能了Finish命令行 輸入”help”會(huì )打印幫助信息. ,另外開(kāi)發(fā)板紅色LED會(huì )以1Hz閃爍;

  1. 圖片

到此移植工作結束。注意:本工作只是實(shí)現了一個(gè)最小系統的移植,RT-Thread有眾多的組件和生態(tài),如果需要可以涉及繼續手工移植源碼,另外本工程的device driver只實(shí)現了pin和 serial,如需其他driver需要手工添加。

最后移植成功的完整工程將會(huì )隨后發(fā)布在NXP的 AppcodeHub上,歡迎下載嘗鮮!



關(guān)鍵詞: RT-Thread IDE

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>