-
        
+ Antworten
Ergebnis 1 bis 7 von 7

Thema: ObjectLinker-Fehler bei Projekt aus 2 .asm-Files

  1. #1

    ObjectLinker-Fehler bei Projekt aus 2 .asm-Files

    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

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    26.07.2004
    Beiträge
    15
    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.

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    26.03.2006
    Ort
    WOB
    Beiträge
    630
    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!
    Gruß Thomas \/

    Alles über AVR, PIC und CAN
    blog.cc-robotics.de

  4. #4
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    65
    Beiträge
    10.886
    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

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    30.09.2006
    Ort
    Hamburg
    Alter
    34
    Beiträge
    959
    ich hab das immer so:

    include "PortREG.inc"

    wichtig ist auch das die letzte zeile der *.inc ne lehrzeile ist
    Legastheniker on Bord !

    http://www.Grautier.com - Projektseite
    http://www.grautier.com/wiki/doku.php?id=bt-index - BT-BUS

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    26.03.2006
    Ort
    WOB
    Beiträge
    630
    Zitat Zitat von PICture
    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!
    Gruß Thomas \/

    Alles über AVR, PIC und CAN
    blog.cc-robotics.de

  7. #7
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    65
    Beiträge
    10.886
    Hallo T.J.!

    Sorry, aber es ist, meine Meinung nach, nicht das gleiche!

    In Deinem Beitrag steht "Verfasst am: Gestern um 22:20"!

    MfG

+ Antworten

Berechtigungen

  • Neue Themen erstellen: Ja
  • Themen beantworten: Ja
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •