gpt4 book ai didi

arm - STDOUT 与 GDB、OopenOCD 和半主机的结合在哪里?

转载 作者:行者123 更新时间:2023-12-03 14:55:31 24 4
gpt4 key购买 nike

我试图找出 ARM (STM32042) 上的 semihostong。我可以看到 printf如果我运行 openocd 的输出直接从命令行并从 gdb 连接到它通过 TCP。但是如果我启动 openocd从内部 gdb ,输出到天空中的一些大/dev/null 。

如果我启动 openocd我自己

$ openocd -f interface/stlink-v2-1.cfg -f target/stm32f0x.cfg

并从 gdb 连接到它像这样
(gdb) target remote localhost:3333

我看到 printf opeocd 中的输出终端。但是如果我启动 openocd从内部 gdbthis link建议,
(gdb) target remote | openocd -f interface/stlink-v2-1.cfg -f target/stm32f0x.cfg -c "gdb_port pipe"

我看到所有 openocd调试消息(例如, xPSR: 0xc1000000 pc: 0x08001648 msp: 0x20001800, semihosting ),但不是我的 printf s。

最佳答案

结果比我想要的稍微复杂一些。显然,在管道中启动 GDB 和 OpenOCD 是不可能的;他们需要通过套接字进行双向通信。因为它需要两个单独的命令调用,并且因为 GDB 的配置不仅仅是一行代码,所以我把它放到了一个自己的小存储库中:

https://github.com/arikrupnik/semihosting-ut

该存储库具有将 stdout 路由到控制台的代码,但它的作用不止于此。我一直在广泛地使用它对 http://www.dish.tc 的 ARM 目标进行单元测试。 ,并发现它非常有用。我很高兴回答有关它的问题。

关于arm - STDOUT 与 GDB、OopenOCD 和半主机的结合在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58126134/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com