1.打开vscode安装插件



主要用到IAR for visual studio code,没有使用IAR Embedded workbench,在编译的时候卡住,目前不知道什么原因,可能是IAR的版本过低,7.0版本。

2.打开工程文件夹

会由IAR for visual studio code 这个插件自动生成2个文件:c_cpp_properties.json和iar-vsc.json。如果不能自动识别,手动输入路径

iar-vsc.json

{
"ewp": "c:\\Users\\Administrator\\Desktop\\raspi12\\EWARM\\Project.ewp",
"configuration": "Debug",
"compiler": "C:\\Program Files (x86)\\IAR Systems\\Embedded Workbench 7.0\\arm\\bin\\iccarm.exe",
"workbench": "C:\\Program Files (x86)\\IAR Systems\\Embedded Workbench 7.0"
}

点击Terminal -> RUN TASK,选择iar -> iar:build



会自动生成tasks.json

{
"version": "2.0.0",
"tasks": [
{
"type": "iar",
"command": "build",
"project": "${command:iar-settings.project-file}",
"config": "${command:iar-settings.project-configuration}",
"builder": "${command:iar-settings.workbench}/common/bin/IarBuild.exe",
"label": "iar: Iar Build",
"problemMatcher": [
"$iar-cc",
"$iar-linker"
],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}

3.编译

通过Terminal -> RUN build Task

也可以快捷键 Ctrl + Shift + B 来进行编译

4.调试

调试需要用到一个调试器,这里用到了arm交叉编译工具 gcc-arm-none-eabi。安装,配置环境变量。

直接在文件夹创建launch.json。按Ctrl + space或右下角点add configuration。

选择

需要修改的地方:

 "program": "${workspaceFolder}/EWARM/TEST/Exe/Project.out"    //out路径
"miDebuggerPath": "arm-none-eabi-gdb.exe", //上面安装的交叉编译工具里的调试器,因为加入了环境变量,所以不需要路径
"debugServerPath": "C:/Program Files (x86)/SEGGER/JLink_V502e/JLinkGDBServerCL.exe", //这里使用了j-link进行调试,该路径是安装的j-link驱动的服务路径
"debugServerArgs": "-if swd -singlerun -strict -endian little -speed auto -port 3333 -device STM32F405RG -vd -strict -halt", //这里修改设备名, STM32F405RG

完整的文件:

launch.json

{
"configurations": [
{
"name": "Debug GDBServer",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/EWARM/TEST/Exe/Project.out",
"stopAtEntry": true,
"cwd": "${workspaceFolder}",
"externalConsole": true,
"MIMode": "gdb",
"miDebuggerPath": "arm-none-eabi-gdb.exe",
"debugServerPath": "C:/Program Files (x86)/SEGGER/JLink_V502e/JLinkGDBServerCL.exe",
"debugServerArgs": "-if swd -singlerun -strict -endian little -speed auto -port 3333 -device STM32F405RG -vd -strict -halt",
"serverStarted": "Connected\\ to\\ target",
"serverLaunchTimeout": 5000,
"filterStderr": false,
"filterStdout": true,
"setupCommands": [
{
"text": "target remote localhost:3333"
},
{
"text": "monitor flash breakpoints = 1"
},
{
"text": "monitor flash download = 1"
},
{
"text": "monitor reset"
},
{
"text": "monitor reset"
}
]
}
]
}

使用VSCODE调试STM32的iar工程的更多相关文章

  1. 使用VSCode和VS2017编译调试STM32程序

    近两年,微软越来越拥抱开源支持跨平台,win10搭载Linux子系统,开源VSCode作为跨平台编辑器,VS2017官方支持了Linux和嵌入式开发功能. ST也是,近两年开发的软件工具基本都是跨平台 ...

  2. 使用 VSCode 开发调试 STM32 单片机尝试

    使用 VSCode 开发调试 STM32 单片机尝试 本文记录基于 Windows + DAP-Link 开发 STM32F103C8T6 的实践过程,其他操作系统或芯片应该也只是大同小异的问题. 注 ...

  3. Vscode调试C的多文件工程配置

    关于Vscode的C语言的单文件调试,可以参见VScode调试C语言的设置(win10,Linux),里面已经说明基本的配置和使用. 下面说明一下如何调试多个文件的工程,首先写一个简单的工程,其中工程 ...

  4. 使用 VSCode 给STM32配置一个串口 printf 工程

    使用 VSCode 给STM32配置一个串口 printf 工程 gcc 重定向 printf 和 keil 不一样. 文件准备 先从以前的工程中拷过一份串口的代码来,然后在 main 函数中初始化串 ...

  5. 基于 VScode 搭建 STM32 运行环境

    所需软件 vscode: 是我们的代码编辑器 STM32CubeMX: 是我们配置和初始化的软件 OpenOCD: 是开源片上调试器, 他下载完是一个压缩包, 需要配置环境 arm-none-eabi ...

  6. vscode调试golang环境搭建及配置

    准备VSCode 在官网下载最新版的VSCode: 安装Golang插件 打开扩展面板 VSCode->查看->扩展 找到Go插件 在搜索框里输入Go, 找到第二行写有 Rich Go l ...

  7. 痞子衡嵌入式:探析开启CRC完整性校验的IAR工程生成.out和.bin文件先后顺序

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是开启CRC完整性校验的IAR工程生成.out和.bin文件先后顺序问题. 痞子衡之前写了一篇 <在IAR开发环境下为工程开启CRC ...

  8. VSCode调试go

    VSCode调试go语言出现:exec: "gcc": executable file not found in %PATH%   1.问题描述 由于安装VS15 Preview ...

  9. 【转】vscode调试运行c#详细操作过程

    [转]vscode调试运行c#详细操作过程 主要命令: //路径跳转cd //新建项目dotnet new console -o 路径 //运行dotnet run //用于发布exe<Runt ...

  10. 使用Eclipse+jlink调试STM32

    使用Eclipse+JLINK调试STM32 安装eclipse + CDT. 安装交叉编译工具(工具链ARM CROSS GCC--GUN ARM http://gnuarmeclipse.sour ...

随机推荐

  1. 【Logback+Spring-Aop】实现全面生态化的全链路日志追踪系统服务插件「Logback-MDC篇」

    日志追踪 日志追踪对于功能问题的排查和数据流转的路径分析时非常重要的,有了全链路日志追踪体系机制可以非常有效且快速的定位问题,但在多线程环境中,若没有相关成熟的框架的支持,想要实现日志追踪,就需要手动 ...

  2. i春秋exec

    打开是一个gif,提示文字未登录 话不多说,查看源码 发现vim字样,可能是文件泄露 直接在url后加/.index.php.swp来下载泄露文件 下载好了之后放vm上使用vim -r  .index ...

  3. (C++) C++ 中 shared_ptr weak_ptr

    shared_ptr std::shared_ptr<int> sp1 = new int(); // shared count = 1, weak count = 0 std::shar ...

  4. servlet包找不到,webservlet注解无效

    把tomcat/lib/  中的annotations-api.jar和servlet-api.jar复制到jdk/jre/lib/ext/目录中就行了 mine:C:\environment\apa ...

  5. VR技术名词解释

    视觉相关技术 分辨率 分辨率(resolution)就是屏幕图像的精密度,是指显示器所能显示的像素的多少.由于屏幕上的点.线和面都是由像素组成的,显示器可显示的像素越多,画面就越精细,同样的屏幕区域内 ...

  6. 初次邂逅 EasyExcel

    前言 由于工作原因,有这种需求,就是把数据库中的数据导出成 Excel 表格,同时,也得支持人家用 Excel 表格导入数据到数据库.当前项目也是在用 EasyExcel,所以我不得不学啦! 以前学习 ...

  7. 【SQL基础】【记住重命名】高级查询:聚合函数(四舍五入)、分组过滤、排序、

    〇.概述 1.功能概述 高级查询:聚合函数(四舍五入).分组过滤.排序. 2.建表语句 drop table if exists user_profile; CREATE TABLE `user_pr ...

  8. Java中将 int[] 数组 转换为 List(ArrayList)

    前言 说起数组转换成 ArrayList,很多同学第一反应就是遍历数组,将元素逐个添加到 ArrayList 中,但是这个看着就lower,一般不会这么答. 所以马上就会想到Arrays工具类的 as ...

  9. 虚拟网络VLAN

    一.VLAN划分基础 1.VLAN概念 VLAN叫做虚拟局域网,逻辑上将网络划分 2.VLAN的分类 静态vlan:基于端口划分静态VLAN 动态vlan:基于MAC地址划分动态VLAN 3.VLAN ...

  10. 可视化编排的数据集成和分发开源框架Nifi轻松入门-上

    @ 目录 概述 定义 dataflow面临挑战 特性 核心概念 架构 高级概述 安装 部署 常见处理器 入门示例 概述 定义 Nifi 官网地址 https://nifi.apache.org/ Ni ...