2017-04-01 5 views
0

私は現在、DE0-Nano-SoCコンピュータシステム でARM Cortex-A9ユーザーガイドを読んでいますが、その中にacコードがあり、 "*(MPcore_private_timer_ptr + 3)"の "+ 3" ?while(*(MPcore_private_timer_ptr + 3)== 0)の "+ 3"は何を意味しますか?

while (1) 
{ 
*HPS_GPIO1_ptr = HPS_LEDG; // turn on/off LEDG 
while (*(MPcore_private_timer_ptr + 3) == 0) 
; // wait for timer to expire 
*(MPcore_private_timer_ptr + 3) = 1; // reset timer flag bit 
HPS_LEDG ^= bit_24_pattern; // toggle bit that controls LEDG 
} 

答えて

0

BLOCKQUOTE

*(MPcore_private_timer_ptr + 3)= 1。 //タイマーフラグビット

リセットのsynonimumあり:(& MPcore_private_timer_ptr [3])= 1 *

。 //タイマフラグビットをリセットする

1

*(MPcore_private_timer_ptr + 3)MPcore_private_timer_ptr[3]と同じです。 インクリメントされたポインタを逆参照します。

1

@ yarの答えに続いて、MPcore_private_timer_ptrは、メモリマップされたタイマのベースアドレスへのポインタです。つまり、そのアドレスからすべてのタイマのレジスタが続きます。 +3オフセットは、そのタイマの別のレジスタ(この場合は割り込みステータスレジスタ)に移動します。

関連する問題