Modifications

Sauter à la navigation Sauter à la recherche
2 117 octets ajoutés ,  5 septembre 2013 à 10:13
aucun résumé de modification
Ligne 1 : Ligne 1 :  
{{Arduino-Memoire-NAV}}
 
{{Arduino-Memoire-NAV}}
   −
== Optimiser la mémoire du programme ==
+
== Introduction ==
When you compile your sketch, the IDE will tell you how big the program image is. If you have reached or exceeded the space available, some of these optimizations may help get you back under the limit.
+
{{bloc-etroit|text=Cette partie s'attarde sur l'optimisation du programme.
   −
This is not meant to be a definitive treatise on how to optimize your code - there are libraries full of books on the subject. What is presented here are just some simple tips to help harvest the low-hanging fruit.  
+
Lorsque vous compilez votre sketch/croquis, l'IDE d'Arduino vous informe sur la taille de votre programme (la taille de l'image). Si vous atteignez ou dépassez l'espace disponible alors quelque-unes de ses optimisations peuvent vous aider à redescendre sous la limite.
 +
 
 +
Cet article n'est pas un "traité" définitif des méthodes d'optimisation - il existe une très vaste littérature sur le sujets.
 +
 
 +
Ce qui est présenté, ce sont juste quelques astuces simples qui aide pour obtenir des premiers résultats facilement. }}
 +
 
 +
{{ADFImage|Arduino-Memoire-01.jpg|640px}}
 +
 
 +
== Enlever le code inutile ==
 +
Le "code mort" (appelé "Dead Code" en anglais) est une portion de codes compilée, téléversée/téléchargée en mémoire FLASH '''mais jamais utilisé''' par le programme!
 +
 
 +
Si votre projet est un condensé de plusieurs sources différentes alors il y a des chances pour qu'il y ait des tronçons de code qui ne sont pas utilisés (voir ci-dessous). Les éliminer permet de récupérer de l'espace de stockage.
 +
 
 +
* '''Libraires inutilisées''' - Est-ce que tous les #include de librairies sont vraiment nécessaire? Sont-elles vraiment utilisées?
 +
* '''Fonctions inutilisées''' - Toutes les fonctions sont-elles vraiment appelées?
 +
* '''Variables inutilisées''' - Toutes les variables sont-elles vraiment utilisées?
 +
* '''Codes non utilisés''' - (dit ''Unreachable Code'' en anglais) Y a t'il des test dont la condition ne sont jamais vraie? Auquel cas le code dans le "if ... " est inutile.
 +
 
 +
=== Truc & astuce ===
 +
Si vous n'êtes pas certain de l'utilité d'un #include, d'une fonction ou d'une variable alors mettez le en commentaire.
 +
 
 +
Si votre programme continue à compiler, c'est que le code n'était pas nécessaire.
 +
 
 +
== Consolider les codes répétitifs ==
 +
 
 +
Si vous avez une séquence d'instruction qui se répète plusieurs fois dans votre programme (même 2 fois) alors l'usage d'une fonction est tout à fait indiqué pour éviter la duplication du code.
 +
 
 +
== Eliminer le Bootloader ==
 +
Si l'espace encore nécessaire est vraiment petit, vous pouvez considérer l'élimination du BootLoader (le petit programme activé sur Arduino qui permet de télécharger les sketch/croquis Arduino depuis Arduino IDE).
 +
 
 +
En éliminant le bootloader, vous pouvez récupérer 2 ou 4 Kb de mémoire Flash (la taille dépend du bootloader utilisé sur la carte).
 +
 
 +
L'inconvénient de cette méthode, c'est que vous devrez utiliser un programmeur ISP à la place de votre câble USB.  
    
{{Arduino-Memoire-TRAILER}}
 
{{Arduino-Memoire-TRAILER}}
29 918

modifications

Menu de navigation