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.rhkb.cn/news/176859.html

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

相关文章

服务器带宽忽然暴增,不停的触发告警

问题&#xff1a; 线上环境&#xff0c;服务器的外网下行带宽达到某个阈值&#xff0c;触发告警&#xff0c;查了下服务器的带宽监控信息&#xff0c;是从某个时间开始突然串上去的&#xff0c;然后监控图形非常有规律&#xff0c;都是每秒达到顶峰后&#xff0c;又立马下去了…

IDEA初步入门

1 安装 现在的系统更迭很快&#xff0c;很多软件都只支持win10 和 11了&#xff0c;但我们过时党还在用win7. 所以就必须找到合适的版本。在windows 7 64位系统下&#xff0c;可以使用IDEA 2020.1.4版本。 在Jetbrain官方下&#xff0c;找到历史版本&#xff0c;找到windows版…

php收发邮件的多种方法?

1、添加扩展&#xff1a; # 第一种&#xff1a; composer require php-imap/php-imap # 第二种&#xff1a; composer require phpmailer/phpmailer2、这里采用第二种方式&#xff1a; <?php declare(strict_types1);namespace App\Controller\v1\email;use App\Controll…

怎样利用 AI 大模型,辅助研发管理与效能提升?

AI 大模型已经逐渐渗透到各行各业的应用场景中&#xff0c;在软件研发领域也不例外。在软件研发领域&#xff0c;从需求分析到软件设计&#xff0c;从软件开发到测试&#xff0c;以及最后发布上线&#xff0c;AI 在各个环节都发挥着重要作用。10 月 21 日&#xff0c;思码逸首席…

计算机从内存中读取数组元素

在计算机中&#xff0c;我们可以把内存看成是一些排列好的格子&#xff0c;每个格子对应一个内存地址&#xff0c;那么数据会分散的存储在不同的格子中&#xff1a; 对于数组&#xff0c;计算机会在内存中为其申请一段连续的空间&#xff0c;并且会记下索引为0处的内存地址&…

图像特征Vol.1:计算机视觉特征度量|第二弹:【统计区域度量】

目录 一、前言二、统计区域度量2.1&#xff1a;图像矩特征2.1.1&#xff1a;原始矩/几何矩2.1.2&#xff1a;中心距2.1.3&#xff1a;归一化的中心矩2.1.4&#xff1a;不变矩——Hu矩2.1.5&#xff1a;OpenCv实现矩特征及其应用 2.2&#xff1a;点度量特征2.3&#xff1a;全局直…

Jmeter之JSR223

一、JSR223组件 JSR是Java Specification Requests的缩写,意思是Java规范提案。JSR已成为Java界的一个重要标准. JSR223其实包含了有好几种组件,但是其用法都是一致的,并且都是执行一段代码&#xff0c;主要分类如下&#xff1a; JSR223 PreProcessor JSR223 Timer JSR223 S…

【二叉树经典题目】

根据二叉树创建字符串 本题的关键在于什么情况要省略括号&#xff0c;什么情况不能省略&#xff1a; 左右为空可以省略括号 左不为空&#xff0c;右为空可以省略括号左为空,右不为空不能省略括号 class Solution { public://1.左右为空可以省略括号//2.左不为空&#xff0c;右…

初识HTML超文本标记语言

文章目录 前端简介引入前端三剑客什么是HTML&#xff1f;超文本传输协议前戏HTTP超文本传输协议1.什么是HTTP协议2.四大特性3.数据格式4.响应状态码 基于HTTP协议搭建HTMLHTML简介HTML文档结构head常见标签1.meta 定义网页源信息(很多配置)2.style内部支持编写CSS代码3.link引入…

SpringCloud(二) Eureka注册中心的使用

在SpringCloud(一)中,我们学会了使用RestTemplate进行远程调用,但是在调用user-service时候需要在order-service中发送http请求,请求中需要书写对应微服务的ip和端口号,十分不方便,如果此时有多个user-service实例的话,就不知道调用哪个了(除非每次调用的时候都对ip和端口号进行…

论文-分布式-并发控制-并发控制问题的解决方案

目录 参考文献 问题 解法与证明 易读版本 参考文献 Dijkstra于1965年发表文章Solution of a Problem in Concurrent Programming Control&#xff0c;引出并发系统下的互斥(mutual exclusion)问题&#xff0c;自此开辟了分布式计算领域Dijkstra在文中给出了基于共享存储原子…

sqlite3 关系型数据库语言 SQL 语言

SQL(Structured Query Language)语言是一种结构化查询语言,是一个通用的,功能强大的关系型数据库操作语言. 包含 6 个部分: 1.数据查询语言(DQL:Data Query Language) 从数据库的二维表格中查询数据,保留字 SELECT 是 DQL 中用的最多的语句 2.数据操作语言(DML) 最主要的关…

易点天下受邀参与云栖大会,以AIGC重塑出海营销新范式

10月31日&#xff0c;2023云栖大会在杭州云栖小镇拉开帷幕。与往年不同&#xff0c;今年的云栖大会以“计算&#xff0c;为了无法计算的价值”为主题&#xff0c;与国际潮流科技大会组织方式接轨&#xff0c;通过云计算、人工智能、产业创新三大主题馆40000平科技展&#xff0c…

redis缓存穿透

redis缓存穿透 模拟一个缓存穿透的环境&#xff1a; redis缓存穿透1. 准备一个GET请求并且在第一次访问的时候将数据写入缓存2. 再次访问的时候首先判断缓存是否命中3. 命中了直接返回&#xff0c;未命中重建缓存1. 缓存空对象2. 布隆过滤器 1. 准备一个GET请求并且在第一次访问…

avi怎么转mp4?

avi怎么转mp4&#xff1f;如今市面上涌现了各种多样的视频格式&#xff0c;其中AVI作为一种音频视频交错格式&#xff0c;虽然使用较少但相对常见。它的优点在于占用空间较小&#xff0c;但画面质量并不是很出色。然而&#xff0c;AVI格式也存在一个明显的缺点&#xff0c;即兼…

柯桥专升本学校,自考本科文凭的价值如何?

自考本科文凭的价值如何&#xff1f; 自考本科学历是通过独立学习和考试获得的一种本科学历。对于自考本科学历的价值&#xff0c;很多人感到困惑&#xff0c;那么究竟自考本科学历有多大的价值呢? 首先&#xff0c;在就业市场上&#xff0c;自考本科学历具有一定的竞争力。随…

VBA技术资料MF77:组合所选范围中的所有形状

我给VBA的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的工作效率&#xff0c;而且可以提高数据的准确度。我的教程一共九套&#xff0c;分为初级、中级、高级三大部分。是对VBA的系统讲解&#xff0c;从简单的入门&#xff0c;到…

横屏签字板手写签名并旋转90°转为横屏显示base64

手写签名并旋转90转为横屏显示base64 base64 data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAApsAAAF3CAYAAADq/IAAAAAAAXNSR0IArs4c6QAAIABJREFUeF7t3W3MPlldH/CvwLK7wEKNoiABZLvYiBqIdJGnQlor9gVBaAtJmzQsoI2wgKD4hqVNmrD7ohWhPFRSIgaKO0XTS8AVLb4AIVtFnaSiMPSktxoyVVWFxAF…

我的云栖大会之旅:见证云计算创新的15年

云栖大会&#xff0c;曾经是一次不可思议的科技之旅&#xff0c;却如今已见证了我对云计算世界的15年关注和发展。第一次踏上云栖大会之旅&#xff0c;我记得是在2009年。那时的云计算还是一个新生事物&#xff0c;而云栖大会正是其中的奠基石。 我清楚地记得那个炎热的夏天&am…