-         

Ergebnis 1 bis 9 von 9

Thema: Wie finde ich die Adresse meines Bootloaders?

  1. #1
    Erfahrener Benutzer Roboter Genie Avatar von Willa
    Registriert seit
    26.10.2006
    Ort
    Bremen
    Alter
    37
    Beiträge
    1.269

    Wie finde ich die Adresse meines Bootloaders?

    Anzeige

    Hi!
    Ihr kennt ja sicherlich die Anweisung "goto 0". Dadurch hat man eine Art Software-reset. Jetzt möchte ich aber nicht nur den µC resetten, sondern an den Anfang des Bootloaders springen. Es geht konkret um einen mega328p auf einem Arduino pro mini mit Original Bootloader.
    Dadurch würde ich mir das Drücken des Reset-Buttons sparen, wenn ich mit avrdude ein neues Programm flashen will.
    Hat jemand einen Tipp?
    Andere Projekte nutzen z.B.
    Goto $3c00
    und
    Goto &HF000
    aber diese Adressen sind sicherlich nur für andere Booloader und andere Chips geeignet. Leider bin ich bei solchen tiefergehenden Sachen etwas wenig bewandert...
    Viele Grüße, William
    -> http://william.thielicke.org/

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.10.2004
    Ort
    Baoding
    Alter
    38
    Beiträge
    687
    Wir wäre es wenn Du nen Reset vom Watchdog machen läst, sollte fast das selbe sein wie ein Reset vom Reset-Taster.

    Ansonsten ist es von den Fuse und Lockbits abhängig wo der Bootloader anfängt und wie groß er ist.
    Signatur??? kann ich mir nicht leisten!!!

  3. #3
    Erfahrener Benutzer Roboter Genie Avatar von Willa
    Registriert seit
    26.10.2006
    Ort
    Bremen
    Alter
    37
    Beiträge
    1.269
    Wir wäre es wenn Du nen Reset vom Watchdog machen läst, sollte fast das selbe sein wie ein Reset vom Reset-Taster
    Gute idee, ich gucke mal ob er dann wirklich zum Bootloader springt.
    Ansonsten ist es von den Fuse und Lockbits abhängig wo der Bootloader anfängt und wie groß er ist
    Und wie könnte ich das herausfinden...? Einen leeren µC (nur bootloader drauf) auslesen und da nach irgendeinem Muster suchen...?
    Viele Grüße, William
    -> http://william.thielicke.org/

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.10.2004
    Ort
    Baoding
    Alter
    38
    Beiträge
    687
    Du kannst einfach mal in die Fuse- und Lockbits schauen was da gesetzt ist...
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken datas.jpg  
    Signatur??? kann ich mir nicht leisten!!!

  5. #5
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    7.595
    Hi Willa,

    vermutlich musst Du garnicht in den m328p schauen. In der entsprechenden Produktseite des arduino steht folgender Satz:
    ... The ATmega168 has 16 KB of flash memory for storing code (of which 2 KB is used for the bootloader). ...
    Daher werden die fuses entsprechend gesetzt sein.
    Ciao sagt der JoeamBerg

  6. #6
    Erfahrener Benutzer Roboter Genie Avatar von Willa
    Registriert seit
    26.10.2006
    Ort
    Bremen
    Alter
    37
    Beiträge
    1.269
    Danke, das klingt alles sehr logisch :-D
    Dann werde ich das mal ausprobieren heute Abend. 2KB sind welche größe "in Words"...? 1024...?
    Viele Grüße, William
    -> http://william.thielicke.org/

  7. #7
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    25.03.2006
    Ort
    Hinsdorf
    Alter
    43
    Beiträge
    379
    Hi Willa,

    die Geschichte mit dem Resetbutton habe ich auch hinter mir:
    http://www.roboternetz.de/phpBB2/viewtopic.php?t=51079

    Nun nutze ich den Bootloader von MCS, der bei Aufnahme zum brennen eine "123" schickt. Diese Anfrage erkenne ich und springen mit Goto &HF800 in den Bootbereich vom 644p. Aus dem Datenblatt habe ich aber leider nicht den richtige Bootloaderbereich herausfinden können. Ich habe den MCS-Bootloader auf meinen Chip gebrannt und über Bascom Brennoberfläche die Adresse herausgefunden.
    Theoretisch musst Du im Datenblatt die Adresse herausfinden, die bei 2kB Bootloadergröße steht.

    Gruß MAT

  8. #8
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    43
    Beiträge
    2.240
    2kb sind 2048 byte

    wenn man nen fertig programmierten chip mit loader bekommt ists am einfachsten man nimmt den entsprechenden programmieradapter (stk500, avrispmk2, parallelportprogrammer etc. ) und liest die sogenannten fuses aus. da steht dann konkret loadersize und starts at xxxx (z.b. im avr-studio).
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  9. #9
    Erfahrener Benutzer Roboter Genie Avatar von Willa
    Registriert seit
    26.10.2006
    Ort
    Bremen
    Alter
    37
    Beiträge
    1.269
    Hey, das funktioniert hervorragend...! Ein Klick in meiner GUI - einer Progressbar beim hochwandern zuschauen - und fertig ist die Programmübertragung!
    Der Vollständigkeit halber nochmal die Bootloader Adressen für ein Arduino mit original Bootloader:
    Mega168: Goto $1c00
    Mega328p: Goto $3c00
    Viele Grüße, William
    -> http://william.thielicke.org/

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •