【瑞萨RA6系列】RASC+Keil开发环境搭建和GPIO点灯指南

news2025/1/13 2:56:08

瑞萨RASC+Keil开发环境搭建

    • 一、简单开箱
    • 二、资料下载
    • 三、芯片简介
    • 四、开发环境搭建
      • 4.1 安装RASC
      • 4.2 安装Keil MDK
      • 4.3 安装RA6E1的MDK支持包
    • 五、GPIO点灯指南
      • 5.1 创建RASC项目
      • 5.2 查阅开发板原理图
      • 5.3 设置LED1引脚为输出
      • 3.4 编写LED1闪烁的代码
      • 5.5 编译Keil项目
      • 5.6 修改Keil调试器设置
      • 5.7 下载和运行程序
      • 5.8 已知问题和解决方案
    • 六、参考链接

本文首先对瑞萨FPB-RA6E1快速原型板进行了简单的开箱,然后介绍了开发过程中比较重要的文档资料下载链接,以及RA6E1系列芯片主要参数。接着,详细介绍了如何安装RASC、Keil MDK以及RA6E1支持包;最后,详细介绍了如何进行GPIO点灯。

读者跟随本文的指引,即便此前没有接触过瑞萨RA6系列MCU,也可以顺利完成开发环境搭建和GPIO点灯。

本文之所以如此详细的记录了开发环境搭建和GPIO点灯的所有操作步骤,是因为笔者也是第一次接触RA6E1系列MCU;将环境搭建的步骤详细记录下来,一方面可以备忘,另一方面也可以方便其他人参考。

一、简单开箱

这次试用的开发板是——瑞萨FPB-RA6E1快速原型板

按照惯例,先来个简单的开箱。

拆开快递,首先看到的是开发板包装盒:

ra6e1_box

可以看到生产日期、批号等信息,以及“MADE IN UK”一行字(英国制造)。

打开包装盒是纸质版的快速上手指南(一页A4彩色打印,内容和电子版的快速上手指南一样):

ra6e1_oob_01

拿走这张纸之后,就是包裹的很严实的开发板了:

ra6e1_oob_02

拆开气泡袋,还有一层粉红色防静电袋(很亮眼啊,兄弟们):

ra6e1_oob_03

拆开防静电袋之后,就可以看清开发板了:

ra6e1_oob_04

可以看到,

  • 主控芯片型号为:RA7FA6E10F2CFP
  • 板载JLink调试器,也就是所谓的JLink OB(On Board);
  • 带有Arduino扩展接口
  • 带有两个PMOD扩展接口
  • 里带有两个50pin扩展接口
  • 板载两个按键
  • 板载两个LED灯
  • 沉金工艺,看起来很高端,

好了,开箱就到这里了。

二、资料下载

活动帖: https://bbs.elecfans.com/jishu_2351918_1_1.html

原文中提供了,相关资料的下载链接,这里不再赘述。

后续开发过程中,比较常用的是原理图文件 fpb-ra6e1-v1-schematic.pdf ,一定要下载。

img fpb-ra6e1-v1-schematic.pdf (170.37 KB)

另外比较重要的是数据手册:

  1. RA6E1参考手册(英文): https://www.renesas.com/us/en/document/dst/ra6e1-group-datasheet?r=1521986
  2. RA6E1参考手册(中英): https://www.ramcu.cn/public/uploads/files/20220902/b4d9ed4dba3629b2dbdee41b8d7f8483.pdf

三、芯片简介

RA6E1系列MCU主要特性:

  • 支持 TrustZone 的 200MHz Arm Cortex-M33
  • 512kB – 1MB 闪存和 256kB SRAM
  • 8KB 数据闪存,提供与 EEPROM 类似的数据存储功能
  • 1kB 休眠用 SRAM
  • 从 48 引脚封装扩展至 100 引脚封装
  • 支持 以太网MAC
  • 全速 USB 2.0,支持主机模式和设备模式
  • CAN 2.0B
  • 四线 SPI
  • 串行通信接口(UART、简单 SPI、简单 I2C)
  • 独立SPI/I2C 多主接口
  • SDHI 和 MMC

本次活动试用的瑞萨FPB-RA6E1快速原型板,主控芯片型号为:RA7FA6E10F2CFP。

查阅官方网站,可以知道,它的闪存为1MB,SRAM为256 KB。

四、开发环境搭建

这里搭建的是RASC+Keil开发环境,使用开发板自带的JLink调试器进行调试和下载。自带JLink相对于使用串口烧录,好处是不需要单独下载烧录软件,使用方便。另外,JLink调试器支持断点调试,通过串口也是无法实现的。

4.1 安装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

注意:不要下载4.4.0 和 4.3.0 版本的FSP或者RASC,经本人实测这两个版本的 RASC 生成的代码,在FPB-RA6E1开发上,启动阶段会卡住 Systemlnit() -> R_BSP_Init_RTC() 函数中,无法继续向下运行。

RASC v4.2.0下载链接:https://github.com/renesas/fsp/releases/download/v4.2.0/setup_fsp_v4_2_0_rasc_v2022-10.exe

PS:国内可以通过ghproxy.net加速链接下载: https://ghproxy.net/https://github.com/renesas/fsp/releases/download/v4.2.0/setup_fsp_v4_2_0_rasc_v2022-10.exe

打开RASC 4.2.0安装程序后,界面如下:

image-20230526214150543

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

image-20230526214851250

4.2 安装Keil MDK

Keil MDK下载地址: https://www.keil.com/download/product/

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

4.3 安装RA6E1的MDK支持包

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

FSP GitHub下载页面也有MDK支持包下载链接:

https://github.com/renesas/fsp/releases/download/v4.4.0/MDK_Device_Packs_v4.4.0.zip

国内推荐使用ghproxy.net加速下载,链接为:

https://ghproxy.net/https://github.com/renesas/fsp/releases/download/v4.4.0/MDK_Device_Packs_v4.4.0.zip

下载完成记得校验一下MD5,看看和GitHub下载页面上的是否一致:

image-20230521225125337

另外,瑞萨RA系列MCU Keil支持包,可以在Keil官网找到下载页面:

MDK5 - Renesas R7FA6E10F (keil.com)

Keil下载页面指向的也是瑞萨的网站,直接下载链接:

https://www2.renesas.eu/Keil_MDK_Packs/Renesas.RA_DFP.4.4.0.pack

下载完成后,双击安装即可(安装了Keil之后,pack文件会被自动关联到使用Keil打开),不再赘述。

五、GPIO点灯指南

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

5.1 创建RASC项目

开始菜单,打开“Renesas RA Smart Configurator 4.2.0”,开始创建RASC项目,例如输入项目名为RA6E1_Blinky:

image-20230521230801735

其中,项目名称、保存路径可以修改。

接下来是选择设备(点击Device右侧的省略号图标弹出Device Selection窗口):

image-20230528121823313

本次试用的瑞萨FPB-RA6E1快速原型板主控MCU型号是RA7FA6E10F2CFP;

点OK继续,接下来选择IDE:

image-20230528121929734

这里选Keil MDK Version 5,点击Next继续。

TrustZone类型选择:

image-20230521231221333

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

接下来是RTOS类型选择:

image-20230521231238016

我们先尝试裸机点灯,不使用RTOS,下拉菜单无需修改。通过这里的下来菜单,可以知道FreeRTOS和AzureRTOS也是支持的。

接下来是项目模板选择:

image-20230528122022481

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

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

image-20230528122249813

这里需要留意的是这几个地方,后续会用到:

image-20230528122601780

5.2 查阅开发板原理图

开发板原理图中,开发板LED相关原理图:

image-20230521232032428

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

  • LED1:P408
  • LED2:P407

5.3 设置LED1引脚为输出

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

image-20230528122657602

修改mode配置:

image-20230521232315073

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

3.4 编写LED1闪烁的代码

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

image-20230528122843435

双击打开Keil项目文件RA6E1_Blinky.uvprojx后,可以在Keil中看到项目文件结构如下:

image-20230521232656093

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

image-20230521232741972

/* TODO: add your own code here */代码下方添加代码:

    R_BSP_PinAccessEnable();
    while(1) {
        R_BSP_PinWrite(BSP_IO_PORT_04_PIN_07, BSP_IO_LEVEL_HIGH);
        R_BSP_SoftwareDelay(500, BSP_DELAY_UNITS_MILLISECONDS);

        R_BSP_PinWrite(BSP_IO_PORT_04_PIN_07, 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_07, BSP_IO_LEVEL_HIGH);
        R_BSP_SoftwareDelay(500, BSP_DELAY_UNITS_MILLISECONDS);

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

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

5.5 编译Keil项目

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

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

image-20230528123009656

5.6 修改Keil调试器设置

编译成功后,可以准备下载程序了。

下载之前,需要修改Keil项目的调试器设置。

具体操作步骤为:

  1. 左侧Project视图中,右击“Target 1”,选择“Options for Target 1”菜单,如下图所示;

    image-20230521233507622

  2. 点Debug标签页,如下图所示;

    image-20230521233531798

    确认调试器选择的是JLink,则不需要修改。

  3. 点击JLink/JTrace Cortex右侧的Settings,弹出JLink设置界面,如下图所示:

    image-20230521233659008

    此时如果你已经正确连接了开发板,并且你的电脑已经安装了JLink驱动,则会在SW Device窗口中识别一个CoreSight设备。

  4. 点击Flash Download标签,如下图所示:

    image-20230521233903852

  5. 可以看到Programming Algorithm为空白,点击Add后,弹出界面:

    image-20230521234023127

  6. 一次将RA6E1的三个加上即可,加上之后,如下图所示:

    image-20230521234115525

  7. RAM for Algorithm,Start填写0x20000000,Size填写0x1000:

    image-20230521234820004

  8. 最后,勾选Reset and Run便于调试:

    image-20230521234904876

  9. 点击确定,完成所有修改。

5.7 下载和运行程序

完成上述所有修改后,使用Keil的烧录按钮,或者F8快捷键,开始下载程序:

image-20230521235119303

下载程序完成后,Build Output输出如下:

image-20230521235218378

如无意外,此时应该可以看到LED2闪烁了。

5.8 已知问题和解决方案

经本人测试发现,使用最新版本的 FSP 4.4.0、4.3.0 生成的代码在本次试用的瑞萨FPB-RA6E1上无法正常启动,点灯程序下载完成复位后无法看到LED灯闪烁。如果此时,用手触摸RTC晶振Y1附近的焊点,则可以正常运行下去。

经断电调试,最终发现——流程卡在了RESET_Handler() -> SystemInit() -> R_BSP_Init_RTC() 函数中。

**【解决方案】**换成FSP 4.2.0 以下版本,即可正常启动;对比生成的项目源码发现,4.2.0以下版本的SystemInit() 中没有调用 R_BSP_Init_RTC()函数。

六、参考链接

  1. RA6E1参考手册(英文): https://www.renesas.com/us/en/document/dst/ra6e1-group-datasheet?r=1521986
  2. RA6E1参考手册(中英): https://www.ramcu.cn/public/uploads/files/20220902/b4d9ed4dba3629b2dbdee41b8d7f8483.pdf
  3. RA6E1硬件手册(英文): https://www.renesas.cn/cn/zh/document/mah/ra6e1-group-users-manual-hardware?r=1521986
  4. FPB-RA6E1开发板快速入门指南: https://www.renesas.com/us/en/document/qsg/fpb-ra6e1-quick-start-guide?r=1529471
  5. FSP GitHub下载页面:https://github.com/renesas/fsp/releases
  6. Keil MDK下载页面: https://www.keil.com/download/product/
  7. 瑞萨RA系列MCU的Keil MDK支持包: https://github.com/renesas/fsp/releases/download/v4.4.0/MDK_Device_Packs_v4.4.0.zip

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

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

相关文章

产品设计.B端设计师不可忽视的产品和用户

B端产品与C端产品不同,前者强调客户价值,企业决策链路长,用户难获得的同时也相对难流失。而作为B端产品设计师,就需要根据B端产品业务特点,从用户、产品等角度进行考量,以求做出符合市场和用户的设计方案。…

【HTTP 协议】

一、HTTP 协议简介 在真实的网络环境中采用 TCP/IP 五层网络传输模型这样的结构传输. 物理层 -> 数据链路层 -> 网络层 -> 传输层 -> 应用层 1. 应用层: 应用层是模型的最顶层,它为用户提供了一种与网络进行通信的方法。应用层包含了各种应用程序&…

【Linux基础及shell脚本】在VMware16中安装CentOS7.6

文章目录 1. Linux和CentOS2. 虚拟机3. 为什么选择在VMware上安装CentOS?4. 准备工作5. 创建新的虚拟机6. 安装CentOS 7.67. 初次启动和设置 在我们了解如何在VMware16中安装CentOS 7.6之前,让我们首先对Linux、CentOS以及虚拟机有一些基本的认识。 1. …

【性能测试一】性能测试概述

目录 🌟一、性能测试的基础概念 🌈1、生活中软件相关的性能问题? 🌈2、性能测试的概念 🌈3、性能测试与功能测试的区别? 🌈4、什么样的软件属于性能好?什么样的软件属于性能不好…

搭建Vue项目以及项目的常见知识

前言:使用脚手架搭建vue项目,使用脚手架可以开发者能够开箱即用快速地进行应用开发而开发。 搭建 #创建一个基于 webpack 模板的新项目 vue init webpack my-project #选择所需要的选项如图: cd my-project npm run dev访问localhost:808…

分布式数据库架构

分布式数据库架构 1、MySQL常见架构设计 对于mysql架构,一定会使用到读写分离,在此基础上有五种常见架构设计:一主一从或多从、主主复制、级联复制、主主与级联复制结合。 1.1、主从复制 这种架构设计是使用的最多的。在读写分离的基础上…

SpringBoot源码分析(三):SpringBoot的事件分发机制

文章目录 通过源码明晰的几个问题Spring 中的事件Springboot 是怎么做到事件监听的另外两种注册的Listener 源码解析加载listenerSpringApplicationRunListenerEventPublishingRunListenerSimpleApplicationEventMulticaster判断 listener 是否可以接收事件Java 泛型获取 整体流…

【前端|HTML系列第1篇】HTML的基础介绍与初次尝试

大家好,欢迎来到前端入门系列的第一篇博客。在这个系列中,我们将一起学习前端开发的基础知识,从零开始构建网页和Web应用程序。本篇博客将为大家介绍HTML(超文本标记语言)的基础概念和标签,帮助你快速入门。…

Git进阶系列 | 6. 交互式Rebase

Git是最流行的代码版本控制系统,这一系列文章介绍了一些Git的高阶使用方式,从而帮助我们可以更好的利用Git的能力。本系列一共8篇文章,这是第6篇。原文:Interactive Rebase: Clean up your Commit History[1] 交互式Rebase是Git命…

数据结构:二叉树经典例题(单选题)-->你真的掌握二叉树了吗?(第二弹)

朋友们、伙计们,我们又见面了,本期来给大家解读一下有关二叉树的经典例题,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成! C 语 言 专 栏:C语言:从入门到精通 数…

百度开源,一款强大的压测工具,可模拟几十亿并发场景

优点 性能强大统计信息详细使用场景丰富性能 HTTP 每秒新建连接数HTTP 吞吐HTTP 并发连接数UDP TX PPS测试环境配置统计数据开始使用 设置大页编译 DPDK编译 dperf绑定网卡启动 dperf server从客户端发送请求运行测试开源地址 dperf 是一款基于 DPDK 的 100Gbps 网络性能和负载…

小白快速自建博客--halo博客

小白快速自建博客–halo博客 前言:如何快速地搭建属于个人的博客,以下就推荐一个可以个性化的定制属于个人的专属博客–halo博客。 Docker安装 关于docker安装,可以查看文章:Linux下安装docker Docker相关指令 docker相关指令…

网络套接字基本概念

文章目录 1. 认识IP地址2. 认识端口号2.1 理解 "端口号" 和 "进程ID"2.2 理解源端口号和目的端口号 3. 认识TCP协议和UDP协议4. 网络字节序5. sockaddr结构 1. 认识IP地址 IP协议有两个版本,IPv4和IPv6。没有特殊说明的,默认都是指…

第五章 作业(149A)【计算机系统结构】

第五章 作业【计算机系统结构】 前言推荐第五章 作业148 补充910 最后 前言 2023-6-24 10:43:46 以下内容源自《【计算机系统结构】》 仅供学习交流使用 推荐 第三章 作业(7BF)【计算机系统结构】 答案参考: https://www.docin.com/p-8…

HTML 教程:学习如何构建网页||HTML 简介

HTML 简介 HTML 简介 现在您可以通过如下的一个 HTML 实例来建立一个简单的 HTML 页面&#xff0c;以此来简单了解一下 HTML 的结构。 HTML 实例 <!DOCTYPE html> <html> <head> <title>页面标题(w3cschool.cn)</title> </head> <…

中国电子学会2023年05月份青少年软件编程C++等级考试试卷四级真题(含答案)

1.怪盗基德的滑翔翼 怪盗基德是一个充满传奇色彩的怪盗&#xff0c;专门以珠宝为目标的超级盗窃犯。而他最为突出的地方&#xff0c;就是他每次都能逃脱中村警部的重重围堵&#xff0c;而这也很大程度上是多亏了他随身携带的便于操作的滑翔翼。 有一天&#xff0c;怪盗基德像…

混频器【Multisim】【高频电子线路】

目录 一、实验目的与要求 二、实验仪器 三、实验内容与测试结果 1、测试输入输出波形&#xff0c;说明两者之间的关系 2、测试输出信号的频谱(傅里叶分析法) 3、将其中一个二极管反接&#xff0c;测试输出波形&#xff0c;并解释原因&#xff1b;将两个二极管全部反接&am…

PID相关参数讲解:1、比例系数Kp与静态误差

PID的结构与公式 来研究静态误差的同学&#xff0c;应该是对PID的原理有一定理解了&#xff0c;简单的概念也不用过多重复。 比例控制时PID控制中最简单的一个&#xff0c;很多能用代码编写PID代码的同学&#xff0c;也不一定理解这个比例系数Kp的意义&#xff0c;以及比例控制…

C++进阶—多态

目录 0. 前言 1. 多态的概念 1.1 概念 2. 多态的定义及实现 2.1多态的构成条件 2.2 虚函数 2.3虚函数的重写 2.4 C11 override 和 final 3. 抽象类 3.1 概念 3.2 接口继承和实现继承 4.多态的原理 4.1虚函数表 4.2 变态选择题分析多态调用 4.3 多态的原理 4.4 动…

透过小说中的境界划分,看看你的能力处于哪个水平

文章目录 1. 写在前面2. 散修3. 练气期4. 筑基期5. 结丹期6. 元婴期7. 化神期8. 练虚期 1. 写在前面 当我们某天开始走出校园&#xff0c;踏入社会的时候&#xff0c;是否也会感到一丝恐惧与焦虑&#xff1f;当我们各自奔走加入到江湖大大小小的门派中&#xff0c;为了企业与老…