定义一个指向寄存器地址的指针
原理:利用强制类型转换将寄存器的地址强转为一个指向无符号整形的指针,并将其赋给一个指针变量。之后的操作可以转换为对指针的操作。
unsigned int * GPX2CON = (unsigned int *)0x11000c40;
* GPX2CON = 0x10000000;
利用宏定义
原理:与上一种方法原理相同,最终都是对一个指向无符号整形的指针进行操作。不同之处在于强转之后直接对指针解除引用,从而不必定义指针变量。同时,利用宏定义,可以简化代码编写。
#define GPX2CON (*(unsigned int *)0x11000c40)
GPX2CON = 0x10000000;
也可以再增加一层宏定义,在定义大量寄存器时可以简化代码。
#define __REG(x)