#define Bekanntgaben in .s Dateien

OP #5535858
Lesenswert?

Hallo,

ist es irgendwie möglich eine Headerdatei z.B "x.h" in "y.s" zu 
inkludieren?
Wenn ich das so versuche wie im Anfang zu sehen, kommen div. Fehler..
Was mache ich falsch?

Kleine Ausschnitt ( alles andere steht in der Datei.. )
1
#include <avr\io.h>
2

3
#include "Bootloader.h" // Hier läuft was schief?
4

5
/*
6
*  Das ganze soll hier bekanntgegeben werden, ohne das ich es in diese Datei schreiben muss..
7
*
8
*/
9
#define   BOOT_SECTION_START_IN_BYTES    0x40000UL
10
#define   BOOT_PAGE_SIZE          512
11
#define   APP_PAGE_SIZE            512
Angehängte Dateien:
Gast #5535885
Lesenswert?

Jan H. schrieb:
> ist es irgendwie möglich

Ist es dir irgendwie möglich, den prinzipiellen Unterschied zwischen der 
Notation von C und der Notation eines Assemblers zu verstehen?

Beides sind unterschiedliche Sprachsystem, die nur MANCHMAL gewisse 
Ähnlichkeiten in der Notation haben.

Du kannst also nicht davon ausgehen, daß du dich bei Assemblern genauso 
benehmen kannst wie in C.

Mal ein Beispiel zur Verdeutlichung:
in C:
#define ottokar 125

in Assembler (je nach Typ, CPU und Hesteller):
ottokar: EQU 125
        .equ  ottokar, 125
ottokar = 125

W.S.
#5535973
Lesenswert?

Wie Jim M. schon geschrieben hat, kann man mit dem GCC .s Files mit CPP 
Unterstützung übersetzen. Dann funktioniert dein Include auch. Falls das 
Include Dinge beinhaltet, die für ASM und C unterschiedlich sind (aus 
Syntax-Sicht z.B.), dann kann man auswerten, das bei Assembler-Source 
das Define _ASSEMBLER_ gesetzt ist. Beispiele sind zu finden in der 
Source der (auch hier verwendeten) AVRlibc.
Moderator #5536122
Lesenswert?

Jim M. schrieb:
> Zumindest der (AVR-)GCC kennt "-x assembler-with-cpp", damit wird der
> C-Präprozessor vorm Assembler aufgerufen.

Und wenn der Name der Assembler-Quelldatei auf .S statt .s endet, wird
der C-Präprozessor auch ohne die -x-Option aufgerufen. Handgeschriebener
AVR-Assemblercode hat deswegen üblicherweise die Extension .S, damit man
ohne weitere Vorkehrungen die Header-Dateien der AVR-Libc verwenden
kann.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren