Hallo Leute, ich suche nach einer Lösung, den AT89C51ED2 embedded zu flashen. Flip habe ich bisher verwendet, möchte aber gern selbst einen Bootloader schreiben, der unabhängig von einem PC funktioniert. Mein AT89C51 ist über RS485 mit einem Host Controller verbunden. Ich möchte, dass der Host Controller ein Firmware update für den AT89C51 durchführen kann. Dazu müsste der Host die neue Firmware in z.B. 256 Byte Happen stückeln und über die RS485 downloaden. Damit der AT89C51 die neue Firmware geflasht bekommen kann müsste er per Software in diesen Download-Zustand versetzt werden. Nach Download soll automatisch das frisch geflashte Programm des AT89C51 ausgeführt werden. Vorteil davon ist, dass man nur einen Software update für den Host Controller machen muss und der die "Unterverteilung" vornimmt. Hat jemand Erfahrung damit? Gruss JAN
Stichwort: IAP. An so einen Bootloader hätte ich auch Intresse. Ich bin mir nicht sicher, ob das so ohne weiteres geht, da der Bootcode im gleichen Flash ausgeführt werden müsste, wie der neu zu programmierende. Vermutlich ginge es nur, wenn der Bootloader im XRAM ausgeführt wird. Dazu brauchte man beim AT89C51x eine Neumann-Struktur mit externen SRAM. Ich habe sowas schon programmiert, allerding für µPSD3200-Baureihe (8051-Kompatibel) von STM. Diese haben aber 2 unabhängige FLASH-Speicher auf dem Chip. Damit wird IAP problemlos realisierbar. Rolf
Das mit nem Custom-Bootloader geht bei den Atmel 8051 ganz einfach, Du kannst ja mit dem Bootvektorbyte jede 0x**00-Adresse als Resetstart auswählen. Wir machen das auch und haben einen CAN-Bootloader drin, der dann die API-Funktionen des Hersteller-Bootloaders aufruft. Nach jedem Einschalten ist dann der CAN-Bootloader aktiv und wartet auf ein bestimmtes Kommando. Ansonsten startet er nach dem Timeout die Applikation. Peter
Hallo Rolf & Peter, danke für die Infos. Ich habe daraufhin noch mal das Datenblatt vom AT89C51ED2 durchforstet und einiges dazu gefunden. So ganz trivial scheint mir das aber nicht zu sein...Peter, falls Du Code hast, den ich als Basis für die Programmierung des RS484 downloads verwenden könnte, wäre ich dankbar. Gruss JAN
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.