NuMicro M0A23 系列是基于 Arm Cortex -M0 內核的 32 位微控制器。它的工作溫度范圍達 -40°C 至 125°C,在小封裝中提供 CAN 功能,豐富的仿真外設及彈性的引腳分配功能。2.4V 至 5.5V 的工作電壓。NuMicro M0A23 系列針對工控和較高的工作溫度應用,如雷達,電池管理系統 (BMS),汽車照明,車用控制及工控傳感器等應用。
之前我發過一個帖,移植RTT到NUC029上的帖,這次拿到新的開發板,我們試試能否輕松移植RTT到這個M0A23開發板。 準備工具 Keil V5,在pack里安裝RTOS,如下圖所示
接下來新建工程,工程目錄存放M0A23的Lib文件
然后按照RTE的創建工程方式,添加啟動文件與RTT RTOS文件到工程
在工程創建目錄,添加USER文件和Lib文件
最后對工程配置進行修改,因為要用stdio.h 所以在Target選項卡勾選Use MicroLIB,同時選中編譯器為V5版本
在C/C++選項卡設置頭文件路徑 .LibraryDeviceNuvotonM0A21Include;.LibraryStdDriverinc;.LibraryCMSISInclude 在Linker選項卡設置Misc controls --map --first=‘startup_M0A21.o(RESET)’ --datacompressor=off --info=inline --entry Reset_Handler 在調試器設置對應的調試器,并選擇為自動偵測模式
配置燒錄功能如下
基本配置到此完成,接下來進行RTT移植修改。 在board.c文件中進行時鐘與串口的初始化配置,同時別忘了將頭文件NUMicro.h包含進來。
可以直接將M0A23的BSP中的模板配置復制來用即可
void SYS_Init(void){ /* Unlock protected registers */ SYS_UnlockReg(); /* Enable HIRC clock (Internal RC 48MHz) */ CLK_EnableXtalRC(CLK_PWRCTL_HIRCEN_Msk); /* Wait for HIRC clock ready */ CLK_WaitClockReady(CLK_STATUS_HIRCSTB_Msk); /* Select HCLK clock source as HIRC and HCLK source divider as 1 */ CLK_SetHCLK(CLK_CLKSEL0_HCLKSEL_HIRC, CLK_CLKDIV0_HCLK(1)); /* Enable UART0 clock */ CLK_EnableModuleClock(UART0_MODULE);
/* Switch UART0 clock source to HIRC */ CLK_SetModuleClock(UART0_MODULE, CLK_CLKSEL1_UART0SEL_HIRC, CLK_CLKDIV0_UART0(1)); /* Update System Core Clock */ SystemCoreClockUpdate(); /* Set PB multi-function pins for UART0 RXD=PB.6 and TXD=PB.4 */ SYS-》GPB_MFP1 = (SYS-》GPB_MFP1 & ~(SYS_GPB_MFP1_PB4MFP_Msk | SYS_GPB_MFP1_PB6MFP_Msk)) | (SYS_GPB_MFP1_PB4MFP_UART0_TXD | SYS_GPB_MFP1_PB6MFP_UART0_RXD); /* Lock protected registers */ SYS_LockReg(); UART_Open(UART0, 115200);} 然后在rt_hw_board_init()
中引用該初始化并刪除該函數中的時鐘更新函數,因為我們已經在上面的函數完成了該操作。
接下來在該文件末尾添加
void rt_hw_console_output(const char *str){ printf(“%s”,str);} char rt_hw_console_getchar(void){return getchar();} 以實現串口打印與交互輸入。
然后我們發現,工程的啟動文件目錄有重定向文件,我們用庫函數中的進行替換該文件。
然后找到
__asm int32_t HardFault_Handler(void)
該函數,并注釋掉該函數,因為RTT中已經實現了該函數,不然就重復定義了。另外就是通過rtconfig.h啟用某些功能了,支持配置向導模式
接下來保存工程,在main.c添加個簡單的代碼
#include 《stdio.h》#include “NuMicro.h”#include 《rtthread.h》 int main(void){ return 0;} 編譯,一次通過。 “.Objectsdemo.axf” - 0 Error(s), 0 Warning(s)。 下載測試
這里提供工程供大家測試學習
編輯:jq
-
微控制器
+關注
關注
48文章
7655瀏覽量
152141 -
傳感器
+關注
關注
2553文章
51421瀏覽量
756727 -
函數
+關注
關注
3文章
4346瀏覽量
62984 -
RTT
+關注
關注
0文章
65瀏覽量
17222 -
RT-Thread
+關注
關注
31文章
1305瀏覽量
40403
原文標題:我只用了十分鐘:將RT-Thread移植到了新唐新款單片機上
文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
Deepseek上單片機?RT-Thread上跑通大語言模型
![Deepseek上<b class='flag-5'>單片機</b>?<b class='flag-5'>RT-Thread</b>上跑通大語言模型](https://file1.elecfans.com/web2/M00/C4/8A/wKgZomX0EhWACv8DAAAUet8ikhs451.png)
RT-Thread上CAN實踐
![<b class='flag-5'>RT-Thread</b>上CAN實踐](https://file1.elecfans.com/web2/M00/C4/8A/wKgZomX0EhWACv8DAAAUet8ikhs451.png)
開源共生 商業共贏 | RT-Thread 2024開發者大會報名啟動!
![開源共生 商業共贏 | <b class='flag-5'>RT-Thread</b> 2024開發者大會報名啟動!](https://file1.elecfans.com/web2/M00/C4/8A/wKgZomX0EhWACv8DAAAUet8ikhs451.png)
【上海】9月21日RT-Thread巡回線下培訓-RTduino 10分鐘上手嵌入式
![【上海】9月21日<b class='flag-5'>RT-Thread</b>巡回線下培訓-RTduino 10<b class='flag-5'>分鐘</b>上手嵌入式](https://file1.elecfans.com/web2/M00/C4/8A/wKgZomX0EhWACv8DAAAUet8ikhs451.png)
【武漢】9月7日RT-Thread巡回線下培訓-RTduino-10分鐘上手嵌入式
![【武漢】9月7日<b class='flag-5'>RT-Thread</b>巡回線下培訓-RTduino-10<b class='flag-5'>分鐘</b>上手嵌入式](https://file1.elecfans.com/web2/M00/C4/8A/wKgZomX0EhWACv8DAAAUet8ikhs451.png)
2024 RT-Thread全球巡回 線下培訓火熱來襲!
![2024 <b class='flag-5'>RT-Thread</b>全球巡回 線下培訓火熱來襲!](https://file1.elecfans.com/web2/M00/C4/8A/wKgZomX0EhWACv8DAAAUet8ikhs451.png)
RT-Thread 新里程碑達成——GitHub Star 破萬!
![<b class='flag-5'>RT-Thread</b> 新里程碑達成——GitHub Star 破萬!](https://file1.elecfans.com/web2/M00/C4/8A/wKgZomX0EhWACv8DAAAUet8ikhs451.png)
6月6日杭州站RT-Thread線下workshop,探索RT-Thread混合部署新模式!
![6月6日杭州站<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!](https://file1.elecfans.com/web2/M00/C4/8A/wKgZomX0EhWACv8DAAAUet8ikhs451.png)
RT-Thread混合部署Workshop北京站來啦!
![<b class='flag-5'>RT-Thread</b>混合部署Workshop北京站來啦!](https://file1.elecfans.com/web2/M00/C4/8A/wKgZomX0EhWACv8DAAAUet8ikhs451.png)
4月25日北京站RT-Thread線下workshop,探索RT-Thread混合部署新模式
![4月25日北京站<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式](https://file1.elecfans.com/web2/M00/C4/8A/wKgZomX0EhWACv8DAAAUet8ikhs451.png)
4月10日深圳場RT-Thread線下workshop,探索RT-Thread混合部署新模式!
![4月10日深圳場<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!](https://file1.elecfans.com/web2/M00/C6/D0/wKgaomYDlJyAKUBmAAAgR-TqYwc187.png)
4月10日深圳場RT-Thread線下workshop,探索RT-Thread混合部署新模式!
![4月10日深圳場<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!](https://file1.elecfans.com/web2/M00/C4/8A/wKgZomX0EhWACv8DAAAUet8ikhs451.png)
恩智浦半導體正式加入RT-Thread全球合作伙伴計劃!
![恩智浦半導體正式加入<b class='flag-5'>RT-Thread</b>全球合作伙伴計劃!](https://file1.elecfans.com/web2/M00/C5/31/wKgaomXyY_eAHGhqAAAkpBZI8PE901.png)
評論