[En-Nut-Discussion] Hardware Register Access Using Volatile Pointer

Bernard Fouché bernard.fouche at kuantic.com
Tue Apr 26 17:04:40 CEST 2011


Le 26/04/2011 14:55, Harald Kipp a écrit :
>
> What I understood is, that volatile means for reading, that the compiler
> must reload the value each time before using it. I can't find any
> document that states, that the read is done in any case, even if the
> result is not needed.
>
> A few tests with GCC 4.6 showed, that the read is conserved. But is that
> a proof?

GCC documentation  (http://gcc.gnu.org/onlinedocs/gcc/Volatiles.html) says:

A scalar volatile object is read when it is accessed in a void context:

      volatile int *src =somevalue;
      *src;

(see also http://gcc.gnu.org/onlinedocs/gcc/Qualifiers-implementation.html)

     Bernard



More information about the En-Nut-Discussion mailing list