Forum: Compiler & IDEs bootloader ATmega162


von Martin Raffelsieper (Gast)


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');

    }

von Martin Raffelsieper (Gast)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.