Forum: Mikrocontroller und Digitale Elektronik avr assembler .include "macro.inc"


von Tester (Gast)


Lesenswert?

Hallo liebe Gemeinde,
kann mir jemand bitte kurz auf die Sprünge helfen?
Ich möchte eine Makrosammlung nicht jedesmal in den Anfang meines 
Hauptprogrammes  hinein kopieren, sondern der Übersichtlichkeit als 
eigene Datei inkludieren, ähnlich folgendem Beispiel:

-------------------------------------------
.include        "interrupt.inc"
.include        "macros.inc"
.include  "twi.inc"
.include  "display_ssd1306.inc



main:
     ....Programmcode
---------------------------------------------

Beim Assemblieren spuckt der Assembler folgende Meldung aus:
Severity  Code  Description  Project  File  Line
Error    FATAL: too deeply nested include (16)  test  RUNASSEMBLERTASK 
0

Kopiere ich genau an die Stelle wo die Datei inkludiert werden soll den 
Inhalt der Datei mit den Makros, dann sieht der Assembler kein Problem.
Beim Inkludieren passiert doch nix anderes als das genau dort an der 
Stelle der Inhalt beim Assemblieren eingefügt wird, also das was ich 
händisch gerade gemacht habe?
Ist es evtl. so das der Assembler nicht gleichzeitig eine Datei 
inkludieren und die inkludierten Makros für die weitere Verarbeitung 
berücksichtigen kann?
Meine Entwicklungsumgebung ist das Microchip Studio for AVR in der 
Version 7.0.2542 und dessen standard Assembler.
Vielen Dank für das lesen und evtl. Hilfe ;-)

von Oliver S. (oliverso)


Lesenswert?

Das klingt eher nach einem unendlichen Zirkel-Inklude.

Oliver

von EAF (Gast)


Lesenswert?

Tester schrieb:
> die Datei

Schön, dass wir "die Datei" nicht sehen dürfen.
Ein gutes Training für die Kristallkugel.

von c-hater (Gast)


Lesenswert?

Tester schrieb:

> Vielen Dank für das lesen und evtl. Hilfe ;-)

Fehlt da eventuell irgendwo ein "Include-Guard"?

von Falk B. (falk)


Lesenswert?

Tester schrieb:
> Beim Assemblieren spuckt der Assembler folgende Meldung aus:
> Severity  Code  Description  Project  File  Line
> Error    FATAL: too deeply nested include (16)  test  RUNASSEMBLERTASK
> 0

Du hast mehrfach geschachtelte Includeaufrufe in deinen Dateien.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Tester schrieb:
> Kopiere ich genau an die Stelle wo die Datei inkludiert werden soll den
> Inhalt der Datei mit den Makros, dann sieht der Assembler kein Problem.

Das glaube ich nicht, kann einfach nicht sein.
Assembler macht nämlich genau dasselbe, nicht mehr und nicht weniger.

von Tester (Gast)


Lesenswert?

Vielen lieben Dank an alle!!
Tatsächlich war eine Zeile welche auskommentiert sein sollte aktiv und 
führte zu einer weiteren Inkludierung.
Wie konnte ich nur so blind sein, verstehe es selber nicht!
Auf der verzweifelten Suche hab ich mich in wildesten Theorien 
verfangen…
Tolles Forum, nochmal vielen Dank für eure Antworten, werde mich hier 
registrieren und hoffe euch in Zukunft auch etwas zurück geben zu können 
;-)

von Peter D. (peda)


Lesenswert?

Tester schrieb:
> Error    FATAL: too deeply nested include (16)

Als Anfänger wird man kaum so tief verschachteln.
Das wird also ein rekursives Include sein, d.h. eine Datei includiert 
sich selbst oder 2 sich wechselseitig.

von EAF (Gast)


Lesenswert?

Tester schrieb:
> Tatsächlich
Meinen Glückwunsch!

Tester schrieb:
> wildesten Theorien
Der Weg in die Hölle, ist mit falschen Annahmen gepflastert.

von c-hater (Gast)


Lesenswert?

Peter D. schrieb:

> Das wird also ein rekursives Include sein, d.h. eine Datei includiert
> sich selbst oder 2 sich wechselseitig.

Was normalerweise halt durch Include-Guards verhindert werden würde, 
denn die brechen die Rekursion von Zirkelbezügen auf.

Es sei denn, man hat sie vergessen, dann können sie das natürlich nicht 
leisten...

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.