Hallo,
ich möchte erst mal zu Testzwecken ein einfaches Assembler-File mit dem
GNU-Assembler msp430-as oder dem GNU-C-Compiler msp430-gcc compilieren
und dann per msp430-jtag hochladen und ausführen.
Das Programm wird zwar compiliert (Befehlszeile
"c:\mspgcc\bin\msp430-gcc.exe -c %1.S -o %1.elf -D_GNU_ASSEMBLER_
-mmcu=msp430x149"), der Programmname "fet140_1.S" wird dem Batch-File
als Parameter übergeben.
Aber beim Versuch, das Programm per "msp430-jtag" hochzuladen, kommt die
Fehlermeldung "An error occurd: No executable".
Die Hardware ist in Ordnung, mit anderen Compilern verwende ich den
jtag-Adapter und die angeschlossenen Prozessoren ohne Probleme.
Hat jemand einen Tip, mit welchen Kommandozeilenoptionen man den GCC-
oder GAS-Compiler dazu bringt, ein ausführbares Programm zu erzeugen,
das man mit "msp430-jtag" hochladen kann ?
Hier der Sourcecode (Datei fet140_1.S) :
#include <io.h>
;***********************************************************************
*******
; MSP-FET430P140 Demo - Software Toggle P1.0
;
; Description; This program will toggle P1.2 by xor'ing P0.1
; ACLK = n/a, MCLK = SMCLK = default DCO ~ 800k
;
; M.Buccini, Texas Instruments, January 2002
; Adapted for mspgcc by Steve Underwood <steveu@coppice.org>
;***********************************************************************
*******
.section .text
RESET: mov.w #0xA00,R1 ; Initialize 'F149
stackpointer
StopWDT: mov.w #WDTPW+WDTHOLD,&WDTCTL ; Stop WDT
SetupP1: bis.b #0x04,&P1DIR ; P1.2 output
;
Mainloop: xor.b #0x04,&P1OUT ; Toggle P1.2
Wait: mov.w #050000,R15 ; Delay to R15
L1: dec.w R15 ; Decrement R15
jnz L1 ; Delay over?
jmp Mainloop ; Again
;
;-----------------------------------------------------------------------
-------
; Interrupt Vectors Used MSP430x13x/14x
;-----------------------------------------------------------------------
-------
.section .vectors
.org 0x1E,0xFF ; MSP430 RESET Vector
.word RESET ;
Hm, nach dem Assemblieren/Compilieren muss ja der Linker noch ran, um ein ausführbares File zu machen....mein Eclipse macht das so:
1 | msp430-gcc -IC:\mspgcc\msp430\include -O0 -g3 -pg -p -Wall -c -fmessage-length=0 -mmcu=msp430x1611 -oRC5.o ..\RC5.c |
2 | msp430-gcc -IC:\mspgcc\msp430\include -O0 -g3 -pg -p -Wall -c -fmessage-length=0 -mmcu=msp430x1611 -omain.o ..\main.c |
3 | msp430-gcc -IC:\mspgcc\msp430\include -O0 -g3 -pg -p -Wall -c -fmessage-length=0 -mmcu=msp430x1611 -oSoftUart.o ..\SoftUart.c |
4 | msp430-gcc -IC:\mspgcc\msp430\include -O0 -g3 -pg -p -Wall -c -fmessage-length=0 -mmcu=msp430x1611 -owait.o ..\wait.c |
5 | msp430-gcc -mmcu=msp430x1611 -oRC5_Serial.elf wait.o main.o SoftUart.o RC5.o |
Hallo, hat sich geklärt. In der Beschreibung des msp430-jtag.exe heisst es zwar "ELF files can also be loaded", aber der Upload führt nur mit dem hex-File zu einem im Prozessor ausführbaren Programm. Nachdem ich jetzt nicht das *.elf, sondern das *.hex-File hochlade, funktioniert es.
Welche Version der ToolChain ist das denn? Meine aktuelle unter Windows lädt problemlos elf Files in den MSP430.
Eigentlich schon die aktuelle, die binary-Dateien sind vom 20.6.2008.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.