Startadresse für Code beim uPD79F9211

Gast #5165056
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
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.
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
Gast
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.
Angehängte Dateien:

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.