|
|
比如在 S3C2410 里:#define rGPACON (* (volatile unsigned *) 0x56000000) //Port A 控制寄存器
#define rGPADAT (* (volatile unsigned *)0x56000004) //Port A 数据寄存器
像 0x56000000 是寄存器的物理地址,单这么一个数字看,就是一个整数。在使用地址时,需要转换。 (volatile unsigned *) 0x56000000 表明强制转化(声明) 0x56000000 这个整数表示的是一个地址。使用 volatile 是防止编译器优化导致数据读写出错。这时候,0x56000000 已经表示一个地址(指针),那么读写时和普通的指针形式( *p = 1024 ,p 这里相当于 (volatile unsigned *) 0x56000000) 一样, * (volatile unsigned *)0x56000004 = 1024 |
|