AT91SAM7X512复位类型问题

时间:2013-01-16 09:43:00

标签: embedded arm microcontroller reset atmel

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

1 个答案:

答案 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;

应该用于读取寄存器(但我没有测试它)。