#scanf #stm32 #newlib
#scanf #stm32 #newlib
Вопрос:
я использую gcc для компиляции своего проекта, использую функцию sscanf () в main, размер стека равен 4k, я отлаживаю программу в gdb, показываю инструкцию VPUSH, создающую исключение.
и я тестирую функцию sprintf(), она отлично работает. почему функция sscanf() не работает в newlib для stm32?
Ответ №1:
Кроме STM32 серии F4, эти контроллеры не поддерживают инструкции с плавающей запятой, vpush
являясь одной из них.
Проблема должна быть решена путем компиляции newlib с помощью -mfloat-abi=soft
(а не softfp
или hard
).