当前位置: 首页 > news >正文

第3章_瑞萨MCU零基础入门系列教程之开发环境搭建与体验

本教程基于韦东山百问网出的 DShanMCU-RA6M5开发板 进行编写,需要的同学可以在这里获取: https://item.taobao.com/item.htm?id=728461040949

配套资料获取:https://renesas-docs.100ask.net

瑞萨MCU零基础入门系列教程汇总: https://blog.csdn.net/qq_35181236/article/details/132779862


第3章 开发环境搭建与体验

本章目标:

  • 搭建 Renesas 的开发环境
  • 使用 e2 studio 创建工程和编写代码
  • 使用 RA Smart Configurator 创建 MDK 工程

3.1 认识瑞萨处理器的开发环境

瑞萨处理器的软件开发支持多种集成开发环境,比如瑞萨官方的 e2 studio,还有使用非常广泛的 Keil MDK。

本节对这些开发软件进行简单介绍,比较 e2 studio 和 MDK 这两个 IDE,提供选择建议。

3.1.1 瑞萨的开发软件

  1. 灵活配置软件包(FSP)

灵活配置软件包(FSP)是一款综合性软件,旨在以较低的内存占用量提供快速高效的驱动程序和协议栈,专门针对 RA 产品家族 MCU 的架构进行优化,RA 产品家族 MCU 的开发也充分兼顾该软件的特性。在开发 FSP 的过程中,首要目标是为工程师提供简单高效的功能和驱动程序,以简化嵌入式系统中常见用例(如通信和安全)的实现。它们构成了一个开放的软件生态系统,可以灵活使用旧代码并与第三方工具结合使用。

FSP 集成了中间件协议栈、独立于 RTOS 的硬件抽象层(HAL)驱动程序(适用于生产),以及作为所有这些组件基础工具的板级支持包(BSP),还有广泛使用的来自 Amazon Web Services 的 FreeRTOS"M 实时操作系统(RTOS)。以此为嵌入式系统设计提供了一个经过优化且易于使用的高质量软件包,该软件包可扩展,并且可以通过操作简单而功能强大的应用程序编程接口(APl)调用来访问所有功能,从而轻松实现互换性,可满足嵌入式系统软件开发阶段的大多数需求。

FSP 的层次划分和功能如下图所示:

它包括以下部分:

  • 板级支持包(BSP),针对每个硬件评估板和RA产品家族的微控制器进行定制。它为所有支持的模块提供起始代码并作为这些模块的基础,以确保 FSP 模块顺利运行。使用自定义硬件的开发人员也可以充分利用BSP,因为开发人员可以借助e²studio中内置的User Pack Creator 针对其最终产品和电路板来定制 BSP。
  • 独立于 RTOS 的硬件抽象层(HAL)驱动程序,以较少的内存占用量为所有片上外设和系统服务提供高效的驱动程序。它们可以从您的硬件中提取位设置和寄存器地址,因此无需对微控制器中底层硬件的文档进行大量的深入研究。
  • 中间件栈和协议,可以独立使用或与RTOS结合使用,使用 Arm°提供的统一APl。它们简化了连接功能的实现,如 WiFi、Bluetooth@低功耗或到云服务的 MQTT 连接。还包括其他协议栈,例如支持USB传输、图形处理或电容式触摸的协议栈。
  • FreeRTOST 实时操作系统提供可进行多任务处理的实时内核(采用抢占式调度形式),面向对象的灵活RAM分配,以及用于任务通知、队列、信号量和缓冲区的不同实现方法。FreeRTOS+FAT 和 FreeRTOS+TCP库为需要网络连接的应用提供额外的功能。用户可自行选择是否使用 FreeRTOS:FSP也可以与裸机系统或任何其他RTOS一起使用。
  • FSP 中还包含其他第三方软件解决方案。例如,ArmCortex微控制器软件接口标准(CMSIS)硬件抽象层、Arm MbedTM Crypto 和TLS 加密库、Arm Littlefs故障安全文件系统、emWin 嵌入式图形库和 Segger的J-Link调试器软件,以及 TES DIAVE 2D 图形渲染库。

在FSP开发过程中要实现的一个目标是,创建简单易用的软件以及条理清晰、整齐划一的API,并进行规范的文档记录。工程师针对每个模块都编制了详细的用户文档(包括示例代码),位于GitHub资源库中或通过e² studio的智能手册功能,可在需要的位置(即开发环境内部)显示信息。FSP使用Doxygen作为默认的文档工具,因此各模块源代码的Doxygen 注释中也提供了其他详细信息。

  1. 集成开发环境e2 studio

e2 studio 由瑞萨开发和维护,其依托于 Eclipse。Eclipse是一种时下流行且用途广泛的开源集成开发环境,可用于不同的编程语言和目标平台。Eclipse可以轻松进行定制和扩展,因此成为全球成千上万开发人员的首选IDE,并且成为了一个事实上的标准。

e2 studio充分利用Eclipse的所有优点,并加入了额外的视图和配置器透视图,以支持 RA 产品家族的所有功能。它包含创建、编译和调试任意大小和复杂程度的项目所需的所有工具,并指导开发人员完成软件设计的三个阶段:准备、构建和调试。而且,它会定期更新,从而能够使用最新的Eclipse SDK和CDT工具。

e2 studio包含为 RA产品家族单片机创建、编译和调试项目所需的所有必要工具。它基于时下流行的Eclipse IDE,但瑞萨在其中加入了一些面向解决方案的组件和插件,使其功能更加强大。配置器尤为如此,它提供了生成新项目的简单方法,并能以图形访问方式轻松访问不同的硬件和软件功能,如引脚配置或添加软件堆,无需深入研究用户手册。这些配置器将自动创建所有必要的设置和初始化代码,其中还加入了错误检查功能,在设计时就能检测出有问题的组合,从而节省大量可能会浪费在编写和/或调试对应用程序并无意义的代码上的时间。

  1. RA Smart Configurator

RA Smart Configurator,简称RASC,是瑞萨官方推出的一款配置瑞萨RA系列处理器的桌面应用工具。它集成了FSP,可以配置处理器的时钟、引脚、事件与中断和外设参数,并且将这些配置生成为代码,同时适配Keil MDK和IAR两种应用广泛的集成开发环境。

当开发者的硬件板卡设计在e2 studio中无法满足调试下载时,就可以选择使用RASC配合Keil MDK或者IAR进行调试下载。

3.1.2 e2 studio和Keil MDK的区别和选择

e2 studio是瑞萨电子的一款包含代码开发、构建和调试的开发工具,是基于开源Eclipse IDE和与之相关的C/C++开发工具。e2 studio 托管了瑞萨的FSP灵活配置软件包,这是一个用于支持瑞萨MCU开发的固件库。通过使用FSP库,我们可以轻松配置和管理瑞萨MCU,从而轻松实现复杂的应用程序。

Keil 也称为 KEIL MDK-ARM、KEIL MDK、Keil uVision5 等,是ARM官方的一款专为微控制器应用而设计的集成开发工具。Keil软件为基于Cortex-M、Cortex-R4、ARM7、ARM9 处理器设备提供了一个完整的开发环境,功能强大,能够满足大多数的嵌入式应用。我们在使用Keil软件开发瑞萨RA MCU时,为了方便配置芯片和生成FSP库代码,需要配合RA Smart Configurator(RASC)软件一起使用。

本书使用的e2 studio版本是V2023-01,已经默认支持除瑞萨自身的调试器和J-Link。本书使用的开发板集成了DAP调试器,要在e2 studio上使用DAP需要按照后续章节进行配置。相比如Keil MDK,e2 studio提供了开发者助手,它会列出模块的所有函数,可以、拖拽这些函数就可以生成代码,它也更耗系统资源。

而Keil MDK已经支持DAP调试器。

请根据个人爱好进行选择。

3.2 e2 studio的安装

本节的主要内容就是讲解e2 studio的安装及其工程的创建。

3.2.1 获取e2 studio安装软件

打开https://github.com/renesas/fsp/releases,往下拉找到“Assets”,点击下载文件“setup_fsp_v4_3_0_e2s_v2023-01.exe”:

3.2.2 e2 studio安装步骤

双击运行setup_fsp_v4_3_0_e2s_v2023-01.exe,首先会弹出一个软件内容读取进度条,随后会要求用户选择安装权限,一般选择“All Users”,如下图所示:

在随后出现的界面里,选择“Quick Install”:

随后安装软件会扫描当前电脑的环境是否支持安装,支持的话会全部显示绿色✓,然后点击“Next”开始下一步安装,如下图所示:

在随后出现的界面勾选“I accept the terms of the Software Agreements”,然后一路使用默认选择即可开始安装。

安装完成后,可以得到如下界面:

3.3 e2 studio使用指南

3.3.1 创建e2 studio工程

如果是首次打开e2 studio,会要求选择工作空间(本书使用e:\e2_projects)和指定工具链(使用默认值),如图所示:

image10

接着就会显示一个欢迎界面,可以在此界面选择点击“Create a new C/C++ project”创建一个工程:

然后在弹出的界面的左侧选择“Renesas RA”,然后在右侧选择“Renesas RA C/C++ Project”后点击“下一步”开始创建工程,如图所示:

在以后的使用中,建议从菜单栏的“文件”处创建工程(后续操作是一样的),如下图所示:

image13

接下来开始创建工程。

  1. 设置工程名称

首先弹出的是设置工程名称的界面:

开发者可以在这里设置工程的名称以及该工程保存的位置,注意不要有中文。默认情况下保存在缺省位置处。

当设置好工程名称和工程保存位置后点击“下一步”开始设置工程的细节。

  1. 选择芯片及工具

在此页面可以指定FSP版本、指定芯片型号(本书使用R7FA6M5BF2CBG),其他都使用默认值即可,如下图所示:

![](http://photos.100ask.net/renesas-docs/DShanMCU_RA6M5/object_oriented_module_programming_method_in_ARM_embedded_system/chapter-3/image15.png" />

注意:本书配套的板子没有继承J-Link,本章节仅供参考。

  1. 选择工程类别

e2 studio的工程类别有Flat、TrustZone Secure和TrustZone Non-secure三种,在没有涉及程序保密等安全需求下,选择Flat简单类别的工程即可。

  1. 选择工程编译结果

如下图选择,表示它是一个不含RTOS代码的可执行程序:

  1. 工程模板设定

如果开发者在板卡选择那里没有使用官方板卡的话,这里只有一种选择:最小系统初始化:

  1. 使用FSP配置外设

当工程创建完毕后会弹出一个提示框提示开发者是否打开透视图:

这个透视图就是FSP的配置界面:

这个工程已经可以编译了,如下图操作:

![](http://photos.100ask.net/renesas-docs/DShanMCU_RA6M5/object_oriented_module_programming_method_in_ARM_embedded_system/chapter-3/image21.png" />

如何使用e2 studio配置硬件、生成代码,请参考后续章节。

3.3.2 e2 studio界面说明

当创建好工程并且打开透视图之后,呈现在读者面前的是这样一个界面:

菜单栏和工具快捷栏读者可以自行点击查看支持的功能,本节讲一下e2 studio的视图切换及各视图的公用区别。

切换视图的快捷键在工具快捷栏的最右侧,如下图所示:

“C”是切换到代码编写视图,在此视图下,随意打开一个源文件或头文件,最左侧的框图将由初始页面的FSP可视化页面变为源文件或头文件的大纲页面,显示出文件内包含的头文件、宏定义、函数声明等,例如在此视图下打开hal_entry.c,其表现如图所示:

通过大纲提示,开发者可以很快的浏览了解该文件的主要内容。

3.3.3 FSP配置

“FSP Configuration”是切换到FSP的配置页面,打开FSP配置界面,初始界面如下图所示:

左侧框图是开发者配置处理器及其外设的主要操作窗口,它有支持的配置项如下:

  • Summary:关于当前处理器或办卡的信息总结,包括处理器型号、工具栏及其版本、FSP版本、组件版本等等;
  • BSP:板级支持包(BSP)配置页,用以选择FSP版本、板卡型号、和处理器型号等;
  • Clocks:时钟配置页,用以配置时钟源、PLL分倍频系数,来配置系统时钟和各总线时钟;
  • Pins:引脚配置页,用以配置某个引脚的功能或者配置某个硬件外设的具体功能的引脚选择;
  • Interrupts:中断配置页,用户可以在这里查看到已经配置的所有事件/中断及其在程序中的中断服务函数命;用户也可以在此处添加自己的事件/中断,并为其中断服务函数自定义名称;
  • Event Links:事件链接配置页,这是一个生产者-消费者模型,目的是让事件产生者去触发一个事件消费者的中断,配置此项还需要在之后的Stacks出添加ELC配置项;
  • Stacks:堆栈配置页,用以配置具体硬件外设的参数,例如IO的ELC触发源、UART的波特率等等;初始情况只有IO的堆栈配置,当需要配置其它外设参数时点击该页左上方的“New Stack”来添加外设配置;
  • Components:组件配置页,在此处添加瑞萨官方FSP、官方HAL库、第三方中间件和第三方RTOS等;

右侧框图是FSP的可视化配置图,可以在这个芯片图中右键选中某个引脚来配置其功能(跟在Pins页面配置引脚是一样的效果),以P402引脚为例,如下图所示:

3.3.4 e2 studio工程结构说明

当创建好一个e2 studio工程后,其初始的工程结构如下图所示:

依次来看下这个结构中各文件夹和文件的主要内容和作用:

  • Includes:此处显示了工程使用到的所有头文件所在的路径;
  • ra:此文件夹中包含的是ARM内核支持的CMSIS接口的头文件以及瑞萨的FSP源文件和头文件;
  • ra_gen:此文件夹包含的是经FSP配置后生成工程内容后的代码源文件;
  • src:初始情况下此文件夹下只有一个hal_entry.c源文件,其中实现了入口函数hal_entry()和系统初始化会调用的一个函数R_BSP_WarmStart();
  • Debug:此文件夹下包含的是内存寄存器地址链接文件,不可更改,如图所示:

  • ra_cfg:此文件夹下包含的是fsp配置后的头文件,其中是对fsp配置参数的宏定义或声明;
  • script:此文件夹下是整个工程编译所需要的链接文件;
  • configuration.xml:FSP配置页面的xml文件,如果开发过程中将FSP配置页面关闭了可以双击此文件重新打开;
  • xxx Debug_Flat.lunch:工程调试运行信息;
  • Developer Assistance:开发者助手,此处会将在FSP的Stacks中配置的外设所支持的所有HAL库函数显示出来,并且可以让开发者将库函数直接拖拽到代码文件中进行编辑,如下图所示:

将“Call_R_IOPORT_Open”往hal_entry()的代码编辑处拖拽过去后,其调用方式直接就生成到了代码中,开发者只需要重新编辑该函数的参数和返回值即可,非常的方便快捷。

3.3.5 e2 studio开发者助手

在上一小节已经简单演示了开发者助手在开发过程中的妙用,它不仅能让开发者快速的了解某个外设所支持的库函数有哪些,还能直接拖拽到函数中进行使用,极大的方便了开发。

要在开发者助手中了解某个外设的库函数和拖拽使用,必须要先在FSP的配置界面中的Stacks中添加该外设才行,默认情况下只有IOPORT,本书以SCI中的UART为例来简单讲解下Stacks和开发者助手的配合使用。

  1. Stacks中添加外设

去FSP的Stacks中点击“New Stack”,然后选择其中的“Connectivity”,再选择其中的“UART”,如图所示:

选择之后在Stacks页面的“HAL/Common Stacks”中将会新增一个UART的堆栈配置:

选中新增的UART的堆栈配置,在“属性”页可以配置这个UART的具体参数,如下图所示:

如果e2 studio的整个页面没有“属性”页,可以在e2 studio的菜单栏点开“窗口”,选择其中的“显示视图”,然后点击其中的“属性”,即可打开属性页,如下图所示:

  1. 开发者助手中使用外设库函数

在Stacks中配置好外设的参数后,点击“Generate Project Content”,随后在展开工程中的开发者助手“Developer Assistance”,继续展开其中的“HAL/Common”,就能看到其中增加了配置的那个外设的库函数,如图所示:

开发者只需要将库函数拖拽到代码中再重新编辑参数和返回值即可完成库函数的调用。

3.3.6 e2 studio中配置DAP调试

e2 studiostudio本身尚未支持DAP调试工具,需要开发者自行安装。本节介绍如何安装Pyocd软件以支持板载的DAP调试器。

  1. 在Windows安装python

Pyocd的运行需要python环境。如果读者的Windows不支持python,即使用Windows的CMD执行python后没有显示版本和python运行符的话,需要先去安装最新版本的python(请自行安装)。

  1. 在Windows安装pyocd

Pyocd的官网网址:https://pyocd.io。 读者可以在官网中获取pyocd的安装方法和支持的指令,如下图所示:


在支持python(3.7版本以上)的Windows中,按下Win+R,输入CMD打开命令行:

然后输入指令:python3 -m pip install -U pyocd等待安装完成即可,有些环境下可能python3无法生效,则换成python -m pip install -U pyocd执行即可:如下图所示:

安装完成之后,在命令行执行pyocd -V查看版本来验证pyocd是否安装成功,如下图所示:

在后续e2 studio中配置pyocd环境的时候,还需要知道pyocd-gdbserver所在路径,同样的可以在命令行执行where.exe pyocd-gdbserver获取路径,如下图所示:

图中划线部分就是后续需要的路径。

  1. 使用Pyocd查看处理器型号

先查看pyocd的target命令用法,特别是其中的子命令“pack”的用法:

![](http://photos.100ask.net/renesas-docs/DShanMCU_RA6M5/object_oriented_module_programming_method_in_ARM_embedded_system/chapter-3/image42.png" />

我们需要先获取瑞萨处理器的PACK包,打开https://github.com/renesas/fsp/releases,往下拉找到“Assets”,点击下载这MDK_Device_PACKS_vxxx.zip,如下图所示:

将此压缩包解压出来,比如放到桌面,打开解压出来的文件夹,按住shift然后点击鼠标右键:

随后在打开的powershell命令行中执行下面这条指令查看这个pack文件支持的瑞萨处理器型号:

pyocd list --target --pack Renesas.RA_DFP.4.3.0.pack

如下图所示:

在这里可以看到瑞萨处理器的这个pack文件支持的所有的处理器型号,在后续配置pyocd调试的时候需要填写型号,内容就是从这里得来,以本书使用的R7FA6M5BF2CBG为例,需要的型号名称就是“r7fa6m5bf”或者“R7FA6MFBF”。

解压出来的Renesas.RA_DFP.4.3.0.pack,要记住它的目录,后面配置调试信息时要使用。

  1. e2 studio安装GDB Toolchain

搭建好pyocd环境之后,就需要在e2 studio中进行配置了。在e2 studio配置pyocd的前提是安装好GNU ARM C/C++ Cross Development Tools。

打开e2 studio,点击“帮助”,选择“安装新软件……”,如下图所示:

在弹出的窗口中,于“Work with”后面的文本框中填入以下链接后按下回车键,获取安装信息:

http://sourceforge.net/projects/gnuarmeclipse/files/Eclipse/updates/

这会得到GNU ARM交叉编译工具链的安装信息,如下图所示:

如果只需要pyocd的话就只选择安装GNU ARM C/C++ Pyocd Debugging即可,如果实在不清楚,可以全选安装。选择好之后点击右下角的“下一步”开始安装:

随后等待安装完成即可:

安装过程中会弹出“Trust”窗口,勾选其中的选项然后点击“Trust Selected”继续安装,如下图所示:

安装完成之后会要求重启e2 studio软件,点击重启:

  1. e2 studio配置pyocd

e2 studio安装了GNU ARM Pyocd软件成功且重启软件之后,点击菜单栏的“窗口”,选择其中的“首选项”:

在弹出的窗口中展开“运行/调试”,找到里面的“PyOCD”,在“Executable”中填入“pyocd-gdbserver.exe”,在“Folder”中填入pyocd-gdbserver.exe所在路径,也就是前文讲到的那个路径,配置如下图所示:

至此pyocd在e2 studio中的环境配置就设置好了,下面开始设置调试。

  1. e2 studio设置基于pyocd的调试器

首先打开一个e2 studio的工程,然后点击e2 studio中菜单栏的“运行”,选择其中的“调试配置”,如下图所示:

![](http://photos.100ask.net/renesas-docs/DShanMCU_RA6M5/object_oriented_module_programming_method_in_ARM_embedded_system/chapter-3/image54.png" alt=“img” />

在弹出的窗口中选择“GDB PyOCD Debugging”后鼠标右键,选择“新建配置”,如下图所示:

稍微等待一会儿,右侧会更新为GDB Pyocd的调试配置界面,如下图所示:

在主要这一栏,如果是选择了具体的工程后新建的配置,则会自动搜索指定该项目及其编译的elf文件,如果没有选择具体的工程,那么这一项会为空。

需要重点关注的是Debugger这一栏,其默认参数基本不需要修改,需要用户选择填写的是调试器、调试目标处理器型号以及参数指令,如下图所示:

  • Board:DAP调试器;
  • Override target:调试处理器型号,需要勾选后再填写;
  • Other options:PyOCD的—pack指令指定处理器所在pack包;

配置好之后直接点击“运行”即可使用DAP调试代码了。

  • 指定Renesas.RA_DFP.4.3.0.pack

3.4 RASC和Keil MDK的安装

3.4.1 获取RASC和MDK的安装软件

需要下载3个软件:

  1. MDK_Device_Packs_v4.3.0.zip:它是MDK使用的瑞萨MCU支持包
  2. setup_fsp_v4_3_0_rasc_v2023-01.exe:它是RASC的安装软件
  3. Keil MDK:它是一个集成开发工具

下载之后,先安装Keil MDK,再安装MDK_Device_Packs_v4.3.0.zip。setup_fsp_v4_3_0_rasc_v2023-01.exe的安装顺序不重要。

  1. RA Smart Configurator

打开https://github.com/renesas/fsp/releases,往下拉找到“Assets”,点击下载这两个文件:

  1. Keil MDK

在官网www.keil.com首页点击“Downloads”进入下载链接,随后选择“MDK-Arm”,如下图所示:

然后填写基本信息提交后,进入exe下载页,点击“MDKxxx.EXE”开始下载,如下图所示:

3.4.2 Keil MDK的安装步骤

先安装MDKxxx.EXE,然后再安装PACKS。

  1. 安装Keil MDK

MDK的安装比较简单,安装步骤主要是下图所示的6步:

  1. 安装首页,点击“Next”开始下一步安装;
  2. 协议知情书,勾选“I agree……”后点击“Next”开始下一步安装;
  3. Keil MDK核心文件和Keil MDK 的设备Packs包安装路径,可以自定义,注意不要带有中文;设置好之后点击“Next”开始下一步安装;
  4. 基本信息收集,随意填写即可,填写好之后点击“Next”开始安装;
  5. 安装进度,等待安装完成即可;安装过程中如果弹出需要安装xxx软件,点击安装即可;
  6. 安装完成,点击“Finish”结束安装;

Keil MDK主体安装完成之后会弹出一个“Pack Installer”,它会刷新和安装最新的ARM编译器、CMSIS固件等。

  1. 安装RA Packs

解压MDK_Device_Packs_v4.3.0.zip后,双击安装即可。安装步骤如图所示:

只需要点击“Next”后等待安装完成即可,安装完成后点击“Finish”结束pack的安装。

3.4.3 RASC的安装步骤

双击setup_fsp_v4_3_0_rasc_v2023-01.exe即可安装,一开始会弹出一个进度条然后选择用户安装权限:

选择“All Users”,然后开始安装流程。

  1. 首先依然是环境扫描和协议告知,依次点击“Next”、勾选“I accept……”后点击“Next”:

  1. 随后设置在开始菜单中的安装组,默认就好,然后点击“Install”开始安装,等待进度条执行完后就安装完成了:

  1. 安装完成,点击“OK”结束安装:

3.4.4 将RASC集成到Keil MDK

将RASC集成到Keil MDK后,可以在MDK中直接启动RASC进行配置。安装好RASC后,可以开始菜单看到如下指引,本节内容来自这个指引:

首先运行Keil MDK,在菜单栏点击‘Tools’,然后选择“Customize Tools Menu…”,如下图所示:

然后在弹出的窗口中点击“New”图标新建一个菜单项,参考下表进行填写:

目录内容
Menu ContentRA Smart Configurator
CommandC:\path\to\rasc.exe (rasc.exe的完整路径)
Initial Folder$P
Arguments–device $D --compiler ARMv6 configuration.xml
Run Independent

最终结果如下图所示:

![](http://photos.100ask.net/renesas-docs/DShanMCU_RA6M5/object_oriented_module_programming_method_in_ARM_embedded_system/chapter-3/image70.png" />

使用同样的办法继续添加其他两个菜单项:Smart Bundle Viewer、Device Partition Manager,参考下面2个表格。

l Smart Bundle Viewer的配置项:

区域内容
Menu ContentSmart Bundle Viewer
CommandC:\path\to\rasc.exe (rasc.exe的完整路径)
Initial Folder$P
Arguments-nosplash --viewsmartbundle “$L@L.sbd”
Run Independent

l Device Partition Manager的配置项:

区域内容
Menu ContentDevice Partition Manager
CommandC:\path\to\rasc.exe (rasc.exe的完整路径)
Initial Folder$P
Arguments-application com.renesas.cdt.ddsc.dpm.ui.dpmapplication configuration.xml"$L%L"
Run Independent

配置完成后,可以在Tools菜单看到如下三个菜单项:

以后使用Keil打开工程后,点击“Tools > RA Smart Configurator”即可打开RASC。

3.5 RASC和Keil MDK使用指南

3.5.1 使用RASC创建MDK工程

先启动RASC,如下图所示:

RASC启动后,它弹出如下对话框,开始新建工程。以“0301_mdk_demo”工程为例,如下图输入各项参数:

点击Next按钮,进一步配置:选择单板、芯片、IDE等。本例程使用的芯片是R7FA6M5BF2CBG、IDE是“Keil MDK Version 5”,如下图所示:

继续点击Next按钮,在后续的3个页面中如下图设置:

创建完成后得到如下的界面,点击“Summary”项中“Location”处最右端的跳转图标可以打开工程所在文件夹:

双击“0302_mdk_demo.uvprojx”文件即可打开此Keil工程,它并没有做实际的事情,后续可以参考《第5章 GPIO输入输出》添加LED的控制代码。但是,现在这个工程已经可以编译、下载、运行了。在Keil菜单中点击一下按钮即可编译程序:

3.5.2 配置MDK工程

使用RASC创建的MDK工程可以编译通过,但是无法直接烧写,需要进一步配置。先使用USB线把板子的“UART&DAP”口连接到电脑,然后打开MDK工程。

使用RASC创建的MDK工程,它的默认配置里没有为芯片添加配置(比如Flash的烧写算法)。我们可以先选择任意其他芯片,再选择回我们所使用的芯片,MDK就会为这个芯片添加配置。

方法为:先点击“魔术棒”,再点击“Device”,本教程使用的是下图编号④的R7FA6M5BF,故意先点击编号③的其他芯片,再点击编号④的芯片,就可以让MDK为R7FA6M5BF添加芯片配置信息了。如下图所示:

这时,点击“Debug”页面,选择DAP调试器,然后点击“Setting”,如下图所示:

在设置界面,确认“SWJ”被勾选、Port被选为“SW”(下图编号⑧),并且识别出了芯片(下图编号⑨),如下图所示:


继续点击上图的“Flash Download”,勾选“Reset and Run”;并确保“Programming Algorithm”里不是空白的,否则就要回到刚开始的步骤故意切换为其他芯片再切换回R7FA6M5BF。如下图所示:

3.5.3 编译和调试下载程序

Keil MDK的编译可以使用快捷键“F7”来进行,也可以使用快捷栏图标进行编译和全部重新编译,如下图所示:

烧写代码可以点击上图中的“LOAD”双向下箭头图标进行程序烧写,也可以使用快捷键“F8”来烧写。

Keil MDK的调试按钮在快捷栏图标的左侧,如下图所示:

点击调试按钮即可进入调试界面,如下图所示:

上图各个区域讲解如下:

a) 寄存器区:当前内核寄存器值;
b) 汇编区:显示当前MDK指针所在位置和代码的汇编内容;
c) 代码区:此窗口左侧深灰色表示可以在该处打断点,右侧只是实际代码;

MDK支持的调试手段如下图所示:

  • Reset:复位,让程序重新运行;
  • Run:全速运行,如果有断点则运行到断点处才停止;
  • Stop:停止运行程序,停止后可以观察寄存器、内存等信息;
  • Step:单步运行,此单步是以一句指令为最小单位,遇到函数调用会跳转进入函数内;
  • Step Over:单步跳过运行,此单步遇到函数调用不会进入被函数内,而是全速执行完函数后停止;如果函数内有断点,运行到断点时会停止;
  • Step Out:单步跳出运行,会将当前函数剩下的指令全速执行完,跳出函数后停止;
  • Run to Cursor Line:直行到指定行,先用鼠标点击源码某行,再点击此按钮就会运行到这行。

本章完

相关文章:

第3章_瑞萨MCU零基础入门系列教程之开发环境搭建与体验

本教程基于韦东山百问网出的 DShanMCU-RA6M5开发板 进行编写,需要的同学可以在这里获取: https://item.taobao.com/item.htm?id728461040949 配套资料获取:https://renesas-docs.100ask.net 瑞萨MCU零基础入门系列教程汇总: ht…...

AI在医疗保健领域:突破界限,救治生命

文章目录 AI在医学影像分析中的应用AI在疾病预测和早期诊断中的作用个性化治疗和药物研发医疗数据管理和隐私保护未来展望 🎉欢迎来到AIGC人工智能专栏~AI在医疗保健领域:突破界限,救治生命 ☆* o(≧▽≦)o *☆嗨~我是IT陈寒🍹✨博…...

centos7安装kubernets集群

一、准备工作 准备三台虚拟机,centos7系统 二、系统配置 1. 修改主机名 # 三台机器都需要执行 hostnamectl set-hostname k8s-master hostnamectl set-hostname k8s-node1 hostnamectl set-hostname k8s-node22. 修改hosts文件 # 三台机器都需要执行 [rootk8s-…...

【多线程】线程安全与线程同步

线程安全与线程同步 1.什么是线程安全问题? 多个线程同时操作同一个共享资源的时候,可能会出现业务安全问题 取钱的线程安全问题场景: 两个人他们有一个共同的账户,余额是10万元,如果两个人同时来取钱,…...

指针权限,new与delete,类与对象,函数模板,类模板的用法

指针权限 用法 void Print(const char* SecretPointer) {cout << "绝密指令为&#xff1a;";cout << SecretPointer << endl; }void Change(int& number, int* const FixedPointer) {cout << "更换站台数字为&#xff1a;";c…...

Unity——脚本与序列化

在介绍序列化之前&#xff0c;我们先来了解一下为什么要对数据进行序列化 数据序列化有以下几个主要的应用场景和目的&#xff1a; 1. 持久化存储&#xff1a;序列化可以将对象或数据结构转换为字节序列&#xff0c;使得其可以被存储在磁盘上或数据库中。通过序列化&#xff…...

NJ求职盘点

电子显示 集成电路 地平线 后摩智能 芯启源 自动驾驶 地平线 栖霞区兴智科技园 泊车、SLAM/3D算法工程师 https://wecruit.hotjob.cn/SU64819a4f2f9d2433ba8b043a/pb/social.html?currentPage1 后摩智能 栖霞区兴智科技园 视觉感知算法资深工程师 可以做自动驾驶前瞻性…...

01卡特兰数

卡特兰数跟排列组合很有关系&#xff0c;所以在看此文章前请掌握&#xff1a; 加法原理乘法原理A(m,n)计算公式及其原理C(m,n)计算公式及其原理 前言 今天您将会学习到基本的卡特兰数及其应用。 一、卡特兰数是什么&#xff1f; 卡特兰数&#xff08;Catalan number&#xff0…...

若依前端vue设置子路径

若依前端vue设置子路径 说明&#xff1a;本文档中以前后端分离版为例&#xff0c;版本为:3.8.6 一设置变量 在.env.development和.env.production 中定义一个变量如VUE_APP_PROJECT_IDENTIFIER # 项目标识字符 VUE_APP_PROJECT_IDENTIFIER admin二引用路径变量 ${process…...

Vue中使用pdf.js实现在线预览pdf文件流

以下是在Vue中使用pdf.js实现在线预览pdf文件流的步骤&#xff1a; 1. 安装pdf.js npm install pdfjs-dist2. 引入pdf.js 在需要使用的组件中&#xff0c;使用以下代码引入pdf.js&#xff1a; import pdfjsLib from pdfjs-dist3. 加载pdf文件流 使用pdf.js的getDocument()方…...

态、势、感、知与时空、关系

态势感知是一种通过收集、整合、分析和解释大量的时空数据&#xff0c;以获取关于特定领域、地区或事件的全面理解的过程。时空和关系在态势感知中扮演着非常重要的角色。 态&#xff1a;态指的是物体或系统所处的状态或状况。在不同的态下&#xff0c;物体或系统的性质、行为和…...

D. Paths on the Tree

Problem - 1746D - Codeforces 思路&#xff1a;先分析一下题意&#xff0c;根据第一条性质&#xff0c;每次只能够从1开始&#xff0c;而第二条性质则表明对于每个节点来说&#xff0c;经过这个节点的子节点的路径条数应该尽量均衡&#xff0c;最大值与最小值相差不能超过1&am…...

CocosCreator3.8研究笔记(九)CocosCreator 场景资源的理解

相信很多朋友都想知道&#xff0c; Cocos Creator 资源的定义&#xff1f; Cocos Creator 常见的资源包含哪些&#xff1f;Cocos Creator 资源的管理机制是什么样的&#xff1f; Cocos Creator 中所有继承自 Asset 的类型都统称资源 &#xff0c;例如&#xff1a;Texture2D、Sp…...

大数据课程L1——网站流量项目的概述整体架构

文章作者邮箱:yugongshiye@sina.cn 地址:广东惠州 ▲ 本章节目的 ⚪ 了解网站流量项目的案例概述; ⚪ 了解网站流量项目的数据埋点和采集; ⚪ 了解网站流量项目的整体架构; 一、网站流量项目概述 1. 背景说明 网站流量统计是改进网站服务的重要手段之一…...

提升数据库安全小技巧,使用SSH配合开源DBeaver工具连接数据库

title: 提升数据库安全小技巧&#xff0c;使用SSH配合开源DBeaver工具连接数据库 categories: 独立博客的方方面面 前段时间, 未来降低网址运行成本&#xff0c;搭了一套Mysql Docker 数据库, 包括外部链接&#xff0c;数据备份&#xff0c;数据导出&#xff0c;数据恢复一套解…...

信息安全技术概论-李剑-持续更新

图片和细节来源于 用户 xiejava1018 一.概述 随着计算机网络技术的发展&#xff0c;与时代的变化&#xff0c;计算机病毒也经历了从早期的破坏为主到勒索钱财敲诈经济为主&#xff0c;破坏方式也多种多样&#xff0c;由早期的破坏网络到破坏硬件设备等等 &#xff0c;这也…...

java项目基于 SSM+JSP 的人事管理系统

java项目基于 SSMJSP 的人事管理系统 博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝30W,Csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 大家好&#xff0c;今天和大家聊的是 Java 基于 SSM 的人事管理系统。…...

【Node.js】—基本知识点总结

【Node.js】—基本知识总结 一、命令行常用操作 二、Node.js注意点 Node.js中不能使用BOM和DOM操作 总结 三、Buffer buffer是一个类似于数组的对象&#xff0c;用于表示固定长度的字节序列buffer的本质是一段内存空间&#xff0c;专门用来处理二进制数据 特点&#xff1a;…...

Leetcode.174 地下城游戏

题目链接 Leetcode.174 地下城游戏 hard 题目描述 恶魔们抓住了公主并将她关在了地下城 d u n g e o n dungeon dungeon 的 右下角 。地下城是由 m x n 个房间组成的二维网格。我们英勇的骑士最初被安置在 左上角 的房间里&#xff0c;他必须穿过地下城并通过对抗恶魔来拯救公…...

python实现adb辅助点击屏幕工具

#!/usr/bin/env python # -*- coding: utf-8 -*-import re import os import time import subprocess import tkinter as tk from tkinter import messagebox from PIL import Image, ImageTk# 设置ADB路径&#xff08;根据你的系统和安装路径进行调整&#xff09; ADB_PATH C…...

智能合约安全分析,针对 ERC777 任意调用合约 Hook 攻击

智能合约安全分析&#xff0c;针对 ERC777 任意调用合约 Hook 攻击 Safful发现了一个有趣的错误&#xff0c;有可能成为一些 DeFi 项目的攻击媒介。这个错误尤其与著名的 ERC777 代币标准有关。此外&#xff0c;它不仅仅是众所周知的黑客中常见的简单的重入问题。 这篇文章对 …...

nodejs 爬虫 axios 异步爬虫 教程 【一】

axios 自定义headers axios.defaults.headers.common["User-Agent"] "Googlebot/2.1 (http://www.google.com/bot.html)"; 运行环境&#xff1a; node &#xff1a;v18 const axios require("axios"); axios.defaults.headers.common["U…...

Swift学习笔记三(Dictionary 篇)

1 Dictionary 概念 字典储存无序的互相关联的同一类型的键和同一类型的值的集合。字典类型的全写方式 Dictionary<Key, Value>&#xff0c;简写方式 [Key: Value]&#xff0c;建议使用简写方式。字典的 key 必须是可哈希的。 2 Dictionary创建 2.1 初始器创建方式 2.2 …...

javax.mail 遇到501 mail from address must be same as authorization user 的問題

使用不同的兩個帳戶发送email时&#xff0c;第一个账户可以发送成功&#xff0c;但到第二个账户的时候就报出了501 mail from address must be same as authorization user的错误。 具体代码如下&#xff1a; import java.util.Date; import java.util.List; import java.util.…...

【Python】网络编程

Socket Socket (简称 套接字)是进程之间通信一个工具&#xff0c;进程之间想要进行网络通信需要socket。Socket负责进程之间的网络数据传输&#xff0c;好比数据的搬运工。 客户端和服务端 2个进程之间通过Socket进行相互通讯&#xff0c;就必须有服务端和客户端 Socket服务…...

客户端开发常用框架

在Unity游戏开发中&#xff0c;客户端常用的框架包括以下几种&#xff1a; 1.Unity的网络框架&#xff1a;Unity自带了网络框架&#xff0c;包括Unity Networking、Unity Matchmaker和Unity Remote等。这些框架可以帮助我们进行游戏的联机对战、排行榜、跨平台等功能的设计和实…...

数据分析综述

⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ &#x1f434;作者&#xff1a;秋无之地 &#x1f434;简介&#xff1a;CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作&#xff0c;主要擅长领域有&#xff1a;爬虫、后端、大数据…...

区块链技术与应用 - 学习笔记2【密码学基础】

大家好&#xff0c;我是比特桃。本系列笔记只专注于探讨研究区块链技术原理&#xff0c;不做其他违反相关规定的讨论。 区块链技术已被纳入国家十四五规划&#xff0c;在“加快数字发展 建设数字中国”篇章中&#xff0c;区块链被列为“十四五”七大数字经济重点产业之一&#…...

制作Linux发行版安装镜像:复刻centos镜像安装ISO

制作Linux发行版安装镜像&#xff1a;复刻centos镜像安装ISO 我们平时经常下载Linux各个发行版&#xff0c;下载ISO&#xff0c;安装使用。那么ISO到底是如何制作的&#xff1f;安装过程是什么原理&#xff1f; 近来打算讲镜像制作的过程、原理&#xff0c;通过一个专栏分享一…...

【复习socket】每天40min,我们一起用70天稳扎稳打学完《JavaEE初阶》——29/70 第二十九天

专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客,如有问题交流,欢迎评论区留言,一定尽快回复!(大家可以去看我的专栏,是所有文章的目录)   文章字体风格: 红色文字表示:重难点★✔ 蓝色文字表示:思路以及想法★✔   如果大家觉得有帮助的话,感谢大家帮忙 点…...

网站服务器的功能/百度实名认证

一、安装 使用免安装的版本进行安装&#xff1a; 1. 解压到安装目录 2. 拷贝目录下的 my-default.ini 文件为 my.ini 文件 3. 修改my.ini 文件内容为 [client]port3306default-character-setutf8#客户端字符类型&#xff0c;与服务端一致就行&#xff0c;建议utf8[mysqld]port3…...

网站建设竞标需要怎么做/营业推广的目标通常是

选用ZIP Archive版本的win64下面我再把步骤说明一下&#xff1a;选中上图的版本&#xff0c;开始下载。2、解压安装包解压下载的安装包&#xff0c;直接放到系统根目录下&#xff0c;我放置的是D:\mysql3、配置my.ini文件解压后&#xff0c;根目录下&#xff0c;有一个my-defau…...

wordpress新闻动态插件/如何做好网络营销?

首先我需要这样一个界面 这个界面是在使用AudioManager.adjustStreamVolume(int streamType, int direction, int flags)显示出来的&#xff0c;记住flags这里传 AudioManager.FLAG_SHOW_UI才会显示 不然只是逻辑上调整了某个流的声音&#xff0c;用户他看不到界面不知道成功与…...

思源黑体 wordpress/百度外包公司有哪些

交互问答 №.005本篇文章的问题挺有意思&#xff0c;虽然是一个页面中无关紧要的模式&#xff0c;但却是典型的反模式设计&#xff0c;各位可以简单读读。读者提问&#xff1a;社区论坛类产品&#xff0c;天涯、虎扑与百度贴吧的帖子评论页有一个设计差异。天涯、虎扑在帖子评论…...

网站被提示危险网站/百度手机助手下载安卓

有的朋友长时间没有使用电脑&#xff0c;在使用的时候可能会遇到0x80073712&#xff0c;然而自己对于0x80073712的处理方法又不太了解&#xff0c;就感觉0x80073712非常棘手&#xff0c;下面小编为大家介绍一下0x80073712的处理方法&#xff1a;window10更新出错 代码 0x800737…...

国内知名的wordpress网站/企业营销管理

antd Table 固定某列列宽且超出内容省略号&#xff0c;当鼠标划上去时提示全部内容...