6. 使用RASC生成Keil工程¶
本章配套视频介绍:

《04-使用RASC生成Keil工程》
https://www.bilibili.com/video/BV1uj411U7T9/
6.1. 新建工程¶
6.1.1. 选择工作空间目录¶
手动新建一个名为 “Workspace_Keil” 的文件夹,并将该文件夹作为我们的工作空间, 我们的所有 Keil 工程都会放在这个文件夹里面。 值得注意的是:为了避免编译错误,该工作空间文件夹必须放在全英文的路径下,不能包含有中文字符。
6.1.2. 新建一个工程¶
使用 RASC 软件新建一个工程的操作步骤与使用 e2 studio 新建工程的步骤是类似的, 而在最后一步中,我们要直接借助 RASC 来自动生成一个 Keil 工程。 因此,我们新建一个用于 RA MCU 开发的 Keil 工程并不是通过 Keil 软件来进行,而是通过 RASC 软件。
首先打开 RASC 软件,接着在菜单栏依次点击“File”→“New”→“FSP Project”,开始新建一个工程。 如下图所示。

然后会弹出如下的默认界面。

我们取消勾选“Use default location”, 然后将上图中的 Keil 工程名字(Project name)改为统一的名字:EBF_RA6M5, 将 Keil 工程的位置路径(Location)设置为: “{工作空间路径}/06_Template”,如下图所示。 下图中的 “Workspace_Keil” 为工作空间文件夹,该文件夹下面将存放多个 Keil 工程。 “06_Template” 为 Keil 工程文件夹,其命名表示的是“对应教程的第06章、工程模板”的意思。

警告
注意:为了避免编译错误,Keil工程所在位置的绝对路径必须是全英文路径,不能包含有中文字符。
接下来点击“Next”进入下一步,到工程选项界面,如下图所示。 与使用 e2s 新建工程时的一样,我们需要在这里选择 FSP 库版本、板子型号、设备(MCU)型号、编程语言、编译器等。 这里的不同之处主要在于需要额外选择 IDE 类型(Keil、IAR等),并且不需要选择调试器, 因为调试器是在 IDE 里面进行选择和配置的。

按照下面的方式更改上图中的配置:
FSP Version 那一栏那里的 FSP 库版本选择 “4.0.0”。一般来说选择最新的版本即可。
板子型号选择 “Custom User Board (Any Device)”,即用户自定制的板子。 因为软件不知道我们的板子用的是什么芯片,所以后面有一个小括号括起来的“Any Device”提示字样。
Device 一栏,我们要点开 “…” 按钮,在弹出的界面中选择我们板子上所用的芯片型号,然后点击“确定”即可。
对于野火启明 6M5 开发板,选到“RA6M5”列表下的这个型号 “R7FA6M5BH3CFC”;
对于野火启明 4M2 开发板,选到“RA4M2”列表下的这个型号 “R7FA4M2AD3CFP”;
对于野火启明 2L1 开发板,选到“RA2L1”列表下的这个型号 “R7FA2L1AB3CFP”。
编程语言:我们默认选择C语言。
在下方的“IDE Project Type”栏里选择 “Keil MDK Version 5”。
在下方的“Toolchains”栏里选择工具链 “ARM Compiler 6”,这个是 Keil 自带的 ARM 官方编译器。
更改完成后的配置如下图所示。然后点击“Next”下一步。

这里默认选择 “Flat (Non-TrustZone) Project” 即可。点击“下一步”。

默认选择 “No RTOS” 即可,然后点“下一步”。 如果需要用到 RTOS,可以在“RTOS Selection”下拉列表里面选择 RTOS。 对于初学者来说,RTOS 的内容比较难学一点,因此我们暂时不使用 RTOS。

默认选择 “Bare Metal - Minial” 即可,然后点“下一步”。

接着就会显示如下的界面,新工程这就新建完成了,将该界面关掉即可。

我们可以在 “{工作空间路径}/06_Template” 目录下面看到 RASC 已经为我们自动地生成了一个 Keil 工程。 如下图所示。

6.2. 通过Keil打开RASC的FSP配置器界面¶
双击 Keil 工程文件 “EBF_RA6M5.uvprojx”,打开该 Keil 工程。
然后在菜单栏依次点击“Tools”→“RA Smart Configurator”, 即可打开与该 Keil 工程相关联的 RASC 软件 FSP 配置界面。

打开的 FSP 配置页面如下图所示。接着单击右上角的 “Generate Project Content”, 软件会根据工程现有的 FSP 配置来自动生成 FSP 库代码。

6.3. 配置和编译Keil工程¶
6.3.1. 配置Keil¶
需要注意的是,在使用 RASC 生成一个新的 Keil 工程之后,如果直接编译和下载程序,虽然能编译通过,但是程序下载这一步是会报错的。 因为 RASC 自动生成的这个 Keil 工程默认情况下并没有配置好一些必需的工程选项。
这里有一个小技巧,能让我们免去配置各个工程选项的烦恼,即: 需要在选择芯片型号那里切换到其他芯片型号再切换回来,这样可以让 Keil 软件自动按默认方式配置工程,重新编译之后即可成功下载程序。
如图所示,具体步骤如下:
①:单击该工程选项配置按钮。
②:点击最左边的“Device”页面。在这个页面可以切换芯片型号。
③:在这里首先点到其他一个芯片型号上,然后再点回启明6M5开发板所用的芯片型号:“R7FA6M5BH3CFC”, 这样可以让软件自动配置一些关键的工程选项。启明4M2和启明2L1开发板也类似。
④:最后点击“OK”按钮即可。

添加工程的头文件包含路径:
需要注意,我们在这里需要添加一下头文件包含路径:”./src”, 因为在后面编写驱动程序的时候,我们会把所有的驱动代码文件都放到工程根目录的 src 文件夹下面。
添加方法如下。 首先打开工程选项配置窗口,并切换到 “C/C++ (AC6)” 页面,可以看到其中有一栏 “Include Paths”,目前为空。 我们要做的就是在 “Include Paths” 当中添加一条头文件包含的相对路径 “./src”。
点右边的“…”按钮。

然后点“New”按钮,新建一条头文件包含路径。

加入“./src”路径,然后一路点击确定即可。路径“./src”或者“.\src”表示的是相对于 Keil 工程根目录的相对路径。

6.3.2. 编译工程¶
单击编译按钮即可对该工程进行编译。右边“LOAD” 按钮为下载程序按钮。 如下图所示。

在成功编译工程之后的下一步是调试程序或者下载程序, 但是这需要正确配置调试器后才能进行,否者会弹出提示错误信息的窗口。
6.4. 使用调试器下载程序¶
6.4.1. DAP仿真器简介¶
野火的 DAP 仿真器遵循ARM公司的 CMSIS-DAP 标准, 支持所有基于Cortex内核的单片机,常见的M3、M4和M7都可以完美支持,M23、M33也可支持。
野火的 DAP 仿真器支持下载和在线仿真程序,支持Windows操作系统, 不需要安装驱动(免驱)即可使用,支持 KEIL 和 IAR 直接下载,非常方便。
6.4.2. 硬件连接¶
用USB线连接仿真器到电脑,如果仿真器的灯亮则表示正常,可以使用。 然后把仿真器的另外一端连接到开发板,给开发板上电,然后就可以通过软件 KEIL 或者 IAR 给开发板下载程序。 仿真器与电脑和开发板连接方式如下图所示:

6.4.3. 仿真器配置¶
在仿真器连接好电脑和开发板且开发板供电正常的情况下,打开编译软件 KEIL, 在 KEIL 菜单栏下面的工具栏的魔术棒选项卡里面选择仿真器的型号,具体过程如下。
Debug 页面下选择使用 CMSIS-DAP Debugger:

Utilities 页面下勾上选择 Use Debug Driver:

Debug Settings 选项配置如下,只要识别到芯片即可,其它选项可以按照默认配置,无需修改。

注:此页面保持原本的默认设置即可,不必按上图所示进行配置。
6.4.4. 下载程序¶
如果前面步骤都成功了,接下来就可以把编译好的程序下载到开发板上运行。 下载程序不需要其他额外的软件,直接点击 Keil 中的 “LOAD” 按钮即可。

程序下载后,Keil软件下方 Build Output 选项卡如果打印出 “Programming Done.” 则表示程序下载成功。 此时的程序只是成功下载进Flash了,并没有自动运行,可按板子上复位键来复位运行程序。

如果在 Debug Settings → Flash Download 配置下勾选了“Reset and Run”,则会多出一行 “Application running …” 的提示。 此时程序已在下载完成后自动运行。
