2011-05-10 4 views
1

J'utilise gcc compile mon projet, utilise la fonction sscanf() dans main, la taille de la pile est 4k, je débogue le programme dans gdb, montre l'instruction VPUSH jeter l'exception.newlib sscanf() throw hardfault exception dans stm32

et je teste la fonction sprintf(), ça marche bien. pourquoi la fonction sscanf() ne fonctionne pas dans newlib pour stm32?

Répondre

4

En dehors de la série STM32 F4, ces contrôleurs ne prennent pas en charge les instructions à virgule flottante, vpush étant l'une d'entre elles. Le problème doit être résolu en compilant newlib avec -mfloat-abi=soft (et non softfp ou hard).

Questions connexes