Gast
#1008478
Hallo zusammen, ich bin noch recht neu in der Mikrocontroller-Programmierung und bräuchte ein wenig Hilfe mit einem Problem, das ich absolut nicht einordnen kann: Ich arbeite mit einem TelosB, auf dem ein MSP430F1611 verbaut ist, und dem MSPGCC. Zum Flashen meiner Programme verwende ich tos-bsl (eine Abwandlung des msp430-bsl Bootstrap Loaders für TelosB Motes aus der TinyOS-Toolchain). Als ich ein UART-Testprogramm (von mathar.com, s. Anhang), dessen Interruptroutinen ich auf den MSPGCC angepasst habe, ausprobieren wollte, erhielt ich folgende Ausgabe: <snip> D:\Code\ITM\telosb\InterruptTest>make msp430-gcc -Os -mmcu=msp430x1611 -c InterruptTest.c -o InterruptTest.elf msp430-objcopy -O ihex InterruptTest.elf InterruptTest.ihex tos-bsl --telosb -c 5 -r -e -I -p InterruptTest.ihex MSP430 Bootstrap Loader Version: 1.39-telos-8 Mass Erase... Transmit default password ... Invoking BSL... Transmit default password ... Current bootstrap loader version: 1.61 (Device ID: f16c) Changing baudrate to 38400 ... Program ... An error occoured: Unknown header 0x00 Are you downloading to RAM into an old device that requires the patch? Try optio n -U make: *** [InterruptTest.ihex] Error 1 </snip> Das Auftauchen dieses Problems ist scheinbar willkürlich, denn für unterschiedliche mit dem MSPGCC kompilierbare (!) Programme tritt der Fehler manchmal auf und manchmal nicht. Wichtig hierbei ist, dass der Fehler reproduzierbar bleibt, sich ein und dasselbe Programm also entweder immer flashen lässt oder aber nie. Es gab auch den Fall, dass sich ein Programm flashen ließ, in dem die Anweisung P1DIR |= 0x01; vorkam. Verdoppelte man diese Anweisung jedoch (führte also einen syntaktischen, aber keinen semantischen Unterschied herbei), ließ sich das Programm nicht mehr flashen und hatte wieder den o.g. Fehler zur Folge. Mir fehlt wirklich jeglicher Ansatz, um dem Ursprung des Problems auf die Schliche zu kommen. Hoffentlich seid ihr da kreativer. Vielen Dank für Eure Ideen! Beste Grüße, Florian