Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 860

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 860

Warning: preg_match_all(): Compilation failed: group name must start with a non-digit at offset 4 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 834

Warning: Invalid argument supplied for foreach() in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 835

Warning: preg_replace(): Compilation failed: group name must start with a non-digit at offset 4 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 839

Warning: preg_match_all(): Compilation failed: group name must start with a non-digit at offset 4 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 834

Warning: Invalid argument supplied for foreach() in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 835

Warning: preg_replace(): Compilation failed: group name must start with a non-digit at offset 4 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 839

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 860

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 860

Warning: preg_match_all(): Compilation failed: group name must start with a non-digit at offset 4 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 834

Warning: Invalid argument supplied for foreach() in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 835

Warning: preg_replace(): Compilation failed: group name must start with a non-digit at offset 4 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 839

Warning: preg_match_all(): Compilation failed: group name must start with a non-digit at offset 4 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 834

Warning: Invalid argument supplied for foreach() in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 835

Warning: preg_replace(): Compilation failed: group name must start with a non-digit at offset 4 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 839

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 860

Warning: preg_match_all(): Compilation failed: group name must start with a non-digit at offset 4 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 834

Warning: Invalid argument supplied for foreach() in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 835

Warning: preg_replace(): Compilation failed: group name must start with a non-digit at offset 4 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 839

Warning: preg_match_all(): Compilation failed: group name must start with a non-digit at offset 4 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 834

Warning: Invalid argument supplied for foreach() in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 835

Warning: preg_replace(): Compilation failed: group name must start with a non-digit at offset 4 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 839

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 860

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 860

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 860

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 860
Boop - Bettyhacks.com - Hack BettyTV-Remote

Boop

From Bettyhacks.com - Hack BettyTV-Remote
Jump to: navigation, search
(Compileren von boop)
(Tastatur)
 
Line 1: Line 1:
==Info==
+
Boop ([http://de.wikipedia.org/wiki/Betty_Boop Namensgeberin])ist eine Software (Firmware) fuer die [[Betty TV]], welche von '''netguy''' entwickelt wurde, und von einigen anderen erweitert wird.
Boop ist eine Software für die Betty, welche '''netguy''' gerade fertiggestellt hat.
+
Die Firmware dient derzeit haupsaechlich als "testbed" um die Hardware der Betty anzusprechen.
 +
Die Firmware enthält Routinen für das Ansprechen der meisten Hardwarekomponenten der Betty.
  
==Was macht boop==
+
==Features==
Boop ist eine Software die zur Zeit der Erstellung dieser Dokumentation nach dem Laden in den RAM der Betty ein simples echo per serieller Schnittstelle ermöglicht und 2 Sätze ausgibt.
+
Siehe [[Boop Features]]. Für andere Verwendungen der Betty Hardware siehe [[Projekte]].
  
Boop soll eine Beispiel-Implementierung der seriellen Kommunikation mit der Betty darstellen.
+
==Lizenz==
 +
'''boop''' steht unter der [http://www.gnu.org/copyleft/gpl.html GPL]v3. Bitte beachtet das wenn, ihr an der Software herumbastelt!
  
===Kommandos===
+
==Download==
'''!''' - es wird "Hello Betty!" ausgegeben
+
Den aktuellen Source erhält man über [[SVN]] [https://sourceforge.net/projects/boopfirmware/develop hier].
 +
Das aktuelle RAW-Binary zum download: [https://boopfirmware.svn.sourceforge.net/svnroot/boopfirmware/boop/trunk/boop_rom.bin boop_rom.bin]
  
'''*''' - es wird "And another Hello!" ausgegeben
+
==Mitarbeit==
 +
Wenn Du Fehler findest, oder anders helfen möchtest, melde Dich am Besten im [http://bettyhacks.com/forum Forum].
 +
Zum Entwickeln: [[Coding Style]].
  
Alles andere wird als echo zurückübertragen.
 
  
==Anforderungen==
+
==Das System==
===Compiler, Linker und Tools===
+
Die Firmware ist in C geschrieben für den 32-bit Mikroprozessor mit ARM7 Kern (siehe [[Entwicklungsumgebungen]]).
Um Boop zu compilieren braucht ihr die [http://opensrc.sec.samsung.com/download/arm-uclinux-tools-base-gcc3.4.0-20040713.sh GCC 3.4.0 Toolchain]
+
Es sind 64kb SRAM und 16mbit (= 2 MiByte) externer Flash-Speicher vorhanden.
  
Nachdem ihr diese heruntergeladen habt, führt ihr diese aus mit:
+
Es ist möglich, ein Programm direkt aus dem RAM auszuführen. Das Überschreiben des Flashspeichers entfällt so (siehe [http://bettyhacks.com/forum/index.php?topic=215.msg1449#msg1449 Forum]).
sh arm-uclinux-tools-base-gcc3.4.0-20040713.sh
+
Damit wird die GCC 3.4.0 Toolchain in euer Home-Verzeichnis unter ~/bin installiert.
+
  
==Compileren von boop==
+
Näheres zu den Komponenten unter [[Betty Hardware]]  und [http://www.hackdaworld.org/cgi-bin/awki.cgi/BettyTV hackdaworld]
===Download===
+
Den Source von Boop findet ihr auf netguy's Server: [http://mamalala.org/boop-0.6.tgz boop-0.6.tgz]
+
  
Als raw binary: [http://mamalala.org/boop.bin boop.bin]</br>
+
===Das 'Betriebssystem' Timer, Interrupts, ...===
Als hex: [http://mamalala.org/boop.hex boop.hex]
+
  
===Entpacken===
+
Die Timers und Interrupts sind unter [[Boop Peripherie]] aufgelistet.
tar xzvf boop.tar.gz
+
Sollte nun das Verzeichnis '''boop-0.6/''' im aktuellen Verzeichnis erstellt haben.
+
  
===Compilieren===
+
===Hardwareunterstützung===
cd boop-0.6
+
Wechselt in das Verzeichnis boop-0.6/ im aktuellen Verzeichnis. Wenn ihr alles richtig gemacht habt sollte nun ein
+
make
+
unter anderem die Datei '''boop.hex''' erstellt haben
+
  
===Workaround für lpcload - WICHTIG===
+
==== Serielle Schnittstelle ====
Aufgrund der Tatsache, dass hackbard's lpcload noch nicht ganz ausgereift ist, muss das erstellte boop.hex noch etwas modifziert werden. Die erste Zeile aus der boop.hex muss leider noch manuell entfernt werden (mit einem Editor oder per Script), aber wir hoffen, dass hackbard (oder jemand anderes) das bald in Angriff nimmt um uns das in Zukunft zu ersparen.
+
(an der Stiftleiste)
 +
txd0, rxd0
  
Das erstellte boop.hex sieht z.B. so aus:
+
* Baudrate http://www.standardics.nxp.com/support/documents/microcontrollers/xls/lpc2000.uart.baudrate.calculator.xls
:020000044000BA
+
:10020000060000EA1F0000EA1E0000EA1D0000EAE6
+
:100210001C0000EA1B0000EA1A0000EA190000EACC
+
:1002200078309FE503D0A0E102AC4DE20010A0E3DE
+
...
+
  
Nachdem wir die erste Zeile aus der Datei boop.hex entfernt haben sieht es nun so aus:
+
==== Display ====
:10020000060000EA1F0000EA1E0000EA1D0000EAE6
+
* Anbindung über Speicheradresse 0x81000000 (CMD) und 0x81000001 (DATA)
:100210001C0000EA1B0000EA1A0000EA190000EACC
+
* Kontrast einstellbar (in Grenzen)
:1002200078309FE503D0A0E102AC4DE20010A0E3DE
+
* Diverse Grafik- und Schriftfunktionen (siehe Menu>TestStuff)
...
+
** Schriften
 +
** Grafik
 +
*** Bereich löschen, füllen, Linie, Rechteck, Kreise etc
  
'''Jetzt''' können wir ans Flashen mit lpcload gehen.
+
=====Hintergrundbeleuchtung=====
 +
* Pin: [[LPC2220_Pin-Belegung|sck0/P0.4]]
 +
* 64 Helligkeitsstufen (Software-PWM in SoundIRQ)
 +
* Leuchtdauer einstellbar (n*[s])
 +
* Übergangsgeschwindigkeit einstellbar (n * 5 ms / Helligkeitsstufe)
  
==Boop meets Betty - jetzt wird geflasht==
+
====Tastatur ====
===Bootloader starten===
+
Q: 'keytest' im Menü 'TestStuff' zeigt Tastaturcodes, wie kommt man da wieder raus?
Um Boop in die Betty zu bekommen müssen wir zuerst in den Bootloader:
+
EINT PIN auf GND brücken
+
RESET PIN auf GND brücken
+
RESET PIN wieder öffnen
+
EINT PIN wieder öffnen
+
Jetzt sollten wir im Bootloader sein.
+
  
===boop in das ram schreiben===
+
A: Batterien rein und raus! Bei dem Hintergedanken der Funktion allerdings völlig legitim.
Ich gehe davon aus, dass ihr alle mit [[lpcload]] umgehen könnt und es installiert habt (sonst könnt ihr mit dem hier eh nichts anfangen behaupte ich mal)
+
./lpcload -d /dev/ttyS0 -f boop.hex
+
schiebt boop.hex ins RAM der Betty.
+
  
Jetzt wird lpcload beendet:
+
====Akkuzustand ====
<strg>-<c>
+
Wird in oben rechts als Batteriesymbol angezeigt.
 +
'bat debug' im Menü 'TestStuff' zeigt - was für Werte?
  
'''Geschafft'''. Boop sollte nun im RAM eurer Betty laufen und auf eine Verbindung warten.
+
====Audio ====
  
===Verbindung zu boop herstellen===
+
=====Hardware=====
Öffnet das Terminal-Programm eurer Wahl (minicom, cutecom, usw) und stellt folgende Einstellungen ein:
+
P0.7/SSEL0/PWM2/EINT2     69    PWM<br\>
Bps...........  9600
+
P0.11/CTS1/CAP1.1        83     Shutdown<br\>
Datenbits.....    8
+
Parität....... keine
+
Stopbits......    1
+
Flusssteuerung keine
+
Wenn das alles passt, solltet ihr nun mit boop verbunden sein und könnt mit '''*''' und '''!''' testen ob boop euch versteht und mit euch reden mag. Alle anderen Tastatureingaben sollten als ECHO zurück gegeben werden.
+
  
===Genoog von boop?===
+
Verstärker: LM4876
Da boop im Moment nur im RAM residiert, ist ein einfacher Reset per:
+
RESET PIN auf GND
+
möglich, welcher eure Betty wieder in den normalen Zustand zurücksetzt.
+
  
==Fazit==
+
=====Software=====
netguy (und natürlich meine wenigkeit) wünscht viel Spass beim Spielen und ggf. Erweitern der Software.
+
Sounderzeugung (Menu>TestStuff>SID) und Wiedergabe von Samples (Menu>Credits)
  
==Lizenz==
+
====IR====
'''boop''' steht unter der GPLv3, bitte beachtet das wenn ihr an der Software herumbastelt!
+
Über Pin 4 (P0.21/PWM5/CAP1.3) kann die IR Diode zum Senden ein und ausgeschaltet werden.<br\>
 +
Der IR-Empfang wird über Pin 84 (P0.12/DSR1/MAT1.0) aktiviert/deaktiviert.<br\>
 +
Über Pin 32 (P0.29/AIN2/CAP0.3/MAT0.3) wird das empfangene Signal eingelesen.<br\>
 +
 
 +
====Funk====
 +
Transceiver [[CC1100]]
 +
Testweise als IR-Device eingebaut, überträgt Tastencodes an den [[SCART Adapter]] mit [[betty_scart]]
 +
 
 +
* Kommunikation Scartadapter [http://bettyhacks.com/forum/index.php?topic=114.msg826#msg826 Forum]
 +
* Transceiver CC1100 Möglichkeiten [http://bettyhacks.com/forum/index.php?topic=121.msg850#msg850 Forum]
 +
 
 +
====Uhr====
 +
I2C
  
  
----
+
[[Category:Firmware]]
--[[User:Alterego|Alterego]] 04:30, 30 August 2007 (CEST)
+

Latest revision as of 00:01, 17 February 2011

Personal tools