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


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
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...

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]
  • [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.

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