您的位置:首页 > 其它

快速学Arm(12)--APB,AHB地址与接口的关系

2014-11-28 18:03 411 查看
在快速学Arm(3)中,我画了一个LPC2478的存储空间的分别图,在存储空间最上面的两块,0xE000 0000 ~ 0xEFFF FFFF(APB)和0xF000 0000 ~ 0xFFFF FFFF(AHB)两块地址空间.这两块空间分别是大概250M字节的空间.每个250M空间分成36块,每块大概16K大小.

在LPC2478的文档中,APB的各个设备的寄存器空间是按下面的方式分配的:





有过Arm或者其他单片机开发经验的人对这种地址分配应该不难理解,但对于初学者可能会有点晕.如果大家打算从LPC2478(ARM7TDMI-S的2400系列)开始学起的话,有两个文档是要用来经常查阅的:

lpc2478_ds.pdf

user.manual.lpc24xx.pdf

这两个文档相当于是2478的datasheet(说明文档).在文档的芯片结构图中大家可以看到从运算器到各个外设接口之间是通过AHB,APB桥接而成的.因为这个图比较大,我无法加进来.大概意思就是说,在ARM的CPU内部,运算器要向控制各个接口,必须通过AHB,APB桥形成的总线才能对各个接口进行控制.那么ARM映射了AHB,APB两块地址空间作为控制各个接口的寄存器空间来使用.学过任何一种单片机的人都知道,对接口的编程时通过接口的状态寄存器,数据寄存器,控制寄存器三种寄存器来对接口进行控制和数据传输的.上面的图中描绘了APB地址空间和各个接口之间的关系.我们通过查找每个地址段中地址的定义可以知道这些寄存器对于接口的作用.对于接口的编程基本上都是通过对这些寄存器的使用才实现的.大概是因为地址空间太富裕了,每个16K实际上都没有用完,地址空间有很多地方都是窟窿,也就是浪费.单片机,我们最大的需要就是他们的接口,我们更多的希望使用他们丰富的接口与外设进行通信和数据传输.通过我们对没个接口的研究,便可以逐渐的了解ARM的开发方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: