嵌入式培训

亿元级外企Java培训企业

  • 全国服务监督电话4008270010
嵌入式培训 > 嵌入式教程 > 你必须了解的嵌入式Linux特性
  • 你必须了解的嵌入式Linux特性

    发布:达内  来源:达内  时间: 2015年06月10日

  • ...

  • & nbsp;如今,Linux正广泛应用于各种嵌入式设备的开发中,如数字电视、视讯转换盒、DVR播放器、xDSL/有线/PON调制解调器、家用路由器和网络网关。它尤其适合具有先进网络功能、大量设备驱动程序的数字家庭和家庭网络。除了嵌入式设备,Linux还支持企业级设备,如服务器和路由器。 

          此外,Linux在行动设备中也获得了青睐。市调机构In-Stat的报告显示,到2012年,中国基于行动Linux的智能手机出货量将达到中国智能手机总出货量的25.4%。 

    & nbsp;     相较其它典型的专有商用OS,Linux蓬勃发展的原因在于其是开原始码、成本低、使用快速安全。与其它OS相较,它能够更好地进行‘剪裁’,且只占用较小空间。利用Linux,再加上来自开放原始码社群的持续支持,工程师能够使用和控制原始程序代码。开放原始码社群是由熟悉Linux的工程师组成的大型社群。 

         不断改进的Linux核心 

    & nbsp;     然 而,在面对特定嵌入式应用时,Linux仍存在许多挑战,如内存空间有限,或是需要实时确定性以及高安全性能的应用。而工具链的改善、新的除错工具和性 能、不断演变的标准化努力等,都继续提升Linux对于所有嵌入式应用的价值。在这其中,Linux核心的不断改进异常重要。 

    & nbsp;      Linux 核心是应用软件采用的标准Linux API和处理器系统(应用软件执行其上)底层硬件结构之间的接口。该核心是内部组件和外部可加载模块的复杂组合,为应用程序的执行提供全面和稳定的处理环 境,提 供安全消除软件缺陷、在某种程度上防止硬件故障的能力。在开机循环期间,核心必须及时发现,并正确初始化核心系统处理器、系统内存、硬件驱动、视频卡、USB端口、网络卡和音讯处理器,而且要在开机循环期间提供是否成功的足够指示。 

    & nbsp;      维持如此复杂的程序代码收集很明显是一个 严峻的挑战。核心原始程序代码被划分为标准‘树’结构,这样子系统就能够更好地彼此隔离,有助于实现几个关键核心维护工作的分布。这种分工可大幅减少核心某 一部份产生重大变化对其他部份产生的影响。每个后续子系统的变更都将传达给主要维护者,最终到达Linux核心最上游的维护者。这些变更通常称为‘外挂程 式’,在标准格式下制作和应用。 

    & nbsp;      供货商和开发人员将他们的知识反馈到开放原始码社群以改进核心。Linux开放、分散的本 质,再加上背后强大的社群支持,使基于Linux的OS成为培养创新的良好选择。由于供货商和开发人员不断分享他们所学到的知识,因此存在这样的可能:当开发人员需要实现某种功能时,可以在Linux社群生态系统中找到并予以采用。 

         商用Linux供货商做了很多工作使Linux成为嵌入式应用中更加可行和吸引人的操作系统。 

          商用vs.开放原代码 

          当选择Linux OS时,嵌入式Linux开发人员有两个主要选择:‘免费’版本,开发人员可以下载有开放原代码授权的对象/原始程序代码;商业发行版,由不同公司维护和支持的商用产品。 

    & nbsp;     目前,大多数开发人员使用的都是免费发行版。市场研究公司VDC一份针对目前Linux使用者的2007年调查中有这样一个问题:请问您将在下一个项目中使用哪种Linux OS?结果高达71%的嵌入式系统工程师表示,愿意采用免费发行的Linux版本。
    & nbsp;      由 于众多嵌入式开发人员将在下一个设计项目中选择Linux,因此,让他们体认到免费发行版本固有的局限性非常重要。这些局限包括:缺乏丰富的Linux工 具;相较竞争的实时OS来说占用更多空间;为满足实时要求最佳化Linux所面临的挑战;支持以及开发工具有限。也就是说,‘免费’意味着不花钱使用,但 并非零成本。 

         ‘免费’≠‘零’成本 

    & nbsp;      除了决定使用商用或免费Linux版本,开发 人员还必须认识到其除错/开发工具的能力和局限。嵌入式SoC领域任何有意义的设计,都要求针对嵌入式领域的高度整合的软件开发工具。从编译器到应用各个 环节的开放原始码工具,都期望能创造良好的生产品质。开发人员期望这些工具能与更短的学习曲线无缝结合。 

    & nbsp;     充分发挥嵌入式 Linux免费发行版的优势,已经成为消费产品领域被广泛接收的现实。在这些市场上,产品执行率非常高,对程序代码的增加非常频繁,而且产品的销售成本至关 重要,所有这些都使得开放 始码模式极具吸引力。但是,人们通常希望开放原始码工具能够与生产品质密切相关,‘免费’和‘商用’并不同义。必须对核心和 SoC组件互动有深刻的了解,才能整合开放原始码/免费软件,并为处理器核心提供无缝除错环境的工具。因此,需要专业知识才能使目前的开放原始码工具顺利 工作。 

    & nbsp;     现在有若干种‘免费软件’除错解决方案,设计人员必须全面了解其局限性。例如,针对Linux核心最受欢迎的免费软件除错器是KGDB,但主要缺点是KGDB会要求重新编译核心。这对产品已经部署到现场的应用来说并不可行。修补核心还可能导入影响系统性能的程序代码变化。 

    & nbsp;     GDBServer 是另一个针对应用除错的颇受欢迎的免费软件除错器,但它也受到了严格限制。主要问题是缺乏对同时除错大量执行绪/进程的支持。随着除错的执行绪/进程数不 断增加,GDBServer性能迅速恶化,导致响应时间太慢,进而使目标系统出现故障。其它问题还涉及到:不能在相同的目标连接上除错驱动程序和应用;除 错设备驱动程序和除错共享库。了解特定应用的除错需求非常重要,应据此选择相应工具。 

          Linux核心的维护 

    & nbsp;     在决定将选择哪种OS时,开发人员的重点是选择一个完全支持其特定处理器的操作系统,并能降低总成本和缩短上市时间。这意味着大部份核心维护已经完成,因此 若他们遇到什么问题或挑战,处理器供货 商及其生态系统支持业者就能帮助解决这些问题。此外,利用供货商已正式测试的核心版本,客户在设计过程中即使不能完 全消除,也可以不断降低风险。特定处理器Linux生态系统可以利用一套标准配置和测试平台,快速而准确地隔离客户应用中的差异。 

    & nbsp;     从处理器供货商的角度来看,积极参与与其核心相关的Linux核心的维护非常重要。这些供货商最有能力实现额外的新功能,以及增加原有核心功能的稳定性,因为他们了解这些核心设计中的所有‘秘密’细节。 

    & nbsp;     以 MIPS为例,作为处理器IP公司,MIPS必须确保其新的处理器核心完全整合在Linux原始程序代码树,且所有的变更都透过对旧核心和平台的回归测试进 行正确验证。MIPS的核心维护人员必须‘签署’(核准)每个建议的‘外挂程序’。这些外挂程序由MIPS及其客户提交,可强化核心功能,并改善对现有核 心的支持和偶尔的错误修复。 

    & nbsp;     对于像MIPS这样的IP核心供货商和Linux社群来说,最有益的方式是确保其核心的所有性能 和电源管理特性能够在Linux核心中完全实现,以便为采用Linux作为设计核心OS的使用者最佳化使用者体验,并让数以百计的Linux核心编程人员 进行核心增强的同行审查。 

    & nbsp;     为了实现最佳单位面积运算能力(MIPS/每平方毫米)和最佳单位功耗运算能力(MIPS /mW),许多处理器都利用了多核心技术,在几个以较低时脉频率执行的核心间分配处理负载。这些应用能够以对称多处理(SMP)的 式进行分配,其中一项 任务是核心间的基本平分;或者采用非对称多处理(AMP),在这里特定任务被分配给一个特定核心。不论是哪种方式,Linux核心中必须有适当的支持允许 实现这些编程模型,同时对应用开发者尽可能的透明。 

    & nbsp;      另一个重要的Linux核心最佳化例子是电源管理。在今天的绿色运算环境 中,电源管理日渐重要,不仅展现在要求大幅延长电池寿命的可携式设备方面,而且展现在需要尽量减少能源浪费和热量的AC供电系统中。目前一个典型的手机必 须管理20多个不同的电源层,还不包括应用处理器SoC内和核心本身的电压岛。 

    & nbsp;     目前Linux核心电源管理支持主要集中在通过ACPI的标准PC。但是ACPI接口并不适合先进的多核心SoC,因为后者必须将一致性电源管理方案扩展至多个核心、内部SoC外围设备以及最后的外部系统外围设备(如RF功率放大器)。 

    & nbsp;      在 MIPS,我们执行了一个先进的电源管理IP模块,称为丛集电源控制器(CPC),在具体的1004K执行中,它允许对每个核心的单独控制,使核心可以进 入或离开一致性作业,并在需要的情况下彻底关掉电源。这样的电源管理模式能够进一步扩展,使核心电压和频率调变处于操作系统本身的控制之下。这个CPC模 组的功能还必须扩展至Linux核心。
       Linux开发工具 

    & nbsp;     当考虑处理器对OS的支持时,开发工具很重要。最新一代Linux开发工具利用了芯片级仪器(On-Chip Instrumentation)对除错器进行‘硬件协助’。这些工具都是特定架构的,并非所有处理器都支持这种独特的除错方 。例如,目前有的 Linux工具可以剖析Linux核心及加载模块。这些工具依赖于:处理器能够以极高的速度对PC缓存器进行透明采样,并将这些信息传送到除错器。加上来 自加载模块的符号信息(Linux设备驱动程序的典型形式),开发者能够迅速剖析Linux核心,并确定设备驱动程序可能会将什么要求放在核心上。最佳化 Linux核心性能可能对系统的性能产生巨大的影响。 

    & nbsp;      备受称赞的核心评测工具是Linux事件分析器,能够剖析整个系统。通常这些工具可撷取目标内产生的使用者选择的Linux事件,然后根据时间透过图形显示这些事件。这些撷取有时能够收集高达20秒的Linux系统活动。 

    & nbsp;     不管应用如何,开发者都应该确保他们选择的处理器架构包含一个无缝的开发环境,包括编译器、除错器、性能和剖析工具。这种性质的工具必须满足上市时间要求, 并从一个嵌入式系统设计中获取最大的性能。投资在完全整合和经过测试的厂商提供的工具和环境,包括完整的文件、支持论坛、呼叫中心、无证见解、整合、标 准,以及整个生态系统的连接,都可以缩短目前和未来设计上市时间。 

          Linux社群 

    & nbsp;     经 过多年的发展,Linux核心已经成为可扩展性最强、最可靠的操作系统之一,能够支持从低阶、单核到高阶、多核的嵌入式设备。随着稳定、极为轻便的 Linux核心、数百个支持无版税中介软件组件、数以千计的Linux开发者,以及越来越多的商用Linux软件和服务供货商的出现,Linux俨然已经 是一个有效的操作系统,不论是上市时间还是开发成本都是如此。 

    & nbsp;     我们鼓励所有的开发者在其下一个RTOS中考虑Linux,并 寻找一个提供专用Linux支持、庞大的生态系统和除错/开发工具的处理器厂商,确保能迅速为市场提供高品质的产品。当开发者决定采用Linux时,我们 鼓 他们──不论他们是采用‘免费’还是商用版本,一定要对社群有所回馈。只要我们持续维护、关注和关心核心,Linux就可以继续成长和发展,成为下一 代嵌入式设备RTOS的选择。(end)
  • 上一篇:嵌入式开发的职业前景分析

    下一篇:嵌入式Linux要学哪些东西?

网站导航
2001-2016 达内国际公司(TARENA INTERNATIONAL,INC.) 版权所有 京ICP证08000853号-56