Loading

嵌入式系统概论复习_2020总结

重点复习

1 嵌入式系统定义,特点,分类,组成结构、典型应用

定义:

“以应用为中心,以计算机技术为基础,软硬件可裁减,适⽤于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统”。

特点:

1、形式多样、⾯向特定应⽤的

2、得到多种类型的处理器和处理器体系结构的支持

3、极其关注成本

4、有实时性和可靠性的要求

5、使用的操作系统适应多种处理器、可剪裁、轻量型、实时可靠、可固化的嵌⼊式操作系统

6、需要专门⼯具和特殊⽅法

分类:

按处理器位数来分:4位、8位、16位、32位、64位

按应用来分:信息家电、汽车电子、通信、移动终端、工业控制

按速度分类:强实时系统、一般实时系统、弱实时系统。

按确定性分类:硬实时、软实时

按嵌入式系统软件复杂程度来分类:轮询、有限状态机、前后台、单处理器多任务、多处理器多任务

组成结构:

组成:嵌入式硬件+软件

硬件:以微处理器为核心集成存储器和系统专用的输⼊/输出设备

软件:初始化代码及驱动、嵌⼊式操作系统和应用程序有机地结合,形成系统特定的⼀体化软件。

自底向上:系统硬件、驱动、运行内核、中间件、应用软件

典型应用:

信息家电、汽车电子、智能玩具、可穿戴、通信、军用、航天

2 IOT、CPS的基本组成。

IOT(物联网):

物理设备、载具(也称为“连接设备”和“智能设备”)、建筑和其他嵌入电子、软件、传感器、执行器和网络连接的能够收集和交换数据的物品之间 的互联 。

典型结构:感知层;网络层;应用层。

典型应用:智能家居

CPS(信息物理系统):

CPS信息物理系统,一种由计算机算法控制或监控的机制,与互联网及其用户紧密结合。

深度融合了各类信息技术:传感器、嵌⼊式计算、云计算、⽹络通信、软件,使得各种信息化能力(3C:计算-Computer、通信-Communication和控制-Control)⾼度协同和⾃治,实现⽣产应⽤系统⾃主、智能、动态、系统化地监视并改变物理世界的性状。

典型结构:物理层(包括感知子系统与控制子系统);网络层;应用层。

典型应用:数字工厂、无人驾驶、军用航天

3 看门狗(概念、功能、实现原理、定时器寄存器)

  • 概念:在对系统稳定性要求较高的场合,防止嵌入式控制系统运行时受到外部干扰或者系统错误,使得程序“跑飞”,导致系统瘫痪的情况,往往要加入看门狗(Watchdog)电路。

  • 作用:当系统“跑飞”而进入死循环时,恢复系统的运行。

  • 基本原理:设本系统程序完整运行一周期的时间是tp,看门狗的定时周期为ti,且ti>tp,在程序运行一周期后就修改(再重新设定看门狗的定时周期)定时器的计数值(俗称“喂狗”),只要程序正常运行,定时器就不会溢出。若由于干扰等原因使系统不能在tp时刻修改定时器的计数值,定时器将在ti时刻溢出,引发系统复位,使系统得以重新运行,从而起到监控作用。

4 存储器层次结构

5 嵌入式系统总线

  • 总线结构,常见的总线及特点

    单、双、多

  • 输入输出编程:忙等IO和中断IO

    忙等IO效率比较低,CPU在检查设备的时候不能做其他工作,无法同步进行输入输出。

    中断IO允许设备更改CPU控制流,进行子例程调用。

  • Programming I/O:Independent I/O port. memory-mapped I/O

    • 作用:选择控制寄存器或数据缓冲区

    • 内存映射IO优点:

      • 设备控制寄存器只是内存中变量,可以用C语言寻址。因此,完全可以用C编写I/O设备驱动程序。
      • 不需要特殊的保护机制就可以防止用户进程执行I / O操作。
    • 内存映射I/O缺点:

      • 必须防止设备控制寄存器被cache缓存,这样增加了系统软硬件复杂度
      • 如果只有一个地址空间,则所有内存模块和所有I / O设备都必须检查所有内存引用,以便确定哪个

6 建模

  • 作业和资料
  • FSM:用于设计计算机程序的行为模型。状态+转换
  • 应用:交通灯、视频游戏、文本处理
  • 分层状态机特点:明确的起始态,提供更多增加状态方式、减少了所需状态数目
  • FSM实现方式
    • switch case
    • 状态表:横坐标当前状态,纵坐标输入,表元素存储下一个状态和对应的操作
    • state pattern

7 嵌入式软件

  • 特点:有实时性要求,需要交叉开发,受内存、CPU限制
  • 分类:系统软件、支撑软件、应用软件

单线程模型与多线程模型

  • 常见的体系结构,什么情况下采用哪种,各自的优势和缺陷

    • 轮转结构
    • 状态机
    • 带中断的轮转结构
    • 中断
    • 函数队列调度
    • RTOS
  • 组成:

    硬件、固件与驱动、操作系统层、中间件层、应用软件层

    简单的嵌入式系统只有应用层和硬件层

  • 开发环境:嵌入式软件的交叉开发采取宿主机和目标机的模式,软件开发(编辑、编译、调试)在宿主机上(通常是PC),目标机用来运行软件

  • 交叉开发原因:首先利用宿主机的丰富的资源和良好开发环境模拟,然后用串口或以太口传输到目标机,利用交叉调试器调试,最后目标机单独运行。

8 嵌入式操作系统

RTOS

  • 概念:实时操作系统,对外来事件能在限定的响应事件做成预定的质量处理
  • 特点:可靠性,可预测性(确定性),高性能,紧凑,可扩展性
  • 商业RTOS举例:uC/OC-II,ThreadX,VxWorks,Linux/RT,FreeRTOS
  • 选型原则:综合权衡:灵活性、响应时间、成本、可靠性、实时性、工具链、模块丰富、支持、RTOS内核RAM、ROM占用量

任务调度(RMS、EDF)

  • 进程、线程、任务的概念

    任务的实现(任务的层次结构、任务控制块、任务的状态及状态转换、任务队列)

    任务调度(可抢占调度、不可抢占调度、先来先服务、时间片轮转算法、优先级算法)

  • 思想:让就绪态中优先级最高的任务处于运行状态

  • RMS:单一速率调度 固定优先级(与周期成反比)

  • EDF:最早截止时限优先调度 动态优先级 (根据截止时限顺序指定优先级)

存储管理(静态、动态)(结合ucos-ii)

  • 静态分配:

    在编译的时候分配,例如: 

    static OS_STK MyTaskStack[stack_size];

    OS_STK MyTaskStack[stack_size];

  • 动态分配:

    在任务运⾏的时候使⽤malloc()函数来动态申请内存空间

  • ucos-II不划分内核和用户空间,系统只有一个地址空间。只有程序的运行上下文和栈是单独的,其余都是共享的。

    管理:多个内存分区,每个分区的块大小相同,不同分区的块大小不同,为了解决碎片问题。

  • malloc/free?:容易产⽣碎⽚。
    • 由于内存管理算法的原因,malloc()和free()函数执⾏时间是不确定的。μC/OS-II 对malloc()和free()函数进⾏了改进,使得它们可以分配和释放固定⼤⼩的内存块。这样⼀来,malloc()和free()函数的执⾏时间也是固定的了

9 ucos-ii

实时任务调度*

空闲任务;任务控制块TCB;优先级;任务就绪表;任务管理(创建删除任务,修改优先级,挂起与恢复任务,获得任务相关信息)

中断与时钟*

  • 中断:保存上下文,ISR。由于中断源的发生导致程序流程的改变

    • CPU响应中断的条件:1、至少有一个中断源向CPU发出中断信号 2、系统允许中断,且对此中断信号没有屏蔽
    • 中断服务程序ISR:中断⼀旦被识别,CPU会保存部分(或全部)运⾏上下⽂(context,即寄存器的值),然后跳转到专门的⼦程序去处理此次事件,称为中断服务⼦程序(ISR)。
    • 用户ISR的框架:1、保存全部CPU寄存器的值;2、调⽤OSIntEnter(),或直接把全局变量OSIntNesting(中断嵌套层次)加1;3、执⾏⽤户代码做中断服务;4、调⽤OSIntExit();5、恢复所有CPU寄存器;6、执⾏中断返回指令。
  • 时钟节拍:时钟节拍是⼀种特殊的中断。是周期性的信号源

  • 响应中断过程:

    • 系统收到中断请求
    • 如果CPU处于中断允许,且不屏蔽该中断,则终止当前任务,B
    • 运行ISR,保存上下文环境
    • 当ISR运行结束后,恢复上下文,返回到被中断任务或运行一个更高优先级任务

同步与通信*

任务间通信的管理核心:事件控制块ECB (所有通信信号被看成事件)

  • 任务间通信:使用邮箱、消息队列实现
  • 同步与互斥:同步可以通过开关中断实现,互斥使用信号量
    • 临界区(Critical Sections),即不可被中断的代码,通过 OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL();
    • 信号量(Semaphores) ,实现对共享资源的互斥访问(包括单个共享资源或多个相同的资源);实现任务之间的⾏为同步;

强化复习

1 嵌入式系统设计

  • 嵌入式系统面临挑战:

    1)需要多少硬件?

    2)如何满足时限要求,如何处理多项功能在时间上的协调一致关系?

    3)如何降低系统的功耗?

    4)如何设计以保证系统可升级?

    5)如何保证系统可靠地工作?

  • 传统开发过程:

    • 流程:需求分析,规格说明,体系结构,构建设计,系统集成
    • 特征:开始就划分为软件和硬件两部分;软硬件独立开发设计;硬件优先
    • 问题:软硬件交互受很大限制、系统集成滞后,NRE较大
    • 后果:设计质量差、设计修改难、研发周期不能保障
  • 软硬件划分:

    • 影响折衷方案的因素:软硬件的双重性是考虑的前提,还有速度、开销、灵活性
    • 举例:
      • 软件实现部分:协议栈(TCP/IP)、应用软件框架、操作系统功能(任务调度、资源管理、设备驱动)
      • 硬件实现部分:物理接口、基本逻辑电路、基本系统
      • 双重性部分:算法(加密/解密、编码/解码)、浮点运算、FFT

2 嵌入式微处理器

  • 冯诺伊曼结构与哈佛结构:

    • 冯诺依曼:数据和程序放在同一个存储空间,统一编址,指令和数据通过同一根总线访问
    • 哈佛结构:程序和数据存储在两个相互独立的存储空间,每个存储器独立编址,独立访问,分程序总线和数据总线。使数据吞吐率提高了一倍,哈佛结构不能使用自修改代码。
  • CISC与RISC

    • CISC:复杂指令集(许多操作和寻址方式)
    • RISC:精简指令集(流水线技术、访存指令只有load/store)。减少指令周期数,提高处理器和总线使用率
    • CISC更复杂,更庞大,成本更高,指令集混杂,寻址模式复杂,寄存器较少
  • 流水线技术

    • RISC用来减少指令周期,提高速度的一种技术,提高处理器和总线的使用率,并行计算
    • 将指令分成几步由不同功能的电路单元执行,这样就能在一个CPU时钟周期完成一条指令
    • 3级(取指-译码-执行),5级(取指-译码-执行-数据缓冲-写回)
  • 信息存储的字节顺序(大端和小端):

    • 大端是数据高位放在低地址,小端是数据低位放在低地址
    • 不论大小端,计算机内存存放数据的顺序都是低地址到高地址
  • 分类:

    嵌入式微处理器种类繁多,按位数可分为4位、8位、16位、32位和64位。

    根据功能不同,嵌入式微处理器分为四种:

    嵌入式微处理单元(MPU)

    嵌入式微控制器(MCU)

    嵌入式DSP处理器

    嵌入式SoC

  • 选型:

    体积、重量、可靠性、性能、功耗、成本

    高效地满足任务的计算需求

    成本合理、运行速度快、ROM和RAM以及I/O数量

    软件开发工具的可获得性

    微处理器可以广泛获得并且来源可靠

3 内存

ROM的种类与选型

  • ROM(Read-only) memory
  • 出厂前已被编程
  • flash是可编程ROM的主要形式。
    电可擦,必须块擦除。
    随机访问,但是write/erase比read慢得多。
    NOR flash更加灵活。
    NAND flash密集度更高。

RAM

  • RAM(Random-access memory)
  • DRAM密集度高,需要刷新。
    • SDRAM(同步Synchronous)是其主要类型。
    • SDRAM使用时钟来改善性能,流水线内存访问。
  • SRAM更快,密集度更低,功耗更高。
  • NVRAM(Non-Volatile Random Access Memory)
    • 可随机访问,非易失性、高速耐写,性能十倍于SSD

flash

  • 非易失性内存
  • random access
  • write
    • 把块全擦为1
    • 写0
  • write比read慢,块大(如1Mb),write导致损耗(如可写一百万次)
  • NOR flash和NAND flash都是块擦除
    • NOR按字read
    • NAND按页read(512-4K bytes)
    • NAND更便宜,擦除更快,顺序访问

![4 NOR与NAND的不同](E:\课程\嵌入式系统概论\复习资料\图片\4 NOR与NAND的不同.PNG)

4 BSP和Bootloader

嵌入式系统启动过程

  • 系统初始化:片级初始化、板级初始化、系统级初始化

BSP

  • 概念:“板级⽀持包”(Board Support Packages),⼀段启动代码,和BIOS相似,但功能区别相差很大。

  • 特点:

    • 硬件相关性:BSP必须为操作系统提供操作和控制具体硬件的⽅法。
    • 操作系统相关性:不同的操作系统具有特定的硬件接⼝形式。
  • 与BIOS区别:

    • BSP和操作系统绑在⼀起运⾏,尽管BSP的开始部分和BIOS所做的⼯作(检测、初始化、装入系统)类似,但是 BSP还包含和系统有关的基本驱动 。
    • BIOS程序用户不可更改,BSP可以被编程修改。

3 引导模式

  • 概念:将操作系统装⼊内存并开始执⾏的过程。
  • 两种模式:
    • 不需要BootLoader的引导模式:时间效率⾼,系统快速启动,直接在NOR flash或ROM系列⾮易失性存储介质中运⾏,但不满⾜运⾏速度的要求。
    • 需要BootLoader的引导模式:节省空间,牺牲时间,适⽤于硬件成本低,运⾏速度快,但启动速度相对慢

4 Bootloader

  • 概念:嵌⼊式系统中的 OS 启动加载程序

  • 作用:将内核从硬盘上读到内存中,然后跳转到内核的首条指令运行

  • 启动过程:

    • 1.初始化硬件,如设置UART(⾄少设置⼀个),检测存储器等
    • 2.设置启动参数,告诉内核硬件的信息,如⽤哪个启动界⾯,波特率.
    • 3.跳转到操作系统的⾸地址.
    • 4.消亡

重点复习(续)

1 嵌入式软件常见体系结构,定义,优缺点,伪码图

  • 轮询:CPU定时发出询问,依序询问每一个周边设备是否需要其服务,有即给予服务,服务结束后再问下一个周边,接着不断周而复始。
    • 优缺点从优先级、响应时间、变更影响、共享数据去考虑
    • 无;所有任务之和;大;无

  • 状态机:状态+转换,每个状态决定了下一个状态

    • 每个状态决定了下一状态;所有任务之和;大;无

  • 带中断的轮询:在轮询的基础上,加入了中断的概念。把系统分为前台与后台。后台的一组程序通过轮询方式访问CPU,前台在触发中断后,将请求插入到后台轮询环节的某个位置完成处理

    • 中断优先级;所有任务之和;后台main大,前台ISR小;必须处理和ISR共享的数据

  • 中断:
    • 中断有优先级;中断执行时间;对ISR小;必须处理和ISR共享的数据

  • 函数队列:任务或中断向队列加入新的函数指针,main函数遍历队列执行任务。
    • 中断有优先级,任务顺序执行;最长任务的执行时间;低;必须处理和ISR共享的数据



2 轮询的不足?前后台的运行方式?前后台的运行场合?

  • 效率低,大量CPU时间消耗在等待设备响应上
  • 后台的一组程序通过轮询方式访问CPU,前台在触发中断后,将请求插入到后台轮询环节的某个位置完成处理
  • 单用户交互与实时I/O设备控制

3 前后台系统是什么?请给出伪码描述?有哪些变种和改进?在应用时需要注意哪些内容?具体应用举例说明。

  • 变种和改进:多任务系统。相比前后台系统,多任务系统的事件响应也是在中断中完成的,但是事件的处理是在任务中完成的。任务与中断一样,也具有优先级。这样提高了实时性。

  • 应用时注意:

    • 必须处理与ISR共享的数据
    • 如果循环体中一个正在处理的任务崩溃,使得其它任务得不到处理,可能引发整个系统的崩溃
    • 循环的执行时间不是常数,确定性差
  • 举例:

    • 微波炉、电话机、智能玩具等简单应用

4 嵌入式软件体系结构组成

硬件层,驱动层,操作系统层,中间件层,应用层

  • 驱动层:板级初始化程序;与系统软件、应用软件相关的驱动
  • 操作系统层:内核(必备),文件系统,电源管理
  • 中间件层:如java,corba,dcom
  • 应用层:相对独立的各个应用

5 请描述中断设计方法

  • 先设计中断再编写ISR
  • 保持ISR简短
  • ISR执行后立即开中断
  • 用空指针填充未被使用的中断向量

6 请描述完整的中断处理过程。中断机制相关的执行时间开销有哪些?保证中断更有效的机制?

  • 中断请求、中断排队或优先级仲裁、中断处理、中断返回
  • 中断延迟、进入中断、寄存器的保存与恢复
  • 优先级决定哪个中断先获得CPU;中断向量决定每个中断对应的执行代码

7 什么是可重入性?可重入性需要满足哪些特性。

8 从NOR flash启动和NAND启动有什么不同?

NOR可以XIP,NAND需要bootloader将内核读到内存上运行

在NAND中存储启动有关的boot代码和驱动代码,系统启动时直接从NAND中读取代码并执行。

9 什么是看门狗(watch dog)?看门狗有什么作用?工作原理是什么?

是一个定时器。防止因程序跑飞陷入死循环,恢复系统正常运行,保证嵌入式设备能在无人值守的环境下连续运行。程序每隔一个周期向其输出一个信号,如果超过了WDT的规定时间,就跟MCU发送一个复位信号,使其复位。

10 IOT CPS(概念、结构、应用)

  • IOT:物联网就是万物互联的互联网,是互联网与嵌入式系统发展到高级阶段的融合;

    感知层,网络层,应用层

  • CPS:信息物理系统,计算进程和物理进程的统一体,集3C(计算、通信、控制)为一体的下一代智能系统

11 给出有限状态机的定义,有哪两类状态机?分层FSM特点?给出至少三种示例应用

11 FSM实现有几种方式,选择哪种实现?说明原因

  • 实现方式:1、switch-case 2、状态表 3、状态模式
  • 选择状态模式,考虑功能、可靠性、成本、体积、功耗,更易于维护和扩展,降低了耦合,增加状态只需修改内部实现,不用改变接口。隐藏内部实现分解了复杂度,使代码易于理解。

13 是描述RTOS ucos-ii采取了哪些策略和机制来确保任务的实时性**

14 什么是优先级反转?如何解决?

15 比较三类嵌入式处理器,即MPU、MCU、DSP的区别

  • MPU就是与通用计算机处理器对应的CPU
  • MCU将计算机系统主要硬件集成到一块芯片中
  • DSP是专用于信号处理方面的处理器
  • Soc追求系统最大包容的集成器件

16 影响流水线性能的因素有哪些?分支指令对流水线性能有何影响?如何解决?

17 简述Nor Flash和NAND Flash之间的区别(至少五种)

  • 应用:NAND存储数据,NOR 存储代码
  • 容量:NAND容量大,NOR容量小
  • 读取:NAND串行存取,NOR随机读取
  • 速度:NAND读性能好,NOR写性能好
  • 成本:NAND成本更低

18 实时操作系统ucos-ii如何从64个任务扩展到支持256个任务?

19 嵌入式操作系统和通用操作系统的区别和联系

  • 区别:
    • 嵌 应用于看不见的计算机;通 应用于实实在在的计算机
    • 嵌 有实时性和可靠性要求;通 要求没有嵌严格
    • 嵌 系统资源紧缺,往往是可剪裁、轻量级、强调硬件适用的系统;通 系统资源充足
    • 嵌 运行在其上的应用程序不能重新编程开发;通 可以
  • 联系:
    • 二者都是操作系统,都有内存管理、进程线程等概念
    • 都需要依赖硬件运行,硬件直接影响其运行速度

20 代码的临界区:定义,如何实现

  • 定义:访问临界资源的那段代码称为临界区(临界资源是一次仅允许一个进程使用的共享资源),不可被中断。
  • 实现:定义两个宏来开关中断,进入和退出临界区,即:OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL();临界区代码就写在他们中间。

21 什么是建模?举例说明有哪些建模技术

  • 建模是为了理解系统,对系统做出抽象、建立模型的过程
  • FSM、ER图、数据流图、系统框图

22 仿真开发:定义、使用原因、特点

  • 利用模型复现实际系统发生过程,通过对模型实验来研究实际系统
  • 用计算机实现模型复现不仅方便灵活,而且经济

补充了解

23 原始优先级上限协议和立即优先级上限协议解释

24 嵌入式几种总线及其区别

25 上下文切换概念

CPU从一个进程或线程的环境切换到另一个进程或线程的环境,涉及到保存和恢复寄存器现场。

posted @ 2020-11-16 16:40  iterationjia  阅读(796)  评论(0编辑  收藏  举报