Всем привет тут пришлось вернуться к давно забытым МК с ядром AVR а точнее ATmega8 оч давно имел с ними дела но не когда не делал ни чего с бутлоадером ...
и вот приклинило,для начала :
1-научился работать с командой SPM, чуть позже вообще нашёл удачную процедуру с готовой записью
2- написал тестовое приложение (как программуу)
3-написал бутлоадер ,естественно что у AtmelStudio у ликера опция -Wl,--section-start=.text=0x1800 выставлена и фьюзы в ту область так же для бута
Естественно что базовая прога проверена 120 байт работают просто мигают светодиодом (где он понятно из проги)
И бут лоадер тоже
Скраиваю их в месте по простетскому сначала шью бутлоадер а потом поверх без стирания чипа основную
далее если фьюз BOOTRST показывает что всё окей, если его прожеч то стартует бут лоадер ,если нет то основное приложение
Кажется все пашет но вот увы ХРЕН ТАМ бут лоадер по окончанию своей отработке не может вызвать основную аппку
пробовал :
asm("LDI R30,0x00\r\nLDI R31,0x00\r\nIJMP\r\n");
и так пробовал:
static void (*StartProg)( void ) = 0x0000;
StartProg();
по сути заново запускается бут лоадер ...
прикладываю исходник бутлоадера По сути основная апка это просто мигалка а бут лоадер проверяет после сброса b3 в PORTD и мигает лампочкой пока его держут неменее 5 секунд и уж потом стартует бутер, если нет то стартует апка ну и из бутера то же есть выход короче не чего не пашет
В общем ни чего не пойму...
и вот приклинило,для начала :
1-научился работать с командой SPM, чуть позже вообще нашёл удачную процедуру с готовой записью
2- написал тестовое приложение (как программуу)
3-написал бутлоадер ,естественно что у AtmelStudio у ликера опция -Wl,--section-start=.text=0x1800 выставлена и фьюзы в ту область так же для бута
Естественно что базовая прога проверена 120 байт работают просто мигают светодиодом (где он понятно из проги)
И бут лоадер тоже
Скраиваю их в месте по простетскому сначала шью бутлоадер а потом поверх без стирания чипа основную
далее если фьюз BOOTRST показывает что всё окей, если его прожеч то стартует бут лоадер ,если нет то основное приложение
Кажется все пашет но вот увы ХРЕН ТАМ бут лоадер по окончанию своей отработке не может вызвать основную аппку
пробовал :
asm("LDI R30,0x00\r\nLDI R31,0x00\r\nIJMP\r\n");
и так пробовал:
static void (*StartProg)( void ) = 0x0000;
StartProg();
по сути заново запускается бут лоадер ...
прикладываю исходник бутлоадера По сути основная апка это просто мигалка а бут лоадер проверяет после сброса b3 в PORTD и мигает лампочкой пока его держут неменее 5 секунд и уж потом стартует бутер, если нет то стартует апка ну и из бутера то же есть выход короче не чего не пашет
В общем ни чего не пойму...
- Вложения
-
- Document.hex
- Полный хекс из которого видно что оба склеены нормально
- (22.51 КБ) 280 скачиваний
Последний раз редактировалось Fastereus Пн май 16, 2016 00:12:22, всего редактировалось 1 раз.
