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 »

2 kleine Fragen zu der Syntax:

Warum "rdlong 0-0, reg_a" und nicht "rdlong 0, reg_a"?

Ist "dst1 long |< 9" gleich "dst1 long %00000000_00000000_00000001_00000000"?
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
kuroneko
Beiträge: 202
Registriert: Sa 22. Okt 2011, 13:05
Wohnort: FN, Germany

Re: PASM Bootloader

Beitrag von kuroneko »

PIC18F2550 hat geschrieben:2 kleine Fragen zu der Syntax:

Warum "rdlong 0-0, reg_a" und nicht "rdlong 0, reg_a"?

Ist "dst1 long |< 9" gleich "dst1 long %00000000_00000000_00000001_00000000"?
0-0 hat sich eingebuergert fuer Register die programmatisch veraendert werden (nicht meine Erfindung, hauptsaechlich fuer Leute, die den Code lesen/verstehen wollen). Wenn die Initialisierung vor der ersten Nutzung erfolgt dann ist es Jacke wie Hose. |< 9 ist das Gleiche wie 1 << 9, in binary dann eben %00000000_00000000_00000010_00000000.
Benutzeravatar
PIC18F2550
Beiträge: 2831
Registriert: Fr 30. Sep 2011, 13:08

Re: PASM Bootloader

Beitrag von PIC18F2550 »

OK das ist halt so. Werd ich auch so übernehmen ist damit gebucht :)

Ich sehe gerade 9 mal schieben und nicht 8 :(

Hier werde ich eindeutig das 1<<9 dem |<9 vorziehen aber schön zu wissen was damit gemeint ist.

Danke.
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 »

Binn auf ein neues Problem gestoßen.

Code: Alles auswählen

'#####################################################################################
'# * sd-card: volume unmounten wenn gemountet (rücksetzen aller zeiger)
'#####################################################################################
errorreturn
            mov     reg_a,  a_sdUnmount
            call    #aput

            mov     reg_a,  #$1FF                  
pp1         djnz    reg_a,  #pp1     wz

            call    #aget                     ' Rückmeldung verwerfen
ohne Pause bleibt das Programm in der routine aget stecken.
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
kuroneko
Beiträge: 202
Registriert: Sa 22. Okt 2011, 13:05
Wohnort: FN, Germany

Re: PASM Bootloader

Beitrag von kuroneko »

Code: Alles auswählen

aget
            waitpeq _hs,_hs           ' warte auf hs=1 (slave bereit)
            mov     outa,_a3          ' bel=0 wr=1 clk=1
            waitpeq _zero,_hs         ' warte auf hs=0
            mov     reg_a,ina         ' daten einlesen
            and     reg_a,#$ff        ' wert maskieren
            mov     outa,_s1          ' bussignale inaktiv
aget_ret
            ret
Bleibt aget im zweiten waitpeq haengen? In dem Fall vermute ich mal, dass das erste mov outa die Gegenstelle verwirrt weil es irgendwie zu frueh kommt.
Benutzeravatar
zille9
Beiträge: 399
Registriert: Do 4. Okt 2012, 21:56
Wohnort: Berlin

Re: PASM Bootloader

Beitrag von zille9 »

Hallo Pic, was ist eigentlich aus diesem Projekt geworden? Ich frage aus folgendem Grund: Durch die Veröffentlichung von TRIOS R57 und den noch vorhandenen Unvereinbarkeiten von TRIOS und Plexus, ist es wahrscheinlich am sinnvollsten, einen Bootloader zu verwenden (so wie Deiner) in dem man beim Start auswählen kann, welches Betriebssystem oder Programm geladen werden soll. Zur Zeit habe ich im Plexus die Möglichkeit eingebaut, zu TRIOS zu wechseln und unter TRIOS wird es ein kleines Programm "goplexus.bin" geben, mit dem man wieder zurück zu Plexus kommt. Das ist aus meiner Sicht aber nur als Krücke zu verstehen.Eleganter wäre wie gesagt Dein Bootloader.
Wie ist zur Zeit der Stand ? Ist er schon nutzbar oder anders gefragt, würdest Du ihn , um ihn als Standard TRIOS-Bootloader zu verwenden, zur Marktreife weiterentwickeln?
Computer lösen die Probleme, die man ohne sie gar nicht hätte!
Benutzeravatar
PIC18F2550
Beiträge: 2831
Registriert: Fr 30. Sep 2011, 13:08

Re: PASM Bootloader

Beitrag von PIC18F2550 »

Hi zille9,

ich habe das Projekt für den HIVE etwas aufs Eis gelegt da ja kein nennenswertes Interresse bestand.
Des weiteren habe ich mit Probleme bei der sicheren Kommunikation zwischen Spin und PASM Teilnehmern festgestellt.

Ein Übeltäter war das das Quittungssignal das nur auf 0 geprüft wird aber nirgens in "reg-ios.spin" ob es auch wieder auf 1 geht.
Das Verursachte bei mir das Befehle untergingen und Nachvolgende Daten als Befehl interpretiert wurden.
Daher wollte ich einen 9Bit Datenbus verwenden wobei das 9. Bit als Commanokennung verwendet wird.
(Die Taktleidung wird bei der Kommunikation nicht wirklich gebraucht)
Die Änderungen am Grundsystem währen viel zu groß und die Kompartibilität mit älteren Programmen währe auch nicht mehr gegeben.

z.Z. ziehe ich meine Teilprojekte auf das Rack rüber und versuche diese dort zu integrieren.
Binn aber zeitlich Ausgelastet und habe täglich nur ca. 1h :( zeit, die VGA-KArte sollte auch schon in der Ferdigung sein.
Und dann klebt mir noch das VGA-Modul vom KC an der Backe wo der KC gerade ziggen macht :x .

Mein letzter gedanke zum Thema Loader war das das System von einem Server heruntergeladen wird.
1. Bootloader holt die Programmliste vom Server
2. Bootloader stellt Auswahlmenü dar und ermittelt das Programm
3. Bootloader fragt nach Programm "XYZ" auf Server
4. Server generiert "HXZ" mit hilfe von php und openspin die Aktuellen Boot Dateien für Regnatix("HXZ.reg"), Bellatrix("HXZ.bel") und Administra("HXZ.adm") in 32k blöcken
5. Bootloader startet das Programm

Die Abfragemaste würde dann genauso aussehen.
Optional könnte dann auch noch eine SD-Karten option rein.
Leider kann Bellatrix und Administra nicht miteinnander direct Kommunizieren was für diesen Bootvorgang aber gebraucht wird.
(es müsten sonst Teile im Ram zwischengespeichert werden und der steht dafür aber nicht zur verfügung)

Leider sind die Probleme mit openspin in bezug zu den include Funktion schon ganz schön mächtig.
Und der einsatz von bstc ist auf grund das er kein include kann nicht geeignet.
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
zille9
Beiträge: 399
Registriert: Do 4. Okt 2012, 21:56
Wohnort: Berlin

Re: PASM Bootloader

Beitrag von zille9 »

Das sind ja Probleme über Probleme, naja war ja nur so eine Idee. Muss ich mir selbst was einfallen lassen.
Leider sind die Probleme bei mir auch nicht kleiner, die regflash.bin im neuen R57 Trios ist immer noch ein Long zu groß, was Plexus beim Start blockiert (warum auch immer) und meine BUS-Erweiterung blockiert TRIOS. Nervt ein bisschen, alles neu zu compilieren nur weil ein Long nicht stimmt oder ein Bit nicht gesetzt ist.
:SCHREIEN
Computer lösen die Probleme, die man ohne sie gar nicht hätte!
Benutzeravatar
PIC18F2550
Beiträge: 2831
Registriert: Fr 30. Sep 2011, 13:08

Re: PASM Bootloader

Beitrag von PIC18F2550 »

Ich habe zille9 mal den letzten stand des Loaders geschickt.
Vieleicht läst sich damit das Loaderproblem von Trios/Plexus lösen.
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 »

Ich habe mich heute mal wieder etwas mit dem Bootloader befasst und habe eine Version ersonnen die mit einem größeren EEPROM funktioniert.

Es kann maximal 16 verschiedene Treiber zur Verfügung stellen.
(im HIVE max 4 pro Chip)

Theoretisch könnte ich den Treiber 3x in der Sekunde wechseln.

Der Treiber belegt permanent einen COG und das letzte BYTE im RAM.
Er ist Komplett in PASM.

Wenn ich das Teil etwas entrümpelt habe (ohne Seriellen Bus)==> und auf HIVE umgestellt habe
Werde ich den Quellcode hier mal reinstellen.
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