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
(Compiler, Linker und Tools)
(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===
+
Die sourcen von boop findet ihr hier auf netguy's server: [http://mamalala.org/boop-0.1.tgz boop-0.1.tgz]
+
===Entpacken===
+
tar xzvf boop.tar.gz
+
Sollte nun das verzeichnis '''boop-0.1/''' im aktuellen verzeichnis erstellt haben.
+
===Compilieren===
+
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===
+
Aufgrund der tatsache das 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 das hackbard (oder jmd anderes) das bald in angriff nimmt um uns das in zukunft zu ersparen.
+
  
das erstellte boop.hex sieht zB so aus:
+
===Das 'Betriebssystem' Timer, Interrupts, ...===
:020000044000BA
+
:10020000060000EA1F0000EA1E0000EA1D0000EAE6
+
:100210001C0000EA1B0000EA1A0000EA190000EACC
+
:1002200078309FE503D0A0E102AC4DE20010A0E3DE
+
...
+
  
in nachdem wir die erste zeile aus der datei boop.hex entfernt haben sieht es nun so aus:
+
Die Timers und Interrupts sind unter [[Boop Peripherie]] aufgelistet.
:10020000060000EA1F0000EA1E0000EA1D0000EAE6
+
:100210001C0000EA1B0000EA1A0000EA190000EACC
+
:1002200078309FE503D0A0E102AC4DE20010A0E3DE
+
...
+
  
'''Jetzt''' können wir ans flashen mit lpcload gehen.
+
===Hardwareunterstützung===
  
 +
==== Serielle Schnittstelle ====
 +
(an der Stiftleiste)
 +
txd0, rxd0
  
==Boop meets Betty - jetzt wird geflasht==
+
* Baudrate http://www.standardics.nxp.com/support/documents/microcontrollers/xls/lpc2000.uart.baudrate.calculator.xls
===Bootloader starten===
+
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===  
+
==== Display ====
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)
+
* Anbindung über Speicheradresse 0x81000000 (CMD) und 0x81000001 (DATA)
./lpcload -d /dev/ttyS0 -f boop.hex
+
* Kontrast einstellbar (in Grenzen)
schiebt boop.hex ins ram der betty.
+
* Diverse Grafik- und Schriftfunktionen (siehe Menu>TestStuff)
 +
** Schriften
 +
** Grafik
 +
*** Bereich löschen, füllen, Linie, Rechteck, Kreise etc
  
Jetzt wird lpcload beendet:
+
=====Hintergrundbeleuchtung=====
<strg>-<c>
+
* Pin: [[LPC2220_Pin-Belegung|sck0/P0.4]]
 +
* 64 Helligkeitsstufen (Software-PWM in SoundIRQ)
 +
* Leuchtdauer einstellbar (n*[s])
 +
* Übergangsgeschwindigkeit einstellbar (n * 5 ms / Helligkeitsstufe)
  
'''Geschafft''' boop sollte nun im ram eurer betty laufen und auf eine verbindung warten.
+
====Tastatur ====
 +
Q: 'keytest' im Menü 'TestStuff' zeigt Tastaturcodes, wie kommt man da wieder raus?
  
===Verbindung zu boop herstellen===
+
A: Batterien rein und raus! Bei dem Hintergedanken der Funktion allerdings völlig legitim.
Ö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?===
+
====Akkuzustand ====
Da boop im moment nur im ram residiert, ist ein einfacher reset per:
+
Wird in oben rechts als Batteriesymbol angezeigt.
RESET PIN auf GND
+
'bat debug' im Menü 'TestStuff' zeigt - was für Werte?
möglich, welcher eure betty wieder in den zustand vor betty zurücksetzt.
+
  
==Fazit==
+
====Audio ====
netguy (und natürlich meine wenigkeit) wünscht viel spass beim spielen und gegf. erweitern der software.
+
  
==Lizenz==
+
=====Hardware=====
'''boop''' steht unter der GPLv3, bitte beachtet das wenn ihr an der software herum bastelt!
+
P0.7/SSEL0/PWM2/EINT2    69    PWM<br\>
 +
P0.11/CTS1/CAP1.1        83    Shutdown<br\>
 +
 
 +
Verstärker: LM4876
 +
 
 +
=====Software=====
 +
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