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

PASM Bootloader

Beitrag von PIC18F2550 »

Im Anhang die Schrittkette eines PASM-Loaders für Regnatix.
Die Grundstrucktur und Arbeitsweise sollte schon erkennbar sein.

Code: Alles auswählen

OBJ

CON
_CLKMODE     = XTAL1 + PLL4X
_XINFREQ     = 20_000_000

VAR

DAT
DATEN
            Byte  "LIB",0,0,0,0,0,0,0,0,0     ' Path Administra
            Long  0
            Byte  0,0,0,0,0,0,0,0,0,0,0,0     ' Administra
            Long  0
            Byte  "LIB",0,0,0,0,0,0,0,0,0     ' Path Bellatrix
            Long  0
            Byte  0,0,0,0,0,0,0,0,0,0,0,0     ' Bellatrix
            Long  0
            Byte  "BOOT" ,0,0,0,0,0,0,0,0     ' Path Regnatix
            Long  0
            Byte  "reg.bin"    ,0,0,0,0,0     ' Regnatix
            Long  0

DAT
                    org     0
'#####################################################################################
'# Warten auf Startfreigabe
'#####################################################################################
loader

'#####################################################################################
'# BUS-Init
'#####################################################################################

'#####################################################################################
'# Copy Dateinahmen
'#####################################################################################

'#####################################################################################
'# Alle anderen COG's Stoppen
'#####################################################################################

'#####################################################################################
'# sd-card: test ob volume gemounted ist
'#####################################################################################

'#####################################################################################
'# sd-card: volume unmounten
'#####################################################################################

'#####################################################################################
'# sd-card: volume mounten
'#####################################################################################

'#####################################################################################
'# sd-card: verzeichnis wechseln ADMINISTRA
'#####################################################################################

'#####################################################################################
'# 'chip-mgr: neuen ADMINISTRA-code booten
'#####################################################################################

'#####################################################################################
'# sd-card: volume mounten
'#####################################################################################

'#####################################################################################
'# sd-card: verzeichnis wechseln BELLATRIX
'#####################################################################################

'#####################################################################################
'# 'chip-mgr: neuen BELLATRIX-code booten
'#####################################################################################

'#####################################################################################
'# sd-card: verzeichnis wechseln REGNATIX
'#####################################################################################

'#####################################################################################
'# 'chip-mgr: neuen REGNATIX-code booten
'#####################################################################################

'#####################################################################################
'# Rücksprung auf Startfreigabe
'#####################################################################################

' ======================================================================================
' SUBROUTINEN : wait 1s / 2s / 3s / 4s
' ======================================================================================

' ======================================================================================
' SUBROUTINEN : sd-card: verzeichnis wechseln
' ======================================================================================

' ======================================================================================
' SUBROUTINEN : string senden
' ======================================================================================
' zeichenstring zu administra senden ende durch $00
' zeichenstring zu bellatrix senden ende durch $00

' ======================================================================================
' SUBROUTINEN : businterface
' ======================================================================================
' byte zu administra senden
' long zu administra senden
' byte zu bellatrix senden
' byte von administra empfangen
' byte von belatrix empfangen

' ======================================================================================
' SUBROUTINEN : Error
' ======================================================================================

' ======================================================================================
' KONSTANTEN & VARIABELN
' ======================================================================================

STATUSADR   long  $0000_7FFC

HOMEZ       long   @HOME
PATH1Z      long   @PATH1
DATEI1Z     long   @DATEI1
PATH2Z      long   @PATH2
DATEI2Z     long   @DATEI2
PATH3Z      long   @PATH3
DATEI3Z     long   @DATEI3

HOME        byte  "..",0,0
PATH1       long  0,0,0,0         ' Verzeichnis von wo geladen werden Soll
DATEI1      long  0,0,0,0
PATH2       long  0,0,0,0
DATEI2      long  0,0,0,0
PATH3       long  0,0,0,0
DATEI3      long  0,0,0,0

ERRLIST     long  @ERRT_01, @ERRT_02, @ERRT_03, @ERRT_04, @ERRT_05, @ERRT_06, @ERRT_07, @ERRT_08, @ERRT_09, @ERRT_10
            long  @ERRT_11, @ERRT_12, @ERRT_13, @ERRT_14, @ERRT_15, @ERRT_16, @ERRT_17, @ERRT_18, @ERRT_19, @ERRT_20
            long  @ERRT_21, @ERRT_22, @ERRT_23, @ERRT_24, @ERRT_25', @ERRT_26, @ERRT_27, @ERRT_28, @ERRT_29, @ERRT_30

ERRT_01     byte  "card not moundet",$A,0
ERRT_02     byte  "fsys unmounted",$A,0
ERRT_03     byte  "fsys corrupted",$A,0
ERRT_04     byte  "fsys unsupported",$A,0
ERRT_05     byte  "not found",$A,0
ERRT_06     byte  "file not found",$A,0
ERRT_07     byte  "dir not found",$A,0
ERRT_08     byte  "file read only",$A,0
ERRT_09     byte  "end of file",$A,0
ERRT_10     byte  "end of directory",$A,0
ERRT_11     byte  "end of root",$A,0
ERRT_12     byte  "dir is full",$A,0
ERRT_13     byte  "dir is not empty",$A,0
ERRT_14     byte  "checksum error",$A,0
ERRT_15     byte  "reboot error",$A,0
ERRT_16     byte  "bpb corrupt",$A,0
ERRT_17     byte  "fsi corrupt",$A,0
ERRT_18     byte  "dir already exist",$A,0
ERRT_19     byte  "file already exist",$A,0
ERRT_20     byte  "out of disk free space",$A,0
ERRT_21     byte  "disk io error",$A,0
ERRT_22     byte  "command not found",$A,0
ERRT_23     byte  "timeout",$A,0
ERRT_24     byte  "out of memory",$A,0
ERRT_25     byte  "undefined",$A,0

          fit     $1F0

PUB main
    waitcnt(clkfreq*2+cnt)                                'kurze pause für slaves
    long[$7FFC]:=0
    cognew(@loader,0)
    long[$7FFC]:=@DATEN

CON ' Administra =============================================================================

CON ' Bellatrix =============================================================================
Zuletzt geändert von PIC18F2550 am Mo 16. Sep 2013, 14:26, insgesamt 6-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
Micha
Beiträge: 813
Registriert: Sa 24. Mär 2012, 21:45
Wohnort: Merseburg
Kontaktdaten:

Re: PASM Bootloader

Beitrag von Micha »

Spinn reicht vollkommen aus ;)
Dateianhänge
TigerEntenSpinne.jpg
Also vonder Sache här tätch jetz ma behaupten "Mischn ägomplischd" un so...
BorgKönig
Beiträge: 598
Registriert: So 24. Mai 2009, 11:24

Re: PASM Bootloader

Beitrag von BorgKönig »

nen pasm bootloader ist schon was feines... wie flott ist dein bootloader im vergleich zum spin bootloader...?
Benutzeravatar
PIC18F2550
Beiträge: 2831
Registriert: Fr 30. Sep 2011, 13:08

Re: PASM Bootloader

Beitrag von PIC18F2550 »

PASM /SPIN 1:80
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
BorgKönig
Beiträge: 598
Registriert: So 24. Mai 2009, 11:24

Re: PASM Bootloader

Beitrag von BorgKönig »

PIC18F2550 hat geschrieben:PASM /SPIN 1:80
ok... und wieviel frisst der bootloader im eeprom...?
Benutzeravatar
PIC18F2550
Beiträge: 2831
Registriert: Fr 30. Sep 2011, 13:08

Re: PASM Bootloader

Beitrag von PIC18F2550 »

1x COG und den kleinen SPINN bereich am anfang.

Aber du siehst das ein bisschen falsch in die EEprom's kommen nur die Loader und keine Programme der rest wird von Karte geladen.

Soviel belegt der loader in einem Programm zur Laufzeit.
Bildschirmfoto-Compiler Information-8.png
Wenn das Programm den Loader Nutzen will.

Ansonsten geht immer nur der letzte long im hRAM verloren.

Der reine Loader für regnatix wird etwas mehr als ein COG-Ram sein.
Bildschirmfoto-Compiler Information-9.png
Aber wenn der Loader COG gestartet ist steht dieser bereich der weiteren Verwendung nichts im wege.


Was die Loader können sollten
* REGNATIX
- wie oben beschrieben

* BELLATRIX
- einfache Textausgabe in VGA & TV dient nur der Darstellung der Boot informationen

* ADMINISTRA
- SD-Karte mit FAT16/32 unterstützung
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 »

z.Z. stehen noch 118 longs zur verfügung. :D

offene Routinen:

- einen long an Administra senden
- Belatrix code laden
Bildschirmfoto-Compiler Information.png
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
TuxFan
Beiträge: 1022
Registriert: So 6. Sep 2009, 11:18

Re: PASM Bootloader

Beitrag von TuxFan »

PIC18F2550 hat geschrieben:Im Anhang das Modell eines PASM-Loaders für Regnatix..........
Wäre hier nicht ein Flussdiagramm (Programmablaufplan) für eine strukturierte Programmierung besser als eine Liste unfertigen Codes? Nicht alle beherrschen das Prinzip : "Nur das Genie beherrscht das Chaos". ;)
PIC18F2550 hat geschrieben:..........Einige Dinge sind noch nicht übersetzt oder fehlen noch...........
Das ist meiner Meinung nach stark untertrieben. Aber ich bin ja nur programmiertechnischer Halbautodidakt und kann das wahrscheinlich nicht richtig beurteilen.
PIC18F2550 hat geschrieben:............Die Grundstrucktur und Arbeitsweise sollte schon erkennbar sein.
Nöööööööö, für mich nicht. Da bin ich als Masseflächenverfechter wahrscheinlich zu einfältig zu.
Da stellen sich nämlich für mich einige Fragen. Z.B. warum muß sich Regnatix um Verzeichniswechsel kümmern oder ob die SD-Karte eingebunden ist. Das sind Aufgaben von Administra.
Der Bootloader Regnatix (So etwas wie der Kammerherr beim Regenten ;) ) befiehlt Administra den Bootcode für Regnatix zu senden. Administra (der Haus und Hofmeister des Herrschers) schickt ihn dann oder meldet einen Fehler. Um die niederen Arbeiten kümmert sich nur Administra bzw. erstmal der Kammerdiener (bootloader) von Administra.
Mit Verlaub mir erscheint der gepostete Code :? noch lange nicht als würde er mal als bootloader fungieren können. Vielmehr hab ich die unheilvolle Vorahnung, daß es hier genauso endet wie beim H-Basic.....................
Sehr schade......
Gruß
TuxFan
Wunder gibt es immer wieder.......
Benutzeravatar
PIC18F2550
Beiträge: 2831
Registriert: Fr 30. Sep 2011, 13:08

Re: PASM Bootloader

Beitrag von PIC18F2550 »

Hi TuxFan,

H-Basic wurde vom Trios-Basic überholt der Hive braucht deffinitiv keine 2 Basicsysteme.
Auserdem wahr das Projekt mehr zum PASM lernen gedacht.
TuxFan hat geschrieben:warum muß sich Regnatix um Verzeichniswechsel kümmern oder ob die SD-Karte eingebunden ist. Das sind Aufgaben von Administra.
Administra macht ohne Regnatix garnichts es wartet einfach auf Commandos. Wie Du schon richtig erkannt hast ist Regnatix der Boss und der sagt wo es lang geht.

Immer noch grummlig wegen der Masse? :roll:

Ob das hier fertig wird weis ich nicht da ja auch kaum interesse an einen PASM-Loader besteht.
Dieser währe auch erst einmal incompartiebel zu Trios da er für Zerberus-System vorgesehen ist.

Eine einbindung in Trios währe aber ohne große veränderung der Software möglich.
Da Zerberus aus Trios entsteht.

So ich hab mal die Umfrage auf 14 Tage verlängert mal sehen ob sich da noch was ä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
zille9
Beiträge: 399
Registriert: Do 4. Okt 2012, 21:56
Wohnort: Berlin

Re: PASM Bootloader

Beitrag von zille9 »

Ich mische mich nur ungern in eure offensichtliche Hassliebe aber ich muss mal Partei für Pic ergreifen.
Pic, lass Dich nicht beirren, dieses Forum ist zum Lernen und Gedanken austauschen gedacht und nichts anderes machst Du. Vielleicht könnte man manchen Tread etwas straffer gestalten, wenn nicht immer irgendwelche persönlichen Differenzen im Forum breitgelascht werden würden.
Die besten Ideen entstehen nunmal in der Gemeinschaft. Gerade die unterschiedlichen Denkansätze sind der Quell von neuen Ideen und sollte nicht durch ständiges nörgeln oder klein reden zum erliegen gebracht werden. Jeder hat nun mal das Recht auf eine eigene Meinung also sollten wir es auch anderen zugestehen. Tut mir leid Tux-Fan, ich möchte Dich wirklich nicht angreifen aber ich habe das Gefühl, Du wartest nur auf einen Tread von Pic um loszuschlagen. Das muss doch nicht sein, vetragt euch doch bitte, wir haben alle was davon! :EIEI
Computer lösen die Probleme, die man ohne sie gar nicht hätte!
Antworten