mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Speicherüberlappung DATA16_AN IAR MSP430


Autor: Ulf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich bin gerade dabei ein Projekt für den MSP430 auf IAR umzustellen.
Mein Projekt besteht sowohl aus .c als auch aus Assembler-Dateien.
Wenn der Linker einsetzt erhalte ich bei einem Rebuilt folgende
Fehlermeldung:

"Error[e78]: Absolute segment in module myassemblerfile ( 
myassemblerfile.r43 ) overlaps segment DATA16_AN"


Wenn ich jetzt "myassemblerfile.s43" mal separat kompiliere dann ist 
alles
o.k..
Aus der Fehlermeldung sehe ich nur, dass irgendwelche Speicherbereiche 
wohl
doppelt benutzt werden oder der Compiler denkt zumindest es sei so. In
"DATA16_AN" werden ja normalerweise nur Variablen für den RAM 
geschrieben, die nicht zu initialisieren sind (wenn ich da richtig 
liege). In der Datei
"myassemblerfile.s43" weise ich aber keinen Variablen Speicheradressen 
zu.

Gibt es irgendeine Möglichkeit zu sehen, welche Speicherbereiche 
eigentlich
doppelt belegt sind oder auf welche Segment/-e sich der Linker bezieht?


Mfg
Ulf

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im .map File sollten alle benutzten Speicherbereiche aufgelistet sein.
.map File im \Debug\List oder \Release\List Verzeichnis

Ausserdem: DATA16_AN beinhaltet jene Variablen, die zwar nicht 
intialisiert werden müssen, allerdings wurden diese Var's (z.B. mit 
#pragma location = ADR) an eine feste absolute Adresse gebunden!

Autor: Ulf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja richtig das mit der Zuweisung hatte ich vergessen zu erwähnen.

Ich hab aber noch nicht verstanden wo ich die .map files finden soll.
Im Verzeichnis Debug/List gibt es nur die .list Dateien. Dort kann ich 
aber nicht erkennen wo Speicherüberlappungen auftreten, jedenfalls nicht 
unter den Segementen.

Und als .map Datei sind mir nur die mikrocntrollerspezifischen .xcl 
Dateien bekannt, die im Systemverzeichnis abgelegt sind. Allerdings auch 
dort finde ich keine Angaben zu Überlappungen oder DATA16_AN????

Autor: Ulf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, ich hab jetzt rausgefunden, dass gem. Voreinstellung keine .map 
Dateien
genriert werden und man diese einstellen muss.
Ich muss jetzt noch sehen wo. In der Beschreibung steht unter dem "List 
Tab".
Das befindet sich ja in den Projektoptionen, aber da kann man nicht 
einstellen, dass .map Dateien generiert werden sollen.

Autor: Ulf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Weiss jemand vielleicht wo man die Einstellung in der IAR Embedded 
Workbench Version 4.7 findet?
Ich find es einfach nicht.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Project -> Options -> Linker -> List -> Generate Linker Listing -> 
Segment Map

Autor: Ulf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab's gefunden unter Project-Options-linker-List.
"Ja auch ein blindes Huhn findet mal einen Korn."

Autor: barry (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi, ich denke du muss noch in deinem CStartup File gucken, ob du die 
Relativen Segmente mit einen Sprung von 1 Byte oder 2 Byte deklariert 
hast.
z.B.: RSEG INTVEC(0) oder RSEG INTVEC(1).
Barry

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.