Forum: Mikrocontroller und Digitale Elektronik .include atmel studio geht nicht


von M. Н. (Gast)


Lesenswert?

Hallo Leute.

Ich versuche bereits seit 2 Tagen ein Assemblerprogramm zu schreiben.

Ich binde am Ende meines Main-files mit .include eine Datei ein.

Beim builden kommt dann die Fehlermeldung: "Undefinded symbol: tft_init"

wenn ich jedoch an die Stelle, wo jetzt .include "tftlib.asm" steht, den 
Inhalt von "tftlib.asm" setze, dann  lässt sich das Programm builden.

Ps. Das symbol tft_init ist in der tftlib.asm drin.

von Spess53 (Gast)


Lesenswert?

Hi

In welchem Verzeichnis steht die tftlib.asm?

MfG Spess

von M. Н. (Gast)


Lesenswert?

Ich habe das Programm jetzt folgendermaßen verändert:
1
.cseg
2
.org 0
3
rjmp start
4
.include "tftlib.asm"
5
start:
6
;Rest des Programms.

Jetzt funktioniert es. Ich vermute, dass der Assembler das Programm 
durchmacht, beim ersten fehler stoppt, und gar nicht soweit kommt das 
Ding einzubinden.

Wie kann ich das lösen?

Ps.: Jetzt wo das geklappt hat, ist die Datei tftlib.asm im 
Projektexplorer (rechts das Fenster) in den Unterordner Dependencies 
gerutscht. Jetzt kann ich das include wieder ans ende Stellen und es 
buildet richtig. Ist das ein Fehler in Atmel Studio?
Wie kann man ihn beheben.

von Frank Schlimmer (Gast)


Lesenswert?

Vielleicht solltest du Fehler lösen, anstatt über Folgefehlern zu 
meditieren, die ohne den Erstfehler gar nicht existieren?

von Hannes L. (hannes)


Lesenswert?

M. H. schrieb:
> Jetzt funktioniert es.

Nein, das sieht nur so aus, vielleicht weil Du keine Interrupts hast, 
denn der Bereich ist für Interrupt-Sprünge reserviert.

Setze die Includes hinter die Interrupt-Sprungtabelle und vor die 
Initialisierung (also vor sämtliche andere Routinen), dann funktioniert 
es auch.

...

von M. Н. (Gast)


Lesenswert?

Ja ich weiss. Ich meinte eher mit "jetzt funktionierts" Folgendes:

Ich habe das Projekt einmal mit obigem Code gebuildet. Rechts in Atmel 
Studio sieht man ja die Dateien in so einem Explorer. Da ist auch ein 
Ordner "Dependencies" drin. Da werden alle Dateien drin angezeigt, die 
mit .include eingebunden werden. Nach dem einmaligen builden mit dem 
obigen Code ist die include Datei in diesen Ordner gerutscht.

Als ich dann das Programm wieder so verändert habe, dass das Include 
ganz am Ende meines codes steht, hat es dann auf einmal geklappt, obwohl 
es davor mit dieser Struktur Fehler gab.

Kennt jemand das Problem, dass .include Befehle am Ende des Codes nicht 
registriert werden?

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.