ARM基础知识详解
关于ARM的基础知识
几点补充:
ARM:Advanced RISC Machine基本特点
RISC:精简指令集计算机 指令等长:32bit(ARM)/16bit(Thumb) 所有R都具有类似51“A”功能 流水线:ARM7——3级,ARM9——5级 ARM11——8级 新一代ARM Cortex A/R/M
硬件、软件调试问题(内核调式、应用程序调试) 调试技术目标:
查看和修改CPU和内部资源状况——系统对调试者透明 控制程序运行——系统工作过程可由调试者控制
基本硬件仿真方法
插入式 非插入式
JTAG——边界扫描技术 SWD、BDM等
集成调试环境(ADS、SDT、KEIL 3(支持C51、
如何看NXP LPC的系统结构
32个IO、双UART、高速I2C、SPI、2个32bit计数器 PWM、实时时钟、看门狗、16K/32K/64K SRAM(RAM) 128K FLASH(ROM)等等——功能部件、系统资源
31个32bit 通用寄存器(不分组R0~R7、分组) 实例分析(见PDF文件)
arm硬件设计知识点大全
arm硬件设计知识点大全ARM架构是当前广泛使用的计算机处理器架构之一。
它在移动设备、嵌入式系统和服务器等领域得到了广泛应用。
本文将介绍ARM硬件设计的知识点,帮助读者了解ARM架构及其相关概念。
一、ARM架构简介ARM架构最初由Acorn计算机公司在1980年代开发,旨在设计一种低功耗、高效能的处理器架构。
与Intel的x86架构相比,ARM架构具有更好的功耗和性能优势,逐渐成为移动设备市场的主导架构。
ARM处理器包含一系列不同的产品系列,如Cortex-A、Cortex-R和Cortex-M等,适用于不同的应用领域。
二、ARM指令集ARM指令集是ARM架构的核心组成部分,它定义了处理器执行的指令集合。
ARM指令集可以分为三类:ARM指令集、Thumb指令集和Thumb-2指令集。
ARM指令集用于执行32位指令,提供了更高的性能;Thumb指令集用于执行16位指令,具有更小的存储空间和更低的功耗;Thumb-2指令集则是ARMv6指令集的扩展,可以以混合指令的形式执行16位和32位指令。
三、ARM寄存器ARM处理器具有一组通用寄存器,用于存储数据和中间计算结果。
在32位ARM指令集中,一共有16个通用寄存器,以R0-R15表示。
其中,R13-R15寄存器用于存储堆栈指针、链接寄存器和程序计数器。
ARM处理器还具有一组特殊寄存器,如程序状态寄存器(PSR)、当前程序状态寄存器(CPSR)和保存的程序状态寄存器(SPSR),用于控制处理器的执行状态和处理异常。
四、ARM中断和异常处理ARM处理器支持多种中断和异常处理机制。
其中,中断分为IRQ (普通中断请求)和FIQ(快速中断请求)两种类型,允许外部设备通过中断请求与处理器进行通信。
异常是由于处理器执行过程中出现的非预期情况所引起的,如除零错误、数据访问异常等。
ARM处理器通过中断向量表和异常向量表来处理中断和异常,使得系统能够快速响应和处理这些事件。
ARM基础知识
复习问题提纲第一讲基础知识1.什么是嵌入式系统(IEEE定义和国内普遍认同的定义分别是什么)IEEE(国际电气和电子工程师协会)对嵌入式系统的定义:“用于控制、监视或者辅助操作机器和设备的装置”国内普遍认同的嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。
更简单的讲:就是嵌入到对象体中的专用计算机系统。
三要素:嵌入、专用、计算机嵌入性:嵌入到对象体系中,有对象环境要求专用性:软、硬件按对象要求裁减计算机:实现对象的智能化功能2.嵌入式系统的特点1、专用软、硬件可剪裁可配置;2、低功耗、高可靠性、高稳定性;3、软件代码短小精悍;4、代码可固化;5、实时性;6、弱交互性7、嵌入式系统软件开发通常需要专门的开发工具和开发环境;8、要求开发、设计人员有较高的技能。
3.嵌入式系统的组成嵌入式系统总体上是由硬件和软件组成的,硬件是其基础,软件是其核心和灵魂。
第二讲 ARM技术概述(以下指的arm处理器都是指ARM920T)1.arm处理器是32位架构,它支持的基本数据类有哪3个(提示:字节、、)(1)Byte:字节,8bit (2)Halfword:半字,16bit(半字必须与2字节边界对齐)(3)word:字,32bit(字必须与4字节边界对齐)2.什么是存储大小端模式所谓的大端模式,是指高位字节存放在低地址单元中,而低位字节存放在高地址单元中。
所谓的小端模式,是指低位字节存放在低地址单元中,而高位字节存放在高地址单元中。
3.arm 处理器有哪7种工作模式,每种工作模式下通用工作寄存器有多少个、作用是什么、各个模式间哪些模式下有自己专有的寄存器,哪些寄存器是各个模式彼此公用的,哪些寄存器一般有固定的用途是什么哪两种模式寄存器完全相同,哪种模式它的专有寄存器最多(1)ARM微处理器支持7种运行模式,分别为:用户模式(usr):ARM处理器正常的程序执行状态。
arm的知识点总结
arm的知识点总结ARM处理器架构的特点有很多,包括:1. 精简指令集:ARM处理器使用精简的指令集,使其在相同的时钟周期内执行更多的指令。
这有助于提高处理器性能和效率。
2. 低功耗设计:ARM处理器具有低功耗设计,使其在电池供电的移动设备中表现出色。
它在相同性能水平下消耗的能量更少,可延长设备的续航时间。
3. 易扩展性:ARM架构具有很强的可扩展性,可以从简单的嵌入式系统到复杂的服务器系统等不同领域应用。
4. 多样化产品线:ARM公司提供多种不同的处理器核心,包括Cortex-A、Cortex-R和Cortex-M系列,能够满足不同应用领域的需求。
5. 兼容性:ARM架构保持了向后兼容性,旧版本的软件可以在新版本的处理器上运行,这使得升级系统更加容易。
ARM处理器的应用领域非常广泛,主要包括以下几个方面:1. 移动设备:包括智能手机、平板电脑、便携式游戏机等。
ARM处理器在移动设备的低功耗和高性能需求下表现优异。
2. 智能家居:包括智能音箱、智能家电、智能监控等。
ARM处理器在小型嵌入式设备中的低功耗和高性能要求下发挥作用。
3. 工业控制:包括自动化生产线、机器人控制、传感器网络等。
ARM处理器在工业环境下的可靠性和低功耗表现得较好。
4. 汽车电子:包括车载娱乐系统、车载导航系统、车载通信系统等。
ARM处理器在汽车电子设备中的高性能和低功耗要求下表现出色。
5. 服务器与数据中心:ARM处理器在云计算、大数据分析等方面逐渐发展起来,其低功耗和高核心密度使其成为一种有潜力的替代方案。
在ARM处理器架构中,最常见的是Cortex系列处理器核心。
Cortex系列核心包括Cortex-A、Cortex-R和Cortex-M,它们分别面向不同的应用领域:1. Cortex-A系列:面向高性能应用,如智能手机、平板电脑、智能电视等。
它具有复杂的流水线设计和乱序执行功能,能够提供出色的性能。
2. Cortex-R系列:面向实时应用,如汽车电子系统、工业控制系统、网络设备等。
ARM 基础知识
ARM 课程考试相关知识点主要:●嵌入式系统的五个特性包括:专用性,可剪裁性,可靠性,低功耗性和实时性。
●嵌入式系统的特点:专用性强,可剪裁性好,实时性和可靠性好,功耗低●嵌入式操作系统的特点:微型化,可裁剪性,实时性,高可靠性,易移植性●嵌入式系统设计过程的主要步骤(5个):⏹1、系统需求分析⏹2、体系结构设计⏹3、硬件/软件设计⏹4、系统集成⏹5、系统测试●ARM处理器的五个系列:(体系架构是否是冯诺依曼)ARM7和ARM9的体系架构?⏹ARM7(冯诺依曼结构)⏹ARM9(哈佛体系结构)⏹ARM9E(哈佛体系结构)⏹ARM10E⏹SecurCore冯诺依曼结构指数据空间和地址空间不分开;哈佛结构数据空间和地址空间是分开的●操作系统指令执行的三个阶段⏹1、获得指令⏹2、分析指令⏹3、执行指令●代码密度:就是处理完成一个完整的操作,需要的指令条数,按字节计算越少效率越高●MMU(Memory Management Unit):存储器管理单元。
P176存储器管理单元MMU主要完成以下工作:虚拟存储空间到物理存储空间的映射;存储器访问权限的控制;设置虚拟存储空间的缓冲的特征。
MMU可以将某些地址变换条目锁定在快表【TLB(translation lookasidebuffer)】中,从而使得进行与该地址变换条目相关的地址变换速度保持很快。
MMU可以将整个存储空间分为最多16个域。
功能:将虚拟地址映射为物理地址;提供硬件机制的内存访问授权。
●ARM的寻址方式⏹立即数寻址⏹寄存器寻址⏹寄存器移位寻址⏹寄存器间接寻址⏹多寄存器寻址⏹基址变址寻址⏹相对寻址⏹堆栈寻址⏹块拷贝寻址●嵌入式系统/操作系统?主要由哪几部分组成嵌入式系统的组成部分:⏹嵌入式处理器(ARM,MIPS,PowerPC)⏹外围设备(存储器接口)⏹嵌入式操作系统⏹应用软件●ARM的最小系统,画出框图,并说明。
1. ARM芯片。
2. 电源电路、复位电路,晶振电路。
ARM的学习
第一节、ARM的介绍一、ARM是一种高级的单片机,以小端模式存储,ARM7、ARM9是基于V4架构,cortex-M0可以替换51单片机,cortex-M3可以替换ARM7。
2440的内核是920T(T 表示是支持Thumb指令集)二、Powerpc :视频处理器能力强。
三、Ext_RAM.ini脚本四、文件作用:初始化cpu相关寄存器,确定程序下载路径。
五、RuninRAM.sct做三件事:(1)、确定程序存放、运行、地址。
(2)、确定内外部内存地址。
(3)、确定程序运行状态,仿真、norflash、nandflash等。
六、Cortex-R系列是针对实时系统设计的。
Cortex-M是向下扩展的,Cortex-A是向上扩展的(高端产品)。
Cortex-M3是一个32位的核,采用了新型的单线调试技术,它不能执行ARM指令集。
七、ARM指令是32位的,共有37个寄存器,分为若干个组,其中31个通用寄存器,6个状态寄存器。
ARM有7种不同的处理模式,在每一种处理模式下均有一组相应的寄存器与之对应——也就是在任意一种处理模式下可以访问15个通用寄存器(R0~R14)、(1~2)个状态寄存器和程序计数器。
Thumb是16位长度。
八、建立一个ARMkeil工程的步棸:1):新建文件夹;2):新建工程,保存在所建文件夹里,选择S3C2440A,3):文件夹中建src、obj、list文件夹。
4):新建文件,.c文件保存在src中。
5):项目窗口,分别设置组名,添加C文件。
6):把ext_RAM.ini和runinRAM、sct两个文件拷到工程所在文件夹,7):选择生成HEX文件、分别设置obj、list 目录;8):在linker把runinRAM.sct分散加载文件(分配内存大小)加载进去。
9):Debug选择硬件调试、jlink。
加载ext_RAM.ini文件。
10):utilities中选择jlink,把后面的勾去掉(不然调试不过)。
arm硬件设计知识点
arm硬件设计知识点1. 引言ARM(Advanced RISC Machine)是一种基于精简指令集计算机(RISC)架构的微处理器系列,广泛应用于移动设备、嵌入式系统和消费电子产品等领域。
本文将介绍ARM硬件设计的重要知识点。
2. ARM架构ARM架构采用了简化的指令集和流水线执行的设计,具有低功耗、高性能和高度可定制化的特性。
主要包括ARMv6、ARMv7和ARMv8三个主要版本。
其中,ARMv8引入了64位指令集,并提供更高的性能和更低的功耗。
3. ARM核心ARM核心是ARM处理器的主要组成部分,主要由处理器指令集、寄存器文件、运算单元和控制单元等组件构成。
ARM核心的设计决定了处理器的性能和能力。
常见的ARM核心包括Cortex-A、Cortex-R和Cortex-M系列,分别用于高性能处理、实时处理和微控制器等不同应用场景。
4. 访存结构ARM架构采用了Harvard结构,即指令存储器和数据存储器分开存储。
这种结构使得ARM处理器可以同时进行指令Fetch和数据操作,提高了整体性能。
ARM处理器的存储器层次结构包括高速缓存、主存和外设等。
5. 总线和接口ARM处理器通过总线和外设进行通信。
总线分为数据总线、地址总线和控制总线。
数据总线用于数据传输,地址总线用于寻址,控制总线用于数据流控制。
ARM处理器通常支持多种外设接口,如I2C、SPI和UART等。
6. 中断与异常ARM处理器支持中断和异常处理机制,用于处理外部事件和内部错误。
中断是外部事件的响应,而异常是内部错误或异常条件的处理。
ARM处理器提供了中断控制器和异常向量表等硬件机制,以便快速处理中断和异常。
7. 时钟和电源管理ARM处理器需要经常调整时钟和电源状态,以平衡性能和功耗。
时钟管理包括时钟源选择、时钟分频和时钟门控等。
电源管理包括睡眠模式和唤醒机制等。
合理的时钟和电源管理可以显著提高系统性能和节约功耗。
8. 流水线和超标量技术为了提高指令执行效率,ARM处理器采用了流水线和超标量技术。
初学arm知识总结
嵌入式平板电脑mips方案和X86方案的比较
般采用退出商业领域的PC机器来应用于不太复杂的工业应用,机器的寿命会受到一定程度的影响。而MISP方案则是专门为工业控制实际应用量身定做的,更加专业实用。
WINCE6.0系统下全面测评S3C6410处理器性能
WINCE6.0系统下全面测评S3C6410处理器性能
WINCE6.0系统下全面测评S3C6410处理器性能
WINCE6.0系统下全面测评S3C6410处理器性能
WINCE6.0系统下全面测评S3C6410处理器性能
WINCE6.0系统下全面测评S3C6410处理器性能
WINCE6.0系统下全面测评S3C6410处理器性能
WINCE6.0系统下全面测评S3C6410处理器性能
2010—S3C6410的疯狂,主频的极限在哪里?
2008年下半年,三星公司推出S3C6410X芯片,大部分的生产厂家都用的ARM1176JZF-S内核,到现在为止很多都推出了S3C6410芯片的开发板。前面的在完善和创新、后面的加紧脚步在追赶,市场一片火热!
01
009年来看,S3C6410慢慢的走出来。相对ARM9而言,在视频编解码、处理速度、2D/3D的加速等方面有很大的提升。在价值的提升同时,成本也在提升,那么价格同样会比ARM9高出不少。
ARM体系的各种异常的分析
中止异常 中止表示当前存储器的访问不能完成,是由外部的ABOUT输入信号引起的异常,分为两类: 预取指中止:由程序存储器引起的中止异常; 数据中止:由数据存储器引起的中止异常;
SUBS PC,R14_abt,#4 ;PC=R14 - 4
04
当程序发生预取指中止时,ARM内核将预取的指令标记为无效,但在指令到达流水线的执行阶段时才进入异常,因此当前PC的值为当前执行指令的地址+8(即正确的中断返回地址+4),因此R14保存的值是 中断返回地址+4 ,所以当修复了产生中止的原因后,不管在什么操作状态,处理器都会执行以下指令
ARM快速入门教程
ARM快速入门教程ARM(Advanced RISC Machines)是一种基于精简指令集计算机(RISC)架构的处理器系列,被广泛应用于嵌入式系统、移动设备和消费类电子产品中。
本文将为您提供一个简单的ARM快速入门教程,帮助您了解ARM的基本概念和使用方法。
第一部分:ARM概述(200字)第二部分:ARM架构(300字)ARM架构采用RISC设计思想,通过简化指令集和优化硬件设计来提高性能和效率。
ARM处理器具有三个基本特征:简洁的指令集、统一的寄存器文件和可变长度的指令长度。
ARM指令集包括数据传输指令(如加载和存储指令)、算术指令(如加法和乘法指令)、控制指令(如分支和跳转指令)等。
这些指令被编码为16位或32位二进制代码,以提高指令执行效率。
ARM处理器的寄存器文件使用统一的32位寄存器,这意味着所有的寄存器都可以用于存储数据或表示内存地址。
该设计简化了指令集编码,并提高了程序的灵活性和扩展性。
与其他处理器架构相比,ARM指令的长度是可变的。
ARM处理器支持16位和32位的指令,根据实际需要进行选择。
这种设计也有利于降低功耗和提高代码密度。
第三部分:ARM开发环境(400字)要开始使用ARM进行开发,您需要一个ARM开发板、一台计算机和适当的开发环境。
ARM开发板是一种嵌入式系统,其中包含一块ARM处理器和各种外围设备(如闪存、RAM、串口等)。
您可以使用开发板来加载和运行您的ARM代码,并与外部设备进行交互。
第四部分:ARM编程(300字)ARM编程可以使用汇编语言或高级语言进行。
汇编语言是一种低级编程语言,直接对应于CPU的指令集。
使用汇编语言编程可以更加深入地了解和控制ARM处理器的操作。
高级语言(如C/C++)编程可以提高开发效率和代码可读性。
您可以使用C/C++编程语言编写ARM应用程序,然后通过交叉编译器将其编译成ARM指令。
在ARM编程中,您可以使用各种库函数和驱动程序来访问外部设备(如闪存、串口、显示屏等)。
ARM基础知识
复习问题提纲第一讲基础知识1.什么是嵌入式系统(IEEE定义和国内普遍认同(de)定义分别是什么)IEEE(国际电气和电子工程师协会)对嵌入式系统(de)定义:“用于控制、监视或者辅助操作机器和设备(de)装置”国内普遍认同(de)嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求(de)专用计算机系统.更简单(de)讲:就是嵌入到对象体中(de)专用计算机系统.三要素:嵌入、专用、计算机嵌入性:嵌入到对象体系中,有对象环境要求专用性:软、硬件按对象要求裁减计算机:实现对象(de)智能化功能2.嵌入式系统(de)特点1、专用软、硬件可剪裁可配置;2、低功耗、高可靠性、高稳定性;3、软件代码短小精悍;4、代码可固化;5、实时性;6、弱交互性7、嵌入式系统软件开发通常需要专门(de)开发工具和开发环境;8、要求开发、设计人员有较高(de)技能.3.嵌入式系统(de)组成嵌入式系统总体上是由硬件和软件组成(de),硬件是其基础,软件是其核心和灵魂.第二讲ARM技术概述(以下指(de)arm处理器都是指ARM920T)1.arm处理器是32位架构,它支持(de)基本数据类有哪3个(提示:字节、、)(1)Byte:字节,8bit (2)Halfword:半字,16bit(半字必须与2字节边界对齐)(3)word:字,32bit(字必须与4字节边界对齐)2.什么是存储大小端模式所谓(de)大端模式,是指高位字节存放在低地址单元中,而低位字节存放在高地址单元中.所谓(de)小端模式,是指低位字节存放在低地址单元中,而高位字节存放在高地址单元中.3.arm 处理器有哪7种工作模式,每种工作模式下通用工作寄存器有多少个、作用是什么、各个模式间哪些模式下有自己专有(de)寄存器,哪些寄存器是各个模式彼此公用(de),哪些寄存器一般有固定(de)用途是什么哪两种模式寄存器完全相同,哪种模式它(de)专有寄存器最多(1)ARM微处理器支持7种运行模式,分别为:用户模式(usr):ARM处理器正常(de)程序执行状态.(大部分任务执行时)快速中断模式(fiq):用于高速数据传输或通道处理.(当高优先级中断产生时)外部中断模式(irq):用于通用(de)中断处理.(当低优先级中断产生时)特权模式(svc):操作系统使用(de)保护模式.(当复位或软中断指令执行时)数据访问中止模式(abt):可用于虚拟存储及存储保护. (当存取异常时)未定义指令中止模式(und):可用于支持硬件协处理器(de)软件仿真.(当未定义(de)指令执行时)系统模式(sys):运行具有特权(de)操作系统任务.(和User模式相同寄存器集(de)模式)(2)每种工作模式下通用工作寄存器有:(共15个)(ARM处理器共有37个寄存器,被分为若干个组(BANK),这些寄存器包括30个通用寄存器和6个状态寄存器,1个程序计数器(PC指针)及所有寄存器(均为32位). 未分组寄存器:包括R0~R7. 分组寄存器:包括R8~R14(3) 未分组寄存器(R0-R7)指(de)都是同一个物理寄存器,但是在异常中断切换时,由于使用相同(de)物理寄存器,所以和容易使寄存器中(de)数据被破坏. 对于分组寄存器(R8~R14),他们每一次所访问(de)物理寄存器与处理器当前(de)运行模式有关,除FIQ模式外其他寄存器是公用(de)(R0-R12). 分组寄存器R13和R14来说,每个寄存器对应6个不同(de)物理寄存器.其中(de)一个是用户模式和系统模式公用(de),而另外5个分别用于5种异常模式. R15用作程序计数器(PC),用来保存读取指令(de)地址.(4)R13,R14,CPSR是各个模式专有(de),FIQ模式除此之外还有R8-R12.(5)R0~R7是所用模式公用(de);R8~R12对于快速中断FIQ模式之外(de)其他模式都是公用(de),而FIQ 模式另外有一套自己寄存器R8_fiq~R12_fiq,FIQ处理程序在保存和恢复现场时可以少保存和恢复几个寄存器(R8-R12),从而提高中断处理迅速(6)R13通常用作栈指针寄存器(SP),每一种模式有自己(de)R13,所以允许每一种异常都有自己(de)栈指针.R14用作连接或返回地址寄存器(LR),每一种模式有自己(de) R14.R15用作程序计数器(PC),用来保存读取指令(de)地址.程序状态寄存器(CPSR)存储ARM微处理器当前(de)状态和模式标志.备份状态寄存器(SPSR)异常模式下(de)CPSR(de)备份寄存器,当一个异常发生时保存当前(de)CPSR值.结合连接寄存器可使处理器返回先前(de)状态.(7)用户模式(user)和系统模式(sys)寄存器完全相同且这两种模式不能由异常进入(8)快速中断(FIQ)模式最多4.arm处理器有哪2种工作状态,上电复位后进入(de)是什么状态(1)第一种为ARM状态,此时处理器执行32位(de)字对齐(de)ARM指令,对应ARM指令集;第二种为Thumb状态,此时处理器执行16位(de)、半字对齐(de)Thumb指令,对应Thumb指令集.(2)上电复位后,处于ARM状态5.理解流水线是如何提高处理器处理速度(de),如假设某嵌入式处理器有3级流水线,每级流水线所耗时间均为为2ms,则执行25条指令需要耗费时间流水线(pipeline)技术是指在程序执行时多条指令重叠进行操作(de)一种准实现技术T=执行一条指令(de)时间+(指令(de)条数—1)流水线周期 6+(25-1)2=546.充分掌握arm处理器CPSR寄存器每一位(de)作用.寄存器R16用作程序状态寄存器CPSR(Current Program Status Register,当前程序状态寄存器).在所有处理器模式下都可以访问CPSR.CPSR包含条件码标志、中断禁止位、当前处理器模式以及其他状态和控制信息.每种异常模式都有一个程序状态保存寄存器SPSR(Saved Program Status Register).当异常出现SPSR用于保留CPSR(de)状态.CPSR和SPSR(de)格式如下:(1)条件码标志N、Z、C、V(Negative、Zero、Carry、oVerflow)均为条件码标志位(Condition Code Flags),它们(de)内容可被算术或逻辑运算(de)结果所改变,并且可以决定某条指令是否被执行.CPSR中(de)条件码标志可由大多数指令检测以决定指令是否执行.在ARM状态下,绝大多数(de)指令都是有条件执行(de).在Thumb状态下,仅有分支指令是有条件执行(de).通常条件码标志通过执行比较指令(CMN、CMP、TEQ、TST)、一些算术运算、逻辑运算和传送指令进行修改.条件码标志(de)通常含义如下:N:如果结果是带符号二进制补码,那么,若结果为负数,则N=1;若结果为正数或0,则N=0.Z:若指令(de)结果为0,则置1(通常表示比较(de)结果为“相等”),否则置0.C:可用如下4种方法之一设置:加法(包括比较指令CMN).若加法产生进位(即无符号溢出),则C置1;否则置0.减法(包括比较指令CMP).若减法产生借位(即无符号溢出),则C置0;否则置1.对于结合移位操作(de)非加法/减法指令,C置为移出值(de)最后1位.对于其他非加法/减法指令,C通常不改变.V:可用如下两种方法设置,即对于加法或减法指令,当发生带符号溢出时,V置1,认为操作数和结果是补码形式(de)带符号整数.对于非加法/减法指令,V通常不改变.Q标志位:在带DSP指令扩展(de)ARM v5及更高版,bit[27]被指定用于指示增强(de)DAP指令是否发生了溢出,因此被称为Q标志位.同样,在SPSR中bit[27]也被称为Q标志位,用于在异常中断发生时保存和恢复CPSR中(de)Q 标志位(3)控制位程序状态寄存器PSR(Program Status Register)(de)最低8位I、F、T和M[4:0]用作控制位.当异常出现时改变控制位.处理器在特权模式下时也可由软件改变.a.中断禁止位I:置1,则禁止IRQ中断;F:置1,则禁止FIQ中断.b.T位T=0 指示ARM执行(即正在执行32位(de)ARM指令);T=1 指示Thumb执行(即正在执行16位(de)Thumb指令).c.模式控制位(4)其他位程序状态寄存器(de)其他位保留,用做以后(de)扩展.7.arm处理器有哪两个中断快速中断(FIQ)和标准中断(IRQ)8.掌握s3c2410X单片机他(de)内核是什么处理器,该单片机有哪两类总线,两类总线分别挂接了哪些接口控制器(1)S3c2410X单片机(de)内核ARM920T处理器;S3C2410处理器支持大/小端模式存储字数据,a)其寻址空间可达1GB,b)对于外部I/O设备(de)数据宽度c)可以是8/16/32位,d)所有(de)存储器Bank(共有8个)都具有可编程(de)操作周期,e)而且支持各种ROM引导方式(NOR/Nand Flash、EEPROM等)(2)两类总线分别为:AHB和APB;(3)AHB挂接了LCD、USB主控制、NAND Flash、中断控制、总线控制、内存APB挂接了串口、usb从设备、看门狗定时器、总线控制、SPI、I2C、I2S、GPIO、RTC、ADC、PWM定时器第三讲ARM指令系统1.掌握ARM处理器指令(de)几种寻址方式和分类,哪两类指令是专门用来访问内存(de) 哪类指令或伪指令会导致流水线情况(提示:那些会使PC值发生跳变(de)指令)(1)指令有七种寻址方式:1、立即寻址:ADD R0,R0,1 ;R0←R0+1MOV R0,0xff00 ;R0←0xff00在以上两条指令中,第二个源操作数即为立即数,要求以“”为前缀,对于以十六进制表示(de)立即数,还要求在“”后加上“0x”.2、寄存器寻址:操作数放在寄存器当中,在指令当中只需要给出存放操作数寄存器(de)名字就可以了,这也是一种执行效率较高寻址方式.举例:MOV R0,R1 ; R0←R1SUB R0,R1,R2 ;R0←R0-R23、寄存器间接寻址:寄存器间接寻址就是以寄存器中(de)值作为操作数(de)地址,而操作数本身存放在存储器中.ADD R0,R1,[R2] ;R0←R1+[R2]在第一条指令中,以寄存器R2(de)值作为操作数(de)地址,在存储器中取得一个操作数后与R1相加,结果存入寄存器R0中.LDR R0,[R1] ; R0←[R1]第二条指令将以R1(de)值为地址(de)存储器中(de)数据传送到R0中.4、基址变址寻址:基址变址寻址就是将寄存器(该寄存器一般称作基址寄存器)(de)内容与指令中给出(de)地址偏移量相加,从而得到一个操作数(de)有效地址.变址寻址方式常用于访问某基地址附近(de)地址单元.LDR R0,[R1,4] ;R0←[R1+4]在第一条指令中,将寄存器R1(de)内容加上4形成操作数(de)有效地址,从而取得操作数存入寄存器R0中.5、多寄存器寻址:6、相对寻址:7、堆栈寻址:0指令有六类:1、跳转指令 2、数据处理指令 3、程序状态寄存器(PSR)传输指令 4、加载/存储(load/store)指令 5、协处理指令 6、异常中断产生指令根据使用(de)指令类型不同,指令(de)寻址方式分为数据处理指令寻址方式和内存访问指令寻址方式. (2)加载/存储(load/store)指令和跳转指令访问内存(de)指令:str和ldr(3)a、互锁指令:在典型(de)程序处理过程中,经常会遇到这样(de)情形,即一条指令(de)结果被用作下一条指令(de)操作数,如:有如下指令序列:LDR R0,[R0,0]ADD R0,R0,R1 ;在5级流水线上产生互锁从例子中可以看出,流水线(de)操作产生中断,因为第1条指令(de)结果在第2条指令取数时还没有产生.第2条指令必须停止,直到结果产生为止.b、跳转指令:跳转指令也会破坏流水线(de)行为,因为后续指令(de)取指步骤受到跳转目标计算(de)影响,因而必须推迟.第四讲ARM程序设计语言1.掌握ARM一些常用伪指令(de)作用及含义如ldr r0,=label(含义)、entry、end、import、export、dcb 100等.ldr r0,=label:把lable(程序开始地址)写到r0寄存器中Entry:ENTRY 伪指令用于指定汇编程序(de)入口点.在一个完整(de)汇编程序中至少要有一个 ENTRY (也可以有多个,当有多个 ENTRY 时,程序(de)真正入口点由链接器指定),但在一个源文件里最多只能有一个 ENTRY (可以没有).End:作用:用于通知编译器已经到了源程序(de)结尾.含义:指定应用程序(de)结尾Import:伪指令用于通知编译器要使用(de)标号在其他(de)源文件中定义,但要在当前源文件中引用,而且无论当前源文件是否引用该标号,该标号均会被加入到当前源文件(de)符号表中.Export:用于在程序中声明一个全局(de)标号,该标号可在其他(de)文件中引用.Dcb 100: 用于分配一片连续(de)字节存储单元并用伪指令中指定(de)表达式初始化.2.掌握ATPCS规则,如汇编与C语言间参数是如何传递(de)(C语言函数(de)形参对应哪些通用寄存器、返回参数又对应哪些通用寄存器)1.子程序通过寄存器R0~R3来传递参数. 这时寄存器可以记作: A1~A4 , 被调用(de)子程序在返回前无需恢复寄存器R0~R3(de)内容.2.在子程序中,使用R4~R11来保存局部变量.这时寄存器R4~R11可以记作: V1~V8 .如果在子程序中使用到V1~V8(de)某些寄存器,子程序进入时必须保存这些寄存器(de)值,在返回前必须恢复这些寄存器(de)值,对于子程序中没有用到(de)寄存器则不必执行这些操作.在THUMB程序中,通常只能使用寄存器R4~R7来保存局部变量.3.寄存器R12用作子程序间scratch寄存器,记作ip; 在子程序(de)连接代码段中经常会有这种使用规则.4. 寄存器R13用作数据栈指针,记做SP,在子程序中寄存器R13不能用做其他用途. 寄存器SP在进入子程序时(de)值和退出子程序时(de)值必须相等.5. 寄存器R14用作连接寄存器,记作lr ; 它用于保存子程序(de)返回地址,如果在子程序中保存了返回地址,则R14可用作其它(de)用途.6. 寄存器R15是程序计数器,记作PC ; 它不能用作其他用途.7. ATPCS中(de)各寄存器在ARM编译器和汇编器中都是预定义(de).3.理解加载地址和运行地址(de)含义,以及在程序加载时和运行时分别分成了哪几个段(提示RO子读、RW可读可写、ZI存储)第5讲GPIO编程1.掌握S3C2410 GPIO端口(de)设置方法,如现在需要把通用端口F组(de)第2管脚口设置为输出且输出低电平(即0),现在要其F组其他管脚口保持不变,应如何设置他(de)相关寄存器rGPFCON = (rGPFCON&0xff)|(0x04);rGPFDAT=(rGPFDAT);2.掌握实验板4个LED灯(de)编程控制i.;保留未使用(de)异常向量ii. b IRQHandleriii. b FIQHandler2.掌握S3C2410 中断控制器工作原理,其有多少个一级中断源和二级中断源,中断控制器(de)相关寄存器(de)作用,在一级中断控制寄存器中我们是通过哪个寄存器来识别是哪个一级中断源触发了中断服务(提示:中断号)当中断服务结束,我们是如何来清除中断请求信号a)s3c2410有56个外部中断源头,这56个外部中断源头是通过说s3c2410内部(de)中断控制器来管理(de),中断控制器(de)主要工作就是管理外部中断源:产生中断信号,保存在中断源寄存器中,打开中断屏蔽位,MODE选IRQ或FIQ(默认为IRQ),再排中断优先级后送到处理器,向cpu发出中断请求.b)c)SRCPND寄存器当中断源发出中断请求是,源挂起寄存器(SRCPND)(de)相应位就会置1.INTMOD(中断模式寄存器)当中断源(de)模式位置1时,用FIQ模式处理;置0时,用IRQ处理.INTMSK(中断屏蔽寄存器)当中断源(de)屏蔽位置为1时,CUP不响应中断源(de)中断请求,置0时,响应.INTPND(中断挂起寄存器)当中断请求被响应时,相应位置1.INTOFFSET(IRQ偏移寄存器)给出INTPND寄存器中那个是IRQ模式(de)中断请求.EXTINTn(外部中断控制寄存器)有24个外部中断有几种中断触发方式由该寄存器设置.EINTMASK(外部中断屏蔽寄存器)[23:4]分别对应外部中断23~4.等于1,对应(de)中断被屏蔽,反之, 允许.EINTPND(外部中断挂起寄存器)前四位保留EINT 0-3对应(de)挂起位在寄存器中,4—23位对应着一个中断源.请求响应时,响应位置1.在中断服务子程序中判断EINPND来判断哪个中断提起申请.d)在一级中断控制寄存器中我们是通过INTOFFSET寄存器来识别是哪个一级中断源触发了中断服务.e)一级中断源(de)中断清除,需要对INTPND、SRCPND要写1清03.学会使用外部中断+扫描法来实现实验板上矩阵键盘(de)识别第8讲定时器1.RTC 时钟信号(de)来源如何设置时间(如设置秒钟为24秒,你如何给它相应寄存器赋值)a)时钟信号(de)来源是:外部晶振(依靠一个外部(de)(de)石英晶体,产生周期性(de)脉冲信号.每一个信号到来时,计数器就加1,通过这种方式,完成计时功能. )b)rRTCCON |= 0x01; //使能RTC控制,用来设置时间rBCDSEC = 0x24;rRTCCON |= 0x00;2.RTC 时间节拍(de)周期如何设置a) Period=(n+1)/128 ;以秒作为单位式中:n为节拍时间计数值,范围为1~127.3.掌握看门狗定时器(de)工作原理及其相关寄存器(de)作用、看门狗增强系统稳定性(de)原理又是什么S3C2410 ARM9(de)看门狗主要由五部分构成:时钟、看门狗计时器、看门狗数据寄存器、复位信号发生器、控制逻辑等.a)看门狗定时器(de)工作原理:b)Watchdog根据PCLK,Prescaler Value,Clock Select会产生一个watchdog自己(de)工作周期,我们把这个工作周期记为t_watchdog(),watchdog在一个 t_watchdog周期结束时会产生一个记数递减信号,每当这个信号产生时,WTCNT中(de)值便减1,若在WTCNT递减为0(Timer Out)(de)时候软件层还没有重新往WTCNT中写入数值(这个行为便是我上文提到(de)喂狗),则watchdog触发Reset Signal,系统重起.c)相关寄存器(de)作用是:i.WTCON:watchdog控制寄存器(是否启用看门狗定时器、4个分频比(de)选择、是否允许中断产生、是否允许复位操作)ii.WTDAT:watchdog数据寄存器(用于指定超时时间)iii.WTCNT:watchdog记数寄存器(通过WTDAT得到一个值,watchdog在每个t_watchdog周期里向WTCNT发送一个递减信号,当WTCNT(de)值递减到0(de)时候则发生time out,重而重起系统. 用来设置多少个时钟周期 (t_watchdog) 总(de)定时长度T=WTCNTt_watchdog)d)看门狗增强系统稳定性(de)原理是:设一系统程序完整运行一周期(de)时间是Tp,看门狗(de)定时周期为Ti,要求Ti>Tp. 在程序运行一周期后,修改定时器(de)计数值,只要程序正常运行,定时器就不会溢出. 若由于干扰等原因使系统不能在Tp 时刻修改定时器(de)计数值,定时器将在Ti 时刻溢出,引发系统复位,使系统得以重新运行,从而起到监控作用.4.看门狗定时器溢出会可能产生哪两路输出如何设置定时器定时器初值(如PCLK时钟频率为60MHz,看门狗控制寄存器中(de)预分频因子设为99、再分频因子设为32,若要产生秒钟(de)看门狗定时中断,则WTDAT中(de)计数初值为)a)产生中断和复位信号两大功能是:定时功能和复位功能b)T_watchdog=1/(PCLK/Precaler value+1)/Division_factor5.PWM 定时器(de)工作原理,其相关寄存器(de)作用(如用哪个寄存器设置计数器和比较器初值,计数器寄存器能直接读写吗如果不能我么又是如何来读(de) ),以及产生PWM信号占空比是由哪两个寄存器来确定(de) 如何编程产生不同频率和占空比(de)PWM信号,定时器(de)输出脉冲(PWM)(de)周期如何计算,脉宽如何计算a)计数器寄存器不能直接读写,因为计数器TCNT没有地址,不能对其操作.定时器值可以被写入定时器计数缓冲寄存器(TCNTBn),当TCNTn(de)值等于0时,自动重载操作把TCNTBn(de)值装入TCNTn,只有当自动重载功能被使能并且TCNTn(de)值等于0(de)时候才会重载.b)PWM信号占空比是由TCNTn和TCMPn两个寄存器来确定(de)c)rTCFG0 = 158<<0; //低八位为定时器0和1(de)预分频值为158rTCFG1 = 3<<0; //选择定时器0为16分频rTCNTB0 = 100; //向计数缓冲器写入100rTCMPB0 = 50; //向比较缓冲器写入50rTCON = 1<<1;//手动更新rTCON = (1<<3)|(1<<0);//自动更新,并启动e)6.s3c2410(de)PWM定时器有几个,哪几个能输出PWM信号,哪个具有死区动能PWM定时器有5个{(定时器0、1、2、3、4)定时器4仅供内部定时而没有输出引脚}定时器0、1、2、3能输出PWM信号定时器0具有死区动能(死区就是在上半桥关断后,延迟一段时间再打开下半桥或在下半桥关断后,延迟一段时间再打开上半桥,从而避免功率元件烧毁.这段延迟时间就是死区.)第9讲存储控制器1.s3c2410(de)bootloader(即启动代码)(de)分成哪几个步骤以及各步骤完成哪些主要任设置中断向量表:系统运行有异常中断发生时,ARM处理器便把PC指针强制置为向量表中对应中断类型(de)地址值,从而跳到存储器其他位置(de)相应标号处执行.初始化看门狗和外围电路:关闭看门狗设置堆栈指针:ARM有7种工作模式,而每一种模式所用堆栈是不同(de),所以初始化堆栈必须初始化这7种模式下(de)堆栈.初始化系统时钟:改变CPU总线模式(快速->异步)初始化存储控制器:设置存储器控制寄存器(de)值初始化数据区:内核映像开始总是在Flash里面(de),其中RO部分可以在Flash中执行,也可以转移到RAM中执行,而RW和ZI必须转移到RAM中执行.数据区初始化就是完成必要(de)部分从Flash到RAM(de)数据传输和内容清零.跳转到C程序(de)Main()函数:是改变处理器模式,转入到C程序(de)人口操作.2.s3c2410存储空间有多大,分成了几个组,每组空间有多大,最大能挂接多大SDRAM存储空间有1GB;分成了8组;每组空间128M;最大能挂接256M(de)SDRAM,就是bank6和bank7.。
ARM知识点讲解.
ARM知识点讲解.1、ARM处理器工作模式有几种?各种工作模式下分别有什么特点?答:ARM 处理器有7种工作模式,这7种模式及其特点是:快速中断模式(fiq)支持高速数据传输或通道处理,外部中断fiq信号有效且CPSR的F=0进入。
中断模式(irq)用于通用中断处理,外部中断irq信号有效CPSR的I=0进入。
管理员模式(svc)- 操作系统的保护模式,复位、软件中断进入。
主要用于SWI(软件中断)和OS(操作系统)。
这个模式有额外的特权,允许你进一步控制计算机。
中止模式(abt)- 支持虚拟内存和/或内存保护预取指令中止/数据中止进入未定义模式(und)- 支持硬件协处理器的软件仿真(浮点、向量运算)未定义指令进入系统模式(sys)- 支持操作系统的特殊用户模式(运行操作系统任务)用户模式(usr)正常的程序执行模式,此模式应用程序不能访问受操作系统保护的资源,不能改变模式,除非异常发生。
2、ARM处理器总共有多少个寄存器,这些寄存器按其在用户编程中的功能是如何划分的?这些寄存器在使用中各有何特殊之处?答:ARM微处理器共有37个32位寄存器,其中31个为通用寄存器,6个为状态寄存器。
31个通用寄存器根据其编程特点可分为如下几种类型:1、不分组寄存器R0-R7 为所有模式共享2、分组寄存器R8-R12R8_fiq-R12_fiq:FIQ模式下的寄存器R8-R12:其它模式共享3、分组寄存器R13-R14分为6组,用户、系统一组,其他每种模式一组。
R13_通常用作堆栈指针SP,R14_通常用作子程序链接寄存器,当进入子程序时,常用来保存PC的返回值其中,mode为以下几种模式之一:usr、fiq、irq、svc、abt、und。
4、程序寄存器R15(PC)所有模式共享6个状态寄存器:一个CPSR当前程序状态寄存器,保存当前程序状态。
五个程序状态备份寄存器SPSR(svc,abt,und,irq,frq),只有在异常模式下,才能被访问;各异常模式都拥有属于自己的SPSR,当发生异常时,SPSR用来保存CPSR的值,从异常退出时则可由SPSR 来恢复CPSR。
ARM入门中文资料
入门中文资料默认分类ARM 体系结构Q: ARM 是什么?A: ARM(Advanced RISC Machines),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。
1991年ARM公司成立于英国剑桥,主要出售芯片设计技术的授权。
目前,采用ARM技术知识产权(IP)核的微处理器,即我们通常所说的ARM微处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于ARM技术的微处理器应用约占据了32位RISC微处理器75%以上的市场份额,ARM技术正在逐步渗入到我们生活的各个方面。
ARM公司是专门从事基于RISC技术芯片设计开发的公司,作为知识产权供应商,本身不直接从事芯片生产,靠转让设计许可由合作公司生产各具特色的芯片,世界各大半导体生产商从ARM公司购买其设计的ARM微处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的ARM微处理器芯片进入市场。
目前,全世界有几十家大的半导体公司都使用ARM公司的授权,因此既使得ARM技术获得更多的第三方工具、制造、软件的支持,又使整个系统成本降低,使产品更容易进入市场被消费者所接受,更具有竞争力。
Q:ARM微处理器的特点A: 1、体积小、低功耗、低成本、高性能;2、支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件;3、大量使用寄存器,指令执行速度更快;4、大多数数据操作都在寄存器中完成;5、寻址方式灵活简单,执行效率高;6、指令长度固定;Q:ARM的RISC体系结构A:传统的CISC(Complex Instruction Set Computer,复杂指令集计算机)结构有其固有的缺点,即随着计算机技术的发展而不断引入新的复杂的指令集,为支持这些新增的指令,计算机的体系结构会越来越复杂,然而,在CISC指令集的各种指令中,其使用频率却相差悬殊,大约有20%的指令会被反复使用,占整个程序代码的80%。
ARM_汇编语言基础
ARM汇编语言一、ARM处理器工作模式一、ARM处理器工作模式CPU的模式可以简单的理解为当前CPU的工作状态,比如:当前操作系统正在执行用户程序,那么当前CPU工作在用户模式,这时网卡上有数据到达,产生中断信号,CPU自动切换到一般中断模式下处理网卡数据(普通应用程序没有权限直接访问硬件),处理完网卡数据,返回到用户模式下继续执行用户程序。
特权模式除用户模式外,其它模式均为特权模式(Privileged Modes)。
ARM内部寄存器和一些片内外设在硬件设计上只允许(或者可选为只允许)特权模式下访问。
此外,特权模式可以自由的切换处理器模式,而用户模式不能直接切换到别的模式。
异常模式特权模式中除系统(system)模式之外的其他5种模式又统称为异常模式。
它们除了可以通过在特权下的程序切换进入外,也可以由特定的异常进入。
比如硬件产生中断信号进入中断异常模式,读取没有权限数据进入中止异常模式,执行未定义指令时进入未定义指令中止异常模式。
其中管理模式也称为超级用户模式,是为操作系统提供软中断的特有模式,正是由于有了软中断,用户程序才可以通过系统调用切换到管理模式。
(1)用户模式:用户模式是用户程序的工作模式,它运行在操作系统的用户态,它没有权限去操作其它硬件资源,只能执行处理自己的数据,也不能切换到其它模式下,要想访问硬件资源或切换到其它模式只能通过软中断或产生异常。
(2)系统模式:系统模式是特权模式,不受用户模式的限制。
用户模式和系统模式共用一套寄存器,操作系统在该模式下可以方便的访问用户模式的寄存器,而且操作系统的一些特权任务可以使用这个模式访问一些受控的资源。
(3)一般中断模式:一般中断模式也叫普通中断模式,用于处理一般的中断请求,通常在硬件产生中断信号之后自动进入该模式,该模式为特权模式,可以自由访问系统硬件资源。
(4)快速中断模式:快速中断模式是相对一般中断模式而言的,它是用来处理对时间要求比较紧急的中断请求,主要用于高速数据传输及通道处理中。
arm汇编指令集汇编入门第一篇小白也能看懂
arm汇编指令集汇编入门第一篇小白也能看懂如今,计算机科学与技术领域发展迅猛,其中包括一门被广泛应用的指令集架构—— ARM(Advanced RISC Machines)汇编指令集。
本文将从小白角度出发,向读者介绍ARM汇编指令集的基本概念和入门知识。
1. ARM汇编简介ARM汇编指令集是一种低级程序设计语言,用于在ARM微处理器上进行编程。
它不同于高级语言如C++或Java,具有较为底层的特性。
掌握ARM汇编指令集可以让开发者更深入地理解计算机内部运行原理,并能进行更加灵活和高效的编程。
2. ARM寄存器ARM汇编指令集使用一组寄存器来存储和处理数据。
其中,常用的寄存器有13个通用寄存器(R0-R12)、程序计数器(PC)、堆栈指针(SP)和链接寄存器(LR),另外还有一些特殊用途的寄存器。
这些寄存器提供了一种基于寄存器的计算模型,使得ARM汇编具有高效处理数据的能力。
3. 指令格式ARM汇编指令集的指令格式一般包括操作码和操作数。
操作码表示具体的操作,如加法、乘法等,而操作数则指定操作所需的寄存器和立即数等。
4. 数据处理指令ARM汇编指令集提供了一系列的数据处理指令,用于对寄存器中的数据进行处理。
这些指令包括基本的算术运算、逻辑运算以及移位操作等,可以实现各种数据处理需求。
5. 分支指令分支指令是ARM汇编指令集中常用的一类指令,用于根据条件进行跳转。
跳转指令可以在程序执行过程中改变程序执行的顺序,实现条件判断和循环等功能。
6. 存储器访问指令存储器访问指令用于在ARM汇编中对内存进行读写操作。
通过这些指令,可以将数据从寄存器中存储到内存中,或者将内存中的数据加载到寄存器中进行处理。
7. 输入输出指令输入输出指令用于实现与外部设备的交互。
例如,通过输入指令可以从键盘或其他输入设备中获取用户输入的数据,而通过输出指令可以将数据输出到显示器或其他输出设备中。
8. 常用例程ARM汇编指令集中有一些常用的例程,可以用于处理常见的编程任务。
ARM开发基础知识
ARM开发基础知识ARM 开发基础知识1 ARM概述1.1 ARM简介ARM (Advanced RISCMachines)有三种含义,它是一个公司的名称,是一类微处理器的通称,还是一种技术的名称。
ARM公司是微处理器行业的一家知名企业,设计了大量高性能、廉价、低耗能的RISC (Reduced Instruction SetComputing,精简指令集计算机处理器)芯片,并开发了相关技术和软件。
ARM 处理器具有性能高、成本低和能耗低的特点,适用于嵌入式控制、消费/教育类多媒体、DSP 和移动式应用等领域。
ARM公司本身不生产芯片,靠转让设计许可,由合作伙伴公司来生产各具特色的芯片。
ARM这种商业模式的强大之处在于其价格合理,它在全世界范围的合作伙伴超过100 个,其中包括许多著名的半导体公司。
ARM公司专注于设计,设计的芯片内核耗电少,成本低,功能强,特有16/32位双指令集。
ARM已成为移动通信、手持计算和多媒体数字消费等嵌入式解决方案的RISC实际标准。
1.2 ARM微处理器特点采用RISC 架构的ARM 微处理器具有如下特点:1、体积小、低功耗、低成本、高性能;2、支持Thumb (16 位)/ARM(32 位)双指令集,能很好的兼容8 位/16 位器件;3、大量使用寄存器,指令执行速度更快;4、大多数数据操作都在寄存器中完成;5、寻址方式灵活简单,执行效率高;6、指令长度固定;1.3 ARM应用领域到目前为止,ARM 微处理器及技术的应用几乎已经深入到各个领域:1、工业控制领域:作为32 的RISC 架构,基于ARM核的微控制器芯片不但占据了高端微控制器市场的大部分市场份额,同时也逐渐向低端微控制器应用领域扩展,ARM 微控制器的低功耗、高性价比,向传统的8 位/16 位微控制器提出了挑战。
2、无线通讯领域:目前已有超过85%的无线通讯设备采用了ARM 技术,ARM 以其高性能和低成本,在该领域的地位日益巩固。
ARM基础 (1)
对于备份寄存器R13和R14来说,每个寄存器对应6个 不同的物理寄存器.以R13为例: 在系统模式和用户模式中使用的物理寄存器为R13 在管模式中使用的物理寄存器为R13_svc 在数据访问终止模式中使用的物理寄存器为R13_abt 在未定义指令终止模式中使用的物理寄存器为R13_und 在外部中断模式中使用的物理寄存器为R13_irq 在快速中断模式中使用的物理寄存器为R13_fiq
备份寄存器
备份寄存器包括R8-R14.对于每一个备份寄存器来说, 在不同的处理器模式下可能对应不同的物理寄存器.在 异常中断造成处理器模式切换时,由于不同的处理器模 式使用不同的物理寄存器,可以防止寄存器中数据被破 坏. 对于备份寄存器R8-R9来说,每个寄存器对应两个不同 的物理寄存器.以R8为例. 在快速中断模式中使用的物理寄存器为R8_fiq 在其它6种模式中使用的物理寄存器为R8
2. 处理器模式的切换
(1)处理器模式可以通过软件控制进行切换.也可以通 过异常中断的方式进行切换.
(2)大多数的应用程序运行在用户模式下.这时,应用 程序不能够访问一些受操作系统保护的系统资源.
(3)应用程序不能直接进行处理器模式的切换.当需要 进行处理器模式切换时,应用程序可以通过异常中断, 在异常中断的处理过程中实现处理器模式的切换.
ARM存储系统中引入了半字的概念,1个半字单元包含 2个字节单元. 地址为A的字单元包含4个字节单元A, A+1, A+2, A+3
如果字节单元按照高位到低位的顺序为A+3, A+2, A+1, A
称这种存储格式为小端存储格式. 如果字节单元按照高位到低位的顺序为A, A+1, A+2, A+3
深度了解ARM架构基础知识
深度了解ARM架构基础知识从单片机转到ARM,主要需要学习ARM的架构,ARM相比单片机多了一些外设和总线。
在仅仅是裸奔的情况下,如果熟悉了ARM架构,那么我认为使用任何ARM 架构的芯片和用单片机将没有区别。
ARM架构之所以更复杂,当然是为了跑更快以及更好地支持片上系统,所以在某种程度上来说对片上系统不是很了解的话那对于ARM架构的理解也不会那么深。
通用寄存器R13通常被用作栈指针,进入异常模式时,可以将需要使用的寄存器保存在R13所指的栈中;当退出异常吹程序时,将保存在R13所指的栈中的寄存器值弹出。
R14又被称为连接寄存器(LinkRegister,LR),即PC的返回值。
R15又被记作PC。
ARM指令是字对齐的,PC的值的第0位和第1位总为0。
也就是说是32位对齐。
就Cortex-M3来说,拥有R0-R15的寄存器组。
其中R13作为堆栈指针SP。
SP有两个,分别为R13(MSP)和R13(PSP)即主堆栈指针(MSP)和进程堆栈指针(PSP),但在同一时刻只能有一个可以看到,这也就是所谓的“banked”寄存器。
这些寄存器都是32位的。
ARM的各个模式ARM有以下7种模式:用户模式(User,usr) 正常程序执行的模式快速中断模式(FIQ,fiq) 用于高速数据传输和通道处理外部中断模式(IRQ,irq) 用于通常的中断处理特权模式(Supervisor,svc) 供操作系统使用的一种保护模式数据访问中止模式(Abort,abt) 用于虚拟存储及存储保护未定义指令中止模式(Undefined,und) 用于支持通过软件方针硬件的协处理器系统模式(System,sys) 用于运行特权级的操作系统任务。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
复习问题提纲第一讲基础知识1.什么是嵌入式系统(IEEE定义和国内普遍认同的定义分别是什么)?IEEE(国际电气和电子工程师协会)对嵌入式系统的定义:“用于控制、监视或者辅助操作机器和设备的装置”国内普遍认同的嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。
更简单的讲:就是嵌入到对象体中的专用计算机系统。
三要素:嵌入、专用、计算机嵌入性:嵌入到对象体系中,有对象环境要求专用性:软、硬件按对象要求裁减计算机:实现对象的智能化功能2.嵌入式系统的特点?1、专用软、硬件可剪裁可配置;2、低功耗、高可靠性、高稳定性;3、软件代码短小精悍;4、代码可固化;5、实时性;6、弱交互性7、嵌入式系统软件开发通常需要专门的开发工具和开发环境;8、要求开发、设计人员有较高的技能。
3.嵌入式系统的组成?嵌入式系统总体上是由硬件和软件组成的,硬件是其基础,软件是其核心和灵魂。
第二讲ARM技术概述(以下指的arm处理器都是指ARM920T)1.arm处理器是32位架构,它支持的基本数据类有哪3个(提示:字节、?、?)?(1)Byte:字节,8bit (2)Halfword:半字,16bit(半字必须与2字节边界对齐)(3)word:字,32bit(字必须与4字节边界对齐)2.什么是存储大小端模式?所谓的大端模式,是指高位字节存放在低地址单元中,而低位字节存放在高地址单元中。
所谓的小端模式,是指低位字节存放在低地址单元中,而高位字节存放在高地址单元中。
3.arm 处理器有哪7种工作模式,每种工作模式下通用工作寄存器有多少个、作用是什么、各个模式间哪些模式下有自己专有的寄存器,哪些寄存器是各个模式彼此公用的,哪些寄存器一般有固定的用途是什么?哪两种模式寄存器完全相同,哪种模式它的专有寄存器最多?(1)ARM微处理器支持7种运行模式,分别为:用户模式(usr):ARM处理器正常的程序执行状态。
(大部分任务执行时)快速中断模式(fiq):用于高速数据传输或通道处理。
(当高优先级中断产生时)外部中断模式(irq):用于通用的中断处理。
(当低优先级中断产生时)特权模式(svc):操作系统使用的保护模式。
(当复位或软中断指令执行时)数据访问中止模式(abt):可用于虚拟存储及存储保护。
(当存取异常时)未定义指令中止模式(und):可用于支持硬件协处理器的软件仿真。
(当未定义的指令执行时)系统模式(sys):运行具有特权的操作系统任务。
(和User模式相同寄存器集的模式)(ARM处理器共有37个寄存器,被分为若干个组(BANK),(2)每种工作模式下通用工作寄存器有:(共15个)这些寄存器包括30个通用寄存器和6个状态寄存器,1个程序计数器(PC指针)及所有寄存器(均为32位)。
未分组寄存器:包括R0~R7。
分组寄存器:包括R8~R14(3) 未分组寄存器(R0-R7)指的都是同一个物理寄存器,但是在异常中断切换时,由于使用相同的物理寄存器,所以和容易使寄存器中的数据被破坏。
对于分组寄存器(R8~R14),他们每一次所访问的物理寄存器与处理器当前的运行模式有关,除FIQ模式外其他寄存器是公用的(R0-R12)。
分组寄存器R13和R14来说,每个寄存器对应6个不同的物理寄存器。
其中的一个是用户模式和系统模式公用的,而另外5个分别用于5种异常模式。
R15用作程序计数器(PC),用来保存读取指令的地址。
(4)R13,R14,CPSR是各个模式专有的,FIQ模式除此之外还有R8-R12.(5)R0~R7是所用模式公用的;R8~R12对于快速中断FIQ模式之外的其他模式都是公用的,而FIQ模式另外有一套自己寄存器R8_fiq~R12_fiq,FIQ处理程序在保存和恢复现场时可以少保存和恢复几个寄存器(R8-R12),从而提高中断处理迅速(6)R13通常用作栈指针寄存器(SP),每一种模式有自己的R13,所以允许每一种异常都有自己的栈指针。
R14用作连接或返回地址寄存器(LR),每一种模式有自己的 R14。
R15用作程序计数器(PC),用来保存读取指令的地址。
程序状态寄存器(CPSR)存储ARM微处理器当前的状态和模式标志。
备份状态寄存器(SPSR)异常模式下的CPSR的备份寄存器,当一个异常发生时保存当前的CPSR 值。
结合连接寄存器可使处理器返回先前的状态。
(7)用户模式(user)和系统模式(sys)寄存器完全相同且这两种模式不能由异常进入(8)快速中断(FIQ)模式最多4.arm处理器有哪2种工作状态,上电复位后进入的是什么状态?(1)第一种为ARM状态,此时处理器执行32位的字对齐的ARM指令,对应ARM指令集;第二种为Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令,对应Thumb指令集。
(2)上电复位后,处于ARM状态5.理解流水线是如何提高处理器处理速度的,如假设某嵌入式处理器有3级流水线,每级流水线所耗时间均为为2ms,则执行25条指令需要耗费时间?流水线(pipeline)技术是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术T=执行一条指令的时间+(指令的条数—1)*流水线周期 6+(25-1)*2=546.充分掌握arm处理器CPSR寄存器每一位的作用。
寄存器R16用作程序状态寄存器CPSR(Current Program Status Register,当前程序状态寄存器)。
在所有处理器模式下都可以访问CPSR。
CPSR包含条件码标志、中断禁止位、当前处理器模式以及其他状态和控制信息。
每种异常模式都有一个程序状态保存寄存器SPSR(Saved Program Status Register)。
当异常出现SPSR用于保留CPSR的状态。
CPSR和SPSR的格式如下:(1)条件码标志N、Z、C、V(Negative、Zero、Carry、oVerflow)均为条件码标志位(Condition Code Flags),它们的内容可被算术或逻辑运算的结果所改变,并且可以决定某条指令是否被执行。
CPSR中的条件码标志可由大多数指令检测以决定指令是否执行。
在ARM状态下,绝大多数的指令都是有条件执行的。
在Thumb 状态下,仅有分支指令是有条件执行的。
通常条件码标志通过执行比较指令(CMN、CMP、TEQ、TST)、一些算术运算、逻辑运算和传送指令进行修改。
条件码标志的通常含义如下:N:如果结果是带符号二进制补码,那么,若结果为负数,则N=1;若结果为正数或0,则N=0。
Z:若指令的结果为0,则置1(通常表示比较的结果为“相等”),否则置0。
C:可用如下4种方法之一设置:加法(包括比较指令CMN)。
若加法产生进位(即无符号溢出),则C置1;否则置0。
减法(包括比较指令CMP)。
若减法产生借位(即无符号溢出),则C置0;否则置1。
对于结合移位操作的非加法/减法指令,C置为移出值的最后1位。
对于其他非加法/减法指令,C通常不改变。
V:可用如下两种方法设置,即对于加法或减法指令,当发生带符号溢出时,V置1,认为操作数和结果是补码形式的带符号整数。
对于非加法/减法指令,V通常不改变。
Q标志位:在带DSP指令扩展的ARM v5及更高版,bit[27]被指定用于指示增强的DAP指令是否发生了溢出,因此被称为Q标志位。
同样,在SPSR中bit[27]也被称为Q标志位,用于在异常中断发生时保存和恢复CPSR中的Q标志位(3)控制位程序状态寄存器PSR(Program Status Register)的最低8位I、F、T和M[4:0]用作控制位。
当异常出现时改变控制位。
处理器在特权模式下时也可由软件改变。
a.中断禁止位I:置1,则禁止IRQ中断;F:置1,则禁止FIQ中断。
b.T位T=0 指示ARM执行(即正在执行32位的ARM指令);T=1 指示Thumb执行(即正在执行16位的Thumb指令)。
c.模式控制位并非所有的模式位组合都能定义一种有效的处理器模式。
其他组合的结果不可预知。
(4)其他位程序状态寄存器的其他位保留,用做以后的扩展。
7.arm处理器有哪两个中断?快速中断(FIQ)和标准中断(IRQ)8.掌握s3c2410X单片机他的内核是什么处理器,该单片机有哪两类总线,两类总线分别挂接了哪些接口控制器?(1)S3c2410X单片机的内核ARM920T处理器;S3C2410处理器支持大/小端模式存储字数据,a)其寻址空间可达1GB,b)对于外部I/O设备的数据宽度c)可以是8/16/32位,d)所有的存储器Bank(共有8个)都具有可编程的操作周期,e)而且支持各种ROM引导方式(NOR/Nand Flash、EEPROM等)(2)两类总线分别为:AHB和APB;(3)AHB挂接了LCD、USB主控制、NAND Flash、中断控制、总线控制、内存APB挂接了串口、usb从设备、看门狗定时器、总线控制、SPI、I2C、I2S、GPIO、RTC、ADC、PWM定时器第三讲ARM指令系统1.掌握ARM处理器指令的几种寻址方式和分类,哪两类指令是专门用来访问内存的?哪类指令或伪指令会导致流水线情况(提示:那些会使PC值发生跳变的指令)(1)指令有七种寻址方式:1、立即寻址:ADD R0,R0,#1 ;R0←R0+1MOV R0,#0xff00 ;R0←0xff00在以上两条指令中,第二个源操作数即为立即数,要求以“#”为前缀,对于以十六进制表示的立即数,还要求在“#”后加上“0x”。
2、寄存器寻址:操作数放在寄存器当中,在指令当中只需要给出存放操作数寄存器的名字就可以了,这也是一种执行效率较高寻址方式。
举例:MOV R0,R1 ; R0←R1SUB R0,R1,R2 ;R0←R0-R23、寄存器间接寻址:寄存器间接寻址就是以寄存器中的值作为操作数的地址,而操作数本身存放在存储器中。
ADD R0,R1,[R2] ;R0←R1+[R2]在第一条指令中,以寄存器R2的值作为操作数的地址,在存储器中取得一个操作数后与R1相加,结果存入寄存器R0中。
LDR R0,[R1] ; R0←[R1]第二条指令将以R1的值为地址的存储器中的数据传送到R0中。
4、基址变址寻址:基址变址寻址就是将寄存器(该寄存器一般称作基址寄存器)的内容与指令中给出的地址偏移量相加,从而得到一个操作数的有效地址。
变址寻址方式常用于访问某基地址附近的地址单元。
LDR R0,[R1,#4] ;R0←[R1+4]在第一条指令中,将寄存器R1的内容加上4形成操作数的有效地址,从而取得操作数存入寄存器R0中。
5、多寄存器寻址:6、相对寻址:7、堆栈寻址:0指令有六类:1、跳转指令 2、数据处理指令 3、程序状态寄存器(PSR)传输指令 4、加载/存储(load/store)指令 5、协处理指令 6、异常中断产生指令根据使用的指令类型不同,指令的寻址方式分为数据处理指令寻址方式和内存访问指令寻址方式。