本篇文章来自极术社区与兆易创新组织的GD32F427开发板评测活动,更多开发板试用活动请关注极术社区网站。作者:HonestQiao

我日常的工作环境使用的是macOS系统或者Linux系统,万不得已才使用Windows。
GD32官方提供了Keil MDK-ARM和IAR两款工具的支持,但是没有提供对ARM-GCC的支持配置文件。而Keil MDK-ARM和IAR,又绑死在了Windows系统,这个真是一个悲伤的故事呀!

经过查阅资料,请教大佬,一番学习研究之后,顺利搞定了macOS环境中的开遍烧调。处理过程,Linux环境同样适用。

学习研究过程中,主要参考了三位大佬的如下文章,深表感谢:

下面为搭建的步骤:

  1. 下载官方提供的开发库:
    1. 地址:https://aijishu.com/a/1060000…
    2. 开发板源码套件:GD32F4xx_Demo_Suites,并解压,具体目录如下:

      1. 其中我们需要的是:
        1. GD32F4xx_Firmware_Library为GD32F4xx标准固件库。适用于GD32F4xx系列MCU,与Cortex-M微控制器软件接口标准(CMSIS)兼容。固件库包括程序、数据结构和宏定义,覆盖所有集成外设的特征,并包括了全部相关驱动和示例程序。
        2. GD32427V_START_Demo_Suites为GD32F427V_START开发板套件演示代码
      1. 开发环境的源码库配置,是按照 GD32F4xx_Demo_Suites 的结构进行配置的,在自己的环境中,可以根据实际需要修改。
  1. 下载我已经打包好的模板工程:

    1. 地址:https://gitee.com/honestqiao/…
    2. 下载后,将该模板工程目录放置到 01_GPIO_Running_LED 同级目录

    1. 说明:
      1. 该工程的基础文件,来自 01_GPIO_Running_LED
      2. 支持文件,放置在 support_files 中
        1. toMakefile.py:用于生成Makefile文件
        2. Makefile.template:Makefile模版
        3. startup_gd32f4xx.s:从RTT中提取并根据GD32F427V修改
        4. GD32F427VK_FLASH.ld:参考RTT中并根据GD32F427V修改
        5. GD32F4xx.svd:从GD32F4xx的Keil5 Pack中提取并修改
        6. dot_vscode:vscode配置文件,本项目根目录中.vscode为该目录拷贝改名过去的
      1. 如果是自己的工程,则将 support_files 目录拷贝过去,将 dot_vscode 拷贝为.vscode即可
  1. pyocd 环境检查:

    1. 安装pycode:pip3 install pyocd
    2. 安装GD32F427VK支持包:
      1. pyocd pack find gd32f427v

      1. 从Keil工程中的工程属性可以得知,GD32F427V_START为GD32F427VK
      2. 安装支持包:pyocd pack install GD32F427VK
    1. 检查设备连接
      1. 将设备的GD-Link口,与电脑连接
      2. 检查是否识别:pyocd list

    1. 修改pack包:
      1. 默认的pack包,提供的svd文件,有一点点小问题,导致在flash或者debug的时候,会出现如下的问题:

        1. 在github和google寻找过该问题,目前无解:
          1. Exception in thread load-svd when flash app.bin to target. #1181
          2. Pyocd flash error for GD32F350G8 - Memory transfer fault @ 0x08000000-0x0800001f #1396
      1. 不过该问题,并不会影响实际的flash和debug,但是看着就不爽,经过研究,使用如下的方法解决:
        1. 找到对应目录:find /usr -name "cmsis-pack-manager"
        2. 然后处理:
          1. # 进入GD32F4xx_DFP目录 cd /path/to/cmsis-pack-manager/GigaDevice/GD32F4xx_DFP # 查看当前的pack文件,后面的命令,请使用此时看到的 ls *.pack # 修改为备份 mv 3.0.3.pack 3.0.3.pack.bak # 解压 unzip 3.0.3.pack.bak # 查看首行 head -1 SVD/GD32F4xx.svd | hexdump | head -1 # 如果显示:0000000 20 20 3c 开头的信息,则需要使用sed处理;关键是20 20 # 如果显示:0000000 3c 开头的信息,则不需要使用sed处理 # 使用sed处理20 20 # macOS sed -i “” ‘1s/^ *//gp’ SVD/GD32F4xx.svd # Linux sed -i ‘1s/^ *//gp’ SVD/GD32F4xx.svd # 查看处理结果 head -1 SVD/GD32F4xx.svd | hexdump | head -1 # 应返回:0000000 3c 开头的信息 # 打包 zip -r 3.0.3.pack Device Flash GigaDevice.GD32F4xx_DFP.pdsc SVD # 删除不用的文件 rm -rf Device Flash GigaDevice.GD32F4xx_DFP.pdsc SVD
  1. arm gcc 环境检查:

    1. 安装arm gcc:下载地址:https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads
    2. 检查安装情况:/usr/local/bin/arm-none-eabi-gdb -v,如果安装在其他路径,请更换为实际的路径。

  1. 使用VSCode打开工程配置arm gcc路径:
    1. support_files/Makefile.template:

    1. vscode配置:.vscode/launch.json、.vscode/tasks.json

  1. 开始进行开发、编译、烧录、调试:
    1. 了解该环境系统的任务命令:
      从菜单 - 终端 -运行任务,或者从命令面板中执行:

命令列表说明:

      • _makebuildfolder: 创建编译目录
      • env:设置环境
      • clean: 清理
      • create_Makefile: 生成Makefile文件
      • make: 编译
      • Build:自动执行_makebuildfolder、env、make
      • flash:烧录
    1. 生成Makefile文件:
      首次打开工程,需要调用 create_Makefile 来生成Makefile文件;
      如果增减了文件,也需要调用一次;
      其他时候,则无需调用。
      具体调用结果如下:

    1. 编译代码:
      通常,只需要调用 Build 任务即可。
      执行后,会生成elf文件:

    1. 烧录elf文件:
      调用flash命令即可,执行结果如下:

    1. 调试:
      先从左则面板中,进入扩展,安装cortex-debug:

再到代码中合适的位置,先打上断点,然后从左则面板,启动调试:

启动后,将会在main的入口处停住,点击右上角的调试操作面板中的||>,继续运行,将会在合适的断点处停留。

经过上述步骤,现在就可以在macOS/Linux系统中,愉快的进行开发、编译、烧录、调试了。

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐