第二章 基本概念
1、嵌入式系统硬件基础
冯诺依曼结构(程序和数据不分开存储)、哈佛结构(程序和数据分开存储)
CISC和RISC
CISC:复杂指令集(Complex Instruction Set Computer)
RISC:精简指令集(Reduced Instruction Set Computer)
IP核
知识产权核,电路或核是设计好并经过验证的集成电路单元,主要分为:
(1)软核
(2)硬核
(3)固核
三种模式:
- 计者提供设计和工具的许可证
- 核厂商设计并制造集成电路芯片
- 核厂商卖核, 负责为客户设计并制造芯片
流水线技术
几个指令可以并行执行,提高了CPU的运行效率,内部信息刘要求通畅流动。
流水线技术,PC指向正被取指的指令,而非正在执行的指令。
超标量执行:超标量CPU采用多条流水线结构
高速缓存CACHE
存储器层次:寄存器→高速缓存SRAM→ 主存DRAM→本地存储器ROMFLASH→ 络存储器ROMFLASH
存储器系统:
RAM:随机存取存储器, SRAM:静态随机存储器, DRAM:动态随机存储器
1)SRAM比DRAM快
2)SRAM比DRAM耗电多
3)DRAM存储密度比SRAM高得多
4)DRM需要周期性刷新
ROM:只读存储器
FLASH:闪存
2、嵌入式系统软件基础
发展阶段:
- 无操作系统
设计以应用为核心,应用软件直接建立在硬件上,没有转门的操作系统、- 循环轮询系统
- 事件驱动系统(前后台):嵌入式RTOS的主要形式。
- 有操作系统
- 应用软件层
- 中间件层
- 操作系统层
- 设备驱动层
设备驱动程序:直接和硬件打交道,对硬件进行控制和管理的软件。(嵌入式系统中,设备驱动程序必不可少)
设备驱动程序主要功能:
- 硬件启动(Startup):在开机上电或重启的时候,对硬件进行初始化;
- 硬件关闭(Shutdown):把硬件配置成关机状态;
- 硬件停用(Disable):暂停使用硬件;
- 硬件启用(Enable):重新启用硬件;
- 硬件读操作(Read):从硬件中读取数据;
- 硬件写操作(Write):往硬件中写数据;
嵌入式操作系统:
- 包括嵌入式内核、嵌入式TCP/IP 络系统、嵌入式文件系统、嵌入式GUI系统、电源管理等部分
- 嵌入式内核是基础核核心
中间件:
除了OS内核、设备驱动程序、应用软件外的所有系统软件。
优点:实现软件的可重用,降低应用软件的复杂性,降低开发成本。
嵌入式软件目标P45资源优化
汇编代码
if-then-else语句的汇编代码
switch语句的汇编代码-1
switch语句的汇编代码-1
内存分配的方式:
(1)动态分配:堆(malloc)
(2)自动分配:栈,保存局部变量
(3)静态分配:保存全局变量
控制流与数据流P63
- 一个函数的函数调用过程
- 控制流的变化
**可重入函数:**只使用局部变量(保存在寄存器或栈中),被1个以上的任务调用。
3、嵌入式操作系统
嵌入式操作系统→软硬件资源的管理者。
(1)进程管理
(2)存储器管理
(3)设备管理
(4)文件管理
(5)接口
按响应时间分类
- 嵌入式实时操作系统
- 实时操作系统(RTOS)是一种操作系统,其正确性包括其响应时间和功能正确性。
- 硬实时和软实时
- 分时操作系统
按软件结构分类 RTOS的结构:
(1)单体结构
(2)分层结构
(3)微内核结构:设备驱动从内核中分离
进程、线程和任务
进程: 程序+执行。其特点有:
(1)动态性
(2)并发性
(3)独立性
进程=线程+资源平台
优点:
- 一个进程中可以同时存在多个线程
- 各个线程之间可以并发地执行
- 各个线程间可以贡献地址空间
线程:并发执行+共享地址空间,代码在资源平台上的执行流程。
任务:嵌入式系统中提到的任务实际上是线程。
描述任务的数据结构:任务控制块TCB
任务控制块(TCB)是任务存在的唯一标志,任务有3种状态p112
(1)就绪态:就绪队列
(2)运行态:执行队列
(3)等待态:等待队列
任务的调度:
任务调度的时机p118
任务调度的方式:
(1)不可抢占方式
(2)可抢占方式
调度算法的评价指标:
- 响应时间
- 周转时间
- 调度开销
- 公平
- 均衡
- 吞吐量
任务调度算法:
- 先来先服务FCFS
- 短作业优先
- 时间片轮转
- 优先级调度算法
RTOS的调度目标:使得每个任务在最终期限之前完成。
大多数RTOS调度都采用可抢占式优先级调度。
任务模型(周期性任务):
- 启动时间r(i,j)
- 时间限制D(i)
- 周期P(I)
- 执行时间E(I)
单调速率调度算法:RMS是一种静态优先级调度算法,也是最常用的一种确定任务优先级的算法。思路:单位时间内任务被执行的次数越多,优先级越高。即任务的周期越短,优先级越高。
**最早期限优先调度算法EDF:**EDF是一种动态优先级调度算法,也是性能最好的一种调度算法。思路:对时间期限最近的任务,分配最高的优先级。
任务间的通信:
(1)共享内存
(2)消息传递:邮箱、消息队列等
(3)管道
(4)信
信 与中断
相同点:
- 具有中断性
- 有相应的处理程序
- 可以屏蔽响应
不同点:
- 中断由硬件或特定的指令产生,信 由系统调用产生
- 中断触发后,硬件会根据中断向量找到相应的处理程序去执行;信 通过发送信 的系统调用触发,但系统不一定马上对它进行处理;
- 中断处理程序是在系统内核的上下文中运行,是全局的;而信 处理程序是在相关任务的上下文中运行,是任务的一个组成部分。
同步与互斥p159
- 竞争条件
- 解决之道:互斥的概念
- 竞争条件问题的抽象描述:临界区,临界资源
- 关闭中断的解决方案
- 基于繁忙等待的解决方案:浪费CPU时间
- 信 量
内存布局
- 静态段
- 代码段.text
- 数据段.data
- bss段(全局变量).bss
- 动态段
- 堆空间:动态分配的内存空间,malloc/free
- 栈空间:保存运行上下文以及函数调用时的局部变量和形参。
I/0地址
I/O设备类型
按交互方向分类:
- 输入设备
- 输出设备
- 输出/输出
按数据组织分类:
- 块设备
- 字符设备
设备控制器
机械部分:即为I/O设备本身
电子部分:设备控制器或适配器,它的功能是完成设备与主机间的连接和通讯
CPU如何与设备控制器当中的寄存器以及数据缓冲区来进行通信/strong>
- I/O独立编址;
- 内存映像编址;
- 混合编址。
I/O控制方式:
(1)程序循环检测方式
(2)中断驱动方式
(3)直接内存访问方式DMA方式
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!