Während wir unseren HIVE aufbauen sollten wir in den jeweiligen Baustufen die jeweiligen Funktionen testen. Nur wie bekommen wir die Programme in die jeweiligen Propeller ?

Als erstes benötigen wir das Propeller-Tool von Parallax:

http://www.parallax.com/Portals/0/Downloads/sw/propeller/Setup-Propeller-Tool-v1.3.zip

Nachdem wir das Tool installiert haben schließen wir unseren HIVE wie in der Aufbauanleitung von drohne235 beschrieben an unseren PC an.

Jetzt das Propeller-Tool starten und mit „F7“ überprüfen, ob das Tool unsere Propeller findet. Dabei müssen die Jumper auf dem HIVE folgendermaßen stehen:

1 + 4 auf ON für Regnatix

2 + 5 auf ON für Administra

3 + 6 auf ON für Bellatrix

(Um gleich einem kleinen Stolperstein vorzubeugen: Wer den DIP-Switch nicht wie auf den Fotos, sondern wie im Schaltplan bestückt hat (also um 180° gedreht), muß natürlich die Schalterstellungen für Bellatrix und Regnatix tauschen.)

Wenn wir eine Fehlermeldung sehen, erst die Jumper, dann die Verbindungen überprüfen.

Fehlermeldung

Wenn alles klappt, sehen wir

Verbindung ok

Soweit so gut, jetzt sollten wir die jeweiligen Testprogramme in die Propeller „flashen“

Dazu die Testdateien von drohne235 herunterladen. „Testprogramme“ unter http://hive-project.de/downloads herunterladen und entpacken.

Im Propellertool jetzt in dieses Verzeichnis navigieren und das jeweilige Testprogramm (je nach Baustufe) in das Tool laden

Propeller Tool

In diesem Beispiel muß der Jumper auf 3+6 stehen, da wir Bellatrix flashen wollen. Wenn wir nur in das RAM des Propeller flashen wollen, dann jetzt „F10“ drücken. Das Tool überträgt das Programm, verifiziert das RAM und der Propeller legt sofort los.

Wir können auch mit „F11“ in RAM UND Eeprom flashen. Das hat den Vorteil, das der Propeller nach einem Neustart immer noch weiß was er tun soll, da er sich sein Programm dann aus dem Eeprom holt.

Wenn das jetzt bei allen Baustufen einwandfrei geklappt hat, steht uns nichts mehr im Weg, dem HIVE seine komplette Grundkonfiguration zu flashen. Dazu holen wir uns jetzt im Downloadbereich die „Quellen“ und die „Arbeitsdisk-Mini“

Wieder im Tool navigieren wir zu den Quellen und öffnen folgende SPIN-Dateien:

Spin Source laden

Mit „F11“ wird das SPIN-Programm im Fokus (der Tabulator ist heller und das Programm steht in dem Editierfeld) in den jeweiligen Propeller geladen ( Jumper immer jeweils richtig setzen nicht vergessen ! ) Jetzt noch die Dateien der „Arbeitsdisk-Mini“ auf eine SD-Karte kopieren ( max 2GB, keine verzeichnisse auf der SD-Karte erstellen).

HIVE ausschalten, SD-Karte einlegen und HIVE einschalten. Nach kurzer Wartezeit sollte sich auf dem VGA-Monitor „Regime“ melden. Herzlichen Glückwunsch, der HIVE ist betriebsbereit !



Nachdem unser HIVE jetzt läuft stellt sich die Frage, wie bringe ich meine eigenen Programme darauf zum laufen. In dieser Anleitung geht es nicht um das Programmieren von Spin oder PASM, sondern nur um die Besonderheiten beim HIVE, was die „Übertragung“ angeht.

Als Beispiel nehmen wir mal das „Hallo Welt“-Programm (was auch sonst ;) ). Nur werden wir das Programm ändern („Hallo Welt“ gibts ja schon).

Wir navigieren im Propeller-Tool nach „os1-05-06-2009-kr“ und laden „hallo.spin“ in das Tool

Hallo Spin

Den Text „Hallo Welt“„ ändern wir in “We are the Borg. You will be assimilated. Resistance is futile.” und benennen das Programm in „borg.spin“ um (Save as …) .

Jetzt drücken wir aber NICHT „F10“ oder „F11“, sondern „F8“. Damit wird das Programm nur kompiliert und ein Dialog lässt uns wählen, wie wir abspeichern wollen:

We are Borg..

Dort wählen wir jetzt „Save Binary File“, ändern den Namen aber gleich von „borg.binary“ auf „borg.bin“. Das File ist jetzt geschrieben worden (man kriegt da keine Meldung) und kann den Dialog schließen.

Jetzt „borg.bin“ auf die SD-Karte kopieren und auf dem HIVE testen.

HIVE Bildschirm

Ich hoffe das reicht soweit um eigenen Entwicklungen auf die Beine zu helfen.



Das Rätsel um ios.startram…

Wer jetzt mit dem Programm „hallo.spin“ oder anderen Quellen experimentiert, wird sich früher oder später zwei Fragen stellen:

„Was zum Teufel hat es mit der auskommentierten Zeile „ios.startram“ auf sich?“

oder

„Warum zum Teufel bleibt der Monitor schwarz wenn ich das Programm per F10 direkt in den Speicher von Regnatix schiebe?“

Genau das ist der Punkt. Der grundlegende Code ist ja in Regnatix angesiedelt. Nun ist es bei der Entwicklung natürlich praktisch, wenn man den Code nicht erst compiliert, als BIN-datei abspeichert, auf SD-Karte kopiert und auf dem Hive startet. Schneller ginge es ja mit einem schnellen Upload direkt in den RAM per F10.

Aber was genau passiert bei einem Upload? Als erstes löst das Propeller Tool ein Reset aus und überträgt den compilieren Code in den Ram von Regnatix. Nach einem Reset (das Resetsignal ist an alle Propellerchips angeschlossen) aber startet der Bellatrix-Chip den Loader aus seinem EEProm, welcher auf einen Treibercode für die Grafik wartet. Das Programm welches man per F10 übertragen hat liefert aber Belatrix keinen Treiber wie bei einem normalen Systemstart, weshalb das Bild schwarz bleibt.

Bei einem normalen Systemstart/Reset wird die Kommandozeile Regime geladen, welche wiederum als erstes jenen Treiber „vid.bin“ zu Bellatrix sendet. Startet man eine BIN-Datei vom Laufwerk läuft in Bellatrix ja schon der entsprechende Treiber, aber bei einem direkten Upload wird dieser Treiber ja durch das Resetsignal wieder gelöscht und der Bellatrix-Loader wartet auf eine neue Übertragung - genau aus diesem Grund bleibt der Bildschirm schwarz.

Und genau dieses Problem löst die ios-Routine „startram“, indem sie einen Treiber vom Laufwerk nach Bellatrix überträgt.

Fazit: Für die Entwicklung kann man die Zeile mit der Funktion ios.startram aktivieren, um einen direkten Upload per F10 durchzuführen. So ist eine schnelle Entwicklung möglich. Läuft das Programm schlussendlich, kommentiert man diese Zeile aus und speichert den compilierten Code als BIN-Datei ab um ihn auf die SD-Karte zu kopieren.

howto/erstes.txt · Zuletzt geändert: 01.11.2011 07:06 (Externe Bearbeitung)
 
Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: GNU Free Documentation License 1.3
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki