Systèmes embarqués et firmware
Pourquoi le micrologiciel d'un petit microcontrôleur évite-t-il souvent l'allocation dynamique de mémoire, comme malloc ?
- AParce que les fonctions C sont totalement inutilisables sur microcontrôleur
- BParce que la RAM est petite, que la fragmentation peut faire échouer l'allocation et que la durée d'allocation est difficile à prévoir
- CParce que la mémoire allouée dynamiquement persiste hors tension
Afficher la réponse et l'explication
Réponse : B. Parce que la RAM est petite, que la fragmentation peut faire échouer l'allocation et que la durée d'allocation est difficile à prévoir
Sur un microcontrôleur ne disposant que de quelques KB à quelques centaines de KB de RAM, des allocations et libérations répétées fragmentent l'espace libre, et une grande allocation peut échouer alors que le total disponible suffit. Pour un équipement fonctionnant des mois durant, le risque d'un échec à terme existe. De plus, la durée d'allocation n'étant pas constante, elle convient mal aux traitements temps réel. On privilégie donc une conception qui alloue statiquement dès le départ la mémoire nécessaire.
Continuer : 9 autres questions sur Systèmes embarqués et firmware