在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部件
}