我正在为我的应用程序使用 AT91SAM7X512。我在某些操作后执行软件重置。处理器复位。但是在读取RSTC_RSR
状态寄存器时,我得到了一个无效的复位类型寄存器值:RSTC_RSR = 0x700
它将RSTTYP
寄存器值转换为111
. 数据表中未定义此条件。我正在使用语句读取重置类型unsigned int buffer = AT91C_RSTC_RSTTYP;
。
问问题
159 次
1 回答
3
AT91C_RSTC_RSTTYP
是常数,它是屏蔽寄存器中位0x700
的位掩码(定义在 中):RSTTYP
RSTC_SR
AT91SAM7X512.h
#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;
应该可以读取寄存器(但我没有测试它)。
于 2013-01-16T10:15:19.017 回答