本帖最后由 dictionary 于 2013-10-30 14:51 编辑
uart1_trx[uart1_rx]=(*(vu32*)(ADDR+read_i*2))
一点一点来吧
(ADDR+read_i*2) 这部分的做用是计算地址,类似于0x080ff000,但它的结果是一个数字,所以有了下一步
(vu32*)(ADDR+read_i*2) 这一部分,就是将计算出来的的地址强制转换为一个VU32类型的指针,V就是volatile 表示 这个变量是易变 编译器在编译这个变量的时候,每当程序中使用了这个变量,编译器都会将这个变量从内存中取出,再使用。 U 就是 unsigned 无符号的意思,总的来说就是将这个计算出来的结果强制转换成 易变的 无符号的 32位整形指针。
(*(vu32*)(ADDR+read_i*2)) 这部分你再要是不知道的话那我前面的白说了!
|