hallo zusammen,
unter http://mamalala.org/lpctool-0.1.tgz ist ein neues tool zu finden, um code in den lpc2220 zu laden.
zur zeit wird nur der upload in das ram unterstuetzt, am flash arbeite ich gerade (75% fertig)
das tool ist ca. 10 mal schneller als lpcload von hackbard beim upload ins ram unter benutzung des lpc internen bootloaders.
mit "lpctool -?" bekommt man hilfe.
gruss,
chris
edit:
zum vergleich mal die zeiten, zuerst mit lpcload:
root@desk:~/bettystuff/boop-0.7# time ./lpcload -d /dev/ttyS0 -f boop.hex
boot loader init ...
write firmware to ram ...
unlock go command ...
go ...
flushing lpc tx buffer: 30 0d 0a
real 1m0.380s
user 0m0.000s
sys 0m0.000s
und hier mit lpctool:
root@desk:~/bettystuff/boop-0.7# time ./lpctool -r boop.bin
This Software is free Software under GNU GPL 3 or later
(c) 2007 Ch. Klippel <ck@mamalala.net>
using ram image boop.bin
wrote 228 bytes @ 40003A00
real 0m6.331s
user 0m0.004s
sys 0m0.000s
wobei code-maessig die .bin und die .hex gleich sind, lediglich das dateiformat ist anders.
so, flash schreiben geht jetzt auch:
http://mamalala.org/lpctool-0.2.tgz
gruss,
chris
hallo alle zusammen,
unter http://mamalala.org/lpctool-0.4.tgz gibt es die neueste version des schnellen upload tools.
mit -V werden infomeldungen ausgegeben, auch gibt es jetzt fehlermeldungen wenn was schief geht, ebenso ist mit -? eine hilfe da.
das loeschen von sektoren "on demand" fehlt noch, genauso wie das auslesen des flash/ram.
gruss,
chris
Was genau muss vom µClinux installiert sein damit ich das compilen kann? Binutils?
mh wahrscheinlich das: http://opensrc.sec.samsung.com/download/arm-uclinux-tools-base-gcc3.4.0-20040713.sh ? ;)
Was genau muss vom µClinux installiert sein damit ich das compilen kann? Binutils?
mh wahrscheinlich das: http://opensrc.sec.samsung.com/download/arm-uclinux-tools-base-gcc3.4.0-20040713.sh ? ;)
100 punkte ;)
gruss,
chris
zenega:/home/megabug/betty# sh arm-uclinux-tools-base-gcc3.4.0-20040713.sh
tail: Warning: "+number" syntax is deprecated, please use "-n +number"
arm-uclinux-tools-base-gcc3.4.0-20040713.sh: line 42: bunzip2: command not found
zenega:/home/megabug/betty#
;)
Ahja, debian... 2.6.18-5-686
zenega:/home/megabug/betty# sh arm-uclinux-tools-base-gcc3.4.0-20040713.sh
tail: Warning: "+number" syntax is deprecated, please use "-n +number"
arm-uclinux-tools-base-gcc3.4.0-20040713.sh: line 42: bunzip2: command not found
zenega:/home/megabug/betty#
apt-get install bzip2
sollte man aber eigentlich haben .... was haste denn gemacht, das es nicht da ist? ;)
gruss,
chris
Öhm keine Ahnung. :D
./lpctool -r boop.bin -s /dev/ttyUSB1 <- so richtig?
ttyUSB1 ist mein datenkabel an der betty. USB0 ist mein Adapter wo meine USV dranhängt. ;)
EDIT:
Solltest die hilfe ändern... ist nicht -s sondern -d... ;)
to do the same, but using serial device /dev/ttyS1 instead :
lpcload -r -s /dev/ttyS1
zenega:/home/megabug/betty/lpctool-0.4# ./lpctool -r boop.bin -d /dev/ttyUSB1
Welcome to lpctool V0.4
This Software is free Software under GNU GPL 3 or later
(c) 2007 Ch. Klippel <ck@mamalala.net>
ERROR: autobaud detection failed
ERROR: Error opening BootLoader
zenega:/home/megabug/betty/lpctool-0.4#
moin megabug,
jo, das mit dem -s habe ich jetzt mal geaendert ...
wegen dem fehler kann ich im moment auch nichts sagen. ich habe das hier auch oefter mal, auf einem regulaeren rs232 port (also kein usb adapter). auch wenn man in dem moment mal mit einem terminal draufgeht, sieht man das die kommunikation fehelerhaft ist (bei "Synchronized" kommen muellzeichen mit)
bisher hat es immer geholfen enweder, wenn eint geschlossen ist, mehrmals reset zu druecken ... oder einmal reset ohne eint, dann tool starten (was natuerlich einen fehler bringt), danach wieder mit eint & reset in den bootloader und erneut versuchen. damit klappt das bei mir immer.
ich hoffe das ich den bug irgendwann mal wegbekomme, aber ich _vermute_ das es u.u. mit kontaktprellen auf der reset & eint leitung zu tun hat, wenn man dort einfach nur taster anschliesst (so wie ich).
evtl. muss man die autobaud auch einfach mit niedrigerer geschwindigkeit machen, und dann "hochschalten" .... in den naechsten tagen weiss ich mehr ...
gruss,
chris
hallo,
habe jetzt den fehler beseitigt, der dafuer sorgte das am anfang die kommunikation schiefgeht.
aktuelle version ist jetzt unter http://mamalala.org/lpctool-0.5.tgz zu finden.
zwei parameter haben sich geaendert, -V gibt jetzt nur die version aus, und -v schaltet die info-meldungen an.
gruss,
chris
jetzt tut es bei mir nichts mehr. ;)
bei opening bootloader bleibts stehen.
jetzt tut es bei mir nichts mehr. ;)
bei opening bootloader bleibts stehen.
hmm, sicher das du waehrend des reset die eint leitung haelst? hier bleibt er eigentlich nur stehen wenn er garnicht mit der gegenseite sprechen kann, also wenn nichts zurueckkommt. wenn eine kommunikation moeglich, aber fehlerhaft ist, bricht er ab.
allerdings habe ich gestern nacht noch kleinere aenderungen gemacht, irgendwann war auch ein fehler drin, den ich dann beseitigt habe.
lade das archiv doch einfach nochmal runter....
gruss,
chris
Endweder sofort fehler oder bleibt hängen bei
Info : opening serial device /dev/ttyUSB1
Info : opening ram image boop.bin
Info : opening bootloader
;)
Wenn er mal sofort nen Fehler ausgibt:
ERROR: autobaud detection failed
ERROR: Error opening BootLoader
hallo megabug,
hmm, dann weiss ich im moment auch nicht weiter. ich habe keinen usb<->seriell adapter hier, daher kann ich es auch nicht testen.
ich habe jetzt nochmal eine geaenderte version hochgeladen, gleicher name, die ein paar mehr fehlermeldungen ausgibt, allerdings wird das in deinem fall auch nicht mehr anzeigen.
bleibt eigentlich nur noch der adapter als ursache, ueber usb ist die kommunikation ja etwas anders als direkt mit einer seriellen leitung wegen der usb paketgroesse und dem polling intervall. wenn du kannst, schau dir mal die routine openSerial() in lpctool_serial.c, ab zeile 79 an. dor wird der port geoeffnet und eingestellt. wahrscheinlich ist dort der fehler zu suchen, kann sein das der port in einen modus gesetzt wird mit dem der adapter nicht klarkommt. aber da ich es ja selber hier nicht testen kann, muessen dort andere einspringen, oder mir einen usb<->seriell adapter schicken.
bist du auf den adapter angewiesen, oder hast du auch eine regulaere rs232 schnittstelle?
gruss,
chris
Hi, gib mir deine Adresse dann schick ich dir einen. Hab 3 davon hier. Siemens Datenkabel. ;)
Bin leider drauf angewiesen. Mein normaler PC hat keine seriell ports mehr und bei meiner S100 box (t-online vision, da hab ich auch das debian laufen) wollen die seriellen ports nicht so recht. :D
Hi, gib mir deine Adresse dann schick ich dir einen. Hab 3 davon hier. Siemens Datenkabel. ;)
Bin leider drauf angewiesen. Mein normaler PC hat keine seriell ports mehr und bei meiner S100 box (t-online vision, da hab ich auch das debian laufen) wollen die seriellen ports nicht so recht. :D
ok, ahbe die eine email geschickt.
es ist wirklich eine schande das ganz normale, und vor allem sehr nuetzliche schnittstellen verschwinden. gerade seriell und parport sollte wirklich jeder rechner haben. und wenn es am platz liegt, es spricht ja nichts dagegen mini-buchsen anstelle der normalen zu verwenden ...
bis denne,
chris
hallo zusammen,
unter http://mamalala.org/lpctool-0.6.tgz gibt es eine neue version.
wenn man zwei n-kanal mosfets (z.b. bs170) und zwei 1 kohm widerstaende hat, kann die betty nun automatisch resettet werden und ebenfalls in den internen bootloader gebracht werden.
die mosfets mit den source pins auf gnd legen, die drain pins gehen dann je einer auf die reset, der andere auf die eint leitung. nun loetet man je einen widerstand von dem gate eines fet's zu gnd. das gate des reset fet's geht auf pin 4 des seriellen kabels (dtr leitung), das gate des eint fet's geht auf pin 7 (rts). die nummern beziehen sich auf einen 9-poligen seriellen stecker. wer mag kann noch je eine 1n4148 diode zwische dtr/rts und des gates schalten (der ring zum gate hin) anstelle eine direkte verbindung zu machen. aber normalerweise machen dem fet die -12 volt nix aus.
wenn nun etwas ins ram geladen wird, wird automatisch ein reset gemacht und in den internen bootloader gestartet (eint). wenn man etwas in's flash geladen hat, wird automatisch ein reset gemacht. diesen reset-nach-flash kann man mit -N verhindern.
gruss,
chris
*gg* da kann jemand wohl nicht schlafen. :D
das ist meine schaltung hab sie so abgeendert das es gehen solte mit sicherheit kann ich das aber erst morgen sagen
hallo alle zusammen,
unter http://mamalala.org/lpctool-0.7.tgz gibt es die neueste version.
hinzugekommen sind die parameter -c (erstes flash) bzw. -C (zweites flash).
diese bewirken das groessere ansammlungen von 0xFFFFFFFF uebersprungen werden.
das resultat: der upload der original-firmware, inklusive loeaschen der beiden flash und upload des tools, betraegt nun zwischen 2 und 3 minuten.
gruss,
chris
hallo,
unter http://mamalala.org/lpctool-0.8.tgz gibts wieder mal eine neue version.
das flash-utility fuer das ram ist nun integriert und kann mit -i ausgewaehlt werden. natuerlich kann nachwievor mit -r [name] ein externes file verwendet werden.
der vortiel ist das man nun nicht immer das ramtool.bin im gleichen verzeichnis haben muss. beispiel-kommadozeile um ein backup der flash's wieder einzuspielen:
lpctool -i -e -E -c -a Flash1.bin -b Flash2.bin
-i: internes image fuer das flashtool verwenden, -e und -E: erstes und zweites flash komplett loeschen, -a und -b geben die .bin dateien fuer die beiden flash's an, und durch -c werden groessere ansammlungen von 0xFFFFFFFF uebersprungen um den transfer zu beschleunigen.
jetzt fehlt nur noch das auslesen, dann kommt eine nette gui dazu....
gruss,
chris
jetzt fehlt nur noch das auslesen, dann kommt eine nette gui dazu....
Wird das noch weiterentwickelt? Kann man jetzt scho auslesen?
hallo, ich versuche gerade mit einem ft232rl und lpctool-cygwin 0.9 das aktuelle boop_rom.bin zu flashen.
ich sehe auch eine sequenz auf eint1 und reset
EINT PIN auf GND bruecken
RESET PIN auf GND bruecken
RESET PIN wieder oeffnen
EINT PIN wieder oeffnen
aber es scheint mir vom timing eher andersherum. ich hoffe, ich habe da nicht die leitungen vertauscht..
jedenfalls sagt lpctool:
lpctool-cygwin>lpctool -d /dev/com4
-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
Info : erasing flash #0 before write
Info : using flash #0 image boop_rom.bin
Info : opening serial device /dev/com4
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
....Abbruch...
Da bleibt es dann stehen. Bettys LCD ist leer, nach einem power-on bootet sie wie gehabt.
mit der option -V
\lpctool-cygwin>lpctool -d /dev/com4
-i -v -e -a -V boop_rom.bin
lpctool V0.9
This Software is free Software under GNU GPL 3 or later
(c) 2007 Ch. Klippel
Info : erasing flash #0 before write
Info : closing file descriptor
Info : closing serial device /dev/com4
...Ende...
Liegt es an meinem 'Interface' oder an lpctool-cygwin?
ich glaube, es liegt daran, dass der rechner nix empfangen kann. der ft232rl ist im ssop, da ist wohl bei einer korrektur eben was schiefgegangen...so, jetzt vorerst letzter versuch für heute..
so jetzt kann ich auch empfangen, aber mittlerweile sagt die betty nix mehr. lpctool-cygwin bleibt an derselben stelle hängen.
auf
Info : initiating auto-baud
Info : awaiting autobaud response
Info : got response, answering
ist dann aber wohl nicht verlass! :-)
gute nacht
Jetzt habe ich gerade im Wiki einen Hinweis zu Problemen mit lpctool entdeckt:
http://bettyhacks.com/wiki/index.php/LPCTool#Lpctool-Probleme
" .. Da "tcsetattr" beim Baud-Wechsel (38.400->115.200) den reset-Pin toggelt. (Linux, CentOS 5, USB-Seriell-Kabel, Windows mit FT232R).."
Das kann ich auf dem Oszi sehen (jetzt sieht auch das Timing der Sequenz einwandfrei aus).
Hat jemand zufällig ein auf 38.400 baud gebremstes lpctool-cygwin für mich?
So, mit Ubuntu 7.04 geht's:
Boop runterladen:
http://svn.mamalala.org/filedetails.php?repname=boop&path=%2Ftrunk%2Fboop_rom.bin&rev=0&sc=0
lpctool .deb installieren:
http://www.grautier.com/grautier/index.php?/plugin/dlfile_108
lpctool -d /dev/ttyUSB0 -i -v -e -a boop_rom.bin
Getestet mit ft232RL (USB).
Leider konnte ich lpctool nicht kompilieren, auch nach Installation von http://opensrc.sec.samsung.com/download/arm-uclinux-tools-base-gcc3.4.0-20040713.sh und Anpassen des Makefiles war ein arm Befehl unbekannt.
Wenn ich bei Gelegenheit mal mit Boop rumspielen kann, werde ich da nochmal nachhaken und Infos posten.
Dann hat lpctool-cygwin oder der fdtdi-treiber ne Macke.
Ich hoffe, ich kann euch Entwicklern in Zukunft auch was beisteuern.
Hallo,
ich hab ein lpctool-cygwin ohne baudrate wechsel für dich. Hab´s angehängt - Ich hoffe die Forenregeln erlauben es.
Was noch zu beachten ist: Der Original Flashadapter für die RS232 invertiert die Signale DTR und RTS. Ich nehme an, du hast diese Signale beim FT232R direkt an die Betty gelegt. Ich glaub, daß da auch dein Problem liegt.
Man sollte diese Signale mit dem MProg von FTDI invertieren. Das funktioniert bei mir aber nicht.
Darum hab ich diese Invertierung beim LPCTool rausgenommen.
Du kannst es also verwenden, wenn du RTS und DTR direkt angeschloßen hast.
pcs
Vielen Dank, ich werde das mal bei Gelegenheit ausprobieren.
Funktioniert leider nicht, mit und ohne (scheinbar) invertierte Pegel. Die Hintergrundbeleuchtung der Betty blitzt kurz auf. Ich habe aber nicht die Signale / Pegel nachgemessen.
\lpctool-cygwin>lpctool -d /dev
/com4 -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
Info : erasing flash #0 before write
Info : using flash #0 image boop_rom.bin
Info : opening serial device /dev/com4
Info : reset into bootmode
Info : opening bootloader
Info : initiating auto-baud
Info : awaiting autobaud response
Moin!
Kann man das lpctool auch so nutzen, daß man den BL und Reset mit Jumper steuert? So wie bei Betty Heaven?
MfG
MrFX
Also, bei mir funktioniert das lpctool unter Windows genauso wenig wie bei eme.