当前位置: 首页 > news >正文

使用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 -vOpenOCD -vmake -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版本过低也会造成调试报错

http://www.lryc.cn/news/95337.html

相关文章:

  • 图数据库Neo4j学习二——cypher基本语法
  • ChatGPT:人工智能交互的未来之光
  • 128最长连续数组
  • redis 1
  • vue+Element项目中v-for循环+表单验证
  • Day 66-68 主动学习之ALEC
  • local-path-provisioner与pvc本地磁盘挂载helm部署
  • Visio/PPT/Matlab输出300dpi以上图片【满足标准投稿要求】
  • 科技UI图标的制作
  • 微信小程序将接口返回的文件流预览导出Excel文件并转发
  • windows 安装 mongodb 数据库
  • 业务不打烊:解决软件系统升级痛点的新方法
  • csdn新星计划vue3+ts+antd赛道——利用inscode搭建vue3(ts)+antd前端模板
  • 通过 CSS 的样式实现语音发送动效类似声音震动的效果
  • 【C#】.Net Framework框架使用JWT
  • SQL高级教程第三章
  • vue 3.0 下载本地pdf文件
  • 平板用的触控笔什么牌子好?ipad第三方电容笔推荐
  • 【Unity2D】相机移动以及设置相机边界
  • 和chatgpt学架构04-路由开发
  • Spring MVC异常处理【单个控制异常处理器、全局异常处理器、自定义异常处理器】
  • 使用3ds Max粒子系统创建飞天箭雨特效场景
  • 【朴素贝叶斯实例】
  • MPAS跨尺度、可变分辨率模式
  • 微信小程序对接SSE接口记录
  • Ngrok 的绝佳替代品,内网穿透神器 Serveo
  • 网络知识点之-路由
  • input 框如何移动光标,设置光标位置?
  • linux内核系统调用学习5:SYSCALL_DEFINE<0-6>
  • maven镜像仓库配置(多镜像自动切换)