logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[ATmega32] Bootloader - jak wgrać w określony obszar pamięci

stozu 21 Cze 2009 16:02 3137 7
REKLAMA
  • #1 6684436
    stozu
    Poziom 10  
    Witam, mam pytanie jak wgrać bootloader w określony obszar pamięci mojego mikrokontrolera (Atmega32).

    Mam plik hex z bootloaderem, mam skonfigurowane fuse-bity,
    Ustawione na 2048 słów,

    Wgrywam bootloadera i nie działa. Wydaje mi się, że trzeba go wgrać w określony obszar pamięci, np. na koniec pamięci.
    Jak to zrobić?? Czym? (Do programowania używam AVR Studio)
  • REKLAMA
  • REKLAMA
  • #3 6686717
    stozu
    Poziom 10  
    :047800000C942A3C7E
  • #4 6690065
    ZbeeGin
    Poziom 39  
    Adres w HEX sie nie bardzo zgadza:
    :04 - 4 bajty danych (OK)
    7800 - adres startowy w hex 7800h, a powinno być 3800h dla Twojego ATMega32,
    00 - blok danych (OK),
    0C942A3C - pierwsze dwa rozkazy sekcji bootloader,
    7E - suma kontrolna (OK).

    Twój Bootloader był pisany pod procesor mający 64KB Flash na pokładzie: np. ATMega64. Teraz albo rekompilacja ze źródła po zmianie adresu startowego, albo szukanie innego pasującego boot-a...
  • #5 6690247
    stozu
    Poziom 10  
    rozumiem, że zamiana "ręczna" 7800 na 3800 nie wchodzi w grę.

    Jak zrobić rekompilację? Jest jakieś specjalne oprogramowanie?
  • REKLAMA
  • #6 6690327
    BoskiDialer
    Poziom 34  
    ZbeeGin: adres 3800 wypada gdzieś przed środkiem pamięci. Zauważ, że tabelka w dokumentacji mówi o adresach słów pamięci, nie bajtów. Tak więc dla tego bootloadera (adres 7800) trzeba by było ustawić rozmiar sekcji 1024 słowa (2048 bajtów - może autor nie doczytał, chodziło właśnie o 2048 bajtów, nie słów?) - wtedy początek wypada pod adresem 3c00 (w bajtach: 7800).

    Adresy w pliku hex są liczone w bajtach.
  • #7 6690521
    stozu
    Poziom 10  
    W takim razie proszę o pomoc, bo nie jestem jeszcze w tej tematyce specjalistą.

    Mam ATmegę32 i tego Bootloadera, ustawiałem fude-bity na 2048 słów,

    Co mam zrobić by działało to prawidłowo? Wystarczy przestawić Fuse-bity??
  • REKLAMA
  • #8 6690546
    ZbeeGin
    Poziom 39  
    To teraz by się zgadzało. Reczywiście wstawienie .org 3c00 generuje plik HEX pod adres bajtowy 7800.
REKLAMA