ubuntu PX4 vscode stlink debug设置

硬件

stlink
holybro debug板
pixhawk4

请添加图片描述

安装openocd

官方文档,但是第一步安装建议从源码安装,bug少很多
github链接

编译安装,参考

  ./bootstrap (when building from the git repository)./configure [options]makesudo make install

安装后在usr/local/bin下面有一个openocd

px4qgc@ubuntu:~$ which openocd
/usr/local/bin/openocd

另外要注意gcc-arm路径

px4qgc@ubuntu:~$ which arm-none-eabi-gdb
/opt/gcc-arm-none-eabi-9-2020-q2-update/bin/arm-none-eabi-gdb

然后进行一点测试,看看环境对不对再往下走
比如我用fmuv5的pixhawk4:

openocd -f interface/stlink.cfg -f target/stm32f7x.cfg
arm-none-eabi-gdb build/px4_fmu-v5_default/px4_fmu-v5_default.elf -ex "target extended-remote :3333"

在这里插入图片描述
可能的报错:

arm-none-eabi-gdb: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory

安装对应的库即可

sudo apt-get update
sudo apt-get install libncurses5

usb设备权限问题

px4qgc@ubuntu:~$ openocd -f interface/stlink.cfg -f target/stm32f7x.cfg
Open On-Chip Debugger 0.11.0-dirty (2023-10-28-03:57)
Licensed under GNU GPL v2
For bug reports, readhttp://openocd.org/doc/doxygen/bugs.html
Info : auto-selecting first available session transport "hla_swd". To override use 'transport select <transport>'.
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
Info : Listening on port 6666 for tcl connections
Info : Listening on port 4444 for telnet connections
Info : clock speed 2000 kHz
Error: libusb_open() failed with LIBUSB_ERROR_ACCESS

为stlink添加usb规则

sudo gedit /etc/udev/rules.d/99-openocd.rules
# For ST-Link
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3744", MODE:="666"
# For ST-Link V2
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3748", MODE:="666"
# For ST-Link V2-1 (STM32 Nucleo boards)
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="374b", MODE:="666"
# For ST-Link V3
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3753", MODE:="666"
# For ST-Link V3 MINIE
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3754", MODE:="666"

vscode配置

从github上面clone下来代码有一个.vscode文件夹,这个非常重要,给定了vscode的很多配置
按照官方文档安装vscode插件,注意,如果用的arm-gcc版本是2020-q2,gdb版本就是8,不能用最新的cortex-bug,我试了1.4.3可以

在这里插入图片描述

task.json里面加上

        {"label": "echo","type": "shell","command": "echo ${env:USERNAME}"},{"dependsOn":"Build","label": "Build and Download","type": "shell","command": "openocd","args": ["-f","interface/stlink.cfg","-f","target/stm32f7x.cfg","-c","program ./build/px4_fmu-v5_default/px4_fmu-v5_default.elf 0x8000  verify reset exit "],"problemMatcher": []},

launch.json加上:

        {"name": "FMUv5 Debug ST-Link","type": "cortex-debug","request": "launch","cwd": "${workspaceRoot}","executable": "${command:cmake.launchTargetPath}",//"serverpath": "${env:JLINK_SERVER}","servertype": "openocd","device": "STM32F765II","interface": "swd","configFiles": ["interface/stlink.cfg","target/stm32f7x.cfg"],"serialNumber": "", //If you have more than one J-Link probe, add the serial number here."svdFile": "STM32F7x5.svd","preLaunchTask":"Build and Download"},

给px4_simple_app.c加一个断点,点击调试,openocd会负责用stlink刷入最新固件,并启动调试
在这里插入图片描述

效果如下图:
在这里插入图片描述
在这里插入图片描述
默认的那个st-util从来没在fmuv5上面好使过,会进入下面这个图的莫名其妙的地方,不用了,v6c倒是可以

在这里插入图片描述
如果遇到没有要编译的对象,比如6c,在这自己加就行
在这里插入图片描述

pixhawk6c

默认的就可以,但是感觉费劲死了,写一下openocd的配置
烧写命令:

openocd -f interface/stlink.cfg -f target/stm32h7x_dual_bank.cfg -c "program ./build/px4_fmu-v6c_default/px4_fmu-v6c_default.elf verify reset exit "
openocd -f interface/stlink.cfg -f target/stm32h7x_dual_bank.cfg
arm-none-eabi-gdb build/px4_fmu-v6c_default/px4_fmu-v6c_default.elf -ex "target extended-remote :3333"

launch.json

        {"name": "FMUv6c Debug ST-Link","type": "cortex-debug","request": "launch","cwd": "${workspaceRoot}","executable": "${command:cmake.launchTargetPath}",//"serverpath": "${env:JLINK_SERVER}","servertype": "openocd","device": "STM32H743VI","interface": "swd","configFiles": ["interface/stlink.cfg","target/stm32h7x_dual_bank.cfg"],"serialNumber": "", //If you have more than one J-Link probe, add the serial number here."svdFile": "STM32H743.svd","preLaunchTask":"Build and Download"},

launch.json 如果不想每次都重新编译,就把executable改了

        {"name": "FMUv6c Debug ST-Link","type": "cortex-debug","request": "launch","cwd": "${workspaceRoot}","executable": "./build/px4_fmu-v6c_default/px4_fmu-v6c_default.elf",//"serverpath": "${env:JLINK_SERVER}","servertype": "openocd","device": "STM32H743VI","interface": "swd","configFiles": ["interface/stlink.cfg","target/stm32h7x_dual_bank.cfg"],"serialNumber": "", //If you have more than one J-Link probe, add the serial number here."svdFile": "STM32H743.svd","preLaunchTask":"Build and Download"},

tasks.json

        {"label": "echo","type": "shell","command": "echo ${env:USERNAME}"},{// "dependsOn":"Build","label": "Build and Download","type": "shell","command": "openocd","args": ["-f","interface/stlink.cfg","-f","target/stm32h7x_dual_bank.cfg","-c","program ./build/px4_fmu-v6c_default/px4_fmu-v6c_default.elf verify reset exit "],"problemMatcher": []},

原版st-util配置文件:

        {"name": "stlink (px4_fmu-v6c)","gdbPath": "/opt/gcc-arm-none-eabi-9-2020-q2-update/bin/arm-none-eabi-gdb","device": "STM32H743VI","svdFile": "STM32H743.svd","executable": "./build/px4_fmu-v6c_default/px4_fmu-v6c_default.elf","request": "launch","type": "cortex-debug","servertype": "stutil","cwd": "${workspaceFolder}","internalConsoleOptions": "openOnSessionStart","preLaunchCommands": ["source ${workspaceFolder}/platforms/nuttx/Debug/PX4","source ${workspaceFolder}/platforms/nuttx/Debug/NuttX","source ${workspaceFolder}/platforms/nuttx/Debug/ARMv7M","set mem inaccessible-by-default off","set print pretty",]},

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/156530.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

lua-resty-request库写入爬虫ip实现数据抓取

根据提供的引用内容&#xff0c;正确的库名称应该是lua-resty-http&#xff0c;而不是lua-resty-request。使用lua-resty-http库可以方便地进行爬虫&#xff0c;需要先安装OpenResty和lua-resty-http库&#xff0c;并将其引入到Lua脚本中。然后&#xff0c;可以使用lua-resty-h…

Windows公网远程连接MongoDB数据库【无公网IP】

文章目录 前言1. 安装数据库2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射2.3 测试随机公网地址远程连接 3. 配置固定TCP端口地址3.1 保留一个固定的公网TCP端口地址3.2 配置固定公网TCP端口地址3.3 测试固定地址公网远程访问 前言 MongoDB是一个基于分布式文件存储的数…

2023年【道路运输企业主要负责人】考试技巧及道路运输企业主要负责人复审模拟考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2023年【道路运输企业主要负责人】考试技巧及道路运输企业主要负责人复审模拟考试&#xff0c;包含道路运输企业主要负责人考试技巧答案和解析及道路运输企业主要负责人复审模拟考试练习。安全生产模拟考试一点通结合…

网络安全漏洞管理与修复: 深入研究漏洞管理流程,包括漏洞扫描、评估、修复和验证。

网络安全是当今数字时代的重要议题&#xff0c;随着技术的不断发展&#xff0c;网络攻击和漏洞问题也日益复杂。在这篇文章中&#xff0c;我们将深入研究网络安全漏洞管理与修复的流程&#xff0c;包括漏洞扫描、评估、修复和验证。通过理解和实施这一流程&#xff0c;组织可以…

Django实战项目-学习任务系统-自定义URL拦截器

接着上期代码框架&#xff0c;6个主要功能基本实现&#xff0c;剩下的就是细节点的完善优化了。 首先增加URL拦截器&#xff0c;你不会希望没有登录用户就可以进入用户主页各种功能的&#xff0c;所以增加URL拦截器可以解决这个问题。 Django框架本身也有URL拦截器&#xff0…

前端项目 index.html 中发请求 fetch

想要在前端项目 index.html文件中向后端发起请求&#xff0c;但是引入axios报错&#xff08;我这边会报错&#xff09;&#xff0c;可以使用fetch。 //window.location.origin----获取域名&#xff0c;包括协议、主机号、端口号fetch(window.location.origin "/api/pla…

server2012 通过防火墙开启局域网内限定IP进行远程桌面连接

我这里需要被远程桌面的电脑系统版本为windows server2012 1、打开允许远程连接设置 2、开启防火墙 3、设置允许“远程桌面应用”通过防火墙 勾选”远程桌面“ 3、入站规则设置 高级设置→入站规则→远程桌面-用户模式(TCP-In) 进入远程桌面属性的作用域——>远程IP地址—…

So-vits-SVC4.1

So-vits-SVC官方项目地址&#xff1a;https://github.com/svc-develop-team/so-vits-svc 中文版&#xff1a;https://github.com/SUC-DriverOld/so-vits-svc-Chinese-Detaild-Documents 教程&#xff1a;https://www.bilibili.com/video/BV1Hr4y197Cy/ 音频处理 1.转mp4/mp…

一台服务器安装两个mysql、重置数据库用于测试使用

文章目录 一、切数据库数据存储文件夹已经存在数据库数据文件夹新建数据库数据文件夹 二、安装第二个mysql安装新数据库初始化数据库数据启动数据库关闭数据库 三、mysqld_multi单机多实例部署参考文档 一、切数据库数据存储文件夹 这个方法可以让你不用安装新的数据库&#x…

分享3个适合大学生使用的白板笔记软件,学习效率蹭蹭上涨!

现如今许多大学生不在使用纸和笔进行做笔记了&#xff0c;通通改成了各种笔记软件&#xff0c;如何选择一个好用的笔记软件&#xff0c;是当代大学生较为头疼的事&#xff0c;小编今天通过这篇文章&#xff0c;为你推荐3款宝藏级笔记软件&#xff0c;大家一定要收藏好&#xff…

「软件设计师」 2023年上半年上午真题解析

「软件设计师」 2023年上半年上午真题解析 提示&#xff1a;系列被面试官问的问题&#xff0c;我自己当时不会&#xff0c;所以下来自己复盘一下&#xff0c;认真学习和总结&#xff0c;以应对未来更多的可能性 关于互联网大厂的笔试面试&#xff0c;都是需要细心准备的 &…

springboot+vue档案管理系统分析与可视化系统的设计与实现【内含源码+文档+部署教程】

博主介绍&#xff1a;✌全网粉丝10W,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业毕业设计项目实战6年之久&#xff0c;选择我们就是选择放心、选择安心毕业✌ &#x1f345;由于篇幅限制&#xff0c;想要获取完整文章或者源码&#xff0c;或者代做&am…