ch4-刘彦文-第2版-嵌入式系统原理及接口技术
ch3-刘彦文-第2版-嵌入式系统原理及接口技术
嵌入式系统原理及接口技术(第2版)
11
单个数据传送指令(LDR、STR); 半字、带符号字节/半字传送指令(LDRH、
STRH、LDRSB、LDRSH); 块数据传送指令(LDM、STM); 单个数据交换指令(SWP); 软件中断指令(SWI); 协处理器介绍;
嵌入式系统原理及接口技术(第2版)
嵌入式系统原理及接口技术(第2版)
20
⒉ 指令汇编格式 ⒊ 使用举例
【例3.2】 使用分支指令使部分代码循环5次。
MOV R0,#5 Loop1
;R0值为5
SUBS R0,#1 BNE Loop1
;R0减1送R0,设置标志位
;使用了条件码,不为0则分支到标号 ;Loop1处
嵌入式系统原理及接口技术(第2版)
嵌入式系统原理及接口技术(第2版)
30
⑶ 对寄存器Rm内容进行移位,结果作为 Operand2的值
图3.3
嵌入式系统原理及接口技术(第2版)
31
① 使用指令中bit[11:7]指定的移位量对Rm移 位
·逻辑左移(LSL) 图3.4 逻辑左移(LSL #6)
嵌入式系统原理及接口技术(第2版)
32
·逻辑右移(LSR) 图3.5 逻辑右移(LSR #6)
比较指令TEQ、TST、CMP和CMN,通常对指定 的两个寄存器(或1个寄存器,1个立即数)进 行比较,比较结果不保存到寄存器,只影响 CPSR中的条件码标志。
上述指令通常允许对指定的操作数进行移位操
作。
嵌入式系统原理及接口技术(第2版)
25
⒈ 指令编码格式
指令编码格式见教材图3.2。
图3.2中,第1操作数总是寄存器Rn。Rd称为目 的寄存器,TST、TEQ、CMP和CMN指令不送结 果到目的寄存器Rd,其他指令产生的结果送Rd。
刘彦文清华大学出版社嵌入式系统原理及接口技术概要
6.2.3 锁相环
图6.1中有2个锁相环,MPLL和UPLL。它们的输 入信号,见表6-2,可以选择晶振或EXTCLK, 频率常为12MHz。MPLL输出信号Mpll的频率是 可以改变的,方法是通过在寄存器MPLLCON中 设置MDIV、PDIV和SDIV为不同的值而实现的。 在内核电源电压为2.0V时,MPLL输出信号Mpll 的频率最高为266MHz。UPLL输出信号Upll的频 率也可以调整,方法是通过在UPLL控制寄存器 UPLLCON中设置MDIV、PDIV和SDIV为不同的 值而实现的。
SLOW模式:SLOW模式不使用主锁相环, SLOW模式使用外部频率较低的时钟(XTIpll或 EXTCLK)经过分频后直接作为FCLK。在这种模 式下,功耗仅仅取决于外部时钟的频率。
IDLE模式:在这种模式下,只切断了到 ARM920T的时钟FCLK,到所有片内外设或控制 器的时钟信号仍然接通。计算功耗时应减去 ARM920T的功耗。任何到CPU的中断请求,能 够将CPU从IDLE模式中唤醒。
图6.2给出了OM[3:2]=00和11时,S3C2410A片 外时钟源的连接方法。图中,晶振频率范围为 10~20MHz,常用12MHz的;电容可用 15~22pF的。
参见图6.1,虽然在启动后MPLL就接通(ON状 态),但是MPLL的输出Mpll,在软件写一个合 法的设置值到MPLL控制寄存器MPLLCON以前, 不会作为系统时钟。在合法的值设置以前,从 外部晶振或EXTCLK来的时钟源将被直接地用作 系统的时钟。即使用户不需要改变MPLLCON寄 存器中的缺省值,用户也应该写相同的值到 MPLLCON寄存器。
在实际对MPLL设置MDIV、PDIV和SDIV参数时, 还要求满足以下关系:
ch5-刘彦文-第2版-嵌入式系统原理及接口技术
在本章,地址总线中的ADDR[26:0]有时也简单
写作A[26:0]。
嵌入式系统原理及接口技术(第2版)
10
教材中表5-5中,当某bank数据总线宽度为8位 时,地址总线中的ADDR0与芯片地址引脚A0连 接,ADDR1与A1连接,依此类推,一一对应连 接。表中当某bank数据总线宽度为16位时,地 址总线中的ADDR0不与存储器芯片连接,而用 ADDR1与芯片地址引脚A0连接。表中当某bank 数据总线宽度为32位时,地址总线中的 ADDR[1:0]不与存储器芯片连接,而用ADDR2 与芯片地址引脚A0连接。
除了bank0,bank7~bank1数据总线的宽度, 可以在特殊功能寄存器中分别设定。另外,特 殊功能寄存器中还可以设定一些其他参数。
嵌入式系统原理及接口技术(第2版)
25
⒈ 存储器控制器13个特殊功能寄存器 13个特殊功能寄存器的名称、地址与Reset值见
教材中表5-9。 ⒉ 数据总线宽度与等待状态控制寄存器
存储控制器有13个特殊功能寄存器,它们中的 一些寄存器,通过设置不同的值,可以允许/禁 止nWAIT;也可以改变ROM/SRAM/SDRAM的总 线读写周期的时间长度等。
另外,虽然特殊功能寄存器不能控制 nXBREQ/nXBACK的定时关系,但是也在这一节 一并给予介绍。
嵌入式系统原理及接口技术(第2版)
嵌入式系统原理及接口技术(第2版)
14
⑵ bank0使用32位数据总线与ROM芯片的连接 图5.3表示bank0与
4片ROM、数据总 线为32位时的连接。
嵌入式系统原理及接口技术(第2版)
15
⒌ bank1~bank7与SRAM芯片的连接 图5.4给出了
使用2片SRAM、 32位数据总线, 连接到bank1 的一个例子。
嵌入式系统原理及接口复习要点及思考题答案计
各位:根据掌握要点汰真复习,后面附有作业18答案。
第1章掌握要点1.1.1节巌入衣系统的杨念1.1. 3节敲入茨系统的特点1・3节械入式处理器1・4节磁入式系坑的组欣(看媒件,有补充的容)补:1.W入式系筑开发过程?2 •巌入式系筑坍试常用的基本方法3 •交叉编译和交叉调试4展入式操作系竦第2章掌握要贞2.1节廿算机体系结枸分类2.3.1 节ARM 利Thumb 狀态2.3.2节RISC技术2.3.3节浦水线技术2.4.1 ARM存储系统2.4.2 Cache:写通、写回、挟操作分配cache、写操作分配cache、工作原理、地址映像2.4.3节ARM存储系筑补充:(见课件)1.ARM简介:ARM的命名方衣、5种变形2•理解片Flash的3种编程方法。
3.理解ARM7苏片存储器存储空间分布。
(8个bank,每个bank32MB )第3章掌握要点3.1节ARMS程模衣:处理器模式、处理器工作状态、寄存器组级、异常中断3.2节指令格式利寻址方成3.3节指令系竦:掌握和鬆练应用澡件所曲的指令、可编程序段第5章掌握要我5」节變盘接口 : fiflfll法原理、拿握编写驱动程序5.2节LED显示器接口:理解工作原理,拿握编耳驱动程序5. 5.1节UART异步审行接口:异步通信格式、接收的4种錯娱类塑、初始化、发送程序、接收程序第1章作业題答案:1・什么是嵌入衣系鋭?•第一种,根据IEEE(国际电气利电子工程师协会)的定义:械入式系筑是"用于控匍、监視或者辅助操作机器利按备的装置"(原文为devices used to control, monitor, or assist the operation of equipment, machinery or plants )o•第二种,嵌入式系统是以应用为中血、以廿算林技术为基硏、软件说件可裁剪、功能、可靠性、成本、体积、功藉严格要求的专用廿算机系筑。
微型计算机原理与接口技术第二版-刘彦文 等-第8章
2) 方式1的使用场合 选定方式1,规定一个端口的输入输出方式的同 时,就自动规定了有关的联络、控制信号和中 断请求信号。 如果外设能向8255A提供输入数据选通信号或 输出数据接收应答信号,就可采用方式1。
具体来说,方式1有两种用法: (1) 中断方式。将两个INTE置为1,A组和B组可 以使用各自的INTR信号申请中断。 (2) 查询方式。微处理器通过读端口C,可以查 询IBF、-OBF信号的当前状态,决定是否立即进 行数据传输。
图8.2 8255A内部结构框图
1. 三个并行输入/输出端口(端口A、端口B、端 口C) 8255A有A、B、C三个并行输入/输出端口(简 称为A口、B口、C口),其功能全部由程序设定, 每个端口都有自己的特点。 A口、B口通常作为独立的I/O端口使用,C口也 可以作为一般的I/O端口使用,但当A口、B口作 为应答式的I/O口使用时,C口分别用来为A口、 B口提供应答控制信号,各端口的功能见表 8.1(p283)。
(6) INTR:中断请求信号,由8255A输出给微 处 理器或中断控制器 。 输入数据时出现-STB或输出数据时出现-ACK信 号后沿,8255A都会产生中断请求信号INTR, 向微处理器申请中断,请求微处理器输入当前 数据或输出下一个数据。 INTRA有效表示A口申请中断,INTRB有效表示B 口申请中断。 输入数据时,读数据信号后沿使INTR请求无效; 输出数据时,信号后沿使INTR无效。
综上所述,方式1的工作特点可归纳如下: 端口A 和端口B均可工作在方式1的输入或输出 方式。 若端口A和端口B中只有一个工作在方式1,而 另一个工作在方式0,则端口C中有3位作为方式 1的联络信号,其余5位均可工作在方式0的输入 或输出方式。 若端口A和端口B都工作在方式1,则C口中6位 作其联络信号,剩下的2位还可工作在方式0的 输入输出方式。
ch4-刘彦文-第2版-嵌入式系统原理及接口技术
ADR{condition} register,expression
嵌入式系统原理及接口技术(第2版)
8
⑵ 使用
使用中,ADR总是被汇编成一条指令。汇编器 试图产生一条ADD或SUB指令,装入地址。如 果不能用一条指令构造出地址,则产生错误信 息,汇编失败。
如果expression是相对程序的,计算产生的地址 必须与ADR伪指令在同一个代码区域。 ⑶ 使用举例
⒋ 标号(labels)
⑴ 相对程序的标号
⑵ 相对寄存器的标号
⑶ 绝对地址
嵌入式系统原理及接口技术(第2版)
22
⒌ 局部标号(local labels) 局部标号使用0~99范围内的一个数,可以有选
择地在其后跟随一个表示当前范围的名字。 局部标号用在指令中,指出分支的目标处。
局部标号格式为:
n{routname}
第4章 ARM汇编语言特性 与编程基础
嵌入式系统原理及接口技术(第2版)
1
本章重点 :
⑴ ARM汇编器提供的汇编语言特性,包括行格 式、预定义名和内建变量、伪指令、符号、指 示符、表达式和操作符等,以及它们的使用;
⑵ ARM汇编语言编程基础,包括调用子程序、 条件执行、装入常数和地址到寄存器、装入和 存储多个寄存器、多路分支等内容,以及对应 的程序代码。
⑶ 符号名中对大、小写字母是敏感的。
⑷ 在符号名中所有的字符是有意义的。
嵌入式系统原理及接口技术(第2版)
19
⑸ 在它们的作用范围内,符号名必须是唯一的。
⑹ 符号名必须不使用内建变量名、预定义寄存 器名和预定义协处理器名。
⑺ 符号名应该不使用与指令助记符或指示符相 同的名字。
ch2-刘彦文-第2版-嵌入式系统原理及接口技术
·支持4位双扫描、4位单扫描、8位单扫描显示 类型STN LCD面板
·支持单色、4灰度级、16灰度级、256色、 4096色STN LCD显示
嵌入式系统原理及接口技术(第2版)
15
·支持多种屏幕尺寸,典型的有640×480、 320×240、160×160等
·最大虚拟屏显示存储器空间为4MB,在256色模 式,支持的虚拟屏尺寸有4096×1024、 2048×2048、1024×4096等
嵌入式系统原理及接口技术(第2版)
17
⑸ USB主控制器 ·2个端口的USB主(Host)控制器 ·兼容OHCI Rev 1.0 ·兼容USB V 1.1 ·支持低速和全速设备
嵌入式系统原理及接口技术(第2版)
18
⑹ 时钟与电源管理
·S3C2410A片内有MPLL(Main Phase Locked Loop,主 锁相环)和UPLL(USB PLL,USB锁相环)
嵌入式系统原理及接口技术(第2版)
6
2.2 S3C2410A微处理器组成 与引脚信号
2.2.1 S3C2410A微处理器组成 ⒈ S3C2410A微处理器组成 S3C2410A组成框图如图2.1所示。
嵌入式系统原理及接口技术(第2版)
7
嵌入式系统原理及接口技术(第2版)
8
图2.1中,S3C2410A片内组成可以分为三部分: ARM920T、连接在AHB总线上的控制器,以及连 接在APB总线上的控制器或外设。其中ARM920T 在2.3节中讲述。
嵌入式系统原理及接口技术(第2版)
12
⑵ Nand Flash控制器
·支持从Nand Flash存储器进行引导
·有4KB SRAM内部缓冲区,用于引导时保存从 Nand Flash读出的程序
刘彦文编《嵌入式系统原理及接口技术》对应试卷及答案(A)
题号题号 一 二 三 四 五 六 七 总分总分 核分人核分人 得分得分得分得分 评卷人评卷人 一、选择题(每空1分,共7分)1、Linux 操作系统加载驱动程序模块使用的命令是(操作系统加载驱动程序模块使用的命令是( )。
A 、insmod B 、rmmod C 、lsmod D 、chmod 2、Linux 操作系统设置IP 地址的命令是(地址的命令是( )。
A 、ifconfig B 、ifconfig eth0 C 、eth0 D 、cp 3、目标板Linux 操作系统通过哪一个端口连接到终端?(操作系统通过哪一个端口连接到终端?( ) A 、其他、其他 B 、串口、串口 C 、网口、网口 D 、JTAG 口4、如果目标板IP 地址是192.168.1.9,主机IP 地址是192.168.5,在主机终端窗口测试网络与目标板通信,使用的命令和参数是:( ) A 、ping 192.168.1.9 B 、ping 192.168.1.5 C 、ping 192.168.1.6 D 、ping 192.168.1.8 5、目标板bootloader(装载引导程序)使用的是(使用的是( )。
A 、vivi B 、u-boot C 、bios D 、yaffs.tar.bz2 6、信号名ADDR21/GPA6中ADDR21的下划线表示(的下划线表示( )。
A 、系统信号、系统信号 B 、用户定义的信号、用户定义的信号 C 、地址、地址 D 、RESET 后初态后初态7、信号名nGCS0中的n 表示(表示( )。
A 、低电平有效、低电平有效 B 、高电平有效、高电平有效 C 、上升沿有效、上升沿有效 D 、下降沿有效、下降沿有效 得分得分 评卷人评卷人 二、填空题(每空1分,共30分)1、说出2个你知道的使用了嵌入式系统的产品:( )、( )2、说出3个你知道的嵌入式微处理器典型产品:个你知道的嵌入式微处理器典型产品: ( ),( ),( )3、交叉编译器产生的可执行文件在主机还是目标板执行?(、交叉编译器产生的可执行文件在主机还是目标板执行?( )5、Linux 涉及时间的3个名词术语是:( )、( )、( )。
刘彦文《基于ARM的嵌入式系统原理及应用》第2章
⑴ 小端格式 在小端格式,处理器寄存器中的32位二进制数用 bit[31:0]表示,其中bit[31]为最高位,bit[0]为 最低位,分为4字节,bit[31:24]为数据的最高字 节,bit[7:0]为数据的最低字节。当寄存器的内 容以字格式保存在字边界对齐的存储器地址A中 时,存储器4个地址对应的单元中保存的字节数 据与寄存器bit[31:0]的对应关系见图2.4。
LCD控制器,支持STN及TFT液晶显示器 带有外部请求引脚的4通道DMA Camera接口 3通道通用异步收发器(UART),支持红外传输 2通道SPI 1通道多主IIC总线控制器 1通道IIS总线控制器
MMC/SD/SDIO主控制器 2端口USB主控制器,1端口USB设备控制器(Ver 1.1) 4通道脉宽调制(PWM)定时器1通道内部定 时器 看门狗定时器
⑶ 芯片封装 289-FBGA(Fine-Pitch Ball Grid Array,精细倾 斜球栅阵列)封装
2.2.2 S3C2440A芯片封装及引脚编号 与引脚信号名 ⒈ S3C2440A芯片封装形式 S3C2440A芯片有289个引脚,FBGA封装,底视 图见图2.2(见P30)。 ⒉ S3C2440A引脚编号与引脚信号名 S3C2440A各引脚编号与对应的引脚信号名,见 附录A。
Thumb指令使用了32位核的全部优点: · 32位地址空间; · 32位寄存器; · 32位移位器和ALU单元; · 32位存储器传输器。
2.3.3 ARM920T功能模块 ARM920T功能模块图见图2.3。 (见P32)
2.4 ARM920T的程序员模型
2.4.1 处理器操作状态 ⒈ 处理器的两种操作状态 ARM状态,在这种状态执行32位长度的、字边界 对齐的ARM指令。 Thumb状态,在这种状态执行16位长度的、半字 边界对齐的Thumb指令。 在Thumb状态,程序计数器PC使用bit[1]来选择 切换半字。 在ARM和Thumb之间转换状态,不影响处理器操 作方式或寄存器内容。
嵌入式系统刘彦文第8章
‘‘
第八章 PWM定时器、实时时钟及看门狗定时器
‘‘
⒈ 基本定时操作
• 基本定时操作见图8.2(P268)
‘‘
第八章 PWM定时器、实时时钟及看门狗定时器
第八章 PWM定时器、实时时钟及看门狗定时器
‘‘
⒉ 自动重装与双缓冲 • S3C2410A PWM定时器有双缓冲功 能,也就是说有两个缓冲器,定时器 计数缓冲器寄存器TCNTBn和定时器 比较缓冲器寄存器TCMPBn • 图8.3(P269)是双缓冲功能的一个举 例,图中省略了TCMPBn寄存器的值
‘‘
⑶看门狗定时器(WDT) • S3C2410AWDT概述 • 看门狗定时器操作 • 看门狗定时器特殊功能寄存器 • 看门狗定时器程序举例
‘‘
‘‘
8.1 PWM定时器
8.1.1 PWM定时器概述
‘‘
第八章 PWM定时器、实时时钟及看门狗定时器
‘‘
⒈ 定时器模块 • 参见图8.1,S3C2410A有5个16位的 定时器 • 定时器0~3带有脉宽调制(Pulse Width Modulation,PWM)功能 • 这4个定时器的输出信号连接到 S3C2410A的TOUT0~TOUT3引脚 • 输出波形的频率和占空比可编程控制
‘‘
⑵ 定时器比较缓冲器寄存器TCMPBn • 程序可读写 • 用于保存定时器比较初值 • 在手动更新允许时,将这个初值送到 定时器比较寄存器TCMPn • 当执行计数的TCNTn的值与TCMPn 的值相等时,计数器输出信号 TOUTn电平由低变高
‘‘
第八章 PWM定时器、实时时钟及看门狗定时器
‘‘
‘‘
第八章 PWM定时器、实时时钟及看门狗定时器
‘‘
⒊ PWM定时器用到的S3C2410A引脚 信号 • PWM定时器输出信号,S3C2410A 的TOUT0~TOUT3引脚信号 • 可以将S3C2410A引脚引入的时钟源 TCLK1、TCLK0,作为定时器的时 钟信号
嵌入式系统原理及接口技术
中国海洋大学本科生课程大纲课程属性:公共基础/通识教育/学科基础/专业知识/工作技能,课程性质:必修、选修一、课程介绍1.课程描述(中英文):嵌入式原理及接口技术课程是自动化专业的一门重要的、实践性较强的学科基础课。
通过本课程的学习,学生可以了解微型计算机系统的工作原理,掌握微型计算机的体系结构和接口技术,掌握一种主流单片机的应用技术。
本课程可为后续课程学习、嵌入式系统设计、智能仪器开发提供基础。
本课程内容设置兼顾基础原理和实践应用。
基础原理部分主要包括经典的8086微型计算机系统的组成结构、指令系统、存储器、输入输出接口、中断系统、总线等,CPU常用外设定时器、串行通信控制器、模数与数模转换器、DMA控制器的工作原理;实践应用部分主要包括目前常用的STM32F系列微控制器(单片机)的体系结构、接口应用技术、系统扩展方法和程序设计方法。
Microprocessor principle and interface technology is an important and practical basic course for automation specialty. Through the study of this course, students can understand the working principle of microcomputer system, master the architecture and interface technology of microcomputer, and the application technology of a popular microcontroller. This course can provide the basis for the follow-up course study, embedded system design, and intelligent- 6 -instrument development.In the content of this course, both basic principles and practical applications are considered. The basic principle part mainly includes the composition structure, instruction system, memory, I/O interface, interrupt system, bus system of the classic 8086 microcomputer system, the working principle of the timer, serial communication controller, analog-to-digital and digital-to-analog converter, and DMA controller commonly used by CPU. The practical application part mainly includes the system structure, interface application technology, system expansion method and program design method of STM32F series microcontroller.2.设计思路:本课程是自动化专业传统开设的微机原理及接口技术、单片机应用技术课程的融合。
《嵌入式系统原理与接口技术》第2版复习资料整理
第一章1.1什么是嵌入式系统(P1)IEEE(国际电气和电子工程师协会)关于嵌入式系统的定义:嵌入式系统是“用于控制、监视或者辅助操作机器和设备的装置”。
1.2 与通用计算机系统比较,嵌入式系统有何特点?(P4)1)嵌入式系统通常是面向特定应用的;2)嵌入式系统功耗低、体积小、集成度高、成本低;3)嵌入式系统具有较长的生命周期;4)嵌入式系统具有固化的代码;5)嵌入式系统开发需要专用开发工具和环境;6)嵌入式系统软件需要RTOS(实时操作系统)开发平台;7)嵌入式系统开发人员以应用专家为主;8)嵌入式系统是知识集成系统。
1.3 根据嵌入式系统的复杂程度,嵌入式系统可分为哪4类?(P6)1)单个微处理器;2)嵌入式处理器可扩展的系统;3)复杂的嵌入式系统;4)在制造或过程控制中使用的计算机系统。
1.4 嵌入式处理器有哪几类?试举例说明。
(P7)1)嵌入式微处理器(EMPU);2)嵌入式微控制器(EMCU);3)嵌入式DSP处理器(EDSP);4)嵌入式片上系统(ESoC)。
1.6从硬件系统来看,嵌入式系统由哪几部分组成?画出见图。
(P11)第二章2.1 ARM7和ARM9基于什么体系结构,采用何种指令集?ARM7基于冯·诺依曼体系结构,采用RISC精简指令,兼容16位Thumb指令集;ARM9基于哈佛体系结构,同样采用RISC精简指令,支持32位ARM指令集和16位Thumb 指令集。
2.2 ARM7 TDMI中的"TDMI"分别代表什么?✧T:支持16位压缩指令集Thumb。
✧D:支持片上Debug。
✧M:内嵌硬件乘法器(Multiplier)。
✧I:嵌入式ICE,支持片上断点和调试点。
T变种处理器有两种工作状态:Thumb和ARM只要支持同版本的ARM体系版本,基于ARM处理器的应用软件将是兼容的。
2.3 ARM处理器有几种工作模式?各种工作模式分别有什么特点?(P25)ARM状态和Thumb状态。
刘彦文《基于ARM的嵌入式系统原理及应用》第3章
例如: LDR
R0,[R1,R2];先索引,R1+R2内容作地 ;址,读字数据送R0,不回写 LDR R0,[R1,R2]!;先索引,R1+R2内容作 ;地址,读字数据送R0,R1+R2的值回写R1 LDR R1,[R0,#0x08]!;先索引,地址为 ;R0+0x08,读数据送R1,地址回写R0 LDR R1,[R0,#-0x08];先索引,地址为 ; R0-0x08,读数据送R1,地址不回写
⒋ 灵活的偏移量FlexOffset(P54) ⒌ 使用举例 LDR R0,[R1,-R2] ;先索引,不回写,地址由 ;R1-R2的值指定 LDR R0,[R1],R2 ;后索引,R1内容作地址, ;读字数据送R0,;R1+R2回写R1 STR R0,[R1],#8;后索引,R0数据送以R1内容 ;作地址的存储器单元,R1+8回写R1
LDR R0,LOCALDATA ;从标号LOCALDATA处,装入一个字到R0 ;汇编器产生的指令是LDR R0,[R15,#0xxx] ;或LDR R0,[R15,#-0xxx],其中0xxx为偏移量
程序相对寻址不能使用指令后缀“!”。
⑷ 后索引偏移量(post-indexed offset) 指令中基地址寄存器Rn中的值,作为传输的存储 器地址。传输后偏移量与Rn中的值计算,结果被 回写Rn,Rn不能是r15。例如: LDR R1,[R0],#0x08 ;R0内容作地址,读数据送R1,R0+0x08写入R0 LDR R1,[R0],R2,LSL #2 ;R0内容作地址,读数据送R1,R0+R2<<2写入 R0
Thumb指令集不是一个完整的指令集,用 Thumb指令编写的程序,必须与用ARM指令编 写的程序配合,才可以使ARM处理器运行起来。 当处理器正在执行ARM指令时,称为处理器在 ARM状态操作。 当处理器正在执行Thumb指令时,称为处理器 在Thumb状态操作。
微型计算机原理与接口技术第二版-刘彦文等-第5章
7. 可编程功能
目前接口芯片大部分是可编程的,可以用命令 字或控制字来设定其工作方式、工作参数。所 以在不改动硬件电路的情况下只修改相应的命 令字或控制字,就可以改变接口的工作方式, 大大增加了接口的灵活性和可扩充性。
8. 错误检测及复位功能
许多数据传输量大、传输速率高的接口,具有 检测信号传输错误的功能。常见的信号传输错 误有以下两种:物理信道上的传输错误(主要由 干扰造成)和数据传输中的覆盖错误(主要由数 据收发不及时造成)。在数据传输的过程中接口 应能及时检错和纠错。常用的检错方法有奇偶 校验法、方阵码校验法和CRC冗余校验法等。 同时,接口在收到系统的复位信号后,应能将 接口电路和所连的外部设备置为初始状态。
为此,接口电路除了有传送数据的端口外,还 应有传送状态的端口。对于输入过程来说,外 设将数据送到接口时,同时使接口状态端口中 “准备好”标志位置1。
对于输出过程来说,外设取走一个数据后,接 口便将状态端口的对应标志位清零。表示当前 输出寄存器已经处于“空”状态,可以接收 CPU传送的下一个数据。
查询方式输入接口电路原理图见图5.6。从图中 可以看出:当输入设备将准备好的数据传送到
输入设备在完成一次输入操作后,发出就绪信 号(READY),表明输入设备已经把数据送到接 口,等待CPU给予处理。
输出设备接口在接收从CPU送出的一批数据信 息进行输出的过程中,发出忙信号(BUSY),表 明目前接口不能接收新的数据信息。
状态信息用于协调CPU与外设之间的通信。
3. 控制信息
控制信息是CPU向接口发出的命令,用于控制 外设及接口的工作方式以及外设的启动或停止。 控制信息的格式因设备及接口而异。控制信息 也可以设置接口芯片的工作方式。
输出传送的工作原理及编程方式与输入传送有 许多的类似之处。
刘彦文清华大学出版社嵌入式系统原理及接口技术第7章
7.1 I/O端口概述
7.1.1 I/O端口概 ⒈ I/O端口概述 S3C2410A有117个多功能输入/输出端口引脚,分为 如下8个端口: ·端口A(GPA):23个输出引脚的端口; ·端口B(GPB):11个输入/输出引脚的端口; ·端口C(GPC):16个输入/输出引脚的端口; ·端口D(GPD):16个输入/输出引脚的端口; ·端口E(GPE):16个输入/输出引脚的端口; ·端口F(GPF):8个输入/输出引脚的端口; ·端口G(GPG):16个输入/输出引脚的端口; ·端口H(GPH):11个输入/输出引脚的端口。
⑶ 外部中断控制寄存器EXTINT0~EXTINT2 EINT0~EINT23是S3C2410A外部中断请求信号 输入引脚,在外部中断控制寄存器 EXTINT0~EXTINT2中,可以设置请求信号方式 (低电平、高电平、下降沿、上升沿、2个沿), 见表7-26、表7-27和表7-28。
⑷ 外部中断滤波寄存器EINTFLT2和EINTFLT3 EINTFLT2和EINTFLT3规定了S3C2410A外部中 断请求输入引脚EINT16~EINT23,所使用的滤 波宽度和可选择的滤波时钟。 ⑸ 外部中断屏蔽寄存器EINTMASK 对S3C2410A外部中断请求引脚EINT23~EINT4, 规定了哪一个被屏蔽或允许中断。 ⑹ 外部中断登记寄存器EINTPEND 对S3C2410A外部中断请求引脚EINT23~EINT4 请求信号登记,1为有请求。
⑵ DCLK控制寄存器DCLKCON 只有在杂项控制寄存器MISCCR中,用CLKSEL1、 CLKSEL0选择了S3C2410A的CLKOUT1、 CLKOUT0输出引脚使用DCLK1、DCLK0作为信 号源,那么DCLKCON中的参数才起作用。这些 参数设置DCLKn信号高、低电平的时间长度、 DCLKn的分频值等内容,见表7-25,表7-24。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
21
⒊ 汇编时串变量的替换
可以使用串变量作为汇编语言的一整行或一行的 一部分。如果在某一位置使用的串变量带有‘$’
作为前缀,则汇编器用串变量的值替换串变量。 ‘$’字符通知汇编器,在检查一行的语法前果变量名后有跟随 的字符,替换后跟随在串变量的值后,
嵌入式系统原理及接口技术(第2版)
27
⒉ CODE32、CODE16指示符使用程序举例
用于选择指令集的CODE16和CODE32指示符 ⑴ 格式
格式分别是:
CODE16
CODE32
⑵ 使用
在ARM状态当使用BX指令分支到Thumb指令时,
使用CODE16。CODE16放置在分支目标处代码
的前面。当从Thumb状态分支到ARM指令时,使
地址到一个寄存器。 ⑴ 格式
ADR{condition} register,expression
嵌入式系统原理及接口技术(第2版)
8
⑵ 使用
使用中,ADR总是被汇编成一条指令。汇编器 试图产生一条ADD或SUB指令,装入地址。如 果不能用一条指令构造出地址,则产生错误信 息,汇编失败。
如果expression是相对程序的,计算产生的地址 必须与ADR伪指令在同一个代码区域。 ⑶ 使用举例
⑴ 格式
ADRL{condition} register,expression
嵌入式系统原理及接口技术(第2版)
10
⑵ 使用
使用中,ADRL总是被汇编成2条指令。如果汇 编器不能以2条指令构造出地址,则产生错误信 息,汇编失败。
如果expression是相对程序的,它必须计算产生 一个与ADRL伪指令在同一个代码区域的地址, 否则在随后的连接时,地址可能出了范围。
⑶ 使用举例
start MOV r0,#10
ADRL r4,start+60000
;产生指令ADD r4,pc,#0xe800
;
ADD r4,r4,#0x254
嵌入式系统原理及接口技术(第2版)
11
3. LDR ARM伪指令
LDR伪指令装入一个32位常数值或一个地址到 一个寄存器。
⑴ 格式
LDR{condition} register,=[expression|label-expression]
用CODE32。CODE32放置在分支目标处代码的
前面。
嵌入式系统原理及接口技术(第2版)
28
⑶ 使用举例
使用举例1:这个例子给出如何从ARM指令分支 到Thumb指令。
AREA ARMtoThumb,CODE,READONLY
;这个区域开始于ARM状态
ADR r1,test1+1
;装入地址,设置最低位为1
⑴ 预定义寄存器名
⑵ 预定义程序状态寄存器名
⑶ 预定义浮点寄存器名
⑷ 预定义协处理器名和协处理器寄存器名
⒊ 内建变量
内建变量(built in variables)见教材表4.1,它 们是由ARM汇编器定义过的。内建变量不能用 SETA、SETL或SETS指示符设置,它们能被用在 表达式或条件中,如:
虽然表4-2中Thumb伪指令ADR、LDR和NOP与 ARM伪指令ADR、LDR和NOP格式完全相同,但 相同的伪指令出现在程序中Thumb代码区,汇 编器识别为Thumb伪指令;出现在ARM代码区 汇编器识别为ARM伪指令。
嵌入式系统原理及接口技术(第2版)
7
⒈ ADR ARM伪指令 ADR伪指令装入一个相对程序或相对寄存器的
⑵ 使用
使用LDR伪指令有两个主要目的,一是当一个 立即数的值由于超了范围,不能用MOV和MVN 指令装入到一个寄存器时,用LDR伪指令产生
一个文字池常数;二是装入一个相对程序或外
部的地址到一个寄存器。
嵌入式系统原理及接口技术(第2版)
12
⑶ 使用举例 LDR r0,=0x1ff ;装入0x1ff到r0 LDR r1,=label ;装入label地址到r1
接受浮点指令。
⑴ 格式
NOFP ⑵ 使用
使用NOFP指示符确认在软件或目标硬件不支持 浮点指令的情况下,程序中没有使用浮点指令。
4. NOP ARM伪指令
对NOP伪指令,汇编器产生什么也不操作的 ARM指令:MOV r0,r0。
⑴ 格式
NOP
嵌入式系统原理及接口技术(第2版)
13
5. ADR Thumb伪指令
ADR伪指令装入一个相对程序或相对寄存器的 地址到一个寄存器。
⑴ 格式
ADR register,expression
嵌入式系统原理及接口技术(第2版)
26
4.1.4 与代码有关的指示符
⒈ AREA、ENTRY和END指示符使用程序举例
【例4.1】用ARM汇编语言编写的汇编语言模块举例。
(程序见教材)
① 定义区域的AREA指示符
② 声明汇编程序入口点的ENTRY指示符
③ 应用程序执行
④ 应用程序终止
⑤ 源程序结束的END指示符
⒋ 标号(labels)
⑴ 相对程序的标号
⑵ 相对寄存器的标号
⑶ 绝对地址
嵌入式系统原理及接口技术(第2版)
22
⒌ 局部标号(local labels) 局部标号使用0~99范围内的一个数,可以有选
择地在其后跟随一个表示当前范围的名字。 局部标号用在指令中,指出分支的目标处。
局部标号格式为:
n{routname}
嵌入式系统原理及接口技术(第2版)
2
4.1 ARM汇编语言特性
4.1.1 行格式、预定义名和内建变量 ⒈ 行格式 在ARM汇编语言模块中,源代码行的一般格式是:
{symbol}{instruction|directive|pseudo_instruction}{;comment}
也就是: {符号} {指令|指示符|伪指令} {;注释}
BX r1
;分支并且改变指令集
CODE16 ;跟随指令为 Thumb指令
test1 MOV r0,#20 ;Thumb指令
嵌入式系统原理及接口技术(第2版)
29
【例4.2】 (程序见教材)
嵌入式系统原理及接口技术(第2版)
30
3. 禁止浮点运算的NOFP指示符 NOFP指示符表明在一个汇编语言源文件中不
的地址到一个寄存器。
⑶ 使用举例
LDR r0,=0x0ffe
;装入0x0ffe到r0
LDR r1,=labeladdr ;装入labeladdr地址到r1
嵌入式系统原理及接口技术(第2版)
16
7. MOV Thumb伪指令
MOV伪指令传送一个低寄存器的值到另一个低 寄存器(r0-r7)。而MOV指令不能传送一个低 寄存器的值到另一个低寄存器。
⑴ 格式
MOV Rd,Rs
⑵ 使用
在使用中,汇编器将MOV伪指令变成带立即数 的ADD指令,指令中立即数的值为0。
⑶ 使用举例
MOV Rd,Rs;产生指令ADD Rd,Rs,#0
嵌入式系统原理及接口技术(第2版)
17
8. NOP Thumb伪指令 对NOP伪指令,汇编器产生什么也不操作的
Thumb指令:MOV r8,r8。 ⑴ 格式
行格式中symbol通常是标号(label),在指令 或伪指令前它总是标号,在某些指示符前它是 表示变量或常量的符号(symbol)。
行格式中symbol必须从第一列开始,不能含任 何如空格或Tab的字符,详见本节符号命名规则 部分。
嵌入式系统原理及接口技术(第2版)
5
⒉ 预定义寄存器和协处理器名
testexm1 DCW 1,2,3,4
嵌入式系统原理及接口技术(第2版)
15
6. LDR Thumb伪指令
LDR伪指令装入一个32位常数值或一个地址到一个低 寄存器中。
⑴ 格式
LDR register,=[expression|label-expression]
⑵ 使用
使用LDR伪指令有两个主要目的,一是当一个立即数 的值由于超出MOV指令的范围,不能装入一个寄存器 时,产生文字池常数;二是装入一个相对程序或外部
|C$$code|
其中两边的两条竖线不是符号的一部分,只用于
为符号名划界线,它们之间不允许使用竖线、分
号和换行符。
嵌入式系统原理及接口技术(第2版)
20
⒉ 变量(variables) 变量有三种类型: ·数值 ·逻辑 ·串 变量的类型不能被改变,变量的值可以被改变。
嵌入式系统原理及接口技术(第2版)
LDR r1,=‘A’
;字符
嵌入式系统原理及接口技术(第2版)
25
7. 指示符(directives) 汇编器提供指示符用来支持:
⑴ 定义数据结构和为数据分配空间; ⑵ 文件分隔成逻辑上的一个或多个区域; ⑶ 错误报告和汇编列表控制; ⑷ 符号定义; ⑸ 条件汇编和重复汇编,以及在一个文件中包 含辅助文件。
⑶ 符号名中对大、小写字母是敏感的。
⑷ 在符号名中所有的字符是有意义的。
嵌入式系统原理及接口技术(第2版)
19
⑸ 在它们的作用范围内,符号名必须是唯一的。
⑹ 符号名必须不使用内建变量名、预定义寄存 器名和预定义协处理器名。
⑺ 符号名应该不使用与指令助记符或指示符相 同的名字。
⑻ 如果需要在符号名中使用更大范围的字符, 使用如下举例的格式为符号名划界线:
NOP
嵌入式系统原理及接口技术(第2版)
18
4.1.3 符号(symbols)与指示符(directives)
使用符号能够代表变量、地址和数值常数。符 号代表地址时,也称为标号。
⒈ 符号命名规则