嵌入式系统复习讲解

上传人:我** 文档编号:117878769 上传时间:2019-12-11 格式:PPT 页数:75 大小:863KB
返回 下载 相关 举报
嵌入式系统复习讲解_第1页
第1页 / 共75页
嵌入式系统复习讲解_第2页
第2页 / 共75页
嵌入式系统复习讲解_第3页
第3页 / 共75页
嵌入式系统复习讲解_第4页
第4页 / 共75页
嵌入式系统复习讲解_第5页
第5页 / 共75页
点击查看更多>>
资源描述

《嵌入式系统复习讲解》由会员分享,可在线阅读,更多相关《嵌入式系统复习讲解(75页珍藏版)》请在金锄头文库上搜索。

1、嵌入式系统复习 考试说明 时间:16周周四(12月19日)14:0016:00 地点:东教南202,203 闭卷 题型及分值 填空30% 选择10% 判断 10% 术语解释 10% 简答+设计40% 嵌入式系统的定义 “以应用为中心,计算 机技术为基础,软硬件可裁剪,以适 应应用系统对功能、可靠性、成本 、体积、功耗有严格要求的专用计 算机系统。” 嵌入式微处理器分类 嵌入式操作系统的发展阶段 1、无操作系统的嵌入算法阶段 2、专用嵌入式实时操作系统 3、通用嵌入式实时操作系统 4、基于internet的嵌入式系统 嵌入式开发环境(交叉开发环境) 嵌入式系统通常是一个资源受限的系统,其开 发需

2、要交叉编译和在线调试的开发环境,主要包括 : 宿主机 目标机(评估电路板) 基于JTAG的ICD仿真器、或调试监控软件、或 在线仿真器ICE 运行于宿主机的交叉编译器和链接器、以及开 发工具链或软件开发环境 嵌入式操作系统 交叉开发环境 ARM公司提供的ADS和AXD ADS:Arm Developer Suite AXD:Arm eXtended Debugger 仿真驱动有两种: ADP硬件仿真驱动 ARMUL软件仿真驱动 ARM7处理器 ARM7TDMI的含义: T:支持16位压缩指令集Thumb; D:支持片上Debug; M:内嵌硬件乘法器(Multiplier) I:嵌入式ICE,

3、支持片上断点和调试点; Samsung公司的S3C44B0X即属于该系列的处理器。 三级流水线(取指-译码-执行),由此导致: ARM状态下指令读出的pc值是指令地 址值加8个字节; Thumb状态下指令读出的pc值是指令 地址值加4个字节 ARM 处理器支持的数据类型 字节(8位)-char,unsigned char 半字(16位)-short,unsigned short 字(32位)-int,unsigned int 其中,字需要4字节对齐(地址的低两位为0) 、半字需要2字节对齐(地址的最低位为0)。 ARM体系结构可以用两种方法存储字数据: 大端格式(big-endian): 字数

4、据的高字节存储在低地址中,而字数据的低字节则存 放在高地址中。 小端格式(little-endian): 低地址中存放的是字数据的低字节,高地址存放的是字数 据的高字节。 ARM7TDMI核的bigend引脚,s3c44b0 x cpu的endian引脚的 状态将决定大端格式或小端格式。 字数据0 x783C1A24 的存储格式如下 : ARM7TDMI 处理器有两种工作状态(对应 于2种指令集): uARM 状态 uThumb状态 ARM7TDMI 核的操作状态可以通过BX指令 在ARM状态和Thumb状态之间切换 ARMThumb LDR r0,=label+1 BX r0 ThumbAR

5、M LDR r0,=label BX r0 ARM 处理器有7种工作模式: l用户模式(usr) - 正常的程序执行模式 l快速中断模式(fiq) - 支持高速数据传输或通道处理 l中断模式(irq) - 用于通用中断处理 l管理员模式(svc) - 操作系统的保护模式. l中止模式(abt) - 支持虚拟内存和/或内存保护 l系统模式(sys) - 支持操作系统的特殊用户模式(运行操作系统 任务) l未定义模式(und) - 支持硬件协处理器的软件仿真 除了用户模式外,其他模式均可视为特权模式; Usr/Sys mode不是异常模式,没有SPSR。在这2种模式 中使用读写SPSR的指令时,结

6、果不可预知。 ARM状态下的寄存器组织 nR0 到 R15 可以直接访问 nR0 到 R14 是通用寄存器 nR13: 堆栈指针 (sp) (通常) u每种处理器模式都有单独的堆栈 nR14: 链接寄存器 (lr) nR15 程序计数器 (PC) nCPSR 当前程序状态寄存器,包括代码标志状态和当前 模式位 n5个SPSRs-(程序状态保存寄存器) 当异常发生时保存 CPSR状态 程序状态寄存器 N, Z, C and V 条件码标志 可以在处理器中作为数学和逻辑操作改变 可以被所有的指令测试,以决定指令是否被执行 N : Negative. Z : Zero. C : Carry. V :

7、 oVerflow I and F 位是中断禁止位,T位反映处理器的运行状态 M0, M1, M2, M3 and M4 位是模式位 N, Z, C and V 条件码标志 可以在处理器中作为数学和逻辑操作改变 可以被所有的指令测试,以决定指令是否被执行 N : Negative. Z : Zero. C : Carry. V : oVerflow 注意借位的设置: 减法运算发生借位时c=0,否则c=1 指令SBC,RSC的操作能感受到此种设置的 影响 I and F 位是中断禁止位 I=1禁止IRQ,I=0允许IRQ T位反映处理器的运行状态 T=1指示Thumb状态,T=0指示ARM状 态

8、 与BX指令有联系 ARM体系的异常 异常:由内部或外部源产生并引起处理器处理的一个事件 异常向量表占据内存最低端的32个字节(00 x1F) 注意异常类型和处理器模式的关系 地址异常进进入时时的模式进进入时时I的状态态进进入时时F的状态态 0 x00000000复位管理禁止禁止 0 x00000004未定义指令未定义IF 0 x00000008软件中断异常管理禁止F 0 x0000000C中止(预取)中止IF 0 x00000010中止(数据)中止IF 0 x00000014保留保留 0 x00000018IRQ中断禁止F 0 x0000001CFIQ快速中断禁止禁止 注:表中的I和F表示不

9、对该位有影响,保留原来的值。 ARM指令集和寻址方式 理解: 几乎所有指令都可条件执行 指令写法上的变化可以控制是否影响标志位 C代码: if(a b) a+; else b+; 对应的汇编代码: CMP R0,R1 ;R0与R1比较 ADDHI R0,R0,#1 ;若R0R1,则R0=R0+1 ADDLS R1,R1,#1 ;若R0R1,则R1=R1+1 示例: 条件码 SWP指令操作图解 C语言代码为: int gcd (int a,int b) while (a!=b) if (ab) a=a-b; else b=b-a; return a; 对应的ARM汇编代码段。(代码执行 前R0中

10、存放a,R1中存放b;代码执行 后R0中存放最大公约数。 gcd CMP R0,R1 ;比较a和b的大小 SUBGT R0,R0,R1 ;if(ab) a=a-b SUBLT R1,R1,R0 ;if(ba) b=b-a BNE gcd ;if(a!=b)跳转到gcd继续执行 MOV PC,LR ;子程序结束,返回 实现类似于C语言中的if-else功能的代码段。下例的 功能为求最大公约数。 例:编写一具有完整汇编格式的程序,实现冒泡法排序功 能。设无符号字数据存放在从0 x400004开始的区域,字数据的 数目字存放在0 x400000中。 AREA SORT,CODE,READONLY E

11、NTRY START MOV R0,#0 x400000 ldr r1,r0 ;counter LP SUBS R1,R1,#1 BEQ EXIT MOV R7,R1 LDR R0,=0 x400004 LP1 LDR R2,R0,#4 LDR R3,R0 CMP R2,R3 STRLO R3,R0, # -4 STRLO R2,R0 SUBS R7,R7,#1 BNE LP1 B LP EXIT END S3C44B0X构成最小系统 nS3C44B0X + 电源电路 + 晶振电路 + 复位电路 + JTAG接口电路可构成真正意义上的最小系统 n程序可运行于S3C44B0X内部的8KB RAM

12、中,可运行 的程序大小有限,且掉电后无法保存,只能通过JTAG接 口调试程序 S3C44B0X扩展系统 nS3C44B0X最小系统( S3C44B0X + 电源电路 + 晶振电路 + 复 位电路 + JTAG接口电路) + SDRAM + FLASH电路可构成一 个完全的嵌入式系统 n可运行于SDRAM中的程序,也可以运行NOR FLASH 中的程序,可运行较大的程序,如果将程序保存到FLASH 中,掉电后不会丢失,因此,既可以通过JTAG接口调试程 序,也可以将程序烧写到FLASH,然后运行FLASH中的程 序 n在此基础上加入必要的接口及其他电路,就构成了具 体的S3C44B0X应用系统

13、S3C44B0 x的存储分配 nS3C44B0X内置存储器控制器 n支持最多8个存储器Bank,每个Bank最 多支持32MB n启动代码必须安排在Bank0 nBank0处0 x01c000000 x02000000地址区 间为特殊功能寄存器(SFR)。事实上,这 就是I/O空间。ARM架构中,I/O和存储器统 一编址(或称I/O是存储器映射式的) 2019/11/2227 通过C语言访问内存或I/O的典型写法 通过指针定义用宏简化 #define rBANKSIZE (*(volatile unsigned *)0 x1c80028) 读存储器或IO aa=rBANKSIZE; 写存储器或

14、IO rBANKSIZE=32; NOR Flash vs. NAND Flash 项目 NOR flash NAND flash 特点 芯片内执行 代码拷至系统RAM中 传输效率 高 中 写入/擦除操作 的典型时间 5s 4ms 擦除器件时 块大小 64128KB 832KB 接口 SRAM接口 I/O口 存储密度 低 高 NOR FLASH适合存储程序,NAND FLASH适合存储数据,实验平 台up-netARM3000中有2M NOR FLASH+16M NANDFLASH Bootloader的作用 Boot Loader是在嵌入式系统复位启动时 ,操作系统内核运行前,执行的第一段程

15、序 。通过Boot Loader,初始化硬件设备,建立 内存和I/O空间映射图,为最终加载操作系统 内核调整好适当的系统软硬件环境。 Bootloader中的异常向量表 ENTRY b ResetHandler ;for debug b HandlerUndef ;handlerUndef b HandlerSWI ;SWI interrupt handler b HandlerPabort ;handlerPAbort b HandlerDabort ;handlerDAbort b . ;handlerReserved ;* b HandlerIRQ b HandlerFIQ Bootloader中指向用户程序的链接 IMPORT _main :LNOT:THUMBCODE BL_main ;Dont use main() because . B.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号