操作系统原理第15章 嵌入式操作系统.pptVIP

  • 4
  • 0
  • 约9.83千字
  • 约 78页
  • 2020-01-29 发布于辽宁
  • 举报

操作系统原理第15章 嵌入式操作系统.ppt

图15-2 装入一个eCos配置 15.2.1 可配置性 在这个例子中,GNU make工具用于选定哪些程序需要编译或者重编译(在源码修改版本的情况下),并且发出命令来编译这些源码。GNU交叉编译器在宿主机上执行,然后为目标嵌入式平台生成可执行二进制码。CNU连接器连接应用目标代码和由eCos配置工具产生的代码。这个软件集包括选定部分的eCos内核以及为目标嵌入式系统选定的软件。其结果随后就可以装入目标系统。 15.2.2 eCos组件 eCos的关键设计需求是,只需进行最小的工作量就可移植到不同的体系架构和平台。为满足这个需求,eCos采用了分层组件架构(见图15-3)。 硬件抽象层 eCos的底层是硬件抽象层(HAL)。HAL层对上层提供一致的API,并将上层的操作映射到特定的硬件平台。每种硬件平台的HAL层实现都是不同的。在不同的平台上为了实现相同的API调用,HAL进行特定硬件实现的抽象。 图15-3 eCos分层结构 15.2.2 eCos组件 HAL由三个单独的模块实现: 体系结构:定义了处理器族类型。该模块包含有为支持处理器启动、中断分派、上下文切换和其他特定于该处理器族指令体系结构的功能所需的代码。 变量:支持不同体系族的特定处理器的特性。特性支持的一个例子就是片上模块,比如内存管理单元(MMU)。 平台:将HAL层扩展以便支持紧密连接的外围设备,如中断控制器和定时器。这个模块定义包括处理器体系结构和变量的平台或主板。它包括启动代码、片上配置代码、中断控制器代码和定时器代码。 15.2.2 eCos组件 HAL的接口可以直接被上层调用,以提高执行效率。 eCos内核。eCos内核设计主要满足下列4个目标: 低中断延迟:响应中断和开始执行ISR的时间。 低任务切换延迟;从一个线程可执行到实际开始执行时所用的时间。 小内存占用:按照实际需求配置所有组件的内存,以便使代码和数据的内存资源尽可能地小。 确定性行为:在整个执行过程中,内核执行必须是可预测的,且需要满足应用程序实时性需求的限制。 15.2.2 eCos组件 eCos内核提供了为开发多线程应用所需的核心功能: 1)系统中创建新线程的能力,不论是在启动时刻还是在系统运行时刻。 2)在系统中控制不同的线程,如操作它们的优先级。 3)调度器的选择,从而决定哪个线程应该运行。 4)同步原语的范围,允许线程安全地交互和共享数据。 5)系统对中断和异常的支持。 15.2.2 eCos组件 在eCos内核中并未包含操作系统内核的一些典型功能。例如,内存分配由一个独立的包处理。同样,不同的设备驱动也是独立的包。eCos配置技术将不同的包结合并进行配置以满足应用的需求,这样可以使内核精简。更进一步而言,对于一些嵌入式平台,最小的内核意味着并未采用eCos内核。简单的单线程应用可直接在HAL上运行。这样的配置可以合并所需的C功能库与设备驱动,但避免了内核在空间和时间上的开销。 15.2.2 eCos组件 I/O系统 eCos的I/O系统是一个支持设备驱动的框架。eCos配置包为大量的平台提供各种驱动。这些驱动包括了串口设备、以太网设备、闪存接口,以及不同的I/O接口,如PCI(外围部件接口)和USB(统一串行总线)。另外,用户可以开发自己的设备驱动。 I/O系统的主要目标是效率,因此会舍弃不需要的软件层或无关功能。设备驱动为输入、输出缓存和设备控制提供必要的功能。 15.2.2 eCos组件 如果需要的话,设备驱动和其他更高层的软件可以直接在HAL层上实现。如果需要特定内核类型的功能,设备驱动可以使用内核API实现。内核提供了三层输入模型: 中断服务例程(ISR):被唤醒从而对硬件中断做出响应。硬件中断在最小的干涉情况下递送至ISR。HAL对中断硬件源进行解码,并且调用关联该中断对象的ISR。这个ISR可以操作硬件,但仅允许在设备API上进行一组有限制的调用。返回时,ISR会查询其DSR是否该被调度执行。 15.2.2 eCos组件 延迟服务例程(OSR):在响应ISR的请求时调用。当一个DSR不会影响调度时,它是安全的,从而可以运行。大部分时间DSR会在ISR之后立刻运行,但是当前线程在调度队列中时,在线程结束之前,DSR会被延迟。DSR可以调用更多的驱动API(相对于ISR),特别是可以调用cyg_drv_cond_signal() 来唤醒等待的线程。 线程:驱动的客户。线程可以调用全部API,而且可以等待在互斥量和条件变量上。 15.2.2 eCos组件 C标准库 提供完整的C运行时标准库。同时包括一个用于高层次数学函数的完整数学运行时库,以及一个用于那些没有硬件浮点功能的平台的完整的IEEE-754浮点计算数学库。 15.2

文档评论(0)

1亿VIP精品文档

相关文档