在京微雅格M5系列芯片中,MSS子系统包含增强型8051处理器,嵌入式外设,DMA和SRAM。我们要进行MSS和FPGA资源或是片外IC外设应用时,往往首先要考虑到M5的地址映射问题。

M5的手册中有地址映射图:
 
图 5 MSS存储器地址映射

查得MSS片内资源有:CME-M5系列集成了128KByte SRAM模块。128KByte SRAM只用于MSS。8051 可访问SRAM速度最高可达200MHz。EMIF接口的地址总线宽为[22:0]共23位,转为2进制可寻址8388608,即8M。

京微雅格官方手册上这一部分写得较简单,通过分析其它章节的内容,我得出了以下在实际操作中的对应关系图:
 
图 6 MSS操作存储器与8M地址空间的映射关系
简单说一下,在MSS内部编程时,keil软件中的C51编译器能识别的地址总线宽为16,因此普通51单片机的寻址空间为64K。而M5中的MSS为了扩展寻址空间,就要做一些处理。最简单的方法自然是添加段地址或页地址。这里D_PGAESEL就是页地址。但是16位地址有效只有15位,因此每页的大小变为32K。当bit15=1时,通过EMIF接口访问存储器,当bit15=0时,不通过EMIF访问存储器,直接访问片内SRAM,这部分空间是32K。至于这样处理的原因,是为了方便Bank之间跳转方便。不妨这样看待,每一个BANK的大小为64K,高32K是本BANK的内容,低32K的区域都是公共区域。

另外,M5内置了128K的SRAM,因此在实际访问32K到128K空间时,也是通过EMIF接口实现的,即地址范围是:8000-1FFFF。

如果需要外扩RAM或是FLASH,都可以在20000-7FFFFF空间进行映射,只是在C51编码时,需要将EMIF地址接口([22:0])转化为MSS操作的地址类型((D_)PAGESEL:XDATA地址)即可。(作者:京微雅格FAE 杨鹏君)