flash

De ArduWiki
Revisión del 23:48 5 jul 2018 de Kike GL (Discusión | contribuciones) (Página creada con «== Descripción == Es la memoria de programa donde esta el bootloader y se almacenan los bocetos ya compilados. Se mantiene aun si apagamos nuestro Arduino. Usua...»)

(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Saltar a: navegación, buscar

Descripción

Es la memoria de programa donde esta el bootloader y se almacenan los bocetos ya compilados. Se mantiene aun si apagamos nuestro Arduino. Usualmente entre 1~4 Mb. Es el equivalente al disco duro de un computador. Se puede ejecutar un programa desde la memoria flash, pero no es posible modificar los datos, sino que es necesario copiar los datos en la SRAM para codificarlos. Esta memoria usa la misma tecnología que las memorias USB (pendrive), tarjetas SD y algunos discos de estado solido. Esta memoria tiene una vida útil de unos 100,000 ciclos de escritura, así que cargando 10 programas al día durante 30 años podrías dañar la memoria flash de tu Arduino.

Ademas desde la versión 1.0 del IDE de Arduino, se introdujo la macro F(). Esta sintaxis se usa para almacenar cadenas en la memoria flash en lugar de en la SRAM. No es necesario cargar ninguna librería para usar la macro F().

Nota: Recuerda que al incluir una librería, estas añadiendo pragramas y variables, lo que aumentará el uso de memoria flash y SRAM. Algunas librerías hacen un uso intensivo de la memoria flash y SRAM.


Advertencias

En el caso que el boceto ocupe más memoria flash, el IDE te avisa de que no puede cargarlo en Arduino. Cada vez que compilas un boceto el IDE de Arduino te informa de la memoria flash que ocupa el programa y la RAM ocupada por las variables globales y el espacio que queda para las variables locales. Como recomendación, si se supera el 70~75% de la SRAM con las variables globales es muy probable que Arduino se quede sin memoria SRAM para trabajar.

Ejemplo

Serial.println("Esta cadena se almacena en memoria SRAM");   //Usa 42 bytes de memoria SRAM
Serial.println(F("Esta cadena se almacenada en memoria flash"));

Vea también

Referencias