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
|