Seite 1 von 1
Stackgröße aus bin oder eeprom file lesen
Verfasst: Sa 19. Dez 2015, 00:49
von PIC18F2550
Hallo,
woran kann ich an einem bin oder eeprom File die größe des Stacks erkennen.
Da der Chip Standardmäßig in spin startet muss die größe des Stackes definiert sein.
Re: Stackgröße aus bin oder eeprom file lesen
Verfasst: So 20. Dez 2015, 13:44
von drohne235
Schau mal im Handbuch unter _stack. Beantwortet nicht direkt deine Frage, aber vielleicht hilft es dennoch. Anwendung von _stack findet man im graphics-demo.
Re: Stackgröße aus bin oder eeprom file lesen
Verfasst: So 20. Dez 2015, 17:24
von PIC18F2550
Da hab ich schon nach geschaut.
Mit STACK_ wird nur ein Speicher Bereich mit Schreibschutz reserviert dessen größe ich festlegen muss.
Ich suche aber den von BST ermittelte große.
Die sollte im file enthalten sein.
Re: Stackgröße aus bin oder eeprom file lesen
Verfasst: So 20. Dez 2015, 18:24
von drohne235
Jo, die ist in den ersten Bytes in der BIN-Datei versteckt. Schau dir mal den Loader in Regnatix oder Bellatrix an, dort werden diese Werte verarbeitet und gesetzt bevor der entsprechenden Code in der Cog gestartet wird. In Regnatix ist der Loader in Spin geschrieben, in Bella ist die Kernroutine ein PASM-Code um wirklich den gesamten hRAM nutzen zu können.
Re: Stackgröße aus bin oder eeprom file lesen
Verfasst: Mo 21. Dez 2015, 12:20
von kuroneko
PIC18F2550 hat geschrieben:Ich suche aber den von BST ermittelte große.
Die sollte im file enthalten sein.
im File steht wirklich nur der Anfang vom Stack. Den Rest muss man selber machen. Mit anderen Worten, falls der Anwender
_STACK und
_FREE abweichend von ihren defaults belegt, hast Du ein (kleines) Problem.
Re: Stackgröße aus bin oder eeprom file lesen
Verfasst: Mi 23. Dez 2015, 00:07
von PIC18F2550
Zur Verdeutlichung meines Anliegens.
Code: Alles auswählen
VAR
long TestStack[32] 'a stack of longs used by delay routine
PUB public_method_name
cognew(Toggle(16, 3_000_000, 10), @TestStack)
...
PRI Toggle(x, y, z)
...
Der @TestStack muss genauso groß sein wie der Stack von dem 1. GOG wenn der Spinninterpreter gestartet wird.
Hintergrund ist das die von BST ermittelte Größe immer richtig ist da ich mehrere COGs mit dem gleichen CODE ab 0 starten will.