您好,  [请登录] [QQ登录]  [支付宝登录[免费注册]

商品分类

分享到: 百度搜藏 搜狐微博 新浪微博 腾讯微博 QQ收藏 人人网 Facebook Twitter

嵌入式利用体系和Linux

发布日期:2011-05-14


    本文阐发了Linux的特点,妥当性和范畴性以及最告急的及时范畴的应用。已往,由于非PC的嵌入式硬件平台价格昂贵,使得很多高性能恳求的嵌入式体系不克不及实现。如今,由于自制的PC硬件大力大举放肆生长和广泛的应用,使得那些高性能恳求的嵌入式体系有了实现的大概。但是,嵌入式PC平台的体系软件却不那么具有吸引力。固然你可以选择DOS,不过它天赋不敷。你也可以选择WINDOWS,但是颠末过细的研究,你会发明它的及时性能很差。很多高级及时利用体系价格不菲,可移植性不好。从1991年以来,在网络下生长的Linux利用体系,在办事器和PC桌面机上,已经是Microsoft 的DOS和WINDOWS95/98的强劲敌手。并且它的性能比WINDOWS好得多。要是你有兴趣 ,你可以从网上自由下载,或掏比CD本身贵一点的价格买到。近来有人把及时性的部件参加Linux利用体系,使得它成为嵌入式体系筹划师的一个极其有价格东西。只管它的及时部件不如其他的RTOS那么巨大,利用的内存不克不及太小,但是它的其他长处足以逾越和补充它的不敷。 

     在嵌入式体系中利用PC硬件的好处显而易见,生产量大,容易购买,代价比较自制。并且还很容易搞到数模转换板、网络接口板、图象征求和处理惩罚处罚板等专用板。再加上采取PCI总线,体系性能将极猛进步。在利用体系范畴却没有相应的变革。    

    高级嵌入式体系不但须要价格低廉的硬件,同时也须要很多巨大的结果,比如图形用户接口、网络传输。在利用体系方面,我们也须要价格自制、性能成熟、同时又可以大概餍足高级嵌入式体系的需求。    

    如今的Linux已经引起了谋略机天下的高度怜惜。很多谋略机利用者和厂商都被它的稳固性、易得性等特点吸引。它险些完全兼容UNIX体系中的结果和开辟东西、应用步调。它提供了TCP/IP通讯结果、Internet的Client & Server 结果,以及C、C++、JAVA等语言的编译东西,这些东西和结果都比MS WINDOWS成熟、美满、易用很多。当你在利用和编程中遇到标题时,通过Internet你会得到成千上万的专家和热心人的资助。我以为,在办理标题时,通过Internet的资助会比单纯拜托RTOS厂商快捷有效。在厂商资助下解 决标题,一次只会得到一种方案,要是不可,你必须重新开始;在Internet上,你会得到很多答案。即日的Linux已经得到了一些厂商的支持,你也可以从它们那得到技能支持。但是,最告急的是你拥有源代码,你可以对标题举行深入的研究,以致可以扩展结果 。    

    Linux是MS WINDOWS 和DOS之外所绝佳的选择。很多嵌入式体系工程师也已经开辟了Linux在嵌入式体系方面利用的价格,尤其在专用硬件环境和多处理惩罚处罚器方面。如今的标题是怎样使使Linux体系具有及时性。当前有两种方案来办理这个标题:一个是POSIX要领,别的一个是底层办理。    

    POSIX是类UNIX利用体系的标准化方案,目标是进步软件的可移植性,加快软件筹划师的变乱。POSIX.1b已有及时性扩展,包括信号、内存锁定、时钟和计数、消息行列步队以及抢先调理战略。不过这种步调比较得当变乱站体系,对基于PC的嵌入式体系并不是很好。    

    其次是类UNIX的体系调用比较繁复,不如pSOS+等的明白。但是仍旧有一批开辟者在优化Linux,固然也获取了一些告成,譬如内存锁定要领和任务调理算法有了改革。这此中最紧张的结果是POSIX线程(定义于POSIX.1c)。这个结果对嵌入式体系来说很好。    

    另一个方案从底层来进步Linux的及时性,即所谓的“硬”及时性。在这个方面做得最为告成的是New Mexico institute of Mining and Technology,他们在Linux体系下参加及时性的kernel(内核),让Linux本身运行在优先级较低的层面上。这种筹划要领对Linux体系的修改淘汰到最低,同时增长必须的及时结果。如许使得在Linux本身的升级后,可以举行很少的修改就可以把RT-linux引进新版的Linux内核。RT-Linux和Linux的连合提供全部的及时结果,包括底层任务的创建、克制任务的摆设、底层任务行列步队办理、克制任务的运行等。这种筹划使得在体系中有两种域:及时域和非及时域。及时域的函数餍足及时性恳求;不过,任务必须大抵,由于分批给它们的资源比较少。非及时域的函数可以享用体系全部资源,但是它们的及时性比较差。两个域之间的通讯要领也提供了。在全部RT-Linux时,必须包管须要的函数在各自的运行域是切合的,不要以为先前的非及时函数在摆设摆设了RT-Linux后就具有了及时性,对及时性恳求有关的函数必须放到及时域中去运行。    

    RT-Linux中任务处理惩罚处罚也比较大抵,全部rt-task-init()创建和启动及时任务。及时域和非及时域的函数通讯要领是通过FIFO举行。全部FIFO的明显好处是方便数据的传输,要是设置其长度为零,又可以当成信号全部。如今的不敷是没有提供优先级承继机制(为了防治优先级的逆转)和任务的沉寂删除,但是在筹划进程中却可以拜托过细筹划来克制这种错误孕育产生。固然利用零长的FIFO来挂起步调的运行的要领有一点贫苦,不过它总算是一种步调。新筹划的要领是设置超时
结果。    

    RT-Linux作为大抵、开放的软件,利用者可以可以根据你们的须要来更新这些结果,筹划出更好的方案,并颁发给大家。    

    RT-Linux中最为引人过细的特色是它使得Linux的内核可以大概被抢先。Linux以及其他类UN IX利用体系的内核都不克不及被长期打断。正是由于这一点,使得Linux不克不及是一个完全合格的及时利用体系。不过,利用上面先容的两种要领都可以进步Linux的及时性。第一种要领重新筹划内核,固然可以大概到达恳求。然而Linux的内核大且巨大,还通常修正;它的筹划者并不体贴着及时性能。因此强参加及时的结果于现成代码并差别适。纵然如许,当Linux的内核升级,就不免要重新筹划步调。RT-Linux采取的别的的要领使得Linux的内核可以被克制;它把克制分为两类:Linux控制的克制和RT-Linux控制下的克制。RT-Linux严格限定任务和克制的内容;它们不克不及调用Linux的内核,以是它们可以克制内核的变乱。要是它们稳固革内核的东西,那么它们将不会滋扰内核的运行。其次,Linux的克制也不克不及够打断内核的运行。于是RT-Linux采取了假造的克制布局,使得Linux的内核不克不及克制克制。在标准的Linux体系中,利用了“sti”和“cli”宏,然后运行X86的相应指令。RT-Linux修改了这两条指令的运行要领;实行“cli”,它不克制克制,而是重新指向RT-Linux的代码,举行刚强;要是是RT-Linux的则让克制连续实行,要是是标准Li nux的克制,则设置标记。运行“sti”时,挂起的恣意克制连续实行。云云这般,Linux不克不及克制它自身,RT-Linux就可以了。