目录
1、嵌入式软件基础
(1)嵌入式软件的特点:
(2)嵌入式软件分类:
(3)无操作系统的嵌入式软件的两种实现方式:
(4)有操作系统的三大优点:
(5)设备驱动层(也叫板级支持包 BSP:包含了嵌入式系统中所有与硬件相关的代码)
(6)板级支持包 BSP的基本思想
(7)一般来说。BSP主要包括两个方面的内容:
(8)关于引导加载程序 BoorLoader
(9)设备驱动程序
(10)关于分层结构
(11)嵌入式中间件
2、嵌入式操作系统概述
(1)内核
(2)嵌入式操作系统分类
A、规模较小。
B、开发难度大。
C、实时性和可靠性要求高。
D、要求固化存储。
A、系统软件:控制和管理嵌入式系统资源,如嵌入式操作系统、驱动程序、中间件等。
B、应用软件:定义嵌入式设备的主要功能和用途,负载与用户进行交互。
C、支撑软件:辅助软件开发的工具软件。
A、循环轮转
优点:简单、直观、开销小、可预测。
缺点:过于简单,所有代码顺序执行,无法处理异步事件,缺乏并行处理能力。
B、前后台系统(在循环轮转的基础上增加了中断处理功能)
前台(事件处理级):中断服务程序,负载处理异步事件。
后台(任务级):一个无限循环,负载资源分配、任务管理和系统调度。
A、提高系统的可靠性。
B、提高了系统的开发效率,降低了开发成本,缩短了开发周期。
C、有利于系统的扩展与移植。
大多数的嵌入式硬件设备都需要某种类型软件的初始化和管理。这部分工作由设备驱动层来完成的,它负责直接与硬件大交道,对硬件进行管理和控制,为上层软件提供所需的驱动支持,类似PC系统中的BIOS和驱动程序。
把嵌入式操作系统与具体的硬件平台隔离开来。在BSP当中,把所有与硬件相关的代码都封装起来,并向上提供一个虚拟的硬件平台,而操作系统就运行在这个虚拟的硬件平台上。它使用一组定义好的编程接口来与BSP进行交互,并通过BSP来访问真正的硬件。
A、引导加载程序 BootLoader。
B、设备驱动程序。
引导加载程序是嵌入式系统加电后运行的第一段软件代码,是在操作系统内核运行之前运行的一段小程序,它的实现高度依赖于具体的硬件平台,主要的基本功能如下:
A、片级初始化:纯硬件初始化过程,把微处理器从上电的默认状态设置成系统要求的工作状态。
B、板级初始化:同时有软件和硬件在内的初始化过程,设置各种硬件的寄存器和设置某些软件的数据结构和参数。
C、加载内核:将操作系统和应用程序的映象从Flash存储器复制到系统内存当中,然后跳转到系统内核的第一条指令处继续执行。
补充:PC 系统的引导加载过程。
PC系统的引导加载程序由两部分代码组成――BIOS 和MBR中的引导程序。BIOS在完成硬件检测和资源配置后,将硬盘主引导记录MBR中的引导程序读到系统的内存当中,然后将控制权交给它,由它负责把操作系统的内核映象从硬盘读入到内存,然后跳转到内核入口去运行,即启动操作系统。
在一个嵌入式系统中,操作系统可能有也可能无,但是设备驱动程序是必不可少的。设备驱动程序,就是一组库函数,用来对硬件进行初始化和管理,并向上层软件提供良好的访问接口。大多数设备驱动程序都具备下面的基本功能:启动、关闭、停用、启用、读操作、写操作。这些功能一般用函数的形式来实现,这些函数之间的组织结构主要有两种:分层结构和混合结构。
A、硬件接口:直接操作和控制硬件。
B、调用接口:不直接跟硬件大交道,为上层软件提供服务和函数接口。
C、优点:把所有与硬件相关的细节都封装在硬件接口中,在硬件需要升级,需要更新设备驱动序的时候,只需要改动硬件接口中的函数即可,而上层调用接口中的函数不用做任何修改。
D、混合结构:在设备驱动程序当中,没有明确的层次关系,上层接口和硬件接口混在一起,相调用。
它是在操作系统内核、设备驱动程序和应用软件之外的所有系统软件,其基本思路是:把原本属于应用软件层的一些通用的功能模块抽取出来,形成独立的一层软件,从而为运行在它上面的那些应用软件提供一个灵活、安全。移植性好、相互通信、协同工作的平台。
内核是指操作系统中的一个组件,它包含了 OS的主要功能,即OS的各种特性及其相互之间的依赖关系,这些功能主要包括:
A、任务管理:对系统中运行的软件进行描述和管理,并完成处理器资源分配和调度。
B、存储管理:提高内存的利用率,方便用户使用,提供足够的存储空间。
C、设备管理:方便设备的使用,提高 CPU和 I/O设备的利用率。
D、文件管理:解决文件资源存储、共享、保密和保护等问题。
注:不同嵌入式操作系统的内核设计各不相同,取决于系统设计和实际需求。
A、按系统类型:商业系统、专用系统、开源系统。
B、按响应时间:硬实时系统、软实时系统。
C、按软件结构:单体结构(uCOS)、分层结构(MS-DOS)、微内核结构(Vxworks)。
嵌入式系统设计师考试笔记之操作系统基础复习笔记二:
嵌入式系统设计师考试笔记之操作系统基础复习笔记二-CSDN博客