Go Down

Topic: Como grabar datos en memoria (Read 2188 times) previous topic - next topic

Igor R

#15
Nov 22, 2011, 10:39 pm Last Edit: Nov 23, 2011, 12:18 am by Igor R Reason: 1
Pongo un link interesante que me ha pasado Chiva. A ver si a Razorblade le queda claro de lo que estamos hablando...

Aquí hay otro lectura interesante...

Y por último, Algorithms and Data Structures for Flash Memories
La introducción resume bien mis dudas:
"Flash memory is a type of electrically erasable programmable read-only memory (eeprom). Be-
cause flash memories are nonvolatile and relatively dense, they are now used to store files and
other persistent objects in handheld computers, mobile phones, digital cameras, portable music
players, and many other computer systems in which magnetic disks are inappropriate. Flash, like
earlier eeprom devices, suffers from two limitations. First, bits can only be cleared by erasing a
large block of memory. Second, each block can only sustain a limited number of erasures, after
which it can no longer reliably store data. Due to these limitations, sophisticated data structures
and algorithms are required to effectively use flash memories. These algorithms and data struc-
tures support efficient not-in-place updates of data, reduce the number of erasures, and level the
wear of the blocks in the device.
"







Razorblade

#16
Nov 23, 2011, 04:01 pm Last Edit: Nov 23, 2011, 05:11 pm by Razorblade Reason: 1
Igual me expreso mal yo, porque el texto que has citado en rojo habla de que los dispositivos de almacenamiento cascan antes o después o no son capaces de preservar los datos.
Quote from: Razorblade
Si estás copiando/transfiriendo datos en el espacio o en el tiempo (de una memoria a otra, o preservarlos en la misma memoria), los mecanismos checksum permiten comprobar que se han copiado bien.

En negrita se ve mejor.

También has puesto un documento (el segundo) que habla de cuando programas por ejemplo la BIOS del ordenador y se va la luz. O en un caso más cercano, del bootloader de Arduino, que da igual que el programa que le metas a Arduino no sirva para nada y se quede pillado, gracias al bootloader siempre vas a poder reprogramarlo sin necesidad de un programador ICSP.
Estamos en las mismas, es una transferencia de información de un sitio a otro: CRC, byte de posición. Y el tema bootloader, en ningún mensaje vuestro me pareció leer nada parecido.

Y los otros documentos tratan sobre formatos lógicos y sistemas de ficheros para memorias Flash (sectores, etc..), para cuando tienes que borrar datos que están entre otros datos, sustituirlos..., y dijiste que no era de lo que hablabas.



Al final dices que chiva sí que lo ha entendido con su último mensaje, y simplemente era tener una estructura de tamaño FIJO y DELIMITADA con un byte CONOCIDO y que exclusivamente es delimitador (me da igual principio que final); un puñetero byte conocido que te indique cuándo empieza o termina una estructura.
Pero de acuerdo, ya veo tu pregunta, ¿cómo hacerlo sin usar delimitadores que ocupen memoria? Creo que nadie te ha respondido a eso o entendido la pregunta bien porque es evidente, la magia no existe. Lo llamas "usar memoria a lo tonto", siendo que creo que tiene una finalidad bien clara. ¡Encima también te gustaría que se pudiera saber qué datos sobran o están mal!

Más que paja mental... esto es un sueño. :P
Arduino Uno (R2fix) / Duemilanove (328p)
Ethernet Shield SD (v5)

Go Up