Verständnisfrage zu Speicherbelgung in Mikrocontrollern

Gast #5161754
Lesenswert?

Ich versuche mich gerade an der Entwicklung eines Programmers für die 
NEC/RENESAS 78K0R-Serie. Konkret habe ich einen uPD79F9211.
Er hat 16K Flashmemory, 1K RAM. Das verstehe ich ja noch. Im Datenblatt 
steht weiterhin "Products in the μPD79F9211 can access a 1 MB memory 
space." In der Memory Map sind die verschiedenen Speicherbereiche 
dargestellt, ich verstehe aber nicht so recht, was ausserhalb des Flash 
und RAM Speichers liegt. Da sind die Datenregister der Peripheriegeräte, 
aber darüber hinaus weiß ich nicht, was wofür gut ist...
Gibt es da eine einfache Beschreibung der ausgewiesenen Speicherbereiche 
ganz allgemein von Mikrocontrollern oder muß ich mich durch die 745 
Seiten des Datenblattes kämpfen?

Gruß
hochsitzcola
Angehängte Dateien:
Gast #5161769
Lesenswert?

hochsitzcola schrieb:
> In der Memory Map sind die verschiedenen Speicherbereiche
> dargestellt, ich verstehe aber nicht so recht, was ausserhalb des Flash
> und RAM Speichers liegt.

Bei aktuellen 64-Bit PC-Prozessoren kannst du 17179869184 GB Speicher 
adressieren. Wieviel Speicher steckt in deinem PC drin?
Einfach mal nachdenken.
#5161778
Lesenswert?

Wie mein Vorredner bereits gesagt hat: außerhalb liegt erst mal nichts, 
sofern die Memory Map es nicht explizit ausweist.

Die Memory Map zeigt einem ja, welche Peripherieteile, Registerbereiche 
etc. an welcher Speicheradresse auf dem Die liegen. Wenn du zudem 
einfach mal die oberste Speicheradresse deines Controllers (0xF FFFF 
hex) umrechnest, dann kommst du auf genau 1 MiB Speicherbereich. Genau 
das ist der Bereich, den das Datenblatt in diesem ersten einleitenden 
Satz einfach anspricht.

Was die Frage nach einer "einfachen" Beschreibung der Speicherbereiche 
angeht, kann man das so pauschal nicht sagen. Sicher sind kleinere 
Controller eher "einfacher" gestrickt und schneller zu verstehen, als 
ein komplexerer ARM-Controller, aber grundsätzlich sollte man das 
Datenblatt seines Controllers schon einmal im groben überflogen haben 
und verstanden haben, wo was zu finden ist. Die für die jeweilige 
Aufgabe relevanten Teile sollte man dann selbstverständlich schon 
durchdrungen und verstanden haben. Dazu gehört vor allem die 
Speicherbelegung des Chips, da man dort ja direkt entnehmen kann, in 
welchem Speicherbereich man überhaupt suchen muss, um eine bestimmte 
Peripherie anzusprechen, Option-Bytes zu setzen o.ä.

Die Memory Map gibt sehr grob gesagt eine Art Inhaltsverzeichnis des 
Speicherbereichs.

EDIT: Habe gerade mal in das Datenblatt deines Controllers geschaut. 
Direkt hinter der Memory Map werden doch viele dieser Speicherbereiche 
ausführlich beschrieben und gezeigt, was dort zu finden ist, wie diese 
zu schreiben/lesen sind etc. Also in deinem Fall doch relativ "einfach" 
:)

Gruß
#5161866
Lesenswert?

Oft kommt es vor, dass solche "Memory Maps" allgemein für eine ganze 
Familie von Mikrocontrollern gelten.
Innerhalb einer solchen Familie kann es dann je nach Hersteller hunderte 
verschiedene Derivate mit unterschiedlicher Peripherie und 
Speicherausbau geben.
Kurz gesagt; es gibt zu Mikrocontrollern immer übergeordnete Dokumente, 
welche für die gesamte Familie/Serie gelten und Dokumente, welche sich 
auf ein einzelnes Derivat aus dieser Familie beziehen.
Moderator Persönliche Seite #5161874
Lesenswert?

hochsitzcola schrieb:
> In der Memory Map sind die verschiedenen Speicherbereiche dargestellt,
> ich verstehe aber nicht so recht, was ausserhalb des Flash und RAM
> Speichers liegt. Da sind die Datenregister der Peripheriegeräte, aber
> darüber hinaus weiß ich nicht, was wofür gut ist...

Ebendiese sind da mit drin erfasst, außerdem noch offenbar die
CPU-Register.

Es geht ja hier nur um einen Adressraum, also das, was sich überhaupt
von der CPU aus ansprechen ließe.  Das impliziert keineswegs, dass
das alles mit irgendwas hinterlegt wäre.

ps: Bitte Grafiken als PNG, nicht als JPEG.  Die JPEG-Artefakte sind
hässlich, außerdem wäre das PNG vermutlich sogar kleiner.
Gast #5161883
Lesenswert?

> Kurz gesagt; es gibt zu Mikrocontrollern immer übergeordnete Dokumente,
> welche für die gesamte Familie/Serie gelten und Dokumente, welche sich

Das ist der Abfall von ST. Bei Renesas waren die Dokumente immer 
bessser. Jedenfalls die die ich bisher in den Fingern hatte. Das reichte 
es immer ein Datenblatt zu lesen. Man musste sich nicht immer was 
zusammenraten...

Olaf
Moderator #5161963
Lesenswert?

Der uPD79F9211 hat eine 78K0R-CPU und diese einen Adressraum von 1MiB.
Von diesem Adressraum wird nur ein relativ kleiner Teil genutzt, da der
uPD79F9211 mit relativ wenig Speicher ausgestattet ist.

In der Memory-Map gibt es drei "Reserved"-Bereiche: Der erste (04000H–
EFFFFH) scheint für mehr Flash, der zweite (F0800H–F0FFFH) für mehr
SFRs (bzw. LCD-Speicher) und der dritte (F4000H–FFAFF) für mehr RAM
vorgesehen zu sein.

Schau die bspw. mal den R5F11FLL an: Er hat eine ähnliche CPU (die RL78
ist der Nachfolger der 78K0R), aber deutlich mehr Flash (512KiB) und RAM
(48KiB). Der für die RAM-Erweiterung reservierte Adressbereich ist damit
vollständig ausgeschöpft (es mussten sogar noch 256B vom Mirror-Bereich
abgezwackt werden). Auch der Flash-Bereich ist jetzt zu mehr als 50%
belegt. Theoretisch wären bis zu 960KiB Flash möglich, was vielleicht in
zukünftigen Controllervarianten auch genutzt wird.
Angehängte Dateien:
Gast #5171565
Lesenswert?

Möglicherweise lässt sich das Ding mit einem Renesas E1 und der Software 
Renesas Flash Programmer bis V2.05.03 flashen:
https://www.renesas.com/en-eu/products/microcontrollers-microprocessors/78k/softtools.html
Die Software kann man downloaden, den E1 bekommt man mit einem alten 
Dev-Kit, wird auch schonmal so angeboten weil manche gleich mehrere 
rumliegen haben.
Oder es geht eben mit alten NEC-Tools, da kenn ich mich nicht mit aus.

Die Flash-Schutz Mechanismen scheinen etwas kompliziert zu sein und es 
wird da auch nur auf einen anderen Programmer eingegangen. Fraglich also 
ob man mit dem E1 nebst Software auch den fraglichen Bereich (und nur 
den) neu flashen kann:
https://www.renesas.com/en-eu/doc/products/mpumcu/apn/rl78/001/r01an1131eu0101_mcu.pdf

Wie der Hersteller meinte wie eine EEPROM Emulation zu machen sei, kann 
man hier sehen:
https://www.renesas.com/en-eu/doc/DocumentServer/025/U18991EE2V0AN00.pdf

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren