4 磨刀不误砍柴工

发现我做事情磨刀可能有点误砍柴工了,不过前面3个星期磨刀,积累出的经验让我很有底气去应对程序出现的异常了,极大地节约了以后程序开发的调试成本。
这一篇是我新发现的一个功能,使用vs code 编译下载iar工程。目前只调试出了基本的编译下载功能,但是已经算是很实用了。 实在是不喜欢iar粗俗的界面和不健全的跳转,然后又受不住切换到vs code编写,再到iar调试这样的奇怪模式。

1 安装相关插件

在vs code中搜索安装以下插件:


插件

vs code的使用就不多说了,用vscode打开iar工程的文件夹,它会初始化出来一个.vscode文件夹,这个后面会用到。
安装好插件之后重新加载一下程序,最好重启一下vs code。

2 编译配置

在IAR Embedded Workbench插件的介绍页面可以看到相关内容,这里讲解一下。


IAR

(这个只是使用IAR的功能,所以还是要安装IAR的)

2.1 创建iar.json

在vs的资源管理器中,找到.vscode,新建文件iar.json ,

iar.json

输入以下内容:

{
    "version": 1,
    "path": "C:\\Program Files (x486)\\IAR Systems\\Embedded Workbench 8.0\\",
    "project": "C:\\Projects\\TEST\\TEST.ewp",
    "config": "Debug"
}

"version"可以随便写
"path"就是iar的路径,可以在电脑的资源管理器里搜索Embedded Workbench找到它
"project"工程位置,就是要编译的iar工程的位置。
以上需要注意的是\需要进行转义,所以是两个反斜杠。
"config"其实就是iar顶部这个:

config

2.2 使能

打开vscode的settings.json:


set

在搜索栏搜索iar.enabled,移动鼠标获取会出现一个笔,点击就会在右侧生成true,就配置好了。


true

2.3 build

快捷键ctrl+shift+b 开始调试,可以把搜狗输入法同一个快捷键取消掉(很烦)。

3 debug

这一步就是使用jlink下载调试了。
点击左侧的调试按钮,再点击小齿轮,就会打开launch.json.


debug

需要做的修改示例如下:

{
    "version": "0.2.1",
    "configurations": [
        {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "E:\\demo.out",
            "stopAtEntry": true,
            "cwd": "${workspaceFolder}",
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "E:\\arm-none-eabi-gdb.exe",
            "debugServerPath": "C:\\Program Files (x86)\\SEGGER\\JLink_V600i\\JLinkGDBServerCL.exe",
            "debugServerArgs": "-if swd -singlerun -strict -endian little -speed auto -port 3333 -device STM32FXXXXX -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": "load E:/demo.out"},
                    {"text": "monitor reset"}
            ]
        }
    ]
}

需要修改的是以下几条:
"program":输出的demo.out路径,注意双反斜杠
"miDebuggerPath":在工程中搜索arm-none-eabi-gdb.exe的位置
"debugServerPath":在系统中搜索JLinkGDBServerCL.exe的位置
"debugServerArgs":STM32FXXXX改成对应的具体型号,在这里可以看到:


STM32

"setupCommands": 的{"text": "load后面的路径要改,注意斜杠方向。
最后在左侧顶部点击绿色箭头就可以调试了。


调试
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AGI阅读 16,003评论 3 119
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,813评论 25 708
  • 身份操作符 is/is not: 判断左端对象引用与否与右端对象引用相同 也可以与None进行比较 要理解这个,首...
    表表哥阅读 180评论 0 0
  • 上月末,我们单位各个部门进行了一次大规模集中的6S整理工作。 在整理的过程中,纸质资料的是否保存应...
    瞳小甜Rosie阅读 374评论 0 0