Différences entre versions de « Arduino Memoire Les Memoires »

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche
Ligne 1 : Ligne 1 :
 
{{Arduino-Memoire-NAV}}
 
{{Arduino-Memoire-NAV}}
 +
 +
== Anglais ou Français, faut-il choisir? ==
 +
Vous trouverez dans cet article des termes en français pour lesquels nous avons volontairement laissé l'équivalent anglais.
 +
 +
Cela peut paraître superflu. Cependant, si vous naviguez sur la toile à recherche d'information, vous vous rendrez vite compte que les personnes expérimentées utilisent souvent la terminologie anglaise.
 +
 +
L'anglais étant la langue maitresse des outils de développement, il est préférable de ne pas l'ignorer.
  
 
== Les types de mémoire ==
 
== Les types de mémoire ==
There are 3 types of memory in an Arduino:
+
Il y a 3 types de mémoires dans un Arduino:
  
    Flash or Program Memory
+
* Mémoire Flash (ou mémoire programme)
    SRAM
+
* SRAM
    EEPROM
+
* EEPROM
  
== Flash Memory ==
+
== Mémoire Flash ==
Flash memory is used to store your program image and any initialized data. You can execute program code from flash, but you can't modify data in flash memory from your executing code. To modify the data, it must first be copied into SRAM
+
La mémoire Flash est utilisée pour stocker l'image du programme et toutes les données initialisée. Vous pouvez exécuter le code du programme depuis la mémoire Flash, mais vous ne pouvez pas modifier les informations/données contenues dans la mémoire Flash depuis votre code en cours d'éxécution. Pour modifier une donnée, elle doit d'abord être copiée dans la SRAM.
  
Flash memory is the same technology used for thumb-drives and SD cards. It is non-volatile, so your program will still be there when the system is powered off.
+
La mémoire Flash est la même technologie que cette utilisée dans les lecteurs Flash (comme les clés USB) et les cartes SD. C'est de la mémoire non-volatile, votre programme reste dans cette mémoire lorsque le système est mis hors tension.
  
Flash memory has a finite lifetime of about 100,000 write cycles. So if you upload 10 programs a day, every day for the next 27 years, you might wear it out.
+
La mémoire Flash à une durée de vie limitée à environ 100,000 cycles d'écriture. Si vous téléversez/téléchargez 10 programmes par jours, chaque jour alors vous aurez atteint les 100,000 cycles au bout de 27 ans... et votre mémoire Flash sera usée.
  
 
== La SRAM ==
 
== La SRAM ==
SRAM or Static Random Access Memory, can be read and written from your executing program. SRAM memory is used for several purposes by a running program:
+
La mémoire SRAM ("Static Random Access Memory": mémoire statique à accès aléatoire) peut être lue et modifiée par le programme en cours d'exécution.  
 +
 
 +
La mémoire SRAM est manipulée par le programme en cours d’exécution pour différents usages:
  
    Static Data - This is a block of reserved space in SRAM for all the global and static variables from your program. For variables with initial values, the runtime system copies the initial value from Flash when the program starts.
+
* '''Données Statiques / Static Data''' - C'est un bloc d'espace mémoire réservé en SRam pour toutes les variables globales et statiques de votre programme. Pour toutes les variables disposant d'une valeur initiale, le système runtime copie la valeur initiale depuis la mémoire Flash.
    Heap - The heap is for dynamically allocated data items. The heap grows from the top of the static data area up as data items are allocated.
+
* '''Le Tas / Heap''' - La ''Heap'' est utilisée pour allouer des données dynamiquement. La ''heap'' grandit (pousse) au dessus de la mémoire statique au fur et à mesure des allocations successives.
    Stack - The stack is for local variables and for maintaining a record of interrupts and function calls. The stack grows from the top of memory down towards the heap. Every interrupt, function call and/or local variable allocation causes the stack to grow. Returning from an interrupt or function call will reclaim all stack space used by that interrupt or function.
+
* '''La Pile / Stack''' - La ''stack'' est utilisé pour les variables local ou pour maintenir un enregistrement des interruptions et appels de fonctions. La ''stack'' grandit (pousse) vers le bas depuis le haut de la mémoire. La ''Stack'' descend donc vers les ''Heap''. Chaque interruption, appel de fonction et/ou allocation de variable local provoque un empilement d'information sur la ''Stack'' (raison pour laquelle est porte le nom de pile). Lors du retour de fonction (ou d'interruption) tout l'espace utilisé par cette fonction (ou interruption) sur la pile est libéré.
  
{{ADFImage|Arduino-Memoire-20.jpg}}  
+
{{ADFImage|Arduino-Memoire-20.jpg|120px}}  
 +
<small>''Traduction par MCHobby</small>
  
Most memory problems occur when the stack and the heap collide. When this happens, one or both of these memory areas will be corrupted with unpredictable results. In some cases it will cause an immediate crash. In others, the effects of the corruption may not be noticed until much later.
+
La plupart des problèmes mémoires interviennent lorsque la ''Stack'' et la ''heap'' (Pile et Tas) rentrent en collision. Lorsque cela arrive, l'un de ces espace mémoire est corrompu provoquant ainsi des résultats imprévisibles. Dans certains cas, cela provoque parfois des crashs/plantage immédiat, dans d'autres cas, l'effet de la corruption de mémoire ne peut être détecté que bien plus tard.
  
 
== L'EEPROM ==
 
== L'EEPROM ==

Version du 28 août 2013 à 11:26


MCHobby investit du temps et de l'argent dans la réalisation de traduction et/ou documentation. C'est un travail long et fastidieux réalisé dans l'esprit Open-Source... donc gratuit et librement accessible.
SI vous aimez nos traductions et documentations ALORS aidez nous à en produire plus en achetant vos produits chez MCHobby.

Anglais ou Français, faut-il choisir?

Vous trouverez dans cet article des termes en français pour lesquels nous avons volontairement laissé l'équivalent anglais.

Cela peut paraître superflu. Cependant, si vous naviguez sur la toile à recherche d'information, vous vous rendrez vite compte que les personnes expérimentées utilisent souvent la terminologie anglaise.

L'anglais étant la langue maitresse des outils de développement, il est préférable de ne pas l'ignorer.

Les types de mémoire

Il y a 3 types de mémoires dans un Arduino:

  • Mémoire Flash (ou mémoire programme)
  • SRAM
  • EEPROM

Mémoire Flash

La mémoire Flash est utilisée pour stocker l'image du programme et toutes les données initialisée. Vous pouvez exécuter le code du programme depuis la mémoire Flash, mais vous ne pouvez pas modifier les informations/données contenues dans la mémoire Flash depuis votre code en cours d'éxécution. Pour modifier une donnée, elle doit d'abord être copiée dans la SRAM.

La mémoire Flash est la même technologie que cette utilisée dans les lecteurs Flash (comme les clés USB) et les cartes SD. C'est de la mémoire non-volatile, votre programme reste dans cette mémoire lorsque le système est mis hors tension.

La mémoire Flash à une durée de vie limitée à environ 100,000 cycles d'écriture. Si vous téléversez/téléchargez 10 programmes par jours, chaque jour alors vous aurez atteint les 100,000 cycles au bout de 27 ans... et votre mémoire Flash sera usée.

La SRAM

La mémoire SRAM ("Static Random Access Memory": mémoire statique à accès aléatoire) peut être lue et modifiée par le programme en cours d'exécution.

La mémoire SRAM est manipulée par le programme en cours d’exécution pour différents usages:

  • Données Statiques / Static Data - C'est un bloc d'espace mémoire réservé en SRam pour toutes les variables globales et statiques de votre programme. Pour toutes les variables disposant d'une valeur initiale, le système runtime copie la valeur initiale depuis la mémoire Flash.
  • Le Tas / Heap - La Heap est utilisée pour allouer des données dynamiquement. La heap grandit (pousse) au dessus de la mémoire statique au fur et à mesure des allocations successives.
  • La Pile / Stack - La stack est utilisé pour les variables local ou pour maintenir un enregistrement des interruptions et appels de fonctions. La stack grandit (pousse) vers le bas depuis le haut de la mémoire. La Stack descend donc vers les Heap. Chaque interruption, appel de fonction et/ou allocation de variable local provoque un empilement d'information sur la Stack (raison pour laquelle est porte le nom de pile). Lors du retour de fonction (ou d'interruption) tout l'espace utilisé par cette fonction (ou interruption) sur la pile est libéré.

Arduino-Memoire-20.jpg
Crédit: AdaFruit Industries www.adafruit.com Traduction par MCHobby

La plupart des problèmes mémoires interviennent lorsque la Stack et la heap (Pile et Tas) rentrent en collision. Lorsque cela arrive, l'un de ces espace mémoire est corrompu provoquant ainsi des résultats imprévisibles. Dans certains cas, cela provoque parfois des crashs/plantage immédiat, dans d'autres cas, l'effet de la corruption de mémoire ne peut être détecté que bien plus tard.

L'EEPROM

EEPROM is another form of non-volatile memory that can be read or written from your executing program. It can only be read byte-by-byte, so it can be a little awkward to use. It is also slower than SRAM and has a finite lifetime of about 100,000 write cycles (you can read it as many times as you want).

While it can't take the place of precious SRAM, there are times when it can be very useful!


Source: Memories of an Arduino. Crédit AdaFruit Industries.

Créé par Bill Earl pour AdaFruit Industries.

Traduit par Meurisse D. pour MCHobby.be

Traduit avec l'autorisation d'AdaFruit Industries - Translated with the permission from Adafruit Industries - www.adafruit.com

Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant : «  Traduction par MCHobby (www.MCHobby.be) - Vente de kit et composants » avec un lien vers la source (donc cette page) et ce quelque soit le média utilisé.

L'utilisation commercial de la traduction (texte) et/ou réalisation, même partielle, pourrait être soumis à redevance. Dans tous les cas de figures, vous devez également obtenir l'accord du(des) détenteur initial des droits. Celui de MC Hobby s'arrêtant au travail de traduction proprement dit.