使用-ffast-math

时间:2017-08-27 13:38:22

标签: assembly arm gdb interrupt

我正在尝试启动简单的LED闪烁应用程序,一切正常,但如果我添加-ffast-math,则会出现严重错误。我通过GDB调试,发现如果我添加-ffast-math,它会从__libc_init_array中调用__arm_set_fast_math作为初始化例程的一部分(来自.init_array部分)

反汇编__arm_set_fast_math显示:

080001f4 <__arm_set_fast_math>:
 80001f4:       eef1 3a10       vmrs    r3, fpscr
 80001f8:       f043 7380       orr.w   r3, r3, #16777216       ;0x1000000
 80001fc:       eee1 3a10       vmsr    fpscr, r3
 8000200:       4770            bx      lr
 8000202:       bf00            nop

根据GDB:

0x080001f4 in __arm_set_fast_math ()
(gdb) stepi
HardFault_Handler () at src/stm32f4xx_it.c:61

它会立即跳转到hardFault处理程序。删除--fast-math修复了一切。任何的想法?谢谢!

0 个答案:

没有答案