[an error occurred while processing this directive]
Если хочешь в одном проекте совместить и загрузчик и приложение - да
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Сергей Борщ 08 января 2006 г. 18:36
В ответ на: Ответ: Так что, в xcl файле должно быть две строчки с INTVEC. Одна для BLS другая для AS. отправлено <font color=gray>oleg&kor</font> 08 января 2006 г. 15:56

Одна остается с именем 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: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание

E-mail: info@telesys.ru