关于“地址”的问题

     物理地址,总线地址,逻辑地址,虚拟地址。。。书上和网上都有很多解释,这里是我自己的理解

1.物理地址和总线地址根本就是一个东西(对CPU而言,转换的事情是硬件自动完成,转换后的地址其实我们并不关心,有宏来转换,这个宏应该在移植的体系结构代码里),不过是寻址的对象不同罢了(至少大多数嵌入式处理器是这样)。CPU给出地址,MMU变换后的地址如果是去内存的就叫物理地址,如果是去外设的就叫总线地址(PCI控制器也可说是外设)因为这些外设都是在内部总线上的,甚至内存也是。这里有个没有考证的观点,我们在移植linux的时候会告诉内核有多少内存地址是多少(至少wince5,6是这样的),因此启动的时候会全部或部分映射内存的物理地址,但是外设的总线地址不会映射,所以驱动里要自己做。

2.逻辑地址是虚拟地址的子集,用来指内核占用的那一块。虚拟地址不用说了,你懂的。


注:物理地址和总线地址在x86和ARM下是一样的,但是PPC下不一样




阅读更多
文章标签: wince 嵌入式 linux
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭