查看: 709|回复: 1

【瑞萨RA4系列开发板体验】RA通用VSCode开发环境搭建并顺带...

[复制链接]

116

主题

133

帖子

3768

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3768
发表于 2023-2-7 17:22:54 | 显示全部楼层 |阅读模式

【瑞萨RA4系列开发板体验】RA通用VSCode开发环境搭建并顺带流水灯
作者:HonestQiao


瑞萨为开发者提供了多种开发工具,其中有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按照如下目录放置在当前用户根目录下:
另外,还需要安装编译烧录相关的工具:
安装时,安装路径中最好不要有空格,以免存在潜在问题:
注意要勾选下面的选项:
安装完成后,开黑窗口,检查安装是否成功:
如果找不到的话,那么注销一下当前用户,再登录即可。

  • macOS:

安装命令:
  1. brew install arm-none-eabi-gcc
  2. arm-none-eabi-gcc -v
复制代码

  • Ubuntu:

  1. sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa
  2. sudo apt-getupdate
  3. sudo apt-get install gcc-arm-embedded

  4. arm-none-eabi-gcc -v
复制代码
  • 其他Linux:使用各自系统的包管理工具进行安装
  • cmake和make
macOS/Linux上面,一般都安装了,不单说了。
Windows上面,需要先下载,再安装:
安装路径,也最好没有空格。
安装完成后,同样检测一下安装是否成功,不然就注销重新登录:
然后下载make:
  • 安装目录:和cmake同一个目录,具体如下:
  • pyocd:
安装pythod3后,直接通过pip安装:
Windows版本下载:[color=rgb(12, 147, 228) !important]Python Releases for Windows | Python.org

maxOS/Linux:使用对应的包管理软件安装即可。
  1. # 安装,如果提示没有python3,那就换用python
  2. python3 -m pip install -U pyocd

  3. # 查看版本
  4. 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:
  1. cd \Projects\Renesas\Workspace\Test_Project
  2. cmake -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=cmake/gcc.cmake -H. -B./build
  3. cmake --build build
复制代码
macOS、Linux:
  1. cd ~/Projects/Renesas/Workspace/Test_Project
  2. cmake -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=cmake/gcc.cmake -H. -B./build
  3. 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打开工程所在的目录,然后进行配置。
重点在于如下三个文件的配置:
  • .vscode/c_cpp_properties.json:
    主要用于配置包含文件的路径,不然代码里面会有波浪线提示有些东西找不到。

  1. {
  2.   "configurations": [
  3.     {
  4.       "name": "Generic",
  5.       "configurationProvider": "ms-vscode.cmake-tools",
  6.       "includePath": [
  7.         "./ra/board/ra4m2_ek/",
  8.         "./ra/fsp/inc/",
  9.         "./ra/fsp/inc/api/",
  10.         "./ra/fsp/inc/instances/",
  11.         "./ra/fsp/inc/",
  12.         "./ra/fsp/src/bsp/cmsis/Device/RENESAS/Include/",
  13.         "./ra/fsp/src/bsp/mcu/all/",
  14.         "./ra/fsp/src/bsp/mcu/ra4m2/",
  15.         "./ra/arm/CMSIS_5/CMSIS/Core/Include/",
  16.         "./ra_gen/",
  17.         "./ra_cfg/fsp_cfg/bsp/",
  18.         "./ra_cfg/fsp_cfg/"        
  19.       ],
  20.       "defines": [
  21.         "_DEBUG",
  22.         "UNICODE",
  23.         "_UNICODE"
  24.       ],
  25.       "intelliSenseMode": "clang-x64",
  26.       "compilerArgs": [],
  27.       "browse": {
  28.         "path": [],
  29.         "limitSymbolsToIncludedHeaders": true
  30.       }
  31.     }
  32.   ],
  33.   "version": 4
  34. }
复制代码
  • .vscode/tasks.json:
    主要用于配置相关的快捷路径,除了ARMGCC_DIR和Renesas.RA_DFP.4.1.0.pack,其他的一般不用配置。

  1. {
  2.     // See https://go.microsoft.com/fwlink/?LinkId=733558
  3.     // for the documentation about the tasks.json format
  4.     "version": "2.0.0",
  5.     /*"options": {
  6.         "cwd": "${workspaceFolder}/build"
  7.     },*/
  8.     "options": {
  9.         "env": {
  10.             "ARMGCC_DIR": "/usr/local",  // Windows下面根据安装路径设置
  11.             "PATH": "/usr/local/bin:${env:PATH}" //Windows下面直接欧注释掉
  12.         }
  13.      },
  14.     "tasks": [
  15.         {
  16.             "label": "_makebuildfolder",
  17.             "type": "shell",
  18.             "command": "mkdir",//Windows下面改为dir
  19.             "args": [
  20.                 "-p",//Windows下面直接注释掉
  21.                 ""${workspaceFolder}""
  22.             ],
  23.             "problemMatcher": [],
  24.             "group": "none"
  25.         },
  26.         {
  27.             "label": "env",
  28.             "type": "shell",
  29.             "command": "env",  //Windows下面改为set
  30.             "args": [],
  31.             "options": {
  32.                 "cwd": "${workspaceFolder}"
  33.             },
  34.             "problemMatcher": []
  35.         },
  36.         {
  37.             "label": "cmake",
  38.             "type": "shell",
  39.             "command": "cmake",
  40.             "args": [
  41.                 "-G","Unix Makefiles",
  42.                 "-DCMAKE_TOOLCHAIN_FILE=cmake/gcc.cmake",
  43.                 "-H.",
  44.                 "-B./build"
  45.             ],
  46.             "options": {
  47.                 "cwd": "${workspaceFolder}"
  48.             },
  49.             "problemMatcher": []
  50.         },
  51.         {
  52.             "label": "clean",
  53.             "type": "shell",
  54.             "command": "rm",//Windows下面rmdir
  55.             "args": [
  56.                 "-rf",  //Windows下面"/s","/q".
  57.                 "./build"  //Windows下面改./build为build
  58.             ],
  59.             "options": {
  60.                 "cwd": "${workspaceFolder}"
  61.             },
  62.             "problemMatcher": []
  63.         },
  64.         {
  65.             "label": "make",
  66.             "type": "shell",
  67.             "command": "cmake",
  68.             "args": [
  69.                 "--build",
  70.                 "build"
  71.             ],
  72.             "options": {
  73.                 "cwd": "${workspaceFolder}"
  74.             },
  75.             "problemMatcher": []
  76.         },
  77.         {
  78.             "label": "flash",
  79.             "type": "shell",
  80.             "command": "pyocd",
  81.             "args": [
  82.                 "flash",
  83.                 // "--erase",
  84.                 // "chip",
  85.                 "--target",
  86.                 "r7fa6m5bh",   // r7fa4m2ad 、 r7fa6m5bh
  87.                 "--pack",
  88.                 "Renesas.RA_DFP.4.1.0.pack文件的绝对路径",
  89.                 "./build/CMakeFiles/FSP_Project.elf.dir/Test_Project.elf"
  90.             ],
  91.             "options": {
  92.                 "cwd": "${workspaceFolder}"
  93.             },
  94.             "problemMatcher": []
  95.         },
  96.         {
  97.             "label": "Build",
  98.             "dependsOrder": "sequence",
  99.             "dependsOn": [
  100.                 "_makebuildfolder",
  101.                 "env",
  102.                 "cmake",
  103.                 "make"
  104.             ],
  105.             "problemMatcher": []
  106.         },
  107.         {
  108.             "label": "Build_Flash",
  109.             "dependsOrder": "sequence",
  110.             "dependsOn": [
  111.                 "Build",
  112.                 "flash",
  113.             ],
  114.             "problemMatcher": []
  115.         }        
  116.     ]
  117. }
复制代码
  • .vscode/launch.json文件:
    主要配置R7FA4M2AD.svd、Renesas.RA_DFP.4.1.0.pack及armToolchainPath的路径:

  1. {
  2.     "version": "0.2.0",
  3.     "configurations": [
  4.         {
  5.             "name": "RA Debug with PyOCD",            
  6.             "cwd": "${workspaceRoot}",
  7.             "executable": "./build/CMakeFiles/FSP_Project.elf.dir/FSP_Project.elf",
  8.             "request": "launch",
  9.             "type": "cortex-debug",
  10.             "runToEntryPoint": "main",
  11.             "servertype": "pyocd",
  12.             "targetId":"r7fa4m2ad", // r7fa4m2ad 、 r7fa6m5bh
  13.             "armToolchainPath": "/usr/local/bin/",
  14.             "svdFile": "SVD/R7FA4M2AD.svd的绝对路径",   // R7FA4M2AD.svd  、 R7FA6M5BH.svd
  15.             "showDevDebugOutput": "both",
  16.             "preLaunchTask": "Build",
  17.             "cmsisPack": "Renesas.RA_DFP.4.1.0.pack的绝对路径"
  18.         }
  19.     ]
  20. }
复制代码
然后,就可以在VSCode中运行对应的任务了。
现将板子用仿真调试器鱼电脑连接,具体接口位置如下:
连接后如下:
然后使用pyocd检查:
  1. 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里面控制他们了:
  1. void hal_entry(void)
  2. {
  3.     unsigned int c = 0;
  4.     bsp_io_port_pin_t pins[] = {
  5.         BSP_IO_PORT_04_PIN_15,
  6.         BSP_IO_PORT_04_PIN_05,
  7.         BSP_IO_PORT_04_PIN_05
  8.     };

  9.     /* TODO: add your own code here */
  10.     R_BSP_PinAccessEnable();
  11.     while(1) {
  12.         for(unsigned int i=0;i<sizeof(pins)/sizeof(bsp_io_port_pin_t);i++) {
  13.             if(i==c) {
  14.                 R_BSP_PinWrite(pins[i], BSP_IO_LEVEL_HIGH);
  15.             } else {
  16.                 R_BSP_PinWrite(pins[i], BSP_IO_LEVEL_LOW);
  17.             }
  18.         }
  19.         R_BSP_SoftwareDelay(100, BSP_DELAY_UNITS_MILLISECONDS);
  20.         c++;
  21.         if(c>=3) {
  22.             c = 0;
  23.         }
  24.     }

  25. #if BSP_TZ_SECURE_BUILD
  26.     /* Enter non-secure code */
  27.     R_BSP_NonSecureEnter();
  28. #endif
  29. }
复制代码
具体文件如下:
再次调用Build_Flash任务,就会重新编译烧录,板子上的三颗LED,就会欢快的流水点亮嘞:
【重点】
本项目实例和配置的源码分享:[color=rgb(12, 147, 228) !important]https://gitee.com/honestqiao/Renesas_RA_Template_VSCode


回复

使用道具 举报

3

主题

195

帖子

1191

积分

金牌会员

Rank: 6Rank: 6

积分
1191
发表于 2023-3-14 10:57:46 | 显示全部楼层

不错,学习一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

用户排行榜

RA助手

主题: 116帖子:133精华:0

RA_Lance

主题: 92帖子:132精华:9

lugl

主题: 38帖子:126精华:0

xujiwei263

主题: 16帖子:73精华:0

books咦

主题: 11帖子:11精华:2

Juggernaut

主题: 9帖子:95精华:0
快速回复 返回顶部 返回列表