AVR Studio mehrere Dateien einbinden

Gast #105325
Hallo

Ich habe einen AVR 8535 und Versuche im AVR Studio 4, zusätzlich zu
meinem Hauptprogramm eine ASM Datei mit Unterroutinen einzubinden.
z.B. so :

.include "8535def.inc"
.include "BCD.asm"

Das klappt auch und die Datei lässt sich ohne Fehlermeldungen
Compilieren. Wenn ich aber jetzt mein Programm Simulieren will startet
das Programm nicht mehr in meinem Hauptprogramm sondern fängt mit der
ersten Unterroutine in der eingebundenen Datei an.Also nicht wie im
Hauptprogramm vorgegeben mit der Initialisierung. Hier mal ein
Ausschnitt aus dem Hauptprogramm:

.include "8535def.inc"
.include "BCD.asm"

.def temp =   r16
.def rBin1H = r17
.def rBin1L = r18
.def rBin2H = r19
.def rBin2L = r20
.def rmp    = r21

.cseg
rjmp  Initial  ; nach RESET zum Hauptprogramm
                   .
                   .
Was mache ich falsch, kann mir da jemand weiterhelfen???
Gast #105327
Danke genau das war der Fehler.Habe jetzt die include Anweisung nach
meinen Int.Vektoren eingefügt und alles läuft.

Also kann ich das include so verstehen als ob ich den gesamten Code der
Datei einfach an diese Stelle reinkopiert hätte.
Na ja wie der Name ja eigentlich auch sagt.
Gast #105329
Es ist aus meiner Sicht empfehlenswert, am Anfang des "Hauptprogramms"
noch ein .org $0000 einzufügen, denn der Reset- und die
Interruptvektoren beginnen normalerweise immer dort.

.cseg
.org $0000
rjmp  Initial  ; nach RESET zum Hauptprogramm

Und dann hätte der Assmebler auch beim obigen Problem (Code-Include vor
dem Startvektor) zumindest eine Warnung ausgegeben.

Gruß
Ingo
Gast #105330
Danke für den Hinweis
AVR Studio hat mir sogar 20 gleiche Fehlermeldungen ausgegeben:

D:\Dokumente\Atmel\ADC\ADC.asm(14) : error : Overlap detected in
.cseg

die Meldung hätte mir zwar auch nichts gesagt, ich bin auch noch
blutiger Anfänger.
Man lernt nie aus und auf Fehlern wird man klug.

In dem Sinne

mfG
     Peter

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 22 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.