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

嵌入式软件开发具有小规模、高难度的特点,强调实时性和可靠性。开发涉及无操作系统和有操作系统的场景,前者常采用循环轮转或前后台系统,后者利用操作系统提升效率和可靠性。设备驱动层包括BSP和设备驱动程序,负责硬件管理和接口提供。BSP包含BOOTLOADER、片级及板级初始化等步骤。中间件则为应用软件提供通用模块,简化开发。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

嵌入式软件基础

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

实时性可靠性要求高。

要求固化存储。

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

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

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

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

image-20230331022316103

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

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

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

BSP 包括的内容:

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

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

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

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

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

灰海宽松

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值