u-boot引导kernel如何提速

来源:互联网 发布:创业软件股吧 编辑:程序博客网 时间:2024/05/20 14:24

1. 移除u-boot启动过程中不必要的模块,如net;

2. 减少不必要的串口打印信息(改善明显);

3. 优化emmc读取时序,缩短读取emmc延时的时间间隔(改善明显);

4. u-boot从emmc加载uramdisk和uImage的镜像文件到内存,从镜像头部动态读取镜像文件大小,既可以缩短加载时间,又不会因后续uramdisk和kernel升级镜像文件大小变化而受影响;

5. 将u-boot中使用较频繁的用C语言实现的memcpy和memset函数改为高效的汇编语言实现;

6. 当kernel加载的地址=kernel在内存中的实际地址(去掉前面64字节的头部)时,memmove部分不执行,可以节省40ms的时间;

7. 将环境变量environment区大小从128k调整为16k,缩短环境变量区初始化时间;

8. 裁减内核大小,进一步缩短镜像加载时间;


注意:统计u-boot加载时间的时候,可以用示波器记录两个信号的波形变化,一个是电源上电的波形,一个是跳转到内核之前的GPIO的波形变化。u-boot中文件lib_arm/bootm.c,do_bootm_linux函数中,theKernel (0, machid, bd->bi_boot_params)之前作个GPIO标记;

0 0
原创粉丝点击