реклама на сайте
подробности

 
 
> Не выходит одолеть прерывания в Bootloader'е
Sirko
сообщение Apr 11 2011, 00:06
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 245
Регистрация: 15-08-07
Пользователь №: 29 795



За основу было взято вот Это. Вернее хочу использовать Makefile от сюда.
CODE
#include <stdint.h>
#include <avr/io.h>
#include <avr/wdt.h>
#include <avr/boot.h>
#include <avr/pgmspace.h>
#include <avr/eeprom.h>
#include <avr/interrupt.h>
#include <util/delay.h>

#if defined(BOOTLOADERHASNOVECTORS)
#warning "This Bootloader does not link interrupt vectors - see makefile"
/* make the linker happy - it wants to see __vector_default */
// void __vector_default(void) { ; }

void __vector_default(void) { ; }
#endif

volatile unsigned char b = 0;

ISR(TIMER0_COMP_vect){
b = 1;
}

ISR(TIMER0_OVF_vect){
b = 1;
}

int main(void){

TCCR0 = _BV(CS02) | _BV(CS00);
OCR0 = 100;
TIMSK |= _BV(OCIE0) | _BV(TOIE0);
MCUCR |= (1<<IVCE); // Enable change of Interrupt Vectors
MCUCR |= (1<<IVSEL); // Move interrupts to Boot Flash section


DDRE |= _BV(PE7);
unsigned long x = 0;
while(1){
asm("sei");
x = (cool.gif ? (1UL<<15) : (1UL<<18);
while(--x){asm("nop");}
PORTE ^= _BV(PE7);
}
return 0;
}
Тест не мудреный, Если прерывания запретить, то лампа моргает редко. Если разрешить, - то почащще. А в моем случае, при разрешении прерывания она не горит вовсе. Вероятно при наступлении прерывания происходит улет в ???.
Проц - Mega128, компилятор - WinAVR-20100110.
LDFLAGS += -Wl,--section-start=.text=0x1E000, наверное
НЕХ на выходе начинается вот так:
:020000021000EC
:10E0000011241FBECFEFD0E1DEBFCDBF11E0A0E0F5
Фьюзы настроены на 4кБ, addr-$F000

Что где править, ума не приложу.
А проект, если понадобится прилагаю.
Прикрепленный файл  Bootloader.zip ( 31.25 килобайт ) Кол-во скачиваний: 112


Сообщение отредактировал Sirko - Apr 11 2011, 22:02
Причина редактирования: [codebox]
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Sirko   Не выходит одолеть прерывания в Bootloader'е   Apr 11 2011, 00:06
- - Vetal-Soft   Скорее всего заморочка с измерением памяти програм...   Apr 11 2011, 02:41
- - Sirko   ЦитатаСкорее всего... Скорее всего. Кто бы носом т...   Apr 11 2011, 21:57
|- - Vetal-Soft   У Вас в makefile: Код#/* Select Boot Size in Words...   Apr 12 2011, 08:36
- - defunct   Цитата(Sirko @ Apr 11 2011, 03:06) LDFLAG...   Apr 12 2011, 13:00
- - alag57   Попробуйте так: Код //MCUCR = (1<<IVCE...   Apr 12 2011, 15:01
- - Sirko   ЦитатаПохоже вы не укладываетесь в... Попробуйте ...   Apr 12 2011, 18:29
- - SysRq   Цитата(Sirko @ Apr 12 2011, 22:29) Лампа ...   Apr 12 2011, 20:10
- - Sirko   Спасибо, не видел. Исправил. К сожалению пока-что ...   Apr 12 2011, 21:18
- - SysRq   Цитата1. Write the Interrupt Vector Change Enable ...   Apr 12 2011, 21:23
- - Sirko   Цитата1. Write the Interrupt Vector Change Enable ...   Apr 12 2011, 21:52
- - alag57   Цитатапростите, беру свои слова обратно. Да все но...   Apr 13 2011, 06:22
- - Sirko   Добрался - таки я до загрузчика и, пользуясь случа...   Apr 14 2011, 22:20
|- - SysRq   Цитата(Sirko @ Apr 15 2011, 02:20) буду н...   Apr 15 2011, 07:55
- - Sirko   ЦитатаРаньше вас ныть начнёт МК Безусловно, но это...   Apr 15 2011, 11:11


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 02:02
Рейтинг@Mail.ru


Страница сгенерированна за 0.01356 секунд с 7
ELECTRONIX ©2004-2016