ARM学习笔记

发布者:古古斋最新更新时间:2016-04-29 来源: eefocus关键字:ARM  学习笔记 手机看文章 扫描二维码
随时随地手机看文章
ARM微处理器支持7种运行模式,分别为:

1.用户模式(usr):ARM处理器正常的程序执行状态;
2.   快速中断模式(fiq):用于高速数据传输或通道管理;
3.   外部中断模式(irq):用于通用的中断处理;
4.    管理模式(svc):操作系统使用的保护模式;
5.    数据访问终止模式(abt):当数据或指令预取终止时进入该模式,用于虚拟存储及存储保护;
6.   系统模式(sys):运行具有特权的操作系统任务;
7.   未定义指令中止模式(und):当未定义指令执行时进入该模式,可用于支持硬件协处理器的软件仿真

ARM体系结构的存储器格式有如下两种:
 大端格式:字数据的高字节存储在低地址中,字数据的低字节存放在高地址中;
 小端格式:与大端存储格式相反,高地址存放数据的高字节,低地址存放数据的低字节

 ARM寄存器总结:
  ARM有16个32位的寄存器(r0到r15)。
 r15充当程序寄存器PC,r14(link register)存储子程序的返回地址,r13存储的是堆栈地址。
ARM有一个当前程序状态寄存器:CPSR。
一些寄存器(r13,r14)在异常发生时会产生新的instances,比如IRQ处理器模式,这时处理器使用r13_irq和r14_irq
 ARM的子程序调用是很快的,因为子程序的返回地址不需要存放在堆栈中。
1、 ARM处理器共有37个寄存器,其中包括:

i. 31个通用寄存器,包括程序计数器(PC)在内。都是32位寄存器

ii. 6个状态寄存器,都是32位寄存器,但目前只使用了其中12位

2、 ARM处理器有7种不同的处理器模式,在每一种处理器模式中有一组相应的寄存器组

。任意时刻(也就是任意的处理器模式下),可见的寄存器包括15个通用寄存器(R0~

R14)、一个或两个状态寄存器及程序计数器(PC)。在所有的寄存器中,有些是各模式

共用的同一个物理寄存器,有些是各模式自己拥有的独立的物理寄存器。

3、通用寄存器可以分为3类:未备份寄存器(R0~R7)、备份寄存器(R8~R14)和程序

计数器PC(R15)。对于每一个未备份寄存器来说,在所有的处理器模式下指的都是同一

个物理寄存器。对应备份寄存器R8~R12来说,每个寄存器对应两个不同的物理寄存器,

这使得中断处理非常简单。例如,仅仅使用R8~R14寄存器时,FIQ处理程序可以不必执行

保存和恢复中断现场的指令,从而使中断处理过程非常迅速。对于备份寄存器R13和R14

来说,每个寄存器对应6个不同的物理寄存器,其中的一个是用户模式和系统模式共用的

,另外的5个对应于其他5种处理器模式。

4、每一种异常模式拥有自己的物理的R13。应用程序初始化该R13,使其指向该异常模

式专用的栈地址。当进入异常模式时,可以将需要使用的寄存器保存在R13所指的栈中;

当退出异常处理程序时,将保存在R13所指的栈中的寄存器值弹出。这样就使异常处理程

序不会破坏被其中断程序的运行现场。

5、 寄存器R14又被称为连接寄存器(Link Register,LR),在ARM体系中具有下面两种

特殊的作用:

i. 每一种处理器模式自己的物理R14中存放当前子程序的返回地址。当通过BL或BLX指令

调用子程序时,R14被设置成该子程序的返回地址。在子程序中,当把R14的值复制到程

序计数器PC中时,子程序即返回。

ii. 当异常中断发生时,该异常模式特定的物理R14被设置成该异常模式将要返回的地址

,对于有些异常模式,R14的值可能与将返回的地址有一个常数的偏移量。具体的返回方

式与子程序返回方式基本相同。

6、 由于ARM采用了流水线机制,当正确读取了PC的值时,该值为当前指令地址值加8个

字节。也就是说,对于ARM指令集来说,PC指向当前指令的下两条指令的地址,由于ARM

指令是字节对齐的,PC值得第0位和第1位总为0。

7、 对于ARM版本3以及更低的版本,写入R15的地址值的bits[1:0]被忽略,对于ARM版本

4以及更高的版本,程序必须保证写入R15寄存器的地址值的bits[1:0]为0b00;否则会产

生不可预知的结果。对于Thumb指令集来说,指令是半字对齐的。处理器将忽略bit[0]。

还有一些指令对于R15的用法有一些特殊的要求。比如,指令BX利用bit[0]来确定是ARM

指令,还是Thumb指令。

8、 指令mov pc, pc将程序跳转到当前指令下面第2条指令处执行。类似的指令还有

add pc, pc, #0

9、每一种处理器模式下都有一个专用的物理状态寄存器,称为SPSR(备份程序状态寄

存器)。当特定的异常中断发生时,这个寄存器用于存放当前程序状态寄存器的内容。

在异常中断程序退出时,可以用SPSR中保存的值来恢复CPSR。

10、由于用户模式和系统模式不是异常中断模式,所以它们没有SPSR。当在用户模式或

系统模式中 访问SPSR,将会产生不可预知的结果。


关键字:ARM  学习笔记 引用地址:ARM学习笔记

上一篇:基于3c2410的linux2.6.22移植(6)
下一篇:ARM体系结构下面内存和i/o映射区别

推荐阅读最新更新时间:2024-03-16 14:52

ARM笔记: SDRAM内存驱动
SDRAM(Synchronous Dynamic Random Access Memory,同步动态随机存储器)也就是通常所说的内存。内存的工作原理、控制时序、及相关控制器的配置方法一直是嵌入式系统学习、开发过程中的一个难点。我们从其硬件的角度来分析其原理,然后再引出SDRAM的驱动编写过程。 内存是代码的执行空间,以PC机为例,程序是以文件的形式保存在硬盘里面的,程序在运行之前先由操作系统装载入内存中,由于内存是RAM(随机访问存储器),可以通过地址去定位一个字节的数据,CPU在执行程序时将PC的值设置为程序在内存中的开始地址, CPU会依次的从内存里取址,译码,执行,在内存没有被初始化之前,内存好比是未建好的房子,是不能读取
[单片机]
<font color='red'>ARM</font><font color='red'>笔记</font>: SDRAM内存驱动
CAN总线学习笔记一:CAN总线的相关概念
题记: 在这信息爆炸的年代,学习一样新的知识,尤其是IT技术的学习,网络是必不可少的。一阵狂搜过后,发现基于CAN总线的介绍确实不少,但是大多好像都雷同了,也许是不断转贴的结果吧。而且这些知识点也都太零散了,让人看了,尤其是初学者有点找不着北的感觉。所以,本着谦虚好学脚踏实地的菜鸟精神,决定把网上搜的,书上看的,再添油加醋的做一番比较系统的整理。算是为学习CAN总线理清思路,快速上手打基础吧。 一、什么是CAN总线? CAN,全称为“Controller Area Network”,即控制器局域网,是国际上应用最广泛的现场总线之一。最初,CAN被设计作为汽车环境中的微控制器通讯,在车载各电子控制装置ECU之间交换信息,形
[嵌入式]
ARM9的SPI
实验前须知: SPI的原理: 注: CLK传输时钟 MISO主机输入从机输出 MOSI主机输出从机输入 CS片选信号,由于SPI控制器可以外接多个SPI设备,所以这个用于选中SPI设备。 SPI的操作流程大体如下图所示: 实验的目的: 用s3c2440的SPI控制器操作SPI总线上的两个设备,分别是OLED和FLASH 实验的源程序: 07th_spi_i2c_adc_mini2440_tq2440_spi_controller.rar 实验的问题总结: 1 我们主要分析一下s3c2440_spi.c这个文件 /*************************************s3c2440_spi.c*****
[单片机]
<font color='red'>ARM</font>9的SPI
基于S3C6410的ARM11学习(七) 核心初始化之关闭MMU和CACHE
在关闭了所有中断后,就要关闭MMU和CACHE了。因为这个时候,还在初始化环境,这两个东西是用不到的。所以就需要把他们都关闭,免得影响我们的初始化。 MMU是Memory Management Unit的缩写,中文名是存储器管理单元。主要是两个功能: 1、虚拟地址转换为物理地址 2、实现内存的保护 至于具体的MMU的一些知识,等后面用到了在说明了。目前,只需要将MMU给关掉即可。 这个时候,我们需要查看S3C6410的核ARM1176JZFS手册。在这里,我们要接触到一个系统控制处理器,CP15。也叫做协处理器。 手册中说明了,CP15系统控制处理器的作用,主要是6个: 1、整个系统的控制和配置 2、CACHE的
[单片机]
基于S3C6410的<font color='red'>ARM</font>11<font color='red'>学习</font>(七) 核心初始化之关闭MMU和CACHE
日本芯片制造商 Socionext 宣布联合台积电,开发 2nm ARM处理器
10 月 27 日消息,Socionext 是日本唯一一家负责定制 Soc 芯片的上市公司,这家公司号称“只有在接到订单后才会研发与生产芯片”,运营模式与英伟达和 AMD 有一定本质区别。 不过目前该公司宣布正联合台积电,开发一款 32 核 ARM 处理器,该 CPU 采用了 Arm 的 Neoverse 计算子系统技术,号称“能够在超大规模数据中心和下一代移动基础设施(包括 5G 和 6G)中提供‘可扩展的性能’”。 ▲ 图源 Socionext 官方新闻稿 经过查询得知,Neoverse 计算子系统技术是一种预集成、预验证的计算平台,旨在简化芯片的定制流程。芯片组可在单个封装内提供单个或多个 实例 ,以及用于满足 IO 和
[半导体设计/制造]
日本芯片制造商 Socionext 宣布联合台积电,开发 2nm <font color='red'>ARM</font>处理器
ARM7加速度数据采集系统设计
引言 加速度传感器一直是加速度测试中的重要元件。随着微加速度计的应用越来越广泛,对于微加速度计的数据信号采集和存储变得极为重要。传统的数据采集方法多数是采用单片机完成的,编程简单、控制灵活,但控制周期长、速度慢,特别是对高速转换的数据来说,单片机的速度极大地限制了数据传输速度。 目前,嵌入式系统的应用已经进入到一个高低并行发展的阶段。ARM处理器凭借体积小、功耗低、集成度高、硬件调试方便和操作系统可移植等优点,获得广泛的应用。本文采用基于ARM7TDMI-S核的32位微处理器AT91SAM7X256为控制核心,利用其内部自带的A/D转换器对采集到的加速度值进行转换。 本文应用Model 1221单轴MEMS加速度计,输
[嵌入式]
ARM学习笔记—RTC编程(一)
要学习RTC的编程,首先我们得知道什么是RTC?RTC是怎样工作的?RTC电路是如何搭建的?RTC编程需要注意什么?要弄清楚这些,最好的方式就是从用户手册上去找寻答案,我按照LPC1788提供的手册一步步分析和学习RTC。 一、基础配置 1、RTC的电源控制:在寄存器PCONP中,置位位PCRTC。注意:复位的时候PCRTC的值也为 1 。(这里需要注意在arm中所有的pin操作都是通过读写寄存器完成的,每一个pin脚都是对应寄存器的一位,不能直接对pin进行置位或复位) 2、时钟源:RTC从RTC晶振中获取1HZ作为内部功能时钟,外部时钟用于接收RTC寄存器的值(目前还没有理解透彻,以后继续研究) 3、中断:中断在后面将
[单片机]
<font color='red'>ARM</font><font color='red'>学习</font><font color='red'>笔记</font>—RTC编程(一)
基于ARM9的嵌入式3G无线视频监控系统设计
国内外市场上主要推出的是数字控制的模拟视频监控和数字视频监控两类产品。前者的技术发展已经非常成熟,产品性能稳定, 在实际工程中得到了广泛应用。 后者是新近崛起的以计算机技术及图像视频压缩技术为核心的新型视频监控系统, 该系统在解决模拟视频监控系统的部分弊端的基础上迅速崛起。在互联网的普遍推广和网络带宽逐渐提高的背景下,视频监控技术飞速发展, 出现了集多媒体技术、网络通信技术、嵌入式技术于一体的嵌入式网络视频监控系统。 目前国内嵌入式视频监控系统的研究有了很大的发展, 但是国内对嵌入式无线视频监控系统的研究还比较少。本文介绍了自主开发的基于ARM 的嵌入式无线视频采集系统设计方案。该方案采用S3C2410 嵌入式处理器和ARML
[单片机]
基于<font color='red'>ARM</font>9的嵌入式3G无线视频监控系统设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved