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

国家示范院校建设网站太原seo网站排名

国家示范院校建设网站,太原seo网站排名,财税公司,网站开发常用开发语言文章目录 使用SWD进行调试构建 "Hello World" debug版本安装 GDB使用 GDB 和 OpenOCD 来 debug Hello World TIP重要提示 使用SWD进行调试 基于rp2040的板上的SWD端口重置,加载和运行代码,如树莓派Pico可用于交互式调试已加载的程序。这包括:…

文章目录

  • 使用SWD进行调试
    • 构建 "Hello World" debug版本
    • 安装 GDB
    • 使用 GDB 和 OpenOCD 来 debug Hello World
  • TIP
      • 重要提示

使用SWD进行调试

基于rp2040的板上的SWD端口重置,加载和运行代码,如树莓派Pico可用于交互式调试已加载的程序。这包括:

  • 在代码中设置断点
  • 逐行执行
  • 检查程序中不同点的变量值
    在交互方面,我们还需要一个调试器,比如无处不在的GNU调试器GDB。
    请注意,默认情况下,SDK构建高度优化的程序二进制文件,这在控制方面可能看起来非常不同,来自您编写的原始程序的流和数据流。当您尝试逐步执行代码时,这可能会使您感到交互式的困惑
    ,所以创建一个程序的调试构建通常是有帮助的,它没有那么积极地优化,所以真正的设备上控制流更接近于您的源代码。

构建 “Hello World” debug版本

警告
当使用SWD进行调试时,您需要使用基于UART的串行连接。作为USB堆栈,将在调试期间暂停停止RP2040内核,这将导致任何附加的USB设备断开连接。调试期间不能使用USB CDC串行连接。
你可以用CMAKE_BUILD_TYPE= debug构建一个调试版本的“Hello World”,如下所示:
$ cd ~/pico/pico-examples
$ rm -rf build
$ mkdir build
$ cd build
$ export PICO_SDK_PATH=…/…/pico-sdk
$ cmake -DCMAKE_BUILD_TYPE=Debug …
$ cd hello_world/serial
$ make -j4

安装 GDB

Install gdb-multiarch,

使用 GDB 和 OpenOCD 来 debug Hello World

确保您的树莓派4和树莓派Pico正确连接在一起,我们可以通过树莓派-swd接口将OpenOCD连接到芯片上,

$ openocd -f interface/raspberrypi-swd.cfg -f target/rp2040.cfg

你的输出应该是这样:

Info : rp2040.core0: hardware has 4 breakpoints, 2 watchpoints
Info : rp2040.core1: hardware has 4 breakpoints, 2 watchpoints
Info : starting gdb server for rp2040.core0 on 3333
Info : Listening on port 3333 for gdb connections

*** 警告 ***
如果您看到类似Info: DAP init failed这样的错误,那么您的树莓派Pico要么断电,要么连线不正确有信号完整性问题。尝试不同的GPIO跳线。
这个OpenOCD终端需要保持打开状态。因此,继续打开另一个终端,在这个终端中,我们将附加一个gdb实例到OpenOCD。
导航到“Hello World”示例代码,并从命令行启动gdb。

$ cd ~/pico/pico-examples/build/hello_world/serial
$ gdb-multiarch hello_serial.elf
Connect GDB to OpenOCD,
(gdb) target remote localhost:3333

TIP

您可以创建一个.gdb init文件,这样就不必每次都输入target remote localhost:3333。用echo
“target remote localhost:3333” > ~/.gdbinit.来完成。然而,这会干扰VSCode中调试时将 hello_serial.elf 加载入flash,

(gdb) load
Loading section .boot2, size 0x100 lma 0x10000000
Loading section .text, size 0x22d0 lma 0x10000100
Loading section .rodata, size 0x4a0 lma 0x100023d0
Loading section .ARM.exidx, size 0x8 lma 0x10002870
Loading section .data, size 0xb94 lma 0x10002878
Start address 0x10000104, load size 13324
Transfer rate: 31 KB/sec, 2664 bytes/write.

and then start it running.

(gdb) monitor reset init
(gdb) continue

重要提示

如果您看到类似于 Error finishing flash operation 或者 Error erasing flash with vFlashErase packet 在GDB中试图通过OpenOCD将二进制文件加载到树莓派Pico上,那么信号完整性可能很差
在树莓派和树莓派Pico之间。如果您没有直接连接SWD之间的连接这两块板,见图7,您应该尝试这样做。
或者,你可以试着减少adapter_khz 在raspberrypi-swd.cfg配置文件,尝试将其减半,直到您看到板之间成功连接。
由于我们在电路板之间进行敲打,时间是边际的,因此信号完整性差可能会导致错误。
或者,如果您想在运行可执行文件之前在main()处设置断点,

(gdb) monitor reset init
(gdb) b main
(gdb) continue
Thread 1 hit Breakpoint 1, main () at /home/pi/pico/picoexamples/hello_world/serial/hello_serial.c:11
11 stdio_init_all();

在到达断点后继续执行之前,

(gdb) continue

退出gdb类型,

(gdb) quit

有关如何使用gdb的更多信息,请参见:https://www.gnu.org/software/gdb/documentation/.

http://www.yayakq.cn/news/218713/

相关文章:

  • 网站建设毕业设计的分类号企业网站可以做淘宝客吗
  • 四川手机网站建设公司产品工业设计网站
  • 永州企业网站开发wordpress仿fe素材
  • 做全景效果图的网站做装修的网站怎么做好
  • 外贸网站建设设计外包公司做网站
  • 亚马逊跨境电商平台怎么入驻网络推广关键词优化公司
  • 萍乡商城网站建设家纺行业英文网站模板
  • 成都网站建设公司浅谈wordpress如何备份
  • 福州建设厅网站wordpress 判断
  • 东营北京网站建设学ui哪家培训机构好
  • 整站优化的公司网站建设用什么工具
  • 第9类商标有网站开发网站设计师工资怎样
  • 阳曲网站建设推荐咨询詹凌峰建盏简介
  • 金融营销的网站设计案例凡客诚品app下载
  • 电子商务公司注册资金最低多少seo优化主要做什么
  • 正规的徐州网站开发杭州网站制作机构
  • 外链提高网站权重2021最火关键词
  • 怎么做网上网站的网站wap网站开发协议
  • ppt网站建设答案wordpress 付费内容
  • 找加工订单的网站网站的黄金看盘软件
  • 网站优化建设永春建设局网站
  • 微信网站开发设计什么是互联网营销
  • 网站开发技能证书泰州做网站
  • 国税局网站里打印设置如何做二级目录 wordpress 伪静态
  • 餐厅网站建设网站开发学习培训
  • jquery网站开发实例帮别做网站
  • 架设网站 自己购买服务器官方网站百度一下
  • 中车网站建设的优缺点wordpress文章分类页面置顶
  • 如何增加企业网站被收录的几率如何实现wordpress伪静态
  • 苏州专业做网站较好的公司属于网站的管理 更新 维护