发新帖我要提问
12
返回列表
打印
[应用相关]

使用 openocd 调试 STM32F103

[复制链接]
手机看帖
扫描二维码
随时随地手机跟帖
21
工程师犹饿死|  楼主 | 2021-8-4 16:27 | 只看该作者 回帖奖励 |倒序浏览
cargo readobj --bin app -- -file-headers

使用特权

评论回复
22
工程师犹饿死|  楼主 | 2021-8-4 16:28 | 只看该作者
提示错误:
Finished dev [unoptimized + debuginfo] target(s) in 0.02s
Failed to execute tool: readobj

使用特权

评论回复
23
工程师犹饿死|  楼主 | 2021-8-4 16:28 | 只看该作者
可以直接使用 arm-none-eabi-xxx 命令代替吧:

使用特权

评论回复
24
工程师犹饿死|  楼主 | 2021-8-4 16:29 | 只看该作者
arm-none-eabi-readelf -h target/thumbv7m-none-eabi/debug/app

使用特权

评论回复
25
工程师犹饿死|  楼主 | 2021-8-4 16:33 | 只看该作者
我们可以看看代码的位置和大小(主要是确认是否和 memory.x 一致)

使用特权

评论回复
26
工程师犹饿死|  楼主 | 2021-8-4 16:35 | 只看该作者
arm-none-eabi-size -A -x target/thumbv7m-none-eabi/debug/app

使用特权

评论回复
27
工程师犹饿死|  楼主 | 2021-8-4 16:36 | 只看该作者
输出:
target/thumbv7m-none-eabi/debug/app  :
section              size         addr
.vector_table       0x400    0x8000000
.text               0x558    0x8000400
.rodata             0x138    0x8000958
.data                 0x0   0x20000000
.bss                  0x0   0x20000000
.uninit               0x0   0x20000000
.debug_abbrev      0x1432          0x0
.debug_info       0x21e99          0x0
.debug_aranges     0x1ca0          0x0
.debug_ranges     0x17f30          0x0
.debug_str        0x2b41f          0x0
.debug_pubnames    0x9800          0x0
.debug_pubtypes     0xad8          0x0
.ARM.attributes      0x32          0x0
.debug_frame       0x5b5c          0x0
.debug_line       0x2643b          0x0
.debug_loc          0x17e          0x0
.comment             0x6d          0x0
Total             0x9f1d6

使用特权

评论回复
28
工程师犹饿死|  楼主 | 2021-8-4 16:36 | 只看该作者
6. 调试
修改 openocd.cfg

使用特权

评论回复
29
工程师犹饿死|  楼主 | 2021-8-4 16:37 | 只看该作者
原来内容如下:

使用特权

评论回复
30
工程师犹饿死|  楼主 | 2021-8-4 16:37 | 只看该作者
# Sample OpenOCD configuration for the STM32F3DISCOVERY development board

# Depending on the hardware revision you got you'll have to pick ONE of these
# interfaces. At any time only one interface should be commented out.

# Revision C (newer revision)
source [find interface/stlink-v2-1.cfg]

# Revision A and B (older revisions)
# source [find interface/stlink-v2.cfg]

source [find target/stm32f3x.cfg]

使用特权

评论回复
31
工程师犹饿死|  楼主 | 2021-8-4 17:04 | 只看该作者
因为我用的是 jlink,所以改成如下内容:

使用特权

评论回复
32
工程师犹饿死|  楼主 | 2021-8-4 17:05 | 只看该作者
# Sample OpenOCD configuration for the STM32F3DISCOVERY development board

# Depending on the hardware revision you got you'll have to pick ONE of these
# interfaces. At any time only one interface should be commented out.

# Revision C (newer revision)
source [find interface/jlink.cfg]

source [find target/stm32f3x.cfg]

使用特权

评论回复
33
工程师犹饿死|  楼主 | 2021-8-4 17:05 | 只看该作者
启动 openocd

正常输出如下,提示监听 3333 端口:
Open On-Chip Debugger 0.11.0
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
Info : auto-selecting first available session transport "jtag". To override use 'transport select <transport>'.
Info : Listening on port 6666 for tcl connections
Info : Listening on port 4444 for telnet connections
Info : J-Link V9 compiled Dec 30 2018 15:35:20
Info : Hardware version: 9.20
Info : VTarget = 3.229 V
Info : clock speed 1000 kHz
Info : JTAG tap: stm32f3x.cpu tap/device found: 0x3ba00477 (mfg: 0x23b (ARM Ltd), part: 0xba00, ver: 0x3)
Warn : JTAG tap: stm32f3x.cpu       UNEXPECTED: 0x3ba00477 (mfg: 0x23b (ARM Ltd), part: 0xba00, ver: 0x3)
Error: JTAG tap: stm32f3x.cpu  expected 1 of 1: 0x4ba00477 (mfg: 0x23b (ARM Ltd), part: 0xba00, ver: 0x4)
Info : JTAG tap: stm32f3x.bs tap/device found: 0x06414041 (mfg: 0x020 (STMicroelectronics), part: 0x6414, ver: 0x0)
Error: Trying to use configured scan chain anyway...
Warn : Bypassing JTAG setup events due to errors
Info : stm32f3x.cpu: hardware has 6 breakpoints, 4 watchpoints
Info : starting gdb server for stm32f3x.cpu on 3333
Info : Listening on port 3333 for gdb connections

使用特权

评论回复
34
工程师犹饿死|  楼主 | 2021-8-4 17:08 | 只看该作者
启动 gdb。项目目录下的 openocd.gdb 中有些初始化命令,可以直接使用,免得手工输入。

使用特权

评论回复
35
工程师犹饿死|  楼主 | 2021-8-4 17:09 | 只看该作者
arm-none-eabi-gdb target/thumbv7m-none-eabi/debug/app -x openocd.gdb

使用特权

评论回复
36
工程师犹饿死|  楼主 | 2021-8-4 17:10 | 只看该作者
后续的调试方法就和 gdb 一样了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则