导言
Linux作为嵌入式体系的首要东西,具有源代码敞开、彻底可定制、支撑许多网络协议、服务器等级高、可靠性高级许多长处。但现有的嵌入式Linux商场开端分解,现有的挑选包含半导体厂商供给的实例计划、嵌入式OSV供给商运用的嵌入式Linux产品、嵌入式产品开发商的自有计划和开源项目等。因为缺少一致性,造成了嵌入式开发昂扬的保护本钱,不只嵌入式开发缺少满足的专业人员,而且开发进程存在安全漏洞问题。在Yocto Project项目中,能够运用许多高效的东西,然后轻松定制嵌入式Linux产品。
1 YoCto Proiect的原理和架构
Yocto Project是一个开源项目,由Linux Foundation主导并被嵌入式业界领导者所支撑。Yocto Project与OpenEmbedded兼容,后者包含了许多开源项目的构建办法,能够作为Yocto Project的有用弥补。Yocto Project供给依据社区测验的支撑多种架构的镜像。Yocto Project的长处如下:具有高质量的构建体系,平等地支撑一切干流的嵌入式架构(ARM、Power PC、MIPS、x86(32&64位)),严密盯梢许多上游开源项目的最新发布版别,具有一致的Linux BSP格局和运用程序开发套件,还可轻松地完结从原型切换到商用嵌入式Linux产品。
Yocto Project架构中用户自界说层由用户依据需求定制,包含定制层、BSP(Board Support Package)层、特性层和中心元数据(CoreRe cipe)层。上层开源组成最常用的指令为BusyBox和Eglibc等。架构中运用的开发套件,由Poky构建体系生成穿插东西链,运用ADT installer来定制穿插开发环境,能够支撑在方针体系和sysroot上的包办理架构,包含Eclipse/Anjuta集成开发环境的插件、调用装置好的穿插东西链,以及模板和调试东西。元数据预备好了由元东西(bitbake)解析、履行。元东西笼统构建一个软件进程中的fetch、unpack、patch、configu re、cornpile、packagc等使命;一起,元东西还担任按不同软件之间的依靠联络有序地履行编译。编译成功后,用户自界说的Yocto镜像就能够在嵌入式设备上运用。Yoto Project架构图如图1所示。
2 构建嵌入式体系
构建嵌入式体系是一个嵌入式Linux项目的中心,构建体系需求界说一组语义让开发者能够描绘一个特定的构建使命,嵌入式体系担任穿插编译一个项目的整个进程,包含下载源代码、打上特定的补丁、装备、编译、装置,并将装置成果按指定格局打包。构建的嵌入式体系还要并发调度多个构建使命。好的构建体系决议了一个嵌入式Linux开发环境的功率和友好度。Yocto内核运用GIT进行源代码办理,内核功用被组织成小的调集,便利深化定制化并支撑多种内核开发流程和办理技能。所运用的运用开发套件是由Poky构建体系生成的穿插东西链,运用ADT installer来定制穿插开发环境,支撑在方针体系和sysroot上的包办理架构,包含RPM、DEB、IPK,支撑Eclipse/Anjuta集成开发环境的插件,而且还能够运用Qemu作为模拟器,模拟器支撑依据OpenGL的运用开发(QemuGL加快)。
(1)元数据Recipe
一份Recipe包含了一组元数据,而这些元数据则界说了与一个项目相关的构建信息:源代码的地址,项目相关的特定装备参数,怎么编译、装置和打包数据。丰厚的类文件有助于最大程度地重用元数据,由Profile决议挑选哪些Recipe。Yocto Project包含了一些案例Profi le,一份完好作业的Recipe或许只需求3行元数据。
(2)元数据层
元数据能够彼此层叠,以很低的保护本钱来进行深层次的定制化,一起还能够增加新的项目,调整架构相关的编译标志,掩盖某个项目特定的装备选项。
开发者供给元数据(食谱或菜谱),食谱是由一种符号性的言语所写,由元东西(bitbake)解析、履行。每份食谱都是描绘某个软件的“清单”,例如:源代码从哪里下载,需求哪些补丁文件,或许需求哪些特别编译链接选项,打包时需求的特别装备,依靠哪些其他软件等相关信息。元东西则笼统了构建一个软件进程中的fetch、unpack、patch、configure、compile、package等使命;一起,元东西还担任按不同软件之间的依靠联络有序地履行编译。
3 智能车载体系硬件规划
跟着轿车电子的开展,智能车载体系越来越遭到重视,智能车载体系经过信息的传递为车辆供给出行指引、安防、救援、长途毛病确诊等服务。长途信息服务(TelemaTIcs)即通讯网络为装置在车上的资讯体系渠道供给的多样化的信息服务。TelemaTIcS体系可分为车前座体系、车后座体系,以及车况确诊体系。
其间,车前座体系供给的服务包含通讯、导航、行车安全监督、联网资讯、路况、气候等;车后座体系的服务包含在线下载影音资讯、在线网络游戏等;车况确诊体系的服务包含保养告诉、车况预警等。现在,在车载智能体系中有日产的Carwings、通用公司的Onstar、丰田公司的G-BOOK、一汽飞跃公司的D-Partner以及荣威公司的inKanet等。其间,OnStar是以安防为主的TelemaTIcs服务,G—Book是以资讯及文娱为主的TelemaTIcs服务。
Telematics服务功用如下:
①卫星定位:经过GPS合作路途资讯,作路况报道与路途指引;
②路途救援:行车进程中,倘若产生事故或毛病意外,经过按键主动联络救援;
③轿车防窃:经过卫星定位供给失窃车辆的搜索与追寻,并短信告诉车主;
④主动防撞体系:经过传感器或雷达,感应车与车间的安全行进间隔;
⑤车况把握:车辆性能与车况的主动侦测、修理确诊等;
⑥个人化资讯接纳:收发电子邮件与个人化资讯等;
⑦多媒体文娱资讯:高画质与高音质的视听设备、游戏机、上网机、个人资讯中心随选视讯等。
⑧拖车追寻:是一种追寻经过装置在拖车的翼货车联网和移动通讯网络或卫星通讯定位数据的技能。
⑨紧迫救援:车主在行车进程中如遇到车辆缺油、缺水、毛病等现象,可经过按下紧迫按钮向服务中心进行求救。
依据智能车载体系的功用需求,把车载体系的硬件结构以模块的方式完结,智能车载体系硬件结构框图如图2所示。
要完结卫星定位和路途紧迫救援,需求经过GPS模块作路况报道与路途指引,路途救援和轿车防窃需求GSM/GPRS模块来告诉车主和收发信息。多媒体文娱资讯的用户交互需求液晶触摸屏和扬声器来完结,数据交互功用选用SD卡/USB存储。摄像头监控车表里实时的情
况,智能车载体系还需求加快度传感器来丈量加快度。
4 智能车载体系软件规划和完结进程
选用Yocto project来定制智能车载体系的软件功用模块,如图3所示。智能车载体系的软件首要完结GPS模块、显现模块、操控模块、通讯模块和文娱模块等的功用等。
4.1 定制智能车载体系渠道
在Yocto Project中,现有的元数据以功用调集来区分,经过Profile来界说用户所需求的调集,智能车载体系需求的功用有Wi—Fi、GPS、GPRS、USB、setial、keyboard、touchscreen等,所以只需求在Profile文件中修正目录:DISRO_FEATURES=”alsa ext2 touchscreen wifi usb serial keyboard…”
4.2 智能车载体系中增加一个新的项目
增加一个新项目只需求3行元数据,需求指定依靠联络、指定源代码地址、承继类,然后会依据承继的Yocto Project类来主动生成所需求的构建使命。
首要,要将源代码从网上下载。bitbake经过SRC_URI变量知道到哪里去下载源码。把需求的源代码地址指定:
SRC_URI=http://sourceforge.net/project/
4.3 定制完结进程
在Linux下装置好需求的包之后创立镜像:
$ wget http://www.yoctoprojlect.org/downloads/poky/poky-bernard-5.0.1.tar.bz2
$tar xjf poky-bernard-5.0.1.tar.bz2
$ source poky-betnard-5.0.1/poky-init-build-env poky-5.0.1build
用bitbak定制体系:
$bitbake-k poky-image-sato
运用模拟器,模拟器中用户可运用终端:
$pokyr-qemu qemux86
定制进程完结,用户能够定位车载、收发信息,并实时监控车表里状况以及享用听歌、播映视频、上网等智能车载体系功用。
结语
选用Yocto Project构建的智能车载体系,完结了智能车载的信息定位、信息收发、数据交互、实时监控、用户交互,以及多媒体文娱功用,构建进程灵敏简略。构建一个嵌入式Linux体系需求构建引导模块、内核和文件体系。这是一个适当杂乱的进程,特别是文件体系的构建。Yocto Project便是为了简化嵌入式体系的构建进程而规划。由以上规划能够看出,Yocto Project供给满足的灵敏性,定制化十分简略,当用户不需求运用程序的可移植性,而且用户的嵌入式设备需求深度定制化时,运用Yocto Prcject最为省时省力。