Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1013553
  • 博文数量: 238
  • 博客积分: 2842
  • 博客等级: 少校
  • 技术积分: 2765
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-16 00:20
个人简介

stdlf

文章分类

全部博文(238)

文章存档

2013年(6)

2012年(13)

2011年(82)

2010年(89)

2009年(48)

我的朋友

分类:

2009-08-02 22:49:05

访问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) |
给主人留下些什么吧!~~