Autor Tema: Consulta Memoria RAM y ROM  (Leído 1879 veces)

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

Desconectado gastonv_90

  • PIC10
  • *
  • Mensajes: 9
Consulta Memoria RAM y ROM
« en: 14 de Diciembre de 2017, 08:42:56 »
Buenos días,

Me encuentro realizando un proyecto con un PIC 18F4520 y estoy utilizando el compilador CCS. Actualmente el programa ocupa un 70 porciento de memoria ROM y un 15 porciento de RAM. Me interesaría ahondar un poco en el tema memorias para ver si puedo reducir los datos en ROM y ocupar mas la RAM. Tienen alguna recomendación de programación para llevar a cabo esto ? o alguna bibliografía que trate el tema sobre microcontroladores ?

Desde ya gracias y saludos,

Gastón

Desconectado colotron

  • PIC12
  • **
  • Mensajes: 73
    • Canal de YouTube
Re:Consulta Memoria RAM y ROM
« Respuesta #1 en: 14 de Diciembre de 2017, 10:35:33 »
Buenas.
"Pasar" de memoria ROM (flash) a memoria RAM no es posible porque todo lo que está en la RAM más tarde o temprano sale de la memoria ROM.

Es decir, si tenemos:
unsigned int variable = 5;
el valor 5 está almacenado en memoria flash, por más que sea una variable en RAM, porque el 5 tiene que quedar guardado en algún lado al sacarle energía a la placa y la memoria RAM pierde los contenidos, mientras que la ROM/flash no.

Lo que queda para ahorrar memoria ROM es tratar de eliminar código inútil, usar las optimizaciones del compilador. Desconozco las opciones específicas para CSS pero en compiladores derivados de gcc se usa -O2, -O3, -Os. También el par -ffunction-sections (compilador)+ --gc-sections (enlazador/linker) para eliminar automáticamente funciones no utilizadas por nuestro código.

Vas a tener que buscar que opciones de tu compilador son aplicables o equivalentes.

Desconectado gastonv_90

  • PIC10
  • *
  • Mensajes: 9
Re:Consulta Memoria RAM y ROM
« Respuesta #2 en: 15 de Diciembre de 2017, 10:57:49 »
Gracias por tu respuesta Colotron,

Creo que no me va a quedar otra que buscar todas las optimizaciones de código posibles.

Saludos