www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Fehlermeldung bei MSP LINKER


Autor: schicki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich versuche einen Assembler Code zu Linken aber er gibt mir immer eine 
blöde Fehlermeldung weiß jemand was das ist?

Error[e16]: Segment INTVEC (size: 0x20 align: 0x1) is too long for 
segment definition. At least 0x2 more bytes needed. The problem occurred 
while processing the segment placement command 
"-Z(CODE)INTVEC=FFE0-FFFF", where at the moment of placement the 
available memory ranges were "ffe0-fffd"
   Reserved ranges relevant to this placement:
   0000FFFE - 0000FFFF  Absolute code from fet140_1

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich kenne den Linker nicht, aber das hört sich so an als würde etwas mit 
den Interruptvektoren nicht stimmen. Um welches Programm geht's denn? 
Wahrscheinlich ist es für einen Prozessor geschrieben der mehr 
Interruptvektoren hat als der für den du es linken willst.

Autor: Bernhard T (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schiki,
wann tritt das Problem auf
GCC, IAR-C, IAR-asm oder mix ?
(ich unterstell einfach mal Kickstart)
Bernhard

Autor: schicki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe das IAR-Kickstart. Wenn ich die Interrupt vektoren 
auskoommentiere kommt eine fehlermeldung das ihm das main fehlt.
Das Programm ist eine Ansteuerung eines transceivers über I2C ich habe 
nur den Reset Interrupt drinnen.
MSP430f149

Reset ...
.
.
.
ORG 0FFFE
DB  Reset

Autor: Bernhard T (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Probier doch mal das: nimm ein Beispiel ASM-Projekt ( nicht Neues 
Projekt ..! ), schmeiß die Asm Files raus und binde deine Files dafür 
ein. Bei mir hat es funktionier ( Ich hab' vorher wirklich tausend 
Schalter ausprobiert > immer die gleiche Fehlermeldung ). Würde mich 
aber auch interessieren woran es liegt.

Autor: schicki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das muß doch ein Einstellungsfehler beim Kickstart sein oder?

Autor: nobody0 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Diese Fehlermeldung bekommt man wenn der Code zu gross ist; deshalb 
steht das "is too long".

Mit der Vollversion bekommt man den Fehler wenn der Code rund 180 kB 
überschreitet und bei der Kickstart-Version wesentlich früher.

Autor: schicki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das gibt es nicht da er diese Meldung schon bei 5 Zeilen Assembler 
ausgibt.

Autor: nobody0 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Weil INTVEC zu gross gemeldet ist steht da wohl zuviel drinn.

Autor: schicki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Problem ist ich habe keinen Intvec gemeldet.

Autor: nobody0 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich vermute mal das INTVEC das Segment mit den Interrupt-Vektoren ist 
und soweit ich weiss muss da immer etwas stehen (notfalls die Defaults 
vom Compiler).

Autor: Bernhard T (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Schicki,
könnte es vielleicht daran liegen:
ich glaube der Linker (XLINK) unterstellt immer das du in C 
programmierst daher bindet er auch bei Asm-Projekten die INVEC für C ein 
(default).Du kannst eine kleine Datei mit einem Editor schreiben,der die 
folgende Zeilen beinhalten sollte:

// Define CPU
-cMSP430
// Allocate the interupt vector table segment INTVEC.
-Z(CODE)INTVEC=FE0-FFFF

Das hinter den  // sind natürlich nur Kommentare.
Diese Datei solltest du mit der Endung .XCL  (Bsp.: Neu.xcl) 
idealerweise in dein Projektverzeichnis kopieren. Um diese File in dein 
Projekt zu Übernehmen musst du  im
Projektfenster: Debug markieren, (rechte Maustaste) Optionen, unter 
Category XLINK ,
Karteikasten Include, den Schalter file name override default setzen und 
deine XCL Datei
auswählen.

Wahrscheinlich könntest du auch die Standard  .XCL  entsprechen ändern 
wenn du ständig ASM programmieren willst.

@nobody0 du solltest auch mal einen Blick in die Projekt  *.XCL werfen 
und entsprechende
Doc's (bevor du die Software von deiner Firma verramschst).

Autor: nobody0 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Bernhard T:
Zum Projekt gibt es keine *.xcl; es gibt nur eine zum MC und dadrin 
steht doch der Z(CODE) für die Interrupt-Vektoren, die doch über die 
Projekt-Optionen automatisch verwendet werden (aus dem entsprechenden 
*.xcl-File).Und die Doc's sind veraltet; beispielsweise gibt es die dort 
beschriebenen Versionen für HP-UX, AIX usw. nicht mehr und das man 
regelmässig die Temporärdateien löschen muss um keine Compiler-Fehler zu 
bekommen steht auch nicht drin.
Und was meinst Du mit verramschen? Wieviel kann man denn für einen 
MSP430 IAR Embedded Workbench (mit Dongle, Updates, Handbüchern usw.) 
verlangen?

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.