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