访问4字节的是使用LDR/STR,访问1字节使用LDRB/STRB
另外你需要一份S3C44B0的说明书,上面已经很明确的表达了“寄存器只能以其规定的字长进行访问”,而资料上的寄存器列表也已经列举出各个寄存器的访问字长。我们所需要的就是按照说明书规定的字长去访问相应的寄存器。。。
#define rBWSCON (*(volatile unsigned *)0x1c80000) //rBWSCON寄存器规定是WORD字长的(ARM的WORD字长为4字节)因此使用unsigned类型
#define rUTXH1 (*(volatile unsigned char *)0x1d04020) //rUTXH1 寄存器规定是byte字长的,因此使用unsigned char 类型
至于volatile 则是因为他们都是寄存器,可能不经我们手动而自己改变数值(如串口受到数据),因此我们需要将其定义为实时数据类型(普通类型实际上访问是使访问的缓存中的数据,并没有访问实际的物理地址).
阅读(746) | 评论(0) | 转发(0) |