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

bootloader AVR231. Руководство по его применению

Итак, бутлоадер, это такая же прога, которая льется в ту же flash, что и все остальные проги, но в отличии от них, пишется она в конец памяти. Применительно к этому бутлоадеру, на 2048 байт меньше, чем весь объем flash МК.

 

 

скачивает AVR231 с офф. сайта- там он свежий

 

захожу в папку pctools

 

1. надо создать файл Config.txt

запускаю из командной строки Total Cmd

gentemp Config.txt

 

2. открываю его и правлю ручками верхние три строки в соответствии со своим МК и таблицей 3-5 даташита AVR231

 

3. Создаю ещё два файла BootLdr.h, AESKeys.inc

create -c Config.txt -h BootLdr.h -k AESKeys.inc

 

4. положил в проект ИАРа два файла наши

BootLdr.h, AESKeys.inc

 

5. открыл ИАР, открыть проект, выбираю проект со своим МК. НЕ ОТКРЫВАТЬ СРАЗУ ВОРКСПЕЙС!!! ТОЛЬКО свой проект!

выставляю там скорость USART и кварц. В ф-ле bootldr.c в строке

 

if (!(PIND & (1 << PD2)))

 

меняю пин на нужный мне- туда надо будет вешать кнопку, замыкающую на землю, подтянутую к +Uпит.

 

6. прошиваю бутлоадер в мегу с выставленными фузами (BOOTSZ=0, BOOTRST=0)- это 1024 слова или 2кБайт

 

7. возвращаюсь в папку pctools

 

8. кладу в неё свои .hex + EEPROM.hex

 

9. из командной строки

create –c Config.txt –e EEPROM.hex –f Flash.hex –o Update.enc –l BLB11 BLB12

 

10.создатся файл Update.enc, где уже и еепром и флэш будут вместе объеденины

 

11.отключил девайс, зажал кнопку свою, включаю девай с зажатой кнопкой, и из-под меню pctools

update Update.enc -COM4 -38400

 

и у нас все работатет!!!

 

:yeah:

Изменено пользователем Метценгерштейн

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


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

Подскажите, а как работать с прерываниями для AVR в бутлоадере!?

Сейчас разбираюсь с этим вопросом.

Для IAR делаю вот это и рассчитываю, что этого будет достаточно, но не уверен)

 

/* Enable change of interrupt vectors */ 
MCUCR = (1<<IVCE); 
/* Move interrupts to boot flash section */ 
MCUCR = (1<<IVSEL);

Linker IAR настроен на работу с загрузчиком. Загрузчик работает.

 

Спасибо!

 

PS

 

Немного разобрался. Да, больше ничего не нужно. Достаточно переключить таблицу векторов прерываний. Но внимательно следим за фьюзами указывающими на размер бутлоадера, директивами IAR для линкера (секция #define раздела Linker) и собственно формулами расчета адресов/смещений в самом *.xcl файле.

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


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

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

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

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

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

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

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

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

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

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