欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

VScode开发stm32,并支持C++

程序员文章站 2022-06-08 20:48:08
...

实现过程:STM32CubeMX生成工程模板,VSCode编辑和调试程序,Make启动编译,ARM GCC编译程序,OpenOCD连接调试器

工具

主要工具

1、VScode
下载地址 https://code.visualstudio.com/
VScode开发stm32,并支持C++
2、STM32CubeMX
在这之前要先安装java https://www.java.com/zh_CN/download/windows-64bit.jsp
再安装STM32CubeMX https://www.st.com/zh/development-tools/stm32cubemx.html

3、ARM GCC
下载地址:https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads
VScode开发stm32,并支持C++
下载第一个就可以
安装好后文件夹为
VScode开发stm32,并支持C++
把bin文件夹路径加到环境变量。VScode开发stm32,并支持C++
复制路径,打开此电脑右键属性,点击高级系统设置,点击环境变量,VScode开发stm32,并支持C++双击Path,VScode开发stm32,并支持C++新建将路径复制进去(这是最终结果,有三个新添路径从上到下依次为ARMGCC、make、OpenOCD)VScode开发stm32,并支持C++

辅助工具

1、Make
下载地址http://gnuwin32.sourceforge.net/packages/make.htm
下载文件选择Complete package, except sources。
将bin目录加到环境变量。
2、OpenOCD
下载地址:https://gnutoolchains.com/arm-eabi/openocd/
VScode开发stm32,并支持C++
同样下载第一个就可以;

3、vscode的C/C++插件
VScode开发stm32,并支持C++
VScode开发stm32,并支持C++

环境变量添加完后测试环境变量

打开CMD命令提示符
运行arm-none-eabi-gcc -v
出现标记处信息(版本信息)表示armgcc安装完成
VScode开发stm32,并支持C++
运行openocd -v
出现版本信息表示OpenOCD安装完成
运行make -v
出现版本信息表示Make安装完成

工程的建立和调试:

1、stm32CubeMX建立工程模板
创建一个c8t6的工程(小知识,c8t6和cbt6两个之间没有什么区别,但c8t6的128k flash有64k是没有验证的,可能有问题,一般用c8t6的时候直接创cbt6的工程就可以了)
VScode开发stm32,并支持C++
配置好后选择Makefile输出
VScode开发stm32,并支持C++
2、VScode配置关键词查找、编译、调试文件
vscode打开文件夹,开始配置配置文件
命令界面输入tasks,点击点击第四个配置默认生成任务
VScode开发stm32,并支持C++
创建tasks.json文件VScode开发stm32,并支持C++

再在调试界面创建launch.json文件VScode开发stm32,并支持C++
这个基本不需要修改,复制下面的就可以

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "ARM",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/build/${workspaceRootFolderName}.elf",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "arm-none-eabi-gdb.exe",
            "setupCommands": [
                {"text": "cd ${workspaceFolder}/build"},
                {"text": "file ${workspaceRootFolderName}.elf"},
                {"text": "target remote localhost:3333"},
                {"text": "monitor reset"},
                {"text": "monitor halt"},
                {"text": "load"},
            ],
            "preLaunchTask": "start",
            "postDebugTask": "stop"
        }
    ]
}

VScode开发stm32,并支持C++
意思是会自动生成build文件夹存放编译生成的文件

再在命令窗口下选择第一个创建c_cpp_properties.jsonVScode开发stm32,并支持C++
修改如下

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**",
                "D:/vscode for stm32/9 2019-q4-major/arm-none-eabi/include",
                "D:/vscode for stm32/9 2019-q4-major/arm-none-eabi/include/c++/9.2.1",
                "D:/vscode for stm32/9 2019-q4-major/arm-none-eabi/include/c++/9.2.1/backward",
                "D:/vscode for stm32/9 2019-q4-major/lib/gcc/arm-none-eabi/9.2.1/include",
                "D:/vscode for stm32/9 2019-q4-major/lib/gcc/arm-none-eabi/9.2.1/include-fixed",
                "Drivers/CMSIS/Include",
                "Drivers/CMSIS/Device/ST/STM32F1xx/Include",
                "Drivers/STM32F1xx_HAL_Driver/Inc",
                "Drivers/STM32F1xx_HAL_Driver/Inc/Legacy",
                "Drivers/STM32F1xx_HAL_Driver/Src",
                "Inc",
                "Src",
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE",
                "STM32F103xB"
            ],
            "intelliSenseMode": "msvc-x64"
        }
    ],
    "version": 4
}

VScode开发stm32,并支持C++
这几个是你安装的arm-gcc安装目录自带的标准文件(自行修改为自己安装目录)为绝对地址
VScode开发stm32,并支持C++
全部都是你工程里的文件,为相对地址,这里我们需要将搜有文件路径定义到.c和.h文件的最终目录下,这样编译器才能找到。

VScode开发stm32,并支持C++
在这里我们需要在这定义芯片型号,在下图找到芯片型号VScode开发stm32,并支持C++
打开控制台输入make -j4(四核编译)VScode开发stm32,并支持C++
编译完成生成hex文件VScode开发stm32,并支持C++

3、启动OpenOCD调试器服务

在控制台下输入 openocd -f interface/jlink.cfg -c "transport select swd" -c "adapter_khz 10000" -f target/stm32f1x.cfg
jlink.cfg 调试器名字VScode开发stm32,并支持C++
“transport select swd” 选择swd接口
“adapter_khz 10000” 1M的下载速度
target/stm32f1x.cfg F1系列的配置文件VScode开发stm32,并支持C++

4、一键启动编译和调试

扩展:
一、为工程添加自己的文件
1、建立自己的文件夹和文件
2、修改关键字查找和Makefile文件

二、支持C++

相关标签: HAL