Array de 512 bytes

Ir abajo

Array de 512 bytes

Mensaje por vasconinicolas el Lun 28 Mar 2011 - 2:30

Hola amigos, tengo un problema que me vuelve loco. Hace tiempo creo lo resolví pero para un pic 16f877.
Leyendo en la web encontro que cambiando el archivo linker, podía unir dos o más bancos de memoria para hacer un banco grande donde poner mi array.
Ahora estoy con el 18f4550 y por más que cambio el linker, me tira este error al compilar:

message: using default linker script "/usr/share/gputils/lkr/18f4550.lkr"
warning: relocation of section ".idata" failed, relocating to a shared memory location
error: linker script has no definition that matches the type of section ".idata"

Alguna idea al respecto?
Muchas gracias!
saludos
NV

vasconinicolas
Nuevo Usuario
Nuevo Usuario

Mensajes : 9
Fecha de inscripción : 30/01/2009

Volver arriba Ir abajo

Re: Array de 512 bytes

Mensaje por vasconinicolas el Lun 28 Mar 2011 - 19:17

Me autorespondo porque funcionó el tema. La cosa resultó así:
Los comandos que ejecuto para compilar y linkear son:

# compila:
sdcc -mpic16 -p18f4550 --debug --verbose -c main.c
# ensambla:
sdcc -mpic16 -p18f4550 --debug -Wl-s"18f4550.lkr" -omain.hex main.o --verbose

18f4550.lkr es una copia modificada del original linker ubicada en la misma carpeta donde tengo el proyecto.
Dicho archivo modificado quedo de la siguiente manera:

//----------------------------------------------------------------------------------------------------
// File: 18f4550.lkr
// Sample linker script for the PIC18F4550 processor

// Not intended for use with MPLAB C18. For C18 projects,
// use the linker scripts provided with that product.

LIBPATH .

CODEPAGE NAME=page START=0x0 END=0x7FFF
CODEPAGE NAME=idlocs START=0x200000 END=0x200007 PROTECTED
CODEPAGE NAME=config START=0x300000 END=0x30000D PROTECTED
CODEPAGE NAME=devid START=0x3FFFFE END=0x3FFFFF PROTECTED
CODEPAGE NAME=eedata START=0xF00000 END=0xF000FF PROTECTED

ACCESSBANK NAME=accessram START=0x0 END=0x5F
DATABANK NAME=gpr0 START=0x60 END=0xFF

DATABANK NAME=gpr1 START=0x100 END=0x1FF
DATABANK NAME=gpr2 START=0x200 END=0x2FF
DATABANK NAME=gpr3 START=0x300 END=0x3FF

DATABANK NAME=TABLAS START=0x400 END=0x7FF
// DATABANK NAME=usb4 START=0x400 END=0x4FF PROTECTED
// DATABANK NAME=usb5 START=0x500 END=0x5FF PROTECTED
// DATABANK NAME=usb6 START=0x600 END=0x6FF PROTECTED
// DATABANK NAME=usb7 START=0x700 END=0x7FF PROTECTED

ACCESSBANK NAME=accesssfr START=0xF60 END=0xFFF PROTECTED
//------------------------------------------------------------------------------------------------

Claro que no pretendo usar el puerto USB de este pic, por eso ocupo su memoria disponible. Esto me permite guardar las siguientes variables:

unsigned int seno[256];
unsigned int coseno[256];

Saludos para todos los pic-linuxeros!.
N

vasconinicolas
Nuevo Usuario
Nuevo Usuario

Mensajes : 9
Fecha de inscripción : 30/01/2009

Volver arriba Ir abajo

Re: Array de 512 bytes

Mensaje por maigke el Lun 11 Abr 2011 - 20:11

Oye esta muy bueno!. Saludos
avatar
maigke
Asiduo del Foro
Asiduo del Foro

Mensajes : 210
Fecha de inscripción : 12/04/2009
Edad : 40
Localización : Mexico

Volver arriba Ir abajo

Re: Array de 512 bytes

Mensaje por diguito69 el Mar 5 Jun 2012 - 9:25

Me viene muy bien esto, para un proyecto que estoy pensando creo que voy a necesitar un array de mas de 1000 char.

Gracias, saludos.

diguito69
Participante
Participante

Mensajes : 11
Fecha de inscripción : 04/07/2011
Edad : 32

Volver arriba Ir abajo

Re: Array de 512 bytes

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.