LPC1768 über den MCU COM mit neuer Firmware programmieren

Gast #3229371
Hallo Forum,
ich hab ein Problem.
Ich würde gern mein LPC1768 über den MCU COM mit neuer Firmware 
programmieren können ohne den Pin für den Bootloader auf Masse ziehen zu 
müssen.  Dabei stehen mir nur die Tx/Rx Leitungen zur Verfügung, die DTR 
/RST Leitungen kann ich nicht benutzen. Somit fällt wohl Flash Magic 
weg…

Kennt Ihr Software die dies ermöglicht bzw. die nötigen Funktionen 
bereitstellt?
Oder habt ihr selber schon mal so etwas umgesetzt und könnt es zur 
Verfügung stellen?
Gast #3229406
In dem Fall kann die Firmware RX beim Start oder per Interrupt 
überwachen, bei Aktivität einen Terminal-Befehl einlesen (FIRMWARE 
UPDATE) und dann IAP den ROM Bootloader starten. Sobald das passiert ist 
funktioniert auch FlashMagic, auch nur mit TX/RX

Mehr Aufwand wäre eine Firmware mit aktivem Terminal, die sich selbst 
überschreiben kann. Hier wäre dann Segmentierung nötig. Oder die 
Firmware schreibt einen eigenen kleinen Bootloader temporär ins RAM, 
startet diesen IAP, und der liest das neue Binary über Terminal ein und 
schreibt diese IAP in den Flash, und startet neu.
Gast #3229433
Hallo Lothar,
danke, mir ist klar wie man das macht nur würde ich mir gern die Arbeit 
sparen.
Ich bin bestimmt nicht der erste der so was braucht, da muss es doch 
irgendwo was geben.
Die Suchmaschinen spucken allerdings nichts Vernünftiges raus.
Gast #3229522
Vielleicht weil da nicht so viel zu tun ist. Eine UART-Funktion hat doch 
jeder, und falls nicht gibt es Demos z.B. hier:

https://www.olimex.com/Products/ARM/NXP/LPC1766-STK/
simple/uart

Das einfach in Deine Firmware mit rein nehmen. Bei UART IRQ den FIFO 
prüfen, dann die Firmware runterfahren, und ROM Bootloader IAP starten:

#define IAP_LOCATION 0x1FFF1FF1
#define RE_INVOKE_ISP 5710
typedef void (*IAP)(unsigned long[],unsigned long[]);
IAP iap_entry;
iap_entry=(IAP) IAP_LOCATION;
unsigned long command[5];
command[0]=RE_INVOKE_ISP;
unsigned long result[5];
iap_entry(command, result);

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 13 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.