我目前正在阅读DE0-Nano-SoC计算机系统 使用ARM Cortex-A9用户指南,我在其中找到了一个c代码,我不明白" + 3" in" *(MPcore_private_timer_ptr + 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 :(得分:1)
*(MPcore_private_timer_ptr + 3)
与MPcore_private_timer_ptr[3]
相同。
您取消引用递增的指针。
答案 1 :(得分:1)
继续@yar的回答,MPcore_private_timer_ptr
是一个指向内存映射定时器基址的指针,即定时器的寄存器全部从该地址开始。 +3偏移将您带到该定时器的不同寄存器(在本例中为中断状态寄存器)。
答案 2 :(得分:0)
块引用
*(MPcore_private_timer_ptr + 3)= 1; //重置定时器标志位
是synonimum:
*(& MPcore_private_timer_ptr [3])= 1; //重置定时器标志位