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

描述

首先感谢[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


                /* 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、下载配置

按照如下配置填入参数。
 

操作系统

在“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/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开发板,重启板子,绿色LED闪烁起来。
 

操作系统

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

审核编辑 黄宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分