本帖最后由 jf_37047872 于 2022-12-15 15:31 编辑
概述
最近
william hill官网
很多发烧友都陆续发布了RA4M2
开发板的开发环境搭建教程,因此关于这一部分内容仅作一些梳理和总结,本期重点将放在如何在这块开发板上运行你的第一个程序。
【第一步】准备工作
要在一块开发板上运行程序,需要先完成以下准备工作:
0、资料下载
为什么编号从0开始,因为这部分是无论你选择以下哪一种集成开发环境,都必须搭配使用的部分(作为官方提供的软件,当然已经集成到官方集成开发环境e2里面了),所以放在最前面,这就是RA官方提供的FSP(灵活配置软件包)及RASC软件。
(1)FSP提供了一整套开箱即用的中间件-和协议(例如 TCP/IP 协议或安全功能协议)、板级支持包 (BSP)(可为瑞萨的 MCU 和开发板提供启动和初始化代码),以及用于所有外设的硬件抽象层 (HAL) 驱动程序。所有驱动程序、 协议栈和中间件功能均可通过易于使用的应用程序编程接口 (API) 进行访问,从而轻松实现互换,并可与实时操作系统 (RTOS) 以及裸机实现搭配使用。此外,软件的各个层均内置了对
ARM 的 TrustZone的感知,并使用 Arm 的统一 API 来保证安全。 FSP 是开源软件,提供完整的源代码,但仅限用于瑞萨的硬件。除了上述软件外, FSP 还采用 Amazon 的 FreeRTOS® 作为实时操作系统。
有关FSP下载及安装,可以参考以下帖子:
https://bbs.elecfans.com/jishu_2316329_1_1.html(教程)
https://www.bilibili.com/video/BV1E44y1X7Qd/?spm_id_from=333.788.recommend_more_video.-1&vd_source=5251805bfcd3862ad0ab8abe9bba117b(视频教程)
(提示:官网下载资源都来自github.com,国内的不少小伙伴可能访问不了,幸好有了RA生态
社区网站,可以从这里下载资源:
https://ramcu.cn/lists/21.html)
(2)RASC是一款桌面应用程序,可为用户提供与集成到 e2studio 中的 Smart Configurator 相同的功能。借助 RASC,使用第三方工具链和 IDE 的开发人员可以像 e2studio 的用户一样,以相同的方式访问软件系统(BSP、 HAL 驱动程序、中间件、 RTOS)的项目设置和图形化配置、引脚分配和时钟设置。完成设置后一键生成标准的工程代码,免去了很多基础性、重复性的底层代码编写工作。
关于RASC的安装配置,可以参考以下帖子:
https://bbs.elecfans.com/jishu_2319410_1_1.html
1、开发环境搭建
说人话就是你得找个可以编写代码的软件,通过这个软件编写好代码以后,它可以帮你把你写的代码“翻译”成芯片能够理解的形式,并且“发送”给开发板上的芯片运行。根据官方提供的文档,能够实现上述目的的软件一共有这么几种:
(1)e2 studio:这是官方提供的基于 Eclipse 的集成开发环境 (IDE) ,包含用于创建、编译和调试 RA 产品家族项目的所有必要工具。其配置器允许轻松地以图形方式访问诸如创建新项目之类的任务,或访问诸如时钟模块或引脚功能选择之类的不同硬件功能的配置,以及访问用于中间件、驱动程序、板级支持包和 RTOS 的软件模块选项。所有这些操作均不需要特别详细地研究用户指南。这些配置器都将自动创建所有必要的设置和初始化代码,并包含错误检查功能,以便在设计阶段就检测出有问题的设置。对于代码编译, e2 studio 使用 GNU Arm® Embedded 工具链的 GCC 编译器。
有关e2 studio集成开发环境的搭建教程可以参考以下帖子:
https://bbs.elecfans.com/jishu_2316329_1_1.html
(2)KEIL5:这是很多发烧友比较熟悉的一款集成开发环境,虽然有点古老,但还是占有率保持较高水平。对于这款软件不需要更多介绍,只是提醒大家,最好选择更新一点的版本(比如5.3X及以上),否则可能会出现不兼容的情况。
有关KEIL集成开发环境的搭建教程可以参考以下帖子:
https://bbs.elecfans.com/jishu_2318812_1_1.html
(3)IAR:这是另外一款大家比较熟悉的集成开发环境,同样提醒大家需要使用更新的版本(IAR9.X及以上)。
有关IAR集成开发环境的搭建教程可以参考以下帖子:
https://bbs.elecfans.com/jishu_2318059_1_1.html
2、选择官方示例程序
想要独立编写一个可以在这块开发板上运行的程序,对于现在的你来说可能有点困难,那么可以选择先找一个官方提供的示例程序来运行。这样做的好处包括:
- 快速验证开发板及芯片是否正常
- 快速体验板载或片上提供的相关功能(一般是点灯)
- 快速了解针对该款开发板及芯片最基本的代码结构、语法和命名习惯
那么我们在哪里可以找到一个既简单、又方便的官方示例程序呢?其实在官方提供的FSP(灵活配置软件包)中就提供了这样的例程。
【第二步】编辑并烧录官方示例程序
在进行本步骤前,默认您已经安装了BSP、RASC以及KEIL等必需的软件,如果还没有搞定的话,请向上翻看对应的章节。
1、生成官方示例程序blinky的工程文件
(1)打开RASC,依次点击File、New、FSP Project……,打开新建工程向导;
(2)填写Project name(工程名称)、取消勾选Use default loca
tion(用户默认路径)、点击Browse…(浏览)、选择保存工程文件的文件夹(文件夹名称最好与工程名称保持一致),点击Next(下一步);
(3)选择开发板型号(EK-RA4M2)、设备(R7FA4M2AD3CFP)及IDE Project Type(集成开发环境类型,选择Keil MDK Version 5),点击Next(下一步);
(4)选择Flat(Non-TrustZone)Project(非安全区项目),点击Next(下一步);
(5)选择No RTOS(不包含RTOS),点击Next(下一步);
(6)选择Bare Metal-Blinky官方示例程序,点击Finish(完成);
(7)通过查看开发板原理图,找到LED1、LED2、LED3的正极分别接MCU的P415、P404、P405三个引脚(高电平LED点亮);
(8)在RASC中,点击Pins选项卡,依次选中P415、P404和P405三个引脚,分别设置为Output mode(Initial Low);
(9)点击Generate Project Content生成KEIL工程文件;
2、通过KEIL编译并上传开发板运行
(1)从上一步的(2)中保存工程的路径下,找到RASC生成的工程文件(默认保存在:C:UsersXXX(电脑用户名)RASmartConfiguratorworkspaceBlinky_Keil5),并双击打开;
(2)在打开的KEIL5软件中,找到hal_entry.c文件,用户的代码都存放在这个文件里,我们看到RASC已经替我们生成了LED闪烁的代码,因此我们无需作任何修改;
(3)点击Options for Target…按钮,打开目标选项对话框;
(4)选择Debug选项卡,根据你所使用的编程器选择对应的型号(我用的是ST-Llink Debugger),点击Settings,打开设置对话框;
(5)确认以下红框中的内容是否正常,特别是右侧SW Device栏中是否正常识别出ARM CoreSight设备;
此步骤中可能出现以下错误提示:
一是“No ST-LINK detected”、“No Target Connected”或“ST-LINK connect error”,这种情况说明编程器尚未与芯片成功连接,重点检查线缆连接是否正确,供电是否正常;
二是“Internal command error”,这是我实际遇到的一个问题。这种情况在网上查资料,你会发现原因很多,但根据这些“指南”根本解决不了问题。
经过反复试验,终于完美解决,下面将原因和解决方法分享给大家。
在遇到这个问题之前,我只做了一步,就是升级了我电脑上安装的KEIL5软件,从5.22版本升级到了5.38版本(原因是为了适配RASC)。因此,我分析可能是不是因为升级了KEIL5软件,导致与其配合使用的ST-Link编程器固件版本过低,造成不能适配的问题。于是我在KEIL5的安装目录下,找到了ST-Link编程器升级软件ST-LinkUpgrade.exe。
双击运行,点击Device Connect连接ST-LINK(注意:一定要与开发板断开连接,否则可能提示“不在XX模式,无法连接”,必要时重新插拔一下)。发现新的固件版本,果断点击YES,等待进度条完成后,提示升级成功。
重新连接开发板后,查看SW Device栏中已正常识别到ARM CoreSight设备;
(6)依次点击Utilities选项卡、Settings按钮,打开对话框;
(7)按下图步骤,设置好各部分内容,点击确定按钮;
(8)依次点击编译、烧录按钮,待结果出现Verify OK的提示,说明程序已经正常烧录进开发板。
(9)此时您应该就可以看到开发板上三个用户LED正常闪烁了(如果没有闪烁,可以按一下RESET按钮)。
至此,恭喜您成功地在这款开发板上运行了自己的第一个程序!从下一篇开始,我将从代码角度详细解释如何写出第一个真正属于自己的程序,一起期待吧~