PASM Bootloader
- PIC18F2550
- Beiträge: 2851
- Registriert: Fr 30. Sep 2011, 13:08
Re: PASM Bootloader
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"?
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
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
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.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"?
- PIC18F2550
- Beiträge: 2851
- Registriert: Fr 30. Sep 2011, 13:08
Re: PASM Bootloader
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.

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
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
Binn auf ein neues Problem gestoßen.
ohne Pause bleibt das Programm in der routine aget stecken.
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
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
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
Re: PASM Bootloader
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?
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!
- PIC18F2550
- Beiträge: 2851
- Registriert: Fr 30. Sep 2011, 13:08
Re: PASM Bootloader
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
.
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.
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

Und dann klebt mir noch das VGA-Modul vom KC an der Backe wo der KC gerade ziggen macht

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

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.

Computer lösen die Probleme, die man ohne sie gar nicht hätte!
- PIC18F2550
- Beiträge: 2851
- Registriert: Fr 30. Sep 2011, 13:08
Re: PASM Bootloader
Ich habe zille9 mal den letzten stand des Loaders geschickt.
Vieleicht läst sich damit das Loaderproblem von Trios/Plexus lösen.
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
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
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.
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
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