2014年8月26日,一个网友提出了一个关于EMIF访问地址很典型的问题,在此我阐述一下我的个人理解。

一、提出问题

他问的问题没有这么简单,但是差不多就是这种意思,我在晚上找个典型事例,如下:

DSP通过EMIF(16bit)操作外部的SDRAM,有如下对应关系:

EMIF接口的寻址问题-LMLPHP

0x9000000是EMIF的基地址,这个可以理解,但是偏移地址需要移动2*a才能与外部内存的a对应上。

二、辅助论据

为了说明的我的概念,我需要引入一些外部论据,这个一款FLASH的Datasheet,里面有关于扇区的详细讲解。如图:

EMIF接口的寻址问题-LMLPHP

同样一块SA0扇区,Byte Mode表示0000000-003FFF,而Word Mode表示000000-01FFF,他们之间相差2倍(0x1fff的2倍是0x3fff)。造成这样的原因就是,红快1表示0x4000(Byte)的空间,红快2表示0x2000(word)的空间,实际上他们是一样的,只是单位不一样而已。

三、得出结论

DSP中的偏移地址X指的是偏移EMIF基地址X字节(8bit),而外部SDRAM(16bit)中X指的是偏移相应地址的X字(16bit)。也可以这么说,SDRAM的地址n对应的内存大小是DSP的EMIF对应大小的2倍(n和n+1)。

05-08 15:26