www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik IAR: Error[e16]: Segment INTVEC


Autor: Tim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Habe im IAR Workbench für MSP einen einfachen Beispielcode von Ti 
eingefügt (http://focus.ti.com/docs/prod/folders/print/msp430f247.html) 
und von USCI0 auf USCI1 umgeändert.
Der code sieht jetzt wie folgt aus:
#include "msp430x24x.h"

void main(void)
{
  WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
  
  // set SCLK to calibrated 1 MHz DCO
  BCSCTL1                         =       CALBC1_1MHZ;
  DCOCTL                          =       CALDCO_1MHZ;
  
  // setup ACLK source and parameters, external crystal is 32.768 kHz
  //BCSCTL3                         =       LFXT1S_0 | XT2S_0 |      XCAP_1;
    
  if (BCSCTL1 == 0xFF)                      // Check flash erasure
    while(1);                               // If DCO constants invalid,trap CPU   
  P3SEL = 0x60;                             // P3.6,7 = USCI_1 TXD/RXD
  UCA1CTL1 |= UCSSEL_2;                     // SMCLK
  UCA1BR0 = 8;                              // 1MHz 115200
  UCA1BR1 = 0;                              // 1MHz 115200
  UCA1MCTL = UCBRS2 + UCBRS0;               // Modulation UCBRSx = 5
  UCA1CTL1 &= ~UCSWRST;                     // **Initialize USCI state machine**
  IE2 |= UCA1RXIE;                          // Enable USCI_A0 RX interrupt
  
  //  __bis_SR_register(LPM0_bits + GIE);       // Enter LPM0, interrupts enabled
}

// Echo back RXed character, confirm TX buffer is ready first
#pragma vector=USCIAB1RX_VECTOR
__interrupt void USCI1RX_ISR(void)
{
  while (!(IFG2&UCA1TXIFG));                // USCI_A0 TX buffer ready?
  UCA1TXBUF = UCA1RXBUF;                    // TX -> RXed character
}
Beim Compilieren erhalte ich vom Linker folgende Fehlermeldung
Error[e16]: Segment INTVEC (size: 0x24 align: 0x1) is too long for segment definition. At least 0x4 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  
"CODE:ffe0-ffff" 
   Reserved ranges relevant to this placement: 
   ffe0-ffff            INTVEC 

Kann mir jemand sagen, wo der Fehler liegt?

Danke für die Hilfe!

Gruß
Tim

Autor: Michael Leusink (hasimaus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Tim,

naja, die Antwort steht doch schon in der Fehlermeldung.
Der compilierte Code ist 0x24 Bytes lang, also 36 Bytes.
In der Definition für dieses Segment (INTVEC) sind jedoch nur
32 Bytes vorgesehen, also ist der Code 0x04 Bytes too long.

Code kürzen oder mehr Platz reservieren wäre mein Vorschlag.
Gruß

Autor: Pothead (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Manchmal hat IAR solche Anwandlungen. Kopiere das Linkerskript mal in 
deinen Programmordner und verweise IAR darauf (Options (Kontextmenü) -> 
Linker -> Config -> Linker Command File). Aber vorher solltest du 
kontrollieren, ob du auch den richtigen Controller eingestellt hast (... 
-> General Options -> Device).

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.