BootLoader--改进(基于2440)

BootLoader--改进

之前编写的Bootloader启动内核时间使用差不多7秒钟的时间,大多都是用在CPU将内核从Nandflash读取到SDRam中,故首先想到的方法是改变CPU时钟频率。

1. 提高CPU频率(200MHZ->400MHZ)

  • 设置时钟:12MHZ晶振,CPU时钟为400MHZ:MDIV(0x5c) PDIV(1) SDIV(1)
  • 设置分频系数:将1:2:4变为1:4:8,故CLKDIVN寄存器设置0x5
结论:上电启动开发板,启动速度并没有变化

2. 将icache启动

  • 启动icache
/* 启动ICACHE */
mrc p15, 0, r0, c1, c0, 0	@ read control reg
orr r0, r0, #(1<<12)
mcr	p15, 0, r0, c1, c0, 0 @ write it back
结论:上电启动开发板,启动只需要2S左右,大大提高

3. 总结

我们知道CPU包括指令Icache和数据Dcache,程序在SDRAM中,如果不使用指令Icache,则CPU会直接向SDRAM中取指令执行,每一次执行指令则都需要访问SDRAM,效率非常低下。Icache作为高速内存,会存储CPU最近常用的指令,CPU执行指令只需要从Icache当中取出,效率大大提高,故打开Icache使得效率大大提高。

posted @ 2017-07-16 22:22  lkq1220  阅读(172)  评论(0编辑  收藏  举报