中断方式:
1.定义:能打断当前正在进行的工作,去处理更为紧急的任务,并且在处理完中断任务后,能回到
原先的地方继续工作。
2.流程:
(1)中断源发出中断请求。
(2)CPU检查是否响应中断以及该中断是否被屏蔽。
(3)检查当前产生的中断的中断优先级。
(4)保护现场
(5)执行中断服务函数
(6)恢复现场

1.硬件介绍
(1)两红一黄三个开关,中间是复位按钮,左边低功耗按钮,右边为允许用户独立控制的试验按
键
(2)原理图分析:开关断开高电平,开关按下低电平
2.编写按键代码(轮训方式)
(1)封装代码,注册回调函数
(2)中断模块
(3)GPIO模块封装
extern void gpio_init(GPIO_Type *gpio, int pin, gpio_config_t *config);
extern int gpio_read(GPIO_Type *gpio, int pin);
extern void gpio_write(GPIO_Type *gpio, int pin, int value);
3.中断控制器GIC(通用的中断控制器)
(1)23.page
V2.0设计可以为8个内核提供中断控制服务,但我们使用的IMX6ULL只有一个内核,图中所示只有
processor 0
每个内核能够相应1020个中断源,其中0~15是SGI,16~31是PPI,能够作为外设中断源的是
SPI32~1019
(2)Distributor(分发器):
(1)SGI(Software-generated Interrupt),软件中断:
由软件触发引起的中断,通过向寄存器GICD_SGIR 写入数据来触发,系统会使用 SGI 中断来完成
多核之间的通信。
(2)PPI(Private Peripheral Interrupt),私有中断:
GIC 是支持多核的,每个核肯定有自己独有的中断。这些独有的中断肯定是要指定的核心处理,
因此这些中断就叫做私有中断;
(3) SPI(Shared Peripheral Interrupt),共享中断: