2

アプリケーションにAT91SAM7X512を使用しています。特定のアクションの後にソフトウェアリセットを実行します。プロセッサがリセットされます。しかし、RSTC_RSRステータスレジスタを読み取ると、リセットタイプに対して無効なレジスタ値が取得されます。これにより、レジスタ値がにRSTC_RSR = 0x700変換されます。この条件はデータシートで定義されていません。ステートメントを使用してリセットタイプを読み取っています。RSTTYP111unsigned 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 に答える