static volatile variable et warning (ou pas) [resolu] [C] [GCC] - C - Programmation
Marsh Posté le 26-11-2020 à 22:05:01
Le contraire serait apparemment un bug, qui était présent dans GCC 4.8 : https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57258
La raison est :
Citation : a volatile variable is only unused if it is not |
Marsh Posté le 05-12-2020 à 11:45:28
le qualifier volatile signifie entre autres que la variable peux être modifiée sans connaissance du compilateur (par exemple si elle est mappée sur un registre)
donc c'est normal qu'il ne te donne pas le warning car... il sais pas ^^
ah sinon, pour une var partagée entre une isr et le contexte normal, oublie pas d'y faire accès dans une section critique (disable/enable interrupt) si les manipulations que tu fait dessus ne sont pas atomiques.
(= pas une seule instruction = possible d'etre interrompu par une isr, ce qui inclus l'isr qui manipule la même var ! nice bugs en perspective )
Marsh Posté le 07-12-2020 à 13:50:04
Pour info (point 2) : https://gitlab.gnome.org/GNOME/glib/-/tags/2.67.1
Le lien donné (dans le lien ci-dessus) en contient plein d'autres, avec à priori pas mal de choses intéressantes (j'ai survolé vraiment très vite).
Ne pas se laisser déconcerter par le "No" sur la page en question !
Marsh Posté le 26-11-2020 à 18:24:49
Ami(e)s du C Bonsoir ,
j'ai remarqué un truc que je ne comprend pas, quelqu'un pour me dire ce qui se passe?
J'ai besoin d'une variable globale pour passer des infos entre une ISR et le programme principal (pour µC). Je ne veux pas que cette variable soit accessible depuis un autre fichier (je considère que ça fait partie d'un code propre de limiter le scope de ses variables au maximum).
Donc:
1) ->volatile
2) ->static
Pour l'instant cette variable est juste déclarée mais utilisée nulle part:
Je m'attendais à un warning "defined but not used" mais non, pas de warning. Par contre si je vire le "volatile" j'ai bien le warning.
Y a un truc qui m'échappe là. Pourquoi je n'ai pas de warning avec "volatile"? Est-ce que "volatile" annule le "static"?
avr-gcc (GCC) 5.4.0
Message édité par rat de combat le 28-11-2020 à 11:11:28