2022年嵌入式系统 .pdf

上传人:Che****ry 文档编号:35748549 上传时间:2022-08-23 格式:PDF 页数:31 大小:1.95MB
返回 下载 相关 举报
2022年嵌入式系统 .pdf_第1页
第1页 / 共31页
2022年嵌入式系统 .pdf_第2页
第2页 / 共31页
点击查看更多>>
资源描述

《2022年嵌入式系统 .pdf》由会员分享,可在线阅读,更多相关《2022年嵌入式系统 .pdf(31页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、11嵌入式系统技术基础课程内容概要硬件基础?总线接口技术?VHDL/CPLD?模拟通道、运放的应用编程与操作系统基础?ARM微处理器及编程?嵌入式系统编程及操作系统2第一章总线技术原理?数字信号输出端结构及其总线连接OC门单总线连接三态门?译码及其应用?扩展 I/O的方法?总线的负载能力与驱动?总线信号的反射与克服3端口线与总线方式扩展的区别? 在MCS-51 的P1口上扩充输出;? 在MCS-51 的总线上扩充输出;? 区别:执行速度,指令数4译码及其应用目的:为存储器及I/O地址分配;避免上述器件在数据总线上形成冲突;译码方法:基本:全译码,部分译码,线译码结合总线技术:分级(板选、板内)

2、芯片:通用74138,74139,74154; 采用74 系列组合逻辑可编程GAL16V8,GAL20V10,EPLD 技术:编程工具:FM,CUPL,ABEL,MAX plus II,ise语言:VHDL5译码方法:组合电路电路A1A0F0 F1 F2 F3A19A18A17A16A15(b)(a)A0Y0Y1Y6总线的负载能力与驱动? 负载能力兼容性灌电流、拉电流? 驱动器芯片? 具有板选地址译码时的数据缓冲器名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 31 页

3、- - - - - - - - - 27速度与延时问题8地址总线驱动采用:74HC24474HC245等9双向总线的驱动说明10I/O功能板的数据缓冲具有板选地址译码时Address Bus板选地址译码板内地址译码Sys. Data BusDIR E缓冲器DT/RI/O Data BusPS0PS1PS2PS nI/O端口选择11六、传输线效应?高频,信号波长与电路的尺寸?传输线效应?总线传输线效应的危害?导致交流信号发生畸变、误码,峰值也可能高于微机电源电压,也可以低于电源地线,导致芯片的损坏。?解决措施12克服方法? 提高集成度,限制导线长度;? 匹配源端匹配终端匹配名师资料总结 - -

4、-精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 31 页 - - - - - - - - - 313匹配效果14特性阻抗突变的原因? 几何尺寸变化电视信号线的连接到电缆头、座? 形状变化印刷线路板上导线的突然转弯:? 信号源 传输线 负载的连接处15第二章标准总线的应用总线标准化的意义产品化、缩短系统的构造时间(周期)降低开发成本便于维护,结构简单系统功能扩展和更新软件及硬件的升级保障几种常用的总线标准ISA, PC104 总线及应用应用示例16标准化的内容? 标准规定的内容:引脚定义(位置,

5、信号名,属性)交直流特性、时序电源机械连接17IBM-PC/XT 总线? IBM PC总线是 IBM PC/XT机上使用的8位系统总线? 有62条信号线,用双列插槽连接,分 A面(元件面)和 B面(焊接面)? 实际上是 8088 CPU核心电路总线的扩充和重新驱动? 与最大组态下的8088总线相似18PC总线分类信号说明总表DMA 计数器达到预置周期数,高有效B27T/CDMA 指示信号, 高有效,封锁I/O 地址码A11AENDMA 响应信号输出信号线B19, B17, B26, B15/DACK0/DACK3DMA 请求输入信号线B18, B6, B16DRQ1 DRQ3存储器写命令,输出

6、信号线,低电平有效B11/MEMW存储器读命令,输出信号线,低电平有效B12/MEMRI/O写命令,输出信号线,低电平有效B13/IOWI/O 读命令,输出信号线,低电平有效B14/IOR中断请求输入信号线B4 , B21B25IRQ2 IRQ7I/O通道准备好输入信号线,高电平有效A10I/O CH RDYI/O通道奇偶校验信号输入线,低电平有效A1/I/O CH CK地址锁存允许B28ALE数据线A2 A9D0 D7地址线A12 A31A0 A19系统总请求信号,用于使系统各部件复位B2RESET DRV系统时钟4.77 MHz占空比1:2B20CLK振荡器, 14.318 MHzB30O

7、SC名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 31 页 - - - - - - - - - 419ISA (PC/AT) 总线? 工业标准总线 ;? 它向下兼容 PC/XT 总线(62芯插座)? 再扩充 36个信号的插座20PC104 总线概述(IEEE-P996.1 )? ISA(PC/AT ,IEEE-996) 标准的延伸? 专为嵌入式控制而定义的工业控制总线。信号定义基本一致电气和机械规范却完全不同,无背板优化的、小型、自我堆栈式结构小型化的尺寸( 3.6x3

8、.8inch 90 x96mm)21PC104 总线概述(IEEE-P996.1 )? PC/104 有两个版本, 8位和 16位? 分别与 PC和PC/AT 相对应。? PC/104PLUS 则与 PCI总线相对应22PC104 总线概述( IEEE-P996.1 )2324PC104? PC: 源于PC? 64+40=104名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 31 页 - - - - - - - - - 525PCI总线的特点? 总线设备与CPU相对独立

9、PCI 可以支持各种不同型号的CPU,具有更长的生命周期。? 异步工作 读 PCI 总线上的设备:PCI 读数据到缓冲器,再由主板CPU读取 写 PCI 总线上的设备:CPU写数据到缓冲器,再由PCI 总线控制器将数据写入规定的设备。? 即插即用。 需要软件支持,分配地址,无须跳线,避免地址竞争。? 多主总线(最多可以支持10 个设备) PCI 总线设备均可提总线请求,PCI 管理器仲裁出一个主控设备。? 错误检测及报告 总线能够对地址及数据信号进行奇偶校验检测,并报告错误? 两种电压: 5 V 、 3.3 V26IBM 兼容计算机的 PCI 总线? PCI 总线不依赖具体CPU。? IBM-

10、PC 机中的PCI 与 CPU之间隔着北桥芯片, CPU通过北桥实施对PCI 的管理。? PCI 的总线时钟频率为33 MHz/66 MHz。? 64 位数据传送时,其数据传输速率可达66 MHz 8B 528 MB/s。? PCI 的插槽上,可以插上32 位的电路板( 卡 ) ,也可以插上64 位的电路板( 卡 ) ,两者兼容。27接口技术示例MCS-51 总线、 PC总线双向数据传送(能使用查询或中断方式)? 地址译码? 等待电路28数据接口D QCK OEQ DOE CK数据缓冲DIR OE74HC373锁存加三态门/IOR地址译码控制板选地址译码主机读端口开三态门主机写端口锁存去等待电

11、路单片机写端口锁存单片机读端口开三态门地址译码控制29板选地址译码主机地址译码P P=QQG74HC688P0 P=QP1P2P3P4P5P6P7Q0Q1Q2Q3Q4Q5Q6Q7 GAENA9A8A7A6A5A4A3VCCVCC板内译码缓冲使能 /OE等待电路30板内地址译码板内译码主机地址译码G1 /Y0G2A /Y1G2B /Y2A /Y3B /Y4C /Y5/Y6/Y7G1 /Y0G2A /Y1G2B /Y2A /Y3B /Y4C /Y5/Y6/Y7/IOW/IORA2A1A0VCC8个写地址,已于/IOW组合,在写周期中恰当时间发出负脉冲。必要的话可以加非门取反成正脉冲。8个读地址,已

12、于/IOR组合,在读周期中恰当时间发出负脉冲。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 31 页 - - - - - - - - - 631等待电路原理SDD QCK /QCD板内译码Active Low&/IOW/IORI/O RDY+RESET DRVDDDDDDDCLRCLKVCC32写数据到对方时请求中断SDD QCK /QCDVCC写数据端口读数据同时清中断或单独清除中断中断请求至输出锁存VCC发送方查询输出缓冲器慢接收方查询数据就绪发送方状态口接收方状态

13、口33第三章ASIC 的CPLD 与VHDLPAL/GAL 通用可编程逻辑电路矩阵式组合逻辑宏单元 OLMC简单的编程CPLD复杂可编程逻辑阵列VHDL硬件描述语言34关于示例 GAL 程序? 符号“*”,“+”,“/ ”,“. ”,“ :” ,“=”? GAL的常用编程语言是 CUPL 或ABEL? 上例使用的是最原始的语言,相当于汇编? 一种原始的硬件描述语言 HDL? 使用文本编辑工具,输入源文件? 使用 FM.EXE(DOS 版本)可以简单地生成溶丝文件 (*.JED)? 编程器将 (*.JED) 固化到芯片中,装入电路板35示例程序:实现地址重映射的特殊译码电路36VHDL 概念19

14、80Very High Speed Integrated CircuitHardwareDescribeLanguage版本IEEE Version87 & 93ASIC概念Application Specific IC主要制造商、芯片系列、逻辑综合开发工具Xilinx ISEAlteraQuartus II(Maxplus II 上一代)Lucent 朗讯科技Cypress Lattice名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 31 页 - - - - - -

15、- - - 737About Programmable LogicProgrammable Logic Arrays (PLAs) and PALs2值(真、假)逻辑,与或阵列,复杂逻辑电路的设计Programmable Logic Devices (PLDs)PLD? GAL ,若干块 GAL? 可编程开关互连? CPLDField Programmable Gate Arrays (FPGAs)现场可编程:甚至产品发送到最终用户后,利用开发工具,现场定义逻辑功能的能力。几千个宏单元,由可编程开关内部互联;每个宏单元是可编程的逻辑门;Truth Table is stored in a RA

16、M, called the Look-up Table (LUT)38PLDs and FPGAslarge memory and predefined function unitsDesign flexibilityup to 25 million gatesup to 10,000 gatesSizemuch slower than PLDspredictable timing, higher system clock frequencySpeedFPGAPLDs39基本设计技术流程相关的 VHDL 基本术语? Interfaces -i.e. ports (定义端口)? Behavior

17、 (行为描述)? Structure (结构描述)? Test Benches (测试)? Analysis, simulation(分析与仿真)? Synthesis (综合,如果成功,可下载到芯片)40Basic Design MethodologySimulateSynthesizeGate-levelModelSimulateTest BenchPlace & RouteRequirementsASIC or FPGATimingModelSimulateRTL Model41逻辑值系统IEEE STD1164 (1993)规定的信号类型说明分别为位变量 Bit ?STD_LOGIC位

18、向量 Bit Vectors?STD_LOGIC_VECTOR9值信号系统( Signal Values):0,1, X分别为逻辑0,1,不确定;Z高阻 (High Impedance);- 无关 (Dont Care);U未初试化 (Uninitialized);L, H分别为弱下拉 (Weak 0)和弱上拉 (Weak 1) 。42(Signal Value)信号值的写法位变量值用单引号;位向量( vector )的值用双引号例:信号赋值语句Y =1when STATE =“0101”else 0;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - -

19、 - - - - - 名师精心整理 - - - - - - - 第 7 页,共 31 页 - - - - - - - - - 843简单程序的组成ENTITY mux ISEND muxARCHITECTUREbehavior OF mux ISBEGINEND behavior Din 4Sel2Dout444选1的具体电路 (不唯一 )45464选1的另外一种实现ARCHITECTRUEbehav_2 OF mux ISBEGINWITH sel SELECTDout = Din(3) WHEN “11”,Din(2) WHEN “10”,Din(1) WHEN “01”,Din(0) W

20、HEN “00”,X WHEN OTHERS;END behav_2;474选1的结构描述ARCHITECTRUEbehav_3 OF mux ISSIGNAL s0bar,s1bar :std_logic;- 内部信号BEGINs0bar = not(sel(0);sibar = not(sel(1);Dout =(Din(3) and sel(1) and sel(0) or(Din(2) and sel(1) and s0bar) or(Din(1) and s1bar and sel(0) or(Din(0) and s1bar and s0bar);END behav_3;48Con

21、currency in VHDL? 除非使用 Process 过程说明,所有语句是并发的;? 组合电路用并发方式描述比较方便;? 并发语句的赋值 (evaluate) 是在表达式中任意信号发生变化之时进行;? Process 只在指定的触发条件下执行。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 31 页 - - - - - - - - - 9495051The Behavior Way by an Examplearchitecturebehav of reg4 is

22、beginprocess(d0, d1, d2, d3, en, clk)variablestored_d0, stored_d1, stored_d2, stored_d3 : bit;beginif en = 1 and clk = 1 thenstored_d0 := d0;stored_d1 := d1;stored_d2 := d2;stored_d3 := d3;end if ;q0 = stored_d0 after 5 ns;q1 = stored_d1 after 5 ns;q2 = stored_d2 after 5 ns;q3 = stored_d3 after 5 ns

23、;end process ;end behav;simulates real-world propagation delays.notice := syntaxused for equating valuesfrom signals.sensitivity list52SIGNAL 信号例? 格式信号名:数据类型约束条件 :=表达式? 例:? SIGNAL sys_clk: BIT :=0;? “:= ”后面的表达式是指定初值的;? 在执行语句中则使用代入符号“=”? 赋值与代入的区别:? 赋值是立即的(按数学上的变量理解)? PROCESS 中的信号代入直到PROCESS 的结尾处才有效53

24、一个典型的问题PROCESS(a,b,c)BEGINd=a;x=c xord;d=b;y=c xord;END PROCESS;问x,y的结果分别是?? 答案:? x = c b, y = c b? 因为 d被两次赋值,以最后为准,信号到END 位置才被代入? d=y=“11111110 ”;WHEN “001”=y=“11111101 ”;WHEN “010”=y=“11111011 ”;WHEN “011”=y=“11110111 ”;WHEN “100”=y=“11101111 ”;WHEN “101”=y=“11011111 ”;WHEN “110”=y=“10111111 ”;WHE

25、N “111”=y=“01111111 ”;WHEN OTHERS=y= “XXXXXXXX ”;END CASE;ELSEy=“11111111 ”;END IF;END PROCESS;END rtl;57并发 (concurrent) 描述语句? 代入(assignment) 语句代入语句在进程 (PROCESS) 内是顺序语句;在构造体内 (与PROCESS 并列 ),则是并发语句。? 进程PROCESS进程之间并发,进程内部的语句是顺序的;一进程通过信号量可以与其它进程通信;? 条件代入 (conditional signal assignment)? 选择信号代入 (selecti

26、ve signal assignment)58CPLD 实现的数码管动态显示寄存器(1)二进制分频MUX7段译码2-4译码MCS-51单片机DBABALE/WR/RD地址译码clk=fosc/6abcdefg组合逻辑59第四章模拟通道主要内容:信号放大与滤波集成运算放大器多路选择与程控增益采样保持A/D与D/A隔离与转换作用:抑制噪声,提高测量精度,信号放大及标准化60单端信号输入基本电路无源滤波电路名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 31 页 - - -

27、- - - - - - 1161电压跟随器基本电路:输入阻抗非常大;输出阻抗非常小。有源滤波:62反相放大器基本电路:输入阻抗不及同相放大器高;K= - R2/ R1有源滤波:63同相放大器基本电路:输入阻抗高;K= 1+ ( R2/ R1)有源滤波:64双端信号输入基本电路? 减法器? 仪器放大器65仪器放大器66运算放大器的主要性能指标ri输入阻抗ro输出阻抗BW带宽共模抑制比Vcdmax最大共模输入电压平面晶体管5V横向晶体管 30VVidmax最大差模电压150 V/C几个 pA/ C Vos/ T Ios/T温度漂移1nA10 AIOS输入失调电流1nA100 AIB输入偏置电流0.

28、55mVVos输入失调名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 31 页 - - - - - - - - - 1267正、负参考电压68多路转换器 /分配器作用:对相对较为昂贵的 A/D实现多路复用原理:CMOS( 互补金属氧化物半导体 ) 工作在导通和夹断方式。69典型多路转换器? CD4051 CD4052 CD4066 廉价,应用广泛? AD7501,AD7506 高性能多通道? DG211,DG212 自带电平提升70性能指标? Ron导通电阻? Ronv

29、s导通电阻温漂? Iout开关导通电流? Is漏电流(断开时)?toff断开从 En有效到输出侧达50% 所需时间?ton接通从 En有效到输出侧达50% 所需时间71应用注意事项? 导通电阻问题? 先断后合,延时时间? 建立时间(输出跟随输入)? 输入输出信息通过率? 交扰与衰减率有通道并联时对断开的通道输入/ 输出之比用分贝表示72使用跟随器名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 31 页 - - - - - - - - - 1373光电隔离兼电平提升74采

30、样保持器? 用于信号变化快的数据采集? 减小孔径误差? 在A/D转换过程中加到A/D输入端的信号不发生显著变化75采样保持器的原理存储电容 低漏电,低介质吸收;聚苯乙烯、聚碳酸脂或聚丙稀电容输入放大 驱动能力强输出放大 输入阻抗大(CMOS 型输入)开关和逻辑控制电路76主要性能指标1 采样时间 发出采样命令后采样保持器的输出跟随输入信号所需的时间;2 孔径时间 TAP 发出保持命令后,由逻辑输入控制开关完全断开所需要的时间(1uS);3孔径时间的不稳定性TAP4保持电压下降率V/ T5馈送 保持模式下输入信号的变化部分馈送到输出端77模拟通道的通过率785.4 A/D 转换器根据原理分类:逐

31、位比较型、积分型、并行比较型、V f变换;具体使用要求:转换速度、精度、价格、功能以及接口条件常用:1)双积分型的 A/D 转换器2)逐次逼近型的 A/D 转换器名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 31 页 - - - - - - - - - 14790VRCVIN/INVREFV0T1T=REFINVRCTRCVTVRCVdtdV100REFINVVTT=1280逐次逼近式的 A/D 转换器的主要特点? 转换速度较快在1 100/ s 以内,分辨率可以达1

32、8 位,特别适用于工业控制系统。? 转换时间固定不随输入信号的变化而变化。? 抗干扰能力相对积分型的差例如,对模拟输入信号采样过程中,若在采样时刻有一个干扰脉冲迭加在模拟信号上,则采样时,包括干扰信号在内,都被采样和转换为数字量,这就会造成较大的误差,所以有必要采取适当的滤波措施。81隔离技术与隔离放大器? 抑制共模干扰 使用仪器放大器? 地、信号完全隔离? 飞电容技术? 隔离放大器 (例:AD277)82(续)? 光电隔离(线性光偶)? 数字光偶83(续)84ARM 及其体系结构? ARM简介1991 年,英国剑桥一家公司;32位, RISC 技术;ARM 核供应商,无芯片产线;OS 支持:

33、 Windows CE、 Linux 、 Palm OS 等。? ARM RISC 微处理器特点1.体积小、低功耗、低成本、高性能;2.Thumb (16 位) /ARM ( 32位)双指令集;3.大量使用寄存器,指令执行速度更高,大多数数据操作都在寄存器中完成;4.寻址方式灵活简单,执行效率高;指令长度固定;? ARM系列及其发展V3V6,TDMI 基本含义:Thumb ,M长乘法, D调试支持,ICE (In Circuit Emulation)ARM7,9,11名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理

34、- - - - - - - 第 14 页,共 31 页 - - - - - - - - - 1585ARM处理器的模式? 用户模式 usr :正常程序工作模式,不能直接切换到其他模式? 系统模式 sys:支持 OS 的特权命令 ,类用户模式 ,但可切换到其他模式? 管理模式 svc :操作系统的保护代码,复位或软中断进入此模式? 中止模式 abt :支持虚拟内存和MPU ,数据(堆栈)不存在时中止? 未定义模式 und:未定义指令码引起,支持协处理器、软件仿真? 中断模式 irq:通用中断处理,响应irq中断进入此模式? 快中断模式 fiq:快速中断引起,支持高速数据传输及通道处理86ARM在

35、各模式下的寄存器 (37个)SPSR_fiqSPSR_irqSPSR_undSPSR_abtSPSR_svc-CPSR状态寄存器R15 (PC)R14_fiqR14_irqR14_undR14_abtR14_srcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R0R7通用寄存器R0R14&PC快中断fiq中断irq未定义und中止abt管理svc系统sys用户usr87寄存器的特殊功能? R13: 堆栈指针 SP仅仅是习惯使用ARM 不设堆栈操作指令除用户和系统两模式

36、合用外,各模式独立? R14: 连接寄存器 LR执行调用指令时,自动保存返回地址? R15: PC寄存器可以赋值,即可以是目的操作数,并发生转移RISC 的机器大都如此汇编编程太自由,易错;用C高级语言,无忧88程序状态寄存器 CPSR? N 负或小于? Z结果为 0? C进位 /借位? V溢出M0M1M2M3M4TFIVCZN? I中断禁止? F快中断禁止? T Thumb 状态? M4M0? 10000 用户? 10001 快中断? 10010 中断? 10011 管理? 10111 中止? 11011 未定义? 11111 系统89Little-endian & Big-endian?

37、多字节数据,其内部从低到高各字节的地址排列? Little-endian 相当与 x86模式,低位占低地址,而高位占高地址? MCS-51 仅8位,无所谓 Big / little-endian ,但 CALL 指令导致的断点地址压栈遵循了Big-endian,由此 C51 也使用Big-endian ,如果碰到 C51-ASM51 混编,需要这一点? ARM 支持哪一种?都支持!但要通过引脚选择,没有指令可用于选择90ARM 指令系统概说?精简指令 (RISC) 系统?编码长度都是32位( Thumb 为16位) 通常能编码多达三个操作数 运算类指令可以选择影响或不影响标志 指令大多数指令可

38、条件执行的 用作指针的寄存器内容能自动递增/减 (+/-) 指令中的立即数受编码的限制 指令中不能编码 32位直接地址 (有限制 )名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 31 页 - - - - - - - - - 1691ARM 指令系统概说?没有硬件堆栈 没有相应的指令 调用与返回也不自动使用堆栈 提供一组特殊的指令,软件模拟堆栈的行为?汇编高效、助记符比较复杂 指令的具体格式烦琐,助记符多前后缀,且有选项 指令与伪指令的界限模糊 在汇编了解到一定程度后,

39、C高级语言为主92寻址方式? 立即数的构成方法? 寄存器方式? 寄存器移位方式? 存储器操作数(仅 Load/Store 指令)? 偏移量93数据处理指令的操作数的寻址方式S ,表示第 2个操作是数,它有 3种格式? 立即数方式 (由编码,可见立即数必须有限制)? 寄存器方式( Rm 只要编码寄存器的编号)? 寄存器移位方式一个寄存器 Rm,一个循环移位的位数shift_imm或一个寄存器 Rm ,另一个寄存器Rs表示循环的位数opcode24.21S20Rn19.16Rotate_imm11 8immed_8Rd001cond7 015.1227.2531.2894立即数方式? 由于编码的限

40、制立即数只能有 8位的编码,记为immed_8立即数另有 4位的循环右移计数,记为rotate_imm;? 实际所表示的立即数是=immed_8 循环右移(rotate_imm*2)次即通过循环右移 0,2,4, ,30位而得到;? 立即数以 “ #” 引导寄存器方式? 例:MOVR3,R2ADDR0,R1,R295寄存器移位操作? ASR算术右移? LSL逻辑左移? LSR逻辑右移? ROR循环右移? RRX扩展的循环右移,操作数按指定的数量循环移位,左端用进位标志位C填充。MOVR0,R1,LSL #3; R0 = R1*(2*3)ADDR0,R1,R1,LSL #3 ; R0 = R1+

41、R1*(2*3)SUBR0,R1,R2,LSR #4 ; R0 = R1-R2/(2*4)MOVR0,R1,ROR R2; R0 = R1 循环右移 R2位MOVR0,R1,RRX #2; (R1) 带扩展循环右移2位送R096字及无符号字节的Load/Store 指令的寻址方法? 访问存储器的地址基址寄存器 偏移量? 偏移量的寻址方法立即数寄存器寄存器,移位常数? 地址计算方法偏移量方法、事先更新方法、事后更新方法名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 31

42、页 - - - - - - - - - 1797偏移量的 9种方法? 偏移量方法,#+/-,+/-,+/-,shift#? 事先更新方法,#+/-!,+/-!,+/-,shift#!? 事后更新方法,#+/-,+/-,+/-,shift#?事先更新方法 ! :如果条件满足,addr = Rn+offset按addr 存储地址访问Rn=addr; ?事后更新方法:如果条件满足,Rn间址访问再addr = Rn+offsetRn = addr?无论事先 /后, Rn被更新的,可供下次使用。98ARM 指令系统 (Instruction Set)指令类别? 转移指令(转移调用与返回)? 数据处理指令

43、(通常运算合并传送)? 状态寄存器传输指令? Load/Store 指令? 协处理器指令? 异常中断产生指令99转移指令? B 跳转指令? BL 带返回的跳转( LR? PC)? BX 带状态切换的跳转? BLX 带返回和状态切换的跳转? MOV PC,xx 可以实现 4G范围的转移;如需4G范围的调用,先执行 MOV LR,PC 保留返回地址? MOV PC,LR 可以实现返回;100B / BL 指令? 指令编码? L = 1 时,有返回, LR = PC;? 24位补码左移两位后加到PC(相对转移,A0,A1 为00,因为指令按 4字节对齐 )? 转移范围( -32M+32M )? 语法

44、 B(L) signed_immed_24L1 0 1cond23 02427 26 2531.28101子程序的返回方法? BX LR ( 也写成BX R14)? MOV PC,R14? LDMFD R13!,PC如果子程序入口处使用了STMFD R13!,R14软件堆栈,保护寄存器,R13 自动增量102B / BL 指令的示例? B lable; 跳转到标号处执行? BCC Lable; 标志位 C为1时,转到 Lable? BL func_1; 调用子程序,返回地址在LR名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名

45、师精心整理 - - - - - - - 第 17 页,共 31 页 - - - - - - - - - 18103数据处理指令? MOV数据传送? MVN 数据求反传送? CMP 比较? TST 位测试? TEQ 相等测试? ADD 加法? SUB 减法? RSB 逆向减法? ADC 带进位加法? SBC 带借位减法? RSC 逆向带借位减法? AND 逻辑与? BIC 位清除? EOR 逻辑异或? ORR 逻辑或104MOV 传送? MOV S ,? S决定是否影响条件码;? Rd不为R15,则为一般的数据传送? 用途:寄存器到寄存器常数到寄存器移位操作以PC为目标时,实现跳转,调用和返回以

46、PC为目标且 S被置位时,转移的同时,CPSR ? SPSR ,从异常中返回105ADD / ADC? ADD S ,? Rn为第 1源操作数;? 为第2源操作数;? 典型用法如下:ADD Rx,Rx,#1; Rx? Rx+1ADD Rd,Rx,RxLSL #n; Rd? Rx*(2*n+1)ADD Rs,PC,#offset; 生成基于 PC的跳转指针? ADC带进位,其它与 ADD 相同106SUB / SBC? SUB S ,? 在SUBS 中,如果发生了借位,C标志为0;而未发生借位, C标志为 1。这与进位相反。? 应用SUB Rx,Rx,#1; Rx? Rx -1? SBC为带借位

47、的,其它同SUB107AND / ORR / EOR? AND S ,? ORR S ,? EOR S ,? 一般的逻辑操作,按位实现;? 当S=1, 影响标志,否则不影响标志;? 当S=1, 且Rd = R15(PC) 时, CPSR ? SPSR() ,用于从异常模式返回108BIC位清除指令? BIC S ,? 中,凡 1所对应的位被清 0,其它位不变名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 31 页 - - - - - - - - - 19109CMP /

48、 CMN? CMP ,? 与相减,结果不保留,故不需要 ;? S 不言而喻,所以不需要出现;? 比较 按减法影响标志位,可以条件执行? CMN是 与的相反数相减(实际是加),按加法影响标志位 ,其余同上110TST / TEQ? TST ,按与操作影响标志位,不存结果? TEQ ,按异或操作影响标志位,不存结果111乘法指令? MUL32位乘法? MLA32位乘加? SMULL64位带符号数乘法? SMLAL64位带符号数乘加? UMULL64位无符号数乘法? UMLAL64位无符号数乘加112Load / Store 类指令? LDR / LDRT? LDRB / LDRBT? LDRH?

49、LDRSB? LDRSH? STR / STRT? STRB / STRBT? STRH?B字节, H半字,其它 32位字;?S带符号数,其它不带符号?T用户模式113LDR? 读内存数据到寄存器? 寻址地址如果不是字对齐,还需要向右移位,移位的位数是 1:0的8倍? LDR ,? 示例(寻址方式不同 ):LDR R0,R1,#4;内存 R1+4 的字读到 R0LDR R0,R1,#-4;内存 R1-4 的字读到 R0LDR R0,R1,R2LDR R0,R1,R2,LSL #2;内存 R1+R2*4LDR R0,R1,#4!;内存 R1+4 ,并且 R1? R1+4LDR R0,R1,R2,

50、LSL #2! ;内存 R1+R2*4, 并且R1 ? R1+R2*4LDR R0,R1,#4; 内存 R1 ,后R1? R1+4114LDRB / LDRH? LDRB , 取字节到寄存器? LDRH , 取半字到寄存器名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 31 页 - - - - - - - - - 20115LDRSB? LDR SB ,取8位带符号数送寄存器,高24位由带符号扩展决定? LDR SH ,取16位带符号数送寄存器,高16位由带符号扩展决定

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

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com