![]() |
1
0
当然,它将被重新提出。这是级别触发中断的一个属性。没有 状态 在中断控制器中。它很难判断中断是被重新引发还是持续存在。特别是,中断可能已经服务了很短的时间,并且GIC不会看到 高-低-高 转换以区分新的中断源和现有的中断源。
这似乎与上述问题相同。可能有一个液位触发装置 服务 该设备使中断线为高电平。例如,中断可能是 FIFO不为空 。如果 国际货币基金组织 有两个条目,第一次读取可能无法清除中断。 看见 level triggered interrupts 在维基百科上。 维修此设备后。。。 。您必须始终使用 电平触发 中断。中断控制器(GIC)不知道外围设备是如何工作的。在控制器中设置假设将限制其使用。
目前尚不清楚是什么在筑巢。例如 国际货币基金组织 例如,您可以读取设备中的条目数,也可以读取并检查 中断状态 每次读取后。当 阅读 清除中断,可以重新启用中断源。 独立IRQ源的嵌套是标准的。在步骤 f ,IRQ服务例程必须为设备提供服务,直到该级别未被驱动为止。这个 irqActive 可以读取0x300-0x304处的位以确定IRQ服务是否完成。然后,级别触发的ISR返回。如果在任何时候被抢占,控制器将检测到新的电平源,或者ISR将继续为外围设备提供服务。
如果在最后一步(或之前)发生了额外的服务项目,则会出现 背靠背 电平中断。这将是频繁的,因为在同一时间段内必须发生多个中断源。这是典型的 中断嵌套 。整个系统会更忙,但延迟会更好。 部分 3.2.1优先级下降和中断停用 具有以下步骤来禁用电平中断,
当确定实际设备已被服务时,中断被重新启用。如果您希望只允许更高优先级的中断,那么写入
编辑:
如果中断被屏蔽,它将不会重新断言。
编写 地球自转仪 将从 活动+挂起 只是 忙碌的 并且中断将重新进行(如果您所做的只是“B”)。 在里面 interrupt nesting ,Linux很自然地完成了图片的第一部分。当有两个活动ISR(右侧)时,这是一种可选配置;在“IRQ-k”期间,必须重新启用中断。要做到这一点需要更多的堆栈,并且您将不得不修改现有的Linux afaik。
第2版:
这个
|
![]() |
Engineer999 · ARM 7嵌套中断混淆 6 年前 |
![]() |
danieljimeneznz · AVR半双工接收器中断错误 7 年前 |
![]() |
jay.sf · 为什么我不能打破一个*。Rdata加载过程? 7 年前 |
![]() |
smwikipedia · SCI-系统控制中断向量是如何定义的? 7 年前 |
![]() |
Robin LeBon · 如何定义所有银行的登记簿? 8 年前 |
|
user457005 · 事件触发实时系统 9 年前 |