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為藍本).創建好后可以給整個工程改個名字,方便識別,養成好習慣(可選):
2. 將RT-Thread源代碼文件復制進工程,并且將RT-Thread文件夾添加進編譯系統:
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路徑: 如下圖所示. 這一部分是否完成可以嘗試編譯來確認,如果都編譯通過,則說明這步基本沒問題:
5. 將hello_world.c改名為main.c,并且將hello_world工程中board.c也替換為MCX C444 RT-Thread工程中的board.c 并且修正一些編譯過去,使之能通過編譯.
6. 對于RT-Thread移植,需要幾個特定的保留段(Keep section),因此我們要手動修改Linker File:
然后在linker File里添加如下字段:
7. 到此, 移植步驟基本結束. 重新編譯整個工程,并且下載到開發板中,復位后,打開串口.波特率115200. 會出現RT-Thread開機log, 并且工程默認已經實現了串口和GPIO驅動, 默認使能了Finish命令行輸入”help”會打印幫助信息. ,另外開發板紅色LED會以1Hz閃爍;
到此移植工作結束。注意:本工作只是實現了一個最小系統的移植,RT-Thread有眾多的組件和生態,如果需要可以涉及繼續手工移植源碼,另外本工程的device driver只實現了pin和 serial,如需其他driver需要手工添加。
最后移植成功的完整工程將會隨后發布在NXP的 AppcodeHub上,歡迎下載嘗鮮!
-
mcu
+關注
關注
146文章
17366瀏覽量
352878 -
恩智浦
+關注
關注
14文章
5887瀏覽量
108481 -
移植
+關注
關注
1文章
384瀏覽量
28198 -
RT-Thread
+關注
關注
31文章
1308瀏覽量
40445 -
mcuxpresso
+關注
關注
1文章
42瀏覽量
4245
原文標題:將RT-Thread移植到MCUXPressoIDE上(基于FRDM-MCX C444)
文章出處:【微信號:NXP_SMART_HARDWARE,微信公眾號:恩智浦MCU加油站】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
RT-Thread上CAN實踐
![<b class='flag-5'>RT-Thread</b><b class='flag-5'>上</b>CAN實踐](https://file1.elecfans.com/web2/M00/C4/8A/wKgZomX0EhWACv8DAAAUet8ikhs451.png)
i.MX RT1170:VGLite移植RT-Thread Nano過程講解(上)
![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>)](https://file1.elecfans.com/web2/M00/AD/2F/wKgaomVMUFCAD-6dAABXFv2-2a8881.png)
i.MX RT1170:VGLite移植RT-Thread Nano過程講解(下)
移植RT-Thread的原理與方法
【RT-thread】如何將RT-thread系統移植到stm32
![【<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](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
基于 Keil MDK 移植 RT-Thread Nano
![基于 Keil MDK <b class='flag-5'>移植</b> <b class='flag-5'>RT-Thread</b> Nano](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
【嵌入式AI入門日記】將 AI 模型移植到 RT-Thread 上(1)
![【嵌入式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)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論