闲言碎语:
好久没更,在忙着科研→校招→写毕业论文。
临近毕业,总结自己的大学生活:C\C++、Java、Python、深度学习,学的乱七八糟 。
秋招找了个嵌入式工作(涉及AI应用),大致确定了以后的技术方向了,应该不会继续乱学了。
先搭个环境学起来。
目录
- [VSCode 配置](#VSCode 配置)
-
- [安装Embedded IDE插件](#安装Embedded IDE插件)
- 新建项目
- 添加芯片支持包
- 检查库函数头文件是否被引入
- 烧录器配置(以STLink为例)
- 在项目中添加自定义文件夹
- 调试设置(以STLink为例)
-
- 安装cortex-debug插件
- 安装MingW64(可选?)
- 安装arm-none-eabi-gcc
- [安装 ST-LINK GDB server](#安装 ST-LINK GDB server)
- 配置项目中的launch.json
- 调试效果
VSCode 配置
安装Embedded IDE插件
略
新建项目


中途vscode提示安装的东西(gcc等)都装上。
添加芯片支持包
芯片支持包 | Embedded IDE For VSCode
可以进行在线下载,也可以本地导入。实际根据具体芯片选择。

检查库函数头文件是否被引入
stm32f10x_conf.h
用于统一管理外设库函数头文件的引入。通过注释或取消注释宏定义,控制项目中需要使用的硬件外设模块(如 ADC、SPI、USART 等)。
stm32f10x.h
中规定只有编译器添加了USE_STDPERIPH_DRIVER
预处理宏定义,才能启动该头文件

因此需要在项目配置中添加预处理宏定义(EIDE默认配好了)

烧录器配置(以STLink为例)
安装STLink驱动
懒人方法:
- 安装Keil MDP
- 电脑插入STLink
- 运行安装程序:
{Keil MDP目录}\ARM\STLink\USBDriver\dpinst_amd64.exe
- 项目中配置

在项目中添加自定义文件夹
- 在工程目录中新建文件夹(略)
- 在项目资源 和C/C++属性→包含目录中添加新建的文件夹

调试设置(以STLink为例)
参考:https://www.jianshu.com/p/83f1f3a5e876
安装cortex-debug插件
略
安装MingW64(可选?)
如果安装ST-LINK GDB server时是直接使用编译好的压缩包,那么MingW64可能不是必要的。
{MingW64根目录}\bin
加入到环境变量。
安装arm-none-eabi-gcc
Downloads | GNU Arm Embedded Toolchain Downloads -- Arm Developer

添加环境变量
plain
D:\GNU Arm Embedded Toolchain\10 2021.10\bin
安装 ST-LINK GDB server
这里直接下载编译好的压缩包
https://github.com/stlink-org/stlink/releases

解压到任意位置(以D盘为例)

检查bin
文件夹有没有libusb-1.0.dll
文件,如果没有,从https://www.dllme.com/dll/files/libusb-1_0下载

配置项目中的launch.json
json
{
"version": "0.2.0",
"configurations": [
{
"cwd": "${workspaceRoot}",
"type": "cortex-debug",
"request": "launch",
"name": "stlink",
"servertype": "stutil",
"serverpath": "D:\\stlink-1.8.0-win32\\bin\\st-util.exe",
"executable": ".\\build\\Debug\\4-1-monitor.elf",
"v1": false,
"runToEntryPoint": "main",
"svdFile": ".\\.pack\\Keil\\STM32F1xx_DFP.2.2.0\\SVD\\STM32F103xx.svd",
"configFiles": [
"interface/<debugger-type>.cfg",
"target/<mcu-series>.cfg"
]
}
]
}
其中executable
和svdFile
的值需要根据实际项目名称和芯片名称修改。
调试效果
先进行构建,然后打个断点调试,效果如下
