Archiv verlassen und diese Seite im Standarddesign anzeigen : ObjectLinker-Fehler bei Projekt aus 2 .asm-Files
Schrotti75
03.10.2004, 09:12
Hallo,
habe folgendes Problem:
Mein Projekt besteht aus einem Hauptprogramm und einem weiteren Programm, in dem z.B. Zeitschleifen programmiert sind, welche vom Hauptprogramm benutzt werden. Dabei werden allerdings keine Werte übergebn, sondern es wird lediglich an bestimmte Stellen im jeweiligen Code des Unterprogramms gesprungen.
Beim Erstellen des .hex-Files funktioniert die Assemblierung auch problemlos, lediglich wird ein Linker-Fehler gemeldet.
Vielleicht hat jemand eine gute Idee, was ich hier tun muß, um die beiden .asm-Files zusammenzubekommen? Die Hilfe von Microchip hat mich bislang jedenfalls noch nicht auf eine zündende Idee gebracht.
Bin für jeden guten Tip dankbar,
Gruß
Schrotti75
Mal so ne dumme Frage. Müssen deine "Unterprogramme" unbedingt in einer anderen *.asm sein?
Wenn es unbedingt sein muss, dann würde ich die einzufügende Datei per "#include<>" Anweisung einbinden, aber am Besten erst ganz am Schluß deines Codes hinschreiben.
Und wenn du das schon gemacht hast, und trotzdem der Linker-Fehler kommt, dann würde ich mal probieren die Unterprogramm *.asm in *.h umzubenennen.
Das verwenden mehrerer asm dateien für ein großes Projekt ist allein für die Übersichtlichkeit und Struktur nicht wegzudenken! Ich habe auch mehrere, allein die Funktionen für mein Display stehen in einer extra datei.
ansonsten: einfach #include "*.asm" an die Stelle wo die Funktionen stehen sollen, funktioniert 1A
aber bei sourcefiles nur die main eintragen, sonst meckert er!
Hallo Schrotti75!
Du kannst am einfachsten das zweite Programm am Ende des ersten einbinden:
include "*.asm"
end
Damit es keine Konflikte beim Assemblierung mit MPASM gibt, darf in dem zweiten Programm keine "org" Direktiven geben, die mit dem ersten kolidieren. Wenn es überhaupt keine gibt, dann wird das zweite Programm im Programmspeicher einfach ab Ende des erstens sein.
MfG
ich hab das immer so:
include "PortREG.inc"
wichtig ist auch das die letzte zeile der *.inc ne lehrzeile ist
Hallo Schrotti75!
Du kannst am einfachsten das zweite Programm am Ende des ersten einbinden:
include "*.asm"
end
Damit es keine Konflikte beim Assemblierung mit MPASM gibt, darf in dem zweiten Programm keine "org" Direktiven geben, die mit dem ersten kolidieren. Wenn es überhaupt keine gibt, dann wird das zweite Programm im Programmspeicher einfach ab Ende des erstens sein.
MfG
warum schreibst du genau das gleiche wie ich? ich wollte nur mal eine Lösung hier reinschreiben. schrotti75 hat das Problem sicher schon gelöst, schau mal aufs datum!
Hallo T.J.!
Sorry, aber es ist, meine Meinung nach, nicht das gleiche!
In Deinem Beitrag steht "Verfasst am: Gestern um 22:20"!
MfG
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.