修改记录:
本文介绍将如何从零搭建RA4M2 Keil开发环境,以及如何点亮RA-Eco-RA4M2-100PIN开发板上的一个LED灯。开发环境搭建部分,详细介绍了不依赖额外硬件调试器的开发环境,即搭建一个只是用使用开发板自带USB口进行烧录的开发环境。新手点灯指南部分,以点灯为例,详细记录了创建项目、编写代码、编译代码、烧录固件、运行程序的完整操作步骤,即便你此前完全没有使用过瑞萨MCU,参考这里的步骤也可以完成整个过程。
感谢电子发烧友组织的试用活动,感谢瑞萨生态社区提供的RA-Eco-RA4M2-100PIN开发板。
上周一(14号)收到了快递,鸽了一周,今天周天(20号)终于开始写环境搭建的帖子了。
拆开塑料快递包装袋,里面是朴实无华的包装盒:
拆开包装盒,可以看到防静电袋包装的板子和一根Type-C数据线:
拆开包装袋,就是开发板了:
开发板也很简洁,几乎是正方形的,可以看到:
芯片手册(中英文):https://ramcu.cn/public/uploads/files/20220902/11cd840caf4b98cdfc43f7c10f672be4.pdf
芯片手册(英文):https://www.renesas.cn/cn/en/document/dst/ra4m2-group-datasheet?r=1469026
RA4M2系列MCU关键特性:
主控芯片特写,可以清楚的看到型号:
这里搭建的是硬件依赖最少的开发环境,即使用开发板的USB烧录口进行固件烧录。如果你准备使用JLink或DAP-Link其他硬件调试器进行烧录,部分操作步骤略有差异,这里不再介绍。
Flex Software Package,简称FSP,它包含了HAL库和配置工具;其中,配置工具叫 RA Smart Configurator,简称RASC。
FSP官网下载页面:https://www2.renesas.cn/cn/zh/software-tool/flexible-software-package-fsp
FSP GitHub下载页面:https://github.com/renesas/fsp/releases
当前最新版本v4.1.0安装包:https://github.com/renesas/fsp/releases/download/v4.1.0/setup_fsp_v4_1_0_rasc_v2022-10.exe
安装没啥难度,一路“下一步”就好了,安装完成界面如下:
MDK安装,默认设置,一路下一步就好了,没啥难度,不再详细介绍。
Keil默认不支持RA系列MCU,需要安装瑞萨RA系列MCU Keil支持包才能支持RA系列MCU。
瑞萨RA系列MCU Keil支持包,可以在瑞萨生态社区提供的网盘中找到,网盘链接如下:
https://pan.baidu.com/s/1h-qcTIGobEBK88NgHODUhg?pwd=odqe
烧录工具软件及手册:https://ramcu.cn/public/uploads/files/20220713/2fa558318112ab2330e2cdb7a60291ab.zip
安装程序运行后界面如下:
接受协议,一路下一步即可,不再赘述。
这里以点灯为例,详细记录了从创建项目、编写代码、编译代码、烧录固件、运行程序的完整操作步骤,即便你此前完全没有使用过瑞萨MCU,参考这里的步骤也可以完成整个过程。本节名为“新手点灯指南”即为此意,即便你是完完全全的新手,也可以顺利点灯。
开始菜单,打开“Renesas RA Smart Configurator 4.1.0”,开始创建RASC项目:
其中,项目名称、保存路径可以修改,默认的项目名称是FSP_Project,我这里没有修改。
接下来是选择设备:
本次试用的RA-Eco-RA4M2-100PIN开发板主控MCU型号是R7FA4M2AD3CFP;
接下来选择IDE:
这里选Keil MDK Version 5.
TrustZone类型选择:
这里不使用TrustZone,因此选择第一个。
接下来是RTOS类型选择:
这里不使用RTOS,下拉菜单无需修改。除此之外,还有FreeRTOS和AzureRTOS可供选择。
接下来是项目模板选择:
因为前面选择了“No RTOS”,这一步只有一个裸机(Bare Metal)可供选择了。
到这里,创建项目所需的选择全部完成,FSP界面如下:
这里需要注意的是这几个地方:
开发板原理图,见此帖内容:https://bbs.elecfans.com/jishu_2313024_1_1.html
开发板LED相关原理图:
可以看到,三个LED对应引脚分别为:
接下来回到FSP软件,点击pins标签,切换到引脚配置视图,找到P415引脚:
修改mode配置:
修改后,Ctrl+S保存,再点击右上角的“Generate Project Content”生产Keil项目。
FSP生成Keil项目后,可以切回到Summary视图,查看项目位置。点击右侧的小箭头按钮,可以在文件管理器中打开位置:
双击打开Keil项目文件FSP_Project.uvprojx,项目结构如下图:
打开hal_entry.c开始编写代码:
在/* TODO: add your own code here */
代码下方添加代码:
R_BSP_PinAccessEnable();
while(1) {
R_BSP_PinWrite(BSP_IO_PORT_04_PIN_15, BSP_IO_LEVEL_HIGH);
R_BSP_SoftwareDelay(500, BSP_DELAY_UNITS_MILLISECONDS);
R_BSP_PinWrite(BSP_IO_PORT_04_PIN_15, BSP_IO_LEVEL_LOW);
R_BSP_SoftwareDelay(500, BSP_DELAY_UNITS_MILLISECONDS);
}
编写代码时,可以查阅FSP API参考,具体可以通过FSP Summary页的帮主文档图标打开本地网页,或者查看在线的API文档:https://renesas.github.io/fsp/modules.html
PS:API参考对后续开发非常有用,毕竟这么多底层接口不可能全部记住。
比如,可以查阅上面点灯代码用到的:
另外,点灯使用如下代码也可以:
while(1) {
R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_15, BSP_IO_LEVEL_HIGH);
R_BSP_SoftwareDelay(500, BSP_DELAY_UNITS_MILLISECONDS);
R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_15, BSP_IO_LEVEL_LOW);
R_BSP_SoftwareDelay(500, BSP_DELAY_UNITS_MILLISECONDS);
}
二者差别是:
R_BSP_PinWrite
之前,需要先调用R_BSP_PinAccessEnable
,否则后续的R_BSP_PinWrite
不起作用;R_BSP_PinWrite
是两个参数,而R_IOPORT_PinWrite
是三个参数,前者更方便、更优雅一些;接下来就可以准备 编译、烧录、运行 了。
添加完了代码之后,就可以编译项目了。
由于我准备使用开发板的USB烧录口进行烧录,瑞萨烧录工具需要使用hex文件,因此需要让Keil生成hex文件。
具体设置为:
接下来是Keil中编译项目,可以直接点击编译按钮,或者按F7键;编译完成后,build output视图输出如下:
刚拿到的开发板,MODE跳线默认为“Internal Flash”,开始烧录前需要将其切换为“SCI/USB Boot”,切换后如下图:
跳线切换完成后,将开发板USB烧录口连接到PC。
此时,将会被识别为虚拟串口设备,可以通过“设备管理器”查看:
瑞萨烧录工具(Renesas Flash Programmer,简称RFP)安装后,通过开始菜单“Renesas Flash Programmer V3.08”可以将其打开。初次打开后界面如下:
该烧录工具也要创建项目,由于初次使用没有创建项目,因此Start按钮是灰色的。
接下来,点击File -> New Project菜单,开始创建RFP项目:
其中,
填写完如下图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-olUNUW58-1669379504121)(https://gitee.com/swxu/pics/raw/master/imgs/RFP_new_project_filled.png)]
此时点击Connect,将会创建项目,并连接设备:
可以看到,已经成功读出了设备信息。
接下来就可以使用RFP烧录hex了。首先点击Browse按钮,选择hex文件:
测试发现,MCU复位之后,只能使用RFP进行一次操作,包括读取设备信息、烧录等。
**注意:**烧录之前,需要再按一次开发板的复位键(因为点击Connect之后,读了一次设备信息);
接下来,点击Start,开始烧录,烧录完成后界面如下:
烧录完成后,将开发板USB Type-C口的USB线拔下(断电),将MODE跳线切回原来的Internal Flash模式。
再次插上USB线(上电),就可以看到LED闪烁了: