Autor Tema: mplink error con codigo relocatable.  (Leído 2724 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado sota_de_bastos

  • PIC10
  • *
  • Mensajes: 23
mplink error con codigo relocatable.
« en: 17 de Octubre de 2007, 14:39:14 »
hola que tal,


este programa me da el siguiente error:

LIST P=16F873a
#include "p16f873a.inc"
   

bank1   udata
auxH res 1   
auxL res 1
auxLBank2 res 1     
auxPR2 res 1

Startup   code
   pagesel   Main
   goto   Main
   nop
   nop

code

Main

...




Error - section 'bank1' can not fit the section. Section 'bank1' length=0x00000004
Errors    : 1


pues este error es el que me dá, y despues de mucho tratar de averiguarlo en el foro de microchip al final he desistido que con el inglés que tengo ya no sabía muy bien de qué se estaba hablando.

en fin, el problema está según decían por allí en el linker script, no sé por qué rollo de que este pic no tiene las regiones esas definidas.  Y si elimino la seccion bank1 compila sin problemas. No le veo la solucion ya que normalmente este programa lo hago así en todos los micros pero a este parece que no le entra,

gracias por vuestra ayuda     :mrgreen:

Desconectado sota_de_bastos

  • PIC10
  • *
  • Mensajes: 23
Re: mplink error con codigo relocatable.
« Respuesta #1 en: 23 de Octubre de 2007, 05:30:41 »
pues ya está solucionado el error, ya me respondieron en el foro de microchip, y además me parece que ha sido maunix, si no me equivoco (un saludo).

ahora el problema es que no me funciona el codigo, no veo donde puede estar el fallo, la verdad es que da la impresion que no entre en el main ya que lo que tiene que hacer es tan sólo encender el led conectado a RB1.

he aquí el programa:

LIST P=16F873a
#include "p16f873a.inc"
   
;gpr0   udata_shr

Startup   code
   pagesel   Main
   goto   Main
   nop
   nop
code

Main
loop
banksel TRISB 
movlw 0x00
movwf TRISB
banksel PORTB
bsf PORTB,1


pagesel loop
goto loop

end


un saludo

Desconectado sota_de_bastos

  • PIC10
  • *
  • Mensajes: 23
Re: mplink error con codigo relocatable.
« Respuesta #2 en: 24 de Octubre de 2007, 03:54:59 »
es el típico programa de prueba para encender un led simplemente y no funciona. Me da la sensacion de que no entra en el main, nole veo otro error. Esto mismo en un f84 ya estaría funcionando lo q pasa es q no se que le puede pasar a este micro y a su linker script, como no domino muy bien el tema del codigo relocalizable no consigo solucionarlo. De momento he conseguido (gracias a la ayuda del foro de microchip) que compile que ya es bastante, pero ahora falta que funcione


saludos  :P

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: mplink error con codigo relocatable.
« Respuesta #3 en: 24 de Octubre de 2007, 13:18:14 »
es el típico programa de prueba para encender un led simplemente y no funciona. Me da la sensacion de que no entra en el main, nole veo otro error. Esto mismo en un f84 ya estaría funcionando lo q pasa es q no se que le puede pasar a este micro y a su linker script, como no domino muy bien el tema del codigo relocalizable no consigo solucionarlo. De momento he conseguido (gracias a la ayuda del foro de microchip) que compile que ya es bastante, pero ahora falta que funcione


saludos  :P

Que linker file estás usando?  Es un problema recurrente el que tienes, tienes el link de la ayuda en el foro de microchip? me suena conocido  :mrgreen: :mrgreen:
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado sota_de_bastos

  • PIC10
  • *
  • Mensajes: 23
Re: mplink error con codigo relocatable.
« Respuesta #4 en: 25 de Octubre de 2007, 03:36:29 »
como que fuiste tú el que me respondiste je je (soy JL en mchip).

PUes aunque conseguí compilar todavía no funciona y como te decía, da la impresion de que no entra en el main,

este es el lkr: (te va a sonar repetido ya que es lo mismo que ya he posteado en mchip, pero la verdad no me aclaraba muy bien en inglés)

// Sample linker command file for 16F873
// $Id: 16f873a.lkr,v 1.4 2006/02/04 00:06:40 nairnj Exp $

LIBPATH  .

CODEPAGE   NAME=vectors  START=0x0      END=0x4      PROTECTED
CODEPAGE   NAME=page0    START=0x5      END=0x7FF
CODEPAGE   NAME=page1    START=0x800    END=0xFFF
CODEPAGE   NAME=.idlocs  START=0x2000   END=0x2003   PROTECTED
CODEPAGE   NAME=.config  START=0x2007   END=0x2007   PROTECTED
CODEPAGE   NAME=eedata   START=0x2100   END=0x217F   PROTECTED

DATABANK   NAME=sfr0     START=0x0      END=0x1F     PROTECTED
DATABANK   NAME=sfr1     START=0x80     END=0x9F     PROTECTED
DATABANK   NAME=sfr2     START=0x100    END=0x10F    PROTECTED
DATABANK   NAME=sfr3     START=0x180    END=0x18F    PROTECTED

SHAREBANK   NAME=gpr0     START=0x20     END=0x7F
SHAREBANK   NAME=gpr0     START=0x120    END=0x17F

SHAREBANK   NAME=gpr1     START=0xA0     END=0xFF
SHAREBANK   NAME=gpr1     START=0x1A0    END=0x1FF

SECTION    NAME=STARTUP  ROM=vectors    // Reset and interrupt vectors
SECTION    NAME=PROG1    ROM=page0      // ROM code space - page0
SECTION    NAME=PROG2    ROM=page1      // ROM code space - page1
SECTION    NAME=IDLOCS   ROM=.idlocs    // ID locations
SECTION    NAME=DEEPROM  ROM=eedata     // Data EEPROM



a ver si consigo hacerlo funcionar, la verdad es que este micro se resiste al codigo relocatable no sé por qué

1 saludo  maunix.

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: mplink error con codigo relocatable.
« Respuesta #5 en: 25 de Octubre de 2007, 08:28:47 »
Si, me sonaba conocido  :mrgreen: :mrgreen:, solo que en Microchip tengo otro nick.  El tema es que mi nick anterior y de siempre era el de microchip, al quererme registrar en el viejo miarroba... no me dejaba porque ya existía! asi que lo tuve que cambiar por el nick que usaba en los chats de linux y aquí quedé  :D :D

Si te fijas en el linker file no defines nada que se llame BANK1 , y en ese pic como te fijas, todo es 'shared' por ende debieras hacer algo así como reemplazar

BANK1 udata

por

gpr0 udata_shr


En relocatable mode uno por un lado define las variables y la zona que ocupará.  La zona uno 'la define' como le plazca (siempre que entre en el pic por supuesto, si no entra también se puede definir pero en la práctica no va a funcionar) pero esa zona debe estar definida en el linker file, sino salta el error porque te dice que no hay espacio suficiente. 

En tu código le estas diciendo que las variables las ubique en BANK1 pero para el linker la zona bank1 tiene 0 bytes de tamaño (porque no existe) y de allí el error.

- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado sota_de_bastos

  • PIC10
  • *
  • Mensajes: 23
Re: mplink error con codigo relocatable.
« Respuesta #6 en: 30 de Octubre de 2007, 04:28:37 »
sí, eso ya lo había solucionado gracias a lo que me respondiste en el foro de microchip. Ahora el problema es que compila pero no funciona, incluso sin definir la parte de "gpr0   udata_shr" no funciona. Y ya puedes ver que el programa lo que hace es tan sólo encender los led del portb. La verdad ya he pasado del codigo relocatable con este pic, pero todavía me ha quedado la espina clavada y voy a ver si lo hago funcionar, con vuestra ayuda  :mrgreen:

un saludo.   :)

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: mplink error con codigo relocatable.
« Respuesta #7 en: 31 de Octubre de 2007, 11:48:10 »
sí, eso ya lo había solucionado gracias a lo que me respondiste en el foro de microchip. Ahora el problema es que compila pero no funciona, incluso sin definir la parte de "gpr0   udata_shr" no funciona. Y ya puedes ver que el programa lo que hace es tan sólo encender los led del portb. La verdad ya he pasado del codigo relocatable con este pic, pero todavía me ha quedado la espina clavada y voy a ver si lo hago funcionar, con vuestra ayuda  :mrgreen:

un saludo.   :)

y en el simulador te funciona? pudieras tener mal configurado el clock en el pic u otra causa... revisa bien.

- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)


 

anything