1. 结构框图


这里我以外部中断为例画出了中断响应的过程。
- 当外部中断得到响应,会由硬件自动转到异常向量表,执行对应的异常处理程序。在这里指的就是IRQ的处理程序。
- 在异常处理程序IRQ_handle中将会执行现场的保护与恢复,以及最重要的中断处理函数(注意,这里就来到了中断处理部分,而不是异常处理了,相当于是一个两级的机制)。
- 在中断处理程序irq_handler中(代码如下),将会通过判断中断标志位来找到外部中断到底来自于VIC0/VIC1/VIC2/VIC3。(S5PV210支持多达93个中断,所以有四个中断控制器来控制。)找到之后,调用对应外部中断的处理函数(即VICnADDR指向的函数)。

void irq_handler(void)
{unsigned long vicaddr[4] = {VIC0ADDR,VIC1ADDR,VIC2ADDR,VIC3ADDR};int i=0;void (*isr)(void) = NULL;for(i=0; i<4; i++){// 发生一个中断时,4个VIC中有3个是全0,1个的其中一位不是0if(intc_getvicirqstatus(i) != 0){isr = (void (*)(void)) vicaddr[i];break;}}(*isr)();       // 通过函数指针来调用函数
}

2. 详细讲述如何找到外部中断对应的处理函数

在上面我们提到,S5PV210支持多达93个中断,而在S3C2440中也支持几十个中断,但是两者的处理方式是截然不同的。
- 在S3C2440中,同样也有类似于上图中“外部中断向量表1”这样的表格,但是当一个外部中断发生后,需要通过轮询的方式查找中断标志位得到正确的外部中断编号,然后调用对应的中断处理子函数。这样处理器的响应时间变长,无法适应高实时性要求。
- S5PV210则用硬件更好地解决了问题,以上面的外部中断向量表1为例,如果是其中的中断源发生了中断,那么相应的中断处理函数将会自动复制到VIC0ADDR寄存器当中,不需要人工轮询,只需要将中断处理函数写到“外部中断向量表1”的对应位置处即可,,当然了因为S5PV210有四个VIC,所以还是要轮询四次。

3. 其他

其他诸如中断使能、中断模式(IRQ/FIQ)的选择、中断引脚的相关配置(GPIO设成外部中断、触发方式、中断使能)、清挂起等不在此赘述。

S5PV210-裸机中断相关推荐

  1. 裸机篇 -- S5PV210的中断体系

        本帖主要通过外部中断实验来学习S5PV210的中断体系. S5PV210的中断体系结构 在官方datasheet -- S5PV210_UM_REV1.1 中的sections 04_inte ...

  2. S5PV210裸机之串口

    1:串口的基础知识 串口通信定义 串口是计算机上一种非常通用设备通信的协议.大多数计算机包含两个基于RS232的串口.串口同时也是仪器仪表设备通用的通信协议:很多GPIB兼容的设备也带有RS-232口 ...

  3. S5PV210 | 裸机汇编LED流水灯实验

    S5PV210 | 裸机汇编LED流水灯实验 开发板: 1.原理图 上图中,当按下POWER键后,VDD_5V和VDD_IO会产生5V和3.3V的电压,其中D26无须GPIO控制,为常亮状态,即我们所 ...

  4. intrupt 6410裸机中断

    我之前研究了6410的io口中断,想对着datasheet写出中断程序,但是发现,我虽然对着 datasheet可以知道他每个register的作用,但是它们之间的关联并不是很清楚,于是查了 不少的资 ...

  5. S5PV210裸机之外部中断

    S5PV210中断体系介绍 一.什么是中断?  (1)中断的发明是用来解决宏观上的并行需要的.宏观就是从整体上来看,并行就是多件事情都完成了.  (2)微观上的并行,就是指的真正的并行,就是精确到每一 ...

  6. S5PV210裸机之Nandflash

    NAND Flash 关于NAND Flash S5PV210的NAND Flash控制器有如下特点: 1) 支持512byte,2k,4k,8k的页大小 2) 通过各种软件模式来进行NAND Fla ...

  7. s5pv210的中断源

    S5PV210中因为支持的中断源很多,所以直接设计了4个中断寄存器,每个32位,每位对应一个中断源. 理论上210最多支持128个中断,实际支持不足128个,有些位是空的. 210没有子中断寄存器,每 ...

  8. S5PV210裸机之LCD

    LCD 简介 什么是 LCD ? (1) LCD ( Liquid Crystal Display )俗称液晶. (2)液晶是一种材料,液晶这种材料具有一种特点:可以在电信号的驱动下液晶分子进行旋转, ...

  9. S5PV210裸机之SD卡

    主流的外存设备介绍 内存和外存的区别: 一般是把这种RAM(random access memory,随机访问存储器,特点是任意字节读写,掉电丢失)叫内存,把ROM(read only memory, ...

  10. S5PV210裸机之时钟

    1.S5PV210的时钟获得:外部晶振+内部时钟发生器+内部PLL产生高频时钟+内部分频器分频 S5PV210外部有4个W晶振接口,可以根据需要来决定在哪里接晶振.接了晶振之后上电相应的模块就能产生振 ...

最新文章

  1. java 中的finally你知多少_Java 处理异常 9 个最佳实践,你知道几个?
  2. 这个牛逼技术你可千万别学!
  3. ffmpeg库编译加文字_ffmpeg第三方库编译记录
  4. 利用python快速搭建一个ftp文件服务器
  5. Dubbo启动时qos-server can not bind localhost:22222错误解决
  6. Unity联网游戏基础原理与字节数组
  7. 【IT笔试面试题整理】链表
  8. 常用计算机二级函数,计算机二级MS office常用函数
  9. Python基本操作(二)注释、分隔
  10. Specify 的含义 ------ 转载
  11. matlab编写算法,Matlab 入门宝典 编程算法大全
  12. 私服脚本制作教程......
  13. 有没有可以干一辈子的工作?
  14. Web项目【用户管理系统】完整版
  15. Android5更新包,Android 5.x OTA Update官方文档(四、OTA更新包解读)
  16. Unity数据持久化-Json
  17. Java多线程(学习分享)
  18. SQL执行顺序和流程
  19. Linux查主板槽位使用情况,linux下查看主板内存槽与内存信息
  20. Ubuntu系统安装微信(解决高分辨率屏幕问题及图标显示问题)

热门文章

  1. 学讲普通话水平测试软件,普通话智能学习软件
  2. 给中国学生的第三封信:成功、自信、快乐
  3. 三国杀开源系列之一104@365
  4. 老司机带你快速熟悉Swift 4.1(一)
  5. 压力传感器与数据采集
  6. 人工智能Java SDK:词法分析模型能整体性地完成中文分词、词性标注、专名识别任务
  7. 聊聊广域网ppp协议和认证
  8. Vue中将Element表格导出为excel
  9. 微信婚恋相亲交友小程序
  10. 如果有人能力不如你工资比你高怎么看?