Auteur Sujet: Stocker des données en mémoire Flash !  (Lu 1748 fois)

Thierry

  • Global Moderator
  • Sr. Member
  • *****
  • Messages: 439
    • Voir le profil
Stocker des données en mémoire Flash !
« le: avril 12, 2016, 08:48:29 am »
En surfant sur le nouveau site http://create.arduino.cc , je suis tombé sur une bibliothèque qui pourrait rendre de grands services lorsque l'EEPROM est trop petite ou déjà hors service.
D'après le pitch https://github.com/cmaglie/FlashStorage serait capable d'écrire dans la zone programme, la mémoire flash ! D'après le source, une zone mémoire est réservée par le programme via une déclaration de variable, et ensuite le programme va lire et écrire dans cette zone. L'inconvénient est la perte des données lorsque le programme est à nouveau uploadé, mais sinon le principe est des plus intéressants, surtout pour les petites bêtes bien pourvues en mémoire flash, comme le Mega...

Jean-Luc

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1226
    • Voir le profil
Re : Stocker des données en mémoire Flash !
« Réponse #1 le: avril 15, 2016, 08:35:05 am »
D'après ce que je comprends, c'est seulement sur l'Arduino Zero, celui avec un SAM D21 (ARM)

De ce que j'avais lu sur les AVR, la flash est configurable en deux parties : la zone du bootloader, la zone de l'application. Un code s'exécutant depuis la zone du bootloader peut écrire en flash mais un code s'exécutant depuis la zone de l'application ne le peut pas. J'avais un peu regardé ça pour voir comment faire un bootloader permettant de flasher une application via le CAN.

C'est pages 277 et suivantes du manuel de référence. 

Notez que sur les AVR l'endurance de la flash est de 10000 écritures, 10 fois moins que l'EEPROM.
Sur le D21 la flash a une endurance de 100000 écritures et il n'y a pas d'EEPROM, une zone de la flasher émule une EEPROM.
« Modifié: avril 03, 2018, 09:28:01 am par Jean-Luc »