Autor Tema: Memoria RAM en CodeWarrior  (Leído 2309 veces)

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

Desconectado Leo1331

  • PIC10
  • *
  • Mensajes: 11
Memoria RAM en CodeWarrior
« en: 19 de Julio de 2009, 15:12:17 »
Hola gente como andan??
Les hago la siguiente consulta, estoy programando el micro MC9S08SH4, usando C con CodeWarrior. Llegado un momento al compilar me tira un error indicando que no tengo mas memoria RAM disponible, pero me puse a ver y solo me esta usando 128 Byte de los 256, en el archivo PRM esta definido así:

   Z_RAM                    =  READ_WRITE   0x0080 TO 0x00FF;
    RAM                      =  READ_WRITE   0x0100 TO 0x017F;
    ROM                      =  READ_ONLY    0xF000 TO 0xFFAD;

Lo que he podido ver es que nadie me esta usando Z_RAM. Esto es así o yo estoy confundido?? En caso de que este libre como puedo hacer para poder utilizarla??

Desde ya muchas gracias
Saludos
Leo

Desconectado RICHI777

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1498
Re: Memoria RAM en CodeWarrior
« Respuesta #1 en: 19 de Julio de 2009, 20:15:38 »
Hola, de los 256 bytes de memoria que tiene el SH04, 128 los accede en forma directa o Zero Page y los otros 128 en forma extendida ( modo de direccionamiento ). Tenes estas posibles soluciones:
Podes forzar la alocacion de una variable para que este en Z_PAGE con este pragma:

Código: C
  1. #pragma DATA_SEG _DATA_ZEROPAGE
  2. int Pepe;
  3. #pragma DATA_SEG DEFAULT
  4. int Juan;

Pepe se alocara en el area correspondiente a zero page, 0x80-0xFF y Juan en el area 0x100-0x180.

La otra manera es directamente modificar el archivo linker de esta manera,
Código: Visual Basic
  1. RAM                      =  READ_WRITE   0x0080 TO 0x017F;
  2.     ROM                      =  READ_ONLY    0xF000 TO 0xFFAD;

En la segura manera, no necesitas ningun prgama pero el compilador no hara uso del direccionaminto directo. Espero te sirva


Saludos !

Desconectado Leo1331

  • PIC10
  • *
  • Mensajes: 11
Re: Memoria RAM en CodeWarrior
« Respuesta #2 en: 19 de Julio de 2009, 23:40:36 »
Muchas Gracias RICHI777, me sirvió mucho


 

anything