第一个ARM程序板子上运行了,程序节选如下 Keil MDK3.04环境下, LPC2104,11.0592MHz晶振
#define _LED (1<<10)
void Delay( INT32U m_sec ){ INT32U i; while(m_sec--){ for( i=2765; i; --i ); // 特别说明, 2765这个常数是在Keil环境下软件仿真得到的, 仿真前设置晶振11.0592MHz } }
int main( void ){ ...
for(;;){ IOSET = _LED1; delay(500); // 延时500ms IOCLR = _LED1; delay(500); // 延时500ms } }
以上程序在FLASH中运行时(禁止MAM),LED闪烁速度明显的慢,放到RAM中运行则速度比较正常。在Keil的Startup.s文件中允许MAM模块,再放到FLASH中运行则速度也比较正常了。
Keil的Startup.s文件中默认是关闭PLL的,也就是说我的主频应该就是晶振的频率11.0592MHz,但按照手册上说20MHz以下可以不用开MAM模块,哪我到底是要不要开MAM呢?! |