瑞萨为开发者提供了多种开发工具,其中有e2 studio、Keil/IAR+Pack的模式。
e2 studio是基于Eclipse的,功能强大,性能低下!
Keil+Pack是基于老旧的Keil的,能够用,很不好用。
IAR也是商用工具,用不起。
幸好,瑞萨提供的RA系列图形化配置工具(RASC,RA智能配置器),支持生成cmake工程,用开源的ARM-GCC就能够编译,将其与VSCode结合,就能够形成一个强大的开发编译烧录调试的开发环境。
RASC其实也不想装,基于老大笨的Eclipse,但多少还有一些用处,能够帮忙进行一些关键性的配置,也不需要时时用,暂且忍受吧。
.
.
.
一、软件资料包准备
要搭建基于VSCode的RA开编烧调环境,瑞萨提供的软件资料包,只需要两个即可:
.
.
其他的通通都不需要,没用,还占用空间。
下载完成后,做点小处理,提取需要的文件:
-
把 MDK_Device_Packs_v4.1.0.zip 解压,得到Renesas.RA_DFP.4.1.0.pack
-
把Renesas.RA_DFP.4.1.0.pack复制位Renesas.RA_DFP.4.1.0.pack.zip,然后解压,再把其中的SVD目录给拖出来,把SVD目录中,暂时无用的可以删除掉了
最终结果如下:
建议Windows下面按照下面的目录放置:
macOS/Linux按照如下目录放置在当前用户根目录下:
.
另外,还需要安装编译烧录相关的工具:
-
Arm GCC:GNU Arm Embedded Toolchain
-
Windows使用下面的版本:
安装时,安装路径中最好不要有空格,以免存在潜在问题:
注意要勾选下面的选项:
安装完成后,开黑窗口,检查安装是否成功:
如果找不到的话,那么注销一下当前用户,再登录即可。
-
macOS:
安装命令:
brew install arm-none-eabi-gcc
arm-none-eabi-gcc -v
-
Ubuntu:
sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa
sudo apt-getupdate
sudo apt-get install gcc-arm-embedded
arm-none-eabi-gcc -v
-
cmake和make
macOS/Linux上面,一般都安装了,不单说了。
Windows上面,需要先下载,再安装:
-
然后下载make:
-
pyocd:
安装pythod3后,直接通过pip安装:
Windows版本下载:Python Releases for Windows | Python.org
maxOS/Linux:使用对应的包管理软件安装即可。
python3 -m pip install -U pyocd
pyocd --version
.
.
.
二、安装RASC
在Windows系统上,直接点击 setup_fsp_v4_1_0_rasc_v2022-10.exe 安装即可。其也有Linux下面的版本,在前面的下载页面可以下载。
其安装路径,也最好没有空格。
一路Next到Install,到Finish即可,没有特殊的地方。
.
.
.
三、生成测试代码
找到rasc的安装目录,运行rasc:
可以打开配置界面,添加新工程:
然后设置好对应的类型:
在设置项目的类型:
以及RTOS的类型:
最后选择不带点灯的模版:
RASC一番自动操作后,最终生成了下面的工程:
点击右上角的生成代码,就能生成需要的工程了:
然后到工程目录中,就能看到输出的cmake工程了:
四、测试代码编译
前面已经生成了cmake的工程,我们只需要进行编译即可。
打开一个黑窗口,然后切换到目录下,再使用cmake进行编译即可:
Windows:
cd \Projects\Renesas\Workspace\Test_Project
cmake -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=cmake/gcc.cmake -H. -B./build
cmake --build build
macOS、Linux:
cd ~/Projects/Renesas/Workspace/Test_Project
cmake -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=cmake/gcc.cmake -H. -B./build
cmake --build build
运行第一个cmake的时候,会提示如下的错误(macOS/Linux错误与下面类似):
意思是说,没有设置编译工具链的查找路径,打开Config.cmake设置一下就好:
简单来说,就是要设置CMAKE_FIND_ROOT_PATH的路径,能够在其中找到arm-none-eabi-gcc这个文件
然后再次执行一遍,再执行第二条cmake指令,最终结果如下:
Windows:
macOS/Linux:
可以用dir(win)或者ls(macOS/Linux)查看一下生成的文件:
.
.
.
五、VSCode配置
RASC生成的工程,是cmake的,在VSCode中,可以很方便的配置整合。
先用VSCode打开工程所在的目录,然后进行配置。
重点在于如下三个文件的配置:
{
"configurations": [
{
"name": "Generic",
"configurationProvider": "ms-vscode.cmake-tools",
"includePath": [
"./ra/board/ra4m2_ek/",
"./ra/fsp/inc/",
"./ra/fsp/inc/api/",
"./ra/fsp/inc/instances/",
"./ra/fsp/inc/",
"./ra/fsp/src/bsp/cmsis/Device/RENESAS/Include/",
"./ra/fsp/src/bsp/mcu/all/",
"./ra/fsp/src/bsp/mcu/ra4m2/",
"./ra/arm/CMSIS_5/CMSIS/Core/Include/",
"./ra_gen/",
"./ra_cfg/fsp_cfg/bsp/",
"./ra_cfg/fsp_cfg/"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"intelliSenseMode": "clang-x64",
"compilerArgs": [],
"browse": {
"path": [],
"limitSymbolsToIncludedHeaders": true
}
}
],
"version": 4
}
{
"version": "2.0.0",
"options": {
"env": {
"ARMGCC_DIR": "/usr/local",
"PATH": "/usr/local/bin:${env:PATH}"
}
},
"tasks": [
{
"label": "_makebuildfolder",
"type": "shell",
"command": "mkdir",
"args": [
"-p",
"\"${workspaceFolder}\""
],
"problemMatcher": [],
"group": "none"
},
{
"label": "env",
"type": "shell",
"command": "env",
"args": [],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": []
},
{
"label": "cmake",
"type": "shell",
"command": "cmake",
"args": [
"-G","Unix Makefiles",
"-DCMAKE_TOOLCHAIN_FILE=cmake/gcc.cmake",
"-H.",
"-B./build"
],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": []
},
{
"label": "clean",
"type": "shell",
"command": "rm",
"args": [
"-rf",
"./build"
],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": []
},
{
"label": "make",
"type": "shell",
"command": "cmake",
"args": [
"--build",
"build"
],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": []
},
{
"label": "flash",
"type": "shell",
"command": "pyocd",
"args": [
"flash",
"--target",
"r7fa6m5bh",
"--pack",
"Renesas.RA_DFP.4.1.0.pack文件的绝对路径",
"./build/CMakeFiles/FSP_Project.elf.dir/Test_Project.elf"
],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": []
},
{
"label": "Build",
"dependsOrder": "sequence",
"dependsOn": [
"_makebuildfolder",
"env",
"cmake",
"make"
],
"problemMatcher": []
},
{
"label": "Build_Flash",
"dependsOrder": "sequence",
"dependsOn": [
"Build",
"flash",
],
"problemMatcher": []
}
]
}
{
"version": "0.2.0",
"configurations": [
{
"name": "RA Debug with PyOCD",
"cwd": "${workspaceRoot}",
"executable": "./build/CMakeFiles/FSP_Project.elf.dir/FSP_Project.elf",
"request": "launch",
"type": "cortex-debug",
"runToEntryPoint": "main",
"servertype": "pyocd",
"targetId":"r7fa4m2ad",
"armToolchainPath": "/usr/local/bin/",
"svdFile": "SVD/R7FA4M2AD.svd的绝对路径",
"showDevDebugOutput": "both",
"preLaunchTask": "Build",
"cmsisPack": "Renesas.RA_DFP.4.1.0.pack的绝对路径"
}
]
}
然后,就可以在VSCode中运行对应的任务了。
现将板子用仿真调试器鱼电脑连接,具体接口位置如下:
连接后如下:
然后使用pyocd检查:
pyocd list
再调用Build_Flash任务,结果如下:
Windows:
macOS/Linux:
然后,如下图所示,进入调试:
说明:Windows环境下VSCode环境配置,与macOS/Linux相比,没有特殊,不同系统上一致,就是pack、svd、arm gcc的路径不同,rm指令不同。
六、流水灯测试
完成了上面的工作后,就可以正式使用VSCode进行开发了,下面我们来一个流水灯测试。
先看原理图:
实物图:
从原理图可知,LED1、LED2、LED3对听P415、P404、P405,现在要FSP里面进行配置:
配置好以后,就可以在VSCode里面控制他们了:
void hal_entry(void)
{
unsigned int c = 0;
bsp_io_port_pin_t pins[] = {
BSP_IO_PORT_04_PIN_15,
BSP_IO_PORT_04_PIN_05,
BSP_IO_PORT_04_PIN_05
};
R_BSP_PinAccessEnable();
while(1) {
for(unsigned int i=0;i<sizeof(pins)/sizeof(bsp_io_port_pin_t);i++) {
if(i==c) {
R_BSP_PinWrite(pins[i], BSP_IO_LEVEL_HIGH);
} else {
R_BSP_PinWrite(pins[i], BSP_IO_LEVEL_LOW);
}
}
R_BSP_SoftwareDelay(100, BSP_DELAY_UNITS_MILLISECONDS);
c++;
if(c>=3) {
c = 0;
}
}
#if BSP_TZ_SECURE_BUILD
R_BSP_NonSecureEnter();
#endif
}
具体文件如下:
再次调用Build_Flash任务,就会重新编译烧录,板子上的三颗LED,就会欢快的流水点亮嘞:
【重点】
本项目实例和配置的源码分享:https://gitee.com/honestqiao/Renesas_RA_Template_VSCode
.
.
.