s3c2440学习之路-012-0 异常中断基础知识

发布者:快乐旅人最新更新时间:2021-10-14 来源: eefocus关键字:s3c2440  异常中断  基础知识 手机看文章 扫描二维码
随时随地手机看文章

1. 异常/中断的基本知识介绍

异常/中断是ARM经常用到的处理机制,因此需要好好学习。这里总是写中断/异常是因为中断属于异常的一种,而我们经常听到中断这个词语而少听到异常这个词,所以这些特意写成中断/异常。如果CPU发生中断时,我说CPU发生了异常,你可不能说我讲错了,因此异常包含了中断。


1.1 ARM的7种工作模式

从2440的数据手册中可以看到,ARM920T(2440使用的ARM920T的核) 总共有7种工作模式

image.png

在这里插入图片描述

其中的中断模式就是我们常用的中断 ,当ARM处理中断操作时,就进入此模式。


1.2 ARM的异常向量表

当ARM发生异常时,就会把PC的值设置成一个固定的值,让程序跳转到固定的地址执行程序,并进入相应的工作模式。

如:

当发生复位时,PC=0x0, 程序跳转到0地址去执行程序,并进入管理模式。

当发生中断时,PC=0x18, 程序跳转到0x18地址去执行程序,并进入中断模式。

上面的例子中,PC的值由硬件自动帮忙赋值,不需要软件来操作。


从这里可以看出来,想要进入不同的工作模式,就需要发生不同的异常。这里就找到了异常与工作模式的关系。

在这里插入图片描述

1.3 重要的寄存器CPSR

如何知道ARM当前处于什么模式呢? 可以通过查看CPSR(Current Program States Register )寄存器来知道。

CPSR寄存器的bit[0] ~ bit[4] 可以查出ARM当前工作模式。

不过CPSR这种特殊的寄存器不是一般的mov指令可以操作的, 要通过msr,和 mrs来完成对CPSR寄存器的读写。


//读取cpsr 到r0

    mrs r0, cpsr

    //清空r0的低4位

    bic r0, r0, #0xf

    //把r0赋值给cpsr

    msr cpsr, r0

在这里插入图片描述
在这里插入图片描述

1.4 异常/中断的处理过程

在处理异常/中断时,即有硬件的处理也有软件的处理,主要的流程如下:


某种条件发引起异常


发生异常时硬件的处理,即进入异常

2.1将返回地址保存在LR(R14)寄存器

2.2将CPSR复制到SPSR(SPSR 就是专门弄来备份CPSR的)

2.3设置CPSR的模式位(设置CPSR的bit0~bit4)

2.4设置PC值为对应的中断/异常向量表(跳到固定地址)


发生异常时软件的处理,即处理异常然后回到异常发生时的位置继续处理

3.1 设置SP(因为需要通过压栈来保存寄存器和代码跳转)

3.2 保存现场(将通用的寄存器保存起来)

3.3 将SPSR赋值给CPSR

3.4 清除中断标志位(针对中断)

3.5 恢复现场(将通用的寄存器恢复回去)

3.6 将LR减去对应的值,再赋值给PC


3.6 将LR减去对应的值,在赋值给PC, 在2440手册中有表格说明LR的值,不过每种模式下LR的值是如何计算的并没有找到说明。

在这里插入图片描述

1.5 不同工作模式下的私有寄存器

ARM 通用的寄存器有R0-R15,不过在不同的工作模式下会有一些自己的私有寄存器。

如:

在FIQ模式下,会用到R0-R15,但是R8_fiq-R14_fiq虽然也是叫R8-R14,不过这是FIQ模式下的私有寄存器,不会影响到通用的R8-R14

在Supervisor模式下,会用到R0-R15,但是R13_svc-r14_srv虽然也叫R13-R14, 不过这是Supervisor模式下的私有寄存器,不会影响到通用的R13-R14


综上,用2句话来总结一下


他们是在不同模式下才有的私有寄存器

因为他们的功能时相同的,所以取名也相同,实际上是不同的物理寄存器

在这里插入图片描述

1.6 总结

看完后需要对以下的几个问题有些基本的了解才行。


ARM总共有几种工作模式

ARM有多少种异常

异常与工作模式之间有什么关系

在执行完异常后,如何计算LR的返回地址

关键字:s3c2440  异常中断  基础知识 引用地址:s3c2440学习之路-012-0 异常中断基础知识

上一篇:s3c2440学习之路-001 汇编点亮led
下一篇:s3c2440学习之路-009 nor flash的简单配置

推荐阅读最新更新时间:2024-11-12 10:12

从0开始学Keil下的S3C2440裸机开发-1使用内部RAM
1建立KEIL开发环境 Keil版本:μVision V4.71.2.0; 调试器:JLINKV8; 调试软件:J-Link ARM V4.72。 2新建工程 新建工程如图1,并在硬盘建立文件夹结构如图2,保存后选择CPU类型如图3所示,选择S3C2440A。 完成后,设置工程结构。 将S3C2440.S移动到Core文件夹下,并添加到工程Core组下。 新建app.c文件,存储到App文件夹下,并添加到工程App组下。 组管理设置完成后,如下. 3设置工程属性 设置内部4KRAM分配,4KRAM 2k作为IROM,2K作为IRAM,查看S3C2440存储器映射,内部RAM起始地址为0X400000
[单片机]
从0开始学Keil下的<font color='red'>S3C2440</font>裸机开发-1使用内部RAM
STM32F03定时器基础知识基本简介
一、思维导图 三、定时器基本简介 (一)定时器分类 STM32F103微控制器的定时器分为 系统定时器(SysTick) 、 “看门狗”定时器(WatchDog) 、 基本定时器 、 通用定时器 、高级定时器和 实时时钟(RTC) 等。 系统定时器(SysTick) :是一个集成在Cortex-M3内核当中的定时器,Cortex-M3内核附带SysTick的主要目的是 给实时操作系统(RTOS)提供时间基准(时钟节拍 ),SysTick是不允许被用户直接使用的。 “看门狗”定时器(WatchDog) :“看门狗”定时器连接到STM32微控制器芯片的复位电路, 在定时器溢出时会触发复位操作 。 实时时钟RTC :是一个带独
[单片机]
STM32F03定时器<font color='red'>基础知识</font>基本简介
s3c2440上的nor flash启动与nand flash启动的区别
1)接口区别: NOR FLASH地址线和数据线分开,来了地址和控制信号,数据就出来。 NAND Flash地址线和数据线在一起,需要用程序来控制,才能出数据。 通俗的说,就是光给地址不行,要先命令,再给地址,才能读到NAND的数据。而且都是在一个总线完成的。 结论是:ARM无法从NAND直接启动。除非装载完程序,才能使用NAND Flash. 2)性能区别 NOR的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响了它的性能。 NAND结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。应用NAND的困难在于flash的管理和需要特殊的系统接口。 ● NOR的读速度
[单片机]
8051微控制器的基础知识
8051微控制器是嵌入式系统、消费电子、汽车等各个领域中最流行和最常用的微控制器之一,技术上称为Intel MCS-51架构。8051微控制器系列是由Intel公司在1980年开发,在80年代非常流行(当然现在也很流行)。 8051微控制器具有串行通信、定时器、中断等许多功能,因此许多大学生和初学者开始使用8051微控制器来研究微控制器的原理(尽管这种趋势似乎随着Arduino的引入而改变)。 现在看来,8051微控制器可能看起来有点过时,但小编认为,它是开始使用微控制器、嵌入式系统和编程(C语言和汇编)的最佳平台之一,而对于刚入门的朋友,好好研究8051微控制器是非常有必要的。 8051单片机介绍及历史 英特尔的80
[单片机]
8051微控制器的<font color='red'>基础知识</font>
s3c2440#SDRAM#初始化
一、引脚说明 JZ2440的SDRAM接线图 可以看到两块SDRAM并行接入到开发板,一共有27条地址线,32条数据线(各16条) (1)CLK:SDRAM工作的时钟,并且所有的输入信号都是在CLK的上升沿进行检测的,也就是说我们给SDRAM给的任何命令,一定要在CLK的上升沿保持稳定,以免SDRAM获取我们给出的命令时出现错误。 (2)CKE:时钟使能信号,高电平(激活)、低电平(无效),是用来控制SDRAM内部时钟是否工作的一个信号(在SDRAM内部也是有时钟的哦) (3)其中地址线分出两条来选择bank,因为SDRAM中有四个bank。 (4)RAS、CAS、WE:这三根线就是用来给SDRAM发命令的
[单片机]
s3c2440#SDRAM#初始化
S3C2440芯片时钟配置
S3C2440A芯片中的时钟控制逻辑可以生成所需的时钟信号,包括用于CPU的FCLK、AHB (Advanced High-performance Bus) 总线外围设备的HCLK,以及APB (Advanced Peripheral Bus)总线外围设备的PCLK。S3C2440A有两个相锁循环(PLLs):一个用于FCLK、HCLK和PCLK,另一个用于USB块(48 Mhz)。时钟控制逻辑可以使用无PLL的慢时钟,并且可以通过软件控制决定将时钟是否连接到外围块,这将减少芯片的功耗。 1 时钟源的选择 S3C2440A芯片的时钟来源有两个,一个是外部晶振(XTIpll 和 XTOpll),一个来自外部时钟输入(EXTC
[单片机]
<font color='red'>S3C2440</font>芯片时钟配置
单片机MCU相关基础知识整理篇
1.MCU有串口外设的话,在加上电平转换芯片,如MAX232,SP3485就是RS232和RS485接口了。 2.RS485采用差分信号负逻辑,+2+6V表示0,-6-2表示1。有两线制和四线制两种接线,四线制是全双工通讯方式,两线制是半双工通讯方式。在RS485一般采用主从通讯方式,即一个主机带多个从机。 3.Modbus是一种协议标准,可以支持多种电气接口,如RS232,RS485,也可以在各种介质上传输,如双绞线,光纤,无线。 4.很多MCU的串口都开始自带FIFO,收发FIFO主要是为了解决串口收发中断过于频繁而导致CPU的效率不高的问题。如果没有FIFO,则没收发一个数据都要中断处理一次,有了FIFO,可以在
[单片机]
示波器基础知识100问(下)
  60.数字示波器一般提供在线显示均方根值,它的精度一般是多少?   答:示波器的幅值测量精度,很多人用A/D位数来衡量,实际上,随着您所用的示波器带宽,实际的采样率设置等,会有变化,若带宽不够,本身带来的幅值测量误差就很大,若带宽够了,采样设置很高,实际的幅值测量精度就不如采样率低的时候的精度(您有时可参考示波器的用户手册,它可能会给出不同采样率下,示波器的A/D实际有效位数);总的来讲,示波器测量幅值,包括均方根值的精度往往不如万用表,同样,测量频率,它不如频率计数器。   61.如何捕捉并重现稍纵即失的瞬时信号?   答:将示波器设置成单次采集方式(触发模式设置成Normal ,触发条件设置成边沿触发,并将触发电平调到适
[测试测量]

推荐帖子

如何使用单个运算放大器驱动ADC
本文转自ADI中文技术社区https://ezchina.analog.com/message/29601#29601影响数据采集系统的主要因素包括:速度、精度、功耗、封装尺寸及器件成本,对于不同的应用,最关键的因素也不同。本文描述了在八通道数据采集系统中,如何使用单个运算放大器来驱动ADC,以降低整个系统的成本和尺寸。AD7329八通道、12位带符号位、1MSPSADC具有真双极性输入,以及四个可独立编程的软件选择输入范围:±4×VREF、±2×VREF、±VREF与0至
王府井的青蛙 模拟电子
使用TI 库播放MUSIC的程序!
使用TI库播放MUSIC的程序使用TI库播放MUSIC的程序!看一下学习回复楼主youki12345的帖子看看!非常厉害啊。试了一下翻古墓?学习一下。谢谢。无学习了,我正在研究播放WAV的声音文件有时间看看很不客气地收了,灰常感谢~~
youki12345 微控制器 MCU
求助一个正弦波信号发生器的设计
本帖最后由paulhyde于2014-9-1509:24编辑我是一名高职一年级的学生,我们老师叫我做一个正弦信号发生器的设计,技术要求:①幅度保持不变(振幅5V);②频率可调:300-20KHZ;③相位可调:0度--360度。请各位大侠给小弟我帮助啊,最好有个什么原理图,拜托了啊,急!!!求助一个正弦波信号发生器的设计本帖最后由paulhyde于2014-9-1509:24编辑这个相关的内容应该很多,使用右上角的论坛搜索功能就可以找到了完全一样可
工职小赵 电子竞赛
不用电池的双音门铃
随着电话机的普及率越来越高,拥有住宅电话的家庭也越来越多,但大多数住宅电话使用率很低,利用电话入户馈线提供的48V(60V)直流馈电作电子门铃的工作能源是经济实用的。现介绍一款不用电池的双音门铃电路。电路原理如图所示,不难看出,图中电路是常规的电话机振铃电路的变型。a、b分别是电话机入户线的正、负两端。AN为常开型门铃按钮,在电话机候机时,按下AN,程控交换机提供的48V(或60V)电压,直流馈电经VD1、R1对电容C1充电,当C1端电压Vc达到IC1的起控电压时,IC1起振送出双音电子
songbo DIY/开源硬件专区
【晒样片】+ 具有线路压降补偿的车用 USB 充电器的参考设计
PMP4425参考设计提供了用于评估和验证USB充电器的详细数据,这一过程使用了USB充电控制器、降压转换器和分流放大器。另外,此设计展示了提供电池短路保护的汽车USB充电端口。借助于分流放大器,该设计能够在智能手机/平板电脑使用长约2-3米的电缆连接到USB充电器时补偿电压降的影响。由于可编程电流限制高达2.1A、该设计支持符合BC1.2标准的器件以及D+/D-分频器模式为2.7V/2.7V和1.2V,因此该设计支持几乎所有主要智能手机/平板电脑制造
yichun417 TI技术论坛
LLC 谐振变换器拓扑构成与工作原理分析
点此下载完整内容:https://www.eeworld.com.cn/zt/Qorvo_Power/details/7328内容节选:........点此下载完整内容:https://www.eeworld.com.cn/zt/Qorvo_Power/details/7328LLC谐振变换器拓扑构成与工作原理分析
木犯001号 电源技术
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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