Memoria Flash, SRAM y EEPROM

Tipos de memorias en Arduino:

  • SRAM: Variables locales, datos parciales. Usualmente se trata como banco de registros (PIC), Memoria volátil. Donde el sketch crea y manipula las variables cuando se ejecuta. Es un recurso limitado y debemos supervisar su uso para evitar agotarlo.
  • EEPROM:  Se puede grabar desde el programa del microcontrolador. Usualmente, constantes de programa. Memoria no volátil para mantener datos después de un reset. Las EEPROMs tienen un número limitado de lecturas/escrituras, tener en cuenta a la hora de usarla.
  • Flash: Memoria de programa. Usualmente desde 1 Kb a 4 Mb (controladores de familias grandes). Donde se guarda el sketch.

Memoria en Arduino: http://arduino.cc/en/Tutorial/Memory

Un buen tutorial para aprender como funcionan las memorias de tu Arduino: https://learn.adafruit.com/memories-of-an-arduino/you-know-you-have-a-memory-problem-when-dot-dot-dot

MCU vs CPU en funcion de la arquitectura de la memoria: https://learn.adafruit.com/memories-of-an-arduino/arduino-memory-architecture

Como medir la memoria libre que tenemos en Arduino: https://learn.adafruit.com/memories-of-an-arduino/measuring-free-memory

Como saber cuando me he quedado sin memoria: https://learn.adafruit.com/memories-of-an-arduino

Como guardar variables en la memoria flash en lugar de en la SRAM, le decimos al compilador que ponga esta información en la memoria flash: http://playground.arduino.cc/Learning/Memory

Como optimizar la memoria: https://learn.adafruit.com/memories-of-an-arduino/optimizing-program-memory

A partir de la versión 1.6 del IDE al compilar un sketch nos da el tamaño que va a ocupar en la flash el proyecto y el espacio que va a ocupar en la SRAM las variables globales, es decir, la zona de static data.

Más información sobre el uso de memoria en lso microcontroladores AVR de Atmel, visitar lso siguientes enlaces: http://www.nongnu.org/avr-libc/user-manual/malloc.html y http://www.atmel.com/webdoc/AVRLibcReferenceManual/malloc.html

Anuncios