目录
概述
1 软硬件
1.1 软硬件环境信息
1.2 开发板信息
1.3 调试器信息
2 FSP和KEIL产生测试项目
2.1 FSP生成项目
2.2 Keil中配置
3 硬件连接框图
4 一个测试案例
4.1 功能介绍
4.2 定时器函数
5 测试
搭建Renesas R7FA8D1BHECBD-BTB的开发调试环境(DAP-LINK: N32G45XVL-STB)
源代码下载地址:
FSP-Project-RA8-test:搭建瑞萨R7FA8D1BHECBD-BTB的开发调试环境(DAP-LINK:N32G资源-CSDN文库
概述
本文主要介绍使用Keil、FSP、DAP-LINK(N32G45XVL-STB)搭建瑞萨R7FA8D1BHECBD-BTB的开发调试环境。笔者选择使用野火耀阳开发板_瑞萨RA8,该板块的主控MCU R7FA8D1BHECBD,7FA8D1BHECBD的内核为ARM Contex-M85。使用J-LINK必要要求版本在V10以上,ST-LINK也不支持 Contex-M85内核代码下载。笔者通过使用多种下载器进行测试,最后发现N32G45XVL-STB开发板上自带的DAP-LINK工具竟然可以下载和调试R7FA8D1BHECBD芯片。
1 软硬件
1.1 软硬件环境信息
软硬件信息 | 版本信息 |
---|---|
Renesas MCU | R7FA8D1BH |
Keil | MDK ARM 5.38 |
FSP 版本 | 5.3.0 |
调试工具:N32G45XVL-STB | DAP-LINK |
1.2 开发板信息
笔者选择使用野火耀阳开发板_瑞萨RA8,该板块的主控MCU为R7FA8D1BHECBD,7FA8D1BHECBD的内核为ARM Contex-M85。
1.3 调试器信息
笔者之前使用R7FA4M2AD3C芯片,其可以通过ST-LINK-V2或者J-LINK-V9调试或者下载代码。该芯片内核为Cortex®-M33 Core。该芯片的开发环境在该篇文章中做个详细的介绍:
Renesas MCU之使用Keil搭建开发环境_keil怎么安装瑞萨fsp-CSDN博客
对于R7FA8D1BHECBD芯片,其使用的内核为Cortex®-M85 Core, ST-LINK-V2或者J-LINK-V9并不支持下载和调试功能。笔者经过多次尝试,发现N32G45XVL-STB板卡上自带的DAP-LINK可以下载和调试R7FA8D1BHECBD。
下图为N32G45XVL-STB开发板实物图:
2 FSP和KEIL产生测试项目
2.1 FSP生成项目
1)项目基本配置参数
2)LED测试IO配置
野火耀阳开发板_瑞萨RA8上有3个LED,其对应的接口为P504,P407和P410
在FSP上配置这3个IO为输出,以控制LED的状态
3) 配置调试接口
开发板上的接口
FSP上配置调试接口
2.2 Keil中配置
完成FSP项目配置之后,生成基于Keil开发环境的项目文件,打开项目文件,其架构如下:
1)MCU类型选择
2)调试器选择
3)调试器识别MCU信息
4)配置RAM空间和MCU的下载数据空间
3 硬件连接框图
瑞萨RA8开发板野火单片机 | N32G45XVL-STB(DAP-LINK) |
---|---|
SWDIO | SWDIO |
SWCLK | SWCLK |
GND | GND |
硬件实物图:
4 一个测试案例
4.1 功能介绍
配置一个定时器,实现1ms定时。通过定时器控制3个LED的状态
4.2 定时器函数
1)定时器初始化函数
void timer0_Init(void)
{
fsp_err_t err = FSP_SUCCESS;
/* Initializes the module. */
err = R_AGT_Open(&g_timer0_ctrl, &g_timer0_cfg);
/* Handle any errors. This function should be defined by the user. */
assert(FSP_SUCCESS == err);
/* Start the timer. */
err = R_AGT_Start(&g_timer0_ctrl);
assert(FSP_SUCCESS == err);
err = R_AGT_Enable(&g_timer0_ctrl);
assert(FSP_SUCCESS == err);
}
2)定时器回调函数
void g_timer0_Callback(timer_callback_args_t *p_args)
{
static int count =0 ;
/* timer Callback action */
if (TIMER_EVENT_CYCLE_END == p_args->event)
{
count++;
if( count %1000 == 0)
LED3_TOGGLE;
if( count %300 == 0)
LED2_TOGGLE;
if( count %500 == 0)
LED1_TOGGLE;
}
}
5 测试
编译代码下载到板卡中进行测试,出现如下信息,说明下载成功