嵌入式之以结构体指针实现外设寄存器访问
1. 例子
即GPIO1这个宏是:GPIO1_BASE地址被转化为GPIO结构体类型的指针。指向地址GPIO1_BASE。里面的易失变量GDIR的地址便为GPIO1_BASE+4(因为一个变量4字节,刚好对应一个寄存器占用空间32bit)
GPIO1结构体指针 指向 结构体成员(变量GDIR,所以为该变量赋值直接= ,该变量地址为GPIO1_BASE,即寄存器地址,从而实现对寄存器访问)
2. 此例中typedef作用简介
以typedef为结构体类型(寄存器组)起别名,从而用简单的别名快速完成与该结构体类型相关的声明,比如快速声明不同的结构体指针,以结构体指针实现对存储器的访问,这在嵌入式中常用。(结构体指针可用->指向成员(为寄存器内容)。也可以快速声明结构体变量)