[原创] 【瑞萨RA8D1开发板,基于M85内核的图形MCU测评】1.基于MDK的环境搭建,FreeRTOS移....

镜花水月000   2024-7-6 22:12 楼主
首先感谢论坛给我这次RA8D1测评的机会,瑞萨电子 RA8D1 MCU 系列是业界首款基于 Arm® Cortex®-M85 (CM85) 内核的 32 位图形微控制器 (MCU),能够在 480 MHz 频率下实现超过 3000 CoreMark 分数的突破性性能,可支持高分辨率显示和视觉 AI 应用的卓越图形功能。测评板子也十分漂亮,IO接口十分丰富。RA8D1开发是支持e2studio和MDK两种IDE平台的,本次进行MDK的环境搭建。
220613fy1741gwh7n7yahc.png
下载开发资源,瑞萨RA8D1软件包下载git下载地址https://github.com/renesas/fsp/releases
220613eh6383ed11ere0ed.png
RA8D1的MDK开发环境搭需要的软件包如下
220613a1mn171rpa71kx44.png
安装比较简单,默认安装即可,然后进行工程搭建测试。本次实验目的是实现基于FreeRTOS下的led点灯和串口测试。
首先打开Renesas RA Smart Configurator 5.4.0,选择芯片
220613cspz9s0nii9mrm9p.png
点击next
220613ed6ut62xmmxihdst.png
选择FreeRTOS
220613jndgumsnfi4zzsbp.png
220613yvqtajtoc05admxd.png
220613k9fdg83ctgtplgl6.png
首先进行时钟设置,由原理图可知外部晶振为24MHz,工程默认是20MHz,需要更改一下
220613cs883009ees19u3g.png
220613by0tze0yoceodavh.png
接下来配置LED接口,并创建led线程,由原理图可知LED的引脚为PA01。
220613v5abqubv4cqbpucu.png
IO配置如下
220613z2x4itzzytty921d.png 进行FreeRTOS线程创建,先、添加内存管理heap4
220613pxdwcs53xa0zczqm.png
创建led Thread,配置如下
220613uebm0ddlld9lyc8e.png
然后点击创建工程,生成工程如下
220613gczgjtqitwgq4z0g.png
打开工程,生成的目录如下
220613bphnchwh2kljpj4w.png
编译一下
220613sbh0em0mq2oko2bb.png
220613xpmvgwpmmtxxmej9.png
先写个LED闪烁,1秒2次,
void led_thread_entry(void *pvParameters)
{
FSP_PARAMETER_NOT_USED(pvParameters);
/* TODO: add your own code here */
while (1)
{
R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_10_PIN_01, BSP_IO_LEVEL_LOW);
vTaskDelay(100);
R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_10_PIN_01, BSP_IO_LEVEL_HIGH);
vTaskDelay(400);
}
}

 

配置一下烧录设置,首先添加下载算法
220613umkum5jz1rrdjznb.png
默认下载算法空间有问题,下载会提示错误
220613lv91ezruttmdo6oe.png
修改一下配置
220613dfup62hs8htf6w8u.png
修改如下
220613erz7rredebee4ayd.png
设置完成 烧录,点灯成功
点灯.gif 点击上图查看Gif动图

 

 
接下来添加串口线程并进行printf重定向测试,由原理图可知串口3和板载的JLink的串口相连
220613p53igzi3mgm41g4f.png
通过MDK打开图形化配置
220613mxw6hnh6xhqf6vuf.png
设置串口时钟
220613vglrrp5lrhh4pvnr.png
配置串口3引脚
220613wpssrc8g8jcbrrt7.png
增加UART3_Thread
220613nzza87z2esze77hl.png
220613zlmrgfuz7kl8mvwm.png
配置串口3
220613v6866ez566bb6ybq.png
点击生成代码
220613awx2nwixmtzbqi2b.png
编译一下,提示有错误
220613lfggi9n40g0i0gk7.png
这是没有添加回调函数造成的,现在添加一下回调函数,先写个串口回环测试
#include "uart3_thread.h"
/* uart3_thread entry function */
/* pvParameters contains TaskHandle_t */
void uart3_thread_entry(void *pvParameters)
{
FSP_PARAMETER_NOT_USED(pvParameters);
fsp_err_t err = FSP_SUCCESS;
err = R_SCI_B_UART_Open (&g_uart3_ctrl, &g_uart3_cfg);
assert(FSP_SUCCESS == err);
/* TODO: add your own code here */
while (1)
{
vTaskDelay(1000);
}
}
/* 发送完成标志 */
volatile bool uart_send_complete_flag = false;
/* 串口中断回调 */
void uart3_callback (uart_callback_args_t * p_args)
{
switch (p_args->event)
{
case UART_EVENT_RX_CHAR:
{
/* 把串口接收到的数据发送回去 */
R_SCI_B_UART_Write(&g_uart3_ctrl, (uint8_t *)&(p_args->data), 1);
break;
}
case UART_EVENT_TX_COMPLETE:
{
uart_send_complete_flag = true;
break;
}
default:
break;
}
}

 

烧录测试
串口.gif 点击上图查看Gif动图

 

Printf重定向,打印测试
int fputc(int ch, FILE *f)
{
(void)f;
R_SCI_B_UART_Write(&g_uart3_ctrl, (uint8_t *)&ch, 1);
while(uart_send_complete_flag == false);
uart_send_complete_flag = false;
return ch;
}

void uart3_thread_entry(void *pvParameters)
{
FSP_PARAMETER_NOT_USED(pvParameters);
fsp_err_t err = FSP_SUCCESS;
/* 初始化串口3 */
err = R_SCI_B_UART_Open (&g_uart3_ctrl, &g_uart3_cfg);
assert(FSP_SUCCESS == err);
/* TODO: add your own code here */
while (1)
{
printf("CPU : RA8D1BH, 主频: %dMHz\r\n", SystemCoreClock / 1000000);
vTaskDelay(1000);
}
}

 

printf.gif 点击上图查看Gif动图

 

 
220613ornkj4z6gee66zpj.png
至此,环境搭建测试结束
总结:瑞萨的MDK环境搭建还是非常简单的,图形化配置也十分的方便好用,而且STACKS图形化配置的设计更加直观。

回复评论 (2)

MDK能直接启动Renesas RA进行配置吗?  

在爱好的道路上不断前进,在生活的迷雾中播撒光引
点赞  2024-7-9 07:17
引用: 秦天qintian0303 发表于 2024-7-9 07:17 MDK能直接启动Renesas RA进行配置吗?  

可以的

点赞  2024-7-9 13:18
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复