嵌入式系统
嵌入式系统基本概念
- 嵌入式系统是以应用为中心、以计算机技术为基础,并将可配置与可裁剪的软硬件集成于一体的专用计算机系统【面向特定领域】,需要满足应用对功能、可靠性、成本、体积和功耗等方面的严格要求。
- 从计算机角度看,嵌入式系统是指嵌入各种设备及应用产品内部的计算机系统。它主要完成信号控制的功能,体积小、结构紧凑,可作为一个部件埋藏于所控制的装置中。
- 一般嵌入式系统由嵌入式处理器、相关支撑硬件、嵌入式操作系统、支撑软件以及应用软件组成。
- 嵌入式系统通常通过外部接口采集相关输入信息或人机接口输入的命令,对输入数据进行加工和计算,并将计算结果通过外部接口输出,以控制受控对象。
嵌入式硬件
我们把芯片分为民用级、工业级和军用级。
民用级器件的工作温度范围:0~70℃
工业级器件的工作温度范围:-40~85℃
工业级器件的工作温度范围:-55~150℃
嵌入式系统初始化过程
-
片级初始化(Die-Level Initialization):
- 定义: 这是在芯片(集成电路)级别进行的初始化,涉及到芯片上的个别功能块或模块的初始化。
- 例子: 对于一个系统芯片,片级初始化可能包括对CPU核心、内存控制器、外设控制器等进行基本的配置和启动。
-
板级初始化(Board-Level Initialization):
- 定义: 板级初始化是在整个硬件板上进行的初始化,包括芯片、外围器件和板上连接的其他组件。
- 例子: 对于嵌入式系统,板级初始化可能包括配置各种外设(例如传感器、通信接口、显示器)、初始化存储器、设置时钟源等。
-
系统级初始化(System-Level Initialization):
- 定义: 这是整个嵌入式系统中最高层次的初始化,包括与硬件和底层软件相关的所有方面。
- 例子: 系统级初始化涵盖整个嵌入式系统,包括引导加载程序(Bootloader)的初始化、操作系统的启动、设备驱动程序的加载以及系统级别的配置。这个阶段通常还包括对通信接口的配置、网络设置和其他系统范围的初始化。
嵌入式微处理器体系结构
冯诺依曼结构
也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。
特点:
- 一般用于PC处理器,如I3、I5、I7处理器
- 指令和数据存储器合并在一起
- 指令与数据都通过相同的数据总线传输
常规的计算机属于冯诺依曼结构
哈佛结构
是一种将程序指令存储和数据存储分开的存储器结构。哈佛结构是一种并行体系结构,它的主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个独立的存储器,每个存储器独立编址、独立访问。
特点:
- 一般用于嵌入式系统处理器
- 指令和数据分开存储,可以并行读取,有较高数据的吞吐率
- 有4条总线:指令和数据的总线与地址总线
DSP属于哈佛结构
总线系统
基本概念:
总线是一组能为多个部件分时共享的信息传送线,用来连接多个部件并为之提供信息交换通路。【总线通常是半双工的】
特点:
- 挂接在总线上的多个部件只能分时向总线发送数据,但可以同时从总线接收数据。
- 通过总线复用方式可以减少总线中信号线的数量,以较少的信号线传输更多的信息。
从功能上将总线划分为数据总线、地址总线和控制总线。
从数据传输的方式将总线划分为并行总线和串行总线。
并行总线
将数据字节的各位用多条数据线同时进行传送。【短距离】
串行总线
数据是一位一位的进行传输的,在传输中每一位数据都占据一个固定的时间长度【长距离,传输波特率可调整,正确性依赖于校验码,数据传输方式可以使用多种】
嵌入式系统软件
嵌入式系统软件特点
- 规模较小
- 开发难度大
- 硬件资源有限
- 嵌入式软件一般涉及底层软件的开发,需要软硬件基础
- 开发环境和运行环境不同
- 实时性和可靠性要求高。如火箭飞行控制、核电站
- 要求固化存储
嵌入式系统软件分类
根据系统对时间的敏感程度可将嵌入式系统划分为:
- 嵌入式系统
- 嵌入式实时系统
- 强实时系统
- 弱实时系统
从安全性要求看,嵌入式系统还可分为:
- 安全攸关系统
- 非安全攸关系统
嵌入式操作系统
嵌入式操作系统具有一般操作系统的功能,同时具有嵌入式软件的特点,主要有:
- 非通用型操作系统
- 在性能和实时性方面可能有严格的限制
- 能用、成本和可靠性通常是影响设计的重要因素
- 占用资源少
- 可裁剪、可配置
嵌入式操作系统特点
- 微型化
- 可定制:从减少成本和缩短研发周期考虑,要求嵌入式操作系统能运行在不同的微处理器平台上,能针对硬件变化进行结构和功能上的配置,以满足不同应用需要。
- 实时性
- 可靠性
- 易移植性:为了提高系统的易移植性,通常采用硬件抽象层(HAL)和板级支持包(BSP)的底层设计技术
嵌入式操作系统分类
按照系统对响应时间的敏感程度,可以分为:
- 硬实时系统:系统对响应时间有严格要求,若响应时间不能满足,是绝对不允许的,会引起系统的崩溃或致命的错误
- 软实时系统:系统对响应时间有要求,若响应时间不能满足,会带来额外可接受的代价
- 非实时系统:响应时间没有严格要求
嵌入式实时操作系统实时性的评价指标
- 任务切换时间
- 中断响应和延迟时间
- 系统响应时间
- 信号量混洗时间
嵌入式实时操作系统调度算法
优先级调度算法:系统为每个任务分配一个相对固定的优先顺序。
抢占式优先级调度算法:根据任务的紧急程度确定该任务的优先级。大多数RTOS调度算法都是抢占方式(可剥夺方式)。
最早截止期调度算法(EDF算法):根据任务的截止时间来确定其优先级,对于时间期限最近的任务,分配最高的优先级。
最晚截止期调度算法:指调度程序按每个任务的最接近其截止期末端的时间进行调度。
多核操作系统
全局队列调度
操作系统维护一个全局的任务等待队列。当系统中有一个CPU核心空闲时,操作系统就从全局任务等待队列中选取就绪任务开始在此核心上执行。这种方法的优点是CPU科学利用率较高。
局部队列调度
操作系统为每个CPU核心维护一个局部的任务等待队列。当系统中有一个CPU空闲时,便从该核心的任务等待队列中选取恰当的任务执行。这种方法的优点是任务基本上无需再多个CPU核心间切换,有利于提高CPU核心局部Cache命中率。目前多数多核CPU操作系统采用的是基于全局队列的任务调度算法。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
2019-01-22 HihoCode-1675-稀疏矩阵乘积