小编Men*_*tus的帖子

将uint32变量转换为位字段 - 未定义的行为?

我有一个由微控制器制造商提供的寄存器定义,可以作为位字段处理.寄存器定义如下:

#define SCU_WDTSCON0 (*( SCU_WDTSCON0_type *) 0xf00360f0u)
Run Code Online (Sandbox Code Playgroud)

位字段定义如下所示:

typedef volatile union {
unsigned U;
int I;
struct {
    unsigned    ENDINIT  :1;    // [0:0] End-of-Initialization Control Bit
    unsigned    LCK  :1;    // [1:1] Lock Bit to Control Access to WDTxCON0
    unsigned    HPW0     :2;    // [3:2] Hardware Password 0
    unsigned    HPW1     :4;    // [7:4] Hardware Password 1
    unsigned    PW   :8;    // [15:8] User-Definable Password Field for Access to WDTxCON0
    unsigned    REL  :16;   // [31:16] Reload Value for the WDT
  } B;
} SCU_WDTSCON0_type; …
Run Code Online (Sandbox Code Playgroud)

c embedded pointers bit-fields

6
推荐指数
1
解决办法
399
查看次数

标签 统计

bit-fields ×1

c ×1

embedded ×1

pointers ×1