首先感谢[RA生态工作室](瑞萨 RA MCU 生态社区)提供的瑞萨RA8D1 CPK开发板。
一、硬件介绍
瑞萨电子 RA8D1 MCU 系列是业界首款基于 Arm® Cortex®-M85 (CM85) 内核的 32 位图形微控制器 (MCU),能够在 480 MHz 频率下实现超过 3000 CoreMark 分数的突破性性能,可支持高分辨率显示和视觉 AI 应用的卓越图形功能。
CPKCOR-RA8D1B核心板 是瑞萨电子为中国市场设计的模块化开发板, 使用瑞萨RA8D1MCU,支持MIPI-DSI显示输出接口。核心板上已经搭载了RA8 MCU支持的较为有特色的外设接口和器件,可以直接使用核心板进行学习,评估和应用开发。
其外设包括:
16位SDRAM,32M字节容量
QSPI Flash,16M字节容量
USB 2.0高速主机/设备,JUSB Type-C 2.0接口,支持主/从功能自动切换
板载Segger Jlink调试器,同时支持一路虚拟串口,JDBG Type-C 2.0 设备接口
电源LED(白色),用户LED(绿色),复位按键和用户按键
2.54mm间距的通孔扩展接口
TF卡槽,支持3.3V信号电平(DS和HS速度模式)
J1,J2 两个80管脚的高密度板对板连接器
资源相当丰富,可以做很多有趣的工作和探索。
二、移植ThreadX
ThreadX是优秀的硬实时操作系统(RTOS),适用于深嵌入式应用中,具有规模小、实时性强、可靠性高、无产品版权费、易于使用等特点,并且支持大量的处理器和SoC,包括ARM、PowerPC、SH 4、MIPS、ADI DSP、TI DPS、Nios II等,因此广泛应用于消费电子、汽车电子、工业自动化、网络解决方案、军事与航空航天等领域中。
印象中ThreadX最深刻的就是黄色X,过目不忘。
(一)开发环境
开发环境:MDK 5.37 + Renesas.RA_DFP.5.5.0
FSP:5.1
J-LINK:8.10c
因为RA8D1比较新,老旧的J-LINK驱动找不到这个MCU,最好下个最新的,FSP亦是如此。
(二)创建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、时钟
首先配置时钟,根据RA8D1 CPK开发板的硬件规格,外部晶振是24MHz,按照如下配置即可。
2、Thread
需要在ThreadX上新建一个thread,用于验证系统是否正常启动。
3、GPIO
将RA8D1 CPK开发板上的LED使能,用于上面的thread周期性点亮,从而验证系统是否移植正常。
配置完成后,点击RA Smart Configurator上的“Generate Project Content”,生成ThreadX工程文件。
(三)编译ThreadX工程
在MDK上编译RA Smart Configurator生成的ThreadX工程。
1、Thread
在上章节的Thread配置的new_thread0线程中完善要做的内容,把LED灯周期性点起来。在new_thread0_entry.c
文件中增加如下内容:
#include "new_thread0.h"
#define GPIO_LED1 BSP_IO_PORT_10_PIN_01
void new_thread0_entry(void)
{
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、下载配置
按照如下配置填入参数。
在“RAM for Algorithms”中选择一个较大的数值,否则在烧录的时候会出现“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/launcher\rasc_launcher.bat" "C:\Users\RASmartConfigurator\threadx\rasc_version.txt" -nosplash --launcher.suppressErrors --gensmartbundle --compiler ARMv6 "C:\Users\RASmartConfigurator\threadx\configuration.xml" "C:\Users\RASmartConfigurator\threadx\Objects\threadx.axf" 2> "%TEMP%\rasc_stderr.out"""
".\Objects\threadx.axf" - 0 Error(s), 0 Warning(s).
Build Time Elapsed: 00:00:28
三、测试验证
将编译好的固件下载至RA8D1 CPK开发板,重启板子,绿色LED闪烁起来。
至此,ThreadX操作系统移植成功。