Сначала попытайтесь определить причину.Две мысли таковы:
- Проверьте, работает ли поток stdout.
- Проверьте, есть ли проблемы с памятью (как предполагает ошибка).
1.Проверка стандартного вывода:
Попробуйте использовать поток стандартного вывода без использования средства форматирования printf.Форматер раздут, как полагают люди, и, как правило, не очень хорошая идея для встроенных систем.Также вы настроили, куда направляется поток stdout (сопоставлен ли он с некоторым кодом UART, обычно во встроенных системах вам нужно написать или настроить это)?Протестируйте, используя putch ('.'), Putchar ('.') Или даже put ("Hello").
2.проверка памяти:
Попробуйте собрать код, который использует sprintf () сам по себе без stdout.Если это не сработает, то, скорее всего, это средство форматирования.Некоторые встроенные компиляторы позволяют настраивать библиотеку форматирования как меньшие параметры, чтобы обойти эту проблему (не поддерживает полную реализацию).