有几个问题实在搞不懂,希望大伙能帮忙解释解释:
1,DSP端有没有MMU? datasheet的2.4.3节说的IVA2.2系统有MMU是怎么回事呢?
2,如果DSP端有MMU,为什么在DSP端操作外设都是直接用的物理地址,而没用虚拟地址?而且似乎也没有看到物理地址到虚拟地址的映射表
3,是否DSP,ARM都有自己独立的内存空间? 从资料上看似乎是有,但是网上看别人说这些空间又是共享的,还请高手们解释下
在2.4.4节 的Table2-8 L3 Interconnect View of the IVA2.2 Subsystem Memory Space 说的是在MPU侧,通过访问0x5C000000~0X5CFFFFFF,0X5D000000~0X5DFFFFFF , 0X5E000000~0X5EFFFFFF 就可以访问到DSP侧相应的L2 ROM,RAM等地址。从这个角度看,ARM和DSP的地址空间应该是不一样的才对啊?
在2.4.5节 DSP View of the IVA2.2 Subsystem Memory Space 的 Table2-9 DSP View of the IVA2.2 Subsystem Memroy Space 列的应该是DSP侧的4G地址空间。 这里L2 ROM,RAM等地址跟刚才ARM侧的是不一样的。 所以我认为ARM和DSP都有独立的4G的地址空间,公共外设的访问,都是通过访问各自空间内相应的地址来实现的。
在2.4.6 EDMA View of the IVA2.2 Subsystem Memory Space 介绍的是从EDMA Table2-10 EDMA View of the IVA2.2 Subsystem Memory Space 这里又是4G的地址空间。。。EDMA不应该是只是一种DSP侧的增强型的DMA吗?怎么会这么复杂?而且这些地址似乎也没用。。。
4,对于Tab2-3 列出的 L4-Core Memory Space Mapping里面每个外设都有2个地址,这该怎么理解呢?
比如McBSP1有: 0x4807 4000 ~ 0x4807 4FFFF Module
0x4807 5000 ~ 0x4807 5FFF L4 interconnect
我查看第21章,设置McBSP1的寄存器地址是从0x4807 4000 ~ 0x4807 4FFFF的4K地址,不知道0x4807 5000 ~ 0x4807 5FFF是干嘛用的?
以上是几个我对地址空间相当不理解的地方,还请各位高手们能解释下。其实经过一些资料的阅读以及向别人的请教,我更倾向于ARM和DSP侧都是根据Table2-1的 Global Memory Space Mapping来访问寄存器地址从而控制外设的。即ARM侧和DSP侧都是通过地址0x4807 4000 ~ 0x4807 4FFF来使用McBSP1的。但一看到data sheet上的一些其他说明,我就又怀疑了以前的认识了。
这个你只有去查下它的datasheet,这问题着实有点专业
呵呵,我就是看datasheet看的迷迷糊糊的,所以才上来想跟高手请教下的。现在找做OMAP的人太不容易了,遇到问题都找不到个请教的。