【瑞萨RA4M2】开发环境搭建和点灯指南

news2025/7/19 16:53:47

【瑞萨RA4系列开发板体验】开发环境搭建和新手点灯指南

文章目录

  • 【瑞萨RA4系列开发板体验】开发环境搭建和新手点灯指南
    • 一、简单开箱
    • 二、芯片简介
    • 三、开发环境搭建
      • 2.1 安装FSP(RASC)
      • 2.2 安装Keil MDK
      • 2.3 安装RA4M2 Keil Pack
      • 2.4 安装RFP(瑞萨烧录工具)
    • 三、新手点灯指南
      • 3.1 创建RASC项目
      • 3.2 查阅开发板原理图
      • 3.3 设置LED1引脚为输出
      • 3.4 编写LED1闪烁的代码
      • 3.5 设置Keil生成hex文件
      • 3.6 编译Keil项目
      • 3.8 准备烧录——切换开发板MODE跳线
      • 3.7 创建RFP项目
      • 3.8 使用RFP烧录hex
      • 3.9 准备运行——切回开发板MODE跳线
    • 四、参考链接

修改记录:

  • 2022-11-20 初版开始
  • 2022-11-24 初版完成

本文介绍将如何从零搭建RA4M2 Keil开发环境,以及如何点亮RA-Eco-RA4M2-100PIN开发板上的一个LED灯。开发环境搭建部分,详细介绍了不依赖额外硬件调试器的开发环境,即搭建一个只是用使用开发板自带USB口进行烧录的开发环境。新手点灯指南部分,以点灯为例,详细记录了创建项目、编写代码、编译代码、烧录固件、运行程序的完整操作步骤,即便你此前完全没有使用过瑞萨MCU,参考这里的步骤也可以完成整个过程。

一、简单开箱

感谢电子发烧友组织的试用活动,感谢瑞萨生态社区提供的RA-Eco-RA4M2-100PIN开发板

上周一(14号)收到了快递,鸽了一周,今天周天(20号)终于开始写环境搭建的帖子了。

拆开塑料快递包装袋,里面是朴实无华的包装盒:

RA4M2_box.jpg

拆开包装盒,可以看到防静电袋包装的板子和一根Type-C数据线:

RA4M2_oob.jpg

拆开包装袋,就是开发板了:

RA4M2_top.jpg

开发板也很简洁,几乎是正方形的,可以看到:

  • 上方两个USB Type-C口、一个电源指示灯(POWER);
    • 左边Type-C为串口、右边Type-C为烧录口
  • 下方是三个按键、两个触摸按键和三个LED灯;
  • 中间偏上两边各有一个PMOD扩展接口;
  • 中间偏下两边各有一个40pin的扩展接口;
  • 正中间是主控MCU——R7FA4M2AD3CFP;

二、芯片简介

芯片手册(中英文):https://ramcu.cn/public/uploads/files/20220902/11cd840caf4b98cdfc43f7c10f672be4.pdf

芯片手册(英文):https://www.renesas.cn/cn/en/document/dst/ra4m2-group-datasheet?r=1469026

RA4M2系列MCU关键特性:

  • 支持 TrustZone 的 100MHz Arm Cortex-M33
  • 安全芯片的功能
  • 256kB - 512kB 闪存、64kB SRAM(支持奇偶校验)以及 64kB ECC SRAM
  • 8KB 数据闪存,提供与 EEPROM 类似的数据存储功能
  • 1kB 休眠用 SRAM
  • 从 48 引脚封装扩展至 100 引脚封装
  • 电容式触摸传感单元 (CTSU)
  • 全速 USB 2.0,支持主机模式和设备模式
  • CAN 2.0B
  • 四线 SPI
  • SCI(UART、简单 SPI、简单 I2C)
  • 独立SPI/I2C 多主接口
  • SDHI 和 MMC

主控芯片特写,可以清楚的看到型号:

RA4M2_chip.jpg

三、开发环境搭建

这里搭建的是硬件依赖最少的开发环境,即使用开发板的USB烧录口进行固件烧录。如果你准备使用JLink或DAP-Link其他硬件调试器进行烧录,部分操作步骤略有差异,这里不再介绍。

2.1 安装FSP(RASC)

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

安装没啥难度,一路“下一步”就好了,安装完成界面如下:

FSP_install_done.png

2.2 安装Keil MDK

MDK安装,默认设置,一路下一步就好了,没啥难度,不再详细介绍。

2.3 安装RA4M2 Keil Pack

Keil默认不支持RA系列MCU,需要安装瑞萨RA系列MCU Keil支持包才能支持RA系列MCU。

瑞萨RA系列MCU Keil支持包,可以在瑞萨生态社区提供的网盘中找到,网盘链接如下:

https://pan.baidu.com/s/1h-qcTIGobEBK88NgHODUhg?pwd=odqe

2.4 安装RFP(瑞萨烧录工具)

烧录工具软件及手册:https://ramcu.cn/public/uploads/files/20220713/2fa558318112ab2330e2cdb7a60291ab.zip

安装程序运行后界面如下:

RFP_install_start.png

接受协议,一路下一步即可,不再赘述。

三、新手点灯指南

这里以点灯为例,详细记录了从创建项目、编写代码、编译代码、烧录固件、运行程序的完整操作步骤,即便你此前完全没有使用过瑞萨MCU,参考这里的步骤也可以完成整个过程。本节名为“新手点灯指南”即为此意,即便你是完完全全的新手,也可以顺利点灯。

3.1 创建RASC项目

开始菜单,打开“Renesas RA Smart Configurator 4.1.0”,开始创建RASC项目:

RASC_new_project.png

其中,项目名称、保存路径可以修改,默认的项目名称是FSP_Project,我这里没有修改。

接下来是选择设备:

RASC_select_device.png

本次试用的RA-Eco-RA4M2-100PIN开发板主控MCU型号是R7FA4M2AD3CFP;

接下来选择IDE:

RASC_select_ide.png

这里选Keil MDK Version 5.

TrustZone类型选择:

RASC_select_tz_type.png

这里不使用TrustZone,因此选择第一个。

接下来是RTOS类型选择:

RASC_select_rtos.png

这里不使用RTOS,下拉菜单无需修改。除此之外,还有FreeRTOS和AzureRTOS可供选择。

接下来是项目模板选择:

RASC_select_template.png

因为前面选择了“No RTOS”,这一步只有一个裸机(Bare Metal)可供选择了。

到这里,创建项目所需的选择全部完成,FSP界面如下:

RASC_select_done.png

这里需要注意的是这几个地方:

RASC_summary.png

3.2 查阅开发板原理图

开发板原理图,见此帖内容:https://bbs.elecfans.com/jishu_2313024_1_1.html

开发板LED相关原理图:

RASC_summary.png

可以看到,三个LED对应引脚分别为:

  • LED1:P415
  • LED2:P404
  • LED3:P405

3.3 设置LED1引脚为输出

接下来回到FSP软件,点击pins标签,切换到引脚配置视图,找到P415引脚:

RASC_pins_P415.png

修改mode配置:

RASC_pins_P415_mode.png

修改后,Ctrl+S保存,再点击右上角的“Generate Project Content”生产Keil项目。

3.4 编写LED1闪烁的代码

FSP生成Keil项目后,可以切回到Summary视图,查看项目位置。点击右侧的小箭头按钮,可以在文件管理器中打开位置:

FSP_project.png

双击打开Keil项目文件FSP_Project.uvprojx,项目结构如下图:

FSP_Project_keil.png

打开hal_entry.c开始编写代码:

FSP_Project_hal_entry.png

/* 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参考对后续开发非常有用,毕竟这么多底层接口不可能全部记住。

比如,可以查阅上面点灯代码用到的:

  • IO访问接口(这里的R_BSP_PinWrite):https://renesas.github.io/fsp/group___b_s_p___i_o.html
  • MCU接口(这里的R_BSP_SoftwareDelay):https://renesas.github.io/fsp/group___b_s_p___m_c_u.html

另外,点灯使用如下代码也可以:

    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是三个参数,前者更方便、更优雅一些;

接下来就可以准备 编译、烧录、运行 了。

3.5 设置Keil生成hex文件

添加完了代码之后,就可以编译项目了。

由于我准备使用开发板的USB烧录口进行烧录,瑞萨烧录工具需要使用hex文件,因此需要让Keil生成hex文件。

具体设置为:

  1. 右击选择“Options for Target 1”;
  2. 点Output标签页;
  3. 勾选“Create HEX File”,如下图:
    keil_output_hex.png
  4. 点OK确认设置。

3.6 编译Keil项目

接下来是Keil中编译项目,可以直接点击编译按钮,或者按F7键;编译完成后,build output视图输出如下:
keil_build_output.png

3.8 准备烧录——切换开发板MODE跳线

刚拿到的开发板,MODE跳线默认为“Internal Flash”,开始烧录前需要将其切换为“SCI/USB Boot”,切换后如下图:

Board_USB_Flash.jpg

跳线切换完成后,将开发板USB烧录口连接到PC。

此时,将会被识别为虚拟串口设备,可以通过“设备管理器”查看:

Board_USB_device.png

3.7 创建RFP项目

瑞萨烧录工具(Renesas Flash Programmer,简称RFP)安装后,通过开始菜单“Renesas Flash Programmer V3.08”可以将其打开。初次打开后界面如下:

RFP_first_open.png

该烧录工具也要创建项目,由于初次使用没有创建项目,因此Start按钮是灰色的。

接下来,点击File -> New Project菜单,开始创建RFP项目:

RFP_new_project.png

其中,

  • Microcontroller为MCU系列,选择RA;
  • Project Name为项目名,可以自行命名,这里填写LED1;
  • Project Folder为项目文件夹,可以修改,这里保持默认;
  • Tool下拉为烧录设备端口,选择COM port,如果有多个串口设备可以通过Tool按钮选择;

填写完如下图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-olUNUW58-1669379504121)(https://gitee.com/swxu/pics/raw/master/imgs/RFP_new_project_filled.png)]

此时点击Connect,将会创建项目,并连接设备:

RFP_connect_succ.png

可以看到,已经成功读出了设备信息。

3.8 使用RFP烧录hex

接下来就可以使用RFP烧录hex了。首先点击Browse按钮,选择hex文件:

RFP_select_hex.png

测试发现,MCU复位之后,只能使用RFP进行一次操作,包括读取设备信息、烧录等。

**注意:**烧录之前,需要再按一次开发板的复位键(因为点击Connect之后,读了一次设备信息);

接下来,点击Start,开始烧录,烧录完成后界面如下:

RFP_flash_succ.png

3.9 准备运行——切回开发板MODE跳线

烧录完成后,将开发板USB Type-C口的USB线拔下(断电),将MODE跳线切回原来的Internal Flash模式。

再次插上USB线(上电),就可以看到LED闪烁了:

VID_20221123_234352_10fps.gif

四、参考链接

  1. GitHub FSP最新版
  2. e² studio | Renesas
  3. RA4M2 - 100MHz Arm® Cortex®-M33 TrustZone®,具有高集成度和低功耗 | Renesas
  4. RA Flexible Software Package Documentation: MCU Board Support Package (renesas.github.io)
  5. RA SC User Guide for MDK and IAR
  6. 灵活配置软件包 (FSP) | Renesas
  7. RA4M2 - 瑞萨 RA MCU 生态社区
  8. MDK Version 5 (keil.com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/35974.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

hoops编程指南:04.4用户交互突出显示

user interaction highlighting 1.突出显示 在执行选择之后,通常需要向用户提供关于所选内容的视觉反馈。例如,场景可能包含由多个几何体表示的飞机机翼的图片。然而,HOOPS Visualize对飞机机翼这一独特概念一无所知。因此,如果…

ES6 入门教程 28 异步遍历器 28.1 同步遍历器的问题 28.2 异步遍历的接口 28.3 for await...of

ES6 入门教程 ECMAScript 6 入门 作者:阮一峰 本文仅用于学习记录,不存在任何商业用途,如侵删 文章目录ES6 入门教程28 异步遍历器28.1 同步遍历器的问题28.2 异步遍历的接口28.3 for await...of28 异步遍历器 28.1 同步遍历器的问题 Itera…

【教学类-16-02】20221125《世界杯七巧板A4整页-随机参考图七巧板 3份一页》(大班)

效果展示: 单页效果 多页效果 预设样式: 背景需求: 2022年11月24日,大1班随机抽取的9位幼儿制作了9张拼图,发现以下三个问题: 1、粉红色辅助纸选择量多——9份作业有4位幼儿的七巧板人物是粉红色的 2、…

【计算机网络】以太网供电PoE - Power over Ethernet

.5BG? ?: J^ ~P YG: ~5PY^ 5&Y^ .#&J. 7&G7^. ~##?. :Y##PY?!~^:... .5#Y^ .7P&&&##BBBBB#B^ …

神经网络和深度学习-均方误差Mean Square Error

均方误差Mean Square Error 测量预测值Ŷ与某些真实值匹配程度。MSE 通常用作回归问题的损失函数。 由单个样本训练损失来推导出整个训练集的MSE MSE1n∑i1n(Yi−Y^i)2\mathrm{MSE}\frac{1}{n} \sum_{i1}^{n}\left(Y_{i}-\hat{Y}_{i}\right)^{2} MSEn1​i1∑n​(Yi​−Y^i​)…

02. Docker安装记录卸载

notice: 本文所有内容参考文档,具体没有任何价值 Linux(CentOS 7 ) 1. 安装 查看系统信息: # 系统版本是3.0以上的; [rootVM-8-4-centos /]# uname -r 3.10.0-1160.76.1.el7.x86_64 [rootVM-8-4-centos /]# cat /et…

nrComm Lib组件以及串行通信任务的类

nrComm Lib组件以及串行通信任务的类 nrCommLib被描述为VCL例程的一组Delphi组件以及串行通信任务的类。该库能够帮助用户和开发人员访问不同的设备,包括数据和语音调制解调器、条形码扫描仪、蓝牙、人机接口设备、串行端口、USB、GSM、GPS、LPT SS等。它能够为几乎…

LabVIEW为可执行文件构建安装程序时找不到运行引擎

LabVIEW为可执行文件构建安装程序时找不到运行引擎 在为可执行文件构建安装程序时包含一个特定的运行时引擎安装程序,但找不到它。已经检查了运行时引擎是否使用NI-MAX安装。 “运行时引擎”字段下列出的项目未在“选择源”对话框中显示任何项目。 解决方案 有时运…

看透react源码之感受react的进化

写在前面 网上有许多关于react源码解读的文章,其中有很多都只是单纯贴源码,罗列变量名。其实大家都知道这个英文怎么读,直译也大概知道意思,但是这个英文在react中起到什么作用,并没有说的很通俗明白。 对于刚刚接触…

推荐系统常见算法分类

文章目录1.基本分类2.基于算法思想的分类3.基于应用问题的分类该系列历史文章: 1.推荐系统最通俗介绍 资料整理,来源于北大刘宏志教授讲座内容。 1.基本分类 常见的推荐系统算法分类如下: 算法思想 基于人口统计学、基于内容、协同过滤、基…

Django练习

目录 基础命令 一、新建项目 二、配置 三、运行 Bootstrap下载 jQuery下载 基础命令 #创建项目 django-admin startproject [项目名称] #创建app应用 python manage.py startapp [app名称] #运行 python manage.py runserver [端口号] #创建数据模型和数据表结构 python…

HTML PDF 查看器--RAD PDF 3.33 FOR ASP.NET

RAD PDF 的主要特点 基于 HTML 的 PDF 阅读器 客户端 PDF 编辑器 功能丰富的 PDF 表单填写器 交互式 PDF 表单设计器 保护 PDF 内容 签署和认证 PDF 文件 广泛的兼容性 & 在您的服务器上 将 PDF 集成到您的工作流程中 使用 ASP.NET 或 ASP.NET Core / 5 / 6 破解版RAD PDF…

pytorch深度学习实战lesson27

第二十七课 批量归一化 下面来讲批量归一化,现在几乎所有主流的卷积神经网络都是或多或少的用了批量归一化这个层。虽然我们之前看到的那些层比如 pooling 或 convolution,其实他们在80年代就出现过了,只是现在我们把它做得更深更大。批量归一…

Kanzi Shader入门

1. 版本 kanzi默认支持Opengl ES 2.0,在qnx平台可以支持到ES 3.0 2. 着色器 kanzi只支持【顶点着色器】和【片段着色器】 3. kanzi studio 无法直接使用shader,需要通过画刷和材质间接使用 在【普通节点】上设置背景画刷-【材质画刷】在【材质画刷…

原生Android 以面向对象的方式操作canvas

Android 自定义view 用canvas去画图形, 都是以面向过程的方式去一笔一笔的画, 而且画的图形也不能支持添加事件, 而html, js在这方面有大量的封装好的canvas框架, 很奇怪的是android上我也没有搜到类似的封装框架, 我只是个web前端开发者, 可能是我对android不了解没有搜索到&a…

Nodejs中包的介绍及npm安装依赖包的多种方法

文章目录1 包的介绍1.1 什么是包1.2 包的来源1.3 为什么需要包1.4 从哪里下载包1.5 如何下载包2 npm2.1 npm安装依赖包2.2 装包后多了哪些文件2.3 安装指定版本的包1 包的介绍 1.1 什么是包 Nodejs中的第三方模块又叫做包 就像电脑和计算机指的是相同的东西,第三…

Wireshark Ethernet and ARP 实验—Wireshark Lab: Ethernet and ARP v7.0

Wireshark Lab: Ethernet and ARP v7.0 1. Capturing and analyzing Ethernet frames 清除浏览器缓存 使用wireshark抓包并请求网页 修改“捕获数据包列表”窗口,仅显示有关 IP 以下协议的信息。 抓包干扰较多,故分析作者的数据包回答下列问题 包含…

Apollo 应用与源码分析:Monitor监控 - 基本概念与入口分析

Monitor 系统监控 目录 基本概念 代码结构分析 整体逻辑分析 基本概念 整体分类 该模块包含用于检查硬件状态和监视系统运行状况的代码等系统级软件。 在Apollo 5.5中,监视模块现在执行以下检查: 运行模块状态监控数据完整性监控数据频率监视系统运行状况(例…

springboot 点滴(3)springboot ThreadLocal实现单机权限认证

Springboot中权限认证的基本方案: 可以对URL进行HandlerInterceptor拦截,然后权限验证。 Client登录成功后,每次发送请求时,会将token等信息存放到header中。 Server收到请求,在HandlerInterceptor中从header获取用户…

3.4、可靠传输

3.4、可靠传输 3.4.1、基本概念 使用差错检测技术\color{red}差错检测技术差错检测技术(例如循环冗余校验 CRC ),接收方的数据链路层就可检测出帧在传输过程中是否产生了误码\color{red}误码误码(比特错误)。 数据链路层向上层提供的服务类…