vscode+stm32+embedded IDE+cortex debug

这是用jlink下载和仿真的。

openocd和jlink都是GDB server。如果用openocd,不能驱动jlink仿真器,需要用UsbDriverTool,把jlink驱动映射成winusb驱动,这样才能用openocd,但是这样keil5就不能用jlink仿真了。所以用jlink GDBserver。

注意:jlink仿真器的驱动程序安装路径不要有空格,否则vscode在cmd执行时是报错--“‘C:\Program‘ 不是内部或外部命令,也不是可运行的程序或批处理文件”。

1、embedded ide是编译+下载

        a、编译器用armcc(keil 5快乐版),设置

        b、下载,设置

2、cortex debug是debug工具

        a、配置jlink gdb server路径。必须用JLinkGDBServerCL.exe,这是命令行版本,JLinkGDBServer.exe是图形版。setting中设置:"cortex-debug.JLinkGDBServerPath": "C:\\SEGGER\\JLink_V794k\\JLinkGDBServerCL.exe",,

        b、launch.json中:"servertype": "jlink",

3、使用vscode intellisense功能时,不用自己配置c_cpp_properties.json。按下面做即可。

4、eide已经写好了launch.json和tasks.json文件,在launch.json中,用下面设置可以不用编译直接点绿色三角仿真: "preLaunchTask": "build",

5、在c_cpp_properties.json中,加上如下说明可以告诉vscode,按照keil5的要求做。

"cStandard": "c99",

            "cppStandard": "c++11",

### 使用 VSCode 进行 STM32 开发并结合 STM32CubeCLT #### 配置环境 为了在 Visual Studio Code (VSCode) 中进行 STM32 的开发,需要完成一系列的配置工作。这包括安装必要的插件、工具链以及设置编译器路径。 1. **安装必要组件** - 安装 GNU Arm Embedded Toolchain 用于编译 C/C++ 文件[^1]。 - 下载 OpenOCD 工具以便调试硬件设备[^2]。 2. **VSCode 插件支持** - 安装 `C/C++` 扩展来提供 IntelliSense 和语法高亮功能。 - 安装 ` Cortex-Debug` 插件以实现单步调试和断点设置的功能[^3]。 ```bash sudo apt-get install gcc-arm-none-eabi gdb-multiarch openocd ``` 上述命令适用于基于 Debian/Ubuntu 的 Linux 发行版,其他操作系统需自行查找对应版本的安装方法。 #### 创建项目结构 利用 STM32CubeMX 或者其命令行工具 STM32CubeCLT 来生成初始代码框架是非常常见的做法。STM32CubeCLT 是 CubeMX 提供的一个命令行接口,可以用来自动化生成代码模板而无需手动打开 GUI 应用程序。 假设已经通过 STM32CubeCLT 生成了基础工程目录,则可以在该目录下初始化一个新的 Git 存储库或者直接导入到 VSCode 当中: ```bash mkdir my_stm32_project && cd $_ stm32cubemx --newproject=STM32F4xx ./my_stm32_project/ ``` 此脚本会依据指定的目标微控制器型号创建默认外设驱动及相关配置文件。 #### 设置 launch.json 调试参数 编辑 `.vscode/launch.json` 添加如下内容以启用 GDB 调试模式: ```json { "version": "0.2.0", "configurations": [ { "name": "ST-Link Debugging", "type": "cortex-debug", "request": "launch", "serverType": "openocd", "device": "STM32F407VG", "interface": "stlink", "executable": "./build/my_app.elf" } ] } ``` 这里指定了目标 MCU 型号为 `STM32F407VG`, 并且加载的是位于构建输出中的 ELF 可执行映像文件. #### 编写 Makefile 构建规则 如果未采用 IDE 自动生成的方式而是希望完全掌控整个流程的话,那么还需要定义好 Makefile 如何调用 arm-gcc 对源码进行编译链接操作。下面给出一个简化示例仅供参考: ```makefile TARGET := main CC := arm-none-eabi-gcc LD := arm-none-eabi-ld OBJCOPY := arm-none-eabi-objcopy SRC += $(wildcard *.c) INC += -I./Inc/ $(TARGET).elf: $(OBJS) @echo "[LINKING]" $(LD) $^ -o $@ %.o : %.c @echo "[COMPILING]" $< $(CC) -c $< -o $@ $(INC) clean: rm -f *.o $(TARGET).elf ``` 以上片段展示了如何将当前文件夹内的所有 .c 文件逐一交给交叉编译器处理,并最终产出可烧录至芯片上的二进制镜像. ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值