2017-04-01 71 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

塊引用

*(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偏移將帶你到那個定時器的不同寄存器(在這種情況下是中斷狀態寄存器)。