在做TI的方案开发的时候,一直就不是很满意它的系统启动时间,不光是从xload进入到uboot,uboot运行及加载内核,这几项所耗的时间就大概有10s之久。当内核起来之后,各项外设驱动的加载及初始化所耗的时间也是相当惊人的,从内核加载成功到LCD亮起来显示内核logo(小企鹅),这个时间也大概有5s之久,真的是要受不了了!!
看了一下系统启动的log,发现内核加载成功之后到LCD显示logo之前,初始化了诸如USB、I2C、UART等比较耗时的设备,也不知道TI官方当初为什么要这么去做,总觉得不是很好,因为手持设备从按下开机按键到LCD显示logo这段时间是最让人受不了的!那么为什么不让framebuffer及LCD的初始化放在这些耗时的设备之前呢?
网上找了一下相关的资料,内核在加载设备驱动的时候是有一定的顺序的,在include/linux/init.h这个文件里有如下这段代码: