Les appareils basés sur Arduino et tout autre microcontrôleur utilisent la mémoire pour stocker des données. La mémoire est une partie essentielle de tout système informatique, surtout en ce qui concerne les systèmes intégrés et la conception. L'allocation de la mémoire Arduino de manière dynamique améliore l'efficacité des cartes Arduino. La mémoire peut stocker les entrées et les sorties provenant de capteurs et d'autres appareils attachés à Arduino. Ici, nous discuterons de la quantité de code qu'Arduino Uno peut stocker dans sa mémoire.
Attribution de la mémoire Arduino Uno
Les microcontrôleurs utilisés dans les cartes Arduino sont spécifiques aux applications système intégrées. Contrairement à un ordinateur conventionnel normalement utilisé dans nos maisons et nos bureaux, les microcontrôleurs ont des tâches bien définies pour ce qu'ils ont conçu pour. Les microcontrôleurs manquent de mémoire cache multicouche et de mémoire virtuelle basée sur le disque comme utilisée dans le processeur à domicile. Normalement. Pour obtenir une solution, nous devons d'abord comprendre le problème.
Les planches Arduino se composent principalement de trois types de mémoire.
SRAM est une mémoire volatile dont les données seront perdues une fois qu'Arduino sera éteint tandis que Flash et Eeprom ne sont pas volatils; Leurs informations persistent même si nous supprimons le pouvoir arduino.
Voici une brève comparaison de différentes cartes Arduino Boards Microcontrrollers Memory Awlocation:
Arduino | Processeur | Éclair | Sram | Eeprom |
Uno, uno Ethernet, pro mini, nano 3.0 | Atmega328 | 32KB | 2KB | 1KB |
Leonardo, micro | Atmega32u4 | 32KB | 2.5KB | 1KB |
Méga | Atmega256 | 256KB | 8KB | 4KB |
Combien de code Arduino uno peut tenir
Combien de code Arduino Uno peut stocker? La réponse à cette question est que tout dépend de la façon dont nous programmons Arduino Uno. Arduino Uno a trois types de mémoire comme discuté précédemment, si nous dépassons l'un d'eux, notre code ne compile pas. Arduino Uno a 32KB de Mémoire flash qui est suffisant pour écrire des milliers de lignes de code.
Normalement, en écrivant un code Arduino Sram est le souvenir le plus précieux sur les planches Arduino. Arduino Uno n'a que 2 Ko de SRAM, ce qui équivaut à 2048 octets. Ce n'est pas trop pour programmer Arduino Uno pour une interface utilisateur approfondie et des applications graphiques. Arduino est suffisamment puissant pour contrôler les moteurs, les capteurs et les conducteurs, mais pas assez pour gérer un robot humain en cours d'exécution.
Pour vérifier la quantité d'espace que l'esquisse Arduino utilise, exécutez un programme et recherchez l'utilisation de la mémoire dans le sortir fenêtre.
Par exemple, après avoir compilé un simple Clignotant LED programme, nous avons obtenu la sortie comme indiqué ci-dessous. Ici 2% de Éclair Une mémoire égale à 924 octets sur 32256 octets (32 Ko) est utilisée par le programme Blink écrit en Arduino IDE. Tandis que 9 octets de SRAM sur le total de 2048 octets (2KB) sont utilisés pour créer des variables utilisées dans le croquis LED de clignotement.
Lorsque nous compilons le programme Arduino, l'IDE dira quelle est la taille du problème. En utilisant certaines techniques d'optimisation, nous pouvons augmenter la capacité de rétention du programme Arduino. L'image ci-dessous montre un exemple de mémoire SRAM et Flash qui dépasse les limites de données du microcontrôleur.
Comment optimiser la mémoire Arduino
Notez qu'il n'y a pas beaucoup de mémoire Arduino Uno disponible, comme SRAM, c'est seulement 2KB. Il peut facilement être utilisé en utilisant des chaînes inutiles dans un croquis. Par exemple:
Message de char [] = "Linuxhint.com ";
De telles déclarations peuvent manger beaucoup de sram. Ici «Linuxhint.com » Mette 14 octets dans SRAM chacun de ces charmes prend 1 octet, plus 1 pour le terminateur '\ 0'.
Comment optimiser le code Arduino pour une meilleure utilisation de la mémoire
L'optimisation du code Arduino est essentielle pour les projets complexes, donc voici quelques façons d'optimiser le croquis Arduino.
Supprimer le code mort
Si le code Arduino appelle plusieurs bibliothèques, alors il pourrait y avoir une chance qu'une partie du code ne soit pas utilisée. Supprimer toutes les bibliothèques, fonctions et variables inutilisées. Si on n'est pas sûr d'eux, commentez-le. Si le programme compile et fonctionne bien, cette partie du code n'est pas utilisée par Arduino.
Les bibliothèques consomment beaucoup de SRAM, comme l'utilisation d'une bibliothèque SD-Card peut prendre jusqu'à 1 Ko de SRAM. Évitez l'utilisation inutile de la bibliothèque lors de l'écriture de croquis.
Stocker la chaîne constante en mémoire flash
Les cordes statiques peuvent être l'une des principales causes de déchets de mémoire Arduino. Par exemple:
En série.println ("Linuxhint.com ");
Des chaînes statiques comme celles-ci sont automatiquement copiées dans SRAM à partir de la mémoire flash. Pour éviter cela, utilisez F () macro fonction. Cela empêchera SRAM de l'appeler directement et enregistre la mémoire. La fonction f () peut être appliquée comme suit:
En série.println (f ("Linuxhint.com "));
En utilisant la macro f () dans la chaîne ci-dessus, nous avons enregistré 14 octets de SRAM.
Type de données correct
Lors de l'utilisation de grands tableaux et tables de recherche, utilisez le type de données en fonction du besoin. Utilisez le plus petit type de données qui peut ajuster facilement les données. Par exemple, int prendra deux octets pendant que octet ne prendra qu'un seul. De même, évitez d'utiliser le flotteur lorsque vous avez un numéro entier essayez d'utiliser INT. Cela économisera des octets supplémentaires dans Arduino Sketch qui donnera un espace supplémentaire global pour écrire des croquis. Différents types de types de données et de mémoire qu'ils occupent à Arduino sont présentés dans le tableau suivant:
Type de données | Taille (octets) | Gamme de valeurs |
Annuler | 0 | nul |
bool / booléen | 1 | Vrai faux |
Carboniser | 1 | -128 à +127 |
Char non signé | 1 | 0 à 255 |
Octet | 1 | 0 à 255 |
Int | 2 | -32 768 à 32 767 |
insigned int | 2 | 0 à 65 535 |
Mot | 2 | 0 à 65 535 |
Long | 4 | -2 147 483 648 à 2 147 483 647 |
non signé | 4 | 0 à 4 294 967 295 |
Flotter | 4 | -3.4028235e + 38 à 3.4028235E + 38 |
Double | 4 | 3.4028235e + 38 à 3.4028235E + 38 |
Chaîne | - | Tableau de caractère |
Conclusion
Dans ce guide, nous avons couvert la quantité de code qu'Arduino Uno peut tenir, nous avons en outre discuté de différents paramètres qui conduisent à de faibles problèmes de mémoire. L'allocation de mémoire dynamique à l'aide des fonctions Arduino peut être très utile dans la construction de projets. En utilisant des techniques mentionnées, on peut optimiser l'utilisation de la mémoire Arduino.