gpt4 book ai didi

c - ISR(中断服务例程)中类似信号量的同步

转载 作者:太空宇宙 更新时间:2023-11-04 02:30:15 25 4
gpt4 key购买 nike

我有一个队列,当不同的中断发生时,会调用队列的 put 和 pull 函数。在这种情况下有没有办法防止竞争条件?虽然我们不能在中断服务例程中等待信号量,但创建类似功能的最佳方法是什么。我们正在使用 Zynq FPGA 的 ARM-Cortex A5 处理器来开发代码。

最佳答案

假设每个中断都会导致处理器的“Interrupt Disabled”状态被打开,并且假设你正在处理的中断具有相同的优先级(即一个不能打断另一个的执行),那么已经没有竞争条件,您的 ISR 可以访问共享队列。

(当中断发生时,处理器进入中断禁用模式,将所有寄存器压入堆栈,跳转到 ISR 入口点并在那里继续执行。一旦 ISR 完成,“iret”指令执行相反的操作条目。这个简单的描述可以在不同的处理器和平台上以不同的方式实现。)

关于c - ISR(中断服务例程)中类似信号量的同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44246439/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com