首页 > 代码库 > s3c6410_中断
s3c6410_中断
参考:
1)《USER‘S MANUAL-S3C6410X》Chapter 10 GPIO, Chapter 12 VECTORED INTERRUPT CONTROLLER
2)《ARM1176 JZF-S Technical Reference Manual》Chapter 2 Programmer‘s Model, Chapter 12 Vectored Interrupt Controller Port
3)《ARM Architecture Reference Manual》Chapter A2 Programmers‘ Model,
4)u-boot源码:
u-boot-x.x.x/cpu/s3c64xx/start.S
<style></style>
1. 中断源
S3C6410有64个中断源,0-31由VIC0控制,32-63由VIC1控制。产生中断时,进入IRQ或FIQ工作模式。
64个中断源的定义见《USER‘S MANUAL-S3C6410X》12.3 INTERRUPT SOURCE。中断源分内部中断源和外部中断源。内部中断源由S3C6410芯片的内部模块产生。外部中断源由S3C6410芯片的外部模块产生。
64个中断源中,外部中断的中断号分配如下:
<style></style>
Int. No. | Sources | Description | Group |
53 | INT_EINT4 | External interrupt Group 1 ~ Group 9 | VIC1 |
33 | INT_EINT3 | External interrupt 20 ~ 27 | VIC1 |
32 | INT_EINT2 | External interrupt 12 ~ 19 | VIC1 |
1 | INT_EINT1 | External interrupt 4 ~ 11 | VIC0 |
0 | INT_EINT0 | External interrupt 0 ~ 3 | VIC0 |
即:外部中断源group1-group9产生的中断的中断号为53;外部中断源group0的0-3号中断的中断号为0,4-11号中断的中断号为1,12-19号中断的中断号为32,20-27号中断的中断号为33。
2. 外部中断源
S3C一共有127个外部中断,分为10组,即group0-group9
<style></style>Group | 中断源 | 中断数 | GPIO分布 |
group0 | EINT0-EINT27 | 28 | GPL,GPM,GPN, |
group1 | EINT1[14:0] | 15 | GPA,GPB |
group2 | EINT2[7:0] | 8 | GPC |
group3 | EINT3[4:0] | 5 | GPD |
group4 | EINT4[13:0] | 14 | GPF |
group5 | EINT5[6:0] | 7 | GPG |
group6 | EINT6[9:0] | 10 | GPH |
group7 | EINT7[15:0] | 16 | GPO |
group8 | EINT8[14:0] | 15 | GPP |
group9 | EINT9[8:0] | 9 | GPQ |
3. S3C6410工作模式
<style></style>
各个工作模式下用到的寄存器如下:
<style></style>
除了system mode和user mode,其余6中工作模式都属于exception,优先级如下:
<style></style>
中断向量表用于存放中断处理程序的入口地址,中断向量表在0地址处
s3c6410_中断