嵌入式系统架构层次

1.嵌入式系统结构分层
(1)硬件层
(2)驱动层
(3)操作系统层
(4)应用层
1.1 硬件层

硬件平台是基础,增值还要靠软件。

作为一名嵌入式软件工程师,应能够看懂硬件原理图,这一部分在这里提到过,可从以下三方面入手:

- 芯片复位方式
    - 硬件复位方式
    - 软件复位方式
- 电源树
    - 开发板的电源输入
    - 电源供电器件
    - 5V 电压供电器件
    - 3.3V 电压供电器件
- MCU 引脚配置
    - GPIO:搞清楚GPIO与器件连接情况、输入输出状态、是否产生中断等 
    - I2C
    - UART
1.2 驱动层

硬件的运行需要配置寄存器等读写操作,这也是我们在工程中看到 xxx_driver.cpp 所要实现的功能。

最基本的,例如通过I2C对器件寄存器进行读写。

1.3 操作系统层

对于功能较复杂的项目而言,操作系统只需移植现有系统即可,如FreeRTOS、ucOSII、CMSIS-RTOS等。

对于STM32处理器,处理相对简单的任务时,可自行编写操作系统,利用系统时钟计时,在不同的时间片内处理不同的任务。

1.4 应用层

应用层是在开发环境中实现产品功能的逻辑代码和算法等。

2. 硬件抽象层和板级支持包

除了上述分层提到的概念,还可能听说过 硬件抽象层(HAL)和 板级支持包(BSP)

引用来源

嵌入式实时系统作为一类特殊的计算机系统自底向上包含三个部分:

(1)硬件环境:是整个嵌入式实时操作系统实时应用程序运行的硬件平台;不同的应用通常有不同的硬件环境;硬件平台的多样性是嵌入式系统的一个主要特点。

(2)嵌入式实时操作系统——RTOS:完成嵌入式实时应用的任务调度和控制等核心功能,具有内核较精简、可配置、与高层应用紧密关联等特点。嵌入式操作系统具有相对不变性。

(3)嵌入式实时应用程序:运行于操作系统之上,利用操作系统提供的实时机制完成特定功能的嵌入式应用。不同的系统需要设计不同的嵌入式实时应用程序。

板级支持包BSP( Board Support Package)就是硬件驱动程序,它包含了操控硬件的必要函数,单片机系统使用BSP可以直接进行应用开发,这时候应用开发的hierarchy如下图所示:
在这里插入图片描述
但是由于日益增长的芯片种类和芯片复杂度,直接使用BSP进行应用开发将会受到巨大的挑战,因此为了程序的可阅读性以及可移植性提出了硬件抽象层 HAL这一个概念。
原先嵌入式系统的三层结构逐步演化成为一种四层结构。这个新增加的中间层次位于操作系统和硬件之间,包含了系统中与硬件相关的大部分功能。

在这里插入图片描述

通过特定的上层接口与操作系统进行交互,向操作系统提供底层的硬件信息;并根据操作系统的要求完成对硬件的直接操作。由于引入了一个中间层次,展蔽了底层硬件的多样性,操作系统不再直接面对具体的硬件环境。而是面向由这个中间层次所代表的、逻辑上的硬件环境。因此,把这个中间层次叫做硬件抽象层HAL(Hardware Abstraction Layer)。

因此一个完整、强健的嵌入式系统的系统hierarchy应该为:

hardware --> board support package --> hardware abstract layer --> driver --> operating system --> application
  • 6
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

la_fe_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值