Forum: Mikrocontroller und Digitale Elektronik LPC2294 Bootloader fest oder nicht fest programmiert?


von Bob (Gast)


Lesenswert?

So,

das zweite Problem, dass mich heute noch laust, ist, wie es bei den
LPCs mit dem Bootloader steht.

Ich bin nun bereit, vom AVR auf ARM umzurüsten und werde in diesem Zuge
auch gleich von5V auf 3V3 umsteigen (zwangsläufig).
Die 3V3 Umstellung schiebe ich jetzt auch schon fast zwei Jahre vor mir
her...

Zum Thema: Also ich habe mehrere LPC2294 aus bereits fertigen Geräten
ausgebaut.
Jetzt werde ich aus den verschiedenen Datenblattquellen nicht schlau:
im einen steht, dass der BL fest drin ist und nicht verändert werden
kann, wo anders steht, dass man den BL nur via ISP verändern kann. Ja
was denn nun?

Kann ich davon ausgehen, dass der Philips BL immernoch im Chip ist oder
muss ich diesen erst wieder mit ominösen Adaptern etc flashen?

Ich merke schon, ein ARM ist was anderes wie nen AVR! Klarer Fall!

BTW, gibt's bei den LPCs auch sowas wie Lockbits, also um zu
verhindern, dass jemand die Firmware ausliest?

Gruß
Bob

von mthomas (Gast)


Lesenswert?

Die Implementierung der Bootloader ist innerhalb der LPC2000-Famile
unterschiedlich geloest. So etwas wie explizite Lockbits gibt es nicht
wirklich. Man kann die Software dadurch schuetzen, dass an einer
bestimmten Stelle im Flash ein definierte Zahlenfolge abgelegt wird
(Relativ am Anfang, es ist allerdings davor noch Platz fuer die
Interrupt-Vektoren und eine kleine FIQ-ISR) Details im Datenblatt
Stichwort Code Read Protection. Damit ist dann nur noch "Chip Erase"
ueber ISP/Bootloader moeglich.

Bei den frühen LPC2000 (LPC2106 z.B.) funktioniert der Schutz nicht,
bei allen neueren LPC2000 (wohl auch LPC22xx) ist dieser Fehler dann
behoben. Auch kann bei den "ganz Alten" (wieder LPC2106 als Beispiel)
der Bootloader per ISP aktualisiert und somit auch ueberschrieben werden
- war auch noetig wg. Fehlern in der ersten Fassung.

Weitere Information auch in der lpc2000 yahoo-Gruppe. Softwareschutz
und Bootloader waren dort schon einige Male Anlass zu teilweise episch
langen Diskussionen - ich habe irgendwann aufgehoert mitzulesen...

Robert Teufel wird sicher mehr mehr Details aufwarten können.

von Robert Teufel (Gast)


Lesenswert?

Ganz kurz,

derzeit ist es noch moeglich die Bootloader mit dafuer bestimmten
Routinen zu ueberschreiben. Keine Angst, der Bootloader wird sich nicht
selbst ueberschreiben, da sind Adressvergleicher in der Software, die
das verhindern.

Aller Wahrscheinlichkeit nach wird in zukuenftigen Teilen der
Bootloader fix drin sein, die Diskussionen dazu sind noch nicht
beendet. Ein paar neue Varianten haben bereits einen ROM-bootloader
(LPC2101/2/3) aber es ist auch moeglich bei Flash ein loeschen /
reprogrammieren zu verhindern.

Der Auslesenschutz ist ein "alles oder nichts" Ansatz und kann nur
funktionieren wenn kein Code von extern abgearebeitet wird. Da der
LPC2294 einen externen Bus hat, koennte das bereits die ganze Sache
erledigen, wenn Du auch von dort beabsichtigst ausfuehrbaren Code zu
speichern.  Ansonsten ist der Ausleseschutz ein disable von Debug,
sowohl JTAG als auch Trace Interface ETM.

Also bei einem SingleChip System wo aller Code im internen Flash sitzt
laesst sich damit der Code schuetzen.

Gruss, Robert

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
Noch kein Account? Hier anmelden.