[an error occurred while processing this directive]
|
Одна остается с именем INTVEC, вторая - BOOT_INTVEC. Но не уверен, что это будет просто. Сам не пробовал, но мне кажется компилятор кладет вектора в секцию INTVEC и нет способа заставить его складывать вектора в BOOT_INTVEC - только прописывая таблицу векторов на асме.
Мне кажется более правильным сделать два проекта - загрузчик и приложение. Для каждого свой xcl с таблицей и остальными сегментами в нужных областях. Меньше вероятность случайно поломать загрузчик правя приложение, проще использовать одну и ту же область ОЗУ для загрузчика и приложения.
А на этапе зашивки объединять 2 HEX-файла в один. Или прошивать сначала один, потом без стирания второй, потом фузы.
в xcl сегменты будут выглядеть примерно так (это для меги8):
bootloader.xcl:
// Interrupt vectors
-Z(CODE)INTVEC=1800-1825
// Code memory
-Z(CODE)NEAR_F,SWITCH,INITTAB,DIFUNCT=1802-1FFF
-Z(CODE)NEAR_C,NEAR_ID,CODE=1802-1FFF
application.xcl:
// Interrupt vectors
-Z(CODE)INTVEC=0-25 /* 19 Interrupt vectors * 2 bytes each */
// Code memory
-Z(CODE)NEAR_F,SWITCH,INITTAB,DIFUNCT=26-17FD
-Z(CODE)NEAR_C,NEAR_ID,CODE=26-17FD
-Z(CODE)CHECKSUM=17FE-17FF
E-mail: info@telesys.ru