我们再来看一下LPC2300 ARM的MAM工作模式.LPC2300系列ARM允许用户设置MAM的加速级别,使芯片应用于某些对功耗和可预见性有要求的场合.MAM定义了如下的三种工作模式:
从图中可以看出MAM功能会使系统耗费更多的能量,但预见性会提高.
MAM部分使能:
CPU顺序执行时所需要的代码由缓冲区提供,但是成像跳转后需要对Flash进行读操作.此外,若数据缓冲区中的数据可用,则从其中获取数据.但是,为了保证可预见性,同时也为了不增加功耗,MAM还是会虚拟一次对Flash的读操作.该模式下,CPU具有较好信号,较低的功耗,数据的可预见性也比较好.至于是如虚拟的,我目前还不清楚.
MAM完全使能:
CPU对需要的任何代码或数据,都会尝试先从喊出去中读取.如果存在,那么从缓冲区执行该代码或对该数据执行访问,否则对Flash执行读操作.该模式下,CPU具有最好的性能,但是系统的功耗身高,可预见性降低.
模式配置:
在复位后,MAM默认问禁止状态.用户可以随时将MAM打开或关闭.通常,我们都会把加速设置为完全使能,以使程序最高速度运行.而运行某些要求更坚强定时的代码时,我们可以关闭或部分关闭使能MAM,以较慢但可预测的速度运行代码.
MAM的寄存器只有两个,分别是MAM控制寄存器(MAMCR),MAM定时寄存器(MAMTIM):
.MAMCR:用于配置MAM的操作模式
.MAMTIM:用于配置访问片内Flash存储器的CCLK周期数.
只须用好这两个寄存器即可完成对MAM的各项操作.
在改变MAM定时值是须先光MAM.
然后将新值写入MAMTIM.
最后将需要的模式的对应值写入MAMCR,打开MAM.
在编程和擦除操作过程中不运行访问Flash存储器,若CPU发出访问Flash请求,MAM会强制CPU等待.此时,用户许注意看门狗溢出的可能.
为了防止从Flash存储器中读取无效的数据,Flash编程或擦除操作开始后MAM将不缓冲任何数据.所以,Flash操作结束后,任何Flash读操作都将启动新的取指操作.
Flash编程不受存储器加上模块的控制,而是作为一个独立的功能另行处理.
上一篇:快速学Arm——存储器加速模块(1)
下一篇:ARM与不同位宽存储器的地址线错位接口 , 外部总线接口深
推荐阅读最新更新时间:2024-11-11 02:25
设计资源 培训 开发板 精华推荐
- X-NUCLEO-IKS01A2,用于 STM32 Nucleo 的运动 MEMS 和环境传感器扩展板
- LT1952 高性能 100W 正向转换器以极低的成本取代电源模块
- NCP10970BGEVB:NCP10970B 评估板
- 【涂鸦智能】温湿度传感器
- LT1230 的典型应用 - 四路 100MHz 电流反馈放大器
- AD8618ARUZ-REEL单电源降噪运算放大器典型应用电路
- AM2G-4803DH30Z ±3.3V 2 瓦 DC-DC 转换器的典型应用
- DI-140 - 用于便携式音频播放器的 10W 适配器,具有锁存过压和过温关断保护
- MPU6050 姿态传感器验证板
- LTC3630AIMSE 5V 至 76V 输入至 5V 输出、高效率、500mA 稳压器的典型应用电路