首先感謝[RA生態(tài)工作室](瑞薩 RA MCU 生態(tài)社區(qū))提供的瑞薩RA8D1 CPK開發(fā)板。
一、硬件介紹
瑞薩電子 RA8D1 MCU 系列是業(yè)界首款基于 Arm? Cortex?-M85 (CM85) 內(nèi)核的 32 位圖形微控制器 (MCU),能夠在 480 MHz 頻率下實現(xiàn)超過 3000 CoreMark 分數(shù)的突破性性能,可支持高分辨率顯示和視覺 AI 應用的卓越圖形功能。
CPKCOR-RA8D1B核心板 是瑞薩電子為中國市場設(shè)計的模塊化開發(fā)板, 使用瑞薩RA8D1MCU,支持MIPI-DSI顯示輸出接口。核心板上已經(jīng)搭載了RA8 MCU支持的較為有特色的外設(shè)接口和器件,可以直接使用核心板進行學習,評估和應用開發(fā)。
其外設(shè)包括:
16位SDRAM,32M字節(jié)容量
QSPI Flash,16M字節(jié)容量
USB 2.0高速主機/設(shè)備,JUSB Type-C 2.0接口,支持主/從功能自動切換
板載Segger Jlink調(diào)試器,同時支持一路虛擬串口,JDBG Type-C 2.0 設(shè)備接口
電源LED(白色),用戶LED(綠色),復位按鍵和用戶按鍵
2.54mm間距的通孔擴展接口
TF卡槽,支持3.3V信號電平(DS和HS速度模式)
J1,J2 兩個80管腳的高密度板對板連接器
資源相當豐富,可以做很多有趣的工作和探索。
二、移植ThreadX
ThreadX是優(yōu)秀的硬實時操作系統(tǒng)(RTOS),適用于深嵌入式應用中,具有規(guī)模小、實時性強、可靠性高、無產(chǎn)品版權(quán)費、易于使用等特點,并且支持大量的處理器和SoC,包括ARM、PowerPC、SH 4、MIPS、ADI DSP、TI DPS、Nios II等,因此廣泛應用于消費電子、汽車電子、工業(yè)自動化、網(wǎng)絡(luò)解決方案、軍事與航空航天等領(lǐng)域中。
印象中ThreadX最深刻的就是黃色X,過目不忘。
(一)開發(fā)環(huán)境
開發(fā)環(huán)境:MDK 5.37 + Renesas.RA_DFP.5.5.0
FSP:5.1
J-LINK:8.10c
因為RA8D1比較新,老舊的J-LINK驅(qū)動找不到這個MCU,最好下個最新的,F(xiàn)SP亦是如此。
(二)創(chuàng)建ThreadX工程
打開RA Smart Configurator,選擇File->New->FSP Project,新建工程。
選擇FSP版本(最新的5.1),MCU型號等信息:
因為計劃使用Keil編譯,所以IDE選擇MDK V5,MCU型號選擇R7FA8D1BHEC332AS00。
Next后選擇非TrustZone工程:
Next后,RTOS選擇Azure RTOS ThreadX。
DFP直接支持,選擇即可。
最后匯總信息如下:
(二)配置ThreadX工程
1、時鐘
首先配置時鐘,根據(jù)RA8D1 CPK開發(fā)板的硬件規(guī)格,外部晶振是24MHz,按照如下配置即可。
2、Thread
需要在ThreadX上新建一個thread,用于驗證系統(tǒng)是否正常啟動。
3、GPIO
將RA8D1 CPK開發(fā)板上的LED使能,用于上面的thread周期性點亮,從而驗證系統(tǒng)是否移植正常。
配置完成后,點擊RA Smart Configurator上的“Generate Project Content”,生成ThreadX工程文件。
(三)編譯ThreadX工程
在MDK上編譯RA Smart Configurator生成的ThreadX工程。
1、Thread
在上章節(jié)的Thread配置的new_thread0線程中完善要做的內(nèi)容,把LED燈周期性點起來。在new_thread0_entry.c文件中增加如下內(nèi)容:
#include "new_thread0.h" #define GPIO_LED1 BSP_IO_PORT_10_PIN_01 /* New Thread entry function */ void new_thread0_entry(void) { /* TODO: add your own code here */ while(1) { R_IOPORT_PinWrite(&g_ioport_ctrl, GPIO_LED1, BSP_IO_LEVEL_LOW); tx_thread_sleep(100); R_IOPORT_PinWrite(&g_ioport_ctrl, GPIO_LED1, BSP_IO_LEVEL_HIGH); tx_thread_sleep(100); } }
2、編譯配置
配置好IROM與IRAM的值。
3、下載配置
按照如下配置填入參數(shù)。
在“RAM for Algorithms”中選擇一個較大的數(shù)值,否則在燒錄的時候會出現(xiàn)“Insufficient RAM for Flash Algorithms !”錯誤。
4、編譯工程
在MDK中編譯好ThreadX工程。
compiling new_thread0.c... compiling main.c... linking... Program Size: Code=6222 RO-data=742 RW-data=1032 ZI-data=2768 FromELF: creating hex file... After Build - User command #1: cmd /c "start "Renesas" /w cmd /c ""D:/Keil_v537/Packs/Renesas/RA_DFP/5.5.0/launcherrasc_launcher.bat" "C:UsersRASmartConfiguratorthreadxrasc_version.txt" -nosplash --launcher.suppressErrors --gensmartbundle --compiler ARMv6 "C:UsersRASmartConfiguratorthreadxconfiguration.xml" "C:UsersRASmartConfiguratorthreadxObjectsthreadx.axf" 2> "%TEMP%rasc_stderr.out""" ".Objectsthreadx.axf" - 0 Error(s), 0 Warning(s). Build Time Elapsed: 00:00:28
三、測試驗證
將編譯好的固件下載至RA8D1 CPK開發(fā)板,重啟板子,綠色LED閃爍起來。
至此,ThreadX操作系統(tǒng)移植成功。
審核編輯 黃宇
-
threadx
+關(guān)注
關(guān)注
0文章
15瀏覽量
13828 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
6801瀏覽量
123283 -
開發(fā)板
+關(guān)注
關(guān)注
25文章
5032瀏覽量
97371 -
cpk
+關(guān)注
關(guān)注
0文章
12瀏覽量
9088
發(fā)布評論請先 登錄
相關(guān)推薦
評論