首先感谢论坛给我这次RA8D1测评的机会,瑞萨电子 RA8D1 MCU 系列是业界首款基于 Arm® Cortex®-M85 (CM85) 内核的 32 位图形微控制器 (MCU),能够在 480 MHz 频率下实现超过 3000 CoreMark 分数的突破性性能,可支持高分辨率显示和视觉 AI 应用的卓越图形功能。测评板子也十分漂亮,IO接口十分丰富。RA8D1开发是支持e2studio和MDK两种IDE平台的,本次进行MDK的环境搭建。
RA8D1的MDK开发环境搭需要的软件包如下
安装比较简单,默认安装即可,然后进行工程搭建测试。本次实验目的是实现基于FreeRTOS下的led点灯和串口测试。
首先打开Renesas RA Smart Configurator 5.4.0,选择芯片
点击next
选择FreeRTOS
首先进行时钟设置,由原理图可知外部晶振为24MHz,工程默认是20MHz,需要更改一下
接下来配置LED接口,并创建led线程,由原理图可知LED的引脚为PA01。
IO配置如下
创建led Thread,配置如下
然后点击创建工程,生成工程如下
打开工程,生成的目录如下
编译一下
先写个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);
}
}
配置一下烧录设置,首先添加下载算法
默认下载算法空间有问题,下载会提示错误
修改一下配置
修改如下
设置完成 烧录,点灯成功
接下来添加串口线程并进行printf重定向测试,由原理图可知串口3和板载的JLink的串口相连
通过MDK打开图形化配置
设置串口时钟
配置串口3引脚
增加UART3_Thread
配置串口3
点击生成代码
编译一下,提示有错误
这是没有添加回调函数造成的,现在添加一下回调函数,先写个串口回环测试
#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;
}
}
烧录测试
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);
}
}
至此,环境搭建测试结束
总结:瑞萨的MDK环境搭建还是非常简单的,图形化配置也十分的方便好用,而且STACKS图形化配置的设计更加直观。