Win10/Win11安装和使用开源VSCode+GCC编译SYD881x BLE soc芯片的代码

1 搭建开源VSCode+GCC编译的环境的初衷

在嵌入式领域,Keil和IAR商业集成开发环境(IDE)普遍流行,使用开源软件显得较为麻烦,但使用商业集成IDE是要支付版权费和服务费的,所以不乏有很多人和小微企业在用开源的GCC编译工具,另外如果是做开源项目,使用商业IDE就不利于推广和学习。
微软推出了轻量级代码编辑器VSCode,工具插件非常丰富,编写和查看代码更为方便,所以将其和GCC搭配起来使用,有助于提高编写和编译代码的效率。

2 准备和安装VSCode、GCC 以及ARM-GCC交叉编译器

2.1 下载和安装VSCode代码编辑器软件

VSCode的官方介绍页面如下。
在这里插入图片描述
官方下载链接如下,选择Windows版本。
https://code.visualstudio.com/Download
在这里插入图片描述
按步骤安装完成后,在桌面有以下图标。
在这里插入图片描述
安装完成后,只有328MB,占硬盘的大小相对于Visual Studio老大哥小太多了。
在这里插入图片描述
VSCode软件开始页面如下。在这里插入图片描述
安装C/C++扩展插件。
在这里插入图片描述
安装.run扩展插件,可以编译C或C++程序,还生成可执行文件。
在这里插入图片描述
这里新建一个hello world的c文件,然后编译验证一下。

#include <stdio.h>

int main(void)
{
    printf("\nHello world.\n");

    printf("\nMy first C code is OK, see you next time.\n");

    return 0;
}

使用快捷键“Ctrl+Alt+N"执行或者使用右上角的三角形图标进行编译输出。
在这里插入图片描述
至此,VS Code就安装完成,可以编写查看C或C++代码了。

2.2 安装 MinGW-w64 GCC编译工具

下载链接如下:
https://sourceforge.net/projects/mingw-w64/files/

由于离线安装受网络原因影响,建议选择下面的离线版本安装。
在这里插入图片描述
也可以从这篇文章的网盘链接下载。
https://blog.csdn.net/hnlgzb/article/details/114228987
我把网盘链接复制到这里。
链接:https://pan.baidu.com/s/13ukGn27JEseCpJ2PokzEPg
提取码:x2ms
在这里插入图片描述

我选择的是“x86_64-8.1.0-release-posix-seh-rt_v6-rev0”版本。

下载完成后解压缩出来,下面是mingw64文件夹内的内容。
在这里插入图片描述
将整个mingw64文件夹复制到D:\Program Files (x86) 路径,然后在D:\Program Files (x86)\mingw64\bin中找到“mingw32-make.exe”并建立一个副本,然后将副本改名为“make.exe”。
在这里插入图片描述

2.3下载和安装ARM-GCC 交叉编译器

ARM-GCC 交叉编译器也是一款开源的工具,它是用于 C、C++ 和汇编编程的即用型开源工具套件。 GNU Arm 嵌入式工具链针对 32 位 Arm Cortex-A、Arm Cortex-M 和 Arm Cortex-R 处理器系列。 GNU Arm 嵌入式工具链包括 GNU 编译器 (GCC),可直接从 Arm 免费获得,用于在 Windows、Linux 和 Mac OS X 操作系统上进行嵌入式软件开发。

下载路径为:
https://developer.arm.com/downloads/-/gnu-rm
在这里插入图片描述
这里我选择无需安装的zip版本,解压后剪切到这个路径“D:\Program Files (x86)\gcc-arm-none-eabi-10.3-2021.10\bin”,这个路径等会配置环境变量要用到。
在这里插入图片描述

3 配置环境变量

右键点击"此电脑"图标,属性 -> 高级系统设置 -> 环境变量 -> Path ->编辑, 新建两个新的环境变量,将刚才安装的bin目录填入。

在这里插入图片描述

  • 执行 make脚本的 mingw32 的bin目录:D:\Program Files (x86)\mingw64\bin
  • 交叉编译器gcc-arm的 bin目录:D:\Program Files (x86)\gcc-arm-none-eabi-10.3-2021.10\bin

点击确定,即可完成配置,这样就可以使用这两个工具了。

4 使用VS Code+GCC工具编写和编译代码

4.1 验证VSCode是否能正常调用GCC和交叉编译工具

首先打开VS Code,然后打开代码所在的文件夹。
在这里插入图片描述
软件会自动加载路径中源码文件形成目录树,接着右击目录名,选择“在集成终端中打开”。
在这里插入图片描述
在这里插入图片描述
输入“make -v",然后点回车即可查看GNU的版本。

PS E:\Bluetooth\SYDTEK\SYD8811\Application_Code\GCC_Version\SYD8811_BLE_UART_TEST - 2022-10-18> make -v
GNU Make 4.2.1
Built for x86_64-w64-mingw32
Copyright (C) 1988-2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

输入“arm-none-eabi-gcc -v",然后点回车即可查看交叉编译器的版本。

PS E:\Bluetooth\SYDTEK\SYD8811\Application_Code\GCC_Version\SYD8811_BLE_UART_TEST - 2022-10-18> arm-none-eabi-gcc -v
Using built-in specs.
COLLECT_GCC=D:\Program Files (x86)\gcc-arm-none-eabi-10.3-2021.10\bin\arm-none-eabi-gcc.exe
COLLECT_LTO_WRAPPER=d:/program\ files\ (x86)/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/lto-wrapper.exe
Target: arm-none-eabi
Configured with: /mnt/workspace/workspace/GCC-10-pipeline/jenkins-GCC-10-pipeline-338_20211018_1634516203/src/gcc/configure --build=x86_64-linux-gnu --host=i686-w64-mingw32 --target=arm-none-eabi --prefix=/mnt/workspace/workspace/GCC-10-pipeline/jenkins-GCC-10-pipeline-338_20211018_1634516203/install-mingw --libexecdir=/mnt/workspace/workspace/GCC-10-pipeline/jenkins-GCC-10-pipeline-338_20211018_1634516203/install-mingw/lib --infodir=/mnt/workspace/workspace/GCC-10-pipeline/jenkins-GCC-10-pipeline-338_20211018_1634516203/install-mingw/share/doc/gcc-arm-none-eabi/info --mandir=/mnt/workspace/workspace/GCC-10-pipeline/jenkins-GCC-10-pipeline-338_20211018_1634516203/install-mingw/share/doc/gcc-arm-none-eabi/man --htmldir=/mnt/workspace/workspace/GCC-10-pipeline/jenkins-GCC-10-pipeline-338_20211018_1634516203/install-mingw/share/doc/gcc-arm-none-eabi/html --pdfdir=/mnt/workspace/workspace/GCC-10-pipeline/jenkins-GCC-10-pipeline-338_20211018_1634516203/install-mingw/share/doc/gcc-arm-none-eabi/pdf --enable-languages=c,c++ --enable-mingw-wildcard --disable-decimal-float --disable-libffi --disable-libgomp --disable-libmudflap --disable-libquadmath --disable-libssp --disable-libstdcxx-pch --disable-nls --disable-shared --disable-threads --disable-tls --with-gnu-as --with-gnu-ld --with-headers=yes --with-newlib --with-python-dir=share/gcc-arm-none-eabi --with-sysroot=/mnt/workspace/workspace/GCC-10-pipeline/jenkins-GCC-10-pipeline-338_20211018_1634516203/install-mingw/arm-none-eabi --with-libiconv-prefix=/mnt/workspace/workspace/GCC-10-pipeline/jenkins-GCC-10-pipeline-338_20211018_1634516203/build-mingw/host-libs/usr --with-gmp=/mnt/workspace/workspace/GCC-10-pipeline/jenkins-GCC-10-pipeline-338_20211018_1634516203/build-mingw/host-libs/usr --with-mpfr=/mnt/workspace/workspace/GCC-10-pipeline/jenkins-GCC-10-pipeline-338_20211018_1634516203/build-mingw/host-libs/usr --with-mpc=/mnt/workspace/workspace/GCC-10-pipeline/jenkins-GCC-10-pipeline-338_20211018_1634516203/build-mingw/host-libs/usr --with-isl=/mnt/workspace/workspace/GCC-10-pipeline/jenkins-GCC-10-pipeline-338_20211018_1634516203/build-mingw/host-libs/usr --with-libelf=/mnt/workspace/workspace/GCC-10-pipeline/jenkins-GCC-10-pipeline-338_20211018_1634516203/build-mingw/host-libs/usr --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --with-pkgversion='GNU Arm Embedded Toolchain 10.3-2021.10' --with-multilib-list=rmprofile,aprofile
Thread model: single
Supported LTO compression algorithms: zlib
gcc version 10.3.1 20210824 (release) (GNU Arm Embedded Toolchain 10.3-2021.10)

这两个工具都能在VS Code的终端栏读到版本信息,说明正常调用和编译了。

4.2 编译工程之前先准备Makefile

要调用GCC进行编译就要有命令,而Makefile就是包含所有编译操作的命令文件,Makefile文件指定了工程中哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。

我准备好了针对SYD881x的Makefile文件,下面介绍一下这个文件,在目录树可以找到它,单击即可打开查看,下面是使用的编译工具说明。
在这里插入图片描述
下面是依赖的外部库以及源文件的路径,如果新建了文件夹来存放源文件,需将头文件和源文件的文件夹名称添加到对应的位置。
在这里插入图片描述
列出工程要参与编译的源文件的名称,如果有新建的源文件,需要在添加到下面框起来这行的尾部。
在这里插入图片描述
Makefile文件确认无误后,下面就可以开始编译了。

4.3 使用make命令进行编译

在终端中输入make命令即可执行编译,在最后会生产elf,hex和bin文件。如果代码有问题,编译会出错,根据编译输出的信息查找对应的问题点。
在这里插入图片描述
另外为了方便打包,可以使用“make clean”将编译输出全部删除。

PS E:\Bluetooth\SYDTEK\SYD8811\Application_Code\GCC_Version\SYD8811_BLE_UART_TEST - 2022-10-18> make clean
'Removing entire out directory'
' '

至此,VS Code可以调用GCC完成编译并生产bin文件。

5 下载代码

使用Jlink连接SYD8811芯片并供电,然后打开SYDTEK Studio软件,UART栏选择"USB_ICE",在③的位置未显示“Ready”时,点②的位置“OPEN”按钮,“Ready”表示已连接,点击“Open FW File”按钮调取刚生成的bin文件,然后点击“Write to Flash”进行下载。
在这里插入图片描述
下载完成后,点击“Reset”按钮即可让SYD8811运行,就可以查看效果。

至此搭建开源编译环境的工作完成,并开源愉快编写自己的代码了。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值