IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> NuttX V10.1.0:基于VScode+JLink(swd)+openocd的stm32f4在线调试环境搭建 -> 正文阅读

[开发工具]NuttX V10.1.0:基于VScode+JLink(swd)+openocd的stm32f4在线调试环境搭建

目录

参考链接:

一、前提

二、测试openocd 、gdb

三、VSCode环境配置

四、在线调试


参考链接:

vscode + cortex-debug,stm32 开发更有趣了 - 知乎 (zhihu.com)

(4条消息) STM32开发之 VS Code + GDB下载调试_夏沫的杂物间-CSDN博客

开源调试软件OpenOCD调试stm32 - 知乎 (zhihu.com)

(4条消息) NuttX的应用记录 4 (小记录)_Godenfreemans的博客-CSDN博客

一、前提

1、vscode 扩展

  • C/C++? v1.8.4

  • Cortex-Debug? v1.2.2

  • Cortex-Debug: Device Support Pack - STM32F1 V1.0.0

  • Cortex-Debug: Device Support Pack - STM32F4 V1.0.0

  • gnu-debugger v1.0.4

2、工具

  • openocd v0.10.0 : sudo apt-get install openocd

  • GDB 工具链

3、NuttX V10.1.0

4、JLink v9 盗版

5、mcu:stm32f411ceu6

二、测试openocd 、gdb

Debugging — NuttX latest documentation (apache.org)

????????根据NuttX官网上的Debugging指南,它使用的是openocd与gdb进行调试,可以先根据官方上的指南对openocd与gdb来进行测试看我们安装是否成功。

????????1、(默认此时已经clone了NuttX的源码并且能过正常编译)进入到menuconfig,开启debug必要的选项。Build Setup → Debug Options

????????2、编译测试$make clean; make -j32

?????????编译成功

????????3、官网是使用stlink-v2仿真器来使用openocd进行调试的,我使用过手头两个盗版U盘大小的stlinkv2都无法正常打开openocd。使用了盗版jlink v9则可以正常使用openocd。?? ??? ?

注:jlink与stm32f411是通过swd进行连接

????????默认安装的openocd中jlink的interface配置文件是不支持使用swd模式的,我们需要新建一个配置文件

$ cd /usr/share/openocd/script/interface
$ cp jlink.cfg jlink_swd.cfg                  
$ vi jlink_swd.cfg

?????????接下来是跟着官方操作

在终端1中:

$ openocd -f interface/jlink_swd.cfg  -f  target/stm32f4x.cfg

在终端2中:

$ cd {nuttx目录}
$ gdb-multiarch  nuttx/nuttx            //进入gdb
(gdb) target extended-remote :3333        //在gdb命令行中,连接gdb服务器

?????????键入上面的命令后,终端1会显示accepting 'gdb' connection on tcp/3333,表示gdb已经成功连接上,即openocd与gdb都安装成功能正常使用。

?? 进行下面的步骤时,需要把openocd 、 gdb都退出。

三、VSCode环境配置

????????1、首先把nuttx源码添加到VScode

????????2、把? ?一、前提? ?中VScode的插件全部装上。

????????3、在资源管理器中, .vscode目录下新建或修改launch.json、task.json这两个配置文件。

launch.json(文件名)

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",

    "configurations": [
        {
            "name": "(gdb) nuttx",              // 配置名称,将会在启动配置的下拉菜单中显示
            "type": "cortex-debug",             // 配置类型,这里使用拓展cortex-debug
            "request": "launch",                // 请求配置类型,可以为launch(启动)或attach(附加)
            "servertype": "jlink",              //
            //"program": "System.map",          // 将要进行调试的程序的路径
            "executable": "${workspaceRoot}/nuttx/nuttx/nuttx",     // 指定编译出来的nuttx文件
            "device": "STM32F411CE",            // 指定mcu
            "interface": "swd",                 // 指定调试模式
            "ipAddress": null,
            "serialNumber": null,
            "args": [],                         // 程序调试时传递给程序的命令行参数,一般设为空即可
            "stopAtEntry": false,                //如果设置为true,调试器应该在目标的入口点停止(在附加时忽略)。默认值为false。
            "cwd": "${workspaceRoot}",          // 调试程序时的工作目录,一般为${workspaceRoot}即代码所在目录
            "environment": [],                  // 当前项目环境变量
            "externalConsole": false,
            "MIMode": "gdb-multiarch",          // 调试器模式/类型
            
            //"showDevDebugOutput": "true",     //打开调试信息,建议关闭


            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
            
        }
    ]
}
task.json(文件名)

{
    "dependsOn":"Build",            // 任务依赖
    "label": "Build and Download",  // 编译任务名
    "type": "shell",                // 编译任务的类型,通常为shell/process类型
    "command": "openocd",           // 编译命令
    "args": [                       // 调用openocd时使用的参数,制定interface
    "-f",
    "interface/jlink_swd.cfg",
    "-f",
    "target/stm32f4x.cfg",
    "-c",
    "program ./nuttx/nuttx.hex verify reset exit"
    ],
    "problemMatcher": []
}

四、在线调试

????????1、打开VScode的运行与调试功能,点击(gdb)nuttx的绿色三角形,即可开始在线调试。

????????2、可以愉快的进行调试了

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-03-10 22:48:06  更:2022-03-10 22:48:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 8:48:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码