Forum: Compiler & IDEs GAS/GCC-Code mit MSP430 verwenden


von einsteiger (Gast)


Lesenswert?

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                   ;

von Christian R. (supachris)


Lesenswert?

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

von einsteiger (Gast)


Lesenswert?

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.

von Christian R. (supachris)


Lesenswert?

Welche Version der ToolChain ist das denn? Meine aktuelle unter Windows 
lädt problemlos elf Files in den MSP430.

von einsteiger (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.