• 使用VSCODE调试STM32的iar工程


    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"
                }
            ]
        }
        ]
    }
    
  • 相关阅读:
    MySQL sys Schema 简单介绍-2
    dubbo服务+Spring事务+AOP动态数据源切换 出错
    sql 查询优化
    spring事务-说说Propagation及其实现原理
    Redis 分布式锁
    三、操作符
    二、一切皆是对象
    一、对象导论
    SpringMVC工作原理
    数据库性能优化策略
  • 原文地址:https://www.cnblogs.com/penuel/p/14472744.html
Copyright © 2020-2023  润新知