嵌入式系统原理及应用第6章.ppt

  1. 1、本文档共285页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式系统原理及应用第6章

6.1 嵌入式操作系统概述 6.2 嵌入式操作系统分类 6.3 实 时 系 统 6.4 嵌入式系统启动程序BootLoader 6.5 嵌入式实时操作系统内核 6.6 嵌入式Linux 系统 本 章 小 结   1.RTLinux特征   1) 小而精巧的实时内核 RTLinux实现了一个在Linux本身内核之下的小而精巧的内核,这个内核只需要完成底层任务创建、中断服务程序,并为底层任务、ISR和Linux进程之间进行通信排队的工作,将原来的Linux作为实时内核下的一个随时可被实时任务抢占的优先级最低的任务。因为RTLinux工作是和Linux相结合进行的,所以它可以设计得很简单,大部分的应用都不需要考虑,可以由Linux来完成。因为简单,使得它不容易出现错误;即使出现错误也容易得到更正。同时因为简单,并且完全抢占Linux内核任务,使得它的响应速度特别快。   2) 模块化的设计方案   RTLinux对Linux内核做了修改,做成一个小而简单的实时内核在现有的Linux内核下。对RTLinux的调度方法、用户实时任务的工作是通过Linux的可导入模块的方式进行的。可以自己实现一个实时调度算法,作为Linux的模块插入到内核运行空间,作为实时任务的调度策略。用户实时任务的编程也是通过模块编程来实现的。   3) 和Linux内核的结合   采用双内核系统有很多好处,从RTLinux应用来看,存在两个域,一个是实时域,一个是非实时域。放在实时域的函数能满足其实时的要求,不过这些实时任务必须简单,因为可用的资源受到了限制;非实时域的函数可以利用整个Linux的资源,不过不能提供任何的实时性能。在两个域之间可以通过多种途径进行通信,如FIFO、共享内存等方法。   4) 利用Linux内核的好处   通过RTLinux内核和Linux内核的结合,RTLinux可以利用存在Linux的非实时域函数的长处:    (1) ?Linux提供了现代操作系统和环境的方便和强大功能,如网络服务、GUI系统、C/C++/Java开发工具和标准的编程接口。   (2) 利用Linux和Linux下开发环境的快速发展的优点。因为RTLinux对Linux所做的改动比较少,RTLinux可以很方便地移植到Linux较新的版本中,升级速度较快。   2.与Linux进行通信的方法   RTLinux的实时任务并不能直接调用系统调用,它必须通过特定的方法和Linux进程进行通信。RTLinux提供了三种通信的方法。   1) 共享内存   在RTLinux启动的时候,通过指定给内核一个mem参数决定内核可以使用的内存大小,空出来的内存空间用于实时任务和Linux进程进行通信的共享。在RTLinux任务中通过/dev/mem设备在这段内存中寻址,Linux进程也通过读取这段内存的数据获得实时任务提供的信息,这样完成实时任务和Linux进程之间的通信。   2) ?FIFO设备   利用一种特殊属性的管道进行通信。通过在dev下面创建FIFO的字符设备,实时任务可以往这个字符设备写数据,非实时任务可以从这个设备中读取数据。对FIFO设备的读写是不同步的,非实时任务对设备的读取并不会影响实时任务对它的写。   这种机制是RTLinux应用中使用最广泛的通信方法,比如在一个数据采集系统上,通过实时任务将数据采集并处理,然后写到FIFO设备中,通过一个在X Windows环境中的图形界面程序读取FIFO的数据,然后显示在X Windows窗口中。这样,既保证了对数据的实时处理,又提供了友好的监控界面。   3) ?mbuff驱动程序   mbuff是由Tomasz Motylewski提供的一个使用共享内存的驱动程序,用来实现核心内存空间和用户内存空间之间的共享。通过使用mbuff提供的mbuff_alloc()函数对申请的内存取一个名字,mbuff驱动程序使用一个链表,通过这个名字来管理这些申请的内存。通过这个驱动程序可以在包括RTLinux任务的Linux内核内存空间和用户内存空间之间共享内存。   3.RTLinux的实现机理   RTLinux对Linux内核进行改造,将Linux内核工作环境做了一些变化,在Linux进程和硬件中断之间,由Linux内核完全控制,在Linux内核和硬件中断的地方,加上了一个RTLinux内核的控制。Linux的控制信号都要先交给RTLinux内核进行处理。在RTLinux内核中实现了一个虚拟中断机制。Linux本身永远不能屏蔽中断,它发出的中断屏蔽信号和打开中断信号都修改成向RTLinux发送一个信号。如在Linux里面使用“sti”和“cli”宏指令来屏蔽和使能中断,是通过向x86处理器

文档评论(0)

ligennv1314 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档