ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
25 апреля
377436
fk0, легенда (26.12.2012 10:34, просмотров: 7442)
Имеем программу. Много константных данных, например, строк текста и т.п. Есть большой внешний накопитель, flash, например. Но за пределами адресного пространства CPU. Хочется сэкономить программную память. Можно данные декларировать и к данным обращаться через макросы, например. Один из которых, например, размещает данные в каком-то отличном адресном пространстве, которое не попадает в HEX (но как-то попадает в другой файл, для записи в flash, например). Другой макрос обращается к данным, путём их считывания в RAM и выдачи указателя. В памяти хранится не более N последних запрашиваемых записей, например. И это задача программиста не оставлять долгоживущих ссылок на такие данные. Или придумать что-то ещё. И третий макрос комбинирует первые два макроса, для доступа к строкам текста, например, заданным непосредственно в месте обращения printf(XXX("blablabla")... Кто что думает, насколько жизнеспособно? Видится, в GCC это всё можно сделать. Не совсем понятно в какую секцию класть такие "внешние" данные, как объяснить линкеру, что их нужно записать в отдельный файл.
[ZX]