Forum: Mikrocontroller und Digitale Elektronik Einbetten von Assembler in C


von Tom (Gast)


Lesenswert?

Hallo!
Ich hab ein C Programmm und ein Assembler Programm, diese beiden 
programme möchte ich nun im AVR Studio mit einander verknüpfen und zwar 
aus dem C programm das Assembler programm bzw teile davon aufrufen. muss 
ich die Datein des Assembler Programms irgendwie deklarieren/bekannt 
machen so wie zb header in C (zb: #include <avr/io.h>)? und wenn ja muss 
ich das mit der .asm Datei oder der .inc Datei machen?
Vielen Dank schonmal im Vorraus
MFG
Tom

von Winfried (Gast)


Lesenswert?

Schau doch mal hier im GCC Tutorial. Da steht alles.

von Peter D. (peda)


Lesenswert?

Las es sein.
Du müßtest sämtliche Assemblerobjekte nochmal neu schreiben, daß sie 
sich an die C Konventionen halten.


Peter

von Sigint 112 (sigint)


Lesenswert?

@Peter:
  Was meinst du damit genau... ich wollte bald auch mit AVR-GCC anfangen 
und einige Routinen in ASM schreiben (des Speicherplatzes wegen).
Wenn ich meine Routinen so schreibe, daß sie sich an CDECL oder STDCALL 
halten dann sollte es doch keine großen Probleme geben. Oder hab ich da 
was übersehen.

Gruß,
  SIGINT

von Peter D. (peda)


Lesenswert?

Sigint 112 wrote:
> Was meinst du damit genau... ich wollte bald auch mit AVR-GCC anfangen
> und einige Routinen in ASM schreiben (des Speicherplatzes wegen).

Bist Du Dir sicher, daß Du auch signifikant Speicher sparen wirst ?

In normalem Code mußt Du schon ein absoluter AVR-Assembler-Freak sein.

Ansonsten würde ich nur Sparpotential sehen, wenn Du die float- und die 
64Bit-Library in Assembler schreibst.


> Wenn ich meine Routinen so schreibe, daß sie sich an CDECL oder STDCALL
> halten dann sollte es doch keine großen Probleme geben. Oder hab ich da
> was übersehen.

CDECL ist doch x86, nützt Dir beim AVR also herzlich wenig.


Peter

von SIGINT112 (Gast)


Lesenswert?

@Peter:
  Hmm,
     wahrscheinlich lohnt es sich fuer mich wirklich nicht die Routinen 
in ASM umzusetzen... waere aber nett gewesen.
Zum Thema CallingConvention: Ich dachte bis jetzt, dass die unabhaengig 
von der Zielhardware sind. Ich schau mir noch mal ein paar Dokus dazu 
an.

Gruss,
  SIGINT

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.