使用arm-none-eabi-gcc编译器搭建STM32的Vscode开发环境

工具

  1. make:Windows中没有make,但是可以通过安装MinGW或者MinGW-w64,得到make。
  2. gcc-arm-none-eabi:建议最新版,防止调试报错
  3. OpenOCD
  4. vscode
  5. cubeMX

VSCODE 插件

  1. Arm Assembly:汇编文件解析
  2. C/C++:c语言插件
  3. Cortex-Debug:调试插件

添加环境变量路径

  1. gcc-arm-none-eabi\bin

  2. OpenOCD\bin

  3. 建议MinGW-make工具重命名为make.exe并添加到gcc-arm-none-eabi\bin路径

    测试工具环境变量是否生效

     arm-none-eabi-gcc -v
     OpenOCD -v
     make -v
    

创建工程

使用cubeMX创建Makefile工程

Makefile:由于window没有rm指令,所以这里修改为 del,并添加了系统判断

将makefile一下
-------------------------------
clean:
	-rm -fR $(BUILD_DIR)
-------------------------------
修改
-------------------------------
ifeq ($(OS),Windows_NT)
clean:
	del $(BUILD_DIR)
else
clean:
	-rm -fR $(BUILD_DIR)
endif
-------------------------------

工程添加文件

调试器配置
OpenOCD\share\openocd\scripts\interfacestlink-v2.cfg
芯片配置
OpenOCD\share\openocd\scripts\targetstm32f7x.cfg

vscode 配置任务脚本

  1. 创建任务脚本
    F1
    输入 tasks
    选择 运行任务
    选择 配置任务
    选择 使用模板创建task.json
    选择 other
    选择创建 tasks

  2. 使用任务脚本

    CTRL + SHIFT + B 选择对应的任务
    tasks.json

    {
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    “version”: “2.0.0”,
    “tasks”: [
    //make 任务
    {
    “label”: “build”,
    “type”: “shell”,
    “command”: “make”,
    “problemMatcher”: [],
    “group”: {
    “kind”: “build”,
    “isDefault”: true
    }
    },
    // clean 任务
    {
    “label”: “clean”,
    “type”: “shell”,
    “command”: “make clean”,
    “problemMatcher”: [],
    “group”: {
    “kind”: “build”,
    “isDefault”: true
    }
    },
    //下载任物
    {
    “label”: “download”,
    “type”: “shell”,
    “command”: “openocd”,
    // openocd 传递的参数
    “args”: [
    “-f”,
    “stlink-v2.cfg”,
    “-f”,
    “stm32f7x.cfg”,
    “-c”,
    “program build/stm32f767_project.elf verify reset exit”,
    ],
    “group”: {
    “kind”: “build”,
    “isDefault”: true
    },
    },
    ]
    }

vscode 配置调试脚本

1.创建调试脚本
选择调试窗口
选择 创建 launch.json 文件
2. 启用调试
快捷键 F5

launch.json

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Cortex Debug",
            "cwd": "${workspaceFolder}",
            "executable": "${workspaceFolder}/build/stm32f767_project.elf",             // 编译文件
            "request": "launch",
            "type": "cortex-debug",
            "servertype": "openocd",
            "interface":"swd",
            "device": "STM32F7IGT6",                
            "configFiles": [
                "stlink-v2.cfg",              
                "stm32f7x.cfg",
            ]
        }
    ]
}

调试过程中报错:仔细查看报错信息,gcc版本过低也会造成调试报错

你可能感兴趣的:(STM32,arm开发,stm32,vscode)