优先级中断问题

小黄人软件
博客专家认证
2013-01-25 09:17:49
问题描述
1.如果在 低优先级中断 中进入 高优先级中断 则 低优先级中断 中被中断的后一部分程序不执行,程序在执行完 高优先级中断 后直接转到 低优先级中断 前的那个地方执行?


说明:
1.不准修改低优先级中断中内容。高优先级中断里程序可以很大。
2.低优先级中断中的堆栈不好计算。


分析:

1.在 低优先级中断 中是否一定要进入 高优先级中断 ?
2.低优先级中断 前的那个地方是否可以知道?
3.是否可以判断程序在 低优先级中断 中进入 高优先级中断 ?

可以知道的内容:
1.
...全文
496 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
hualude_lzx 2013-01-31
  • 打赏
  • 举报
回复
中断最好是进中断后关掉,出中断时再打开,里面内容要能很快处理完。若是有很多的话,就放到主程序处理,有一种办法是让中断返回地址能到主程序去,可以处理要做的大工作量的任务。
fengfengzhi 2013-01-30
  • 打赏
  • 举报
回复
在哪里被中断的肯定回到哪里!!!
小黄人软件 2013-01-28
  • 打赏
  • 举报
回复
谢了。我再看看
smallbright 2013-01-27
  • 打赏
  • 举报
回复
不同的芯片核处理中断就是不一样
lr2131 2013-01-26
  • 打赏
  • 举报
回复
引用 楼主 chenhao0568 的回复:
问题描述 1.如果在 低优先级中断 中进入 高优先级中断 则 低优先级中断 中被中断的后一部分程序不执行,程序在执行完 高优先级中断 后直接转到 低优先级中断 前的那个地方执行? 说明: 1.不准修改低优先级中断中内容。高优先级中断里程序可以很大。 2.低优先级中断中的堆栈不好计算。 分析: 1.在 低优先级中断 中是否一定要进入 高优先……
整个问题的描述应该可以算是中断嵌套的范畴。 首先,大多数MCU是默认不支持中断嵌套的。例如MSP430,ARM7...等 在进入中断后,SR状态寄存器默认是关闭外部中断的,如果需要支持中断嵌套,那么需要用户在ISR中手工开始中断允许位,并压栈相关信息。后续的嵌套问题,对于MSP430,如果有一个新的中断到来则不管怎么样都会打断当前中断而不管优先级是否低于当前中断优先级,如果是多个中断则按优先级原则选取高优先级中断来打断当前中断,也就是说在决定哪个中断进入时会按优先级原则来,但是打断时就不管这个。这个是MSP430的。 对于ARM7的,也是默认在进入中断后SR寄存器中默认关中断,用户需要压栈相关信息,开启允许位,但是满足什么样条件的中断可以打断当前中断,这个我也不记得了,是不是和MSP430一样我也说不清。(真惭愧,我还是主玩ARM的,都没MSP430记得清楚了) 然后对于最先的CM3,这个就极其先进了!!!默认是支持中断嵌套的,但明显更合理了,设计理念是尽量让中断更快响应,尽量让高优先级ISR处理,同时中断嵌套是硬件本身支持的!!!,执行中的高优先级中断是不能被低优先级中断打断的,这个和MSP430不同。还有“晚到中断”的处理机制,你上面似乎有相似的问法,在低优先级ISR没有完全进入时,假如说正在压栈被中断的现场信息,这个时候来个高优先级中断是可以打断低优先级ISR的,相当于低优先级做了“火中取栗”的事情。然后还有“咬尾中断”机制,这个不算是嵌套的范畴,而是说一个中断处理完,不用把之前被打断的现场信息弹栈,而是继续把另外的中断在当前环境下处理了再恢复之前的状态。 我接触的MCU也不是很多,但也发现关于中断具体处理机制,到了很多细节部分,不同的MCU是设计得不一样的,而且就算是ARM,v4版本的指令体系结构和v7的差距巨大,另外就算是同一个版本的指令体系结构,不同的芯片制造商说不定也可能不按ARM公司给定的来,毕竟ARM的设计理念是很先进的,有很多地方是建议芯片制造商怎么做,但没有强制要有一定得这么做。 总之,具体芯片,具体分析,不好一概而论。另外,这些东西如果真的需要用到,最好亲自做一下验证。个人观点,仅供参考。希望能帮到你。
Armoricdb 2013-01-26
  • 打赏
  • 举报
回复
具体厂家的单片有关。不同的核中断处理起来是不一样的。有的有优先级,有的没有。有的可以嵌套,有的不能。
默寞 2013-01-25
  • 打赏
  • 举报
回复
亲 如果你是在学ARM的话建议研究一下ARM体系结构的异常与中断,看懂了你就明白了 中断是否能被中断打断 各体系结构的处理器不太一样
lbing7 2013-01-25
  • 打赏
  • 举报
回复
这个问题是中断过程的问题 LZ先找找,中断的响应过程。大概在微机原理会对这个有比较详尽的讨论
小黄人软件 2013-01-25
  • 打赏
  • 举报
回复
可以知道的内容,不知道需要知道? 可以说步骤
小黄人软件 2013-01-25
  • 打赏
  • 举报
回复
中断可以被更高优先级的中断打断 ,我说的是STC12C5A32S2 。

27,511

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧