Программирование AVR: решение проблем, FAQ IAR Embedded Workbench IDE, порча RAM функцией printf Fri, August 18 2017  

Поделиться

нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.


IAR Embedded Workbench IDE, порча RAM функцией printf Печать
Добавил(а) microsin   

Подпрограммы, вызываемые внутри printf, портят иногда глобальные ячейки памяти.

У меня, например, printf портила 2 байта RAM, и из-за этого затиралась ячейка памяти (сегмент TINY_Z). Побороть это можно только 2-мя способами - либо не использовать printf, либо добавить сразу после объявления переменной, которая портится, "тупую" переменную типа int (2 байта), которая просто резервирует память, которую потом будет портить printf. Пример (uchar и uint это unsigned char и unsigned int):

uchar _lcd_x, _lcd_y, _lcd_maxx; //раньше у нас портились ячейки _lcd_y и _lcd_maxx
uint dummy;                      //теперь будет портиться dummy

 

 

Добавить комментарий


Защитный код
Обновить

Top of Page