瑞萨单片机论坛
直播中

知之为知之zhl

4年用户 99经验值
擅长:可编程逻辑 电源/新能源
私信 关注

【RA4M2设计挑战赛】开发板开箱、资料获取、开发环境搭建

开发板开箱

  • RA4M2开发板、PMOD扩展板、蓝牙板、WiFi板和传感器板合照
    view3.jpg
  • 开发板正面,两个Type-C接口,两颗普通按键,两个触摸按键,三颗LED灯,而且兼容arduino接口。

view2.jpg

  • 没有板载的调试器,用了之前画的DAP-Link调试器插上

dap.jpg

资料获取

根据教程资料登陆网站 https://ramcu.cn/lists/21.html 下载rasc工具和pack包,不过是在某盘下载,速度太慢,建议使用工具去GitHub下载:https://github.com/renesas/fsp/releases/tag/v4.2.0

dp.png

github.png

下载完毕后安装rasc工具、解压pack包,得到A4M2的svd文件

svd.png

至此,准备工作完成

开发环境搭建(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

list.png

rasc 工程配置

关于rasc的使用在软件的help中的 Quick Start Guide 很清楚

help.png

不过在使用中发现一个小细节,rasc的软件中貌似只能新建工程和导入e2studio工程,阅读入门文档得知对于cmake工程需要命令行来启动rasc配置现有的工程文件。

rasc.png

对于我这种懒癌患者,那么长的命令懒得敲。。所以写了一个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\""

right.png

编译、烧录工程

CMakeLists.txt 中配置 CMAKE_FIND_ROOT_PATH 变量指向安装的arm-none-eabi的bin目录

path.png

cmake生成ninja编译脚本

cmake.png

ninja 编译工程

ninja.png

pyocd烧录程序

download.png

导入到 vscode 并配置

直接在vscode中打开工程目录,vscode中的cmake插件可以直接接管代码补全等。

vscode.png

接下来编写工程文件,后缀为 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",
    /* 自定义 Shell */
    "terminal.integrated.profiles.windows": {},
    /* 默认 Shell */
    "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 标准 */
    "C_Cpp.default.cppStandard": "c++14",
    "C_Cpp.default.cStandard": "c99",
    /* c/cpp 宏 */
    "C_Cpp.default.defines": [],
    "C_Cpp.default.compilerPath": "D:/Maker/Console/arm-gcc/bin/arm-none-eabi-gcc.exe",
    /* c/cpp 包含 */
    "C_Cpp.default.includePath": ["${workspaceFolder}/**"],
    "C_Cpp.default.forcedInclude": [],
    // "C_Cpp.default.compileCommands": "${workspaceFolder}/build/compile_commands.json",
    "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": [
      {
        /* launch 任务名字 */
        "name": "RA4M2 pyocd dbg",
        /* cortex-debug */
        "type": "cortex-debug",
        /* 工作目录 */
        "cwd": "${workspaceRoot}",
        /* 调试对象 */
        "executable": "./build/CMakeFiles/FSP_Project.elf.dir/FSP_Project.elf",
        /* 请求种类 */
        "request": "launch",
        /* 入口点 */
        "runToEntryPoint": "main",
        /* 服务器种类 */
        "servertype": "pyocd",
        /* 目标芯片 */
        "targetId": "R7FA4M2AD",
        /* svd 路径 */
        "svdFile": "./tools/R7FA4M2AD.svd",
        "showDevDebugOutput": "both",
        /* 预执行任务 */
        "preLaunchTask": "build",
        /* pack 包目录 */
        "cmsisPack": "./tools/Renesas.RA_DFP.4.1.0.pack"
      }
    ]
  }
}

然后F5一键启动调试,在开始调试时,会自动调用工作区文件中的 preLaunchTask 指向的任务,也就是 ninja -C build 之后搭配Cortex-debug工具调用pyocd进行烧录与调试

dbg.png


回帖(2)

杨永胜

2023-2-21 14:20:21
楼主,你好,请问的 pyocd 是什么版本?我这边用的
```
▸ pyocd --version
0.34.3
```
按照你截图中的命令烧录,发现,提示不支持这个设备。
举报

杨永胜

2023-2-21 14:38:56
楼主,我之前少了一个步骤 你描述的 **pyocd 的安装、导入 pack 包**, 目前已经可以烧录,谢谢。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分