俺在进行为EP9315的wince系统添加开机启动图片的工作时,对其中KERNEL/HAL/COMMON/STARTUP.S添加自己的代码,编译后烧进flash再启动,发现图片没有显示,系统启动时间却大为提高了。
究其原因,主要是由于startUP.S中的操作有关。一般都是先关看门狗、关中断、配置SDRAM、关mmu,如果不是xip接着就是配置flash,把flash中的romdll拷到sdram,其后就是板级配置和OEMAddressTable,最后跳到KernelStart~
对系统时钟配置都在板级配置SysconSetup中进行,而之前程序都是以上电默认时钟进行,而默认时钟是多少?看DATASHEET知,
PLL1_X2FBD2(PLL1_X2反馈倍频)=7,
PLL1_X1BD1(PLL1_X1馈倍频)=19,
PLL1_X2IPD(输入分频)=7。
算算输出频率多少:14.7456*(19+1)*(7+1)/(8*8)=36.864MHZ,~~
俺在flash拷贝程序之前就加入了时钟配置:
/
ldr r0,=0x80930000
mov r2,#0xaa
str r2,[r0,#0xc0] ;SysSWLock
ldr r2,=0x02a4a3d7
str r2,[r0,#0x20] ;CSC_CLKSET1
/
PLL1_X2FBD2(PLL1_X2反馈倍频)=30,
PLL1_X1BD1(PLL1_X1馈倍频)=20,
PLL1_X2IPD(输入分频)=23,
输出频率:14.7456*21*31/24=399.9744MHZ~~
总线时钟提高了,FLASH拷贝的速度自然也会提高,也就在拷贝代码阶段节省了时间。