首页 > 其他分享 >中断

中断

时间:2024-02-28 16:15:28浏览次数:32  
标签:函数 中断 处理函数 执行 CPU 外设

一、中断的基础概念

当CPU在执行的程序的时候,有突发情况需要处理,那么CPU会暂停正在执行的程序,而转去执行中断处理函数,结束后再返回来继续处理当前程序。

这种程序在执行中被外部原因打断的情况,称为中断。

1.1采用中断的好处:

(1)一般CPU的处理速度更快,而外设的处理速度较慢,CPU和外设可以各做各的事,当外设处理事件完成后再与CPU进行交互,而不需要CPU等待外设完成,

提高CPU的利用效率。

(2)有利于实现实时处理数据,CPU能够根据实际情况作出反应,达到实时控制的要求。

(3)有利于实时处理系统异常,系统在运行中会遇到一些异常,系统能够及时做出反应来处理这种异常,防止系统崩溃。

1.2 中断处理函数

  内核响应终端后要执行的函数。比如ADC转换完成中断被响应,CPU执行相应的中断处理函数,函数从数据寄存器中读走数据。

1.3 中断向量

  中断处理函数的入口地址,CPU响应中断请求后,会跳转到该地址执行代码

二、中断函数的书写格式

#pragma vector=向量名称
__interrupt void 函数名称(void)

{
执行代码
  }

 

*中断函数不能有返回值也不能有参数

 

标签:函数,中断,处理函数,执行,CPU,外设
From: https://www.cnblogs.com/gaishuobulao/p/18040724

相关文章

  • stm32 中断处理函数注意事项
    一前记最近在公司的一个项目中碰到一个解决了定位很久的bug,bug找到的时候发现犯了很低级的错误——在中断处理函数中调用了printf函数,因为中断处理函数的调用了不可重入函数,导致接收到莫名其妙的数据。后面通过定位才发现这个是因为里面调用了不可重入函数导致的。那......
  • mpsoc嵌入式vitis开发—AXI GPIO中断实验
    前言vitis版本:Vitis2023.2由于Vitis版本更新,很多API发生变化,学习原子哥的教程时很多代码对于不上,所以自己重新写一遍,并记录下自己踩过的坑,方便以后查看。这里直接给出代码,其他的流程参考原子哥的《2_DFZU2EG_4EVMPSoC之嵌入式Vitis开发指南_V1.0.pdf》代码#include"sleep.h......
  • mpsoc嵌入式vitis开发—外部中断实验
    前言vitis版本:Vitis2023.2由于Vitis版本更新,很多API发生变化,学习原子哥的教程时很多代码对于不上,所以自己重新写一遍,并记录下自己踩过的坑,方便以后查看。这里直接给出代码,其他的流程参考原子哥的《2_DFZU2EG_4EVMPSoC之嵌入式Vitis开发指南_V1.0.pdf》代码#include"platfor......
  • am33xx linux中断处理流程
    运行环境kernel5.10 CPUTiam33xxlinux中断的3个结构体structirq_desc{ structirq_common_data irq_common_data; structirq_data irq_data; unsignedint__percpu *kstat_irqs; irq_flow_handler_t handle_irq; structirqaction *action; /*IRQact......
  • 通过中断捕获引脚高电平持续时间
    include"stm32f10x.h"//Deviceheaderexternuint16_tNUM;intflag=0,times;voidIC_Init(void){RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//开启时钟GPIO_InitTypeDefGPIO_InitStructure;GPIO_InitStructure.GPIO_Mode=......
  • 07_TIM定时中断
    TIM定时中断TIM简介定时器类型基本定时器通用定时器高级定时器基本定时器仅支持向上计数:0->重装值->发起中断通用定时器和高级定时器支持向上计数,向下计数,中央对齐计数向下计数:重装值->0->发起中断中央对齐计数:0->重装值->发起中断->0->发起中断基本定时器只......
  • I2S中断问题记录
    之前写过一篇I2S+DMA的使用(I2S通信工程建立-kkk123456**-博客园(cnblogs.com))这次又用到了I2S+DMA,但是和上次不同,这次DMA使用Normal模式,我想等I2S接收完成之后再使用DMA把数据从外设搬到内存中配置修改如下:生成工程后,定义了一个标志位iis_flag,在I2S接收回调函数里将iis......
  • EXTI中断、TIM定时器
    一.中断系统1.中断:在主程序运行过程中,出现了特定的中断触发条件(中断源),使得CPU暂停当前正在运行的程序,转而去处理中断程序,处理完成后又返回原来被暂停的位置继续运行。2.中断优先级:当有多个中断源同时申请中断时,CPU会根据中断源的轻重缓急进行裁决,优先响应更加紧急的中断源。......
  • 使用 For each 循环替换xelement操作中断
     使用Foreach循环替换xml元素xelement时,只能操作一个然后就中断了.是因为修改了枚举组自身,导致foreach中断.  解决方案: 在枚举组添加ToArray转换为数组或列表后再进行操作. ForEachbrAsXElementInSelectorXe.......
  • 关于spring.redis.cluster集群部分Master节点故障后 交易中断60秒解决方案
     背景  第一种方案:公司项目做性能测试,redis集群选用cluster集群模式,开始选用3主3从,共3台服务器,每个服务器一主一从。    服务器A  redis8001 8002    服务器B  redis8003 8004     服务器C  redis8005 8006    8001主    ......