软件下载与安装
我使用的操作系统是WIN10,开发环境是keil5
- Renesas RA Smart Configurator下载地址
Release v4.1.0 · renesas/fsp (github.com)
选择 setup_fsp_v4_1_0_rasc_v2022-10.exe
- MDK支持包下载地址:https://www2.renesas.eu/Keil_MDK_Packs/Renesas.RA_DFP.4.1.0.pack
根据提醒安装完成软件包,keil安装包可以从各家开发板开源资料获取。
工程配置
打开后输入工程名
如下根据需求选择相关配置
接着选择了无操作系统和点灯模板
如下生成工程,然后到工程目录打开工程
编译与烧写
打开keil工程之后进行编译,然后就出来一堆错误,如下
然后是查看帮助手册,找到预定义的版本宏
然后修改增加以下两处代码
再次编译就通过了,然后检查map文件的向量表位置是否符合预期
接着就开始阅读代码,了解demo的执行逻辑啦
代码分析
启动过程分析
首先是找到中断向量表,得到复位中断函数如下
然后得到了SystemInit和main函数,按经验main应该是用户程序入口了
最后调用了hal_entry函数
hal_entry代码拷贝出来贴在下面进行分析,分析过程直接写进代码注释
void hal_entry (void)
{
#if BSP_TZ_SECURE_BUILD
R_BSP_NonSecureEnter();
#endif
const bsp_delay_units_t bsp_delay_units = BSP_DELAY_UNITS_MILLISECONDS;
const uint32_t freq_in_hz = 2;
const uint32_t delay = bsp_delay_units / freq_in_hz;
bsp_leds_t leds = g_bsp_leds;
if (0 == leds.led_count)
{
while (1)
{
;
}
}
bsp_io_level_t pin_level = BSP_IO_LEVEL_LOW;
while (1)
{
R_BSP_PinAccessEnable();
for (uint32_t i = 0; i < leds.led_count; i++)
{
uint32_t pin = leds.p_leds[i];
R_BSP_PinWrite((bsp_io_port_pin_t) pin, pin_level);
}
R_BSP_PinAccessDisable();
if (BSP_IO_LEVEL_LOW == pin_level)
{
pin_level = BSP_IO_LEVEL_HIGH;
}
else
{
pin_level = BSP_IO_LEVEL_LOW;
}
R_BSP_SoftwareDelay(delay, bsp_delay_units);
}
}
经过对源码的分析可以知道这个demo是周期性的闪烁所有的led灯,那么接下来烧尽开发板试试吧,看会不会遇到问题。
运行程序
开发板没在手里等验证完了更新结果。
|