实现过程:STM32CubeMX生成工程模板,VSCode编辑和调试程序,Make启动编译,ARM GCC编译程序,OpenOCD连接调试器
1、VScode
下载地址 https://code.visualstudio.com/
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
下载第一个就可以
安装好后文件夹为
把bin文件夹路径加到环境变量。
复制路径,打开此电脑右键属性,点击高级系统设置,点击环境变量,双击Path,新建将路径复制进去(这是最终结果,有三个新添路径从上到下依次为ARMGCC、make、OpenOCD)
1、Make
下载地址http://gnuwin32.sourceforge.net/packages/make.htm
下载文件选择Complete package, except sources。
将bin目录加到环境变量。
2、OpenOCD
下载地址:https://gnutoolchains.com/arm-eabi/openocd/
同样下载第一个就可以;
打开CMD命令提示符
运行arm-none-eabi-gcc -v
出现标记处信息(版本信息)表示armgcc安装完成
运行openocd -v
出现版本信息表示OpenOCD安装完成
运行make -v
出现版本信息表示Make安装完成
1、stm32CubeMX建立工程模板
创建一个c8t6的工程(小知识,c8t6和cbt6两个之间没有什么区别,但c8t6的128k flash有64k是没有验证的,可能有问题,一般用c8t6的时候直接创cbt6的工程就可以了)
配置好后选择Makefile输出
2、VScode配置关键词查找、编译、调试文件
vscode打开文件夹,开始配置配置文件
命令界面输入tasks,点击点击第四个配置默认生成任务
创建tasks.json文件
{
"version": "2.0.0",
"tasks": [
{
"label": "Compile",
"type": "shell",
"command": "make -j4"
}
]
}
再在调试界面创建launch.json文件
这个基本不需要修改,复制下面的就可以
{
"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"
}
]
}
再在命令窗口下选择第一个创建c_cpp_properties.json
修改如下
{
"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
}
这几个是你安装的arm-gcc安装目录自带的标准文件(自行修改为自己安装目录)为绝对地址
全部都是你工程里的文件,为相对地址,这里我们需要将搜有文件路径定义到.c和.h文件的最终目录下,这样编译器才能找到。
在这里我们需要在这定义芯片型号,在下图找到芯片型号
打开控制台输入make -j4
(四核编译)
编译完成生成hex文件
3、启动OpenOCD调试器服务
在控制台下输入 openocd -f interface/jlink.cfg -c "transport select swd" -c "adapter_khz 10000" -f target/stm32f1x.cfg
jlink.cfg 调试器名字
“transport select swd” 选择swd接口
“adapter_khz 10000” 1M的下载速度
target/stm32f1x.cfg F1系列的配置文件
4、一键启动编译和调试
扩展:
一、为工程添加自己的文件
1、建立自己的文件夹和文件
2、修改关键字查找和Makefile文件
二、支持C++