Forum: Mikrocontroller und Digitale Elektronik Startadresse für Code beim uPD79F9211


von hochsitzcola (Gast)


Lesenswert?

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

von (º°)·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.· (Gast)


Lesenswert?

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.

von hochsitzcola (Gast)


Lesenswert?

(º°)·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.· 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

von (º°)·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.· (Gast)


Angehängte Dateien:

Lesenswert?

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