搜索
bottom↓
回复: 5
打印 上一主题 下一主题

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

[复制链接]

出0入102汤圆

跳转到指定楼层
1
发表于 2022-10-19 11:49:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 N_EMBED 于 2022-10-19 11:59 编辑

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文件,然后编译验证一下。
  1. #include <stdio.h>

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

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

  6.     return 0;
  7. }
复制代码

使用快捷键“Ctrl+Alt+N"执行或者使用右上角的三角形图标进行编译输出。


至此,VS Code就安装完成,可以编写查看C或C++代码了。


2.2 安装 MinGW-w64 GCC编译工具

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

由于离线安装受网络原因影响,建议选择下面的离线版本安装。

这里提供一个网盘下载链接。
链接: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的版本。
  1. PS E:\Bluetooth\SYDTEK\SYD8811\Application_Code\GCC_Version\SYD8811_BLE_UART_TEST - 2022-10-18> make -v
  2. GNU Make 4.2.1
  3. Built for x86_64-w64-mingw32
  4. Copyright (C) 1988-2016 Free Software Foundation, Inc.
  5. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
  6. This is free software: you are free to change and redistribute it.
  7. There is NO WARRANTY, to the extent permitted by law.
复制代码

输入“arm-none-eabi-gcc -v",然后点回车即可查看交叉编译器的版本。
  1. PS E:\Bluetooth\SYDTEK\SYD8811\Application_Code\GCC_Version\SYD8811_BLE_UART_TEST - 2022-10-18> arm-none-eabi-gcc -v
  2. Using built-in specs.
  3. COLLECT_GCC=D:\Program Files (x86)\gcc-arm-none-eabi-10.3-2021.10\bin\arm-none-eabi-gcc.exe
  4. 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
  5. Target: arm-none-eabi
  6. 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
  7. Thread model: single
  8. Supported LTO compression algorithms: zlib
  9. 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”将编译输出全部删除。
  1. PS E:\Bluetooth\SYDTEK\SYD8811\Application_Code\GCC_Version\SYD8811_BLE_UART_TEST - 2022-10-18> make clean
  2. 'Removing entire out directory'
  3. ' '
复制代码

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


5 下载代码

使用某link连接SYD8811芯片并供电,然后打开SYDTEK Studio软件,UART栏选择"USB_ICE",在③的位置未显示“Ready”时,点②的位置“OPEN”按钮,“Ready”表示已连接,点击“Open FW File”按钮调取刚生成的bin文件,然后点击“Write to Flash”进行下载。

下载完成后,点击“Reset”按钮即可让SYD8811运行,就可以查看效果。

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


上传一份使用VSCode+GCC编译的代码。


参考了坛友qwe2231695的文章:
https://www.amobbs.com/forum.php?mod=viewthread&tid=5747048&highlight=vscode

有需要用到开源编译器的坛友可以参考一下,想用SYD881x做开源项目的可以交流交流,有实际项目的,免费送5个SYD8810芯片样品。





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入12汤圆

2
发表于 2022-10-21 10:41:07 | 只看该作者
前几天,为了验证单片机的某段程序,找了半天C编译环境,CFree/DEV.....
看了,楼主介绍,才看了两步 --- 看到.run----就能运行C了。

出0入102汤圆

3
 楼主| 发表于 2022-10-21 11:06:17 | 只看该作者
kv2004 发表于 2022-10-21 10:41
前几天,为了验证单片机的某段程序,找了半天C编译环境,CFree/DEV.....
看了,楼主介绍,才看了两步 ---  ...
(引用自2楼)

Run Code还可以编译运行Python和GO等多种语言,确实方便,不用安装动辄上几G的Visual Studio,
编译C或C++的话,也可以用绿色版VC6.0,好像也是三百M左右,Eric在隔壁坛(armbbs)发过的

出20入0汤圆

4
发表于 2022-10-21 16:36:31 | 只看该作者
这个软件还是那个问题,特别是下载插件,经常无法下载,没魔法的话目前不想使用

出0入102汤圆

5
 楼主| 发表于 2022-10-21 17:20:53 | 只看该作者
cantonguy 发表于 2022-10-21 16:36
这个软件还是那个问题,特别是下载插件,经常无法下载,没魔法的话目前不想使用 ...
(引用自4楼)

目前我安装VS Code这几个插件都还好,很快安装好,也不是说这个软件很强,只是觉得方便且轻量,专业的活还是专业的工具来干比较好。

出0入0汤圆

6
发表于 2022-11-9 10:19:26 | 只看该作者
谢谢,正在探索
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-20 12:15

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表