第三章 存储器映像控制模块
3.1 简介
这部分叙述了飞思卡尔S12X平台的存储器映像控制子模块的功能,存储器映像控制模块的结构方框图如图3-1.
存储器映像控制模块控制多主存取的优先级,内部资源和外部空间的选择。内部总线,包括内部存储器和外围设备,都受存储器映像控制模块的控制。每一个局部地址空间都可转化成全局地址空间。
3.1.1 专业术语
逻辑“1” |
相当于布尔值真的电位 |
逻辑“0” |
相当于布尔值假的电位 |
0x |
表示十六进制数 |
x |
表示忽略,不用管 |
字节 |
8比特数据 |
字 |
16比特数据 |
局部地址 |
基于64KB的存储器间(16位地址) |
全局地址 |
基于8MB的存储空间(23位地址) |
对齐地址 |
边界对齐的地址 |
非对齐地址 |
边界不对齐的地址 |
总线时钟 |
系统时钟,查阅时钟与复位产生模块(CRG) |
扩展模式 |
正常扩展模式 仿真单片模式 仿真扩展模式 特殊测试模式 |
单片模式 |
正常单片模式 特殊单片模式 |
仿真模式 |
仿真单片模式 仿真扩展模式 |
正常模式 |
正常单片模式 正常扩展模式 |
特殊模式 |
特殊单片模式 特殊测试模式 |
NS |
正常单片模式 |
SS |
特殊单片模式 |
NX |
正常扩展模式 |
ES |
仿真单片模式 |
EX |
仿真扩展模式 |
ST |
特殊测试模式 |
未生效区域 |
可以由页面寄存器(RPAGE,PPAGE,EPAGE)存取并且没有生效(未使用)的存储区域 |
外部/扩展空间 |
在全局地址范围14_0000 to 3F_FFFF可以存取的存储区域 |
外部资源 |
在扩展模式时通过外部总线连接到MCU的资源(仿真器和应用程序)包括(未生效的区域和外部扩展空间) |
PRR |
端口替代寄存器 |
PRU |
位于仿真端的端口替代单元 |
MCU |
微控制器单元 |
NVM |
非易失性存储器;Flash EEPROM or ROM |
3.1.2 特征,特色
这块的主要特征是:
l 分页能力支持全局8M的存储器地址空间
l 在主CPU,BDM和XGATE之间有总线仲裁
l 同时存取不同的资源(内部的,外部的和外围设备的)见图图3-1
l 目标总线存取冲突的解决
l MCU操作模式的控制
l MCU安全控制
l 分开内存映像图给主CPU, BDM and XGATE
l ROM控制位来使能片上FLASH或ROM的选择
l 端口替代寄存器存取控制
l 在单片模式中,当CPU存取未生效存储区域(例如,一个不属于任何片上模式的地址)时产生系统复位
3.1.3 S12X存储映射
S12X结构使生效一系列存储映像方案包括:
l 一个CPU的8MB的全局映像,定义使用一个全局页寄存器(GPAGE)定义,且用专用的23位地址存数/取数指令
l 一个BDM的8MB的全局映像,定义使用一个全局页寄存器(BDMGPR)定义,且用专用的23位地址存数/取数指令
l 一个(CPU或BDM)的64KB的局部映像,定义使用特殊资源页寄存器(RPAGE,EPAGE和PPAGE)定义,且用相对应的指令设置,这在任何时刻可见的64KB可以被看成被16位(CPU或BDM)地址存取的本地映像
存储器映像控制模块执行着把不同的存储映像方案翻译成特殊的全局(物理)的地址以便执行。
3.1.4 运行方式
这一部分列举并简单的描述了所有的由存储器映像控制模块(MMC)可以支持的操作模式
3.1.4.1 节电模式
l 运行模式
在运行模式中存储器映像控制模块(MMC)起作用
l 等待模式
在等待模式中存储器映像控制模块(MMC)起作用
l 停止模式
在停止模式存储器映像控制模块(MMC)不工作
3.1.4.2 起作用模式
l 单片模式
在正常的和特殊的单片模式中,内部存储器是被占用的,外部总线不起作用
l 扩展模式
当访问外部总线时,在正常扩展模式和特殊测试模式下,地址,数据和控制信号是起作用的。访问内部资源将不会引起外部总线的起作用与否。
l 仿真模式
外部总线在仿真时是起作用的,经过外部工具进入正常扩展模式或正常单片模式
3.1.5 结构方框图
图3-1 展示存储器映像控制模块的结构方框图
3.2 外部信号描述
用户被建议查阅端口配置设备概览和外部总线信号的位置,一些引脚不是在所以的执行中都有联系。表格3-3和3-4列出了引脚名字和功能。也同时对他们的操作提供了一个简要的描述。
3.3 存储映像图和寄存器
3.3.1 存储映像图单元
与存储器映像控制模块(MMC)有联系的寄存器的一个概述显示在如下的图解3-2.有关寄存器和位的详细描述将会在接下来的部分给出。
3.3.2 寄存器描述
3.3.2.1 存储器映像控制模块(MMC)控制寄存器 0(MMCCTL0)
读:任何时刻。在仿真模式,读操作将会从外部总线返回数据;在所有其他模式中,数据是从这个寄存器读取的。
写:任何时刻。在仿真模式,写操作也将直接从外部信号得到数据。
1 不使能,特征总是不生效
2 使能,适当的寄存器的位的值控制着它的使能与否
MMCCTL0是用来控制外部总线功能,如:
l 得到片选功能(见 Table 3-5和Table 3-6)
l 控制不同的外部延伸装置(设备),要得到更详细的介绍请查阅S12X_EBI模块介绍
注意:当CPU在存取这个寄存器时,XGATE也写存取这个寄存器,将会导致无法预料的结果。
Field |
Description |
7-6 CS3E[1:0] |
片选3使能——这两位使能外部片选3()的输出,这个是宣称在存取特殊外部地址期间,有关联的全局地址范围见Table 3-7 and Figure 3-17。 片选3只在正常扩展模式和仿真扩展模式被激活时才有效 片选3在其他任何模式下都失效, 00 :片选3不使能 01,10,11 :片选3使能 |
5-4 CS2E[1:0] |
片选2使能——这两位使能外部片选2()的输出,这个是宣称在存取特殊外部地址期间,有关联的全局地址范围见Table 3-7 and Figure 3-17。 片选2只在正常扩展模式和仿真扩展模式被激活时才有效 片选2在其他任何模式下都失效, 00 :片选2不使能 01,10,11 :片选2使能 |
3-2 CS1E[1:0] |
片选1使能——这两位使能外部片选1()的输出,这个是宣称在存取特殊外部地址期间,有关联的全局地址范围见Table 3-7 and Figure 3-17。 片选1只在正常扩展模式和仿真扩展模式被激活时才有效 片选1在其他任何模式下都失效, 00 :片选1不使能 01,10,11 :片选1使能 |
1-0 CS0E[1:0] |
片选0使能——这两位使能外部片选0()的输出,这个是宣称在存取特殊外部地址期间,有关联的全局地址范围见Table 3-7 and Figure 3-17。 片选0只在正常扩展模式和仿真扩展模式被激活时才有效 片选0在其他任何模式下都失效, 00 :片选0不使能 01,10,11 :片选0使能 |
Table 3-7 列出了每个片选片的地址边界和它与生效的内部限定资源的关系。
1 外部的RAM页索引寄存器(RPAGE)在(NX,EX)中存取
2 当ROMHM设置(see ROMHM in Table 3-16)被认为的空间被片上存储块占用
3 当内部的NVM是使能的(see ROMON in Section 3.3.2.5,存储器映像控制模块(MMC)控制寄存器1-MMC Control Register (MMCCTL1)),不会被认为的空间被片上存储块占用
4 外部的程序页索引寄存器(PPAGE)在(NX,EX)中存取
3.3.2.2 模式寄存器(MODE)
读:任何时刻。在仿真模式,读操作将会从外部总线返回数据;在所有其他模式中,数据是从这个寄存器读取的。
写:只有当状态转变允许时(see Figure 3-5)。在仿真模式,写操作也将直接从外部信号得到数据。
模式寄存器(MODE)的模式位用来建立MCU的操作模式。
注意:当CPU在存取这个寄存器时,XGATE也写存取这个寄存器,将会导致无法预料的结果。
Field |
Description |
7-5 MODC MODB MODA |
模式选择位——这些位在复位状态()高电平(无效时)控制通用的运算(工作)状态。外部模式引脚MODC,MODB和MODA在复位状态()低电平(有效时)来限定操作模式。在复位状态()信号变得失效时(高电平),引脚的状态锁存到各自的寄存器位。(见Figure 3-4)。
存在着写限制,在某些模式之间不允许模式转变。Figure 3-5阐述了所有允许的模式转变。试图未授权的模式转变将不会改变模式位。但是将会妨碍以后的写这些寄存器位,除掉在特殊模式。
从正常单片模式向正常扩展模式转变和从仿真单片模式向仿真扩展模式转变只能在写一个值b101才会执行(写一次),写任何其他的值将不会改变模式位,但是将会妨碍以后的写这些寄存器位。
当设备是被保护时,改变操作的模式是不允许的。但是将会妨碍以后的写这些寄存器位,除掉在特殊模式。
在仿真模式,读地址从外部总线返回数据,外部总线由仿真器驱动。因此仿真器的硬件有责任要提供预期的值(例如,当设备处于仿真单片模式时,提供一个相当于正常单片模式的值;或者当设备处于仿真扩展模式时,提供一个相当于正常扩展模式的值) |
说明:
状态转变由外部引脚(MODC, MODB, MODA)决定
状态转变由写存取模式寄存器(MODE)
(MODC, MODB, MODA)为110和111是非法的引脚值,是没有使用的,保留为以后扩展用。
3.3.2.3 全局页索引寄存器(GPAGE)
任何时刻可读;任何时刻可写。
全局页索引寄存器(GPAGE)用来在全局地址建立一个23位的地址格式,它只使用在CPU在执行全局指令时(GLDAA,GLDAB,GLDD,GLDS,GLDX,GLDY,GSTAA,GSTAB,GSTD,GSTS,GSTX,GSTY)(见CPU Block Guide)。所产生的全局地址是由CPU的局部地址[15:0]和全局页索引寄存器(GPAGE)[22:16]拼在一起组成的。(见Figure 3-7)
注意:当CPU在存取这个寄存器时,XGATE也写存取这个寄存器,将会导致无法预料的结果。
Field |
Description |
6-0 GP[6:0] |
全局页索引寄存器位6-0——这些页索引寄存器位被用来选择访问128个64KB页中的哪一页。 |
Example 3-1 这个例子演示了GPAGE寄存器的用法
——————————————————————————————————————
LDX #0x5000 ;设置全局页索引寄存器GPAGE的偏移值为0x5000
MOVB #0x14, GPAGE ;初始化全局页索引寄存器GPAGE的值为0x14
GLDAA X ;全局地址0x14_5000的值装入累加器A
——————————————————————————————————————
3.3.2.4 直接页面寄存器(DIRECT)
任何时刻可读;特殊模式下任何时刻可读,其他模式下只能读一次。
这个寄存器可以决定在存储映像中的256字节的指引页的位置(状态)。这个对全局和本地映像都有效。
Field |
Description |
7-0 DP[15:8] |
直接页索引位15-8——当使用直接寻址模式执行存取时,这些位被CPU使用。这个寄存器的这些位来自地址位的[15:8]位。(见Figure 3-9) |
注意:当CPU在存取这个寄存器时,XGATE也写存取这个寄存器,将会导致无法预料的结果。
全局地址的[22:16]位将来自全局页索引寄存器(GPAGE)[6:0]位,免得CPU在直接寻址模式或通过恰当的本地地址到全局地址的扩展时执行全局指令???(查阅3.4.2.1.1,“本地地址扩展映像”)。
Example 3-2 这个例子演示了直接寻址方式的用法
——————————————————————————————————————
MOVB #0x80, DIRECT ;设置直接页面寄存器DIRECT的值为0x80。之可写一次
;对于地址范围0xXX_80XX的全局数据存取可以直接寻址
;对于地址范围0x80XX的逻辑数据存取可以直接寻址
LDY <00 ;从0x8000开始装载变址寄存器Y(直接存储,随即寻址)。
; <操作强制对一些汇编
——————————————————————————————————————
的力量直接访问一些组装,但在许多情况下,装配“直接页意识”,可以自动选择直接模式。
未完。。。