のねのBlog

パソコンの問題や、ソフトウェアの開発で起きた問題など書いていきます。よろしくお願いします^^。

STM32CubeIde HardFault その7 _puts_r

0x80041f0 _sinit

f:id:none53:20190712091712p:plain
puts_r

1づれているようにみえる。 なんでだろう? 080041f1

f:id:none53:20190712091623p:plain
sinit

elfのlistを見ると、偶数番地に__sinitがある。 080041f0

f:id:none53:20190712164557p:plain
elf.list

080041f0 <__sinit>:
 80041f0:  6983       ldr r3, [r0, #24]
 80041f2:  b510        push    {r4, lr}
 80041f4:  4604       mov r4, r0
 80041f6:  bb33        cbnz    r3, 8004246 <__sinit+0x56>
 80041f8:  e9c0 3312  strd    r3, r3, [r0, #72]  ; 0x48
 80041fc:  6503       str r3, [r0, #80]  ; 0x50
 80041fe:  4b12        ldr r3, [pc, #72]  ; (8004248 <__sinit+0x58>)
 8004200:  4a12        ldr r2, [pc, #72]  ; (800424c <__sinit+0x5c>)
 8004202:  681b        ldr r3, [r3, #0]
 8004204:  6282       str r2, [r0, #40]  ; 0x28
 8004206:  4298       cmp r0, r3
 8004208:  bf04        itt eq
 800420a:   2301       moveq   r3, #1
 800420c:   6183       streq   r3, [r0, #24]
 800420e:   f000 f81f   bl  8004250 <__sfp>
 8004212:  6060       str r0, [r4, #4]
 8004214:  4620       mov r0, r4
 8004216:  f000 f81b   bl  8004250 <__sfp>
 800421a:   60a0        str r0, [r4, #8]
 800421c:   4620       mov r0, r4
 800421e:   f000 f817   bl  8004250 <__sfp>
 8004222:  2200       movs    r2, #0
 8004224:  60e0       str r0, [r4, #12]
 8004226:  2104       movs    r1, #4
 8004228:  6860       ldr r0, [r4, #4]
 800422a:   f7ff ffa1   bl  8004170 <std>

0x080041f0を入れたとき。

f:id:none53:20190712164958p:plain
偶数

0x080041f1を入れたとき。

f:id:none53:20190712164931p:plain
奇数
表示の問題なのかな?