Forum: Mikrocontroller und Digitale Elektronik .s43 in MSP C-Programm einbinden?


von Hans K. (Gast)


Lesenswert?

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

von Veit W. (veitwehner)


Lesenswert?

Hi!
Der msp-as kennt "PUBLIC" nicht. Es stammt glaub ich von einigen 
proprietaeren Compilern. Ich glaub, das wird nicht functionieren. Ich 
würd den Code in der .s43 Datei so umwandeln, dass er konform mit dem 
Output von  `msp430-as -S` ist.

Ciao,
Veit Wehner

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.