mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR Studio mehrere Dateien einbinden


Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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???

Autor: ...HanneS... (Gast)
Datum:

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

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: ...HanneS... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So scheint es zu sein... (bin selbst noch relativer Anfänger)

Autor: Ingo Henze (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.