首頁 > 評測 > MM32F5270(STAR-MC1內(nèi)核)適配RT-Thread
MM32F5270(STAR-MC1內(nèi)核)適配RT-Thread
- [導讀]
- 概述 2022年4月,靈動微電子發(fā)布了搭載安謀科技“星辰”STAR-MC1處理器的全新高性能 MM32F5 微控制器系列。該系列在內(nèi)核、總線和外設配置等多個方面進行了創(chuàng)新,內(nèi)核上更是首次搭載了 Armv8-M 架構(gòu)的 “星辰” STAR
2022年4月,靈動微電子發(fā)布了搭載安謀科技“星辰”STAR-MC1處理器的全新高性能 MM32F5 微控制器系列。該系列在內(nèi)核、總線和外設配置等多個方面進行了創(chuàng)新,內(nèi)核上更是首次搭載了 Armv8-M 架構(gòu)的 “星辰” STAR-MC1 處理器。很高興通過ARM中國拿到該芯片的開發(fā)板(可以搞事情)
MM32F5270 是一款搭載了安謀科技 STAR-MC1 內(nèi)核的 MCU 產(chǎn)品,其工作頻率可達 120MHz,內(nèi)置多達 256KB Flash 和 192KB RAM,配置浮點運算單元(Floating Point Unit, FPU)、數(shù)字信號處理單元(Digital Signal Processing,DSP)、信號間互聯(lián)矩陣 MindSwitch、可配置邏輯單元 CLU、三角函數(shù)加速單元 CORDIC 等算法加速單元,并集成了豐富的外設模塊和充足的 I/O 端口。MM32F5270 相較于現(xiàn)有產(chǎn)品全面提升了性能、存儲容量、總線架構(gòu)和外設配置。
芯片資源:
拿到開發(fā)板,就想著移植個操作系統(tǒng)。嘻嘻嘻,那必須先上RT-THREAD,組件資源豐富,易于后續(xù)功能的各項開發(fā)。
RT-Thread完整版的移植說明
移植之前須知內(nèi)容:
芯片是什么內(nèi)核?
答:MM32F5270是基于Armv8-M 架構(gòu)的 “星辰” STAR-MC1 處理器。通過下圖可以看出,我們可以參考CM33內(nèi)核進行移植。
編譯工具鏈?
答:MM32F5270提供的demo是采用armclang(AC6),所以他跟ARMCC還不太一樣。通過官方文檔(https://www.keil.com/appnotes/files/apnt_298.pdf)可以看出AC6的匯編代碼是可以兼容GUN的。所以這個對移植是非常友好的。
開始移植
復制模板 -- 通過查找,可以復制BSP-stm32l552-st-nucleo作為模板
修改rtconfig.py -- 修改CPU類型,修改編譯選項
修改libcpu--把m33的名字修改為star_mc1。
修改libcpu的匯編分割--復制libcpu的gcc匯編代碼到keil的匯編代碼中。從移植須知的第二點可知,AC6的匯編風格是和GUN一樣的。所以直接拷貝。
修改board.h--修正芯片資源宏定義。
修改鏈接腳本--RT-Thread的動態(tài)內(nèi)存堆是在ZI段結(jié)尾處到RAM尾部,而board.h中指向ZI段結(jié)尾處的變量(Image
RWIRAM1
RWIRAM1
ZI$$Limit),所以需要修改MM32F5270的默認鏈接腳本為如下:
替換mm32的庫--將mm32f5270的sdk中的庫porting到libraies目錄中,并創(chuàng)建SConscript腳本文件。注意需要定義宏定義-BRD_PLUS_F5270
初始化系統(tǒng)時鐘--將mm32f5279的sdk中系統(tǒng)時鐘初始化拷貝到board.c中
初始化系統(tǒng)tick--將函數(shù)rt_tick_increase()放在system tick中斷中。
以上步驟基本把rtt移植到mm32f5270中。
移植驗證
在main.c中main函數(shù)添加點燈的代碼。如果能夠看到led在閃爍,就說明移植成功了。
現(xiàn)象
shell適配
適配uart驅(qū)動
實現(xiàn)ops的5個函數(shù)
將ops注冊到serial框架中
注冊serial中斷,在中斷服務程序中調(diào)用rt_hw_serial_isr()函數(shù)
struct rt_uart_ops
{
rt_err_t (*configure)(struct rt_serial_device *serial, struct serial_configure *cfg);
rt_err_t (*control)(struct rt_serial_device *serial, int cmd, void *arg);
int (*putc)(struct rt_serial_device *serial, char c);
int (*getc)(struct rt_serial_device *serial);
rt_size_t (*dma_transmit)(struct rt_serial_device *serial, rt_uint8_t *buf, rt_size_t size, int direction);
};
void rt_hw_serial_isr(struct rt_serial_device *serial, int event);
rt_err_t rt_hw_serial_register(struct rt_serial_device *serial,
const char *name,
rt_uint32_t flag,
void *data);
將對應的串口驅(qū)動名設置到rt_console_set_device()函數(shù)中。
shell驗證
串口終端可以正常輸入輸出
- 本文系21ic原創(chuàng),未經(jīng)許可禁止轉(zhuǎn)載!
網(wǎng)友評論
- 聯(lián)系人:巧克力娃娃
- 郵箱:board@21ic.com
- 我要投稿
-
歡迎入駐,開放投稿
-
人均百萬?英偉達中國員工收入曝光! 2024-08-29
-
《黑神話:悟空》玩家硬盤升級攻略:提升游戲體驗,暢享3A大作 2024-08-29
-
數(shù)睿數(shù)據(jù)參加《系統(tǒng)與軟件工程 低代碼開發(fā)平臺通用技術(shù)要求》國家標準編制 2024-08-29
- NRF52810藍牙數(shù)字耳機找人定制
預算:¥30005天前
- 125KW模塊式PCS軟硬件外包開發(fā)
預算:¥1100000015小時前
- 12V汽車啟動電源項目BMS設計
預算:¥50000023小時前
- 數(shù)據(jù)可視化軟件 開發(fā)
預算:¥5000023小時前
- PLC項目調(diào)試修改
預算:¥100001天前
- 起動電機控制器開發(fā)
預算:¥1100001天前