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?
Du hast doch 2*80k Boot Flash Memory zusätzlich zum Program Memory auf dem Teil. fchk
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!
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
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.