Articles of volatile

Exigences relatives au comportement du pointeur sur la volatilité pointant sur un object non volatile

C11 6.7.3 Qualificatifs de type, le paragraphe 7 est libellé comme suit: Un object de type qualifié volatile peut être modifié de manière inconnue de l’implémentation ou avoir d’autres effets secondaires inconnus. Par conséquent, toute expression faisant référence à un tel object doit être évaluée ssortingctement selon les règles de la machine abstraite, telles que […]

Où utiliser volatile?

J’ai lu des mots-clés volatiles, mais je ne sais pas dans quelles situations je devrais les utiliser. Lorsque la mémoire (variable) est mise à jour et que le processus n’en est pas conscient? Dans quels cas les conducteurs doivent-ils utiliser des variables volatiles?

Est-il prudent de partager une variable volatile entre le programme principal et un ISR en C?

Est-il prudent de partager une variable entière alignée, pas plus grande que le mot naturel du processeur, avec qualificatif volatile, entre le programme principal et un ISR en C? Est-il garanti qu’aucune lecture ou écriture déchirée ne peut arriver?

Java est volatile en C?

Je suis conscient de l’utilisation de volatile en Java. C’est-à-dire (d’après l’ article de Wikipédia ): Il y a un ordre global sur les lectures et écrit dans une variable volatile. Cela implique que chaque thread qui accède à un champ volatile lira sa valeur actuelle avant de continuer, au lieu d’utiliser (potentiellement) une valeur […]

Comment savoir si gcc convient que quelque chose est volatile?

Considérer ce qui suit: volatile uint32_t i; Comment savoir si gcc a traité ou non comme volatile? Il serait déclaré comme tel car aucun code à proximité ne le modifiera, et sa modification est probablement due à une interruption. Je ne suis pas le pire programmeur d’assemblage au monde, mais j’en joue un à la […]

Est-ce que Delphi a un équivalent à la variable volatile de C?

En C et C ++, une variable peut être marquée comme volatile , ce qui signifie que le compilateur ne l’optimisera pas car elle peut être modifiée de manière externe à l’object déclarant. Existe-t-il un équivalent dans la programmation Delphi? Si ce n’est pas un mot-clé, peut-être un contournement? Je pensais utiliser Absolute , mais […]

Mot clé volatile dans les microcontrôleurs

Le mot-clé volatile indique au compilateur de ne pas optimiser la variable préfixée. La variable peut changer pendant l’exécution par une source inconnue (inconnue du compilateur), éventuellement par une interruption externe, etc. Y at-il un autre avantage de volatile ? Est-ce que volatile s’applique à la lecture de fichiers?

argument de fonction de pointeur volatile

Pour un projet SW intégré, nous devons utiliser des pointeurs const volatile TYPE * . Nous avons maintenant quelques fonctions de calcul qui ressemblent à ceci: uint8 calc(const volatile uint8 *array, uint8 value) { … } Les données des deux variables ne changent pas pendant l’exécution de la fonction. Le code d’appel ressemble à ceci: […]

Armcc optimise-t-il les variables non volatiles avec -O0?

int* Register = 0x00FF0000; // Address of micro-seconds timer while(*Register != 0); Dois-je déclarer *Register tant que volatile lors de l’utilisation du compilateur armcc et de l’optimisation -O0? En d’autres termes: l’optimisation -O0 nécessite-t-elle de qualifier ce type de variables de volatile ? (ce qui est probablement nécessaire dans l’optimisation -O2)

Puis-je rendre une variable temporairement volatile?

Dans PSoC , il est possible de déclarer des variables dans l’espace mémoire mappé sur Flash . Étant donné que les lectures flash sont plus lentes que les lectures RAM, le programme bénéficierait des optimisations du compilateur: il permettrait de stocker les valeurs dans des registres ou de les mettre en cache. Sauf quand on […]