中断的工作方式如下:
中断是异常模式,当一旦有中断发生,那么就会停止现在正在进行执行的程序,PC指针进而跳入异常向量的地址处。异常地址处,一般存有中断服务子程序的地址,所以,接下来PC指针跳入中断服务子程序中。当完成中断服务子程序后,PC指针会返回到被 打断的程序的下一条地址处,继续执行程序。
在写程序中,如何实现地址的跳转,举例如下:
汇编
_ISR_STARTADDRESS EQU 0x33ffff00
// 中断服务启动栈地址
如果是定时中断
定义定时中断服务子程序:
void __irq Timer1_ISR( void )
{
........ //函数体省略
}
现在要把定时中断的服务子程序与定时向量关联在一起,即PC指针指向定时中断向量,进而跳转到定时服务子程序中,过程如下:
pISR_TIMER1 EQU (_ISR_STARTADDRESS+0x4c)
pISR_TIMER1 = (int)Timer1_ISR; //这一步就是把定时中断服务子程序的地址放入定时中断向量中。
整个中断跳转程序就是这样的过程。
关键字:s3c2410 中断 跳转过程
引用地址:
s3c2410中断跳转过程
推荐阅读最新更新时间:2024-03-16 16:20
STM32CubeMX系列 | 外部中断
1. 外部中断简介 STM32F1的每个IO口都可以作为外部中断的中断输入,STM32F103的中断控制器支持19个外部中断/事件请求。每个中断设有状态位,每个中断/事件都有独立的触发和屏蔽设置。STM32F103的19个外部中断为: EXTI线0~15:对应外部IO口的输入中断 EXTI线16:连接到PVD输出 EXTI线17:连接到RTC闹钟事件 EXTI线18:连接到USB唤醒事件 EXTI线19:连接到以太网唤醒事件(互联网型产品) STM32F103供IO口使用的中断线只有16个,但是IO口却远不止16个。下图为GPIO跟中断线的映射关系图 2. 硬件设计 用到的硬件资源有: 指示灯D1、D2 蜂
[单片机]
STM32-一个例子搞懂EXTI外部中断/事件系统
假设一个商业帝国集团STM32 GROUPE有三家子公司,叫EXTI安保公司、AD转换技术有限公司、INT中断快递有限公司。 EXTI安保公司有一个经理和三个员工,分别为: 经理:寄存器·李 门卫:边沿检测·王 业务员:中断业务·杨 发言人:脉冲输出·赵 下图便是EXTI安保公司,黄色方框是集团董事长,绿色方框是经理,蓝色方框1~3分别是门卫、业务员、发言人。 边沿中断事件 一天,EXTI技术有限公司经理寄存器·李得到集团董事长的指示,要抓一个叫边沿的家伙,把它交给AD转换技术有限公司处理。(外部中断触发AD转换) 经理赶紧告诉门卫边沿检测·王:“小王啊,注意点,如果遇到一个叫边沿的时候告诉我一声!
[单片机]
STM32F407-外部中断
一.基本概念 STM32F4的每个IO都可以作为外部中断输入。 STM32F4的中断控制器支持22个外部中断/事件请求: EXTI线0~15:对应外部IO口的输入中断。 EXTI线16:连接到PVD输出。 EXTI线17:连接到RTC闹钟事件。 EXTI线18:连接到USB OTG FS唤醒事件。 EXTI线19:连接到以太网唤醒事件。 EXTI线20:连接到USB OTG HS(在FS中配置)唤醒事件。 EXTI线21:连接到RTC入侵和时间戳事件。 EXTI线22:连接到RTC唤醒事件。 每个外部中断线可以独立的配置触发方式(上升沿,下降沿或者双边沿触发),触发/屏蔽,专用的状态位。
[单片机]
STM32笔记(六)---GPIO中断EXTI
一、 基础概念 EXTI框图 外部中断通用I/O映像 EXTI 中断/事件线 ∴ 1.输入线总共有20条,EXTI0~EXTI19 2.通过配置AFIO_EXTICRx寄存器相应位段进行设置: 以框图为配置步骤参考,上升沿与下降沿触发选择寄存器(EXTI_RTSR 、EXTI_FTSR )配置后GPIO触发则边沿检测电路输出1与软件中断事件寄存器(EXTI_SWIER )相或; 上端(中断):输出至请求挂起寄存器(EXTI_PR)置1并同中断屏蔽寄存器(EXTI-IMR)相与输出至NVIC中断控制器(中断服务函数) 下端(事件):输出至与门跟事件屏蔽寄存器(EXTI_EMR )相与输出至脉冲发生
[单片机]
串口不定长接收数据--空闲中断方式测试
1.问题描述: 使用串口的空闲中断和接收中断进行串口数据的不定长接收 2.测试平台: (1)芯片STM32F756VGT6 (2)IAR软件环境 (3)使用芯片的串口6,和外接的RS485收发模块一起用做RS485通讯 3.实际操作: (1)串口初始化: void MX_UART6_Init(void) { huart6.Instance = USART6; huart6.Init.BaudRate = 115200; huart6.Init.WordLength = UART_WORDLENGTH_8B; huart6.Init.StopBits = UART_STOPBITS_1
[单片机]
ARM 体系的异常中断
6.1 ARM 体系的异常中断 6.1.1 异常中断的种类 当ARM 系统正常的程序执行流程发生暂时的停止时,称之为异常,ARM 系统对异常的 响应过程称之为异常中断。例如当ARM 系统检测到外部的复位信号有效,ARM 系统的程 序就会跳转到复位处理程序。在处理异常之前,ARM 内核保存当前的处理器状态,这样当 处理程序结束时可以恢复执行原来的程序。当然ARM 体系的产生异常中断后,会按照一定 的程序进行中断处理。下面我们分别介绍ARM 系统异常,ARM 体系异常中断包括复位、 未定义的指令、软件中断,指令预取中断等。 ●复位(Reset ):当处理器的复位引脚有效时,系统产生
[单片机]
深度解读S3C2410A的嵌入式系统的U-Boot移植
0 引 言 ARM嵌入式处理器已被广泛应用于消费电子产品、无线通信、网络通信和工业控制等领域。其中,ARM9的芯片更是以其低价格、低功耗、高性能在手持设备中占据着重要市场。在嵌入式操作系统中,Linux,Vxworks,WinCE三足鼎立,其中Linux由于其开源性、稳定性、安全性、可裁减性更是一支独放。在嵌入式系统中,如何实现在ARM9平台下Linux操作系统的引导工作是嵌入式技术开发的重要环节。 1 嵌入式系统的软件组成 1.1 系统的软件组成 嵌入式的软件系统主要由Bootloader、操作系统、文件系统、应用程序等组成。其中,Bootloader是介于硬件和操作系统之间的一层,其作用就好像PC机中的BIOS。系统加电运
[单片机]
STM8S208R8的第七个程序---定时中断
#include iostm8s208r8.h #define LED PC_ODR_ODR1 void GPIO_INIT()//PC1推挽输出 { PC_DDR_DDR1=1; PC_CR1_C11=1; LED=1;//先熄灭LED } void TIM2_INIT() { TIM2_PSCR_PSC=11;//计数器时钟F_CLK=F_CPU/2的PSC次方,此处是2的11次方 TIM2_ARRH=0X03;//自动重装载高8位 TIM2_ARRL=0XE8;//自动重装载低8位TIM2_ARR=0X03E8=1000,即计数1000次产生一次中断 TIM2_IER_UIE=1;//允许中断更新 TIM2
[单片机]