Otros Microcontroladores / Dispositivos programables => Microcontroladores ARM => Mensaje iniciado por: Leo1331 en 19 de Julio de 2009, 15:12:17
Título: Memoria RAM en CodeWarrior
Publicado por: Leo1331 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
Título: Re: Memoria RAM en CodeWarrior
Publicado por: RICHI777 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
#pragma DATA_SEG _DATA_ZEROPAGE
int Pepe;
#pragma DATA_SEG DEFAULT
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
RAM = READ_WRITE 0x0080 TO 0x017F;
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 !
Título: Re: Memoria RAM en CodeWarrior
Publicado por: Leo1331 en 19 de Julio de 2009, 23:40:36