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

перенос таблицы прерываний в секцию бутрома

Люди! Насколько я понимаю эта функция существует для возможности использовать прерывания в загрузчике. Как потом запусить корректно программу, то есть сделать так чтобы запускались обработчики самой программы. Где вообще про это все почитать поподробнее, никак немогу найти , помню просто что такое было что-то??

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


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

Атмеловский док - AVR109: Self Programming.

На форуме эту тему рассматривают часто!

 

В загрузчике вектора устанавливаются следующим образом:

/* Разрешение изменения векторов прерываний */

/* Перемещение векторов в загрузочной сектор флэш-памяти */

MCUCR = 0x01; // MCUCR |= (1<<IVCE);

MCUCR = 0x02; // MCUCR |= (1<<IVSEL);

 

Переход из загрузчика в тело программы: JMPCODE(0x0000);

 

В теле программы возврат векторов:

/* Разрешение изменения векторов прерываний */

/* Перемещение векторов ив загрузочного сектора флэш-памяти */

MCUCR = 0x01; // MCUCR |= (1<<IVCE);

MCUCR = 0x00; // MCUCR |= (1<<IVSEL);

 

Еще один момент: В процессе программирования FLASH обязательно отключать прерывания и WDтаймер.

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


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

Переход из загрузчика в тело программы: JMPCODE(0x0000);

 

В теле программы возврат векторов:

/* Разрешение изменения векторов прерываний */

/* Перемещение векторов ив загрузочного сектора флэш-памяти */

MCUCR = 0x01; // MCUCR |= (1<<IVCE);

MCUCR = 0x00; // MCUCR |= (1<<IVSEL);

Такой подход имеет один недостаток - "основная" программа должна знать, что работает совместно с загрузчиком. Если же обратное переключение таблицы мы перенесем в загрузчик, то единственой особенностью "основной" программы останется огнраничение по размеру:

  __disable_interrupt();
  MCUCR = 0x01; // MCUCR |= (1<<IVCE);
  MCUCR = 0x00; // MCUCR |= (1<<IVSEL);
  (void (*)())0x0000();

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


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

Можно рассматривать и такой вариант реализации! Наверное он лучше!

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


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

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

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

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

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

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

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

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

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

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