#define a (volatile unsigned int *) 0x20000000)
表示将0x20000000转化为指针 也就是a是地址0x20000000,那么*a就表示这个地址存储的内容。
#define b *((volatile unsigned int *) 0x20000000)) 表示b为地址0x20000000存储的内容
结构体指针
typedef struct
{
volatile unsign int CCGR1;
volatile unsign int CCGR2;
}CCM_Type;
#define CCM_Base (0x020C4000);
#define CCM ((CCM_Type *) CCM_Base);
地址0x020C4000作为CCM的地址。
如果要访问结构体变量的值:
CCM->CCGR1 = 0xFFFFFFFF;
即将CCGR1存储的内容变为0xFFFFFFFF