mariohuizar wrote on Wednesday, June 02, 2010:
Hello all,
I am using the FreeRTOS on a MSP430FG439 and I want to use the Uart0 but because the Free RTOS on the file portext.s43 redefine the INTVEC I am having problems…
The FreeRTOS needs the timer0 to define the “tick” of the OS. And it defines it in assembler like this:
ASEG
ORG 0xFFE0 + TIMERA0_VECTOR
_vTickISR_: DC16 vTickISR
I was having the following error:
Error: Segment INTVEC (size: 0x14 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 “CODE:ffe0-ffeb,CODE:ffee-ffff”
Reserved ranges relevant to this placement:
ffe0-ffeb INTVEC
ffec-ffed Absolute code from TICK_ISR
ffee-ffff INTVEC
Now what I did was to redefine the INTVEC as a Common segment like this:
COMMON INTVEC(1) ; Interrupt vectors
ORG TIMERA0_VECTOR
_vTickISR_: DC16 vTickISR
But now the linker complains with:
Linking
Error: Undefined external “?cstart_init_copy” referred in port ( C:\Users\Mario\Documents\MasterArbeit\Lifebridge\Supervisor\Demo\msp430_IAR\Debug\Obj\
port.r43 )
Error: Undefined external “?cstart_init_zero” referred in tasks ( C:\Users\Mario\Documents\MasterArbeit\Lifebridge\Supervisor\Demo\msp430_IAR\Debug\Obj\
tasks.r43 )
Error while running Linker
Any ideas?
Thanks!
Mario Huizar