小编Rom*_*rio的帖子

Gdb 在调试 ARM7 微控制器的汇编程序时跳过源代码行

我在调试用汇编语言为 ARM7 微控制器 (AT91SAM7S64) 编写的简单程序时遇到问题。我使用 gcc、gdb 和 OpenOCD。我的程序被加载到正确的目标并且工作正常(它闪烁一个 LED)。但是当我调用“next”命令时,gdb 会跳过某些源代码行。

下面是一段源代码:

    Reset_Handler:

                LDR     R0, =0x0100
                LDR     R1, =PIOA_PER
                STR     R0, [R1]

                LDR     R1, =PIOA_OER
                STR     R0, [R1]
uuu:
                bl      wait;
                LDR     R1, =PIOA_SODR
                STR     R0, [R1]
uuu1:
                bl      wait;
                LDR     R2, =PIOA_CODR
                STR     R0, [R2]
                b       uuu;
@ one second delay
wait:
    .............
    .............

        .end
Run Code Online (Sandbox Code Playgroud)

为了获得 gdb 输出(见下文),我使用了“target sim”而不是真正的目标,但 rusults 是相同的。

(gdb) target sim
Connected to the simulator.
(gdb) load
Loading section .text, size 0xc8 vma 0x100000
Start address 0x100000 …
Run Code Online (Sandbox Code Playgroud)

assembly gcc gdb arm

5
推荐指数
1
解决办法
2412
查看次数

标签 统计

arm ×1

assembly ×1

gcc ×1

gdb ×1