Forum: Mikrocontroller und Digitale Elektronik AVR Studio mehrere Dateien einbinden


von Peter (Gast)


Lesenswert?

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???

von ...HanneS... (Gast)


Lesenswert?

Den zweiten Include-Befehl nach deinem Programm einfügen, damit er nach
unten kommt und nicht deine Int-Vektoren überschreibt...???

von Peter (Gast)


Lesenswert?

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.

von ...HanneS... (Gast)


Lesenswert?

So scheint es zu sein... (bin selbst noch relativer Anfänger)

von Ingo Henze (Gast)


Lesenswert?

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

von Peter (Gast)


Lesenswert?

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

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.