中断的内容真的好多,课是听完了,但是电脑一合感觉啥都忘了,网上有很多写的很好的博文,借鉴,自己整理整理。
以按键中断为主线,当按键按下之后,会发生什么事?我自己想的:
硬件方面:怎么把Key这个中断源告诉CPU的?
软件方面:CPU接收到中断后是怎么确定是Key中断的?确定了之后又是怎么去调用Key的中断处理函数的?中断处理函数在内核中是怎么运行的?怎么退出中断等等。
自己想的不全面,网上有文章写的很好:https://www.cnblogs.com/arnoldlu/p/8659972.html想想内容真的好多。
14.1.中断触发过程
参考下STM32的中断触发过程:
参考一篇博客:https://www.cnblogs.com/Cqlismy/p/12549087.html
前面知道了按键使用的是GPIO5_1和GPIO4_14,看下它们分别对应的中断ID是多少?GPIO4的pin0~15对应ID72,GPIO5的0~15对应的ID74,也就是GPIO5_1和GPIO4_14和它们兄弟pins共用一个ID。
当按键按下后,GPIO5_1和GPIO4_14的电平发生变化,High->Low,这个电平变化怎么传递呢?硬件一路传递到GIC,具体细节就不清楚了。
当GIC接收到芯片外部的中断信号后,就会上报到ARM Core,但是ARM Core只是提供了4个信号来给GIC汇报中断的情况,分别为:VFIQ、VIRQ、FIQ和IRQ,其中VFIQ和VIRQ是针对虚拟化,暂时不关注,FIQ是用于快速中断的,重