您的位置 首页 系统

嵌入式Linux发动时刻优化的隐秘之五-Bootloader

嵌入式Linux启动时间优化的秘密之五-Bootloader-本文主要讲述嵌入式Linux启动时间优化的秘密,我们继续上篇没有讲完的嵌入式Linux启动时间优化方法,本文主要会讲Bootloader。想看上一篇的请查看本文结尾的链接。 Bootloader 1. 裁剪 删除不必要的功能。 通常引导加载程序包括许多仅用于开发所需的功能。用较少的功能编译您的bootloader。 优化所需的功能。调整引导加载程序以获得最快的性能。 U-Boot是事实上的嵌入式bootloader标准,对于U-Boot而言,以下一些功能在产品中可能不需要: 在include / configs / 《

  本文首要叙述嵌入式Linux发动时刻优化的隐秘,咱们持续上篇没有讲完的嵌入式Linux发动时刻优化办法,本文首要会讲Bootloader。想看上一篇的请查看本文结束的链接。

  Bootloader

  1. 裁剪

  删去不必要的功用。

  一般引导加载程序包含许多仅用于开发所需的功用。用较少的功用编译您的bootloader。

  优化所需的功用。调整引导加载程序以取得最快的功用。

  U-Boot是事实上的嵌入式bootloader规范,关于U-Boot而言,以下一些功用在产品中或许不需求:

  在include / configs / 《soc》-《board》 .h中禁用尽或许多的功用

  示例:MMC,USB以太网,dhcp,ping,指令行版别,指令完结提示。

  较小且更简略的U-Boot加载速度更快,初始化速度更快。

  移除发动延时:

  消除发动推迟,这样一般能够节约几秒钟!:

  setenv引导推迟0

  在履行此操作之前,请先运用

  CONFIG_ZERO_BOOTDELAY_CHECK从头编译U-Boot,

  参阅文档在doc / README.autoboot中。即便发动推迟设置为0,它也能够经过敲键来中止主动发动进程。

  2. 简化脚本

  有些状况,脚本很杂乱,如:

  

  在ARM9(400MHz)可节约大约56ms

  3. 仿制精确巨细的内核

  将内核从ROM仿制到RAM时,依然看到许多体系仿制了太多无用字节,而没有考虑切当的内核巨细。

  在U-Boot中,运用nboot指令:

  nboot ramaddr 0 nandoffset

  U-Boot运用存储在uImage标头中的内核巨细信息来知道要仿制多少字节。

  4. 优化内核加载

  将内核uImage仿制到RAM之后,U-Boot一直将其移动到uImage标头中指定的加载地址。还履行CRC查看。

  能够经过将uImage直接加载到正确的地址来使U-Boot越过memmove操作。

  核算此地址:

  Addr = Load Address – uImage header size

  Addr = Load Address – (size(uImage) – size(zImage))

  Addr = 0x20008000 – 0x40 = 0x20007fc0

  在生产中时数据一般不会损坏将内核仿制到RAM时,能够考虑禁用CRC查看

  禁用带有U-boot环境变量的CRC查看:

  setenv verify no

  封闭U-Boot控制台输出。需求运用以下指令编译U-Boot

  CONFIG_SILENT_CONSOLE和setenv silent yes.

  有关详细信息,请拜见doc / README.silent。

  5. 越过bootloader直接发动内核

  原理:当即加载内核,而不是先加载引导加载程序,再加载内核!

  例如在Microchip AT91上,运用at91bootstrap v3即可轻松完成。

  您只需求运用linux或linux_dt装备之一进行装备:

  make at91sama5d3xeknf_linux_dt_defconfig

  make

  关于 U-Boot Falcon 形式:

  U-Boot分为两部分:SPL(二级程序加载程序)和U-Boot映像。 然后,U-Boot能够装备SPL来直接加载Linux内核,而不是U-Boot映像。

  有关详细信息,请拜见doc / README.falcon和

  http://schedule2012.rmll.info/IMG/pdf/LSM2012_UbootFalconMode_Babic.pdf进行原始演示。

  一切支撑SPL的U-Boot板上均以相同的方法支撑此功用。

  修改连载引荐:嵌入式Linux发动时刻优化的隐秘之一东西链/应用程序优化

  修改连载引荐:嵌入式Linux发动时刻优化的隐秘之二文件体系

  修改连载引荐:嵌入式Linux发动时刻优化的隐秘之三-内核

  修改连载引荐:嵌入式Linux发动时刻优化的隐秘之四-发动脚本

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/xitong/86773.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部