Метценгерштейн 0 20 мая, 2010 Опубликовано 20 мая, 2010 (изменено) · Жалоба Итак, бутлоадер, это такая же прога, которая льется в ту же 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: Изменено 20 мая, 2010 пользователем Метценгерштейн Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sigmaN 0 21 мая, 2010 Опубликовано 21 мая, 2010 · Жалоба Спасибо. Может пригодиться ) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Буратино 0 7 апреля, 2017 Опубликовано 7 апреля, 2017 · Жалоба Спасибо! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Буратино 0 23 апреля, 2017 Опубликовано 23 апреля, 2017 · Жалоба Подскажите, а как работать с прерываниями для 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 файле. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться