参考:
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
1. 中断源
S3C6410有64个中断源,0-31由VIC0控制,32-63由VIC1控制。产生中断时,进入IRQ或FIQ工作模式。
64个中断源的定义见《USER‘S MANUAL-S3C6410X》12.3 INTERRUPT SOURCE。中断源分内部中断源和外部中断源。内部中断源由S3C6410芯片的内部模块产生。外部中断源由S3C6410芯片的外部模块产生。
64个中断源中,外部中断的中断号分配如下:
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
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工作模式
各个工作模式下用到的寄存器如下:
除了system mode和user mode,其余6中工作模式都属于exception,优先级如下:
中断向量表用于存放中断处理程序的入口地址,中断向量表在0地址处