TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: josepunki en 08 de Mayo de 2007, 11:43:00

Título: Error MPLAB
Publicado por: josepunki en 08 de Mayo de 2007, 11:43:00
cuendo creo un proyecto (igual que en el manual) para el 16f871 con mplab 7.5 me da el siguiente error:

MPLINK 4.06, Linker
Copyright (c) 2006 Microchip Technology Inc.
Error - section 'INT_VECTOR' can not fit the absolute section. Section 'INT_VECTOR' start=0x00000004, length=0x00000010
Errors    : 1

por que es? como puedo solucionarlo?

una ayudita por favor, thanks
Título: Re: Error MPLAB
Publicado por: maunix en 08 de Mayo de 2007, 12:09:02
cuendo creo un proyecto (igual que en el manual) para el 16f871 con mplab 7.5 me da el siguiente error:

MPLINK 4.06, Linker
Copyright (c) 2006 Microchip Technology Inc.
Error - section 'INT_VECTOR' can not fit the absolute section. Section 'INT_VECTOR' start=0x00000004, length=0x00000010
Errors    : 1

por que es? como puedo solucionarlo?

una ayudita por favor, thanks

¿Estas usando el relocatable mode?

El error te está diciendo que tu sección de interrupción (INT_VECTOR) es muy pequeña para el código que le has puesto en ella.  Ampliala en el linker file y tu problema habrá desaparecido.

Título: Re: Error MPLAB
Publicado por: josepunki en 08 de Mayo de 2007, 12:26:49
gracias maunix, pero:

como se amplia la seccion en el linker file?? es que aun no me he topado con ningun problema asi y no se hacerlo.

por cierto yo no he modificado para nada el fichero asm que incluye mplab. el error ya estara como "predeterminado"

un saludo
Título: Re: Error MPLAB
Publicado por: maunix en 08 de Mayo de 2007, 12:30:32
gracias maunix, pero:

como se amplia la seccion en el linker file?? es que aun no me he topado con ningun problema asi y no se hacerlo.

por cierto yo no he modificado para nada el fichero asm que incluye mplab. el error ya estara como "predeterminado"

un saludo

Has incluido un archivo .lkr en tu proyecto?
Título: Re: Error MPLAB
Publicado por: josepunki en 08 de Mayo de 2007, 13:01:04
eso si que lo he hecho.

es el 16f871.lkr.

ahora supongo que tendre que modificarlo de alguna manera...

espero tu respuesta
Título: Re: Error MPLAB
Publicado por: maunix en 08 de Mayo de 2007, 15:12:12
eso si que lo he hecho.

es el 16f871.lkr.

ahora supongo que tendre que modificarlo de alguna manera...

espero tu respuesta

El default es así

CODEPAGE   NAME=vectors  START=0x0      END=0x4      PROTECTED
CODEPAGE   NAME=page0    START=0x5      END=0x7FF
CODEPAGE   NAME=.idlocs  START=0x2000   END=0x2003   PROTECTED


Ahora si me muestras cómo tienes definido el area de arranque de tu programa y qué has puesto en la sección del vector de interrupción te puedo indicar bien qué hacer



Título: Re: Error MPLAB
Publicado por: josepunki en 08 de Mayo de 2007, 16:29:30
pues yo tengo el mismo que tu. no lo he tocado y por eso me extraña que de error sin modificarlo para nada (ni el lkr ni el asm)

el programa aparece asi:

   list      p=16f871   ; list directive to define processor
   #include   <p16f871.inc>   ; processor specific variable definitions
   
   __CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _XT_OSC & _WRT_ENABLE_ON & _LVP_ON & _CPD_OFF
......
.......
.......
RESET_VECTOR   CODE   0x000      ; processor reset vector
   movlw   high  start      ; load upper byte of 'start' label
   movwf   PCLATH         ; initialize PCLATH
   goto   start         ; go to beginning of program


INT_VECTOR   CODE   0x004      ; interrupt vector location
   movwf   w_temp         ; save off current W register contents
   movf   STATUS,w      ; move status register into W register
   movwf   status_temp      ; save off contents of STATUS register
.....
.......
......
MAIN   CODE
start
    nop

y aun no hay definido ninguna interrucion


Título: Re: Error MPLAB
Publicado por: josepunki en 31 de Mayo de 2007, 08:51:59
he vuelto a retomar este punto y necesito continuar. alguien puede ayudarme?
Título: Re: Error MPLAB
Publicado por: maunix en 31 de Mayo de 2007, 09:06:24
Tu problema es que el linker file, por default, está hecho para la mier.... jejeje.

Fijate que la sección vectors comienza en 0x0000 y termina 0x0004 inclusive!!

Entonces, si tu comienzas un código en una sección que comienza en 0x04 el linker va a chillar porque tienes solo un word (de 0x0004 a 0x0004) para tu código que ocupa más bytes.

Solución, haz las primeas líneas del linker así


CODEPAGE   NAME=vectors  START=0x0      END=0x3      PROTECTED
CODEPAGE   NAME=page0    START=0x4      END=0x7FF
CODEPAGE   NAME=.idlocs  START=0x2000   END=0x2003   PROTECTED


Saludos
Título: Re: Error MPLAB
Publicado por: josepunki en 01 de Junio de 2007, 14:16:46
COOOORRECTO!

ya no tengo errores al compilar, muchas gracias maunix, ahora a ver si consigo hacer funcionar el programador para poder probar mi proyecto.

saludos
Título: Re: Error MPLAB
Publicado por: maunix en 01 de Junio de 2007, 14:41:21
COOOORRECTO!

ya no tengo errores al compilar, muchas gracias maunix, ahora a ver si consigo hacer funcionar el programador para poder probar mi proyecto.

saludos

Bueno, me alegro.  :mrgreen: