2022年嵌入式系统原理与设计复习_wen .pdf
-
资源ID:35756377
资源大小:1.05MB
全文页数:10页
- 资源格式: PDF
下载积分:4.3金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
2022年嵌入式系统原理与设计复习_wen .pdf
1 嵌入式系统原理与设计复习材料考试题型: 填空10 分;判断10 分;简单40 分;综合40 分。考试主要涉及部分:书本基本概念,实验,硬件设计,软件编程。书本关键章节:一( 1.4) ,二(2.2.1;2.3.1;2.3.5;2.4) ,三,四(4.1.1, ;4.2.2;4.2.3) ,五,七( 7.2) ,八一开发环境硬件环境: ARM9(ARM7)开发板软件环境: Keil 二ARM9体系结构2.1 ARM9系列处理器主要特点:(P38)支持 32 位 ARM指令集和 16 位 Thumb 指令集的 32 位 RISC 处理器。五级整数流水线。单一的 32 位 AMBA总线接口。MMU 支持 Windows CE 、Linux等系统。MPU 支持实时操作系统,包括VxWorks。统一的数据 cache和指令 cache。提供 0.18um、0.15um 及 0.13um 的生产工艺。2.2 五级流水线(P42) :ARM920T微处理器的指令流水采用典型的RISC 五级流水线结构,将指令执行过程分为取指、译码、执行、访问和写回5 个步骤。在每一个时钟周期内可能同时有5 个指令在执行,消除了指令执行的性能瓶颈,加快了指令执行速度。由于采用五级指令流水结构,程序计数器(PC )是指向取指的指令而不是正在执行的指令,即正在执行的指令对应的地址总是当前程序计数器( PC )值对应地址之前2 条指令的地址。2.3 分支指令目的地址计算公式(P46) :目的地址 =当前执行的指令地址 +8+偏移量2.4 顺序执行地址计算 (P47) :下一条需顺序执行的指令地址=当前执行指令地址 +4 2.5 ARM9存储模式 (P47) :大端模式 :字的地址对应的是该字中最高有效字节所对应的地址;半字地址对应的是该半字中最高有效字节所对应的地址。也就是说,32 位数据的最高字节存储在低地址中,而其最低字节则存放在高地址中。小端模式 :字的地址对应的是该字中最低有效字节所对应的地址;半字地址对应的是该半字中最低有效字节所对应的地址。也就是说,32 位数据的最高字节存储在高地址中, 而其最低字节则存放在低地址中。ARM9处理器默认为小端模式。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 10 页 - - - - - - - - - 2 2.6 边界对准(P47) :访问字存储单元时, 字地址应该字对准 (地址能被 4 整除) ;访问半字存储单元时,半字地址应该半字对准(地址能被2 整除) 。2.7 ARM9工作模式 (P45) :模式符号是否特权是否异常意义用户模式Usr 正常执行程序时的处理器模式系统模式Sys 特权模式运行特权操作系统任务时的模式管理模式Svc 特权模式异常模式运行操作系统的保护模式中止模式Abt 特权模式异常模式指令或数据预取操作中止时的模式,该模式下实现虚拟存储器或存储器保护未定义模式Und 特权模式异常模式当执行未定义的指令时进入该模式IRQ模式Irq 特权模式异常模式相应普通中断时的处理模式FIQ模式Fiq 特权模式异常模式相应快速中断时的处理模式2.8 内部寄存器 (P48) :ARM9 处理器的内部总共有37 个 32 位的寄存器,其中31 个用作通用寄存器, 6 个用作状态寄存器,每个状态寄存器只使用了其中的 12 位。R0R15称为通用寄存器,其中,R0R7是不分组的寄存器; R8R14是根据工作模式进行分组的寄存器。R13寄存器的作用通常是堆栈指针,又称为SP 。每种异常模式都有对应于该模式下的 R13物理寄存器。R14寄存器可用作子程序链接寄存器,又称为LR (Link Register) 。当 ARM9处理器执行带链接的分枝指令(如:BL指令)时,R14保存 R15的值。当异常发生时,相应的寄存器分组R14_svc 、R14_abt、R14_und、R14_irq和 R14_fiq用来名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 10 页 - - - - - - - - - 3 保存 R15的返回值。R15寄存器的功能是程序计数器,又称为PC 。在 ARM 状态下, R15 寄存器的1:0位为 0b00,31:2位是 PC的值;CPSR 寄存器称为当前程序状态寄存器,又称为R16。在所有处理器模式下,CPSR 都是同一个物理寄存器,它保存了程序运行的当前状态。在各种异常模式下,均有一个称为SPSR的寄存器用于保存进入异常模式前的程序状态,即当异常出现时,SPSR 中保留 CPSR的值。 CPSR 和 SPSR均为 32位的寄存器。2.9 特权模式与非特权模式的区别:区别在于是否有权利更改CPSR ,特权模式下可以自行更改 CPSR ,从而将工作模式切换为其他模式;非特权模式则不行。2.10 异常的定义 (P51) :所谓异常, 是指由内部或外部产生一个引起处理器处理的事件, 换句话说,也就是指正常的程序执行流程被暂时中断而引发的过程。2.11 异常向量 (P51) :2.11 异常优先级 (P53) :2.11 异常的进入 (P53) :(1)将下一条指令的地址保存在相应的LR寄存器中。如果异常是从ARM 状态进入,则保存在 LR中的是下一条指令的地址。如果异常是从Thumb 状态进入,则保存在 LR中的是当前 PC的偏移量。(2)将 CPSR 复制到相应的 SPSR 中。(3)迫使 CPSR 模式位 M4:0的值设置成对应的异常模式值(4)迫使 PC从相关的异常向量取下一条指令。(5)也可以设置中断禁止位来阻止其他无法处理的异常嵌套。如果在异常发生名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 10 页 - - - - - - - - - 4 时处理器是在 Thumb 状态下,那么当用中断向量地址加载PC时,自动切换进入 RAM状态。2.11 异常的退出 (P53) :(1)将 LR寄存器的值减去相应的偏移量(偏移量根据异常的不同而不同),送到 PC中。(2)将 SPSR 复制回 CPSR 中。(3)清除中断禁止位标志。三ARM9指令系统3.1 系统引导程序( bootloader ) (P81): 系统引导程序是在硬件上执行的第一段程序代码,它通常被安排在系统复位异常向量地址处。3.2 引导程序的功能 (P81) :关看门狗定时器,关中断。有时需要设置系统CPU的速度和时钟频率。设置好堆栈。 系统堆栈初始化取决于用户使用哪些异常,以及系统需要处理哪些错误类型。一般情况下,管理模式堆栈必须设置; 若使用了 IRQ中断,则 IRQ中断堆栈必须设置。如果系统应用程序是运行在用户模式下,可在系统引导程序中将系统改为用户模式并初始化用户堆栈指针。若系统使用了 DRAM或其他外设,需要设置相关寄存器,以确定其刷新频率、总线宽度等信息。初始化所需的存储器空间。 为正确运行应用程序, 在初始化期间应将系统需要读写的数据和变量从ROM拷贝到 RAM里;一些要求快速响应的程序, 如中断处理程序,也需要在RAM 中运行;如果使用Flash ,对 Flash的擦除和写入操作也一定要在 RAM里运行。 ARM公司软件开发工具包中的链接器提供了分布装载功能,可以实现这一目的。跳转到 C程序的入口点。3.3 系统引导程序的代码( P82)四存储系统机制及存储器接口。4.1 半同步定时( P91) :半同步定时总线结合了同步定时总线和异步定时总线两者的优点。这种定时总线也有两个定时控制信号线:时钟信号CLOCK和慢速模块发出的WAIT(等待)信号。对不同速度的设备而言,这些信号起做异步定时总线中的 EQU信号和 ACK信号的作用,但传输延迟时间只有异步定时总线的一半。对于速度匹配的设备, 这种总线本质上是由时钟信号单独控制的同步总线。4.2 高速缓存( cache ) (P98) :介于中央处理器和主存储器之间的高速小容量存储器。它和主存储器一起构成一级的存储器。高速缓冲存储器和主存储器之间信息的调度和传送是由硬件自动进行的。4.2 高速缓存的优缺点( P98) :优点:高速缓存能够减少内存的平均访问时间,使系统性能得到提高。 缺点:可能出现数据不一致的现象。4.3 存储管理单元( MMU ) (P100) :它是中央处理器( CPU )中用来管理虚拟存储器、物理存储器的控制线路, 同时也负责虚拟地址映射为物理地址,以提供硬件机制的内存访问授权。4.3 存储管理单元主要功能(P100) :将主存地址从虚拟存储空间映射到物理存储空间。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 10 页 - - - - - - - - - 5 存储器访问权限控制。设置虚拟存储空间的缓冲特性等。4.4 两种虚拟存储管理方式(P101) :分段方式和分页方式。每种方式都有其特点,分段方式支持较大的、任意的内存区域;分页方式支持较小的、固定大小的内存区域。4.5 NOR FLASH 与 NAND FLASH 的区别 :NOR Flash 的读取速度比 NAND Flash稍快一些, NAND Flash的擦除和写入速度比 NOR Flash 快很多。Flash芯片在写入操作时,需要先进行擦除操作。NAND Flash 的擦除单元更小 ,因此相应的擦除电路更少。接口方面它们也有差别, NOR Flash带有 SRAM接口,有足够的地址引脚来寻址 ,可以很容易地存取其内部的每一个字节,可以像其他 SRAM存储器那样与微处理器连接;NAND Flash器件使用复杂的 I/O 口来串行地存取数据 ,各个产品或厂商的方法还各不相同,因此,与微处理器的接口复杂。NAND Flash 读和写操作采用 512字节的块 ,这一点类似硬盘管理操作,很自然地 ,基于 NAND Flash的存储器就可以取代硬盘或其他块设备。4.6 SDRAM与 SRAM的区别 :SRAM :静态 RAM,不用刷新,速度非常快,价格昂贵,容量小,一般地址线不复用。SDRAM :同步动态 RAM,需要刷新,速度相对SRAM较慢,容量较大,一般地址线复用。4.7 S3C2410存储空间分配图( P114 ) :0 号存储块可以外接SRAM类型的存储器或者具有SRAM接口特性的 ROM存储器(如 NOR Flash ) ,其数据总线宽度应设定为16 位或 32 位中的一种。当 0号存储块作为 ROM 区,完成引导装入工作时(从0 x00000000 启动) ,0 号存储名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 10 页 - - - - - - - - - 6 块的总线宽度应在第一次访问ROM前根据 OM1、 OM0 在复位时的逻辑组合来确定1 号存储块到 5 号存储块也可以外接SRAM类型的存储器或者具有SRAM接口特性的 ROM存储器(如 NOR Flash ) ,其数据总线宽度应设定为8 位、16 位或32 位。6 号存储块、7 号存储块可以外接SDRAM类型的存储器, 它们的块容量可改变,且 7 号存储块的起始地址也可改变。4.8 SDRAM存储器接口( P121) :上图是存储容量为64MB 的 SDRAM接口电路图。注意:芯片内部的4 bank不是指该芯片需要占用S3C2410芯片的 4 个存储块,而是指HY57V561620芯片内部把 32MB 容量分成了 4 块存储区, 每块存储区的容量为4M16 bit。从图中可以看出,该存储器的nCS (既/CS)由 S3C2410芯片的 nSCS0 引脚控制,因此,它占用了S3C2410 芯片的6 号存储块。实际占用地址空间为0 x30000000 0 x33ffffff 4.9 NOR Flash 存储器接口( P125) :名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 10 页 - - - - - - - - - 7 上图是以 32MB 容量的 NOR Flash芯片 E28F320J3 为例的存储器接口电路。由于 E28F320J3是 16 位的数据宽度,地址是半字对准的,因此该芯片的地址线A0 始终接地。4.10 NAND Flash 存储器接口( P122) :上图是以 K9F6408芯片为例的 NAND Flash接口电路,方框内部的符号表示K9F6408芯片的引脚信号,外部符号表示是所连接的S3C2410芯片的信号线。4.11 为什么把 boot SRAM这一块移至地址的最低端?:因为当 S3C2410被配置成从 NAND FLASH启动时, CPU无法直接访问 NAND FLASH ,S3C2410的 NAND FLASH 控制器有一个特殊的功能,在S3C2410上电后, NAND FLASH控制器会自动把 NAND FLASH 上的前 4K数据搬移到 4K内部 SRAM中,CPU从内部 SRAM的0 x0000 0000位置开始启动。由于 NAND FLASH 控制器从 NAND FLASH 中搬移到内部 SRAM的代码是有限的,所以在启动代码前4K 里,我们必须完成 S3C2410的核心配置以把启动代码剩余部分搬到SDRAM中运行。因此需要把boot SRAM这一块移至地址的最低端。五中断机制5.1 中断方式控制的 I/O 操作步骤( P127) :名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 10 页 - - - - - - - - - 8 初始化微处理器中用于中断方式的寄存器,开放中断。I/O 端口或部件完成数据操作后并产生中断请求信号。当中断请求信号有效时,微处理器可能处在不可中断状态。等到微处理器允许中断时,微处理器就保存当前状态,停止它现行的操作并开始进行中断源的识别。在识别出优先级最高的中断源后,微处理器转到对应的中断服务例程入口,并应答中断, I/O 端口或部件收到应答信号后,撤消其中断请求。微处理器读入或写出数据,当中断服务例程结束后,回到原来的被中断程序处继续执行。5.2 S3C2410的中断系统逻辑图( P133) :5.3 S3C2410中断控制的机制 :5.4 中断控制寄存器 :1. 源未决寄存器( P134)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 10 页 - - - - - - - - - 9 2. 中断模式寄存器( P135 )3. 中断屏蔽寄存器( P136 )4. 优先级寄存器( P137)5. 中断未决寄存器( P138 )6. 中断偏移寄存器( P140 )7.子源未决寄存器( P141 )8. 中断子屏蔽寄存器( P141)5.5 源未决寄存器( P134) :源未决寄存器(SRCPND )由 32 位构成,每一位与一个中断请求信号相关联。当某个中断源请求中断服务时,SRCPND 寄存器的相应位被置为1,即首先在源未决寄存器中登记。 因此,该寄存器记录了哪个中断源的请求在等待处理。注意:SRCPND 寄存器的每一位由中断源自动设置,而不管中断屏蔽寄存器( INTMASK )中对应的位是否被屏蔽。此外,SRCPND 寄存器也不受中断控制器的优先级逻辑影响。5.6 中断屏蔽寄存器( P136) :中断屏蔽寄存器 (INTMSK )也是由 32位组成,每一位与一个中断源相对应。若某位设置为 1,则中断控制器不会处理该位所对应的中断源提出的中断请求。否则,如果设置为 0,则对应的中断源提出的中断请求可以被处理。即使某屏蔽位设置为 1,其对应的中断源产生中断请求时,相应的源未决位将设置成1。5.7 优先级判别器( P137) :优先级判别寄存器 (PRIORITY ) 是 IRQ中断模式下的中断优先级控制寄存器,每个中断源在寄存器中有3 位对应, 分别代表 ARB_SEL 的 2 位和 ARB_MODE 的 1位。其地址是0 x4a00000c ,复位初始状态为0 x0000007f。该寄存器每位的含义如表 6-5 所示。5.8 中断未决寄存器( P138) :INTPND寄存器是 32 位寄存器,寄存器中的每一位对应一个中断源。只有未被屏蔽且具有最高优先级、 在源未决寄存器中等待处理的中断请求可以把其对应的中断未决位置 1。因此,INTPND寄存器中只有一位可以设置为1,同时,中断控制器产生 IRQ信号给 ARM920T核。在 IRQ的中断服务例程里,设计者可以读取该寄存器,从而获知哪个中断源被处理。七中断机制7.1 看门狗定时器( P162) :S3C2410芯片看门狗定时器的作用是,当系统程序出现功能错乱,引起系统程序死循环时,能中断该系统程序的不正常运行,恢复系统程序的正常运行。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 10 页 - - - - - - - - - 10 预分频器的值和频率分解因子可由看门狗定时器的控制寄存器(WTCON )进行编程设定。预分频器值的可选范围是:028-1。频率分割因子可选择的值为 16,32,64,128。使用下面公式来计算看门狗定时器的计数时钟周期:计数时钟周期= 1 / (PCLK / ( 预分频器值+ 1) / 分割因子 ) 一旦看门狗定时器被启动工作, 看门狗定时器中的计数常数寄存器 (WTDAT )就无法自动的重载到计数寄存器(WTCNT )中。因此,应该在看门狗定时器启动工作之前,通过初始化编程使计数常数写入计数寄存器(WTCNT )中。7.2 编程(结合实验 4.7)八I/O 端口8.1 S3C2410的 I/O 接口( P183) :S3C2410芯片共有 117 个输入 /输出引脚,分属于8 个 I/O 端口。这 8 个 I/O端口均为多功能端口,端口功能可以编程设置。8 个 I/O 端口是:端口 A (GPA) :有 23 条输出引脚的端口。端口 B (GPB) :有 11 条输入 /输出引脚的端口。端口 C (GPC) :有 16 条输入 /输出引脚的端口。端口 D (GPD) :有 16 条输入 /输出引脚的端口。端口 E (GPE) :有 16 条输入 /输出引脚的端口。端口 F (GPF) :有 8 条输入 /输出引脚的端口。端口 G (GPG) :有 16 条输入 /输出引脚的端口。端口 H (GPH) :有 11 条输入 /输出引脚的端口。8.2 端口的初始化设置( P183) :在 S3C2410芯片中,所有的 I/O 引脚是功能复用的。因此,在具体使用I/O端口引脚时,应该通过编程设置端口控制寄存器,以决定使用每个I/O 引脚的哪种功能。另外, I/O 端口的状态(如输入还是输出、数据线是否挂起),设计者也需要通过编程设置控制寄存器来确定。每个端口(除了 A 口)均有 3 个寄存器用于控制其操作, 一个是端口控制寄存器,用于设置其每个引脚的功能;一个是数据寄存器,用于作为普通输入/输出功能时的数据存储器; 再一个是上拉控制寄存器, 控制该端口的引脚是否需要接上拉电阻。8.2 编程(结合实验 4.3)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 10 页 - - - - - - - - -