LPCTool
From Bettyhacks.com - Hack BettyTV-Remote
m (→Lpctool-Probleme: code-formatierung) |
(→Lpctool-Probleme) |
||
| Line 1: | Line 1: | ||
| − | + | lpctool überträgt [[boop|Firmware]] über einen [[Interfaces PC zu Betty|Adapter]] [http://de.wikipedia.org/wiki/RS-232 seriell] zur [[Betty]]. | |
| + | Siehe auch: [[Betty-Heaven]] | ||
| + | |||
| + | ==Aktuelle Version== | ||
lpctool V0.9 | lpctool V0.9 | ||
This Software is free Software under GNU GPL 3 or later | This Software is free Software under GNU GPL 3 or later | ||
(c) 2007 Ch. Klippel <ck@mamalala.net> | (c) 2007 Ch. Klippel <ck@mamalala.net> | ||
| − | + | Quellcode im SVN ansehen: http://boopfirmware.svn.sourceforge.net/viewvc/boopfirmware/lpctool/trunk/ | |
| − | + | ||
| − | http:// | + | |
| − | + | ||
| − | == | + | ==Forumsdiskussion== |
| + | Die Ankündigung des Programms im Forum: http://bettyhacks.com/forum/index.php?topic=54.0 | ||
| − | + | ==Funktion== | |
| + | Siehe [[#Flashvorgang]]. | ||
| + | # Bootloader aktivieren | ||
| + | ## Zusätzlich zu den Datenleitungen werden zwei Handshake-Signale benutzt | ||
<pre> | <pre> | ||
| − | + | PC Betty | |
| + | ----------- | ||
| + | TX - RX | ||
| + | RX - TX | ||
| + | DTR - nReset | ||
| + | RTS - eINT1 | ||
</pre> | </pre> | ||
| + | |||
| + | # Flashtool ins RAM der Betty laden | ||
| + | # LPCTool sendet neue Firmware an Flashtool | ||
| + | # Flashtool schreibt neue Firmware in den Flash | ||
| + | |||
| + | ==Unterstützte Hardware== | ||
| + | |||
| + | Findet man unter [[Interfaces PC zu Betty]]. | ||
| + | |||
| + | ==Windows== | ||
| + | http://megabug.de/cmde/betty_pub/lpctool-cygwin.zip | ||
| + | |||
| + | Es gibt aber Einschränkungen, siehe [[LPCTool#Lpctool-Probleme]]. | ||
| + | |||
| + | ==Linux== | ||
| + | === Debian Paket === | ||
Für Debian Basierte Distr. kann man folgendes Paket nehmen. | Für Debian Basierte Distr. kann man folgendes Paket nehmen. | ||
<pre> | <pre> | ||
| Line 22: | Line 47: | ||
</pre> | </pre> | ||
| − | + | === selbst kompilieren === | |
| + | Man benötigt die ARM-toolchain, siehe [[Entwicklungsumgebungen]] | ||
| + | |||
| + | Das LPCTool kann man unter Linux mit subversion herunterladen. | ||
| + | |||
| + | <pre> | ||
| + | svn co http://boopfirmware.svn.sourceforge.net/svnroot/boopfirmware/lpctool/ lpctool | ||
| + | </pre> | ||
| + | |||
| + | Alsdann kann das Programm compiliert werden: | ||
<pre> | <pre> | ||
| Line 34: | Line 68: | ||
</pre> | </pre> | ||
| − | + | ==Boop Flashen== | |
| − | === | + | === LPCTool Parameter === |
<pre> | <pre> | ||
| Line 73: | Line 107: | ||
</pre> | </pre> | ||
| − | |||
| − | Flashen kann man dann | + | ===Linux=== |
| + | |||
| + | Flashen kann man dann z.B. so: | ||
<pre> | <pre> | ||
| Line 81: | Line 116: | ||
</pre> | </pre> | ||
| − | ===Lpctool-Probleme | + | Wenn man LPCTool installiert hat (Debian-Paket oder <code>make install</code>) lässt man das <code>./</code> weg. |
| + | |||
| + | ===Windows=== | ||
| + | Flashen kann man dann z.B. so: | ||
| + | |||
| + | <pre> | ||
| + | lpctool.exe -d /dev/com4 -i -v -e -a boop_rom.bin | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | === Flashvorgang === | ||
| + | |||
| + | <pre> | ||
| + | lpctool -d /dev/ttyUSB0 -i -v -e -a boop_rom.bin | ||
| + | |||
| + | lpctool V0.9 | ||
| + | |||
| + | This Software is free Software under GNU GPL 3 or later | ||
| + | (c) 2007 Ch. Klippel <ck@mamalala.net> | ||
| + | |||
| + | Info : erasing flash #0 before write | ||
| + | Info : using flash #0 image boop_rom.bin | ||
| + | Info : opening serial device /dev/ttyUSB0 | ||
| + | Info : reset into bootmode | ||
| + | Info : opening bootloader | ||
| + | Info : initiating auto-baud | ||
| + | Info : awaiting autobaud response | ||
| + | Info : got response, answering | ||
| + | Info : setting frequency | ||
| + | Info : switching baudrate | ||
| + | Info : disabling echo | ||
| + | Info : unlocking bootloader | ||
| + | Info : uploading compiled-in ram image | ||
| + | Info : starting ram upload | ||
| + | Info : ram upload complete, total bytes: 0x000049CC | ||
| + | Info : ram uploaded | ||
| + | Info : executing code at ram address 0x40000200 | ||
| + | Info : code execution started 0x40000200 | ||
| + | Info : opening ram tool | ||
| + | Info : opened ramtool | ||
| + | Info : opening flash0 image boop_rom.bin | ||
| + | Info : uploading flash0 image boop_rom.bin | ||
| + | Info : setting address to 0x80000000 | ||
| + | Info : erasing whole flash | ||
| + | Info : erasing flash | ||
| + | Info : whole flash erased | ||
| + | Info : enabling bulk write | ||
| + | Info : setting total number of bytes to 0x000301D8 | ||
| + | Info : starting flash upload | ||
| + | Info : flash upload complete, total bytes: 0x000301D8 | ||
| + | Info : flash #0 uploaded | ||
| + | Info : reset device | ||
| + | Info : closing file descriptor | ||
| + | Info : closing serial device /dev/ttyUSB0 | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | |||
| + | ==Lpctool-Probleme== | ||
Falls nach dem Laden des Bootloaders (ramtool) die Fernbedienung neu startet (reset!) - | Falls nach dem Laden des Bootloaders (ramtool) die Fernbedienung neu startet (reset!) - | ||
im Quellcode die Geschwindigkeit (u.a. TOOLBAUD) von 115.200 baud auf 38.400 baud | im Quellcode die Geschwindigkeit (u.a. TOOLBAUD) von 115.200 baud auf 38.400 baud | ||
| − | reduzieren. | + | reduzieren. |
| − | (Linux, CentOS 5, USB-Seriell-Kabel, Windows mit FT232R). | + | "tcsetattr" toggelt beim Baud-Wechsel (38.400->115.200) den reset-Pin (Linux, CentOS 5, USB-Seriell-Kabel, Windows mit FT232R, Linux mit PL2303(H?)X. |
| − | + | Eine gebremste lpctool-cygwin für Windows gibt es [http://bettyhacks.com/forum/index.php?topic=54.msg842#msg842 im Forum]. | |
| + | Eine mit cygwin für Windows gebaute Version, die ohne Baudratenwechsel bei 38400 baud auskommt gibt es ebenfalls [http://bettyhacks.com/forum/index.php?topic=241.msg1667#msg1667 im Forum]. Getestet mit PL-230? USB-UART Wandler. | ||
| + | |||
| + | |||
| + | Stellen im Code von LPCTOOL: | ||
'''lpctool_serial.h''' ''Zeile 5'': | '''lpctool_serial.h''' ''Zeile 5'': | ||
| Line 102: | Line 199: | ||
muss geändert werden in | muss geändert werden in | ||
<nowiki>serial_setbrg (38400);</nowiki> | <nowiki>serial_setbrg (38400);</nowiki> | ||
| + | |||
| + | [[Category:Tools]] | ||
| + | [[Category:Firmware]] | ||