论文部分内容阅读
随着基于Linux的嵌入式系统得到日益广泛的应用,人们不禁要问,类似Linux这样的免费开放源代码操作系统的真正成本到底是多少?其实,最主要的成本是在劳动力上。要将Linux内核移植到定制嵌入式处理系统,您必须对产品所需要的内核功能、这些功能对其他内核服务的依赖程度以及您的工程团队的技能都有深入的了解。更重要的是,要了解可以借助哪些新技术来使这些任务自动化,以达到节省成本的目标。
开放源代码与商业操作系统
我们很多人都看过为如何使用Linux源代码提供指导的GNU通用公共许可证(GPL)。要确定在系统中使用Linux的成本,一般来说,第一步是了解Linux的哪些部分是真正免费且不受法律约束的,哪些部分是需要小心保护的。这有点类似于通过评估商业操作系统或RTOS(实时操作系统)提供商来确定其产品中所包含的功能和费用。
显然,需要做出一个决定,是购买商业Linux发行版,还是设法解决免费Linux发行版移植的问题。很多工程师使用Linux只是为了利用其现有服务的一小部分,如文件系统、TCP/IP和HTTP或THTTP等网络服务。如果您只需要很少的服务,移植自己的Linux内核可能不那么耗时,价格也不那么昂贵。
商用操作系统已将其产品移植到许多最常用的处理器中,并提供可在各种标准硬件平台上运行的板支持包(board support pack—age,BSP),这正是商业操作系统的优势所在。遗憾的是,如果要设计定制嵌入式处理系统,商业操作系统可能产生为嵌入式硬件系统创建定制BSP服务的其他费用,除非能将BSP的生成自动化。而这就是荣获大奖的Xilinx Platform Studio(XPS)工具套件的众多功能之一:在赛灵思嵌入式处理设计中,BSP和库的生成都实现了自动化。
为了更好地了解这一过程,让我们来看看构建一个完整的操作系统所需要的各种软件和硬件层。图1是对Linux系统中多个层次的图解。最底层是微处理器及其外设,这代表硬件层。要与这些外设进行通讯,需要能与Linux内核兼容的软件驱动程序。该内核还包括启动功能和中断处理等非常重要的服务,这些功能高度依赖于系统的架构,通常针对特定处理器和系统架构进行定制。
当底层的硬件平台发生变化时(通常是为了容纳新的应用程序功能),内核也就必须随之而改变,而这需要时间,并会增加设计成本。对于为特定应用程序量身打造的高度定制的处理平台,这种情况已是司空见惯。设计人员通常使用基于FPGA的嵌入式系统,以便优化系统架构,获得硬件性能和软件灵活性的最佳平衡。此外,如果要设计自己的定制嵌入式平台,还必须考虑为新外设编写定制驱动程序和确定内核配置文件的合理设置所需要的时间,以及充分测试新内核所需要的验证时间。
使操作系统设置自动化
利用XPS,嵌入式系统设计人员可以构建并优化系统,使下列任务的执行自动化:分配地址映射、为外设配置驱动程序、链接所有必需的库等等。完成这些设置后,系统即准备就绪,可以开始编写首个应用程序了。但如果要编写的应用程序是一个完整的操作系统的话会怎样呢?这就是Xilinx创新方式的巧妙所在,利用它可以自动化类似Linux的定制操作系统的生成。
XPS有一种方法,可以通过微处理器库描述(microprocessor library description,MLD)文件导出有关微处理器、外设和系统架构的信息。MLD文件包含定制软件库和为操作系统生成BSP的指令。
每个操作系统/库都有MLD文件及与其相关的Tcl(tool command language,工具命令语言)文件。依据嵌入式设计系统架构,Tcl文件使用MLD文件定制操作系统/库。对许多Xilinx操作系统合作伙伴来说,这些文件都是现成的。例如,对于~Clinux,只需从菜单中进行选择即可,如图2所示。对嵌入式系统硬件的更改会自动更新库,并重新生成控制内核构建方式的内核配置文件。
XPS还会生成“auto-conf.in”文件,自动配置过程会使用该文件为μClinux内核构建makefile。无需重新设计内核配置文件,就可以自动重新构建内核;考虑到一个“autO-config.in”文件的条款内容大约有380行之多,这一功能节省的时间就颇为可观。逐个手动更新这些文件既容易出错,又耗费时间。此文件的一小部分如图3所示。
MLD技术是一种通用技术,可用于其他操作系统。例如,Green Hills的Integrity操作系统也使用这一技术。
结语
随着对更高性能嵌入式系统的需求的增加,我们将不断看到包含针对特定市场专用硬件的新的嵌入式处理系统架构。开发这些系统要求使用一种迭代过程,以把软件应用程序的编译和配置结合起来,同时还要照顾到硬件协处理元件和专用外设。
如果每次迭代嵌入式处理硬件平台时都手动更新Linux或其它操作系统内核,只会浪费宝贵的工程时间。而将这些任务自动化后,对于用到操作系统的嵌入式系统,能大幅降低其开发成本。
欲了解有关操作系统支持的详情请登陆www.xilinx.com/cn/ise/embedded/epartners/listing.htm。
开放源代码与商业操作系统
我们很多人都看过为如何使用Linux源代码提供指导的GNU通用公共许可证(GPL)。要确定在系统中使用Linux的成本,一般来说,第一步是了解Linux的哪些部分是真正免费且不受法律约束的,哪些部分是需要小心保护的。这有点类似于通过评估商业操作系统或RTOS(实时操作系统)提供商来确定其产品中所包含的功能和费用。
显然,需要做出一个决定,是购买商业Linux发行版,还是设法解决免费Linux发行版移植的问题。很多工程师使用Linux只是为了利用其现有服务的一小部分,如文件系统、TCP/IP和HTTP或THTTP等网络服务。如果您只需要很少的服务,移植自己的Linux内核可能不那么耗时,价格也不那么昂贵。
商用操作系统已将其产品移植到许多最常用的处理器中,并提供可在各种标准硬件平台上运行的板支持包(board support pack—age,BSP),这正是商业操作系统的优势所在。遗憾的是,如果要设计定制嵌入式处理系统,商业操作系统可能产生为嵌入式硬件系统创建定制BSP服务的其他费用,除非能将BSP的生成自动化。而这就是荣获大奖的Xilinx Platform Studio(XPS)工具套件的众多功能之一:在赛灵思嵌入式处理设计中,BSP和库的生成都实现了自动化。
为了更好地了解这一过程,让我们来看看构建一个完整的操作系统所需要的各种软件和硬件层。图1是对Linux系统中多个层次的图解。最底层是微处理器及其外设,这代表硬件层。要与这些外设进行通讯,需要能与Linux内核兼容的软件驱动程序。该内核还包括启动功能和中断处理等非常重要的服务,这些功能高度依赖于系统的架构,通常针对特定处理器和系统架构进行定制。
当底层的硬件平台发生变化时(通常是为了容纳新的应用程序功能),内核也就必须随之而改变,而这需要时间,并会增加设计成本。对于为特定应用程序量身打造的高度定制的处理平台,这种情况已是司空见惯。设计人员通常使用基于FPGA的嵌入式系统,以便优化系统架构,获得硬件性能和软件灵活性的最佳平衡。此外,如果要设计自己的定制嵌入式平台,还必须考虑为新外设编写定制驱动程序和确定内核配置文件的合理设置所需要的时间,以及充分测试新内核所需要的验证时间。
使操作系统设置自动化
利用XPS,嵌入式系统设计人员可以构建并优化系统,使下列任务的执行自动化:分配地址映射、为外设配置驱动程序、链接所有必需的库等等。完成这些设置后,系统即准备就绪,可以开始编写首个应用程序了。但如果要编写的应用程序是一个完整的操作系统的话会怎样呢?这就是Xilinx创新方式的巧妙所在,利用它可以自动化类似Linux的定制操作系统的生成。
XPS有一种方法,可以通过微处理器库描述(microprocessor library description,MLD)文件导出有关微处理器、外设和系统架构的信息。MLD文件包含定制软件库和为操作系统生成BSP的指令。
每个操作系统/库都有MLD文件及与其相关的Tcl(tool command language,工具命令语言)文件。依据嵌入式设计系统架构,Tcl文件使用MLD文件定制操作系统/库。对许多Xilinx操作系统合作伙伴来说,这些文件都是现成的。例如,对于~Clinux,只需从菜单中进行选择即可,如图2所示。对嵌入式系统硬件的更改会自动更新库,并重新生成控制内核构建方式的内核配置文件。
XPS还会生成“auto-conf.in”文件,自动配置过程会使用该文件为μClinux内核构建makefile。无需重新设计内核配置文件,就可以自动重新构建内核;考虑到一个“autO-config.in”文件的条款内容大约有380行之多,这一功能节省的时间就颇为可观。逐个手动更新这些文件既容易出错,又耗费时间。此文件的一小部分如图3所示。
MLD技术是一种通用技术,可用于其他操作系统。例如,Green Hills的Integrity操作系统也使用这一技术。
结语
随着对更高性能嵌入式系统的需求的增加,我们将不断看到包含针对特定市场专用硬件的新的嵌入式处理系统架构。开发这些系统要求使用一种迭代过程,以把软件应用程序的编译和配置结合起来,同时还要照顾到硬件协处理元件和专用外设。
如果每次迭代嵌入式处理硬件平台时都手动更新Linux或其它操作系统内核,只会浪费宝贵的工程时间。而将这些任务自动化后,对于用到操作系统的嵌入式系统,能大幅降低其开发成本。
欲了解有关操作系统支持的详情请登陆www.xilinx.com/cn/ise/embedded/epartners/listing.htm。