嵌入式linux的调试时间,嵌入式LINUX启动时间优化

目录:

1. 实践过程

2. 参考帖子

2.1 嵌入式Linux-启动时间优化:

要点如下:

优化第一步:

?? 修改u-boot,把QSPI的读取速度进行提升

优化第二步:

??? 对内核进行裁剪,把不需要的硬件驱动砍掉

优化第三步:

?? 自定义rootfs,缩小文件系统,以及对inittab、rcS脚本的冗余裁减。

从网上找的一些优化的思路:

1.? 用Image替代zImage,zImage是压缩后的内核镜像文件,所以使用Image就省去的加载时的解压所消耗的时间(大概可以节省2~3秒的启动时间)。但若使用Image则应考虑NandFlash的空间是否够用。

2.文件系统镜像有ramdisk、jffs2和cramfs三种,内核加载这三种镜像的速率cramfs最快,其次jffs2,最后是ramdisk。其中cramfs是只读文件系统。通常一个产品是三者的结合。

3.优化bootloader,减少其运行时间。

4.减少kernel体积,比如将不是在启动阶段必须加载的驱动模块留在文件系统后面加载,减少kernel的运行和加载时间。

5.优化或关闭调试串口输出。

6.驱动程序放在文件系统后面加载,先显示应用程序界面,再在后台加载必要的驱动模块。

7.将整个系统运行环境保存到RAM中,加电只是个系统恢复过程。

仔细优化kernel和每个驱动模块,将每个部分的延时调试到最快。

应用程序的优化,减少应用程序的启动时间。

10.生成系统启动时间报告

较为简单可行的方式是通过PrintkTime功能为启动过程的所有内核信息增加时间戳,便于汇总分析。PrintkTime最早为CELF所提供的一个内核补丁,在后来的Kernel 2.6.11版本中正式纳入标准内核。所以大家可能在新版本的内核中直接启用该功能。如果你的Linux内核因为某些原因不能更新为2.6.11之后的版本,那么可以参考CELF提供的方法修改或直接下载它们提供的补丁:http://tree.celinuxforum.org/CelfPubWiki/PrintkTimes

开启PrintkTime功能的方法很简单,只需在内核启动参数中增加“time”即可。当然,你也可以选择在编译内核时直接指定“Kernel hacking”中的“Show timing information on printks”来强制每次启动均为内核信息增加时间戳。这一种方式还有另一个好处:你可以得到内核在解析启动参数前所有信息的时间。因此,我选择后一种方式。

当完成上述配置后,重新启动Linux,然后通过以下命令将内核启动信息输出到文件:

dmesg -s 131072 > ktime

然后利用一个脚本“show_delta”(位于Linux源码的scripts文件夹下)将上述输出的文件转换为时间增量显示格式:

/usr/src/linux-x.xx.xx/scripts/show_delta ktime > dtime

这样,你就得到了一份关于Linux启动时间消耗的详细报告。

2.2 嵌入式 Linux 启动时间优化- goodluckwhh:

2.3 嵌入式linux启动时间优化-qinus:

原文:https://www.cnblogs.com/agui125/p/10070559.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值