in core_cm4.h header file defined some thing like this:
#ifdef __cplusplus
#define __I volatile /*!< Defines 'read only' permissions */
#else
#define __I volatile const /*!< Defines 'read only' permissions */
#endif
#define __O volatile /*!< Defines 'write only' permissions */
#define __IO volatile /*!< Defines 'read / write' permissions */
What's the difference between __I , __O and __IO while they are defined in same way.
- and how they work to specify "read/write only" while they are only defined as a volatile variable ?!