www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Update mehrer controller


Autor: Herbert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi @ all,

habe eine Steuerung mit einem mega8, diesen kann ich ueber Peters 
bootloader updaten.
Jetzt sollen aber noch mindestens zwei controller hinzukommen, die an 
einem datenbus des erst genannten haengen, es sollen alle upgedatet 
werden koennen {ueber den mega8 und dessen externe schnittstelle}. die 
FW der einzelnen controller unterscheidet sich, weil verschiedene 
aufgaben.

kann mir jemant ratschlaege geben?

Danke, Herbert

Autor: Rene B. (themason) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe auch ein System in dem mehrere (2 ;-)) Controller mit 
unterschiedlichen Updates gefahren werden müssen. Im Moment stecke ich 
immer um. Aber es soll nachher schon so sein das die alle über eine 
Schnittstelle oder noch besser SD/MMC Karte geupdatet werden.
Ich plane dazu einen 3. Mikrocontroller der von sich aus die anderen 
Controller flasht. Damit dieser Controller nicht nur diesen einen Zweck 
erfüllt, plane ich das der "Update-Controller" nach den (ggf) Updates 
sich per I2C als FAT16/32-Slave für die SD Karte verhält.
Ansonsten hätte ich keine Idee, aber ich habe auch noch nicht soviel mit 
Bootloadern und In-System-Updates gemacht. Nur mal so als Anregung

Autor: Frank K. (fchk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie läuft die Kommunikation mit den anderen Controllern ab? Per SPI*? 
Dann hast Du doch schon fast alles. Wenn Du dann noch die Reset-Pins der 
Controller zu Deinem Mega8 führst, hast Du alles, was Du für ein 
ISP-Download brauchst.

*Aufpassen, daß die SPI und ISP-Pins gleich sind. Beim Mega128 ist das 
z.B. nicht der Fall, da hängt ein UART mit auf den ISP-Pins (was auch 
seine Vorzüge hat).

fchk

Autor: Pothead (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe es kürzlich folgendermaßen gemacht: Das Programmupdate kommt 
über irgendeine Schnittstelle (in meinem Fall UART) in den Controller. 
Die goldene Version schreibt den Datenstrom ab eine bestimmte (freie) 
Stelle ins Flash. Der Datenstrom (update Version) besteht aus dem 
ausführbaren Code gefolgt (einfach hinten drangelinkt) von den neuen 
Interruptvectoren und einer 16Bit CRC. Hat der Controller alles 
geschrieben dann führt er einen Softwarereset aus. In der low-level-init 
der goldenen Version wird nun geprüft, ob im besagten 
Updatespeicherbereich ein gültiges Programm liegt (dazu die CRC). Wenn 
die update Version als gültig erkannt wird, werden ebenfalls in der 
low-level-init der goldenen Version die Interruptvectoren auf die update 
Version umgebogen, anschließend kontrolliert und wieder ein 
Softwarereset ausgeführt. Da die Reseteinspungadresse nun auf die update 
Version zeigt läuft von nun an die update Version. In der low-level-init 
der update Version werden nochmals Gültigkeit und Interruptvektoren 
geprüft. Falls hier ein Fehler entdeckt wird, werden wieder die alten 
Interruptvektoren der goldenen Version hergestellt (welche in einem 
speziell geschützten Bereich des Flashs liegen).

Vorteile:

- Es wird immer eine lauffähige goldene Version vom Auslieferzeitpunkt
  vorgehalten, was die Ausfallsicherheit massiv erhöht.
- Man bedient sich einfacher Schnittstellen (UART, SPI, ...).
- Während die Daten rübergeschaufelt werden läuft parallel das normale
  Programm, also minimierte blackout-Zeit.

Nachteile:

- Doppelte Speicherbelegung, was bei heutigen Controllern verkraftbar
  ist.
- Unterschiedliche Kompilate/Linkerscripte für goldene und update
  Version.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.