PASM Bootloader

Du hast ein Betriebssystem für den Hive geschrieben oder beschäftigst dich mit den grundlegenden Systemfunktionen, dann bist du hier richtig!

Braucht der HIVE einen PASM Bootloader?

Umfrage endete am Fr 20. Sep 2013, 21:02

nein der SPINN-Loader reicht vollkommen aus
1
33%
Ja es wird Zeit
2
67%
Ist mir Wurscht.
0
Keine Stimmen
 
Insgesamt abgegebene Stimmen: 3

Benutzeravatar
PIC18F2550
Beiträge: 2831
Registriert: Fr 30. Sep 2011, 13:08

Re: PASM Bootloader

Beitrag von PIC18F2550 »

+++ EDIT +++

geht so nicht
Zuletzt geändert von PIC18F2550 am So 15. Nov 2015, 12:48, 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
Benutzeravatar
PIC18F2550
Beiträge: 2831
Registriert: Fr 30. Sep 2011, 13:08

Re: PASM Bootloader

Beitrag von PIC18F2550 »

Was noch Fehlt ist Die Rückgabe der Aktuellen COGID wenn eine neue 32k Kachel geladen wurde.
Woher soll den das neue Programm wissen auf welchen COG der Treiber werkelt. :)
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
Benutzeravatar
PIC18F2550
Beiträge: 2831
Registriert: Fr 30. Sep 2011, 13:08

Re: PASM Bootloader

Beitrag von PIC18F2550 »

In dem Zusammenhang Frage ich mich ob der Propeller von diesen großen EEPROM booten kann.
Welche Adresse hat der 24LC256 eigentlich?

=== EDIT ===

Alles OK die Adressen sind gleich %1010_A2_A1_A0_RW also kein Problem beim HIVE. :mrgreen:
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
Benutzeravatar
PIC18F2550
Beiträge: 2831
Registriert: Fr 30. Sep 2011, 13:08

Re: PASM Bootloader

Beitrag von PIC18F2550 »

Kommt Zeit kommen Ideen.

Eigentlich müsste nur der Teil in den EEPROM gespeichert werden der relevant zur Programmausführung von nöten wäre.

Diese Länge müsste in den ersten Zellen des eeprom-files enthalten sein.

Theoretisch könnte man bei einen 64k EEPROM 3 Treiber unterbringen.

Aber das erst nach dem test.
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
Benutzeravatar
PIC18F2550
Beiträge: 2831
Registriert: Fr 30. Sep 2011, 13:08

Re: PASM Bootloader

Beitrag von PIC18F2550 »

Irgendwie habe ich einen Knoten im Hirn :oops:

Code: Alles auswählen

Entry
                        cogid   id
                        add     id, #1
                        ....

Code: Alles auswählen

                        ....
                        cmp     id, #1        wz
        if_nz           cogstop cog0
                        cmp     id, #2        wz
        if_nz           cogstop cog1
                        cmp     id, #3        wz
        if_nz           cogstop cog2
                        cmp     id, #4        wz
        if_nz           cogstop cog3
                        cmp     id, #5        wz
        if_nz           cogstop cog4
                        cmp     id, #6        wz
        if_nz           cogstop cog5
                        cmp     id, #7        wz
        if_nz           cogstop cog6
                        cmp     id, #8        wz
        if_nz           cogstop cog7
                        ....

                        'PAR            CODE           NEW  ID
cog0            long    $0000___________0000___________0____0
cog1            long    $0000___________0000___________0____1
cog2            long    $0000___________0000___________0____2
cog3            long    $0000___________0000___________0____3
cog4            long    $0000___________0000___________0____4
cog5            long    $0000___________0000___________0____5
cog6            long    $0000___________0000___________0____6
cog7            long    $0000___________0000___________0____7

Code: Alles auswählen

                        ....
                        coginit spin
                        ....

                        'PAR            CODE           NEW  ID
'spin            long    $0000___________F004___________1____0
spin            long    $0004 << 16 | $F004 << 2 | %0000
Kann das sein das hier die long adressen gebraucht werden die währen ja genau 14 Bit lang und nicht 16 Bit?
So scheint es erst mal zu gehen. $F004(byte) = $3C01 (long) das muss ich mir in BST noch mal genauer ansehen.

Code: Alles auswählen

                        'PAR                  CODE                NEW  ID
spin            long    %00_0000_0000_0001____11_110_0000_0001____1____000
'spin           long    $0004 << 16 | $F004 << 2 | %0000
OK verstehe zwar nicht ganz warum das NEW Bit 0 sein soll damit es den spininterpreter richtig startet.

Code: Alles auswählen

spin           long   $0007C010
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
Benutzeravatar
PIC18F2550
Beiträge: 2831
Registriert: Fr 30. Sep 2011, 13:08

Re: PASM Bootloader

Beitrag von PIC18F2550 »

Jetzt geht es ans Platzsparen. :)

Code: Alles auswählen

Binary Image Information :
PBASE : 0010
VBASE : 032C
DBASE : 0334
PCURR : 0320
DCURR : 0338
Was bedeutet Was:

Code: Alles auswählen

PBASE : Startadresse des Programms
VBASE : Startadresse der Variabeln
DBASE : Startadresse ???
PCURR : Startadresse ???
DCURR : Startadresse ???
Im Hexeditor konnte ich erkennen das ab der Adresse DBASE : 334 alle Zellen nur noch den wert $00 enthielten.
Oder gibt es da Ausnahmen was der Verwendung als Längenzeiger entgegen steht.

Die Daten befinden sich im EEPROM-File an folgender Stelle.

Code: Alles auswählen

$0006 PBASE
$0008 VBASE
$000A DBASE
$000C PCURR
$000E DCURR
Hoffentlich immer dort. :)

Gibt es eine Beschreibung was die restlichen Bytes zwischen $0000 und $0018 (DAT bereich eines Treibers) bedeuten?
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
Benutzeravatar
PIC18F2550
Beiträge: 2831
Registriert: Fr 30. Sep 2011, 13:08

Re: PASM Bootloader

Beitrag von PIC18F2550 »

Ok die Zeiger sind nicht die Lösung :(

Da muss ich wohl erst mal ein Kleines Tool schreiben was aus den verschiedenen Treibern mir ein EEPOM-FILE schreibt.

Im Loader wird dann am Anfang ein Array sein wo die einzelnen Start-Adressen hinterlegt werden.

Die Adressrechnung wird umgestellt um auch einen 128K ohne Probleme verwenden zu können.
Die A16 wird auf die Position vom nicht verwendeten Pin A2 geschoben.
An der alten A16 Position kommt beim EEPROM das R/W Bit.

Rann an Trios :SCHRAUBEN
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
Benutzeravatar
digger
Administrator
Beiträge: 677
Registriert: Sa 23. Mai 2009, 22:44
Wohnort: Schorfheide
Kontaktdaten:

Re: PASM Bootloader

Beitrag von digger »

PIC18F2550 hat geschrieben:Irgendwie habe ich einen Knoten im Hirn :oops:
Also wenn ich deine Experimente so ansehe, hab ich sowieso meist einen Knoten im Hirn. ;) ;) ;)
Benutzeravatar
PIC18F2550
Beiträge: 2831
Registriert: Fr 30. Sep 2011, 13:08

Re: PASM Bootloader

Beitrag von PIC18F2550 »

:shock: DU AUCH !?!?

Das ist das Schlimme an der Sache die Erkenntnis überfährt die Idee und das Ergebnis ist immer eine neue Idee.

Das ist wie Rührkuchen man dreht sich immer im Kreiße aber das Ergebnis ist lecker. :mrgreen:
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
Benutzeravatar
PIC18F2550
Beiträge: 2831
Registriert: Fr 30. Sep 2011, 13:08

Re: PASM Bootloader

Beitrag von PIC18F2550 »

So das Thema eeprom-File ist vom Tisch das wird einfach zu groß.

Jetzt muss ich mich erst mal mit den binary Files befassen um herauszufinden wie die die Daten in den HUB-Ram gebaut werden müssen.

In den 32k EEPROM könnten dann 4 regnatix-treiber eingebaut werden. :SCHRAUBEN
Die Standard Treiber sind alle unter 8k.
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
Antworten