ARM中MAM使用注意事项

     在ARM内核中没有接口管理Flash存储器,存储加速模块就是专门管理Flash的模块。当改变 MAM 定时值时,必须先通过向 MAMCR 写入 0 来关闭 MAM,然后将新值写入 MAMTIM。最后,将需要的操作模式的对应值写入MAMCR,再次打开MAM。 
对于低于 20MHz 的系统时钟,MAMTIM 设定为 0x001。对于 20MHz 到 40MHz 之间的系统时钟,建议将Flash访问时间设定为2cclk,而在高于40MHz的系统时钟下,建议使用3cclk。

 

例如

void MAMSet(uint 32FCCLK)

{

 MAMCR=0;                                                               //关闭MAM部件

       if(FCCLK<20000000)                                             //如果系统时钟小于20MHz,则Flash读取操作时钟为1clk

       {

            MAMTIM=1;

       }

      else

     {

            if(FCCLK<40000000)                                       //如果系统时钟大于20MHz而小于40MHz

           {                                                                            //则Flash读取操作时钟为2clk

               MAMTIM=2;

           }

         else

          {

              MAMTIM=3;                                                   //如果系统时钟大于40MHz,则Flash读取操作时钟为3clk

         }

   }

   MAMCR=2;                                                              //启动MAM部件

}

你可能感兴趣的:(ARM中MAM使用注意事项)