Seite 8 von 11

Re: Erfahrung mit simpleIDE

Verfasst: Mo 4. Aug 2014, 09:32
von yeti
funkheld hat geschrieben:Dein System muss bei denen Unbekannt sein.
Mit Nichten und mit Neffen!

Inline-Assembler:
https://sites.google.com/site/propeller ... asm-basics

Klassisch:
http://forums.parallax.com/showthread.php/146847

...das sind aber nur Brocken... etwas mehr dazu wirst Du schon noch zusammenpuzzeln müssen...

Die PropGCC- und -GAS-Doku sind Dein Freund.

Re: Erfahrung mit simpleIDE

Verfasst: Mo 4. Aug 2014, 10:29
von funkheld
Hmm.., danke.

Solchen ASM-Code möchte ich vermeiden:

__asm__ (
"strloop: "
"rdbyte %[t1], %[string]\n\t"
"cmp %[t1], #0 wz\n\t"
"if_nz add %, #1\n\t"
"if_nz add %[string], #1\n\t"
"if_nz brs #strloop"

: /*outputs (+inputs) */
"+r" (i)
: /*inputs */
[string] "r" (string),
[t1] "r" (t1)
);

Schadet der Gesundheit... :!:

Gruss

Re: Erfahrung mit simpleIDE

Verfasst: Mo 4. Aug 2014, 13:31
von PIC18F2550
Der Quelltext von PASM hat nichts mit SPIN gemein und bildet auch kein Array
Er ist Prozessormäßig auf Long Format beschrängt und daraus Bytes zu machen ist einfach am Ziel vorbei.

PASM ist COG-Code und kein Intepretersalat wie C und SPIN und C kann den COG-Code vom anderen COG nicht lesen daher sind deine Bezüge technisch gesehen irrelevant.

Du musst bedenken das das hier 8 unabhängige CPUs am werkeln sind die in hinsicht auf PASM vollkommen von einander getrennt sind.

mann kann den COG-Code Stückeln und mit einem Loder in den COG Bringen das ist aber nur ein technischer Trick.
Der maximale aktive COG-Code ist je COG nur $1F0 Long lang.

Re: Erfahrung mit simpleIDE

Verfasst: Mo 4. Aug 2014, 14:49
von yeti
funkheld hat geschrieben:Solchen ASM-Code möchte ich vermeiden:
Das kann man mit dem Präprozessor sicherlich noch etwas audhybschen, aber wenn man kappiert  hat, warum das so ausschaut, dann stört's auch nur noch halb so sehr. (Und das WARUM verrat ich jetzt nicht! :P )

Dann nimm halt die klassische Variante mit getrennten *.c- und *.s-Dateien. Aber vielleicht kann SIDE das ja nicht? Keine Ahnung... je simpler das Werkzeug, desto simpler die Probleme, die sich damit lösen lassen...

PropGCC kann's jedenfalls und wenn es mit PropGCC+SIDE nicht geht, nicht mein Problem!

Langsam beschleicht mich das Gefühl: Du willst Alles und das sofort und das natürlich ohne Eigenschweiß auf dem goldenen Tablett serviert von wohlgebauten Untergebenen und/oder -innen.

Re: Erfahrung mit simpleIDE

Verfasst: Mo 4. Aug 2014, 14:57
von yeti
PIC18F2550 hat geschrieben:PASM ist COG-Code und kein Intepretersalat wie C und SPIN und C kann den COG-Code vom anderen COG nicht lesen daher sind deine Bezüge technisch gesehen irrelevant.
Wenn dieses Beispiel mit -mcog kompiliert wird, liegen der C- und PASM-Code im selben Cog.

...aber C hat auch ein cogstart() und kann aus LMM-C-Code heraus PASM starten... dann muß eine Parameterübergabe natürlich anders aussehen.

Es sollte auch nur zeigen wie der Inline-ASM ausschauen kann...

Re: Erfahrung mit simpleIDE

Verfasst: Mo 4. Aug 2014, 15:22
von PIC18F2550
Bei kleineren Sachen hast Du recht Yeti aber mal Ehrlich welches Programm von uns :mrgreen: passt am ende schon in einen COG außer es wird der Code gespalten und in mehrere COGs geladen so wie ich das mache.

Re: Erfahrung mit simpleIDE

Verfasst: Mo 4. Aug 2014, 16:13
von funkheld
PropGCC kann's jedenfalls und wenn es mit PropGCC+SIDE nicht geht, nicht mein Problem!
Dieses C habe ich jetzt rausgeschmissen.

Ich mach jetzt kleine spezielle ASM-Häppchen mit PropBasic und schiebe die dann in meinem SPIN rein und in dem Cog, wo ich es brauche. Hier und da ändere ich noch kleine Sachen am ASM . Und ich kann von dem schon fast fertigen ASM-Code lernen.
Klappt wunderbar.

Gruss

Re: Erfahrung mit simpleIDE

Verfasst: Mo 4. Aug 2014, 16:19
von PIC18F2550
funkheld hat geschrieben:Ich mach jetzt kleine spezielle ASM-Häppchen mit PropBasic und schiebe die dann in meinem SPIN rein und in dem Cog,
Der 1. Start erfolgt immer mit SPIN das ist halt so.

dann kann der SPIN-COG sich selber beenden.

Jetzt kann der gestartete COG die Anderen COGs mit Speichersegmenten aus dem hRAM Starten und Beenden.
Oder mit Hilfe eines Kleinen Loders seinen Eigenen Code modifizieren aus welchen Quellen ist deiner Fantasie überlassen. (bei mir kommt der Code über den Koppelbus)

Re: Erfahrung mit simpleIDE

Verfasst: Mo 4. Aug 2014, 17:48
von yeti
PIC18F2550 hat geschrieben:Bei kleineren Sachen hast Du recht Yeti aber mal Ehrlich welches Programm von uns :mrgreen: passt am ende schon in einen COG außer es wird der Code gespalten und in mehrere COGs geladen so wie ich das mache.
Ich wollte doch nur ein  Beispiel für Inline-Assembler angeben... daß das nicht alle Hassenich und Kannsenich beantwortet, sollte bei der Kürze des Beispieles doch offengugglich sein...

Re: Erfahrung mit simpleIDE

Verfasst: Mo 4. Aug 2014, 20:30
von PIC18F2550
Yeti ich weis doch wie Du das meinst. :D