嵌入式linux.docx
- 文档编号:9709802
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:19
- 大小:39.74KB
嵌入式linux.docx
《嵌入式linux.docx》由会员分享,可在线阅读,更多相关《嵌入式linux.docx(19页珍藏版)》请在冰豆网上搜索。
嵌入式linux
嵌入式Linux
第一部分:
嵌入式系统
第二部分:
linux系统
第三部分:
嵌入式linux系统
第四部分:
介绍一个具体的嵌入式linux系统(mips&linux)
第五部分:
嵌入式linux系统的质量保证
第一部分:
嵌入式系统介绍
嵌入式系统(EmbeddedSystems)是以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。
嵌入式系统是“执行专用功能并被内部计算机控制的设备或者系统”。
一般来说,嵌入式系统不能使用通用型计算机,而且运行的是固化的软件(firmware),终端用户很难或者不可能改变固件。
几个基础性概念:
1、硬件系统和软件系统的组成(F.N结构VS哈佛结构)
2、系统软件和应用软件区别
3、实时多任务操作系统(Real Time multi-tasking Operation System, RTOS)
4、嵌入式OS与传统意义上的OS之区别
5、哈佛结构与冯·诺伊曼结构
(一)RTOS在嵌入式系统中的应用、优点等
RTOS是嵌入式应用软件的基础和开发平台。
目前在中国大多数嵌入式软件开发还是基于处理器直接编写,没有采用商品化的RTOS,不能将系统软件和应用软件分开处理。
RTOS是一段嵌入在目标代码中的软件,用户的其它应用程序都建立在RTOS之上。
不但如此,RTOS还是一个可靠性和可信性很高的实时内核,将CPU时间、中断、I/O、定时器等资源都包装起来,留给用户一个标准的API,并根据各个任务的优先级,合理地在不同任务之间分配CPU时间。
RTOS是针对不同处理器优化设计的高效率实时多任务内核,优秀商品化的RTOS可以面对几十个系列的嵌入式处理器MPU、MCU、DSP、SOC等提供类同的API接口,这是RTOS基于设备独立的应用程序开发基础。
因此基于RTOS上的C语言程序具有极大的可移植性。
据专家测算,优秀RTOS上跨处理器平台的程序移植只需要修改1~5%的内容。
在RTOS基础上可以编写出各种硬件驱动程序、专家库函数、行业库函数、产品库函数,和通用性的应用程序一起,可以作为产品销售,促进行业内的知识产权交流,因此RTOS又是一个软件开发平台。
RTOS是嵌入式系统软件基础和开发平台。
RTOS最关键的部分是实时多任务内核,它的基本功能包括任务管理、定时器管理、存储器管理、资源管理、事件管理、系统管理、消息管理、队列管理、旗语管理等,这些管理功能是通过内核服务函数形式交给用户调用的,也就是RTOS的API。
RTOS的引入,解决了嵌入式软件开发标准化的难题。
随着嵌入式系统中软件比重不断上升、应用程序越来越大,对开发人员、应用程序接口、程序档案的组织管理成为一个大的课题。
引入RTOS相当于引入了一种新的管理模式,对于开发单位和开发人员都是一个提高。
基于RTOS开发出的程序,具有较高的可移植性,实现90%以上设备独立,一些成熟的通用程序可以作为专家库函数产品推向社会。
嵌入式软件的函数化、产品化能够促进行业交流以及社会分工专业化,减少重复劳动,提高知识创新的效率。
嵌入式工业的基础是以应用为中心的芯片设计和面向应用的软件开发。
实时多任务操作系统(RTOS)进入嵌入式工业的意义不亚于历史上机械工业采用三视图的贡献,对嵌入式软件的标准化和加速知识创新是一个里程碑。
目前,商品化的RTOS可支持从8BIT的8051到32BIT的PowerPC及DSP等几十个系列的嵌入式处理器。
(二)嵌入式OS与传统意义上的OS之区别
其实E-OS预通用OS的区别在于Embedded,E-OS要嵌入到各种各样的芯片当中,而各种芯片又是不同M(C)PU,可能是片上的RAM/ROM,也可能是总线方式的内存访问;可能外接中断控制芯片或者在片上集成了中断功能。
再者,各种芯片的内部体系结构是不同的而且也永远不可能相同了。
这样使得E-OS的百花齐放,而不象PC平台之上的Windows,因为它只是建立在Intel体系之上的;另外,一般的嵌入式系统要求E-OS是一个实时内核,就是说Real time,实时响应功能通常是嵌入式系统较大的需求,因为如果不能够在一个规定的时间内(通常是ms级别的)对某些信号做出反应,那么可能是灾难性(比如汽车的ABS系统,或者安全气囊),这一点不象Windows一样可以在N秒之后才对某些事件做出反应,而得到的最大抱怨也只不过是用户的几句埋怨。
从某种意义上来讲:
E-OS更关注的对特殊芯片的控制性和实时性;而通用OS更注重的是体系结构以及更高层次的封装,但是它最底层的核心也就是实时性不太好的OS罢了,我们常常提到的Windows其实很大部分已经超越了OS概念,更多的是在基于OS内核的系统级应用。
(三)哈佛结构与冯·诺伊曼结构
哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。
中央处理器首先到程序指令存储器中读取程序指令内容,解码后得到数据地址,再到相应的数据存储器中读取数据,并进行下一步的操作(通常是执行)。
程序指令存储和数据存储分开,可以使指令和数据有不同的数据宽度,如Microchip公司的PIC16芯片的程序指令是14位宽度,而数据是8位宽度。
哈佛结构的微处理器通常具有较高的执行效率。
其程序指令和数据指令分开组织和存储的,执行时可以预先读取下一条指令。
目前使用哈佛结构的中央处理器和微控制器有很多,除了上面提到的Microchip公司的PIC系列芯片,还有摩托罗拉公司的MC68系列、Zilog公司的Z8系列、ATMEL公司的AVR系列和安谋公司的ARM9、ARM10和ARM11。
冯·诺伊曼结构,也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。
程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此程序指令和数据的宽度相同,如英特尔公司的8086中央处理器的程序指令和数据都是16位宽。
目前使用冯·诺伊曼结构的中央处理器和微控制器有很多。
除了上面提到的英特尔公司的8086,英特尔公司的其他中央处理器、安谋公司的ARM7、MIPS公司的MIPS处理器也采用了冯·诺伊曼结构。
(四)应用状况及前景
嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一。
嵌入式系统用在一些特定专用设备上,通常这些设备的硬件资源(如处理器、存储器等)非常有限,并且对成本很敏感,有时对实时响应要求很高等。
特别是随着消费家电的智能化,嵌入式更显重要。
像我们平常常见到的PDA、电子字典、可视电话、VCD/DVD/MP3Player、数字相机(DC)、数字摄像机(DV)、Usb-Disk、、游戏机、智能玩具、交换机、路由器、数控设备或仪表、医疗仪器、汽车电子、手机、机顶盒(SetTopBox)、高清电视(HDTV、家电控制系统、航天航空设备等等都是典型的嵌入式系统。
第二部分:
linux系统介绍
1、linux起源
2、linux系统简介(略)
3、linux的优/缺点
(一)Linux起源?
1991年8月,芬兰的一个学生在comp.os.minix新闻组贴上了以下这段话:
Helloeverybodyoutthereusingminix:
I'mdoinga(free)operationsystem(justahobby,won'tbebigandprofessionallikegnu)for386(486)ATclones。
这名学生就是LinusTorvalds,而他所说的“爱好”就变成我们今天知道的Linux。
作为一个具备所有特性都类似POSIX的操作系统,Linux并非仅由Linus一人开发,而是由全世界几百个程序员共同开发的。
但是由于开发活动都是程序员自主性的,因此不是很协调,当然,Linus为内核定了调子。
最重要的是你可不花钱就得到Linux,你只要有时间并愿意下载,你就可以免费得到大多数软件。
(二)优点:
(1)稳定的系统:
Linux本来就是建立在Unix上面发展出来的操作系统,因此,Linux具有与Unix系统相似的的程序接口跟操作方式,当然也继承了Unix稳定并且有效率的特点。
常听到安装Linux的主机连续运做一年以上而不曾当机、不必关机是稀松平常的事;
(2)免费或少许费用:
由于Linux是基于GPL的基础下的产物,因此任何人皆可以自由取得Linux,至于一些『安装套件』的发行者,他们发行的安装光盘也仅需要些许费用即可获得!
不同于Unix需要负担庞大的版权费用,当然也不同于微软需要一而再、再而三的更新你的系统,并且缴纳大量费用!
(3)安全性、漏洞的修补:
如果你常玩网络的话,那么你最常听到的应该是『没有绝对安全的主机』!
没错!
不过Linux由于支持者日众,有相当多的热心团体、个人参与其中的开发,因此可以随时获得最新的安全信息,并给予随时的更新,亦即是具有相对的较安全!
(4)多任务、多使用者:
与Windows系统不同的,Linux主机上可以同时允许多人上线来工作,并且资源的分配较为公平,比起Windows的单人假多任务系统要稳定的多!
这个多人多任务可是Unix-Like上面相当好的一个功能,怎么说呢?
你可以在一部Linux主机上面规划出不同等级的使用者,而且每个使用者登入系统时的工作环境都可以不相同,此外,还可以允许不同的使用者在同一个时间登入主机,以同时使用主机的资源。
(5)使用者与群组的规划:
在Linux的机器中,档案的属性可以分为『可读、可写、可执行』等参数来定义一个档案的适用性,此外,这些属性还可以分为三个种类,分别是『档案拥有者、档案所属群组、其它非拥有者与群组者』。
这对于项目计划或者其它计划开发者具有相当良好的系统保密性。
(6)相对比较不耗资源的系统:
Linux只要一部p-100以上等级的计算机就可以安装并且流畅的使用!
不过,如果你要架设的是属于大型的主机(服务上百人以上的主机系统),那么就需要比较好一点的机器了。
不过,目前市面上任何一款个人计算机均可达到这一个要求!
缺点:
(1)Linux需要使用“指令列”的终端机模式进行系统的管理(类似于dos操作)。
(2)没有特定的支持厂商:
因为所有的套件都是免费的,自然也就没有专人会提供服务。
(3)图形接口作的还不够好,可视化界面有待改进,除非你使用商用系统。
第三部分:
linux与嵌入式系统
1、linux&嵌入式系统
2、嵌入式Linux的分类及优点
3、发展现状
(一)嵌入式与linux————>>>>>绝妙的搭配!
一个完整的系统,当然要包括硬件和软件两个部分,这就好像必须要有丈夫和妻子,才能组成一个完整的家庭。
尽管嵌入式系统有着无比广阔的市场需求和发展前景,但嵌入式系统的发展,多年来却经历了一个比相对后期产生的个人计算机(PC)更为曲折和痛苦的历程。
随着微处理器的产生,价格低廉、结构小巧的CPU和外设连接提供了稳定可靠的硬件架构,那么限制嵌入式系统发展的瓶颈,就突出表现在了软件方面。
从八十年代末开始,陆续出现了一些嵌入式操作系统,比较著名的有PalmOS和WindowsCE,但仍然有大量的嵌入式系统摒弃操作系统于不顾,而仅仅包括一些控制流程。
当然,我们可以说在嵌入式系统相对简单的情况下,这些控制流程足以应付。
但是,当嵌入式系统的功能复杂后,也就是说需要提供更完善的服务的时候,简单控制逻辑就不够用了。
对于任何一个产品来说,服务的内容和质量,都是价值的源泉和生存的基础。
我们不妨做一个夸张但通俗易懂的比喻:
雇一个保姆,也许能够解决生活的一部分后顾之忧,但一个真正意义上的家庭,必须需要一位妻子。
所以我们需要的是一位身材苗条、容貌姣好、身体健康、聪慧善良、上得厅堂下得厨房,甚至不向我们的工资条多看一眼的贤内助!
也就是说,嵌入式系统需要的是一套高度简练、友善界面、质量可靠、应用广泛、易开发、多任务,并且价格低廉的操作系统。
通过第二部分对linux系统的了解,你会发现,以上所说的要求简直就是在形容Linux。
更为令人心动的是,除上述优点之外,linux与生俱来的优秀网络血统,更为今后的发展铺平了一条宽广平坦的大路。
这里的网络,并不仅仅指Internet,这里仅仅提醒大家注意的是另一个也许可以说比Internet更为广阔的市场:
家庭网络。
社会上关于个人电脑的普及班和书籍依然铺天盖地,而我们却从未听说过关于操作电视或者空调的培训。
LINUX系统和嵌入式设备的结合,无疑将会对智能住宅及数字家电事业,注入无限澎湃的动力。
这并不是什么超前的设想,许多具有高前瞻性的企业,已经从研发阶段过渡到生产阶段,推出了多姿多彩的嵌入式LINUX操作系统的PDA、相机、或者更为概念化的咨讯家电。
如推出全球最小的嵌入式操作系统内核——夸克(QUARK),而闻名于世的网虎国际(XLinux),已与Intel成功合作,将夸克应用于Intel去年推出的S_ARM芯片上。
人们可以在这一平台上享受上网和听MP3的乐趣。
专用嵌入式rtos与嵌入式Linux的比较
专用嵌入式实时操作系统
嵌入式Linux操作系统
版权费
每生产一件产品需交纳一份版权费
免费
购买费用
人民币数十万元
免费
技术支持
由开发商独家提供有限的技术支持
全世界的自由软件开发者提供支持
网络特性
另加人民币数十万购买
免费而且性能优异
软件移植
难,因为是封闭系统
易,代码开放,有许多应用软件支持
应用产品开发周期
长,因为可参考的代码有限
短,新产品上市迅速,因为有许多公开的代码可以参考和移植
实时性能
好
需改进,可用RTos_Linux等模块弥补
稳定性
好
较好,在高性能系统中仍需改进
Linux是自由的多任务操作系统,用户可以获得多种配置及体系不同的Linux版本。
因此,如何选择Linux的发行版本,也是我们要解决的一个重要问题。
Linux的版本主要有3大类:
(1)标准的Linux版本。
(2)小型化的嵌入式版本(Smallfoot-print“embedded”Version)。
(3)具有实时扩展功能的Linux版本。
各类Linux操作系统用户分布图
另外,Linux还有一些特殊应用、把Linux移植到非X86体系的CPU(包括PowerPC等许多别的微控制器)上的版本。
例如有许多针对不同的如“瘦服务器”或“防火墙”应用的小型化、实时特性增强的特殊版本。
我们要认识到,所有的Linux发行版本都是在同一个框架结构类型下发展演变的,它们使用的基本模块都相同,其中包括Linux内核、Shell命令(命令执行解释模块)以及许多的通用工具。
不同的是,数以百计的Linux应用程序,被包含在不同的发行版本当中,安装的进程处理程序也不同。
发展现状:
呵呵,一句话概括之:
据说LINUS本人在下班回家的路上已经在利用手机指令家中的咖啡壶为自己准备咖啡了……
第四部分:
基于MIPS&linux的一个实际应用环境的建立(与我司linux电视采用相同CPU)
1、MIPS的相关知识
2、一个基于mips的嵌入式linux系统环境介绍
MIPS的两种概念区别:
MillionInstructionsPerSecond
MicroprocessorwithoutInterlockedPipelineStages
MIPS处理器介绍:
(1)多线程。
34K内核通过增加处理器的利用来减少存储器等待的影响。
当一个线程停止时,其他线程立刻馈入流水线开始执行,使应用吞吐能力显著增加。
内部基准测试表明,运行两个线程的34Kc™内核要比单线程处理器的速度提高60%,而尺寸仅增加14%。
(2)实时响应。
34K内核系列可为嵌入式应用提供出众的实时响应。
用户可为实时任务分配专用处理带宽,以保证QoS。
该装置可持续监测线程进程,并自动进行校正来满足或超越实时需求。
应用:
(1)家庭应用:
多VoIP通道的外在线程的独立应用。
(2)它还可以用来将几个单线程功能结合在一个单34K内核中,例如STB应用中的一个运行Linux主处理器和一个运行RTOS的DSP。
网络路由器及包括数字电视和DVD刻录机的消费设备中的工作量协作意味着它们都会受益于34K内核。
MIPS3234Kc内核产品规格1,2
工艺:
90nm
频率:
500MHz(最差情况)
内核尺寸:
2.1mm2(仅内核,从完整的GDSII数据库布局中提取)
功耗:
1.0V条件下为0.56mW/MHz(仅内核)
1频率、功耗和尺寸取决于配置选择、合成、芯片供应商、工艺和单元库。
2配置:
双虚拟处理元件(VPE)运行4个线程,32K/32K高速缓冲存储器。
MIPS3234K内核系列
34K内核系列由34Kc™、34Kf™、34KcPro和34KfPro内核组成。
34Kf™Core:
增加了完全符合IEEE754规范的硬件浮点支持。
34KProSeries®内核:
34KcPro和34KfPro系列内核具备使SoC设计者增加专用指令并与硬件紧密关联的CorExtend™能力。
★★★★第五部分:
质量保证体系
第一部分:
开发阶段(含前期)的质量保证
第二部分:
新品20/200质量保证
第三部分:
嵌入式软件的一般测试标准(草)
第一部分:
开发阶段的质量保证(公司整体质量高度,目前可能无能为力)
(1)软件质量工程概念(在品质保证的前提下,以最经济的代价做产出最优秀的成果。
)
(2)嵌入式硬件平台的确定:
通常包括处理器和外围硬件,以下着重对处理器的选择做介绍。
总的来说,我们应从处理速度、技术指标、功耗、软件支持工具、内置调试工具、评估板六个方面来综合考虑处理器的选择。
(1)处理器的处理速度。
嵌入式系统由于自身条件的限制,处理速度不能与传统CPU相比,其处理器主要是用于小型作业处理以及I/O输出。
因此,在选择时应该将目标锁定在高性价比的产品上。
如IBM和Motorola的PowerPC以及ARM等。
(2)技术指标。
当前,许多嵌入式处理器都集成了外围设备的功能。
开发人员首先考虑的是,系统所要求的一些硬件能否无需过多的胶合逻辑(GL)就可以连接到处理器上。
其次是考虑该处理器的是否支持DMA控制器,内存管理器等配套组件。
(3)处理器的功耗。
嵌入式微处理器的市场主要是手持设备、电子记事本、PDA、手机、GPS导航器、智能家电等消费类电子产品。
这些产品要求微处理器具有高性能、低功耗。
当然,如今市场上大多数的微处理器,已经具备了以普通电池供电就能达到Pentium等主流CPU的速度的能力,均能满足系统对功耗的要求。
(4)处理器的软件支持工具。
如果仅有处理器,没有较好的软件开发工具的支持,也是不行的,因此选择合适的软件开发工具对系统的实现会起到很好的作用。
(5)处理器是否内置调试工具。
处理器如果内置调试工具可以大大缩小调试周期,降低调试的难度。
(6)处理器供应商是否提供评估板。
许多处理器供应商可以提供评估板来验证用户的理论是否正确,验证其决策是否得当。
外围硬件的选择略……
(3)嵌入式软件平台的确定:
通常包括操作系统、编程语言、软件开发工具、硬件调试工具、软件组件等
操作系统的选择:
目前公司采用已确定采用嵌入式linux系统方案。
(一)嵌入式Linuxos的选择:
第一类:
专门为Linux的嵌入式方向而做的,如何让Linux更小、更容易嵌入到体积要求和性能要求更高的硬件中去是他们的产品开发方向,如MontaVista的HardHatLinux等;
第二类:
专门为Linux的实时特性设计的产品,将Linux开发成实时系统尤其是硬实时系统,应用于一些关键的控制场合(不仅仅是信息电器),如Fsmlabs公司,开发出来的RT-Linux产品已经用在工业控制的很多方面;
第三类:
将实时性和嵌入式方案结合起来的方案,很多公司都这么做,并且提供集成化的开发方案,如Lineo、TimeSys等。
(二)选取原则:
(1)操作系统提供的开发工具。
有些实时操作系统(RTOS)只支持该系统供应商的开发工具。
开发整套系统不仅需要开发工具,而且还需要操作系统供应商的编译器、调试器的支持。
当然有些操作系统也可使用第三方工具。
(2)操作系统向硬件接口移植的难度。
操作系统到硬件的移植是一个重要的问题,它关系到整个系统能否按期完工的一个关键因素。
因此我们要选择那些可移植性程度高的操作系统,从而避免操作系统难以向硬件移植而带来的种种困难,加速系统的开发进度。
(3)开发人员是否熟悉此操作系统及其提供的API、操作系统是否有提供硬件的驱动程序、操作系统的可剪裁性、操作系统的实时性等因素
编程语言的选择:
(一)选取原则:
对于编程语言,由于微处理器技术由于种类繁多,不同种类的微处理器都有自己专用的汇编语言。
这使得系统代码重用无法实现,为某个微处理器设计的程序不能直接移植到另一个不同种类的微处理器上使用,另外传统的微处理器由于自身限制在开发效率和可维护性上均难以满足要求。
因此选择高级编程语言成为嵌入式系统开发一个必要的环节。
(二)几种高级语言可选性比较
C语言凭借具有广泛的库程序支持,目前在嵌入式系统中应用最广泛,在将来很长一段时间内仍将在嵌入式系统应用领域占重要地位。
C++是一种面向对象的编程语言,目前在嵌入式系统设计也得到了广泛的应用,如GNUC++。
Java语言相对年轻,但有很强的跨平台特性。
它的"一次编程,到处可用"的特性使得它在很多领域倍受欢迎。
随着网络技术和嵌入式技术的不断发展,Java及嵌入式Java的应用也将越来越广泛。
这些语言无论是在通用性、可移植性程度、执行效率、可维护性等方面都有其他中低级语言不可比拟的优势。
因此也是开发嵌入式系统的首选编程工具。
工具的选择(选读):
一个嵌入式Linux产品的开发需要3个阶段:
(1)包括为目标板配置和构建基本LinuxOS;
(2)调试应用程序、库、内核及设备驱动程序/内核模块;
(3)出货前最终方案的优化、测试和验证。
基于质量的考虑,工作重点主要放在第三部分,检测项目主要是验证和性能测试,比如存储器泄漏检测/纠正、代码优化和任务跟踪等.
在Linux应用程序和库的调试方面,GNUDebugger(GDB)作为一种标准已有几年的历史。
它是一种命令行程序,由多个不同的图形用户界面前端予以支持,每个前端都能以多种方式提供调试控制功能。
尽管GDB不是一个完美的方案,但它足够应对各种调试任务,而且已经得到开放源代码团体的广泛支持。
Linux内核或设备驱动程序的调试要比应用程序的调试繁琐得多。
我们需要考虑诸如采用什么样的调试方法支持开发产品的硬件?
需要什么内核补丁程序?
该工具需要调试内核模块及处理虚拟地址转换吗?
等等问题。
这些均需要有一套完善的开发和调试工具。
传统的嵌入式开发调试模式是通过线仿真器(In-CircuitEmulator,ICE)来实现的。
它通过取代目标板的微处理器,给目标程序提供一个完整的仿真环境,从而使开发者能够非常清楚地了解到程序在目标板上的工作状态,便于监视和调试程序。
但是在线仿真器的价格非常昂贵,只适合做非常底层的调试,难以实现真正的高层调试。
但是如果使用嵌入式Linux作为开发调试平台,只要软硬件能够支持正常的串口功能时,即使不用在线仿真器也可以很好地进行开发和调试工作,从而节省了一笔不小的开发费用。
众多Linux厂商正是看到了这
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 linux
![提示](https://static.bdocx.com/images/bang_tan.gif)