Autor Tema: Definir mas cadenas  (Leído 2122 veces)

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

Desconectado jorgejg

  • PIC12
  • **
  • Mensajes: 96
Definir mas cadenas
« en: 14 de Octubre de 2011, 13:46:12 »
En mi programa defino varias cadenas asi:

char Cad1[64]="";
char Cad2[64]="";
char Cad3[10]="";
char Cad4[32]="";
...

y necesito crear otras mas para almacenar otros datos en RAM pero me sale error cuando creo otra cadena y me parece que estoy excediendo del limite, parece que el limite es 256, hay alguna forma de ampliar la capacidad de memoria? estoy usando bootloader por USB y en mi programa tambien uso el USB en CDC o que opciones tengo para ampliar el sector de RAM libre para el usuario?

Conectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Definir mas cadenas
« Respuesta #1 en: 14 de Octubre de 2011, 14:05:05 »
Tendras que revisar que PIC estas usando y ver en su hoja de datos cuantos bytes de ram tiene disponibles, en caso que no quepa, usar otro Pic que si lo permita o sino una memoria externa, por puerto PSP (solo algunos de 40 pines lo tienen).
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado jorgejg

  • PIC12
  • **
  • Mensajes: 96
Re: Definir mas cadenas
« Respuesta #2 en: 14 de Octubre de 2011, 14:22:25 »
tengo el pic18f4550 y uso c18.

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Definir mas cadenas
« Respuesta #3 en: 14 de Octubre de 2011, 14:44:46 »
Revisa por aquí, en la parte de Variables/Secciones.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: Definir mas cadenas
« Respuesta #4 en: 14 de Octubre de 2011, 15:06:58 »
necesitas editar el archivo .lkr de tu pic, para no usar el original te recomiendo que lo copies al directorio de tu proyecto, y lo añadas a linker script (en el arbol del proyecto).

Luego debes modificar los DATABANK y eliminar varios para unirlos en uno, es decir, quitas el gp1, gp2 y haces un gp12 que empiece en la direccion de gp1 y acabe en la direccion final de gp2

Desconectado jorgejg

  • PIC12
  • **
  • Mensajes: 96
Re: Definir mas cadenas
« Respuesta #5 en: 25 de Octubre de 2011, 20:44:33 »
Gracias por el dato Merlinz me sirvió, lo resolvi asi:

Antes decia en el lkr:
DATABANK   NAME=gpr1       START=0x100          END=0x1FF
DATABANK   NAME=gpr2       START=0x200          END=0x2FF

Luego lo cambie asi:
DATABANK   NAME=gpr1       START=0x100          END=0x2FF

De esta forma ya tengo mas RAM disponible para usar.

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Definir mas cadenas
« Respuesta #6 en: 25 de Octubre de 2011, 21:28:40 »
No es que dispones de mas memoria RAM para usar, sino que, por la forma de empaquetar tus variables (cadenas) necesitas bloques más grandes.

Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado jorgejg

  • PIC12
  • **
  • Mensajes: 96
Re: Definir mas cadenas
« Respuesta #7 en: 25 de Octubre de 2011, 22:08:18 »
Exacto, eso quise decir en realidad, de hecho la memoria tiene una capacidad unica, solo es la disponibilidad de la misma la que la tenia limitada. Gracias por el aporte.


 

anything