QwQ嵌入式系统复习第二章

第一节 嵌入式系统硬件基础

- 冯·诺依曼体系结构和哈佛体系结构
指令数据不分开 指令数据分开

- CISC和RISC
CISC:复杂指令集(Complex Instruction Set Computer)
具有大量的指令和寻址方式
8/2原则:80%的程序只使用20%的指令
大多数程序只使用少量的指令就能够运行。
RISC:精简指令集(Reduced Instruction Set Computer)
在通道中只包含最有用的指令
确保数据通道快速执行每一条指令
使CPU硬件结构设计变得更为简单

- 知识产权核(IP核)
定义:知识产权(IP) 电路或核是设计好并经过验证的集成电路功能单元
IP核的种类:
1.软核
HDL语言描述
灵活度高,可修改
与工艺独立,可根据具体的加工工艺重新综合;
IP很难保护
2.固核
逻辑综合后的描述
与工艺相关
3.硬核
物理综合后的描述
准备流片
包含工艺相关的布局和时序信息
IP很容易保护
多数的处理器和存储器

- 指令流水线
知识点:
ARM7 系列使用3级流水线。
PC指向正被取指的指令,而非正在执行的指令。
超标量执行:超标量CPU采用多条流水线结构。

- 高速缓存(CACHE)
- NOR技术
NOR技术闪速存储器是最早出现的Flash Memory;与其它Flash Memory技术相比,具有可靠性高、随机读取速度快的优势,但擦除和写的速度较NAND慢。

- 输入输出接口

第二节 嵌入式系统软件基础

- 无操作系统的情形
循环轮询系统;事件驱动系统。
- 有操作系统的情形
- 设备驱动程序
定义:直接与硬件打交道、对硬件进行控制和管理的软件。

- 嵌入式操作系统
组成:嵌入式内核、嵌入式TCP/IP网络系统、嵌入式文件系统、嵌入式GUI系统和电源管理等部分。
嵌入式内核是基础和核心。

- 嵌入式中间件
定义:在OS内核、设备驱动程序和应用软件之外的所有系统软件。
基本思路:把原本属于应用软件层的一些通用的功能模块抽取出来,形成独立的一层软件,从而为运行在其上的各个应用软件提供一个灵活、安全、移植性好、相互通信、协同工作的平台。
优点:实现软件的可重用,降低应用软件的复杂性,降低开发成本。

- 嵌入式软件的目标
优化对以下三种资源的使用:
1.执行时间;
2.存储空间;
3.开发/维护时间。

- 数据类型与运算符
宏定义 #define PI 3.1415926
const常量 const int x = 1
位运算 & 与操作;| 或操作;^ 异或操作;~ 取反操作;>> 右移操作;<< 左移操作。

- 函数调用过程
1.在内存的栈空间当中为其分配一个栈帧,用来存放该函数的形参和局部变量;
2.把实参变量的值复制到相应的形参变量;
3.控制转移到该函数的起始位置;
4.该函数开始执行;
5.控制流和返回值返回到函数调用点。

- 变量的存储与作用域
QwQ嵌入式系统复习第二章_第1张图片

- 可重入函数
可以被一个以上的任务调用,而不必担心数据的破坏。可重入型函数任何时候都可以被中断,一段时间以后又可以运行,而相应数据不会丢失。
可重入型函数只使用局部变量,即变量保存在CPU寄存器或栈中。

第三节 嵌入式操作系统

- 操作系统任务
进程管理;存储管理;I/O设备管理;文件管理。

- 操作系统分类
1.按响应时间分类
实时操作系统:当事件/请求发生时,相应的任务应该在规定的时间内完成。
分时操作系统:基于公平性原则,各个进程分享处理器,获得大致相同的运行时间。当一个进程在进行I/O操作时,交出处理器,让其他进程运行。
2.按软件结构分类
单体结构:整个系统只有一个可执行文件,包含所有的操作系统组件;系统的结构就是无结构,由一组函数组成,相互之间可以随意地调用。
分层结构:在分层结构(layered)中,一个操作系统被划分为若干个层次(0…N),各个层次之间的调用关系是单向的,即某一层次上的代码只能调用比它低层的代码。
微内核结构:操作系统内核只包含最少的功能。

- 多道程序技术
- 进程
包括: 程序的代码;程序的数据;PC中的值,用来指示下一条将运行的指令;一组通用的寄存器的当前值,堆、栈;一组系统资源(如打开的文件)。
特性:
动态性:程序的运行状态在变。
独立性:是一个独立的实体,是计算机系统资源的使用单位。
并发性:从宏观上看各进程是同时独立运行的。

- 线程
更小的能独立运行的基本单位。
优点:
一个进程中可以同时存在多个线程;
各个线程之间可以并发地执行;
各个线程之间可以共享地址空间。

- 任务
定义:能够独立运行的实体。
任务的创建主要有两种模型:fork/exec和spawn。
fork/exec:先用fork系统调用创建与父任务完全相同的一份内存空间,然后再用exec系统调用来移除父任务的内容,并调入子任务的程序代码。优点:允许继承;
spawn:直接为子任务创建一个全新的地址空间,并装入其程序代码。
任务的描述:任务控制块(TCB)
TCB内容:任务ID、任务的状态、任务的优先级、CPU上下文信息(通用寄存器的值、PC寄存器的值、程序状态字、栈指针的值)。
QwQ嵌入式系统复习第二章_第2张图片

- 任务的调度
响应时间(response time):调度器为一个就绪任务进行上下文切换的时间,以及任务在就绪队列中等待的时间;
周转时间(turnaround time):一个任务从提交到完成所经历的时间;
调度算法:先来先服务;短作业优先;时间片轮转算法;优先级算法;单调速率调度算法;最早期限优先调度算法。

- 任务间通信
任务间通信的四种方式:
共享内存(shared memory);
消息传递(message passing);
管道(pipe);
信号(signal)。
具体来说,
共享内存:各个任务共享它们地址空间当中的某些部分,即共享内存。
消息传递:任务之间通过发送和接收消息来交换信息。
管道:管道通信以文件系统为基础,所谓管道即连接两个任务之间的一个打开的共享文件,专用于任务之间的数据通信;
发送任务从管道的一端写入数据流,接收任务从管道的另一端按先进先出的顺序读出数据流。
信号:任务的一个标识,表明某个异步事件已经发生了。

- 信号与中断异同:
相同点:具有中断性;有相应的处理程序;可以屏蔽响应;
不同点:中断由硬件或特定的指令产生,信号由系统调用产生; 中断触发后,硬件会根据中断向量找到相应的处理程序去执行;信号通过发送信号的系统调用触发,但系统不一定马上对它进行处理;中断处理程序是在系统内核的上下文中运行,是全局的;而信号处理程序是在相关任务的上下文中运行,是任务的一个组成部分。

- 同步与互斥
竞争条件:两个或多个任务对同一共享数据同时进行读写操作,而最后的结果是不可预测的,它取决于各个任务的具体运行情况。
pv操作:
QwQ嵌入式系统复习第二章_第3张图片
QwQ嵌入式系统复习第二章_第4张图片
QwQ嵌入式系统复习第二章_第5张图片

- I/O地址
编址方法有三种:
I/O独立编址;内存映像编址;混合编址。
I/O独立编址:给控制器中的每一个寄存器分配一个唯一的I/O端口(I/O port)编号。
内存映像编址:把所有控制器当中的每一个寄存器都映射为一个内存单元。
混合编址:对于设备控制器中的寄存器,采用独立编址的方法;而对于设备的数据缓冲区,采用内存映像编址的方法。

I/O控制方式三种:
程序循环检测方式;中断驱动方式;直接内存访问方式。
程序循环检测方式:在程序(设备驱动程序)中通过不断地检测I/O设备的当前状态,来控制I/O操作的完成。
中断驱动方式:用户进程通过
系统调用函数来发起I/O操作,并在发起后
阻塞该进程,调度其他的进程使用CPU。在
I/O操作完成时,设备向CPU发出中断,然后
在中断处理程序中做进一步的处理。在中断
驱动方式下,数据的每次读写还是通过CPU
来完成,但是当I/O设备在进行数据处理时,
CPU不必等待,可以继续执行其他的进程。
直接内存访问方式:
1.CPU对DMA控制器进行编程,告诉它应把什么数据传送到内存的什么地方。并向磁盘控制器发出命令,让它去磁盘驱动器中读入所需的数据块,保存到内部缓冲区中,并验证数据的正确性;
2.DMA控制器通过总线向磁盘控制器发出一个读操作的信号,并把将写入的内存地址打在总线上;
3.磁盘控制器取出一个字节,按该地址写入内存;
4.磁盘控制器向DMA发一个确认信号,DMA把内存地址加1,把字节计数器减1。若计数器的值大于0转第2步;
5.DMA控制器向CPU发出一个中断,告诉它数据传输已完成。

第四节 嵌入式系统设计方法

QwQ嵌入式系统复习第二章_第6张图片

- 嵌入式系统的调试
嵌入式系统的调试有四种基本方法:
模拟调试(Simulator)
软件调试(Debugger)
BDM/JTAG调试(BDM/JTAG Debugger)
全仿真调试(Emulator)

- 选择实时操作系统RTOS
RTOS的作用:
1.提供API(应用编程接口):操作系统为应用程序员提供可供调用的API,允许程序员致力于应用程序的开发
2.简化系统设计:实时嵌入式系统比非实时系统更难设计. 使用实时多任务的内核能简化系统设计,可将复杂的应用程序分为几个不同的任务,由内核去对他们协调处理

你可能感兴趣的:(嵌入式系统,复习)