亚洲精品久久久久久久久久久,亚洲国产精品一区二区制服,亚洲精品午夜精品,国产成人精品综合在线观看,最近2019中文字幕一页二页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于MCUXpresso和FRDM-MCXA346的RT-Thread Nano移植 | 技術(shù)集結(jié)

RT-Thread官方賬號(hào) ? 2025-08-22 17:07 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

RT-Thread Nano是一個(gè)極簡(jiǎn)版的硬實(shí)時(shí)內(nèi)核,具體介紹見官方鏈接:

https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-nano/an0038-nano-introduction

介紹完官方下載地址,本篇還是以移植RT-Thread Nano到MCUXpresso IDE為主,移植的代碼可以在nxpic.org.cn論壇搜索到。稍后也會(huì)有基于MCUXpresso VSC(Visual Studio Code)的介紹文檔。

目錄


簡(jiǎn)單運(yùn)行


軟件下載


移植步驟


適配 RT-Thread Nanoo

1 簡(jiǎn)單運(yùn)行


1. 準(zhǔn)備一臺(tái)安裝有最新MCUXpresso IDE的PC 和一塊FRDM-MCXA346開發(fā)板:

66a3e544-7f37-11f0-9080-92fbcf53809c.png

2. 導(dǎo)入代碼包,運(yùn)行結(jié)果:

66bc3c3e-7f37-11f0-9080-92fbcf53809c.png

2 軟件下載


1. RT-Thread Nano源代碼下載

2. MCUXpresso SDK下載

3. MCUXpresso IDE下載

4. MCUXpresso Config Tool下載,這個(gè)不是必須的, IDE自帶的也有

3 移植步驟


1. 導(dǎo)入MCUXpresso SDK到MCUXpresso IDE,直接把SDK的zip包拖到這個(gè)窗口里就行:

66c5f30a-7f37-11f0-9080-92fbcf53809c.png

2. 創(chuàng)建一個(gè)新工程,咱們這里就用lpuart的polling的example為模板好了,創(chuàng)建好后,順手改個(gè)工程名字:

66d81e9a-7f37-11f0-9080-92fbcf53809c.png66e73e48-7f37-11f0-9080-92fbcf53809c.png

3. 將RT-Thread Nano源代碼文件復(fù)制進(jìn)工程,并且包含進(jìn)編譯序列:

66fa1e50-7f37-11f0-9080-92fbcf53809c.png6706ffe4-7f37-11f0-9080-92fbcf53809c.png6717f18c-7f37-11f0-9080-92fbcf53809c.png

4. 移除RT-Thread Nano里咱們目前平臺(tái)不需要的文件,比如 bsp文件夾,libcpu文件夾下邊的risc-v文件夾,libcpu\arm文件夾下邊的arm926, armv6, cortex-a, cortex-m0, cortex-m23, cortex-m3, cortex-m4, cortex-m7,cortex-r4(保留libcpu\arm下的common和cortex-m33文件夾):

6725ab10-7f37-11f0-9080-92fbcf53809c.png

5. 將divsi3.S, context_iar.S, context_rvds.s, syscall_iar.S, syscall_rvds.S 移除出編譯序列:

67395480-7f37-11f0-9080-92fbcf53809c.png

4 適配 RT-Thread Nano


1. 把lpuart_polling.c 改成main.c:

674b92bc-7f37-11f0-9080-92fbcf53809c.png

2. 將rt-thread/include和rt-thread/components/finsh兩個(gè)目錄添加到工程的include路徑:

675e72c4-7f37-11f0-9080-92fbcf53809c.png

3. 將rt-thread nano源代碼bsp\_template路徑下的rtconfig.h 和 board.c復(fù)制到工程的source目錄下,這里我把board.c重命名為rtt_board.c:

676d808e-7f37-11f0-9080-92fbcf53809c.png

4. 編譯后編譯器提醒有兩個(gè)錯(cuò)誤,提醒移植的時(shí)候添加必要的API:

6783b1a6-7f37-11f0-9080-92fbcf53809c.png

5. 將"MCXA346.h", "app.h"和"fsl_lpuart.h"添加到source/board.c文件中:

6794aee8-7f37-11f0-9080-92fbcf53809c.png

6. 在source\board.c void rt_hw_board_init(void)函數(shù)中添加BOARD_InitHardware(); 和 SysTick_Config(SystemCoreClock/RT_TICK_PER_SECOND):

67aac0c0-7f37-11f0-9080-92fbcf53809c.png

7. 在source\board.c中用SysTick_Handler()替換rt_os_tick_callback():

67be2a3e-7f37-11f0-9080-92fbcf53809c.png

8. 隱去TODO 2和TODO 3的提醒,TODO 2在example初始化的地方已經(jīng)做了調(diào)試串口的初始化了,并且在TODO 3里添加如下代碼:

67d633ae-7f37-11f0-9080-92fbcf53809c.png67e1d1f0-7f37-11f0-9080-92fbcf53809c.png

9. 將main.c 的頭文件修改為:

67f8010a-7f37-11f0-9080-92fbcf53809c.png

10. 將main.c 核心的main代碼修改為:

680d6752-7f37-11f0-9080-92fbcf53809c.png

11. 編譯后提醒hardfault函數(shù)重復(fù)定義了,所以要把工程生成的semihost_hardfualt.c刪除掉:

68255ce0-7f37-11f0-9080-92fbcf53809c.png

12. 在rtconfig.h里打開 #define RT_USING_CONSOLE宏,編譯并運(yùn)行,記得打開串口中斷哦:

683a4e0c-7f37-11f0-9080-92fbcf53809c.png

13. 運(yùn)行后,發(fā)現(xiàn)會(huì)進(jìn)入Hardfault_handler() 并且串口無(wú)打印。先來(lái)解決串口打印的問(wèn)題:

685335f2-7f37-11f0-9080-92fbcf53809c.png

14. 需要在startup\startup_mcxa346.c的ResetISR()函數(shù)中把main隱藏掉,用rt-thread nano的entry()替代,如下圖:

在entry()的函數(shù)里會(huì)調(diào)用rt_hw_board_init()來(lái)初始化硬件。 編譯并運(yùn)行,這時(shí)候hardfault應(yīng)該就會(huì)打印了:

686b2428-7f37-11f0-9080-92fbcf53809c.png

15. Hard fault 打印的信息,hard fault的原因本程序員找了些小時(shí)數(shù),原因是需要修改分散加載文件:

68837d84-7f37-11f0-9080-92fbcf53809c.png

16. 鼠標(biāo)右鍵工程名字,選在C/C++ Build -> Settings -> MCU Linker-> Managed Linker Script 禁用Manage linker script。要手工修改下分散加載文件:

68969be4-7f37-11f0-9080-92fbcf53809c.png

17. 將如下區(qū)段加入到frdmmcxa346_rt_thread_nano_mcux_Debug.ld中,在“> PROGRAM_FLASH”區(qū)段:

-->/***************RTOSadd**********************/ /* section information for finsh shell*/ . = ALIGN(4); __fsymtab_start = .; KEEP(*(FSymTab)) __fsymtab_end = .; . = ALIGN(4); __vsymtab_start = .; KEEP(*(VSymTab)) __vsymtab_end = .; . = ALIGN(4); /* section information for utest*/ . = ALIGN(4); __rt_utest_tc_tab_start = .; KEEP(*(UtestTcTab)) __rt_utest_tc_tab_end = .; /* section information for at server */ . = ALIGN(4); __rtatcmdtab_start = .; KEEP(*(RtAtCmdTab)) __rtatcmdtab_end = .; . = ALIGN(4); /* section information for initial.*/ . = ALIGN(4); __rt_init_start = .; KEEP(*(SORT(.rti_fn*))) __rt_init_end = .; . = ALIGN(4); /* section information for modules */ . = ALIGN(4); __rtmsymtab_start = .; KEEP(*(RTMSymTab)) __rtmsymtab_end = .; . = ALIGN(4); PROVIDE(__ctors_start__ = .); KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array)) PROVIDE(__ctors_end__ = .); . = ALIGN(4);

68a57e0c-7f37-11f0-9080-92fbcf53809c.png

18. 編譯并運(yùn)行,RT-Thread Nano就正常打印了:

68b2e510-7f37-11f0-9080-92fbcf53809c.png

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    147

    文章

    18453

    瀏覽量

    381708
  • IDE
    IDE
    +關(guān)注

    關(guān)注

    0

    文章

    358

    瀏覽量

    48649
  • RT-Thread
    +關(guān)注

    關(guān)注

    32

    文章

    1512

    瀏覽量

    43979
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    恩智浦MCU教程 基于MCUXpressoFRDM-MCXA346RT-Thread Nano移植

    本篇還是以移植RT-Thread NanoMCUXpresso IDE為主,移植的代碼可以在nxpic.org.cn論壇搜索到。
    的頭像 發(fā)表于 08-21 09:49 ?5762次閱讀
    恩智浦MCU教程 基于<b class='flag-5'>MCUXpresso</b>和<b class='flag-5'>FRDM-MCXA346</b>的<b class='flag-5'>RT-Thread</b> <b class='flag-5'>Nano</b><b class='flag-5'>移植</b>

    移植RT-Thread nano到CW32L083

    移植RT-Thread Nano到CW32L083開發(fā)板上,并成功運(yùn)行。
    的頭像 發(fā)表于 07-03 09:04 ?2.3w次閱讀
    <b class='flag-5'>移植</b><b class='flag-5'>RT-Thread</b> <b class='flag-5'>nano</b>到CW32L083

    i.MX RT1170:VGLite移植RT-Thread Nano過(guò)程講解(上)

    RT-Thread 是國(guó)人自主研發(fā)的開源實(shí)時(shí)操作系統(tǒng)(RTOS),RT-Thread Nano 是極簡(jiǎn)版的硬實(shí)時(shí)內(nèi)核,內(nèi)存占用小,移植簡(jiǎn)單。VGLite 是 NXP 提供的輕量級(jí) 2D
    的頭像 發(fā)表于 11-09 11:20 ?3901次閱讀
    i.MX <b class='flag-5'>RT</b>1170:VGLite<b class='flag-5'>移植</b><b class='flag-5'>RT-Thread</b> <b class='flag-5'>Nano</b>過(guò)程講解(上)

    i.MX RT1170:VGLite移植RT-Thread Nano過(guò)程講解(下)

    上篇介紹了如何移植 RT-Thread Nano 內(nèi)核與 Finsh 控制臺(tái)到 RT1170。本篇繼續(xù)介紹如何將 NXP 官方的 VGLite API
    的頭像 發(fā)表于 11-09 11:22 ?1646次閱讀

    如何基于CubeMX移植RT-Thread Nano

    本文介紹了如何基于 CubeMX 移植 RT-Thread Nano,并說(shuō)明生成代碼工程的步驟。RT-Thread Nano 已集成在 Cu
    發(fā)表于 03-29 06:56

    【國(guó)產(chǎn)MCU移植】HC32F460基于Keil MDK 移植 RT-Thread Nano

    【國(guó)產(chǎn)MCU移植】HC32F460基于Keil MDK 移植 RT-Thread Nano
    發(fā)表于 11-18 18:51 ?67次下載
    【國(guó)產(chǎn)MCU<b class='flag-5'>移植</b>】HC32F460基于Keil MDK <b class='flag-5'>移植</b> <b class='flag-5'>RT-Thread</b> <b class='flag-5'>Nano</b>

    【國(guó)產(chǎn)MCU系列】在 HK32F030 上移植 RT-Thread Nano

    如需下載相關(guān)開源資料請(qǐng)點(diǎn)擊閱讀原文這是一個(gè)航順 HK32F030 的 RT-Thread Nano 移植示例,記錄了在 Keil 裸機(jī)工程的基礎(chǔ)上進(jìn)行 RT-Thread
    發(fā)表于 11-21 18:51 ?42次下載
    【國(guó)產(chǎn)MCU系列】在 HK32F030 上<b class='flag-5'>移植</b> <b class='flag-5'>RT-Thread</b> <b class='flag-5'>Nano</b>

    STM32 RT-Thread Nano(1)基于 Keil MDK 移植

    本文介紹如何基于 Keil MDK 移植 RT-Thread Nano ,并以一個(gè) stm32f103 的基礎(chǔ)工程作為示例進(jìn)行講解。開發(fā)平臺(tái):Keil MDK硬件平臺(tái):XNUCLEO-F103RB
    發(fā)表于 12-02 16:06 ?13次下載
    STM32 <b class='flag-5'>RT-Thread</b> <b class='flag-5'>Nano</b>(1)基于 Keil MDK <b class='flag-5'>移植</b>

    HC32F460移植RT-Thread Nano+FinSh工程源碼下載

    HC32F460移植RT-Thread Nano+FinSh工程源碼下載
    發(fā)表于 01-05 10:30 ?6次下載

    【國(guó)產(chǎn)MCU系列】在 HK32F030 上移植 RT-Thread Nano

    這是一個(gè)航順 HK32F030 的 RT-Thread Nano 移植示例,記錄了在 Keil 裸機(jī)工程的基礎(chǔ)上進(jìn)行 RT-Thread Nano
    發(fā)表于 01-25 17:42 ?4次下載
    【國(guó)產(chǎn)MCU系列】在 HK32F030 上<b class='flag-5'>移植</b> <b class='flag-5'>RT-Thread</b> <b class='flag-5'>Nano</b>

    基于 Keil MDK 移植 RT-Thread Nano

    本文介紹如何基于 Keil MDK 移植 RT-Thread Nano ,并以一個(gè) stm32f103 的基礎(chǔ)工程作為示例進(jìn)行講解。 RT-Thread
    發(fā)表于 01-26 17:04 ?17次下載
    基于 Keil MDK <b class='flag-5'>移植</b> <b class='flag-5'>RT-Thread</b> <b class='flag-5'>Nano</b>

    如何創(chuàng)建RT-Thread Nano工程

    本文將嘗試使用國(guó)產(chǎn)的嵌入式實(shí)時(shí)操作系統(tǒng)RT-Thread,相比較于FreeRTOS,RT-Thread還是有很多有點(diǎn)的,比如有Fish命令行界面,國(guó)產(chǎn)開源免費(fèi),Nano版本代碼量極小,移植
    的頭像 發(fā)表于 03-19 12:13 ?4920次閱讀

    RT-Thread文檔_RT-Thread SMP 介紹與移植

    RT-Thread文檔_RT-Thread SMP 介紹與移植
    發(fā)表于 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>

    基于恩智浦FRDM-MCXA153開發(fā)板實(shí)現(xiàn)RT-Thread的ADC驅(qū)動(dòng)

    數(shù)轉(zhuǎn)換器(ADC)是現(xiàn)代嵌入式系統(tǒng)中不可或缺的組件,它能將連續(xù)的模擬信號(hào)轉(zhuǎn)換為離散的數(shù)字信號(hào)。本文將深入探討如何在NXP的FRDM-MCXA153開發(fā)板上實(shí)現(xiàn)和使用RT-Thread的ADC驅(qū)動(dòng),為開發(fā)者提供一個(gè)全面而實(shí)用的指南。
    的頭像 發(fā)表于 11-01 12:29 ?3058次閱讀
    基于恩智浦<b class='flag-5'>FRDM-MCXA</b>153開發(fā)板實(shí)現(xiàn)<b class='flag-5'>RT-Thread</b>的ADC驅(qū)動(dòng)

    免費(fèi)申請(qǐng) | FRDM-MCXA156評(píng)測(cè)活動(dòng)發(fā)布!

    RT-Thread現(xiàn)已支持恩智浦官方推出的FRDM-MCXA156開發(fā)板并提供BSP!為了讓大家更好地體驗(yàn)MCXA156高能效微控制器的魅力,RT-Thread攜手恩智浦半導(dǎo)體,隆重推
    的頭像 發(fā)表于 02-10 18:45 ?714次閱讀
    免費(fèi)申請(qǐng) | <b class='flag-5'>FRDM-MCXA</b>156評(píng)測(cè)活動(dòng)發(fā)布!