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
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.
> .. 745 Seiten des Datenblattes kämpfen
Schadet sicher nicht. Ausserhalb ist erst mal nichts, ausser was
deklariert ist. Allenfalls gibt es einen externen Adress- und Datenbus,
dann kann man selbst etwas anhaegen. Sonst ist da nichts.
Kompatibilitaet zu zukuenftigen Modellen.
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ß
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.
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.
> 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
Olaf schrieb:> Das ist der Abfall von ST.
Bei Texas Instruments auch (MSP430) und ich meinte, bei Renesas auch,
jedenfalls bei den Mikrocontrollern welche von Hitachi stammten (z.B.
H8).
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.
Das Datenblatt bzw. der Memory-Map ist nicht so wichtig, wenn Du nur ein
vorhandenes Binary flashen willst. Dafür gibt es von Renesas eine
Application Note (ist allerdings für die uPD78Fxxxx). Da ist die
Schnittstelle und das Protokoll beschrieben:
https://www.renesas.com/ja-jp/doc/DocumentServer/026/U19486EJ1V0AN00.pdf
Jörg
Danke für die vielen Infos!
In welchem Block der 16k Flash würde ein chinesischer Entwickler denn
wohl am ehesten ein "emulated EEPROM" einrichten?!
Ich kann von allen 16 Blöcken die Checksum auslesen, lesegeschützt
scheint also nichts zu sein.
Es geht um dieses Vorhaben:
https://endless-sphere.com/forums/viewtopic.php?f=30&t=90816
Gruß
hochsitzcola
hochsitzcola schrieb:> In welchem Block der 16k Flash würde ein chinesischer Entwickler denn> wohl am ehesten ein "emulated EEPROM" einrichten?!
Im letzten, wenn ich die Architektur dort richtig verstehe.