开发板开箱
- RA4M2开发板、PMOD扩展板、蓝牙板、WiFi板和传感器板合照
- 开发板正面,两个Type-C接口,两颗普通按键,两个触摸按键,三颗LED灯,而且兼容arduino接口。
- 没有板载的调试器,用了之前画的DAP-Link调试器插上
资料获取
根据教程资料登陆网站 https://ramcu.cn/lists/21.html 下载rasc工具和pack包,不过是在某盘下载,速度太慢,建议使用工具去GitHub下载:https://github.com/renesas/fsp/releases/tag/v4.2.0
下载完毕后安装rasc工具、解压pack包,得到A4M2的svd文件
至此,准备工作完成
开发环境搭建(vscode + rasc + cmake + ninja + GCC + pyocd + gdb)
版本信息
- vscode 1.74.2
- arm-none-eabi-gcc 10.2.1
- python 3.10.7
- pyocd 0.34.3
- arm-none-eabi-gdb 10.1.90.20201028-git
- rasc v4.1.0
- cmake 3.25.1
- ninja 1.11.1
pyocd 的安装、导入 pack 包
- pip一键安装即可
pip install pyocd
- 在工程目录下创建
pyocd.yaml
来指定 pack 包的位置(这里放在了Demo/tools的文件夹)
pack:
- ./tools/Renesas.RA_DFP.4.1.0.pack
运行一行命令来查看pack是否导入成功 pyocd list --targets | grep A4M2
rasc 工程配置
关于rasc的使用在软件的help中的 Quick Start Guide
很清楚
不过在使用中发现一个小细节,rasc的软件中貌似只能新建工程和导入e2studio工程,阅读入门文档得知对于cmake工程需要命令行来启动rasc配置现有的工程文件。
对于我这种懒癌患者,那么长的命令懒得敲。。所以写了一个Windows右键菜单的拓展启动rasc(这里是4.1.0版本的安装路径,其他版本需要修改路径)
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\SystemFileAssociations\.xml\shell\Item0]
"MUIVerb"="Use rasc open"
"Icon"="C:\Renesas\RA\sc_v2022-10_fsp_v4.1.0\eclipse\rasc.exe ,0"
[HKEY_CLASSES_ROOT\SystemFileAssociations\.xml\shell\Item0\command]
@="C:\Renesas\RA\sc_v2022-10_fsp_v4.1.0\eclipse\rasc.exe --compiler GCC \"%1\""
编译、烧录工程
在 CMakeLists.txt
中配置 CMAKE_FIND_ROOT_PATH
变量指向安装的arm-none-eabi的bin目录
cmake生成ninja编译脚本
ninja 编译工程
pyocd烧录程序
导入到 vscode 并配置
直接在vscode中打开工程目录,vscode中的cmake插件可以直接接管代码补全等。
接下来编写工程文件,后缀为 code-workspace
的文件
{
"folders": [
{
"path": "."
}
],
"settings": {
"files.exclude": {
"**/.settings": true,
"**/Debug": true,
"**/Objects": true,
"**/objects": true,
"**/Listings": true,
"**/listings": true,
"**/Output": true,
"**/output": true,
"**/*.map": true,
"**/.config*": true,
"**/.project*": true,
"**/.cproject*": true,
"**/*.POMIN": true,
".gitattributes": true
},
"files.encoding": "utf8",
"editor.fontFamily": "Consolas, OPPOSans",
"terminal.integrated.profiles.windows": {},
"terminal.integrated.defaultProfile.windows": "PowerShell",
"C_Cpp.formatting": "clangFormat",
"C_Cpp.clang_format_style": "{ BasedOnStyle: Google, IndentWidth: 4 }",
"C_Cpp.default.intelliSenseMode": "gcc-x86",
"C_Cpp.default.cppStandard": "c++14",
"C_Cpp.default.cStandard": "c99",
"C_Cpp.default.defines": [],
"C_Cpp.default.compilerPath": "D:/Maker/Console/arm-gcc/bin/arm-none-eabi-gcc.exe",
"C_Cpp.default.includePath": ["${workspaceFolder}/**"],
"C_Cpp.default.forcedInclude": [],
"cortex-debug.variableUseNaturalFormat": false,
"files.associations": {
}
},
"tasks": {
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"command": ["ninja"],
"args": ["-C", "build"]
}
]
},
"launch": {
"version": "0.2.0",
"configurations": [
{
"name": "RA4M2 pyocd dbg",
"type": "cortex-debug",
"cwd": "${workspaceRoot}",
"executable": "./build/CMakeFiles/FSP_Project.elf.dir/FSP_Project.elf",
"request": "launch",
"runToEntryPoint": "main",
"servertype": "pyocd",
"targetId": "R7FA4M2AD",
"svdFile": "./tools/R7FA4M2AD.svd",
"showDevDebugOutput": "both",
"preLaunchTask": "build",
"cmsisPack": "./tools/Renesas.RA_DFP.4.1.0.pack"
}
]
}
}
然后F5一键启动调试,在开始调试时,会自动调用工作区文件中的 preLaunchTask 指向的任务,也就是 ninja -C build
之后搭配Cortex-debug工具调用pyocd进行烧录与调试