Bootloader für MEGA´s

Janiiix3

Aktives Mitglied
28. Sep. 2013
1.333
10
38
Hannover
Sprachen
  1. ANSI C
  2. C#
Hallo,

mich würde mal Interessieren, wie ich z.B einen "MEGA32" via. RS232 flashen kann. Habe mal ein bisschen im Internet gesucht und bin auf das Thema "Bootloader" gestoßen. So ganz verstanden habe ich das noch nicht. Ist es denn ein großer Aufwand einen eigenen Bootloader in "C" zu realisieren?.

Eigentlich wollte ich ein Board basteln, was ziemlich tief verbaut ist und wo man halt sehr schlecht ran kommt um ein Update via. ISP zu ermöglichen.

Hat hier jemand schon mal einen Bootloader programmiert und könnte mich ein bisschen Supporten?

MFG

Jan
 
Hallo Jan,

du kannst mal bei Atmel auf der Internetseite schauen. Es sind hierzu sicher mehrere Application Notes zu finden, eventuell auch mit Beispielcode, was dir weiterhelfen könnte. Eine Programmiersoftware benötigst du auch noch. Im Internet müsste eigentlich einiges zu finden sein.

Hier kurz einige Infos, falls du versuchen möchtest, es selber zu lösen:

Ein Bootloader besteht im Prinzip aus drei Programmbereichen:
  • das Interface (in deinem Fall ein UART, du benötigst also Send und Receive Funktionen für den UART)
  • das Bootloaderprotokoll (Kommandos, Hauptprogramm)
  • Funktionen um in das Flash Memory zu schreiben und davon zu lesen (fertige Funktionen gibt es im Atmel Software Framework ASF, du kannst dir diese aber auch selber schreiben)
Der Bootloader muss an eine bestimmte Stelle im Flash Memory gelegt werden. Bei AVR Mikrocontrollern ist das ziemlich am Ende des Speichers (es gibt da mehrere Einsprungadressen, die möglich sind. Die gewünschte Einsprungadresse legst du über die Fusebits fest. Hast du dann noch das Fusebit BOOTRST programmiert, wird nach einem Reset der Bootloader angesprungen. Der Bootloader muss nun entscheiden, ob er auf Kommandos vom UART wartet oder die Applikation (falls vorhanden) startet. Der einfachste Weg ist, dies über einen Taster zu machen. Ist der Taster bei Reset gedrückt, bleibt der Bootloader aktiv und man kann programmieren.

Mit diesen Infos kannst du wahrscheinlich noch keinen Bootloader programmieren, vielleicht hilft es dir aber beim Verständnis etwas weiter.

Dirk :ciao:
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)