ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
4 мая
378545 Топик полностью
fk0, легенда (05.01.2013 03:25, просмотров: 101) ответил fk0 на Имеем программу. Много константных данных, например, строк текста и т.п. Есть большой внешний накопитель, flash, например. Но за пределами адресного пространства CPU. Хочется сэкономить программную память. Можно данные декларировать и к данным
Демонстрация концепции в приложенном архиве. Вкратце, заставить GNU ld выкинуть секцию невозможно... но можно вырезать потом из исполняемого файла с помощью objcopy. При этом можно получить неработающий бинарник (не осилил почему -- понял, что если данные INSERT AFTER .bss, то всё ок, иначе не факт). И "(OVERLAY)" нужно по той же причине. Вместо смещений в BIN-файле можно использовать какие-то несуществующие адреса в RAM микроконтроллера -- тогда становится возможным на лету по адресу понимать, интерпретировать его как есть или читать через кеш...
[ZX]