[an error occurred while processing this directive]
|
про нужную область "как единственно существующюю" - не совсем понятно
кстати, про флеш я нигде не упоминал
просто алгоритм встроенного в EP9307 загрузчика таков, что он ждёт ровно 2 кб данных по uart1 (это образ программы, которая должна проинициализировать процессор и закачать основную программу во внешнее ОЗУ и передать ей управление). Понятное дело, что после компиляции размер загрузчика не равен ровно 2 кБ. Для области данных в IAR'е есть галочка "заполнять таким-то значением", а для сегмента кодов я такого не нашёл.
параллельно я пишу программу для ПК, которая этот самый загрузчик будет "выплёвывать"из ком-порта. В связи с чем возникает вопрос - нельзя ли заставить IAR (учитывая обилие форматов) генерировать непосредственно образ программы т.е. последовательность, длиной 2048 байт кода и данных? (в начале этой последовательности находится точка входа - с этим я вроде разобрался). Или придётся делать ручной разбор например intel-hex'овского файла и по нему перед заливкой в com-порт строить нужный мне 2-хкилобайтный образ?
на всякий случай приведу мой xcl-файл (0х80014000 - точка входа):
-DROMSTART=8001403F
-DROMEND=80014400
-Z(CODE)INTVEC=80014000-8001403F
-Z(CODE)ICODE,DIFUNCT=ROMSTART-ROMEND
-Z(CODE)SWITAB=ROMSTART-ROMEND
-Z(CODE)CODE=ROMSTART-ROMEND
-Z(CONST)CODE_ID=ROMSTART-ROMEND
-Z(CONST)INITTAB,DATA_ID,DATA_C=ROMSTART-ROMEND
-Z(CONST)CHECKSUM=ROMSTART-ROMEND
// Read/write segments mapped to RAM.
//*************************************************************************
-DRAMSTART=80014400
-DRAMEND=800147FF
-Z(DATA)DATA_I,DATA_Z,DATA_N=RAMSTART-RAMEND
-Z(DATA)CODE_I=RAMSTART-RAMEND
E-mail: info@telesys.ru