PASM Bootloader
- PIC18F2550
- Beiträge: 2851
- Registriert: Fr 30. Sep 2011, 13:08
Re: PASM Bootloader
deleted new Code:kleine correkturen und ein paar longs eingespart.
Zuletzt geändert von PIC18F2550 am Di 17. Sep 2013, 21:51, insgesamt 2-mal geändert.
Gruß
PIC18F2550
drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
PIC18F2550
drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
Re: PASM Bootloader
Wunschdenken :)PIC18F2550 hat geschrieben:alle auser sich selbst.kuroneko hat geschrieben:Wieviele cogs schaltet Dein Code dann ab?
par ist immer long, man hat ja nur 14bit zur Verfuegung, die unteren beiden bits werden als 0 betrachtet (4n).PIC18F2550 hat geschrieben:par Zeiger wert muß der in long oder byte sein
Ist doch wirklich nicht so schwer. 2x14bit gehen fuer die Adressen drauf. Bleiben 4bit. Bit 3 = 1 heisst cognew (next free ID), die unteren 3bit sind dann egal (%1---). Laesst Du bit 3 auf 0 dann werden die unteren 3bit als cogid interpretiert (%0ccc, coginit, explicit ID).PIC18F2550 hat geschrieben:COGID von 0 - 7? weil 8 bit freigehalten werden :shock: ist doch irgendwie 1 Bit zuviel oder habe ich was übersehen.
Vergiss @ in PASM (allgemein in DAT). Das gibt Dir nur das relative Offset im aktuellen Object. In SPIN kriegst Du was Du erwartest (absolute hub address). Muss man wissen, dafuer hat bst dann @@@. Und die ersten beiden Varianten funktionieren genau andersherum.PIC18F2550 hat geschrieben:mit dem syntax binn ich immer noch am kämpfen :(
mov reg_a, $4 'direktwert in reg_a schreiben
mov reg_a, #$4 'inhalt des in long $4 enthaltenden wertes laden
mov reg_a, @wert 'adresse wo wert gespeichert ist laden (0-1FF)direktwert
Code: Alles auswählen
DAT org 0
entry cogid $ nr ' $000 $0C7C0001
mov a, #0 ' $001 a := 0
mov a, 0 ' $002 a := $0C7C0001
mov a, entry ' $003 a := $0C7C0001
a res 1
- PIC18F2550
- Beiträge: 2851
- Registriert: Fr 30. Sep 2011, 13:08
Re: PASM Bootloader
Ooook
da mach ich mich mal an die Arbeit meinen Mist zu korrigieren.
cognew (next free ID) ist genau richtig und das was ich suche.
Muß PAR $0001 beim start des Interpreters was übergeben werden? ich denke ja was steckt im 2. long vom hRAM eigendlich drinn.
interpreter long $0001 << 18 + $3C01 << 4 + %1000
mov reg_a, #$4 'direktwert in reg_a schreiben
mov reg_a, $4 'inhalt des in long $4 enthaltenden wertes laden

da mach ich mich mal an die Arbeit meinen Mist zu korrigieren.
cognew (next free ID) ist genau richtig und das was ich suche.
Muß PAR $0001 beim start des Interpreters was übergeben werden? ich denke ja was steckt im 2. long vom hRAM eigendlich drinn.
interpreter long $0001 << 18 + $3C01 << 4 + %1000
mov reg_a, #$4 'direktwert in reg_a schreiben
mov reg_a, $4 'inhalt des in long $4 enthaltenden wertes laden
Gruß
PIC18F2550
drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
PIC18F2550
drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
- PIC18F2550
- Beiträge: 2851
- Registriert: Fr 30. Sep 2011, 13:08
Re: PASM Bootloader
Damit kann ich jetzt mein Zeigerfeld erzeugen.
Die Texte müssten dazu auf long Grenzen verschoben werden.
Alles ist relativ auch der WAHNSINN.
Danke kuroneko jetzt entsteht auch das richtige compilerlisting.
Code: Alles auswählen
MEL_01Z long @@@MEL_01 /4-@@@MEL_01Z/4+1
ERRLIST long @@@ERRT_01/4-@@@MEL_01Z/4+1
long @@@ERRT_02/4-@@@MEL_01Z/4+1
long @@@ERRT_03/4-@@@MEL_01Z/4+1
...

Die Texte müssten dazu auf long Grenzen verschoben werden.
Alles ist relativ auch der WAHNSINN.
Danke kuroneko jetzt entsteht auch das richtige compilerlisting.

Gruß
PIC18F2550
drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
PIC18F2550
drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
- PIC18F2550
- Beiträge: 2851
- Registriert: Fr 30. Sep 2011, 13:08
Re: PASM Bootloader
so das ist der heutige Stand file deleted @kuroneko ist der Teil mit dem cogstop richtig?
Zuletzt geändert von PIC18F2550 am Mi 18. Sep 2013, 15:55, insgesamt 1-mal geändert.
Gruß
PIC18F2550
drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
PIC18F2550
drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
Re: PASM Bootloader
Schau Dir mal den Einsprung Code des Interpreters an. Es werden 5 words beginnend ab Adresse 6 geladen (long[0] == clkfreq, byte[4] == clkmode, byte[5] == checksum).PIC18F2550 hat geschrieben:Muß PAR $0001 beim start des Interpreters was übergeben werden? ich denke ja was steckt im 2. long vom hRAM eigendlich drinn.
Code: Alles auswählen
' initial parameters
'
' par word
' -----------------
' +2 pbase
' +4 vbase
' +6 dbase
' +8 pcurr
' +A dcurr
'
' Entry
'
DAT org
mov x,#$1F0-pbase 'entry, load initial parameters
mov y,par
:loop add y,#2
:par rdword pbase,y
add :par,#$100 'inc d lsb
add :par,#$100
djnz x,#:loop
Re: PASM Bootloader
Nicht ganz. Wenn Du eine djnz Schleife bastelst und N Dein Index ist dann "sieht" die Schleife nur N..1. Wie willst dann jemals cog 0 loswerden?PIC18F2550 hat geschrieben:@kuroneko ist der Teil mit dem cogstop richtig?
Code: Alles auswählen
mov ccnt, #7 ' seven contenders
cogid this ' and us
or spin, this ' remember for restart
add them, #1 ' everyone but us
cogstop them ' sayonara ...
djnz ccnt, #$-2 ' to all of them
coginit spin ' launch SPIN interpreter
' initialised data and/or presets
spin long $0004 << 16 | $F004 << 2 | %0000
' uninitialised data and/or temporaries
ccnt res 1 ' cog shutdown loop index
this ' our cog ID
them res 1 ' and our contenders
- PIC18F2550
- Beiträge: 2851
- Registriert: Fr 30. Sep 2011, 13:08
Re: PASM Bootloader
Frage:
wenn ich ein eeprom-file ab adresse 0 in den lRam lade sind doch da die Werte pbase, vbase, dbase, pcurr und dcurr gesetzt?
Dann muss ich doch nur noch einen beliebigen freien COG mit
starten.
Oder lieg ich hier vollkommen Falsch.
wenn ich ein eeprom-file ab adresse 0 in den lRam lade sind doch da die Werte pbase, vbase, dbase, pcurr und dcurr gesetzt?
Dann muss ich doch nur noch einen beliebigen freien COG mit
Code: Alles auswählen
coginit spin
spin long $0004 << 16 | $F004 << 2 | %1000
Oder lieg ich hier vollkommen Falsch.
Gruß
PIC18F2550
drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
PIC18F2550
drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
Re: PASM Bootloader
Noe, EEPROM oder BINARY Files haben diese 5 Werte schon vorbereitet (einfach zu sehen im PropTool mit F8, in bst etwas weniger offensichtlich). Fuer letzteres musst Du aber die Marker setzen und VAR loeschen. Und beim EEPROM File vielleicht Adresse $7FFC ausklammern (vom Loader genutzt).PIC18F2550 hat geschrieben:Frage:
wenn ich ein eeprom-file ab adresse 0 in den lRam lade sind doch da die Werte pbase, vbase, dbase, pcurr und dcurr gesetzt?
Dann muss ich doch nur noch einen beliebigen freien COG ... starten.
Oder lieg ich hier vollkommen Falsch.
- PIC18F2550
- Beiträge: 2851
- Registriert: Fr 30. Sep 2011, 13:08
Re: PASM Bootloader
Spinnteil mit Grundgerüst erweitert.
Bellatrixloader fehlt immer noch:(
datei deledet
@kuroneko
$7FFC kann ruhig überschieben werden da der Wert nach dem laden von regnatix neu vom loader gesetzt wird.
Der COG vom Spinninterpreter ist da noch beim laden also Entwarnung.
Was meinst Du mit "Marker setzen und VAR loeschen"?
Bellatrixloader fehlt immer noch:(
datei deledet
@kuroneko
$7FFC kann ruhig überschieben werden da der Wert nach dem laden von regnatix neu vom loader gesetzt wird.
Der COG vom Spinninterpreter ist da noch beim laden also Entwarnung.
Was meinst Du mit "Marker setzen und VAR loeschen"?

Zuletzt geändert von PIC18F2550 am Do 19. Sep 2013, 11:01, insgesamt 1-mal geändert.
Gruß
PIC18F2550
drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
PIC18F2550
drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo