Forum: Mikrocontroller und Digitale Elektronik Fehlermeldung bei MSP LINKER


von schicki (Gast)


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

von Andreas S. (andreas) (Admin) Benutzerseite


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.

von Bernhard T (Gast)


Lesenswert?

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

von schicki (Gast)


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

von Bernhard T (Gast)


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.

von schicki (Gast)


Lesenswert?

Das muß doch ein Einstellungsfehler beim Kickstart sein oder?

von nobody0 (Gast)


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.

von schicki (Gast)


Lesenswert?

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

von nobody0 (Gast)


Lesenswert?

Weil INTVEC zu gross gemeldet ist steht da wohl zuviel drinn.

von schicki (Gast)


Lesenswert?

Das Problem ist ich habe keinen Intvec gemeldet.

von nobody0 (Gast)


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).

von Bernhard T (Gast)


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).

von nobody0 (Gast)


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?

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.