Ligne 1 : |
Ligne 1 : |
| {{Arduino-Memoire-NAV}} | | {{Arduino-Memoire-NAV}} |
| + | |
| + | == Introduction == |
| + | {{bloc-etroit|text=Cette partie s'attarde sur l'optimisation du programme. |
| + | |
| + | 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}} |