0

私は青い錠剤 (Stm32F103CB) で遊んでいて、アセンブリ経由で r7 レジスタを設定しようとしていましたが、

.syntax unified
.cpu cortex-m3
.fpu softvfp
.thumb

.global vtable
.global reset_handler

.type vtable, %object
vtable:
    .word _estack
    .word reset_handler
.size vtable, .-vtable


.type reset_handler, %function
reset_handler:

    LDR  r0, =_estack
    MOV  sp, r0
    LDR  r7, =0xDEADBEEF
.size reset_handler, .-reset_handler

バグは、gdb -> info レジスタ経由でレジスタ値を観察すると、下の画像に見られるように、 r7ではなくr8レジスタ セットが表示されることです。

ここに画像の説明を入力

elf の objdump 逆アセンブルも正しいようです。

ここに画像の説明を入力

なぜこれが起こっているのか理解できません。複数のボードで同じことを試しました。どうすればこの問題をデバッグして解決できますか。

前もって感謝します。

4

1 に答える 1