中国科技大学嵌入式考试复习总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
嵌入式系统的几个重要特征:(1)操作系统内核小(2)专用性强(3)系统精简(4)高实时性OS (5)嵌入式软件开发走向标准化(6)嵌入式系统开发需要开发工具和环境
嵌入式系统具有的特点:低功耗、体积小、成本低、集成度高。
定义:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能,可靠性,成本,体积,功耗严格要求的专用计算机系统。
组成:硬件,系统组件,内嵌式操作系统,用户程序。
实时性:依赖于运行结果的逻辑正确性和时间正确性。从输入到输出的滞后时间必须足够小到一个可以接受的时限内。
嵌入式系统的设计过程:需求分析》规格说明》体系结构设计》(执行装置设计,硬件设计,软件设计)》系统集成》系统测试》产品
软硬件协同设计过程可归纳:(l)需求分析;(2)软硬件协同设计(3)软硬件实现(4)软硬件协同测试和验证。
交叉开发环境:先在通用PC机上编程,然后通过交叉编译链接,将程序做成目标平台上可以运行的二进制代码格式。最后将程序下载到目标平台上的特定位置由目标板上启动代码运行这段二进制代码。
几种常用的调试方法:1指令集模拟器,2驻留监控软件,3JTAG仿真器,4在线仿真器ICE
嵌入式linux 开发流程:
1 建立开发环境:操作系统一般使用REDHAT-LINUX,通过网络下载相应的GCC 交叉编译器进行安装
2.配置开发主机:
a)配置MINICOM,MINICOM 软件的作用是作为调试嵌入式开发板信息输出的监视器和键盘输入的工具;
b) 配置网络,主要是配置NFS 网络文件系统,需要关闭防火墙,简化嵌入式网络调试环境设置过程。
3.建立引导装载程序BOOTLOADER:
4.下载别人已经移植好的LINUX 操作系统: 下载后再添加自己的特定硬件的驱动程序,进行调试修改。
5.建立根文件系统
6.建立应用程序的flash 磁盘分区
7.开发应用程序
什么是bootloader:Bootloader为引导加载程序,是嵌入式系统加电后运行的第一段代码,相当于PC机的BIOS。
Bootloader的位置:通常固化在硬件上的某个固态存储设备上,加电后自启动。Bootloader功能:初始化硬件设备、建立内存空间的映射图,将系统的软、硬件环境带到一个合适的状态,以便为最终调用操作系统内核或用户应用程序准备好正确的环境。
几种发布的Bootloader:vivi、RedBoot和U-Boot
Bootloader操作模式:“启动加载”模式和“下载”模式
启动加载模式:Bootloader从目标机上的某个固态存储设备上将操作系统加载到 RAM 中运行,整个过程并没有用户的介入。
下载模式:目标机上的Bootloader将通过串口连接或网络连接等通信手段从主机下载文件。主要是下载内核映像和根文件系统映像等。从主机下载的文件通常首先被Bootloader保存到目标机的RAM中,然后再被 Bootloader写到目标机上的FLASH 类固态存储设备中。
Bootloader启动过程:
1、第一阶段
(1)、基本的硬件设备初始化
(2)、为阶段2代码准备RAM空间
(3)、拷贝阶段2代码到RAM空间
(4)、设置好堆栈
(5)、跳转到阶段2的C程序入口点
2、第二阶段
(1)、初始化本阶段要使用到的硬件
(2)、检测系统内存映射(memory map)
(3)、将kernel和根文件系统映像从flash读到RAM空间
(4)、为kernel设置启动参数
(5)、调用内核
四:
嵌入式处理器: 嵌入式微控制器(MCU),嵌入式DSP处理器,嵌入式微处理器(MPU), 嵌入式片上系统
嵌入式微处理器具有体积小、重量轻、成本低、可靠性高的优点。
冯·诺依曼体系结构:数据和指令都存储在一个存储器中的计算机被称为冯·诺依曼机
哈佛体系结构:数据和指令存储在各自独立的存储器中的计算机体系结构称为哈佛体系结构 , 提供了较大的数据存储器带宽,适合于数字信号处理
CISC复杂指令集:
RISC:精简指令集
ARM体系结构还采用了一些特别的技术:
所有的指令都可根据前面的执行结果决定是否被执行,提高了指令的执行效率。
可用Load/Store指令批量传输数据,以提高数据的传输效率。
可在一条数据处理指令中同时完成逻辑处理和移位处理。
RISC流水线技术: 个指令可以并行执行,提高了CPU的运行效率,内部信息流要求通畅流动
ARM7系列处理器中每条指令分取指、译码、执行三个阶段, 流水线上虽然一条指令仍需3个时钟周期来完成,但通过多个部件并行,使得处理器的吞吐率约为每个周期一条指令,提高了流式指令的处理速度.
ARM9系列处理器的流水线分为取指、译码、执行、访存、回写.
解决流水线相关:
1.结构相关:如果某些指令在流水线中重叠执行时,产生资源冲突(多周
期指令、访问存储器指令)
避免方法:a)采用分离式指令Cache和数据Cache
b)ALU中采用单独加法器来完成地址计算
2.数据相关:当一条指令需要前面指令的执行结果,而这些指令均在流水
线中重叠执行时
避免方法:a) 定向(也称旁路或短路)技术。将前一条指令的结果,
直接传递给后面需要它的指令,不必写入寄存器之后再由
后一条指令读出。就可能避免停顿
b) 流水线互锁技术。当互锁发生时,流水线会停止这条指
令的执行,直到数据准备好为止。
3.控制相关:当流水线遇到分支指令和其他会改变PC值的指令时就会发
生控制相关
避免:a)引入延时分支
b)尽早计算出分支转移成功的PC值
ARM7和ARM9的比较:5级流水线的ARM9内核是哈佛架构,拥有独立的指令和数据总线;指令和数据的读取可以在同一周期进行;3级流水的ARM7内核是指令和数据总线复用的冯.诺依曼架构,指令和数据的读取不能在同一周期进行;负面作用是增加了系统的延时。
超标量执行:超标量CPU采用多条流水线结构。通过重复设置多套指令执行部件,同时处理并完成多条指令,实现并行操作,来达到提高处理速度的目的。如何减少CPU与内存之间的速度差异?
1.在基本总线周期中插入等待,但这样会浪费CPU的能力。
2.采用存取时间较快的SRAM作存储器,但却大幅提升了系统成本。
3.在慢速的DRAM和快速CPU之间插入一速度较快、容量较小的SRAM,起到缓
冲作用;这就是Cache法
4.采用新型存储器。
为什么采用高速缓存:CPU的时钟频率比内存速度提高快得多,高速缓存可以提
高内存的平均性能。
高速缓存的工作原理:高速缓存是一种小型、快速的存储器,它保存部分主存内容的拷贝
总线桥:简单来说就是一个总线转换器,它实现各类微处理器总线到PCI总线、各类标准总线到PCI总线的连接,并允许它们之间相互通信。
ARM总线结构:AHB总线(高速),ASB总线(高速),APB总线(低速)
ARM处理器的几大特点:小体积、低功耗、成本低、高性能;支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件;大量使用寄存器,大多数数据操作都在寄存器中完成,指令执行速度更快;寻址方式灵活简单,执行效率高;指令长度固定;
ARM两种工作状态:ARM - 32-bit,Thumb -16-bit
ARM>THUMB:LDR R0,=Label+1
BX R0
THUMB>ARM: LDR R0,=Label
BX R0
ARM处理器在开始执行代码时,只能处于ARM状态。
ARM体系结构的存储器模式: 大端模式,最高位字节保存在最低位地址
小端模式,最低位字节保存在最低位地址
测试编译器属哪种模式
下面这段代码可以用来测试一下你的编译器是大端模式还是小端模式: