计算机三级之嵌入式系统学习笔记6

  • 嵌入式系统的软件结构
    • 简单的轮询结构
      • 应用程序重复循环检查每个外部输入条件,一旦有需要处理的任务,则进行相应的处理
    • 带中断的轮询结构(中断驱动结构或前后台结构)
      • 当有外部事件(例如温度传感器报警)发生时,外部事件提出中断请求,暂停后台运行的主循环,进行前台处理,处理完成后又回到后台继续运行主循环
    • 监控式操作系统+应用软件的结构
      • 操作系统内核负责多任务处理,执行任务创建与初始化、任务调度、存储管理、时钟管理和中断管理等
      • 多任务系统实际上是由多个任务、多个中断服务程序和嵌入式操作系统组成的有机整体
    • 通用嵌入式操作系统+应用软件的结构
      • 嵌入式操作系统从单一功能向多功能方向发展,从简单功能的内核扩展到包含驱动程序以及文件系统、网络协议栈等多种组件的复杂结构,应用程序则用于实现用户功能
      • 高端嵌入式系统软件层次分为硬件层、系统软件层和应用软件层
      • 其中系统软件层又分为硬件抽象层、操作系统层和中间件层
      • 中间件软件是指除了操作系统内核、设备驱动程序和应用软件之外的系统软件
  • 硬件抽象层(HAL)和板级支持包(BSP)
    • HAL和BSP都是嵌入式系统的底层软件
    • 将嵌入式系统软件中位于操作系统层与硬件之间的、与硬件相关的软件层次统称为硬件抽象层(HAL)
    • HAL是在操作系统与硬件之间设置的独立的接口软件层,是所有直接依赖于硬件的软件,包括引导程序、硬件配置程序和硬件访问代码等
    • 引入HAL的目的是对硬件进行抽象,使上层软件开发人员无须关心底层硬件的具体细节和差异,并且支持上层软件在不同体系结构和硬件平台之间的移植
    • 板级支持包(BSP)可以被看作是硬件抽象层在特定操作系统环境下的具体实现
  • BSP的特点是与硬件和操作系统都关系紧密,既有硬件相关性,又有操作系统相关性
    • BSP在系统复位之后负责系统软硬件环境的初始化,其功能可分为以下三部分:
      • 系统复位时的硬件初始化,包括处理器芯片的初始化和电路板的初始化
      • 为操作系统提供硬件相关的驱动程序支持
      • 引导加载操作系统
    • BSP的开发和调试都很困难,其中调试一般采用渐进的方式进行,将其调试分为两步:
      • 最小系统的调试
      • 外围设备驱动程序的调试
  • 引导加载程序(bootloader)
    • 引导加载程序是底层软件的一部分。嵌入式系统上电复位后首先运行引导加载程序,它负责系统的上电自检、硬件初始化、建立存储空间映射、配置系统参数、建立上层软件的运行环境,并加载和启动操作系统
    • 嵌入式操作系统的加载方式
      • 在ROM中直接运行操作系统代码(启动加载模式)
      • 在RAM中运行操作系统代码(启动加载模式)
      • 从外存储器加载操作系统代码运行(启动加载模式)
      • 从通信端口加载操作系统代码运行(下载模式)
  • 嵌入式系统的设备驱动程序是指直接与硬件相互作用并控制硬件的软件
  • 设备驱动程序功能
    • 设备初始化
    • 设备 打开(激活)和关闭
    • 设备读取和 写入
    • 设备状态查询和设备控制操作
  • 实时系统(RTS)
  • 实时操作系统(RTOS)
  • 实时操作系统是实时系统使用的操作系统
  • 实时系统是指必须在有限和确定的时间内对外部事件作出相响应的信息系统
  • 在实时系统中运行的任务根据时限对系统性能的影响程度可分为
    • 硬实时任务(强实时任务 )
      • 必须在给定的时限内完成,超过时限将会导致任务失败或引起致命的错误
    • 软实时任务(弱实时任务)
      • 仍然要求系统的响应越快越好,但是偶尔超出时限并不会造成任务失败或导致任务出现致命错误,而是造成任务的服务质量下降
    • 准实时任务
      • 通常允许偶尔错过最后期限,但若超过时限,所进行的的操作或者计算结果没有任何意义
  • 实时系统具有如下几个关键特性
    • 时间约束性
    • 可预测性
    • 可靠性
    • 交互性
  • 实时操作系统采用的机制
    • 事件驱动
    • 多级中断嵌套处理
    • 细粒度的任务优先级控制
    • 实时抢占优先级控制
  • 实时操作系统的实时性指标
    • 中断延迟时间
    • 任务切换时间
    • 任务抢占时间
  • μC/OS操作系统
  • μC/OS系列的第一个版本就以μC/OS命名,μC/OS-2是μC/OS的升级版,2010年,基于μC/OS-2开发的第三代全新的μC/OS-3内核推出
  • μC/OS-2是专门为嵌入式应用设计的实时多任务操作系统内核,具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点
  • μC/OS-2的只是实时操作系统内核,它的目标是实现一个基于优先级调度的抢占式实时内核
  • μC/OS-2仅仅包含了任务调度、任务管理、时间管理、内存管理和任务间通信与同步等基本功能,没有提供输入输出管理、文件系统、网络协议栈等额外的服务
  • μC/OS-2主要特点:
    • 公开源码的高质量实时内核
    • 可移植
    • 可裁剪、可固化
    • 时间确定性
    • 多任务
    • 抢占式内核
    • 多种任务服务
  • μC/OS-2的任务由三部分构成:
    • 任务的程序代码
    • 任务堆栈
    • 任务控制块
  • μC/OS-2能够支持的任务总数最多为64个(版本2.82以后扩充至255个),每个任务都被赋予一个优先级,共64个优先级别,0是最高优先级别

猜你喜欢

转载自blog.csdn.net/qq_36554582/article/details/81297283