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.
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.
Vielleicht solltest du Fehler lösen, anstatt über Folgefehlern zu meditieren, die ohne den Erstfehler gar nicht existieren?
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. ...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.