新聞中心

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

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

        作者:Alex Yang 時間:2025-02-25 來源:恩智浦MCU加油站 收藏

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

        本文引用地址:http://www.104case.com/article/202502/467297.htm

        MCUXpresso 是由恩智浦官方推出的基于Eclipse的集成開發環境,是LPCXpresso IDE的升級版本。它具有以下特點:

        ◆ 完全免費,支持所有NXP的MCU產品線

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

        ◆ 基于Eclipse平臺,支持豐富的插件生態

        是一個開源的物聯網操作系統,由中國開發者主導開發,具有以下特點:

        ◆ 開源、中立、穩定可靠

        ◆ 組件豐富,生態完善

        ◆ 軟件包管理系統,降低開發難度

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

        ◆ 支持標準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-MCX C444: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/MCX C

        移植步驟:

        1. 基于SDK創建一個新的工程(本文以SDK hello_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編譯器的,所以我需要只保留rt-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閃爍;

        1. 圖片

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

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



        關鍵詞: RT-Thread IDE

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 顺义区| 乐清市| 云阳县| 八宿县| 平顺县| 永胜县| 抚顺县| 剑阁县| 长阳| 夏邑县| 离岛区| 长治县| 彰武县| 延津县| 聊城市| 郑州市| 河南省| 奉新县| 土默特右旗| 多伦县| 高雄市| 西昌市| 东海县| 大同县| 叶城县| 乐陵市| 敦化市| 玉屏| 西安市| 如东县| 名山县| 额尔古纳市| 武川县| 英山县| 泾源县| 河东区| 法库县| 星子县| 鄂州市| 县级市| 吉隆县|