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
(Bootloader starten)
(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 nach /root/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.1.tgz boop-0.1.tgz]
+
  
===Entpacken===
+
===Das 'Betriebssystem' Timer, Interrupts, ...===
tar xzvf boop.tar.gz
+
Sollte nun das Verzeichnis '''boop-0.1/''' im aktuellen Verzeichnis erstellt haben.
+
  
===Compilieren===
+
Die Timers und Interrupts sind unter [[Boop Peripherie]] aufgelistet.
cd boop-0.1
+
Wechselt in das Verzeichnis boop-0.1/ 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===
+
===Hardwareunterstützung===
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.
+
  
Das erstellte boop.hex sieht z.B. so aus:
+
==== Serielle Schnittstelle ====
:020000044000BA
+
(an der Stiftleiste)
:10020000060000EA1F0000EA1E0000EA1D0000EAE6
+
txd0, rxd0
:100210001C0000EA1B0000EA1A0000EA190000EACC
+
:1002200078309FE503D0A0E102AC4DE20010A0E3DE
+
...
+
  
Nachdem wir die erste Zeile aus der Datei boop.hex entfernt haben sieht es nun so aus:
+
* Baudrate http://www.standardics.nxp.com/support/documents/microcontrollers/xls/lpc2000.uart.baudrate.calculator.xls
:10020000060000EA1F0000EA1E0000EA1D0000EAE6
+
:100210001C0000EA1B0000EA1A0000EA190000EACC
+
:1002200078309FE503D0A0E102AC4DE20010A0E3DE
+
...
+
  
'''Jetzt''' können wir ans Flashen mit lpcload gehen.
+
==== Display ====
 +
* Anbindung über Speicheradresse 0x81000000 (CMD) und 0x81000001 (DATA)
 +
* Kontrast einstellbar (in Grenzen)
 +
* Diverse Grafik- und Schriftfunktionen (siehe Menu>TestStuff)
 +
** Schriften
 +
** Grafik
 +
*** Bereich löschen, füllen, Linie, Rechteck, Kreise etc
  
==Boop meets Betty - jetzt wird geflasht==
+
=====Hintergrundbeleuchtung=====
===Bootloader starten===
+
* Pin: [[LPC2220_Pin-Belegung|sck0/P0.4]]
Um Boop in die Betty zu bekommen müssen wir zuerst in den Bootloader:
+
* 64 Helligkeitsstufen (Software-PWM in SoundIRQ)
EINT PIN auf GND brücken
+
* Leuchtdauer einstellbar (n*[s])
RESET PIN auf GND brücken
+
* Übergangsgeschwindigkeit einstellbar (n * 5 ms / Helligkeitsstufe)
RESET PIN wieder öffnen
+
EINT PIN wieder öffnen
+
Jetzt sollten wir im Bootloader sein.
+
  
===boop in das ram schreiben===  
+
====Tastatur ====
Ich gehe davon aus das ihr alle mit [[lpcload]] umgehen könnt und es installiert habt (sonst könnt ihr mit dem hier eh nichts anfangen behaupte ich mal)
+
Q: 'keytest' im Menü 'TestStuff' zeigt Tastaturcodes, wie kommt man da wieder raus?
./lpcload -d /dev/ttyS0 -f boop.hex
+
schiebt boop.hex ins ram der betty.
+
  
Jetzt wird lpcload beendet:
+
A: Batterien rein und raus! Bei dem Hintergedanken der Funktion allerdings völlig legitim.
<strg>-<c>
+
  
'''Geschafft''' boop sollte nun im ram eurer betty laufen und auf eine verbindung warten.
+
====Akkuzustand ====
 +
Wird in oben rechts als Batteriesymbol angezeigt.
 +
'bat debug' im Menü 'TestStuff' zeigt - was für Werte?
  
===Verbindung zu boop herstellen===
+
====Audio ====
Öffnet das Terminal-Programm eurer wahl (minicom, cutecom, usw) und stellt folgende einstellungen ein:
+
Bps...........  9600
+
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?===
+
=====Hardware=====
Da boop im moment nur im ram residiert, ist ein einfacher reset per:
+
P0.7/SSEL0/PWM2/EINT2    69    PWM<br\>
RESET PIN auf GND
+
P0.11/CTS1/CAP1.1        83    Shutdown<br\>
möglich, welcher eure betty wieder in den zustand vor betty zurücksetzt.
+
  
==Fazit==
+
Verstärker: LM4876
netguy (und natürlich meine wenigkeit) wünscht viel spass beim spielen und gegf. erweitern der software.
+
  
==Lizenz==
+
=====Software=====
'''boop''' steht unter der GPLv3, bitte beachtet das wenn ihr an der software herum bastelt!
+
Sounderzeugung (Menu>TestStuff>SID) und Wiedergabe von Samples (Menu>Credits)
 +
 
 +
====IR====
 +
Ü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