アプリケーションに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 に答える