Forum: Mikrocontroller und Digitale Elektronik HEW Konfiguration für R8C: Stack und Heap


von Michael T. (michelback)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich bin gerade dabei den HEW einzurichten um damit meinen µC von Renesas 
(R5F2122CKFP) zu programmieren. Leider scheitert es schon an den 
Workspace-Einstellungen. Im ersten angehängten Bild geht es um die 
Initialization routine. Ich habe dazu keinerlei Angaben in den 
Datenblättern oder der Hilfe gefunden...
Fragen dazu:
Was sind da sinnvolle Werte für den ROM(Auszuwählen sind 32K, 48K oder 
64K)?

Und was steht eigentlich alles in der Initialization routine? 
Porteinstellungen und warten bis der oszillator anläuft?

Wofür brauche ich beim ROM einen HEAP? Ich dachte der Heap wird nur im 
RAM verwendet???

Fragen zu den Stack-Einstellungen:
Wie es scheint geht es um die Pointer bei diesen Einstellungen und nicht 
um die Stack-größe. Kann ich überhaupt die Stackgröße vorher festlegen?

Und was sind sinnvolle Größen für die pointer, bzw. was sollte man dort 
eintragen???

Beide Bilder enthalten die Startwerte, wenn das Fenster geöffnet wird. 
Es sind nicht Werte die ich eingetragen habe, sondern die schon so drin 
stehen.

Daten µC:
126 KByte Flash/Programm-Speicher
6 KByte RAM

Zur Anwendung:
der µC ist Kernstück eines Datenloggers. Alle Signale kommen digital am 
µC an.

von Lobender (Gast)


Lesenswert?

Mach dir keine allzugrossen Sorgen um diese Werte.

Wenn du vor dieser Eingabemaske den richtigen uC Typ gewählt hast, sind 
die Standartwerte sehr brauchbar.

Ich musste nur einmal die Stack Size ändern, kannst auchnoch naträglich 
machen.

Ich würde die Standard I/O Library nutzen (Häcken setzen).

von Olaf (Gast)


Lesenswert?

> Was sind da sinnvolle Werte für den ROM(Auszuwählen sind 32K,
> 48K oder 64K)?

Das haengt halt davon ab was dein Prozessor hat. Schau mal
ins Datenblatt.

> Und was steht eigentlich alles in der Initialization routine?

Du wirst es nicht glauben, aber du kannst sie dir anschauen!
Je nach dem was du beim einrichten eines neuen Projektes angegeben
hast, erzeugt dir die Oberflaeche entweder zwei Assemblerfiles
oder mehrere C-Source. Ich empfehle letzteres.

> Porteinstellungen und warten bis der oszillator anläuft?

Noe. Im Prinzip wird da nur der Stack eingerichtet und es werden
ein paar Defaultwerte fuer die Interuptaufrufe gesetzt.

> Wofür brauche ich beim ROM einen HEAP?

Das Rom braucht den auch nicht. Aber der Controller kann dir etwas Platz
fuer einen Heap bereitstellen indem er den Stack woanders hinlegt oder
globale Variablen verschiebt.

> Ich dachte der Heap wird nur im
> RAM verwendet???

Ja, es liegt an dir zu entscheiden ob du in deinem Programm einen Heap
brauchst, also malloc/free verwenden moechtest oder nicht. Bei
einem kleinen R8C also normalerweise nicht notwendig.

> Wie es scheint geht es um die Pointer bei diesen Einstellungen
> und nicht um die Stack-größe. Kann ich überhaupt die
> Stackgröße vorher festlegen?

Es wird da letztlich die Position des Stacks festgelegt. Du kannst
dir aber in den von HEW generierten Files genau anschauen was da
passiert und die Werte auch spaeter noch aendern.


> Und was sind sinnvolle Größen für die pointer, bzw. was sollte
> man dort eintragen???

DAs ist der Stack fuer den Interrupt. Wie gross der sein soll haengt
davon ab was du programmieren willst. Vielleicht schreibst du ja
sogar ein Programm das garkeine Interrupts verwendet?
Wenn du aber noch garkeine Ahnung hast, und das ist bei dir sicherlich
der Fall, dann uebernimm einfach die Defaultwerte.

Lediglich den Heap wuerde ich abschalten, da sowas bei so kleinen 
Controllern eigentlich quatsch ist.

Olaf

von (prx) A. K. (prx)


Lesenswert?

Michael T. schrieb:

> Was sind da sinnvolle Werte für den ROM(Auszuwählen sind 32K, 48K oder
> 64K)?

Wohl was der Chip drin hat. Oft gibt es verschiedene Kapazitäten bei 
ansonsten gleicher Bauart.

> Wofür brauche ich beim ROM einen HEAP?

Blöd konstruierte Dialogbox. Das "ROM" bezieht sich nur auf den Wert 
rechts daneben.

von Michael T. (michelback)


Lesenswert?

Ok, vielen Dank, damit ist das meiste klar geworden. Ab jetzt gehts 
weiter mit trial and error ;)
Vielen Dank an euch alle!

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.