新闻中心

EEPW首页 > 网络与存储 > 设计应用 > CME-M5 外部存储器接口(EMIF)总线使用指南

CME-M5 外部存储器接口(EMIF)总线使用指南

作者: 时间:2013-05-09 来源:电子产品世界 收藏

  2. 基于Data Banking的总线地址扩展规则:

本文引用地址:https://www.eepw.com.cn/article/145142.htm

  CME的处理器为冯诺依曼结构,即程序总线和数据总线统一编址。地址总线的地址位为23位,对应8M Bytes的地址空间。是通过Data Banking的方式实现地址总线的扩展。每个bank的地址空间为32K Bytes,共有256个bank。地址空间的分布如下图所示,这里仅对外部数据存储空间做介绍:  

 

  与外部数据存储空间有关的寄存器为:

  D_PAGESEL(默认初始值为0x01,即指向Bank 1地址空间)

  因为D_PAGESEL为8位寄存器,所以刚好对应256个bank。D_PAGESEL的值对应地址总线上的memaddr[22:15]的值,即地址总线的高8位地址总线。注意:D_PAGESEL的值不可为0,因为当为0时,将会与Common Bank的地址空间重叠(0-7FFFF)。

  3. 逻辑地址空间与物理地址空间的对应关系

  逻辑地址空间(Logical Address): CME 8051每个bank的低16位逻辑地址的空间范围为0x8000-0xFFFF,该值和C编译器里面的地址定义相同。

  物理地址(Physical Address):也叫实际地址或绝对地址,是出现在外部地址总线上的寻址物理内存的地址信号,是地址变换的最终结果。

  逻辑地址空间:  

 
  • memaddr[22:15]:该物理地址段的值由D_PAGESEL寄存器的值决定,范围为1-255,默认初始化值为0x01;
  • memaddr[14:0]:该物理地址段由C编译器里面的变量分配的地址决定,注意:需拿C编译器里面定义的地址(0x8000-0xFFFF)减去偏移地址0x8000,即0x8000对应的物理地址实际是0x0000,0xFFFF对应的物理地址为0x7FFF。

  Keil C51编译器支持的外部变量定义方法:

  代码片段1:

  unsigned char xdata PORTA _at_ 0x9000;//对应低16位物理地址:0x1000
  unsigned char xdata DDRA _at_ 0x9001;//对应低16位物理地址:0x1001
  unsigned char xdata PORTB _at_ 0xa000;//对应低16位物理地址:0x2000
  unsigned char xdata DDRB _at_ 0xa001;//对应低16位物理地址:0x2001

  或者如下定义:

  代码片段2:
  #define PORTA XBYTE[0x9000]



关键词: EMIF CKCON 8051 CPU

评论


相关推荐

技术专区

关闭