vak255 (09.08.2007 12:09, просмотров: 1) ответил VAI на ИМХО, вполне логично оструктурить. Еще можно попробовать взять адрес переменной const или обратиться к ней через адрес, тогда компилятор должен будет ее завести.
Спасибо, решил обструктурить, потому как при использовании volatile было много warning'ов и глючков. Есть конечно у меня непонятки с sprintf с отключеной оптимизацией - в 100% случаев при выполнении sprintf портится содержимое RAM в области 0x820-0x880 (в конце сегмента DATA16_Z), сегменты располагаются так:
DATA16_I 0200 - 0228
DATA16_Z 022A - 0882
CSTACK 09B0 - 09FF
пробовал увеличивать стек - не помагает...
с оптимизацией сегменты располагаются так:
DATA16_I 0200 - 0228
DATA16_Z 022A - 0815
CSTACK 09B0 - 09FF
но в какие-то моменты изменения кода программы, происходит тоже самое что и без оптимизации. вот например если к данным в INFO обращаться через volatile, то после sprintf тоже портятся переменные в озу, находящиеся в конце сегмента DATA16_Z... :)
мозг плывет, не знаю что покурить :)