IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Embarqué Discussion :

SD : Durée de vie et gestion de l'écriture


Sujet :

Embarqué

  1. #1
    Membre chevronné Avatar de petitours
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Février 2003
    Messages
    1 935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 935
    Points : 2 013
    Points
    2 013
    Par défaut SD : Durée de vie et gestion de l'écriture
    Bonjour

    J'utilise des Arm cortex M3 et M4 (kinetis ou STM32) avec des cartes SD et la lib FatFS pour stocker des données dans des fichiers CSV avec l’écriture dans plusieurs fichiers toutes les secondes (voir quelquefois encore plus souvent genre 100ms déjà)
    J'ai déjà eu des décès de carte SD et je m'interroge sur ma technique pour écrire sur la SD et son influence sur la durée de vie.

    Aujourd'hui, à chaque écriture (disons toutes les secondes), je vais ouvrir tous les fichiers un par un (il peut y en avoir une trentaine) puis j'écris une ligne puis je valide mon écriture en fermant les fichiers.

    Est ce la bonne manière de procéder ? Comment moins solliciter la SD ?
    Je me demandais notamment s'il serait plus gentil pour la SD d'ouvrir tous les fichiers, écrire dedans sans les fermer et une fois de temps en temps (toutes les 1 ou 10 minutes ? ou sur coupure d'alimentation) fermer les fichiers. En gros est ce que écrire moins souvent sur la table d'allocation de la SD en fermant le fichier (ou en faisant un flush) l'userait moins ? Quelle autre solution ?


    PS : j'ai des cas avec low power (mais j'enregistre alors beaucoup beaucoup moins souvent) et des cas sans low power où la SD est beaucoup sollicitée ; tous ces cas sont gérés pareil aujourd'hui.

    Merci par avance pour vos conseils
    Il y a 10 sortes de personnes dans le monde : ceux qui comprennent le binaire et les autres

  2. #2
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 190
    Points : 11 573
    Points
    11 573
    Par défaut
    Salut,
    Je n'arrive pas à trouver de datasheet pour prouver ce que je dis mais dans l'industrie on évite ce genre de carte à cause des problèmes que tu rencontres. Les cycles intenses d'écriture viennent vite à bout de ce type de carte. La carte Raspberry par exemple est exposée à ce problème.

    Certaines mémoires comme les eMMC (c'est ce qui équipe les cartes BeagleBoard), et je crois avoir déjà vu des SD card, sont prévues en gamme industrielle pour supporter un plus grand nombre d'écriture.

    Tu écris toutes les 100ms dans ta mémoire flash ? Au bout d'un an elle va être cuite même si elle supporte 1 000 000 de cycle d'écriture/erase (et encore ça c'est pour les très bonnes mémoires pour une SD card on doit être largement plus bas) Quelle application peut bien t'obliger a écrire quasi en live, si je comprends bien, dans une SD card ?

    A+
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  3. #3
    Membre chevronné Avatar de petitours
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Février 2003
    Messages
    1 935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 935
    Points : 2 013
    Points
    2 013
    Par défaut
    Bonjour

    Merci pour la réponse.

    Ce sont des datalogger que je déploie en milieu naturel ou dans des bâtiments pour mesurer des choses très différentes (un débit de ruisseau à la tension d'alimentation EDF...) J'ai des pas de mesure souvent de l'ordre 30s mais tés régulièrement a la seconde voir moins quand je cherche à capturer une transitoire.

    La SD est effacée qu'une seule fois, en début de campagne et ensuite je la remplie, ligne par ligne dans 1 à 30 fichiers CSV (chaque fichier ne se replissant pas forcément à la même vitesse)

    L'avantage de la SD est dans certains cas de pouvoir être retirée pour récupérer les datas super vite. L'avantage est dans tous les cas la capacité importante, que je n'ai pas réussi à avoir avec des cartes mémoires Flash SPI par exemple, pourtant plus intéressantes pour moi pour le low power (une SD ça consomme un max)

    Les eMMC je suis un peu ennuyé par le coté BGA des boitiers mais aussi parce que je ne vois pas comment les contrôler, il n'y a pas de contrôles d'erreurs à gérer là dessus, comme c'est le cas sur les grosses mémoires flash parallèles ?
    Il y a 10 sortes de personnes dans le monde : ceux qui comprennent le binaire et les autres

  4. #4
    Membre chevronné Avatar de petitours
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Février 2003
    Messages
    1 935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 935
    Points : 2 013
    Points
    2 013
    Par défaut
    par rapport aux 1 000 000 de cycle d'écriture/erase, le fait d'effacer la mémoire en début de campagne puis de ne faire qu'écrire me semble consommer qu'un seul cycle d'effacement écriture.
    Partant de ce constat ma manière de faire ne devrait pas user les SD, sauf à ce que l’écriture dans la table d'allocation ne fasse des effacements dans celle ci. ???
    Il y a 10 sortes de personnes dans le monde : ceux qui comprennent le binaire et les autres

  5. #5
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2011
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 50
    Points : 194
    Points
    194
    Par défaut
    essaie d'utiliser la technique de la mémoire tampon :

    - tu te crées un tampon de 1000 lignes en mémoire vive pour stocker tes valeurs, puis lorsque le tampon est plein (ou lorsque le programme va se terminer si le tampon n'est pas plein) alors tu le vides sur ta carte mémoire sd flash, de cette manière la carte SD chauffera moins puisqu'elle sera sollicitée moins souvent, elle écrira toujours autant de données mais elle aura beaucoup plus de temps de repos entre deux opérations d'écriture,

    la même technique est utilisée par la plupart des programmes qui écrivent des choses sur le disque dur, ils vont attendre d'avoir suffisamment de données (2 Mo par exemple) avant d'écrire les données sur le disque dur

Discussions similaires

  1. Durée de vie d'une session
    Par dbass dans le forum Langage
    Réponses: 8
    Dernier message: 21/03/2006, 19h38
  2. [Cookies] durée de vie de l'objet
    Par ozzmax dans le forum Langage
    Réponses: 13
    Dernier message: 13/01/2006, 21h38
  3. [savoir] durée de vie d'un PC?
    Par afrikha dans le forum Composants
    Réponses: 20
    Dernier message: 24/10/2005, 13h28
  4. [AS2] durée de vie d'une classe (extends movieclip)
    Par ooyeah dans le forum ActionScript 1 & ActionScript 2
    Réponses: 4
    Dernier message: 23/07/2005, 13h33
  5. prob de durée de vie de IDvdGraphBuilder
    Par Chaksss dans le forum DirectX
    Réponses: 11
    Dernier message: 30/12/2004, 16h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo