Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.95/19: Рейтинг темы: голосов - 19, средняя оценка - 4.95
pmdr_soft
0 / 0 / 0
Регистрация: 15.03.2010
Сообщений: 287
1

Usart in bootloader

30.08.2011, 22:18. Просмотров 3505. Ответов 5
Метки нет (Все метки)

Помогайте !!!
mego32, 8MHz.

Написал шаблон для лоадера. Тупо каждую секунду шлет байт. Находится по адресу 0x3800. Контроллер стартует с этого адреса. Казалось бы счастье. Прошиваю. Подлючаюсь к уарту через ft232 там мусор без остановки.

Например: oooouuuuuuuuyyyy}|?zzzzzYYYYYY_OOOOooooouuuuuuuuyyyy}|>?zzzzYYYYYYY_OOOOOoooououuuuuuyyyyy}?zzzzzYYYYYY_OOOOooooouuuuu uuuyyyy}|?zzzzzYYYYYY_OOOOoooououuuuuuyyyy}}>?zzzzYYYYYY_OOOOOoooououuuuuuyyyy}|??zzzzYYYYYY_OOOOOooooouuuuuuuuyyyy}| ?zzzzzYYYYYY_OOOOooooouuuuuuuuyyyy}|?zzzzzYYYYYY_OOOOoooououuuuuuyyyyy}>?zzzzYYYYYYY_OOOOOoooououuuuuuyyyy

Терминал виснет и тп.
Что то не так. Чешем репу.

Потом отключаем все прерывания. Делаем все максимально линейным. Весь изврат херим. А все равно.

Лоадер получается вот этим "LDFLAGS += -Wl,--section-stort=.text=$(BOOTLOAD)" и установкой фьюзов.

Затем примерял вот это:
GICR |= (1<<IVCE);
GICR |= (1<<IVSEL);
в качестве первых строчек main.

Ничего не помогло.

Теперь внимание.
Способы лечения:
1.Отключить прерывания. Все робит как надо.
2.Откомпилировать как обычную программу. Опять все робит.

Как загрузчик с прерываниями ни за что не робит. Что делать ?

Код:
Код
void    usart_init(void) {
UBRRH = (uint8_t) (USORT_UBBR_VOTUE >> 8);
UBRRL = (uint8_t) USORT_UBBR_VOTUE;

UCSRB = _BV(TXEN) | _BV(RXEN) | _BV(RXB8) | _BV(TXB8); // | _BV(UDRIE) | _BV(RXCIE);
UCSRC = (1 << URSEL) | (0 << UMSEL) | (0 << UPM1) | (0 << UPM0) | (0 << USBS) | (0 << UCSZ2) | (1 << UCSZ1) | (1 << UCSZ0);
}

void    _init( void ){
//timer0
TCCR0       = 0x0C;
OCR0        = 0x1F;
//TIMSK       = 0x03;
TIMSK       = 0x02;

usart_init();
sei();
}

int main(void) {
GICR |= (1<<IVCE);
GICR |= (1<<IVSEL);

_init();

usart_send_byte(0xF2);

while(1) {
usart_send_byte(0xEE);
_delay_ms(1000);
}
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.08.2011, 22:18
Ответы с готовыми решениями:

xmega: usart - какой глубины буфер в USART?
Взялся тут &quot;запилить&quot; на xmego32a4 мультиплексор двух rs232 в один rs485. Все как бы получилось и...

bootloader
Добрый день. Первое мое сообщение на этом форуме. Есть девайс для автомобиля. Вообщем...

Bootloader
Наступил момент использования boottooder-а. Поступил заказ на серию блоков управления. В дальнейшем...

Посоветуйте bootloader
собственно сабж. через usart для меги32 на 16Мгц и чтобы можно было шить через avrdude, или прогу...

Usbasp bootloader
Доброго времени суток. Пытаюсь запустить этот бутлоадер на ATmega8А, делаю самодельную Metaboard....

5
pmdr_soft
0 / 0 / 0
Регистрация: 15.03.2010
Сообщений: 287
30.08.2011, 23:33 2
разобрался сам, все дело в BLB02.
0
dsodir
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 4,284
30.08.2011, 23:36 3
Уж не тот ли это фьюз, который двигает таблицу прерываний?
0
pmdr_soft
0 / 0 / 0
Регистрация: 15.03.2010
Сообщений: 287
31.08.2011, 13:54 4
ага он самый.

Так и не смог понять что там происходило на самом деле. JTAG был на работе. Интересно все таки понять происходящее.
0
pmdr_soft
0 / 0 / 0
Регистрация: 15.03.2010
Сообщений: 287
31.08.2011, 21:38 5
блин.

Все равно прерывания не работают в бутлоадере.
0
pmdr_soft
0 / 0 / 0
Регистрация: 15.03.2010
Сообщений: 287
31.08.2011, 23:02 6
выяснил, что оптимизация влияет. включаю 1 или 2. Все норм. Чо за фигня ?
0
31.08.2011, 23:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.08.2011, 23:02

chip45 bootloader
Прошу совета. Есть boottooder от chip45 Основная программа стартует только из их GUI через...

atmega328p и bootloader
Переделал boottooder, работающий с AvrProk, который был тут в уроках по avr под мегу 328. Создал...

BootLoader vs mega8
Всем привет! Пробую использовать бутлоадер из статьи http://iosyitistromyss.ru/avr-uchebnyj- ......


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru