eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronika[avr] Bootloader i stos albo...[avr] Bootloader i stos albo...
  • Data: 2009-01-17 11:35:40
    Temat: [avr] Bootloader i stos albo...
    Od: Dariusz Zolna <a...@u...com> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    Rzeźbię teraz bootloader na Atmega8, który ściąga firmware przez I2C,
    niestety dzieją się dziwne rzeczy.
    Kod bootloadera uruchamia się, kontrolna dioda miga w określonej
    sekwencji, czyli jest ok. W momencie kiedy wyślę pierwszy bajt po I2C,
    układ się resetuje.
    Podejrzewałem 1 z 3 możliwości:

    1. Kod bootloadera jest za duży i nie mieści się w obszarze 1024 słów
    (ale to wyeliminowałem przez porównanie zawartości flasha z tym co do
    niego ładuję)

    2. Jest niepoprawnie ustawiony wektor przerwania TWI i w momencie
    otrzymania danej skacze gdzieś w maliny.

    Na początku programu przepisuję tablicę wektorów przerwań:
    GICR = (1<<IVCE);
    GICR = (1<<IVSEL);

    W pliku . map mam taki wpis:
    0x00000d4e __vector_17

    A w .lst taki:
    302 .global __vector_17
    304 __vector_17:
    305 .LFB15:
    306 .LM55:
    307 /* prologue: frame size=0 */
    308 00e2 1F92 push __zero_reg__

    Więc wygląda, że wszystko jest na miejscu.

    3. Ta opcja wygląda mi najbardziej podejrzanie: być może mam źle
    ustawiony wskaźnik stosu i program resetuje się przy próbie powrotu z
    przerwania.

    HELP!

    Dariusz Żołna

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: