TriOS [aktuelle Arbeitsversion und Log im ersten Beitrag]

Du hast ein Betriebssystem für den Hive geschrieben oder beschäftigst dich mit den grundlegenden Systemfunktionen, dann bist du hier richtig!
Benutzeravatar
drohne235
Administrator
Beiträge: 2284
Registriert: So 24. Mai 2009, 10:35
Wohnort: Lutherstadt Wittenberg
Kontaktdaten:

Re: TriOS [aktuelle Arbeitsversion und Log im ersten Beitrag]

Beitrag von drohne235 »

Für alle die Probleme hatten TriOS zum spielen zu bekommen, hab ich die Version nochmal aktuallisiert und überprüft, also die Bin's geflasht, eine neue Karte erstellt un getestet. Ich glaube einige Spielereien aus dem Demo-Ordner sind auch neu hinzugekommen - einfach mal schauen.
"Ob Sie denken, dass Sie es können, oder ob Sie denken, dass Sie es nicht können - in beiden Fällen haben Sie recht." Henry Ford
BorgKönig
Beiträge: 598
Registriert: So 24. Mai 2009, 11:24

Re: TriOS [aktuelle Arbeitsversion und Log im ersten Beitrag]

Beitrag von BorgKönig »

Huhu Drohne235 :)

bitte baue in den SD-Card Loader noch eine Routine ein, die eine Fehlermeldung auf dem Bildschirm anzeigt, wenn keine SD-Card eingelegt wurde, oder die Boot Dateien nicht geladen werden konnten. Alternativ reicht es, wenn alle HB- Leds blinken...

Der Grund dafür ist folgender: Ich hatte gestern das neue OS in die EPRoms geflasht, die SD-Card fertig gemacht und wollte heute etwas testen. Aber anstatt zu Booten, tat der Hive garnix. Einige tests haben gezeigt, das meine SD-Card defekt ist... Ich hatte heute die EPRoms erneut geflast, das war aber unnötig...
Benutzeravatar
drohne235
Administrator
Beiträge: 2284
Registriert: So 24. Mai 2009, 10:35
Wohnort: Lutherstadt Wittenberg
Kontaktdaten:

Re: TriOS [aktuelle Arbeitsversion und Log im ersten Beitrag]

Beitrag von drohne235 »

BorgKönig hat geschrieben:Huhu Drohne235 :)
bitte baue in den SD-Card Loader noch eine Routine ein, die eine Fehlermeldung auf dem Bildschirm anzeigt, wenn keine SD-Card eingelegt wurde, oder die Boot Dateien nicht geladen werden konnten. Alternativ reicht es, wenn alle HB- Leds blinken...
Das ist nicht ganz trivial: wenn das Medium nicht gemounted werden kann, wird auf der einen Seite kein Code gebootet in Regnatix & Bellatrix (kein Bild) und Administra hängt in der Routine zum Mounten fest. Da hilft auch kein Trap - denn der ist aktiv. Wenn du nun eine Card einlegst, hörst du vor dem Heartbeat ein kurzes "pling" (SoundFX7). Genau das ist die akustische Fehlermeldung. Keine (funktionierende) SD-Card ist halt ein ziemlicher Härtefall.

Schau dir dazu mal im admflash.spin im Verzeichnis "flash" die folgenden beiden Routinen an:

init_chip - Hier wird Administra initialisiert und versucht (sd_mount("B"), das Medium zu mounten.

sd_mount(mode)

Wie ich das sehe, müsste man die entsprechende(n) Routinen in der FATEngine selbst modifizieren, um den Fehler abzufangen. Vielleicht findest du ja eine Lösung!?
"Ob Sie denken, dass Sie es können, oder ob Sie denken, dass Sie es nicht können - in beiden Fällen haben Sie recht." Henry Ford
Benutzeravatar
volkerp
Beiträge: 82
Registriert: Di 30. Jun 2009, 20:19

Re: TriOS [aktuelle Arbeitsversion und Log im ersten Beitrag]

Beitrag von volkerp »

Hallo Developer-Drohnen,

ich wollte das aktuelle TriOS ausprobieren. Leider scheitere ich am Laden es EEPROMs von Administra (egal ob über TriOS\hive-trios\flash\administra\admflash.spin oder direkt TriOS\hive-trios\bin\flash\admflash.binary): Das Propeller-Tool sagt nur "loading RAM, verifying RAM" und dann kommt die Fehlermeldung "Propeller Chip lost...". Was mache ich falsch bzw. wie macht ihr das?
Dateianhänge
errmsg.png
errmsg.png (7.31 KiB) 7766 mal betrachtet
Benutzeravatar
drohne235
Administrator
Beiträge: 2284
Registriert: So 24. Mai 2009, 10:35
Wohnort: Lutherstadt Wittenberg
Kontaktdaten:

Re: TriOS [aktuelle Arbeitsversion und Log im ersten Beitrag]

Beitrag von drohne235 »

Besteht das Problem immer noch?

Ich hab grad nochmal mit allen meinen Versionen (bin/spin bzw. bst/propellr tool) getestet - funktioniert bei mir. Ich würde auf ein Kommunikationsproblem tippen.
"Ob Sie denken, dass Sie es können, oder ob Sie denken, dass Sie es nicht können - in beiden Fällen haben Sie recht." Henry Ford
Benutzeravatar
volkerp
Beiträge: 82
Registriert: Di 30. Jun 2009, 20:19

Re: TriOS [aktuelle Arbeitsversion und Log im ersten Beitrag]

Beitrag von volkerp »

ich hatte dann mit BST geflasht - da geht das ohne dass der Propeller gleich neustartet.
Im Propeller-Tool war der Fehler reproduzierbar (bei Umstellung von Administra vom "alten" OS auf TRIOS)
Benutzeravatar
drohne235
Administrator
Beiträge: 2284
Registriert: So 24. Mai 2009, 10:35
Wohnort: Lutherstadt Wittenberg
Kontaktdaten:

Re: TriOS [aktuelle Arbeitsversion und Log im ersten Beitrag]

Beitrag von drohne235 »

BST ist eh die bessere Wahl. Mit den Optinierungen ist dein yplay nur noch halb so groß, da BST alle unbenutzten Routinen aus dem IOS nicht mit compiliert.

Aber das sollten wir mal im Hinterkopf behalten und wenn es reproduzierbar ist schauen wir spätestens mal beim KC-Treffen was da läuft. Wenn wir dann zwei Hives haben und das reproduzierbar auf einem geht und auf dem anderen Gerät nicht, dann sollten wir das auch weiter eingrenzen können.
"Ob Sie denken, dass Sie es können, oder ob Sie denken, dass Sie es nicht können - in beiden Fällen haben Sie recht." Henry Ford
Benutzeravatar
drohne235
Administrator
Beiträge: 2284
Registriert: So 24. Mai 2009, 10:35
Wohnort: Lutherstadt Wittenberg
Kontaktdaten:

Re: TriOS [aktuelle Arbeitsversion und Log im ersten Beitrag]

Beitrag von drohne235 »

18-09-2010-dr235 - fehler in bus_init behoben: erste eram-zelle wurde gelöscht durch falsche initialisierung
Manno, da hab ich lange nach gesucht... :twisted:
"Ob Sie denken, dass Sie es können, oder ob Sie denken, dass Sie es nicht können - in beiden Fällen haben Sie recht." Henry Ford
Benutzeravatar
frida
Beiträge: 40
Registriert: Di 1. Sep 2009, 18:28
Wohnort: Middelfart Dänemark

Re: TriOS [aktuelle Arbeitsversion und Log im ersten Beitrag]

Beitrag von frida »

Hallo drohne235.

Wo war der Fehler. Ist es etwas, das ich erstellt habe?
Ich bin bald fertig mit schnellen Lader in einer Woche.

HIVE 085
Benutzeravatar
drohne235
Administrator
Beiträge: 2284
Registriert: So 24. Mai 2009, 10:35
Wohnort: Lutherstadt Wittenberg
Kontaktdaten:

Re: TriOS [aktuelle Arbeitsversion und Log im ersten Beitrag]

Beitrag von drohne235 »

Nein, keine Fehler in deinen Änderungen - die laufen alle korrekt! :)

Mir ist schon vor langer Zeit aufgefallen, dass nach einem Reboot oder Reset die erste eRAM-Zelle immer auf den Wert 0 gesetzt wurde. Zuerst dachte ich an ein Hardwareproblem, ein falscher Pegel auf der CS/WR-Leitung oder ähnliches.
Jetzt wurde die Situation aber etwas drängender: Die Speicherverwaltung/RAMDisk nutzt ja den Bereich ab Adresse 0. Zumal ich festgestellt hatte, dass die erste Zelle auch gelöscht wurde, nachdem der Loader ein neues Programm gestartet hat. Ursache war die Routine "bus_init" im IOS.

Die fehlerhafte Version:

Code: Alles auswählen

PUB bus_init                                            'bus: initialisiert bussystem
{{bus_init - bus: initialisierung aller bussignale }}
  dira := db_in                 ' datenbus auf eingabe schalten
  outa[18..8]     := 0          ' adresse a0..a10 auf 0 setzen
  outa[23]        := 1          ' obere adresse in adresslatch übernehmen
  outa[23]        := 0
  outa[reg_ram1]  := 1          ' ram1 inaktiv
  outa[reg_ram2]  := 1          ' ram2 inaktiv
  outa[reg_prop1] := 1          ' prop1 inaktiv
  outa[reg_prop2] := 1          ' prop2 inaktiv
  outa[busclk]    := 0          ' busclk startwert
  outa[bus_wr]    := 1          ' schreiben inaktiv
  outa[reg_al]    := 0          ' strobe aus
Die neue Version:

Code: Alles auswählen

PUB bus_init                                            'bus: initialisiert bussystem
{{bus_init - bus: initialisierung aller bussignale }}
  outa[bus_wr]    := 1          ' schreiben inaktiv
  outa[reg_ram1]  := 1          ' ram1 inaktiv
  outa[reg_ram2]  := 1          ' ram2 inaktiv
  outa[reg_prop1] := 1          ' prop1 inaktiv
  outa[reg_prop2] := 1          ' prop2 inaktiv
  outa[busclk]    := 0          ' busclk startwert
  outa[reg_al]    := 0          ' strobe aus
  dira := db_in                 ' datenbus auf eingabe schalten
  outa[18..8]     := 0          ' adresse a0..a10 auf 0 setzen
  outa[23]        := 1          ' obere adresse in adresslatch übernehmen
  outa[23]        := 0
Jetzt werden also die CS/WR-Signale korrekt auf inaktiv geschaltet, bevor die entsprechenden Ports auf Ausgabe und damit aktiviert werden.

Aber mnal was anderes:
Ich hatte die Idee im Loader (in PRI load) die sdgetblk-Funktion, statt einer Schleife mit sdgetc zu verwenden. Das müsste eine verdopplung der Ladegeschwindigkeit ergeben. Hat aber erstmal nicht geklappt. Vielleicht siehst du ja den Fehler - ich hänge die Version mal an.
Dateianhänge
regflash_blk.rar
sdgetblk-version des loaders
(5.75 KiB) 448-mal heruntergeladen
"Ob Sie denken, dass Sie es können, oder ob Sie denken, dass Sie es nicht können - in beiden Fällen haben Sie recht." Henry Ford
Antworten