bootloader ATmega162

Gast #75268
Lesenswert?

hallo,

ich versuche mich an einem Bootloader - aber ich gebs bald auf!
hat jemand eine idee, warum der Code der im Manual vorschlagen wird,
nicht läuft?? (er lief übrigens schon VOR meinen anpassungen nicht):

so wie ich die CPU-Spec verstehe, kann ich doch immer und überall eine
page löschen??
jedenfalls läüf die schleife in etwa 100 ms durch und gibt dabei auch
noch ein zeichen über den uart aus - das erscheint mir doch etwas
schnell. der Programmspeicher ist anschliessen so wie vorher!


    cli();
    for(page=20;page<128;page++)
    {
       pageadr = page*SPM_PAGESIZE;

       boot_page_erase(pageadr);
       while(boot_rww_busy())
       {
          boot_rww_enable();
       }

       for(adr = 0; adr < SPM_PAGESIZE; adr += 2)
       {
           boot_page_fill(adr, 0x55AA);
       }

       boot_page_write(pageadr);
       while(boot_rww_busy())
       {
           boot_rww_enable();
       }

       transmit_uart0('0');

    }
Gast #75269
Lesenswert?

also hier an dieser Stelle mal ein lob an die Entwickler des Gcc:
wenn man alles richtig macht, läuft alles hervorragend!

mein Fehler war einfach nur, dass der obige Code NICHT im
"NRWW"-Speicher, sondern im "RWW" lag.


Vielleicht sollte man einen kleinen Hinweis ins Manual setzen, damit
ein Anfänge wie ich nicht ganz so lange "umherirren"

Gruß Martin

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren