×
单片机 > 单片机程序设计 > 详情

快速学Arm(36)--存储器加速模块(2)

发布时间:2022-09-14 发布时间:
|

我们再来看一下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编程不受存储器加上模块的控制,而是作为一个独立的功能另行处理.



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
8051单片机int字节的实现