Hallo Zusammen, ich bin dabei, einen DYI-Programmer für die 78K0R-Familie von NEC/RENESAS zu bauen. Die Grundfunktionen (Block löschen, Block schreiben, ...) habe ich implementiert und sie funktionieren. Eigentlich wollte ich nur einen Block ins "emulated EEPROM" schreiben, habe aber wohl den falschen Block erwischt und die Firmware zerschossen. https://github.com/stancecoke/Parameter-Setting-Tool-for-EBike-Controller Wenn ich jetzt eine eigene Firmware schreibe, an welche Startadresse muß ich die schreiben?? Die Memory-Map hatten wir ja schon diskutiert, aber die BootCluster überlappen mit der Program Area und ausserdem kann man immer nur bei der Startadresse eines Blocks mit dem Schreiben beginnen... Beitrag "Verständnisfrage zu Speicherbelgung in Mikrocontrollern" Ich denke mal Bootcluster 0 liegt der Bootloader, der das Flashen ermöglicht?! Gruß hochsitzcola
Wenn der 78K0R aehnlich tickt wie der 78K0S, hat er wie die ARMe eine Vektortabelle wo sich auf dem ersten Platz auch der Resetvektor findet. Diese Tabelle steht im Block 0 des Flash und ist nicht verschieblich. Ein Bootlader kann nun im Flash liegen wo er will, solange die Applikation den Resetvektor weiterhin auf den Bootlader zeigen laesst oder an ihn die Kontrolle nach dem Reset abtritt. Falls es nichts zu flashen gibt, muss der Bootlader dann wieder seinerseits zur Applikation zurueckspringen. Mann muss also ein wenig Ruecksicht auf den Bootlader nehmen. Den kann Mann immerhin schreibschuetzen. Den Einsprung eher nicht.
(º°)·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.· schrieb im Beitrag #5165106: > Falls es nichts zu flashen gibt, muss der Bootlader dann wieder > seinerseits zur Applikation zurueckspringen. Genau das ist meine Frage: wo muss die Applikation liegen? Mir fehlen hier offensichtlich ein paar Basics... Gruß hochsitzcola
Der Flash ist in Bloecke unterteilt. Innerhalb des Flashs kann die Applikation liegen wo sie will. Ueblicherweise gibt es in den Linkerscripten Defaults wohin Applikationen gelinkt werden. Wenn Bereiche, z.B. durch Bootlader, bereits belegt sind, wird Mann das Linkerscript dann anpassen muessen. Im angehaengten Beispiel (IAR WB fuer K78) fuer einen kleinen KA0S (nur 4 k Flash) ist es: -Z(CODE)RCODE,CODE=0084-0FFF Die Applikation wuerde ab der Adresse 0084h liegen. Wenn schon ein Bootlader im Bereich 0E00h bis 0FFFh ist, wuerde die Zeile im Linkerscript dann: -Z(CODE)RCODE,CODE=0084-0DFF lauten. Dieser Bereich wuerde dann vom Projekt/Applikation nicht genutzt.
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.