> 文档中心 > GD32F103移植rt-thread,同时采用GCC编译

GD32F103移植rt-thread,同时采用GCC编译

gd103+gnu+rt-thread

  • gd103+gnu+rt-thread
    • VSODE的安装
    • 编译环境的搭建
    • 移植1个GD32工程
      • 启动文件
      • 链接脚本文件
      • makefile文件
    • rt-thread移植
    • 编译
    • 烧录

gd103+gnu+rt-thread

本文旨在使用makefile管理嵌入式单片机工程,程序编辑器采用VSCODE或其他形式,编译器采用arm-none-eabi-gnu编译器,同时在工程移植支持rtos,采用比较流行的rt-thread,本文借鉴了网络上大量资源,可以算是个整合,仅做开发参考使用。

VSODE的安装

vscode是微软的程序编辑器,插件比较多,对于写代码,调试代码还是能提高效率的:

  1. 程序下载 :https://code.visualstudio.com/;,选择在这里插入图片描述

  2. 安装时请勾选以下几个按钮,这样下次就可以从文件夹直接打开工程了;
    在这里插入图片描述

3.安装完毕后,建议在商店中搜索 Chinese (Simplified) Language Pack for Visual Studio Code 插件,这个是汉化插件,其余插件看需求安装。安装完毕后,重启应用,页面汉化完成。

编译环境的搭建

编译环境可以采用windows加MinGW,同时本地配置ARM GCC交叉编译工具链的方式,但是windows的shell不符合开发习惯,本文不做探讨,采用虚拟机加windows主机方案太重量级,本文探讨wsl+windows的方式搭建开发环境。
需要是win10系统
win10版本至少是2004
主板需要开启虚拟化支持
主板需要开启虚拟化支持
关于wsl2的安装,请参考文章https://blog.csdn.net/dangelzjj/article/details/109267163
1.Ubuntu换源:此步骤请参考文章WSL换源
2.编译器安装:执行

$ sudo  apt-get update $ sudo apt-get install libmpc3$ sudo apt-get install gcc-arm-none-eabi$ sudo apt install make

3.测试下,出现以下内容,正常。
在这里插入图片描述

$ sudo  apt-get update $ sudo apt-get install libmpc3$ sudo apt-get install gcc-arm-none-eabi$ sudo apt install make

移植1个GD32工程

移植工程,需要重点关注启动文件,
.s汇编文件
.ld链接脚本文件
makefile管理make文件
已经移植好的工程,请参考实例https://gitee.com/lgkgkfg/gd103-gnu-rt-thread

启动文件

启动文件可直接用stmcube生成的文件修改,比如需要用GD32F103的,可以直接修改STM32F103的启动文件。
一般生成的文件不建议直接用,需要修改中断向量表名称,STM32和GD的中断向量名称有差异,但是偏移地址相同。
更多细节请参考实例中的 startup_gd32f103xb.s在这里插入图片描述

链接脚本文件

链接脚本文件可直接用stmcube生成的文件修改,可不做修改。

makefile文件

makefile文件用cube生成的文件做简单修改,因为修改了主芯片类型,同时有增添了rt-thread,需要修改makefile的包含路径、宏定义与启动文件选项,详细还是参考实例Makefile

rt-thread移植

rt-thread移植主要完成 \bsp,\include,\libcpu,\src几个目录的移植即可,注意,在移植 context_gcc.S文件时需要将此文件重命名为context_gcc.s。
根据目录架构修改makefile。

编译

打开vscode,打开工程。
新建一个终端。
执行

$ bash$ make -j8

会生成一个build文件夹,里面有生成的bin文件。

烧录

烧录可采用segger j-flash烧录,但是此法需要每次都打开更新bin文件,本文采用烧录脚本完成。

  1. 新建1个burn文件夹,在里面新建以下两个文件夹。

      ├── burn│   ├── download.jlink│   └── jlinkload.bat
  2. download.jlink
    此文件用用于装载bin文件,以下内容请根据情况修改。

eraseloadfile C:\Users\taylor\Desktop\gd103-gcc - only gnu\build\gd103.hex 0x08000320rqc

其中bin的路径需要修改成本机地址。

C:\Users\taylor\Desktop\gd103-gcc - only gnu\build\gd103.hex
  1. jlinkload.bat
    此文件用用于连接jlink,以下内容请根据情况修改。
cd c:\cd Program Files (x86)\SEGGER\JLink\.\JLink.exe  -autoconnect 1 -device GD32F103RC -if swd -speed 1000 -commandfile C:\Users\taylor\Desktop\gd103-gcc - only gnu\burn\download.jlinkTIMEOUT /T 2

其中以下地址路径请修改成本机地址。

cd Program Files (x86)\SEGGER\JLink\C:\Users\taylor\Desktop\gd103-gcc - only gnu\burn\download.jlinkqc
  1. 新建一个bat脚本,用于windows下调用,放在工程最顶层文件夹,内容如下,命名为 burn.bat。
./burn/jlinkload.bat
  1. 下载,直接再新建个终端,在windows下执行即可
 .\burn.bat