冯诺依曼结构(程序和数据不分开存储)、哈佛结构(程序和数据分开存储)
CISC和RISC
CISC:复杂指令集(Complex Instruction Set Computer)
RISC:精简指令集(Reduced Instruction Set Computer)
IP核
知识产权核,电路或核是设计好并经过验证的集成电路单元,主要分为:
(1)软核
(2)硬核
(3)固核
三种模式:
流水线技术
几个指令可以并行执行,提高了CPU的运行效率,内部信息刘要求通畅流动。
流水线技术,PC指向正被取指的指令,而非正在执行的指令。
超标量执行:超标量CPU采用多条流水线结构
高速缓存CACHE
存储器层次:寄存器→高速缓存SRAM→ 主存DRAM→本地存储器ROM\FLASH→ 网络存储器ROM\FLASH
存储器系统:
RAM:随机存取存储器, SRAM:静态随机存储器, DRAM:动态随机存储器
1)SRAM比DRAM快
2)SRAM比DRAM耗电多
3)DRAM存储密度比SRAM高得多
4)DRM需要周期性刷新
ROM:只读存储器
FLASH:闪存
发展阶段:
设备驱动程序:直接和硬件打交道,对硬件进行控制和管理的软件。(嵌入式系统中,设备驱动程序必不可少)
设备驱动程序主要功能:
嵌入式操作系统:
中间件:
除了OS内核、设备驱动程序、应用软件外的所有系统软件。
优点:实现软件的可重用,降低应用软件的复杂性,降低开发成本。
嵌入式软件目标P45资源优化
汇编代码
if-then-else语句的汇编代码
$L1:
cmp dword ptr[ebp-4], 1 #把a与常量1进行比较
jne $L2 #如果不相同,跳到$L2继续比较下一个值
call _ant #如果相同,调用ant()函数
jmp $END #跳转到这段代码的末尾
$L2:
cmp dword ptr[ebp-4], 2 #把a与常量2进行比较
jne $L3 #如果不相同,跳到$L3继续比较下一个值
call _bar #如果相同,调用bar()函数
jmp $END #跳转到这段代码的末尾
$L3:
...
$END:
switch语句的汇编代码-1
JmpTable dword $L1,$L2,$L3,$L4,$L5,$L6
mov eax,dword ptr [ebp-4] #取出变量a的值
mov dword ptr [ebp-8],eax #保存在临时变量中
mov ecx,dword ptr [ebp-8] #取出,放在ecx中
sub ecx,1 #减1
mov dword ptr [ebp-8],ecx #保存回去
cmp dword ptr [ebp-8],5 #与5进行比较
ja $END #若大于5,结束
mov edx,dword ptr [ebp-8] #取出该值,放edx
jmp dword ptr [edx*4+JmpTable]#跳转到相应的
#case标记
switch语句的汇编代码-1
$L1: # case 1
call _ant
jmp $END
$L2: # case 2
call _bar
jmp $END
......
$L5: # case 5
call _eat
jmp $END
$L6: # case 6
call _foo
$END:
内存分配的方式:
(1)动态分配:堆(malloc)
(2)自动分配:栈,保存局部变量
(3)静态分配:保存全局变量
控制流与数据流P63
**可重入函数:**只使用局部变量(保存在寄存器或栈中),被1个以上的任务调用。
嵌入式操作系统→软硬件资源的管理者。
(1)进程管理
(2)存储器管理
(3)设备管理
(4)文件管理
(5)接口
按响应时间分类
按软件结构分类 RTOS的结构:
(1)单体结构
(2)分层结构
(3)微内核结构:设备驱动从内核中分离
进程: 程序+执行。其特点有:
(1)动态性
(2)并发性
(3)独立性
进程=线程+资源平台
优点:
线程:并发执行+共享地址空间,代码在资源平台上的执行流程。
任务:嵌入式系统中提到的任务实际上是线程。
描述任务的数据结构:任务控制块TCB
任务控制块(TCB)是任务存在的唯一标志,任务有3种状态p112
(1)就绪态:就绪队列
(2)运行态:执行队列
(3)等待态:等待队列
任务的调度:
任务调度的时机p118
任务调度的方式:
(1)不可抢占方式
(2)可抢占方式
调度算法的评价指标:
任务调度算法:
RTOS的调度目标:使得每个任务在最终期限之前完成。
大多数RTOS调度都采用可抢占式优先级调度。
任务模型(周期性任务):
单调速率调度算法:RMS是一种静态优先级调度算法,也是最常用的一种确定任务优先级的算法。思路:单位时间内任务被执行的次数越多,优先级越高。即任务的周期越短,优先级越高。
**最早期限优先调度算法EDF:**EDF是一种动态优先级调度算法,也是性能最好的一种调度算法。思路:对时间期限最近的任务,分配最高的优先级。
任务间的通信:
(1)共享内存
(2)消息传递:邮箱、消息队列等
(3)管道
(4)信号
信号与中断
相同点:
不同点:
同步与互斥p159
I/O设备类型
按交互方向分类:
按数据组织分类:
设备控制器
机械部分:即为I/O设备本身
电子部分:设备控制器或适配器,它的功能是完成设备与主机间的连接和通讯
CPU如何与设备控制器当中的寄存器以及数据缓冲区来进行通信?
I/O控制方式:
(1)程序循环检测方式
(2)中断驱动方式
(3)直接内存访问方式DMA方式