我正在使用AT91SAM7X512进行应用。我在执行某些操作后执行软件重置。处理器重置。但是在读取RSTC_RSR
状态寄存器后,我得到了重置类型的无效寄存器值:RSTC_RSR = 0x700
,它将RSTTYP
寄存器值转换为111
。数据表中未定义此条件。我正在使用语句unsigned int buffer = AT91C_RSTC_RSTTYP;
读取重置类型。
答案 0 :(得分:3)
AT91C_RSTC_RSTTYP
是常量0x700
,它是屏蔽RSTTYP
寄存器中RSTC_SR
位(在AT91SAM7X512.h
中定义)的位掩码:< / p>
#define AT91C_RSTC_RSTTYP (0x7 << 8) // (RSTC) Reset Type
要读取寄存器,有一个指针AT91C_RSTC_RSR
:
#define AT91C_RSTC_RSR (AT91_CAST(AT91_REG *) 0xFFFFFD04) // (RSTC) Reset Status Register
所以
unsigned int buffer = *AT91C_RSTC_RSR;
应该用于读取寄存器(但我没有测试它)。