当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]如何以低成本将Linux 内核移植到嵌入式处理系统

随着基于 Linux 的嵌入式系统得到日益广泛的应用,人们不禁要问,类似 Linux 这样的免费开放源代码操作系统的真正成本到底是多少?要将 Linux 内核移植到定制嵌入式处理系统,您必须对产品所需要的内核功能、这些功能对其他内核服务的依赖程度以及您的工程团队的技能都有深入的了解。

  
我们很多人都看过为如何使用 Linux 源代码提供指导的 GNU 通用公共许可证 (GPL)。要确定在系统中使用 Linux 的成本,一般来说,第一步是了解 Linux 的哪些部分是真正免费且不受法律约束的,哪些部分是需要小心保护的。这有点类似于通过评估商业操作系统或 RTOS(实时操作系统)提供商来确定其产品中所包含的功能和费用。
  
显然,需要做出的一个决定,是购买商业 Linux 发行版,还是设法解决免费 Linux 发行版移植的问题。很多工程师使用 Linux 只是为了利用其现有服务的一小部分,如文件系统、TCP/IP 和 HTTP 或 THTTP 等网络服务。如果您只需要很少的服务,移植自己的 Linux 内核可能不那么耗时,价格也不那么昂贵。
  
商用操作系统 已将其产品移植到许多最常用的处理器中,并提供可在各种标准硬件平台上运行的板支持包 (board support package, BSP),这正是商业操作系统的优势所在。遗憾的是,如果要设计定制嵌入式处理系统,商业操作系统可能产生为嵌入式硬件系统创建定制 BSP 服务的其它费用,除非能将BSP 的生成自动化。而这就是荣获大奖的 Xilinx Platform Studio (XPS) 工具套件的众多功能之一:在赛灵思 嵌入式处理设计中,BSP 和库的生成都实现了自动化。
  
为了更好地了解这一过程,让我们来看看构建一个完整的操作系统所需要的各种软件和硬件层。图 1 是对 Linux 系统中多个层次的图解。最底层是微处理器及其外设,这代表硬件层。要与这些外设进行通讯,需要能与 Linux 内核兼容的软件驱动程序。该内核还包括启动功能和中断处理等非常重要的服务,这些功能高度依赖于系统的架构,通常针对特定处理器和系统架构进行定制。


  图1: Linux 系统软件和硬件层分布  

  
当底层的硬件平台发生变化时(通常是为了容纳新的应用程序功能),内核也就必须随之而改变,而这需要时间,并会增加设计成本。对于为特定应用程序量身打造的高度定制的处理平台,这种情况已是司空见惯。设计人员通常使用基于 FPGA 的嵌入式系统,以便优化系统架构,获得硬件性能和软件灵活性的最佳平衡。此外,如果要设计自己的定制嵌入式平台,还必须考虑为新外设编写定制驱动程序和确定内核配置文件的合理设置所需要的时间,以及充分测试新内核所需要的验证时间。
  
使操作系统设置自动化
  
利用 XPS,嵌入式系统设计人员可以构建并优化系统,使下列任务的执行自动化:分配地址映射、为外设配置驱动程序、链接所有必需的库,等等。完成这些设置后,系统即准备就绪,可以开始编写首个应用程序了。但如果要编写的应用程序是一个完整的操作系统的话会怎样呢?这就是 Xilinx 创新方式的巧妙所在,利用它可以自动化类似 Linux 的定制操作系统 的生成。
  
XPS 有一种方法,可以通过微处理器库描述 (microprocessor library description, MLD) 文件导出有关微处理器、外设和系统架构的信息。MLD 文件包含定制软件库和为操作系统生成 BSP 的指令。

每个 操作系统/库都有 MLD 文件及与其相关的 Tcl(tool command language,工具命令语言)文件。依据嵌入式设计系统架构,Tcl 文件使用 MLD 文件定制 操作系统/库。对许多 Xilinx 操作系统合作伙伴来说,这些文件都是现成的。例如,对于 µClinux,只需从菜单中进行选择即可,如图 2 所示。对嵌入式系统硬件的更改会自动更新库,并重新生成控制内核构建方式的内核配置文件。

  

图2:在 XPS 软件平台设置窗口进行 μClinux 设置XPS 还会生成“auto-conf.in”文件,自动配置过程会使用该文件为 µCLinux 内核构建 makefile。无需重新设计内核配置文件,就可以自动重新构建内核;考虑到一个“auto-config.in”文件的条款内容大约有 380 行之多,这一功能节省的时间就颇为可观。逐个手动更新这些文件既容易出错,又耗费时间。此文件的一小部分如图 3 所示。[!--empirenews.page--]


                                                图3:XPS生成的 µClinux “auto-conf.in”文件的一部分
  
MLD 技术是一种通用技术,可用于其他操作系统。例如,Green Hills 的 Integrity 操作系统也使用这一技术。
  
结论
  
随着对更高性能嵌入式系统的需求的增加,我们将不断看到包含针对特定市场专用硬件的新的嵌入式处理系统架构。开发这些系统要求使用一种迭代过程,以把软件应用程序的编译和配置结合起来,同时还要照顾到硬件协处理元件和专用外设。
  
如果每次迭代嵌入式处理硬件平台时都手动更新 Linux 或其它操作系统内核,只会浪费宝贵的工程时间。而将这些任务自动化后,对于用到操作系统的嵌入式系统,就能大幅降低其开发成本。
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

Linux电脑输入poweroff退出操作系统后电源会自动切断,而嵌入式Linux如果没做特殊处理 输入poweroff关闭系统后电源依旧保持着。敲击键盘也不会有响应。原因是CPU和主板之间有着行业标准,比如ACPI(A...

关键字: Linux 电源 硬件IO

经过几十年发展,嵌入式技术已经用在了我们生活中的方方面面,但是嵌入式始终都带有小众,专业性强的属性,让很多非嵌入式领域的同学望而却步。近十几年的发展,物联网覆盖了越来越多领域,包括了家居,商业,工业,农业等领域,不仅吸引...

关键字: 嵌入式 物联网 技术

随着IT技术飞速发展,互联网已经进入了“物联网”时代。物联网中需要的大量设备不在依赖人与人之间的交互产生联系,更多通过协议、通信、程序设计等方式连接到一处。即 “物联网”的目的则是让所有的物品都具有计算机的智能但并不以通...

关键字: 嵌入式 物联网 计算机

最近看到APP上,给我推送了很多类似的回答,借此机会,也想着重新审视一下自己的学习历程,以及结合自身和大牛,分享一些学习经验,希望对大家有所启发和帮助。

关键字: APP 嵌入式 C语言

万物智联时代,嵌入式技术及其应用的形态将更加丰富和多元,同时也将日益呈现深度物理融合、混合架构共存、群体智能协同、网络安全攸关等诸多新的计算特性。显然,经典的嵌入式系统体系结构、软硬件技术和开发方法都已很难应对新趋势下的...

关键字: 嵌入式 物联网 计算机

物联网是新一代信息技术的重要组成部分,是互联网与嵌入式系统发展到高级阶段的融合。通用计算机经历了从智慧平台到互联网的独立发展道路;嵌入式系统则经历了智慧物联到局域智慧物联的独立发展道路。

关键字: 嵌入式 物联网 计算机

今天,小编将在这篇文章中为大家带来工控主板的有关报道,通过阅读这篇文章,大家可以对工控主板具备清晰的认识,主要内容如下。

关键字: 工控主板 嵌入式 主板

随着工业4.0、医疗电子、智能家居、物流管理和电力控制等快速的发展和推进,嵌入式系统利用自身的技术特点,逐渐成为众多行业的标配产品。嵌入式系统具有可控制、可编程、成本低等,它在未来的工业和生活中有着广阔的应用前景。在现在...

关键字: 嵌入式 物联网 人工智能

长久来看,嵌入式只会越来越火,随着人工智能时代的发展,嵌入式必定又将迎来一次浪潮和技术的巨大变革。人工智能越是想要表达智能水平,就越要依靠嵌入式技术,嵌入式技术将朝着自动化控制和人机交互发展。嵌入式因其体积小、可靠性高、...

关键字: 嵌入式 物联网 人工智能

嵌入式软件技术到目前为止己经在很多领域起到了中流砥柱的作用,例如在电子消费、移动通讯方面,这种技术为我国的很多行业提供了更多的可能性。未来,嵌入式软件技术会为人类做出更大的贡献。伴随着计算机技术与电子技术的成熟发展,电子...

关键字: 嵌入式 软件 人工智能

嵌入式软件

15715 篇文章

关注

发布文章

编辑精选

技术子站

关闭