Перейти к содержанию
    

Atmega128L, Старт BootLoadera, Прерывание в Bootloader-е

При работе с Atmega128L cтолкнулся с такой проблемой:

1. При BOOTRST=0 Atmega128L стартует с адреса 0000, а не с 0f000 - как хотелось бы.

Если делаю JMP 0f000 (команда находится по адресу 0000) на код размещенный с адреса 0f000 ,

то программа стартует и выполняется (если прерывания запрещены)

2. Если вектра прерывания и код размещаю с адреса 0f000 (в BootLoader-е), то при первом же

прерывании Atmega128L уходит на Reset и начинает выволняться с адреса 0000, (IVSEL=1).

3. Если вектра прерывания размещаю с адреса 0000, а код размещаю с адреса 0f000 (в BootLoader-е)

то прерывания обрабатываются нормально (IVSEL=0).

 

Использую компилятор IAR C/C++ Compiler for AVR 4.10B/W32 [Evaluation] (4.10.2.3)

Программирую Atmega128 программой AvReal ver1.25rev3 (через Xilinx-Parallel Cable III).

 

Fuse биты следующие:

CKOPT=0,CKSEL=F,SUT=3,BOOTRST=0,BOOTSZ=0,WDTON=0,M103C=1,BODEN=0,BODLEVEL=1,

BLB0=3, BLB1=3,OCDEN=1,JTAGEN=0,EESAVE=1.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как-бы читайте даташиты, что ещё сказать.

 

Чтобы перенести вектора прерываний в область загрузчика надо в программе (загрузчике то бишь) выполнить последовательсность MCUCR=1, MCUCR=2.

 

По поводу старта с нулевого адреса: где-то видимо ошибка. Убедитесь что BOOTRST = 0 (прошит) и размер бута верно задан.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...