Gast
#398884
Hallo!
Ich habe hier eine Funktion in einem .s43 Programm und möchte diese in
einem c-Programm einbinden. (Compiler: mspgcc)
Welche Optionen brauche ich hier im makefile?
Bisher sieht das Ganze so aus: (mul.s43 ist das einzubindende file)
NAME = test
CSOURCES = main.c modul1.c modul2.c
ASOURCES = mul.s43
CPU = msp430x169
ASFLAGS = -mmcu=${CPU} -D_GNU_ASSEMBLER_
CFLAGS = -mmcu=${CPU} -O2 -Wall -g
#switch the compiler (for the internal make rules)
CC = msp430-gcc
AS = msp430-gcc
OBJECTS = ${CSOURCES:.c=.o} ${ASOURCES:.s43=.o}
.PHONY: all FORCE clean download download-jtag download-bsl dist
#all should be the first target. it's built when make is run without
args
all: ${NAME}.elf ${NAME}.lst ${NAME}.hex
#additional rules for files
${NAME}.elf: ${OBJECTS}
${CC} -mmcu=${CPU} -o $@ ${OBJECTS}
${NAME}.a43: ${NAME}.elf
msp430-objcopy -O ihex $^ $@
${NAME}.lst: ${NAME}.elf
msp430-objdump -dSt $^ >$@
echo >>$@ " "
echo >>$@ "----- RAM/Flash Usage -----"
msp430-size $^ $(OBJECTS) >>$@
msp430-size $^ $(OBJECTS)
${NAME}.hex: ${NAME}.elf
msp430-objcopy -O ihex $^ $@
clean:
rm -f ${NAME} ${NAME}.a43 ${NAME}.lst ${OBJECTS} dependencies.d
dependencies.d:
$(CC) -MM ${CFLAGS} ${CSOURCES} > dependencies.d
ifdef {$ASOURCES}
$(CC) -MM ${ASFLAGS} ${ASOURCES} >> dependencies.d
endif
#dummy target as dependecy if something has to be build everytime
FORCE:
#project dependencies
-include dependencies.d
Im mul.s43 gibt es eine PUBLIC Funktion, diese wird im main
prototypisch mit
long mul16(register int x, register int y);
aufgenommen. Ist das ok so?
Danke im Voraus, Hans