Используйте printf во встроенном c - PullRequest
1 голос
/ 04 июля 2019

Я работаю на микроконтроллере Aurix в Eclipse, мне нужно отобразить на консоли значения без знака, мне это понравилось

  printf ("% hhx", tab [j]);

, но у меня была эта ошибка:

  error: AppKit_TC277TFT_TimeDemo.elf section `.inttab' will not fit in 
  region `PMI_PSPR'

  error: region `PMI_PSPR' overflowed by 16788 bytes

Есть ли кто-нибудь, кто мог бы помочь мне

Ответы [ 3 ]

3 голосов
/ 04 июля 2019

Поиск PMI_PSPR Aurix в известной службе поиска вызывает это сообщение на форуме .

Очевидно, вы связываете свой код для запуска из ОЗУ.Измените настройки компоновщика, чтобы связать его с flash, и запустите его оттуда.

1 голос
/ 09 июля 2019

Использовать printf во встроенном c

Одним из способов является использование связи UART.

Преобразование числового значения в печатную форму ascii и отправка в UART, чтобы его можно было увидеть на консоли.

Для простых приложений вы можете рассмотреть возможность сохранения печатных символов в некотором буфере массива и в конце действия вывести буфер массива в UART

0 голосов
/ 05 июля 2019

Сначала попытайтесь определить причину.Две мысли таковы:

  1. Проверьте, работает ли поток stdout.
  2. Проверьте, есть ли проблемы с памятью (как предполагает ошибка).

1.Проверка стандартного вывода:

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

2.проверка памяти:

Попробуйте собрать код, который использует sprintf () сам по себе без stdout.Если это не сработает, то, скорее всего, это средство форматирования.Некоторые встроенные компиляторы позволяют настраивать библиотеку форматирования как меньшие параметры, чтобы обойти эту проблему (не поддерживает полную реализацию).

...