1.ARM的体系与架构
1.1.ARM体系的CPU有以下其中工作模式:
用户模式 (usr)
快速中断模式 (fiq)
中断模式 (irq)
管理模式 (svc)
数据访问终止模式 (abt)
系统模式 (sys)
未定义指令终止模式 (und)
1.2.ARM寄存器:
31个通用寄存器 : R0~R7(未备份寄存器) , R8~R14(备份寄存器) , R15( 程序计数器PC )
6个状态寄存器 : CPSR( 当前程序状态寄存器) , SPSR(备份程序状态寄存器)
2.ARM状态下当异常发生时, 处理器将切换进相应的模式:
2.1. 当异常发生时, 处理器将自动完成以下事情 :
对于ARM状态, 这个值是当前PC值加4或者加8
2.2. 当从异常模式返回到之前的工作模式时, 则需软件完成以下工作 :
2.3. 关于R14在发生异常时保存的地址参考表:
3. 使用中断的步骤 :
3.1. 设置好中断模式和快速中断模式下的栈 , 它们分别使用自己的栈
3.2. 准备好中断处理函数 :
异常向量地址 : irq(0x00000018) , fiq(0x0000001c)
中断服务程序(isr) : 对于irq,通过判断INTPND或者INTOFFSET来确定中断源, fiq只有一个中断
清除中断 : 如果不清除中断会让CPU误以为中断又一次发生了
3.3. 进入、退出中断或快速中断时, 需要保存、回复中断的运行环境
3.4. 设置中断涉及到的寄存器 .
3.4.1. 外部中断被分为被SUBSRCPND/SUBMASK寄存器控制的中断,不被
SUBSRCPND/SUBMASK寄存器控制的中断.
3.4.2. 外部中断必须经过SRCPND( SOURCE PENDING)寄存器的控制
3.4.3. 外部中断最终经过INTMASK(中断屏蔽)与INTMODE(中断模式)寄存器
的控制
3.4.4. 外部中断经过PRIORITY(优先级寄存器)的仲裁决定优先级
3.4.5. 通过INTPND寄存器来确认中断的发生以及清除中断 ,同一时间内只有一位
被置一
关键字:S3C2440
引用地址:
S3C2440-中断体系架构
推荐阅读最新更新时间:2024-11-08 10:35
S3C2440定时器汇编程序
S3C2440定时器源程序如下: ;************口地址及数据符号化定义区********************** pWTCON EQU 0x53000000 pLOCKTIME EQU 0x4c000000 pCLKDIVN EQU 0x4c000014 pUPLLCON EQU 0x4c000008 pMPLLCON EQU 0x4c000004 pBWSCON EQU 0x48000000 pSRCPND EQU 0x4a000000 ;中断源悬挂寄存器地址 pINTPND EQU
[单片机]
S3C2440上LCD驱动(FramBuffer)实例开发详解(一)
嵌入式Linux之我行,主要讲述和总结了本人在学习嵌入式linux中的每个步骤。一为总结经验,二希望能给想入门嵌入式Linux的朋友提供方便。如有错误之处,谢请指正。 一、开发环境 编译器:arm-linux-gcc-4.3.2 二、背景知识 1. LCD工作的硬件需求: 要使一块LCD正常的显示文字或图像,不仅需要LCD驱动器,而且还需要相应的LCD控制器。在通常情况下,生产厂商把LCD驱动器会以COF/COG的形式与LCD玻璃基板制作在一起,而LCD控制器则是由外部的电路来实现,现在很多的MCU内部都集成了LCD控制器,如S3C2410/2440等。通过LCD控制器就可以产生LCD驱动器所需要的控制信号来控制STN/T
[单片机]
基于S3C2440的嵌入式Linux根文件系统构建
嵌入式Linux早已成为IT界家喻户晓的一个名字,使用Linux进行嵌入式产品开发有一个很大的优势,就是开发资源丰富,且成本低廉,嵌入式Linux操作系统越来越受到重视,其应用也越来越广泛。而文件系统作为操作系统的重要组成部分,用于控制对数据文件及设备的存取,提供对文件和目录的分层组织形式,数据缓冲以及对文件存取权限的控制。根文件系统一直是Linux系统不可或缺的组件,在嵌入式Lin-ux中,内核在启动期间进行的最后操作之一就是安装根文件系统。Busybox是构建嵌入式Linux根文件系统的软件,用它制作根文件系统简单、方便,而且设置灵活。 1 根文件 Linux要在一个分区上存放系统启动所必需的文件,如内核映像文件、内
[单片机]
s3c2440学习之路-012-1 Undefined未定义中断
1 未定义中断的原理 1.1 ARM的指令组成 ARM的指令是由32位组成的,是有一定的组成格式的,如果不符合组成格式的话,那就这条指令就无法被识别,就是未定义指令了。指令的 ~ 是条件位,当条件位为1110B时,就表明该指令一定背执行。这里特别指出 ~ 是因为后面的例子种将会使用到。 1.2 执行未定中断的过程 当发现未定义指令时ARM会做什么呢,如同s3c2440学习之路-012-0 异常中断基础知识 的1.4 小节所说的, 程序会自动跳到0x4的位置去执行代码。 具体的执行过程如下: 执行某条命令,发现不符合ARM的命令格式,产生未定义异常 发生异常时硬件的处理,即进入异常 2.1将返回地址保存在LR(R14)
[单片机]
s3c2440裸机-nandflash编程(二. nand控制器和nand访问时序)
一.Steppingstone 我们知道nand没有独立地址线,cpu无法直接访问nand上的指令,所以nand不能片上执行。那么为何程序还能支持nand启动的呢? 为了支持NAND启动,S3C2440A配备了一个称为“ Steppingstone”的内部SRAM缓冲区,容量为4K。 开机时,Nandflash中的前4K数据将被加载到Steppingstone中,而引导代码将被加载到SRAM中将被执行,如下图所示: 我们知道s3c2440支持2种boot方式,nand或者nor,那么需要配置OM引脚来设置引导方式,如下图: 内存控制器的地址映射表如下: 我们得知OM1接地,OM0接了一个开关SW2,那么我们的OM
[单片机]
S3C2440开发板利用外部中断实现按钮切换不同功能
#include def.h #include option.h #include 2440addr.h #include mmu.h #include stdio.h /*中断处理函数按下不同按钮进入该中断处理,并根据按下的不同按钮启动不同功能,实现功能控制面板的按钮功能*/ void __irq Eint_Isr(void) { switch(rEINTPEND) { case 1 13: //功能1启动,同时关闭功能2 rGPBDAT=0 6|1 7; rEINTPEND=1 13; //等待下一个自己的中断进入 break; case 1 14: //功能2启动,同时
[单片机]
S3C2440 音频解码芯片WM8976声卡驱动移植、madplay测试
1. WM9876接口和工作原理 本节使用了JZ2440开发板移植WM9876驱动,其结构如下图所示,最后利用madplay工具测试音频文件。 IIS和控制接口; WM9876声卡是负责录音、播音、调节音量和声音合成等的一种多媒体板卡。包括两种接口:IIS接口(提供音频接收和发送)、控制接口(控制音量大小,使能各个输出通道等) 1)当我们播放声音时,将数字信号传入I2SDO脚,声卡便通过解码,产生模拟信号到喇叭/耳机; 2)当我们录音时,声卡便获取麦克风的模拟信号,编码出数字信号到I2SDI引脚上。 ----------- 接口说明 ---------------- ----------- 接口说明
[单片机]
基于ARM处理器S3C2440和Linux的I2C触摸屏设计
0引言 随着计算机相关技术的发展,ARM嵌入式系统受到越来越广泛的应用,与人们生活的结合也越来越紧密。触摸屏设备因其友善的人机交互性,操作方便灵活,输入速度快,被广泛的应用于这种嵌入式领域中。嵌入式Linux系统具有开发源代码、内核稳定、可裁减性等特点,吸引着众多商业公司和自由软件开发者的目光,成为嵌入式系统领域不可或缺的操作系统之一。触摸屏是一种输入设备,操作简单易学,可靠性高,不占额外的空间,是最常用的便携式系统的输入设备。特别是电阻式触摸屏,它结构简单,成本低,透光效果好,工作环境和外界完全隔离,不怕灰尘和水气,同时具有高解析度、高速传输反应、一次校正、稳定性高、不漂移等特点,因而被广泛用于工业控制领域。 1
[单片机]