专业的门户网站建设,wordpress wp-content 权限,上海网络推广营销策划方案,电子商务网站多少钱对于ARM的处理器#xff0c;中断给处理器提供了触觉#xff0c;使处理器能够感知到外界的变化#xff0c;从而实时的处理。本系列博文#xff0c;是以ARM cortex-A系列处理器#xff0c;来介绍ARM的soc中#xff0c;中断的处理。
ARM cortex-A系列处理器#xff0c;提供…对于ARM的处理器中断给处理器提供了触觉使处理器能够感知到外界的变化从而实时的处理。本系列博文是以ARM cortex-A系列处理器来介绍ARM的soc中中断的处理。
ARM cortex-A系列处理器提供了4个管脚给soc实现外界中断的传递。分别是
nIRQ 物理普通中断
nFIQ: 物理快速中断
nVIRQ: 虚拟普通中断
nVFIQ: 虚拟快速中断
如下图所示 其中虚拟中断是为了实现虚拟化而加入的在这个系列中不讨论虚拟中断只介绍物理中断的相关知识。
在arm的soc系统中会有多个外设均有可能会产生中断发送给arm cpu等待cpu处理。
而arm cpu对中断只提供了2根信号一个nIRQ一个是nFIQ。因此就需要有一个中断控制器来作为中间的桥接收集soc的所有中断信号然后仲裁选择合适的中断再发送给CPU等待CPU处理。如下图所示 这中间的桥接器件就是arm公司推出大名鼎鼎的gicgeneral interrupt controller。
gic其实是一个架构版本历经了gicv1已弃用gicv2gicv3gicv4。对于不同的gic版本arm公司设计了对应的gic IP。
gic400支持gicv2架构版本。
gic500支持gicv3架构版本。
gic600支持gicv3架构版本。
gic的核心功能就是对soc中外设的中断源的管理并且提供给软件配置以及控制这些中断源。
当对应的中断源有效时gic根据该中断源的配置决定是否将该中断信号发送给CPU。如果有多个中断源有效那么gic还会进行仲裁选择最高优先级中断发送给CPU。
当CPU接受到gic发送的中断通过读取gic的寄存器就可以知道中断的来源来自于哪里从而可以做相应的处理。
当CPU处理完中断之后会告诉gic其实就是访问gic的寄存器该中断处理完毕。gic接受到该信息后就将该中断源取消避免又重新发送该中断给cpu以及允许中断抢占。