HonestQiao · 2022年12月01日 · 天津市

【GD32F427开发板试用】macOS/Linux系统开发环境搭建(开发、编译、烧录、调试)

我日常的工作环境使用的是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. image.png
      2. 其中我们需要的是:

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

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

      1. image.png
    3. 说明:

      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为该目录拷贝改名过去的
      3. 如果是自己的工程,则将 support_files 目录拷贝过去,将 dot_vscode 拷贝为.vscode即可
  3. pyocd 环境检查:

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

      1. pyocd pack find gd32f427v

        1. image.png
      2. 从Keil工程中的工程属性可以得知,GD32F427V_START为GD32F427VK
      3. 安装支持包:pyocd pack install GD32F427VK
    3. 检查设备连接

      1. 将设备的GD-Link口,与电脑连接
      2. 检查是否识别:pyocd list

        1. image.png
    4. 修改pack包:

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

        1. image.png
        2. 在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
      2. 不过该问题,并不会影响实际的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
  4. arm gcc 环境检查:

    1. 安装arm gcc:下载地址:https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads
    2. 检查安装情况:/usr/local/bin/arm-none-eabi-gdb -v,如果安装在其他路径,请更换为实际的路径。
      image.png
  5. 使用VSCode打开工程配置arm gcc路径:

    1. support_files/Makefile.template:image.png
    2. vscode配置:.vscode/launch.json、.vscode/tasks.json
      image.png
      image.png
  6. 开始进行开发、编译、烧录、调试:

    1. 了解该环境系统的任务命令:
      从菜单 - 终端 -运行任务,或者从命令面板中执行:
      image.png
      image.png
      命令列表说明:

      • _makebuildfolder: 创建编译目录
      • env:设置环境
      • clean: 清理
      • create_Makefile: 生成Makefile文件
      • make: 编译
      • Build:自动执行_makebuildfolder、env、make
      • flash:烧录
    2. 生成Makefile文件:
      首次打开工程,需要调用 create_Makefile 来生成Makefile文件;
      如果增减了文件,也需要调用一次;
      其他时候,则无需调用。
      具体调用结果如下:
      image.png
    3. 编译代码:
      通常,只需要调用 Build 任务即可。
      执行后,会生成elf文件:
      image.png
    4. 烧录elf文件:
      调用flash命令即可,执行结果如下:
      image.png
    5. 调试:
      先从左则面板中,进入扩展,安装cortex-debug:
      image.png

    再到代码中合适的位置,先打上断点,然后从左则面板,启动调试:
    image.png
    启动后,将会在main的入口处停住,点击右上角的调试操作面板中的||>,继续运行,将会在合适的断点处停留。

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

推荐阅读
关注数
10711
内容数
187
中国高性能通用微控制器领域的领跑者兆易创新GD系列芯片技术专栏。
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息