공용체와 구조체 비트필드를 섞어 사용했을때의 유용함에 대해 알아보자.
▼ Hardware Abstraction Layer
https://velog.io/@actor/임베디드-OS-개발-프로젝트-Hardware-Abstraction-Layer
의도는 알겠는데, 이렇게 만들면 겁나게 피곤해 진다.
typedef struct _uartdr_t {
uint8_t reserved;
bool oe;
bool be;
bool pe;
bool fe;
uint8_t data;
} uartdr_t;
typedef struct _uartdr_t {
uint8_t reserved : 4; // (1) reserved, oe, be 적는 순서를 신경쓰는게 좋다.
uint8_t oe : 1; // oeverrun error
uint8_t be : 1; // break error
uint8_t pe : 1; // parity error
uint8_t fe : 1; // framing error
uint8_t data : 8;
} uartdr_t;