Столкнулся с неожиданной проблемой форматированного вывода в строку значения типа float. Контроллер улетает в исключение.
Но с целыми числами все работает. Путем разных танцев с бубном выяснил, что вроде, валится функция _dtoa_r(), которая, как я понял, вызывается в sprintf().
Флаги ‘c’, nosys, ‘m’, ‘gcc’ в Libraries в MCStudio стоят, FPU включен и работает. Флаг ‘-u _printf_float’ в настройках C Compiler тоже есть.
В чем может быть проблема?
Вроде бы, сам нашёл решение:
если запретить все исключения FPU в регистре FENR, то sprintf работает без сбоев.
Сам спросил, сам ответил!