Seite 1 von 1
Parameterübergabe spin asm, asm asm
Verfasst: Do 13. Aug 2009, 21:57
von wb1
Irgendwie habe ich einen Knoten im Hirn.
Ich bekomme einfach nicht die Parameterübergabe zwischen spin und asm in die Reihe.
Kann das jemand erklären?
Re: Parameterübergabe spin asm, asm asm
Verfasst: Do 13. Aug 2009, 22:18
von drohne235
desilva hat mal ein gutes tutorial dazu geschrieben:
http://propellerforum.sps-welt.de/viewf ... 680ba3eb00
ich hätte nur ein paar democodes liegen, mit welchen ich selbst experimentiert hab - pasm-routinen um den externen ram anzusprechen usw. für die testroutinen gibt es gleich noch einen kleinen spin-kommandointerpreter, mit welchem man interaktiv den PASM-Code in der COG steuern kann. einfach "sode-eram 3.spin" mit f10 in regnatix laden und folgendes mal testhalber eingeben:
Code: Alles auswählen
start
run 1 - led an
run 2 - led aus
- bereiche füllen
ph 1 0 ffff 1 0 - parameter setzen
pv - parameter anzeigen
run 3 - füllt ffff bytes b adresse 0 mit 01 in bank 1
ed - anzeige ram ab 0
run 3 0 ff 1 0 - kommando mit parametern
run 3 - setzt kommando bei nächsten block fort
- bereich testen
run 4 0 ff aa 0 - sucht nächste zelle mit dem wert aa
run 4 - setzt test fort
natürlich ohne die kommentare hinter den bindestrichen. bei dem code übergebe ich parameter, vielleicht hilft dir der testcode ein wenig.
Re: Parameterübergabe spin asm, asm asm
Verfasst: Fr 14. Aug 2009, 22:34
von wb1
Vielen Dank
Ich habe die Datenübergabe von ASM zu SPIN begriffen.
Bei der Simulation mit Gear ist mir aufgefallen, daß die Portzustände nach der Initialisierung unbestimmt sind. Es erfolgen Pegelwechsel, die ich mir nicht erklären kann.
In den Programmschnipseln wird nichts anderes gemacht, als die HB-Led durch Parameterübergabe eines weiteren Cogs zum blinken zu bringen.
Wenn du die binary in gear lädst und den Port 24 in gear logic-probe anzeigen läßt, läuft es anscheinend normal. Führst du einen reset aus, kommen nach dem Start des cogs der ASM ausführt, kurzzeitig ein paar Pegelwechsel.
Im Propeller Eduacation Fundamentals, seite 37, habe ich gelesen, daß vor dem poweroff und nach dem poweron unbedingt die "DoNothing.spin" ausgeführt werden sollte, um alle ports definiert auf Eingang zu setzen.
Wenn dies wirklich zwingend nötig ist, bedeutet es, daß ein reset nicht zwangsläufig die Ports auf Eingang setzt.
Dies könnte auch eine Erklärung für die zerschossenen SD-Cards sein.
Anbei der Test zur Parameterübergabe mit mikrigen Erläuterungen.