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

  • Post author:
  • Post category:其他




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文件,以下内容请根据情况修改。

erase
loadfile C:\Users\taylor\Desktop\gd103-gcc - only gnu\build\gd103.hex 0x08000320
r
qc

其中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.jlink
TIMEOUT /T 2

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

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



版权声明:本文为qq_31785357原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。