Если в иар-е настроенном по-умолчнию сделать наподобие: chаr a,b a = b / 10 -то расход статической памяти будет не 2-байта как может показаться, а 3 -в сегменте NEAR _С будет создана переменная инициируемая константой из постояннои пямяти что бы не использовать лишнее озу в мануале предлагают дыбильный волшебный способ -создать самому (!!!) константу с модификатором в ПЗУ (фактически и без того наявную для инициализации) __flash chаr c=10; и удовлетвориться таким костылем , или ... поставить галку в вклдке CODE "place aggregate initialisers in flash" после этого поймать ошибку линкера NEAR_C must have -P or -Z вписать ручкаи в файл линкера строчку типа Z(CODE) NEAR_C...... после чего всё слинкуется, все константы будут маппится на сегмент "флеш" -но работать эта петрушка не будет... подозреваю что компилер сгенерил все-таки код поинтерами в DATA..
-вопрос ,может кто-то поборол это красиво?
Сообщение отредактировал dimone - Jun 6 2014, 10:16
|