Hi!
Nachdem ich vor kurzem über bettyhacks.com gestolpert bin und meine Betty wieder aus der Kramkiste geholt habe, wollte ich gleich eine Kleinigkeit beitragen.
Ich habe lediglich ein Handy-Kabel mit RX, TX und GND; Reset und EINT1 habe ich als Taster am Adapter. Daher geht das Resetten der Betty nicht automatisch mit dem lpctool, wenn der Flashvorgang beendet ist. Um das dennoch zu ermöglichen, habe ich lpctool und ramtool so gepatcht, dass ein neues Reset-Kommando ('*') gesendet wird, und das ramtool den Reset-Vektor im ROM anspringt.
Die Code-Änderungen sind überschauber, ein unified diff gegen lpctool svn-r11 findet sich hier:
http://op-co.de/betty/lpctool_softreset.diff (http://op-co.de/betty/lpctool_softreset.diff) (GPLv3 und der Integration ins SVN stimme ich natürlich zu)
Wer nicht einen Taster sondern einen Jumper für EINT1 (Bootloader enable) verwendet, müsste diesen allerdings während des Flash-Vorganges abziehen, damit er nicht beim Reset wieder im Bootloader landet.
Bei der Gelegenheit fiel mir auf: das Compiler-Flag für "Größe minimieren" -Os wird beim Linken und nicht beim Compilieren übergeben. Wenn man das repariert, hat es gravierende Folgen auf die Dateigröße:
ohne -Os:
19284 2009-02-06 01:04 ramtool.bin
19284 2009-02-06 01:04 romtool.bin
mit -Os in den CFLAGS:
10796 2009-02-06 01:05 ramtool.bin
10796 2009-02-06 01:05 romtool.bin
Damit ist dann auch noch ein Kilobytechen frei um einen schicken Fortschrittsbalken im LCD zu implementieren ;-)
http://op-co.de/betty/lpctool_progress_lcd.diff (http://op-co.de/betty/lpctool_progress_lcd.diff)
Die diffs sind verschoben worden nach http://op-co.de/betty/attic/ also
http://op-co.de/betty/attic/lpctool_softreset.diff
http://op-co.de/betty/attic/lpctool_progress_lcd.diff
Wenn mir jemand sagt, wie das Makefile angepasst werden kann, um die Mathe-Routinen aus libgcc.a plattformübergreifend zu linken, gibt es Georgs Statusbalken bald im SVN..
Genauso wie bei Boop.
libpath im makefile.local definieren z.B.
LIBPATH = $(ARMBASE)/lib/gcc/arm-elf/4.1.1/interwork
LD den libpath mitteilen und mit "-lgcc" libgcc.a hinzufügen:
$(LD) $(ROMLDFLAGS) -L$(LIBPATH) -o.... -lgcc
Danke.