嵌入式软考备考_2 嵌入式软件基础

嵌入式软件基础

规模小,但是开发难度大,需要开发者软硬都懂点。且开发和运行环境不同。

实时性可靠性要求高。

要求固化存储。

嵌入式软件分为控制管理系统资源的系统软件,辅助软件开发的支撑软件,和面向应用的应用软件。

无操作系统:硬件配置较低,应用建立在硬件上。

  • 循环轮转:把系统功能分解为若干任务,然后包含在一个永不结束的循环语句中,按顺序逐一执行。简单,开销小,但是所有代码顺序执行,无法处理异步事件,缺乏并行处理能力。
  • 前后台系统:在循环轮转基础上加了中断处理功能。前台放中断服务程序,可以处理异步事件;后台还是无限循环,负责资源分配、管理和系统调度。缺点在于认为所有任务优先级相同,FIFO;且实时性较差。

有操作系统:开发应用开始在操作系统基础上编写。可靠性高,开发成本、开发效率得到了优化,可以模块化编程。有利于系统的拓展和移植。

image-20230331022316103

操作系统的内核是最重要的。

设备驱动层,包括 BSP 和设备驱动程序,包含了嵌入式系统中所有与硬件相关的代码。初始化硬件,管理控制,为上层软件提供驱动支持,类似 PC 中的 BIOS 和驱动程序。

板级支持包 BSP 把硬件代码都封装起来,向操作系统提供一个虚拟化硬件平台,操作系统通过给定的 API 访问硬件。

BSP 包括的内容:

BOOT LOADER 引导加载程序,在嵌入式系统通电后,启动内核前运行的代码。初始化硬件设备,建立内存空间的映射图;调整软硬件状态,为启动操作系统内核做基础。

  1. 片级初始化,初始化 CPU,把上电状态设置成工作状态。
  2. 板级初始化,初始化 CPU 以外的硬件和一些软件的参数。
  3. 加载内核,把操作系统和应用程序的映像从 FLASH 存储器复制到系统内存中,并跳转到内核的第一条指令。

设备驱动程序:初始化和管理硬件,并向上层提供接口,如硬件的一些 .h 头文件。

设备驱动层中的函数有两种结构:分层结构和混合结构。

分层结构:上层软件直接调用上层接口,上层接口调用硬件接口,硬件接口调用硬件。硬件更换时,只需要修改硬件接口。硬件接口不能调用上层接口。

混合结构:没有上层接口和硬件接口的层次关系。

中间件,操作系统、设备驱动程序、应用软件之外的所有系统软件。提取出一些应用层可以复用的通用模块,提高代码可重用性,降低应用软件复杂度,但开销大。

上电复位
板级初始化
引导/上级系统
系统初始化
系统升级
远程升级
本地升级
应用初始化
多任务应用

猜你喜欢

转载自blog.csdn.net/jtwqwq/article/details/129919875