8093|9

862

帖子

2

TA的资源

纯净的硅(初级)

楼主
 

vscode 开发STM32流程总结 [复制链接]

 
本帖最后由 wo4fisher 于 2019-9-26 20:22 编辑

此内容由EEWORLD论坛网友wo4fisher原创,如需转载或用于商业用途需征得作者同意并注明出处

vscode 开发STM32流程总结 

图裂了,文末有pdf版,一样的。

目 录

一、     工具集下载... 3

1.1、   vs code下载... 3

1.2、   clang下载... 3

1.3、   git下载... 4

1.4、   openocd下载... 4

1.5、   arm-none-eabi-gcc下载... 5

1.6、   arm的交叉编译工具集,GNU toolchain下载... 5

1.7、   cubemx下载... 5

1.8、   st cubeprogrammer下载... 5

1.9、   gnu-mcu-eclipse下载... 5

1.10、   参考教程... 6

二、     工具安装注意事项... 6

2.1    vscode. 6

2.2    clang/LLVM... 6

2.3    git 6

2.4    Openocd. 6

2.5    arm-none-eabi-gcc. 6

2.6    cubemx. 7

2.7    gun mcu eclipse插件... 7

2.8    stm32cubeprogrammer 7

三、     软件安装检查... 7

四、     Cubemx生成独立工程... 8

4.1       建立工程... 8

4.2       使用vscode打开工程... 10

五、     Vscode配置... 10

5.1       添加配置文件... 11

六、     连接测试... 13

6.1       在终端使用stm32cubeprogrammer连接stm32. 13

6.2    Stlink连接stm32芯片测试:... 14

6.3    Makefile修改... 14

七、     Vscode下json文件配置... 15

7.1    c_cpp_properties.json文件... 15

7.2    launch.json. 16

7.3    tasks.json. 17

附件(命令行下载程序代码):... 18

 

 

 

 

 

 

使用vscode开发stm32实战

Vscode+clang+openocd+gcc-arm-none-eabi+cubemx+stlink+gdb

开源越来越强,传统开发软件授权壁垒,是这个向导的主因。

学习新知识、天天向上,生命在于折腾,是次因。

习惯了windows下傻瓜式的IED环境,对linux有恐惧,想战胜这份恐惧。所以结合网上丰富的非正规教程,就成了这篇备忘录。

  1. vs code下载

源于微软的一款文本编辑器,由于免费和丰富的插件生态,主要用来程序编写、调试。

软件链接https://code.visualstudio.com/Download

安装过程windows风格,注意有个复选框,添加“右键打开文件和文件夹”选项即可。

  1. clang下载

其另一个名字交LLVM,用于提供语法补全代码格式化等功能,正常完成安装后将软件的安装目录下的bin文件夹设置进入环境变量PATH中。

链接:http://releases.llvm.org/9.0.0/  

后边是版本号,直接修改版本号即可进入对应版本的下载链接。进入网页后根据自己系统和需求下载对应的文件。我直接下载了exe安装包。安装后添加bin目录到系统path环境变量。

  1. git下载

提供Git支持和MINGW64指令终端。我主要用git带的终端了,名叫bash.exe

官网下载链接:https://gitforwindows.org/

  1. openocd下载

为什么牛X的都是老外,是一个学校的开源项目,十来年了,它的进化版本叫visualGDB,好像是,收费。提供一个pc和调试器之间的一个接口--gdb服务。用keil哪有这么多事儿。这个文件下载下来不需要安装,直接放到一个文件夹下,bin目录添加系统path环境变量就行。

下载链接:http://gnutoolchains.com/arm-eabi/openocd/(还有好多其他的工具也在这里)(有的给的是这个链接,这个里边的是源码,还需要自己编译。https://sourceforge.net/就是这里)

  1. arm-none-eabi-gcc下载
  2. arm的交叉编译工具集,GNU toolchain下载

下载链接:https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads

我下载的gcc-arm-none-eabi-8-2019-q3-update-win32.exe这个。

  1. 链接已隐藏,如需查看请登录或者注册

    1. 参考教程

    其他参考教程:https://www.jianshu.com/u/b1ffe963c188

                           https://blog.csdn.net/zhengyangliu123

    写的比较好的两位博主。

                        https://www.brobwind.com/archives/1291(有关gdb和openocd的)

    1. vscode

     添加“右键打开文件和文件夹”选项,安装好后添加一些常用的插件。

    Chinese (Simplified) Language Pack for Visual Studio Code    中文界面

    c/c++

    c/c++ clang command adapter

    c/c++ snippets

    c++ intellisense

    Chinese language… vsc汉化

    Cortex-debug (不在本教程范围,后边再研究,也可以用于调试)

    Cortex-debugdevice support

    Gbk2utf8

    Visual studio intellicode 语法支持、智能补全、颜色            

    1.  clang/LLVM  

    bin目录添加到环境变量

    1.  git

    正常安装 在vsc中使用它的终端

    1. Openocd

    解压后放入自定义目录,然后其bin目录添加到环境变量

    1.  arm-none-eabi-gcc

    添加“右键打开文件和文件夹”选项

    1. cubemx

    安装好后,下载相应STM32芯片的pack包

    1. gun mcu eclipse插件

    解压到自定义文件夹,并添加bin目录到系统环境变量

    1. stm32cubeprogrammer

    安装好后,将STM32_Programmer_CLI.exe所在目录添加至系统环境变量。

    仅供参考,系统环境变量如下:

    Win+R 输入cmd,打开终端窗口,验证make、arm-none-eabi-gcc、openocd功能。正常查出版本号,说明正确安装。随便一个终端工具都可以用。

    1. 建立工程

    建工程的过程就略了,选择生成的工程类型:makefile

    完成之后,选择 openfolder

    生成的文件夹+文件如下(自动生成了makefile):

    然后再该文件夹下,shift+右键,在弹出的菜单中选择git bash 或者 在此处打开powershell窗口,输入  make -j4

      

     

    见到如上的信息,说明已配置好make环境,并生成了正常的可用的程序。

    1. 使用vscode打开工程

    在工程文件夹空白处右键,选择“open with code

    在下边箭头所指向的窗口选择 terminal,然后输入make,正常的话,回正确输出编译过程和最后输出elf文件、hex文件、bin文件。

    那么使用vscode开发stm32已经迈出了成功的第一步,剩下还有99步。

    Vscode配置json文件实现编译、下载、硬件复位、调试等功能

    1. 添加配置文件

    默认情况下,工程下是不含.vscode的文件夹的,需要在vscode下生成这样的文件或者直接从别处拷贝一份过来。

    步骤:ctrl+shift+p,输入tasks,选择 configure task,然后选择C/C++:clang.exe……,这时候vsc会自动创建文件夹,并生成tasks.json模板文件,后期进行修改即可。

    再次使用ctrl+shift+p,输入debug,选择open launch.json,然后选择C++…,结果会生成一个launch.json的文件。

    同样的方式输入 c c++,找到图示的选择或者设置都可以,最终生成一个c_cpp_properties.json的文件。

    1.  在终端使用stm32cubeprogrammer连接stm32

      主要是使用它的STM32_Programmer_CLI.exe这个命令行工具。当然,安装jlink、st-link utility等也可以。

    下图为st-link utility和STM32cubeProgrammer的CLI工具帮助信息,相对而言,Programme的功能更丰富,所以以这个为例来演示。

      

    1.  Stlink连接stm32芯片测试:

    终端输入命令:STM32_Programmer_CLI -c port=SWD,结果如图所示,可以显示连接到的芯片的信息,说明已正确连接。前提是硬件正常、正确连接、供电正常。

    使用终端成功下载程序

    使用vsc修改makefile后再终端下载程序

    1. Makefile修改

    Makefile添加代码如下:

    update:

        @STM32_Programmer_CLI -c port=SWD -d $(BUILD_DIR)/$(TARGET).hex -v -s 0x08000000

    添加update段,功能是-c 连接device,port=SWD,使用swd接口,-d下载,后边为下载的文件,-v Verify,-s start,后边是下载首地址。

    1. c_cpp_properties.json文件

    主要有添加include路径,编译器路径,宏定义等

    {

        "configurations": [

            {

                "name""Win32",

                "includePath": [

                    "${workspaceFolder}Drivers/STM32F1xx_HAL_Driver/Inc",

                    "${workspaceFolder}Drivers/STM32F1xx_HAL_Driver/Inc/Legacy",

                    "${workspaceFolder}Drivers/CMSIS/Device/ST/STM32F1xx/Include",

                    "${workspaceFolder}Drivers/CMSIS/Include",

                    "${workspaceFolder}Drivers/CMSIS/Include",

                    "C:/Program Files (x86)/GNU Tools ARM Embedded/8 2019-q3-update/arm-none-eabi/include"

                ],

                "defines": [

                    "USE_HAL_DRIVER ",

                    "STM32F103xE ",

                    "USE_HAL_DRIVER ",

                    "STM32F103xE"

                ],

                "compilerPath""C:\\Program Files (x86)\\GNU Tools ARM Embedded\\8 2019-q3-update\\bin\\arm-none-eabi-gcc.exe",

                "cStandard""c11",

                "cppStandard""c++17",

                "intelliSenseMode""gcc-x86"

            }

        ],

        "version"4

    }

    1. launch.json

    {

        // 使用 IntelliSense 了解相关属性。 

        // 悬停以查看现有属性的描述。

        // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387

        "version""0.2.0",

        "configurations": [

            {

                "name""stm32 Debug",

                "cwd""${workspaceRoot}",

                "executable""${workspaceFolder}/build/TEST_VSC_BLINK.elf",

                "request""launch",

                "type""cortex-debug",

                "servertype""stutil",

                "device""STM32F103RE",

                "preLaunchTask""生成并下载",

                "postDebugTask""复位设备"

            }

        ]

    }

     

    1. tasks.json

    {

        // See https://go.microsoft.com/fwlink/?LinkId=733558

        // for the documentation about the tasks.json format

        "version""2.0.0",

        "tasks": [

            {

                "label""生成",

                "type""shell",

                "command""make -j6",

                "problemMatcher": [],

                "group": {

                    "kind""build",

                    "isDefault"true

                }

            },

            {

                "label""生成并下载",

                "type""shell",

                "command""make -j6 && make update",

                "problemMatcher": []

            },

            {

                "label""重新生成",

                "type""shell",

                "command""make clean && make -j6",

                "problemMatcher": []

            },

            {

                "label""复位设备",

                "type""shell",

                "command""STM32_Programmer_CLI -c port=SWD -hardRst",

                "problemMatcher": []

            }

        ]

    }

    附件(命令行下载程序代码):

    命令行下使用各种软件下载方法

    1.    STM32_Programmer _CLI -c port=SWD -d $(BUILD_DIR)/$(TARGET).hex -v -s 0x08000000
    2.  st-flash write TEST_VSC_BLINK.bin 0x8000000
    3. ST-LINK_CLI  -c  SWD  -P  E:/wo4fisher/Documents/keil_proj__stm32/GCC_VSCODE_TEST/build/GCC_VSCODE_TEST.hex  -V  "after_programming" 

     

    第一种:STM32_Programmer,第二种 git-hub开源软件 st-link(release地址:https://github.com/texane/stlink/releases/tag/1.3.0),第三种:st link utility

     

     

    Launch原版

    {

        // 使用 IntelliSense 了解相关属性。 

        // 悬停以查看现有属性的描述。

        // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387

        "version""0.2.0",

        "configurations": [

            {

                "name""stm32 Debug",

                "cwd""${workspaceRoot}",

                "executable""${workspaceFolder}/build/TEST_VSC_BLINK.elf",

                "request""launch",

                "type""cortex-debug",

                "servertype""stutil",

                "device""STM32F103RE",

                "preLaunchTask""生成并下载",

                "postDebugTask""复位设备"

            }

        ]

    }

    VSCODE开发STM32向导.pdf (6.62 MB, 下载次数: 295)



     

此帖出自stm32/stm8论坛

最新回复

wo4fisher 发表于 2020-4-3 13:46 奇缘时间 发表于 2020-4-1 00:28 你好,楼主,能否帮忙把工程及PDF发给看看,网上的PDF受损了,没法看 ... https://github.com/wo4fisher/stm32_vscode_demo  这个链接还是不通。   详情 回复 发表于 2021-1-21 09:21
点赞(2) 关注(3)
个人签名水不撩不知深浅 人不拼怎知输赢
 

回复
举报

101

帖子

0

TA的资源

一粒金砂(中级)

沙发
 

图都挂了

推荐安装以下几个插件:

1、Settings Sync:同步vscode配置至github

2、koroFileHeader:一键生成函数头注释

3、Bracket Pair Colorizer:括号颜色配对

4、Project Manager:工作区管理

5、Bookmarks::书签

此帖出自stm32/stm8论坛

点评

谢谢  详情 回复 发表于 2019-9-29 13:18
 
 

回复

101

帖子

0

TA的资源

一粒金砂(中级)

板凳
 

重新确认了下,楼主的PDF确实裂开了

此帖出自stm32/stm8论坛
 
 

回复

42

帖子

0

TA的资源

一粒金砂(中级)

4
 

pdf裂的更厉害。。

此帖出自stm32/stm8论坛
 
 
 

回复

862

帖子

2

TA的资源

纯净的硅(初级)

5
 
回头再挂一个网盘链接,论坛什么时候能支持doc插件就好了,直接把doc转换成网页
此帖出自stm32/stm8论坛
 
 
 

回复

862

帖子

2

TA的资源

纯净的硅(初级)

6
 
大小家伙好 发表于 2019-9-27 08:43 图都挂了 推荐安装以下几个插件: 1、Settings Sync:同步vscode配置至github 2、koroFileHeader ...

谢谢

此帖出自stm32/stm8论坛
 
个人签名水不撩不知深浅 人不拼怎知输赢
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

7
 

你好,楼主,能否帮忙把工程及PDF发给看看,网上的PDF受损了,没法看

此帖出自stm32/stm8论坛
 
 
 

回复

862

帖子

2

TA的资源

纯净的硅(初级)

8
 
本帖最后由 wo4fisher 于 2020-4-3 14:23 编辑
奇缘时间 发表于 2020-4-1 00:28 你好,楼主,能否帮忙把工程及PDF发给看看,网上的PDF受损了,没法看

链接已隐藏,如需查看请登录或者注册

此帖出自stm32/stm8论坛

点评

这个链接还是不通。  详情 回复 发表于 2021-1-21 09:21
 
个人签名水不撩不知深浅 人不拼怎知输赢
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

9
 

FFSDF

此帖出自stm32/stm8论坛
 
 
 

回复

305

帖子

0

TA的资源

纯净的硅(初级)

10
 
wo4fisher 发表于 2020-4-3 13:46 奇缘时间 发表于 2020-4-1 00:28 你好,楼主,能否帮忙把工程及PDF发给看看,网上的PDF受损了,没法看 ...

链接已隐藏,如需查看请登录或者注册
  这个链接还是不通。

此帖出自stm32/stm8论坛
 
个人签名

“Everyone wants the project to be good, fast, and cheap... pick two.”

- Unknown

 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表