mikrocontroller.net

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


Autor: Hans K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Veit Wehner (veitwehner)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.