Forum: Mikrocontroller und Digitale Elektronik Bootloader pic 32


von Andi S. (andi1111)


Lesenswert?

Wiedermal der pic 32 mz!

Ich möchte einen Bootloader schreiben.
Da der pic Code auch aus dem RAM ausführen kann, könnte doch folgendes 
Konstrukt einfach und funktionsfähig sein:

In meiner Anwendung, die ich in den pic programmieren will, ist der 
Bootloader immer dabei. Die Bootloader-Funktionen versehe ich mit dem
ramfunc Attribut, d.h. der Code wird von der Start-up in den RAM 
kopiert und von dort ausgeführt.
Bei meiner Bootloader-Funktion sorge ich dafür, dass sie auf keine 
Konstanten o.Ä, aus dem Flash zugreift, und nie wieder zurückkehrt. Dann 
müsste ich doch eigentlich den Flash komplett neu überschreiben können 
und nach dem Reset das neue Programm vorfinden?

Gibt es da irgendeinen Denkfehler?

von Frank K. (fchk)


Lesenswert?

Du hast doch 2*80k Boot Flash Memory zusätzlich zum Program Memory auf 
dem Teil.

fchk

von Andi S. (andi1111)


Lesenswert?

Was ist der Unterschied zwischen Boot- und ProgrammFlash?
Ich muss doch dafür sorgen, dass sich der Bootloader-Code während seiner
Ausführung auf eine anderen Bank befindet, als die zu beschreibende.
Wenn ich also z.B. den Bootloader in BootFlash 1 unterbringe (wie mache 
ich das eigentlich), kann ich den ProgrammFlash 1 nicht beschreiben.
Ah! Ich kann den ProgrammFlash 1 trotzdem beschreiben, muss aber damit 
Leben, dass die CPU während des Schreibevorgangs ihre Aktivität 
einstellt, was aber nicht weiter schlimm ist. Habe ich das richtig 
verstanden?

Zu meiner Idee: Ich hatte gehofft, damit keine Anpassungen im 
Linker-Skript vornehmen zu müssen!

von Frank K. (fchk)


Lesenswert?

Schau hier:
http://ww1.microchip.com/downloads/en/DeviceDoc/93015A.pdf
http://ww1.microchip.com/downloads/en/AppNotes/01388B.pdf

Ist zwar für pic32mx statt pic32mz, aber das Prinzip ist das gleiche.

fchk

von Andi S. (andi1111)


Lesenswert?

Danke für die Links.
Interessant, wo überall "kept secrets
of the PIC32" verborgen liegen.

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.