单片机/MCU论坛
直播中

大菠萝Alpha

4年用户 766经验值
擅长:嵌入式技术
私信 关注
[文章]

【瑞萨RA8D1 CPK开发板】RA8D1移植ThreadX操作系统

首先感谢[RA生态工作室](瑞萨 RA MCU 生态社区)提供的瑞萨RA8D1 CPK开发板。

一、硬件介绍

瑞萨电子 RA8D1 MCU 系列是业界首款基于 Arm® Cortex®-M85 (CM85) 内核的 32 位图形微控制器 (MCU),能够在 480 MHz 频率下实现超过 3000 CoreMark 分数的突破性性能,可支持高分辨率显示和视觉 AI 应用的卓越图形功能。
ra8d1-block-diagram.png

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管脚的高密度板对板连接器

278.png

资源相当丰富,可以做很多有趣的工作和探索。

二、移植ThreadX

ThreadX是优秀的硬实时操作系统(RTOS),适用于深嵌入式应用中,具有规模小、实时性强、可靠性高、无产品版权费、易于使用等特点,并且支持大量的处理器和SoC,包括ARM、PowerPC、SH 4、MIPS、ADI DSP、TI DPS、Nios II等,因此广泛应用于消费电子、汽车电子、工业自动化、网络解决方案、军事与航空航天等领域中。
3021.png

印象中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,新建工程。
TH1.png

选择FSP版本(最新的5.1),MCU型号等信息:
TH2.png

因为计划使用Keil编译,所以IDE选择MDK V5,MCU型号选择R7FA8D1BHEC332AS00。

Next后选择非TrustZone工程:

TH3.png

Next后,RTOS选择Azure RTOS ThreadX。
TH4.png
DFP直接支持,选择即可。
TH5.png
最后汇总信息如下:
TH6.png

(二)配置ThreadX工程

1、时钟

首先配置时钟,根据RA8D1 CPK开发板的硬件规格,外部晶振是24MHz,按照如下配置即可。
TH7.png

2、Thread

需要在ThreadX上新建一个thread,用于验证系统是否正常启动。

TH9.png

3、GPIO

将RA8D1 CPK开发板上的LED使能,用于上面的thread周期性点亮,从而验证系统是否移植正常。
TH10.png

配置完成后,点击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


                /* 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的值。
TH11.png

3、下载配置

按照如下配置填入参数。
TH8.png

在“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闪烁起来。
TH.jpg

至此,ThreadX操作系统移植成功。

TH

回帖(1)

jf_60370794

2024-12-10 18:48:17
你好, 想有偿咨询一个PCB方案,方便的话,烦请添加一下我的微信:1-8-2-2-1-5-9-3-0-9-0
举报

更多回帖

发帖
×
20
完善资料,
赚取积分