当前位置: 首页 > backend >正文

【RP2350】香瓜树莓派RP2350之Debug仿真报错的处理

本文最后修改时间:2025年02月12日 01:57

一、本节简介

本节以树莓派pico2开发板为例,对用vs code仿真时出现的问题进行处理。

二、实验平台

1、硬件平台

1)树莓派pico2开发板

①树莓派pico2开发板*2

②micro usb数据线

2)电脑

2、软件平台

1)VS CODE

三、版权声明

1)作者:甜甜的大香瓜

2)声明:喝水不忘挖井人,转载请注明出处。

3)纠错/业务合作:897503845@qq.com

4)香瓜嵌入式之树莓派群:512598061

5)本文出处:原创连载资料《简单粗暴学树莓派》

6)完整开源资料下载地址(电脑端打开):

opengua.taobao.com

四、实验前提

1、在进行本文步骤前,请先阅读以下章节:

1)《简单粗暴学树莓派》的“第一章至第二章”章节

2、在进行本文步骤前,请先实现以下章节:

1)《简单粗暴学树莓派》的《香瓜树莓派RP2350之搭建开发环境(windows)》

五、基础知识

1、openocd和GDB是什么?

答:

1)以stm32为例,源代码->MDK(编译、仿真、下载)->STM32。

2)以RP2350为例,源代码->GDB(用于发送调试指令)->openocd(将GDB的调试指令,转为SWD接口信号)->STM32。

2、交叉编译是什么?

答:windows系统上编译出来的文件,放到arm芯片(另一个系统平台)上去用,这个编译过程就叫交叉编译。本文用的arm-none-eabi-gdb就是交叉编译工具。

3、仿真时出现“OpenOCD: GDB Server Quit Unexpectedly. See gdb-server output in TERMINAL tab for more details.”怎么办?

答:

1)确保开发板选择正确、不使用Risc-V

安装好后重载vs code

重载后可看到已选择了pico2开发板

2、打开调试信息

上图加入的代码为:

"showDevDebugOutput": "raw" ,

3、覆盖openocd的文件夹

其中interface文件夹和target文件夹,是从scripts文件夹里复制出来的,如果不复制出来,vs code中可能会导致找不到

4、命令行调试

①使用“WIN+R”+“CMD”,打开两个命令行工具(不要使用Developer Command Prompt for VS 2022,环境不一样),左右各摆放一个。

②左边的依次输入(注意核对自己电脑中的路径)

cd .\.pico-sdk\openocd\0.12.0+dev

openocd –f interface/cmsis-dap.cfg –f target/rp2350.cfg –s tcl

出现上图则表示openocd是正常的了,如果有异常需解决后再往下执行。

③右边的依次输入(注意核对自己电脑中的路径)

D:

cd .\work\demo\blink\build

arm-none-eabi-gdb blink.elf

如果运行提示找不到gcc工具链,是Arm GNU Toolchain工具没有装好。

④右边的继续输入:

target remote localhost:3333

load

monitor reset init

continue

此时就已经在全速运行,可以看到目标板的led在闪烁。

5)如果板子有做低功耗,也可能因为睡死而导致进不去仿真器。解决方法是通过usb线连接电脑先更新一个没有低功耗的固件,再进行仿真。

睡眠函数最好是经过5秒之后再进入,否则很难进行仿真调试。

http://www.xdnf.cn/news/5475.html

相关文章:

  • 详解 Java 并发编程 synchronized 关键字
  • Dockerfile 完全指南:从入门到最佳实践
  • 冰箱拆解学习
  • 中北大学动漫创新实验室问题汇总答疑
  • 2025年PMP 学习九 -第7章 项目成本管理
  • 并发笔记-给数据上锁(二)
  • 软件测试都有什么???
  • split和join的区别‌
  • 左右括号的最小处理次数
  • Redis 基础详解:从入门到精通
  • 本贴会成为记录贴
  • 如何读懂《纯粹理性批判》
  • 【软件测试】基于项目驱动的功能测试报告
  • Java在人工智能中的应用:机器学习与深度学习技术探讨
  • 详解SLAM中的李群和李代数(中)
  • HCIP-BGP实验一
  • Quartus与Modelsim-Altera使用手册
  • JavaSE核心知识点02面向对象编程02-08(异常处理)
  • 常见的会触发 Shuffle 的操作和方法
  • 时序约束高级进阶使用详解四:Set_False_Path
  • 学习黑客5 分钟小白弄懂Windows Desktop GUI
  • win10-django项目连接本地mysql
  • 系统思考:个人与团队成长
  • BGP实验练习1
  • Linux系统编程之消息队列
  • 如何重启pycharm中的项目?
  • 基于STM32单片机设计的教室节能照明系统
  • HTML5表格语法格式详解
  • 用浏览器打开pdf,如何使用划词翻译?
  • MySQL 数据操纵与数据库优化