一. 中断控制 ( 基于 S3C6410 开发板 )
本节 基于 S3C 6410 开发板, 不同的开发板 以及 不同 的芯片 中断控制机制是不同的 ;
1. 关闭中断的两个步骤
(1) 关闭中断步骤
关闭中断步骤 :
1.步骤 1 ( 程序状态字寄存器设置 ) : 设置 程序状态字寄存器 ( CPSR ) 中对应的与 中断 相关的位;
2.步骤 2 ( 中断屏蔽寄存器设置 ) : 设置 中断屏蔽寄存器, 该寄存器的 使用方法在开发板芯片资料中有详细介绍;
2. CPRS 寄存器中的中断控制位
(1) CPRS 寄存器简介
程序状态字寄存器 :
1.寄存器内容 : 该寄存器 中 包含 ① 状态码标志位, ② 中断标志位, ③ 当前处理器工作模式 和 其它一些 ④ 状态 与 ⑤ 控制信息 ;
2.CPSR 寄存器 : 全称 Current Program Status Register ( 当前程序状态字寄存器 ), 保存的是当前的程序状态 ;
3.SPSR 寄存器 : 全称 Saved Program Status Register ( 程序状态保存寄存器 ), 每个异常都有对应的独立的 SPSR 寄存器, 当异常发生的时候, 先将 CPSR 寄存器中的值 保存到 SPSR 寄存器中, 以便 异常处理完毕后 再回到原来断点处 继续运行 ;
4.SPSR 寄存器分布 : 用户模式 和 系统模式 没有 对应的 SPSR 寄存器, 只有 5 种 异常模式才有对应的 SPSR 寄存器 ;
( 1 ) SPSR 寄存器读写 : 在 用户模式 或 系统模式 读写 SPSR 指令 会出现不可预测的错误或行为 ;
(2) CPRS 寄存器 中断控制 相关 位
CPRS 寄存器中断控制相关位 :
1.普通中断控制位 : I 位, 第 [ 7 ] 位, 如果设置了该位 可以 关闭 普通中断 ;
2.快速中断控制位 : F 位, 第 [ 6 ] 位, 如果设置了该位, 可以 关闭 快速中断 ;
3. 中断使能寄存器
参考手册 : S3C6410X.pdf ( 基于 6410 开发板 )
1.手册对应章节 : 12.6.5 章节 VECTORED INTERRUPT CONTROLLERS;
2.S3C6410芯片手册下载地址 :https://download.csdn.net/download/han1202012/10412045
(1) 中断使能寄存器简介
中断使能寄存器 ( VICINTENABLE ) :
1.分为两个寄存器 : 中断使能寄存器 分 两个寄存器 控制所有的中断打开功能;
( 1 ) 寄存器1 VIC0INTENABLE : 其地址是 0x71200010 ;
( 2 ) 寄存器2 VIC1INTENABLE : 其地址是 0x71300010 ;
2.寄存器位 : 这两个寄存器中, 每一位都对应着一种中断源;
3.中断关闭情况 : 在 重启的时候, 所有的中断都要被禁用 ;
4.寄存器功能 : 激活中断的请求线路, 允许中断信号能到达 处理器 ; 查看对应位的设置, 可以获取某种类型的中断是否可以到达 处理器 ;
( 1 ) 读取到 0 值 : 如果读取到的值 为 0, 那么 中断不可用;
( 1 ) 读取到 1 值 : 如果读取到的值 为 1, 那么 中断可用;
5.设置寄存器值 : 这两个寄存器 只能设置中断可以使用, 无法设置 屏蔽 中断, 如果设置 1 那么激活中断, 设置 0 没有任何效果, 如果要屏蔽中断, 那么需要使用 中断屏蔽寄存器 VICINTENCLEAR;
( 1 ) 设置 0 值 : 设置 0 值 没有任何效果;
( 2 ) 设置 1 值 : 设置 1 值 激活中断功能;
(2) 中断屏蔽寄存器简介
中断屏蔽寄存器 ( VICINTENCLEAR ) 简介 :
1.分为两个寄存器 : 中断 屏蔽 寄存器 分 两个寄存器 控制所有的中断 屏蔽 的功能;
( 1 ) 寄存器1 VIC0INTENABLE : 其地址是 0x71200010 ;
( 2 ) 寄存器2 VIC1INTENABLE : 其地址是 0x71300010 ;
2.寄存器位 : 这两个寄存器中, 每一位都对应着一种中断源;
3.功能概述 : 清除 中断屏蔽寄存器 ( VICINTENABLE ) 中 对应的位就可以屏蔽对应的中断 ;
( 1 ) 设置 0 值 : 没有任何效果 ;
( 2 ) 设置 1 值 : 屏蔽对应的中断源 ;
二. 关闭中断 代码示例
参考手册 : S3C6410X.pdf ( 基于 6410 开发板 )
1.手册对应章节 : 12.6.5 章节 VECTORED INTERRUPT CONTROLLERS;
2.S3C6410芯片手册下载地址 :https://download.csdn.net/download/han1202012/10412045