VScode开发stm32,并支持C++

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

工具

主要工具

1、VScode
下载地址 https://code.visualstudio.com/
VScode开发stm32,并支持C++_第1张图片
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++_第2张图片
下载第一个就可以
安装好后文件夹为
在这里插入图片描述
把bin文件夹路径加到环境变量。VScode开发stm32,并支持C++_第3张图片
复制路径,打开此电脑右键属性,点击高级系统设置,点击环境变量,VScode开发stm32,并支持C++_第4张图片双击Path,VScode开发stm32,并支持C++_第5张图片新建将路径复制进去(这是最终结果,有三个新添路径从上到下依次为ARMGCC、make、OpenOCD)VScode开发stm32,并支持C++_第6张图片

辅助工具

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++_第7张图片
同样下载第一个就可以;

3、vscode的C/C++插件
VScode开发stm32,并支持C++_第8张图片
VScode开发stm32,并支持C++_第9张图片

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

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

工程的建立和调试:

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

{
    "version": "2.0.0",
    "tasks": [
    {
    "label": "Compile",
    "type": "shell",
    "command": "make -j4"
    }
    ]
    }

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

{
    "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++_第16张图片
意思是会自动生成build文件夹存放编译生成的文件

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

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

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

3、启动OpenOCD调试器服务

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

4、一键启动编译和调试

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

二、支持C++

你可能感兴趣的:(HAL)