Systèmes embarqués et firmware
Lorsqu'on représente les registres d'un périphérique par une structure C à champs de bits, à quoi faut-il prendre garde ?
- ALes champs de bits rendent toujours le programme deux fois plus rapide
- BL'ordre des bits notamment peut varier selon le compilateur, si bien qu'un autre compilateur peut manipuler des bits différents de ceux prévus
- CLes champs de bits ne peuvent pas représenter de valeurs de plus de 8 bits
Afficher la réponse et l'explication
Réponse : B. L'ordre des bits notamment peut varier selon le compilateur, si bien qu'un autre compilateur peut manipuler des bits différents de ceux prévus
Les champs de bits rendent le code lisible, mais la norme C laisse à l'implémentation l'ordre des bits dans la structure (du poids fort ou du poids faible), le traitement des champs chevauchant une frontière, la largeur des accès, etc. Un code correct avec un compilateur peut donc lire ou écrire des bits différents avec un autre compilateur ou un autre processeur. Les en-têtes fournis par les fabricants de microcontrôleurs sont le plus souvent écrits avec des masques et des décalages.
Continuer : 9 autres questions sur Systèmes embarqués et firmware