diferencia entre __I y __IO y __O en el núcleo de CMSIS

3

en el archivo de cabecera core_cm4.h definió algo como esto:

#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              */

¿Cuál es la diferencia entre __I, __O y __IO si se definen de la misma manera?

  • y cómo funcionan para especificar " sólo lectura / escritura " mientras que solo se definen como una variable volátil.!
pregunta Amin

1 respuesta

3

I significa entrada O significa salida IO significa entrada y salida

Como señala Long Pham, es una convención de nomenclatura, pero también es normal usar significados para un tipo. Al igual que un entero, puede ser un contador, una marca de tiempo, una fecha, etc.

Hay algunas razones para usar esto:

  • Es bueno para la legibilidad
  • Siempre que en el futuro el tipo de I, O o IO cambie, el código fuente (usuario) que usa I, O e IO no necesita ser cambiado, solo el tipo de definiciones / se define a sí mismo.
respondido por el Michel Keijzers

Lea otras preguntas en las etiquetas