博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《tiny6410裸机程序》第八章:S3C6410总中断控制寄存器
阅读量:4180 次
发布时间:2019-05-26

本文共 1180 字,大约阅读时间需要 3 分钟。

  子中断组的划分是根据设置它们的寄存器是否是同一个;总中断的按组划分,也是一样。

  S3C6410总中断控制器共支持64个中断,分别由两组总中断控制器、即VIC0和VIC1来处理。上一章节我们分析的28个外部中断即第0组外部中断与总中断的对应关系是:

总中断号 中断源组 中断源成员描述 对应总中断控制器
0 INT_EINT0 外部中断的EINT0~EINT3/GPN0~GPN3 VIC0
1 INT_EINT1 外部中断的EINT4~EINT11/GPN4~GPN11 VIC0
...... ...... ...... ......
32 INT_EINT2 外部中断的EINT12~EINT19/GPN12~GPN15、GPL8~GPL11 VIC1
33 INT_EINT3 外部中断的EINT20~EINT27/GPL12~GPL14、GPM1~GPM4 VIC1
...... ...... ...... ......
  上述是比较常用的外部中断,还有是:

总中断号 中断源组 中断源成员描述 对应总中断控制器
53 INT_EINT4 外部中断的1到9组/GPA0~GPA7、GPC0~GPC7、...  、GPP0~GPP17、GPQ0~GPQ8 VC1

  注意第0组外部中断占用了0、1、32和33总共4个总中断号;第1至9组外部中断用了53号1个总中断号。除此之外,其余都是内部中断、共计64-5=59个中断。

下面介绍总中断控制器:

一、VIC0

处理总中断号是0~31

1.总中断使能寄存器rVIC0INTENABLE = 0x7120 0010

相应位置1表示打开,置0表示关闭。

2.总中断处理程序地址寄存器rVIC0VECTADDR = 0x7120 0100 ~ 0x7120 017C

rVIC0VECTADDR是保存总中断号为0的中断服务程序;

rVIC0VECTADDR+4是保存总中断号为1的中断服务程序。以此类推。

rVIC0VECTADDR+0x78是保存总中断号为31的中断服务程序。

3.当前中断处理程序地址寄存器rVIC0ADDR = 0x7120 0F00

二、VIC1

处理中断号是32~63

1.总中断使能寄存器rVIC1INTENABLE = 0x7130 0010

相应位置1表示打开,值0表示关闭。 

2.总中断处理程序地址寄存器rVIC1VECTADDR = 0x7130 0100 ~ 0x7130 017C 

rVIC1VECTADDR是保存总中断号为32的中断服务程序;

rVIC1VECTADDR+4是保存总中断号为33的中断服务程序。以此类推。

rVIC1VECTADDR+0x78是保存总中断号为63的中断服务程序。

3.当前中断处理程序地址寄存器rVIC1ADDR = 0x7130 0F00

转载地址:http://tegai.baihongyu.com/

你可能感兴趣的文章
XHProf-php轻量级的性能分析工具
查看>>
Jackson Tree Model Example
查看>>
常用js收集
查看>>
如何防止sql注入
查看>>
springmvc传值
查看>>
在Eclipse中查看Android源码
查看>>
[转]C语言printf
查看>>
Mysql中下划线问题
查看>>
Xcode 11 报错,提示libstdc++.6 缺失,解决方案
查看>>
vue项目打包后无法运行报错空白页面
查看>>
1136 . 欧拉函数
查看>>
面试题:强制类型转换
查看>>
Decorator模式
查看>>
Template模式
查看>>
Observer模式
查看>>
高性能服务器设计
查看>>
图文介绍openLDAP在windows上的安装配置
查看>>
Pentaho BI开源报表系统
查看>>
Pentaho 开发: 在eclipse中构建Pentaho BI Server工程
查看>>
android中SharedPreferences的简单例子
查看>>