2

我正在为我的应用程序使用 AT91SAM7X512。我在某些操作后执行软件重置。处理器复位。但是在读取RSTC_RSR状态寄存器时,我得到了一个无效的复位类型寄存器值:RSTC_RSR = 0x700它将RSTTYP寄存器值转换为111. 数据表中未定义此条件。我正在使用语句读取重置类型unsigned int buffer = AT91C_RSTC_RSTTYP;

4

1 回答 1

3

AT91C_RSTC_RSTTYP是常数,它是屏蔽寄存器中位0x700的位掩码(定义在 中):RSTTYPRSTC_SRAT91SAM7X512.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 回答