Цитата(Галстук @ Nov 18 2010, 00:23)

Ваш метод, как я понимаю, состоит в размещение по абсолютному адресу указателя на начало массива или структуры.
Примерно так. Это есть некое отображение flash в ОЗУ. Это очень удобно, когда работаешь под отладкой. Приятно работать не с массивом, а с конкретной структурой и просматривать ее содержимое в Watch, хотя последняя находится во flash.
Цитата(Галстук @ Nov 18 2010, 00:23)

Так что главное - операции стирания и записи блоков флеш. А их-то как на С30 реализовать?
В PIC24 стирание как и в PIC18 идет блоками по 1024 байта, запись также блоками по 64 байта. Не буду Вас заставлять читать pdf на С30, хотя было бы неплохо это сделать, там есть примеры и в мануале на PIC24 это хорошо описано. Просто у меня фунции чтения/записи в моих проектам завязаны с многими дефайнами и просто от туда их не выдернуть не потратив часок/другой. Если сами не разберетесь напишите в личку, отвечу попозжа.
Цитата(Галстук @ Nov 18 2010, 00:23)

2. А нельзя отказаться от прописывания абсолютного адреса и сделать так, чтобы линкер сам размещал массив? А то ведь при линковке код еще наедет на этот адрес и будет ерунда. Придется вручную подгонять адрес. Или это бессмысленные мечтания?
Ничего не надо в линкере править для массива, потому что ничего не наедет. Размещайте свои структуры хоть посредине Вашего кода. Одно правило. Размер массива, структуры или массива структур должен быть кратным 1024 байт и начинаться с адреса кратным килобайту.