嵌入式系统讲义

上传人:re****.1 文档编号:497784777 上传时间:2024-02-21 格式:DOCX 页数:21 大小:130.31KB
返回 下载 相关 举报
嵌入式系统讲义_第1页
第1页 / 共21页
嵌入式系统讲义_第2页
第2页 / 共21页
嵌入式系统讲义_第3页
第3页 / 共21页
嵌入式系统讲义_第4页
第4页 / 共21页
嵌入式系统讲义_第5页
第5页 / 共21页
点击查看更多>>
资源描述

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

1、第1 章 嵌入式系统概述 1嵌入式系统定义:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系 统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。2嵌入式处理器分类:嵌入式微处理器; 嵌入式微控制器;嵌入式DSP处理器;嵌入式片上系统(SOC)。3常见嵌入式操作系统嵌入式 Linux、Win CE、VxWorks、Nucleus、eCos、“C/OSTI、uITRON、QNX4嵌入式实时操作系统的特性: 切换时间和中断延迟时间确定 优先级中断和调度抢占式调度同步第3章ARM7体系结构1. ARM处理器为32位RISC芯片。RISC处理器的特点 大的、统一的寄存器文件;装载/

2、保存结构,数据处理 操作只针对寄存器的内容,而不直接对存储器进行操作 简单的寻址模式统一和固定长度的指令域,简化了指令的译码2. ARM7TDMI-S 含义T-支持高密度16位的Thumb指令集D-支持片上调试M-支持64位乘法I-支持EmbededICE观察硬件S-ARM7TDMI 的可综合(synthesizable)版本(软核)3. ARM7TDMI的流水线分3级,分别为:取指译码执行流水线上各指令的地址流水线工位描述ARM指令集Thumb指令集PCPC取指指令从存储器中取出PC-4PC-2译码对指令使用的寄存器进行译码PC-8PC-4执行从寄存器组中读出寄存器,执行移 位和ALU操作,

3、寄存器被写回到寄 存器组中4. 计算机结构说明:“冯诺依曼”结构:把代码作为一种特殊的数据来操作,指令总线和数据总线及其存储区域 是统一的;“哈佛”结构:指令总线和数据总线及其存储区是分开、独立的。5. ARM7TDMI 两种操作状态:ARM状态:32位,这种状态下执行的是字方式的ARM指令;Thumb 状态: 16 位,这种状态下执行半字方式的 Thumb 指令。6. 处理器状态切换;从Arm状态切换到Thumb状态LDR R0,=Lable+1 BX R0;从 Thumb 状态切换到 ARM 状态LDR R0,=Lable BX R07.处理器模式用户模式、快中断模式、中断模式、管理模式、

4、中止模式、未定义模式和系统模式处理器模式说明备注用户(usr)正常程序工作模式不能直接切换到其它模式系统(sys)用于支持操作系统的特权任务等与用户模式类似,但具有可以直接切换 到其它模式等特权快中断(fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式中断(irq)用于通用中断处理IRQ异常响应时进入此模式管理(svc)操作系统保护代码系统复位和软件中断响应时进入此模式中止(abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没有大用处未定义(und)支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式8. ARM 状态各模式下的寄存器A.其中ROR7为未分组的寄存器,也就

5、是说对于任何处理器模式,这些寄存器都对应于相同的 32位物理寄存器。B. 寄存器R8R12有两个分组的物理寄存器。一个用于除FIQ模式之外的所有寄存器模式, 另一个用于FIQ模式。这样在发生FIQ中断后,可以加速FIQ的处理速度。C. 寄存器R13常作为堆栈指针(SP)。在ARM指令集当中,没有以特殊方式使用R13的指 令或其它功能,只是习惯上都这样使用。但是在Thumb指令集中存在使用R13的指令D. R14为链接寄存器(LR),在结构上有两个特殊功能: 在每种模式下,模式自身的R14版本用于保存子程序返回地址; 当发生异常时,将R14对应的异常模式版本设置为异常返回地址(有些异常有一个 小

6、的固定偏移量)。E. 寄存器R15为程序计数器(PC),它指向正在取指的地址。可以认为它是一个通用寄存 器,但是对于它的使用有许多与指令相关的限制或特殊情况。9. R15的限制正常操作时,从R15读取的值是处理器正在取指的地址,即当前正在执行指令的地址加上8 个字节(两条ARM指令的长度)。由于ARM指令总是以字为单位,所以R15寄存器的最低两 位总是为 O。10. 程序状态寄存器(CPSR)M4:0模式M4:0模式10000用户10111中止10001快中断11011未定义10010中断11111系统10011管理11. 异常入口/出口汇总异常或入口返回指令之前的状态备注ARM R14_xT

7、humbR14 xBLMOV PC,R14PC+4PC+2此处PC为BL, SWI,为定义的指令 取指或预取指中止 指令的地址SWIMOVS PC,R14 svcPC+4PC+2未定义的指令MOVS PC,R14 undPC+4PC+2预取指中止SUBSPC,R14 ab t,#4PC+4PC+4快中断SUBS PC,R14_fiq,#4PC+4PC+4此处PC为由于FIQ 或IRQ占先而没有 被执行的指令的地 址中断SUBS PC,R14_irq,#4PC+4PC+4数据中止SUBS PC,R14_ab t,#8PC+8PC+8此处PC为产生数据 中止的装载或保存 指令的地址。复位无复位时保

8、存在 R14_svc中的值不 可预知。中断处理代码的开始部分和退出部分SUBLR,LR,#4 ;计算返回地址STMFDSP!,R0-R3,LR;保存使用到的寄存器LDMFDSP!,R0-R3,PC厂;中断返回l2. 异常向量地址异常类型进入时的模式进入时I的状 态进入时F的状 态0x0000 0000复位管理禁止禁止0x0000 0004未定义指令未定义IF0x0000 0008软件中断管理禁止F0x0000 000C中止(预取)中止IF0x0000 0010中止(数据)中止IF0x0000 0014保留保留0x0000 0018IRQ中断禁止F0x0000 001CFIQ快中断禁止禁止13.

9、复位流程: 强制M4:0变为blOOll (管理模式); 置位CPSR中的I和F位; 清零CPSR中的T位; 强制PC从地址0x00开始对下一条指令进行取指; 返回到 ARM 状态并恢复执行 。14存储器格式 小端存储器系统:在小端格式中,高位数字存放在高位字节中。因此存储器系统字节0 连接 到数据线70。大端存储器系统:在大端格式中,高位数字存放在低位字节中。因此存储器系统字节0 连接 到数据线 3124。第4章ARM7TDMI(-S)指令系统1堆栈寻址 满递增:堆栈向上增长,堆栈指针指向内含有效数据项的最高地址。指令如LDMFA、 STMFA 等;-空递增:堆栈向上增长,堆栈指针指向堆栈上

10、的第一个空位置。指令如LDMEA、STMEA 等; 满递减:堆栈向下增长,堆栈指针指向内含有效数据项的最低地址。指令如LDMFD、 STMFD 等;-空递减:堆栈向下增长,堆栈指针向堆栈下的第一个空位置。指令如LDMED、STMED等。2.书写格式; 声明代码段 Example1; 标识程序入口; 声明 32 位 ARM 指令AREA Example1,CODE,READONLYENTRYCODE323. 指令格式 opcode cond S Rd opcode :扌旨令助记符; cond: S:是否影响CPSR寄存器的值;Rd:目标寄存器;Rn:第1个操作数的寄存器;operand2 :第2

11、个操作数;4. 条件码CMP R0,R1ADDHIADDLS5. 指令LDRSTR,执行条件;;R0 与 R1 比较R0,R0,#l;若 R0Rl,则 R0=R0+1R1,R1,#1;若 R0W1,则 R1=R1+1Rd,addressingRd, addressingSTARTMOV R0,#0MOV R1,#10; 设置参数LOOPBLADD_SUB; 调用子程序 ADDBLOOP; 跳转到 LOOPADD_SUBADDSR0,R0,R1;R0 = R0 + R1MOVPC,LR; 子程序返回ENDSUBLDMmode Rn!,reglist STMmode Rn!,reglistMOV

12、Rd,operand2ADDRd,Rn,operand2SUBRd,Rn,operand2RSBRd,Rn,operand2ADCRd,Rn,operand2ANDRd,Rn,operand2ORRRd,Rn,operand2EORRd,Rn,operand2BICRd,Rn,operand2CMPRn,operand2TSTRn,operand2MULRd,Rm,RsBlabelBL label启动代码分析:SVC_STACK_LEGTH EQUFIQ_STACK_LEGTH EQUIRQ_STACK_LEGTH EQU256ABT_STACK_LEGTH EQUUND_STACK_LEGT

13、H EQUNoIntEQU 0x80NoFIQEQU 0x40USR32ModeSVC32ModeSYS32ModeIRQ32ModeFIQ32ModeEQU 0x10EQU 0x13EQU 0x1fEQU 0x12EQU 0x11IMPORT _use_no_semihosting_swi;The imported labelsIMPORT FIQ_ExceptionIMPORT _mainIMPORT TargetResetInit;The emported labelsEXPORT bottom_of_heapEXPORT StackUsrEXPORT ResetEXPORT _user_initial_stackheapCODE32UndefinedBUndefinedAREA vectors,CODE,READONLYENTRYResetLDRPC,ResetAddrLDRPC,UndefinedAddrLDRPC,SWI_AddrLDRPC,PrefetchAddrLDRPC,DataAbortAddrDCD0xb9205f80LDRPC,PC,#-0xff0LDRPC,FIQ_Addr

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

当前位置:首页 > 学术论文 > 其它学术论文

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