嵌入式Linux启开工夫优化的机密之一东西链使用法式优化

导读:嵌入式Linux在应用中往往希望系统能在尽量短的时间内启动,以提高用户体验。而且在有的应用场合,对启动时间具有严格的时间要求,尤其在工业或者医疗器械应用领域。此时如何加快Linux的启动,将成为一个挑战,对于大多数应用开发人员而言,由于Linux系统的复杂性,对于如何提高启动速度,往往无从下手。那么阅读完本文,将获得清晰完整的解决思路。

引导操作本质上的很大一部分工作实际上是将代码和数据从存储设备加载到RAM。如所需加载内容越少则意味着加载操作越快。

另外在硬件方案设计时尽量选择读写速度快的存储介质。例如,从SD卡启动实际上比从NAND FLASH启动快。

在Linux代码中加入对某一个GPIO脚的逻辑电平控制,利用示波器测量GPIO状态。后面将介绍如何在代码中加入对GPIO的控制。

选择使用合适的工具链,应是第一个入手点,因为所有的运行加载固件都是由工具链编译而成。如果尚未进行其他优化,则更改工具链的好处将更加明显,并且更容易度量。

可能会影响代码性能和代码大小(Thumb2编码与ARM相同的指令,但以更紧凑的方式,至少会显着减小大小)。

性能方面:Thumb2的性能明显改善(大约少于5%,但是从一次运行到另一次运行,测量的执行时间略有变化)。

例如,轻松查找打开尝试(open()),文件访问(read() /write() )和内存分配(mmap2() )。无需访问源代码即可完成!

Perf 是内置于Linux 内核源码树中的性能剖析(profiling)工具。它基于事件采样原理,以性能事件为基础,支持针对处理器相关性能指标与操作系统相关性能指标的性能剖析。可用于性能瓶颈的查找与热点代码的定位。linux2.6及后续版本都自带该工具,几乎能够处理所有与性能相关的事件

创建一个自定义的链接描述文件,以按调用顺序重新排列这些函数。可以通过将每个函数放在各自的部分中来实现:

特别对于具有较大MTD读取块的闪存存储特别有用。因为读取整个读取块后,极有可能读取不必要的数据。

2.再次启动应用程序并测量其启动时间。由于它的代码应仍在Linux文件缓存中,故其代码加载时间将为零。

然后据此可以决定是否有必要这样对该应用进行链接优化。由于链接优化必须修改应用程序的编译方式,因此此类优化的成本很高。

Prelink是Red Hat 开发者 Jakub Jelinek 所设计的工具,正如其名字所示,Prelink利用事先链接代替运行时链接的方法来加速共享库的加载,它不仅可以加快起动速度,还可以减少部分内存开销,是各种Linux架构上用于减少程序加载时间、缩短系统启动时间和加快应用程序启动的很受欢迎的一个工具。

必须配置为知道哪些库需要进行预链接,并将为每个可用符号分配一个固定的地址,从而消除了在启动可执行文件时重新定位符号的需要。

支持ARM,但自2013年以来未发布。Buildroot也不支持。但是,x86比较容易实现。

工具链/应用程序优化的部分就在此结束了,下篇我们将继续讲嵌入式Linux启动时间优化的方法之文件系统,请大家继续关注我们电子发烧友网和嵌入式客栈。

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服

我们继续上篇没有讲完的嵌入式Linux启动时间优化方法,本文主要会讲文件系统。想看上一篇的请查看本文….

Red Hat Enterprise Linux (RHEL) 7.8 已发布,这是 RHEL 7 ….

做嵌入式的你必须知道的国产CPU之路以2019年5月华为被ARM禁售事件为标志,国内掀起了一波轰轰烈烈的国产芯片讨论…

我对嵌入式工程相当陌生,因为这是我的第一个嵌入式项目。我有ADC设置,可以在手表上看到数据,我还有SD卡,在H…

Sitsang开发平台是Intel专为嵌入式处理器PXA255设计的一个综合开发平台。PXA255 是Intel推出的取代StrongA…

随着GJB5000A-2008《军用软件研制能力成熟度模型》在我国科研单位的逐步应用推广,软件产品研制过程的工程化要求越…

Vim是Linux操作系统中最常用一个编辑器。如配置文件的更改、环境变量的设置等等基本上都是在这个vim编辑器上完成。所…

我们生活在一个五彩缤纷的模拟世界,而在数字化高速发展的今天,如何将模拟的信号 转化到数字领域显得尤其重要,这就需…

ARM系列处理器是 RISC (Reducded InSTructiON Set Computing)处理器。很多基于ARM的高效代码的程序…

嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗…

报告显示,2019年全球力传感器市场价值为18亿美元,预计到2025年将达到25.3亿美元,在202….

工业控制是指工业自动化控制,主要通过工控机、电子、机械、软件的组合来实现。工业控制或工厂自动化。主要….

2019年10月24日,也就是“1024程序员节”的时候,腾讯突然发布了Linux系统版本的QQ,官….

说起国产OS操作系统,统信软件旗下的统一操作系统UOS无疑是近期最为活跃的一个,软硬件适配越来越广泛….

Swift 开发团队表示,其即将推出的 5.3 版本的目标包括“增加对 Windows 和其他 Li….

Linux Mint项目负责人Clem Lefebvre今天宣布:Linux Mint 20的内部代….

据介绍,统信UOS沿用了中国团队研发的深度操作系统,支持33种语言,累计下载量超过8000万次,志愿….

基本的Linux根文件系统是Unix文件夹目录层次结构,skeleton是构建根文件系统的基础。 ….

如其官网上所述,具有十大黄金法则:小巧、快速、简单、可移植、可配置、可调试、易用、可维护、优雅、开源….

The Register 报道称,为努力扩大支持 Swift 编程语言的平台数量,5.3 版本将覆盖….

The Register 报道称,为努力扩大支持 Swift 编程语言的平台数量,5.3 版本将覆盖….

Linus 在官方公告中表示,“我承认在进行此 5.6 版本的发布与执行另一个-rc 之间是摇摆不定….

从2016年起,业界便开始探索模型加速和小型化的研究,也提出了大量小型化方案。这些技术可以消除 DN….

Linus Torvalds今天顺利发布了Linux Kernel 5.6版系统内核的正式版本,改进….

【导读】:在嵌入式系统中经常需要采集模拟信号,采集模拟信号的信号链中难免引入干扰,那么如何滤除干扰呢….

解决多云复杂性将是未来几年IT专业人员面临的主要挑战。当我们考虑未来的网状多云的管理平面时,它们将需….

Linux PC 制造商 System76 准备通过添加新设备来扩展其硬件单元,不过这一次不是 Li….

Linus Torvalds 在内核邮件列表上宣布释出 Linux 5.6。Torvalds 称,他….

Fedora 项目设想了一个世界,每个人都将从包容、热情和开放的社区构建的自由和开源软件中受益。

Linus Torvalds 在内核邮件列表上宣布释出 Linux 5.6。Torvalds 称,他….

本文就是考虑到这一现状,结合基于Linux操作系统下的TCP/IP网络通信原理,给出了一种基于TCP….

近日有外国极客成功将Ubuntu Linux系统刷入一部微软Lumia 950 XL,得到了一台“真….

Android 模拟器 Emulator 30.0.5 稳定版发布了,这主要是一个 bug 修复版本….

知名 Linux PC 制造商 System76,刚刚为爱好者们推出了一款专属的键盘外设。公司首席执….

气动人工肌肉,是人造肌肉(artificial muscle)的一种。人造肌肉即电活性聚合物,是一种….

这里先要做一个说明,对于ARM的应用开发主要有两种方式:一种是直接在ARM芯片上进行应用开发,不采用….

本项目旨在(并且成功)粉碎这些概念。下图中您所看到的开发板基于ATmega1284P。我(歪果仁)还….

在新冠病毒爆发期间,Linus Torvalds 宣布了 Linux 5.6 的第七个每周候选版本,….

Linux 5.6 引入了可选的 F2FS 透明数据压缩支持,并通过 LZO 和 LZ4 压缩算法实….

在传统系统环境中,病毒、恶意软件、黑客等是网络攻击的主要形式。在物联网中,需要关注设备被盗、设备操纵….

近日,Google宣布为Linux系统开发了一种安全工具,可通过识别可疑的击键速度来阻止恶意U盘设备….

操作系统被认为是计算机的大脑。随着信息技术的高速发展,操作系统的重要性和地位日益凸显。但令人遗憾的是….

WireGuard 是 Linux Kernel 5.6 新增的重要功能之一,经过多年的开发,现在可….

DSP有限的片内存储器容量往往使得设计人员感到捉襟见肘,特别是在数字图像处理、语音处理等应用场合,需….

目前,越来越多的FPGA设计开始采用嵌入式处理器,如PowerPC和赛灵思(Xilinx)的Micr….

随着科技与经济的发展,汽车数量也逐渐增多,交通管理问题日渐严峻。如何建立一个科学有效的交通管理系统是….

摘要:以MapInfo系统和VB5.0为例系统地介绍了使用嵌入式技术开发地理信息系统(GIS)应用软….

FPGA 嵌入式设计 中,常通过软件编程的方式来访问或者控制某些外围设备.电路设计软件Altium ….

未经允许不得转载:主机宝贝 » 嵌入式Linux启开工夫优化的机密之一东西链使用法式优化

评论 抢沙发

评论前必须登录!