Forum: Mikrocontroller und Digitale Elektronik AVR Assembler: Probleme mit include


von Mathias (Gast)


Lesenswert?

Hallo zusammen,

bin gerade dabei eine Lüftersteuerung zu programmieren.
Jetzt wollte ich Code, den ich evtl. für andere Projekte wiederverwenden 
will, in eine separate ASM-Datei in einem anderen Verzeichniss 
auslagern.

Dabei ist mir jetzt erstmal aufgefallen, dass es wohl nicht möglich ist 
relative Pfadangaben zu machen.
Ist das richtig?

Dann habe ich es mit einer absoluten Pfadangabe versucht, die Datei wird 
gefunden und assembliert. Leider bekomme ich jetzt folgende 
Fehlermeldungen:

error: Overlap in .cseg addr=0x00 conflicts with 0x0:0x2
error: Overlap in .cseg addr=0x01 conflicts with 0x0:0x2

Die erste Fehlerzeile bezieht sich auf folgende Codezeile:
.org 0x0000
  rjmp   init

Die zweite auf:
init:
  ldi   temp, LOW(RAMEND)
  out   SPL, temp
  ...
Also auf die Stackpointer Initialisierung.

Woran könnte das liegen?

Gruß

Mathias

von Klaus (Gast)


Lesenswert?

>Dabei ist mir jetzt erstmal aufgefallen, dass es wohl nicht möglich ist
>relative Pfadangaben zu machen.

zeig doch bitte mal Deine incl Zeilen.

von Johannes M. (johnny-m)


Lesenswert?

Vollständigen Code posten!

Ansonsten kann man nur vermuten, dass vor dem .org 0x0000 ein 
.include steht, durch das der zweite gezeigte Teil eingebunden werden 
soll. Und das geht grundsätzlich schief! Assembler-Dateien werden immer 
von oben nach unten abgearbeitet. Wenn da Code steht und dann plötzlich 
ein .org, das auf eine Adresse weist, die kleiner ist, als die aktuelle, 
dann knallt es eben.

von Michael U. (amiga)


Lesenswert?

Hallo,

[Glaskugelmode]

Du solltest daran denken, daß der Assembler die include-Files genau dort 
bearbeitet, wo Du sie einfügst.
Wenn Du Code vor dem Beginn des Programms (Reset-Vektor) einfügst, 
ünersetzt der Assembler den auch dort. Ab Adresse 0...

[/Glaskugelmode]

PS: Johannes war schneller bzw. das Forum lahmt extrem!

Gruß aus Berlin
Michael

von Mathias (Gast)


Lesenswert?

Sorry wegen dem fehlenden Code, aber ihr hattet recht, vielen Dank.
Es lag an .include vor .org!

Könnt ihr mir evtl. noch sagen ob es stimmt, dass keine relativen 
Pfadangaben möglich sind?

Vielen Dank

Mathias

von Klaus (Gast)


Lesenswert?

Hi Mathias,

>keine relativen
>Pfadangaben möglich sind?

nein die sind möglich!

von Mathias (Gast)


Lesenswert?

Ok, super, dann versuch ich es weiter.


Vielen Dank.

von Hannes Lux (Gast)


Lesenswert?

Es gibt aber einen include-Pfad. Den nutze ich auch nicht, ich kopiere 
mir die benötigten Includes in den Projektordner.

...

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.