《tiny6410裸机程序》第八章:S3C6410总中断控制寄存器

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

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

总中断号中断源组中断源成员描述对应总中断控制器
0INT_EINT0外部中断的EINT0~EINT3/GPN0~GPN3VIC0
1INT_EINT1外部中断的EINT4~EINT11/GPN4~GPN11VIC0
........................
32INT_EINT2外部中断的EINT12~EINT19/GPN12~GPN15、GPL8~GPL11VIC1
33INT_EINT3外部中断的EINT20~EINT27/GPL12~GPL14、GPM1~GPM4VIC1
........................

  上述是比较常用的外部中断,还有是:

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

  注意第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


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值