当前位置: 首页 > news >正文

S3C2440中断处理

一、中断处理机制概述

中断是CPU在执行程序过程中,遇到急需处理的事件时,暂时停止当前程序的执行,转而执行处理该事件的中断服务程序,并在处理完毕后返回原程序继续执行的过程。S3C2440提供了丰富的中断源,包括内部中断和外部中断,以及支持子中断的功能。

二、中断处理得流程

上图为中断处理的框图,首先中断源分为有子中断和无子中断两类;
(1)当有子中断时,SUBSRCPND和SRCPND会自动置位,紧接着需要将中断屏蔽寄存器和次级中断屏蔽寄存器(SUBMASK和INTMSK以及INTSUBMSK设置为0)使能(开启中断服务),此时表明中断设置成功;
接下来使用INTOFFSET中断偏移寄存器可以准确定位到中断处理函数的地址处,进而进行中断处理;需要注意的是在中断处理函数中,当处理完业务之后,必须将之前因中断产生而置位的中断标志位清除(一般写入1即可),顺序必须遵循如上框图,从左至右,依次清除;
(2)无子中断的处理过程和有子中断的基本一致,省略掉子中断的那一部分即可;

二、中断实现

外部中断:通过引脚接收
S3C2440有24个外部中断引脚
EXTINT0 —》设置信号
EINTMASK–》信号使能
EINTPEND–》 信号标志

 

 

 

void deal_eint8_23(void)
{if(EINTPEND & (1 << EINT8)){EINTPEND |= (0x01 << EINT8);}
}void deal_irq_c(void)
{unsigned int irq_num = INTOFFSET;switch(irq_num){case EINT8_23:deal_eint8_23();break;default:break;}SRCPND |= (1 << irq_num);INTPND = INTPND;
}void eint8_init(void)
{//配置GPG0功能位eint8GPGCON &= ~(0x3 << 0);GPGCON |= (0x2 << 0);//设置eint8的触发方式EXTINT1 &= ~(0x7 << 0);EXTINT1 |= (0x2 << 0);//使能eint8EINTMASK &= ~(0x1 << 8);//使能eint8_23INTMSK &= ~(0x1 << 5);
}

http://www.lryc.cn/news/429862.html

相关文章:

  • 《数据分析与知识发现》
  • IaaS,PaaS,aPaaS,SaaS,FaaS,如何区分?
  • 软件测试工具分享
  • word翻译工具有哪些?5个工具助你快速翻译Word文件
  • 【51单片机】ds18b20驱动,11.0592MHZ,使用DS18b20
  • Vue 导航条+滑块效果
  • Android:使用Gson常见问题(包含解决将Long型转化为科学计数法的问题)
  • 【Win开发环境搭建】Redis与可视化工具详细安装与配置过程
  • Compose知识分享
  • python-study-day5
  • Telegram mini app 本地开发配置
  • python发票查验接口助您拒绝做糊涂账、发票ocr
  • 【Linux】线程控制|POSIX线程库|多线程创建|线程终止|等待|线程分离|线程空间布局
  • JimuReport 积木报表 v1.8.0 版本发布,开源可视化报表
  • 性能优化理论篇 | swap area是个什么东西
  • Photoshop (PS)下载安装win/mac版
  • 初识redis:Set类型
  • Qt 设置QTableView的某列或某行只读
  • 这么多焊工证,我该拥有那种焊工证呢?
  • HttpWebRequest访问https请求被中止: 未能创建 SSL/TLS 安全通道
  • 响应式Web设计:纯HTML和CSS的实现技巧
  • linux centos 防火墙常用命令
  • iOS18 Beta7 最终测试版推送:苹果的又一次技术飞跃
  • 超详细!2024叉车证办理及考试流程详解!速看!
  • 浅谈监听器插件之SSHMon Samples Collector
  • R语言论文插图模板第7期—分组散点图
  • 设计模式 抽象工厂方法模式
  • PowerShell 一键配置IP
  • 【Pyhthon读取 PDF文件表格 ,转为 CSV/TSV/JSON文件】
  • <数据集>商品条形码识别数据集<目标检测>