关于ARM的核心,由于我们不再介绍,它不会因为披上了TI的外衣就不是ARM
关于DSP的核心本身,我们也不再介绍,毕竟,这里我们不是要讲如何做算法的优化。因此流水线与指令集,都不在考虑之内。
就一个应用而言,最主要的就是各种外设的使用。
而对外设的使用而言,最重要的就是这堆玩意儿是怎么连接到CPU上的。
如我们在《OMAP-L处理器介绍 1》中所讲,在OMAP-L处理器上,外设与CPU们是通过SCR连接在一起的。
好,废话少说。上图先!
图1 OMAP-L138 Switched Central Resource
看到这个图,肯定很多人与我最开始的感觉一样,什么乱七八糟的呀。
里面的SCR还好说,肯定是Switch Central Resource
但BR是什么呢?TI没有给出缩略语说明,但在SPRUGM7D那篇名为《OMAP-L138 Application Processor System Referrence Guide》第4.1节,也就是上面这个图的上面一段文字里列到"The switch fabric is composed of multiple switched central resources (SCRs) and multiple bridges"。
显然这里的 BR就是BRidge的意思。
这样这个图的作用,就显然了,就是说数据可以从哪里到哪里。
而在这个算是器里面有能力决定哪个使用哪个SCR或BR的核心为ARM, DSP, EDMA以及PRU.
讲到这可能已经有很多朋友在骂我罗嗦了。
“那么到底该怎么决定哪个SCR甚至哪一个BR被使用才能访问到一个外设, 比如说串口?你要不说清楚,今天别想走!”(腹黑中)
“我们TI,把所有的这些挂在SCR上的外设,统一进行了编址?每个设备都对应在特定的地址上,比如说串口0, 0x01c4 2000 ——0x01c4 2034分别对应着串口寄存器RDR-MDR。客户只需要大CPU上访问0x01c4 2000就可以访问相应串口寄存器,对应的SCR及BR会自动选上” (想知道我们TI是怎么设计器件,嘿嘿嘿!)
被忽悠了半天看这个图,比较不爽!(权当消遣了,学习一下芯片的实现原理)
对于我们要用好器件上的外设而言,比较实惠的还是memoryMap。 下图为OMAPL138器件的MemoryMap(摘自OmapL138的datasheet).
图2 OMAPL138 MemoryMap
从数据表我们可以看出如果要从DSP访问DSPL2RAM,只要在DSP代码里访问0x0080,0000到0x0083,ffff
有的人可能要问题,要是我候通过ARM访问呢,那我们往下翻MemoryMap这个表(如下图)
图3 OMAPL138 MemoryMap Continued
只需要在ARM里访问物理地址0x1180,0000—0x1183,ffff (当然是指物理地址,而不是操作系统内核地址或是用户空间地址)。
前面说了各个处理器怎么看外设,尽管图一中也能看出ARM与DSP关系的一点端倪,但估计还有很多人在疑惑ARM与DSP这小两口怎么是什么关系。(废话,你都说是小两口了)。
我们总结一下图1及图2,3所涉及到的MemoryMap表的的内容,我们就不难看现,其实ARM与DSP之间的关系就是如图4这样
图4 站在民政局的角度打量ARM与DSP的关系。
今天我们知道了ARM及DSP怎么通过SCR访问的外设,也知ARM与DSP是怎么XXOO的。
关于ARM与DSP XXOO的详细介绍,我们在下一讲介绍。
敬请期待。