请教一下,ARM有没有像51那样的分"优先级"的"可嵌套"的中断

[复制链接]
3733|10
 楼主| s99060 发表于 2007-3-5 11:15 | 显示全部楼层 |阅读模式
就像51那样,高优先级的中断可以抢占正在运行的低优先级中断,更低优先级则不能.<br />找了好多款CPU,包括AVR什么的都不行啊
wydian 发表于 2007-3-5 11:22 | 显示全部楼层

当然可以了,要自己做

  
kine8393 发表于 2007-3-5 11:23 | 显示全部楼层

AIC有8个优先级,支持中断嵌套

  
 楼主| s99060 发表于 2007-3-5 13:20 | 显示全部楼层

自己做不太可能吧!AIC是不是Cortex的?ARM7的有没有呢?

  
mcuatmel 发表于 2007-3-5 15:26 | 显示全部楼层

ATmel的好像可以

你可以看一下。
 楼主| s99060 发表于 2007-3-6 11:21 | 显示全部楼层

看了,应该也不行,ARM核决定了无法实现吧

  
arzhiy 发表于 2007-3-6 11:57 | 显示全部楼层

可以上RTOS实现

可以上RTOS实现
ZJB800ZJB 发表于 2007-3-8 16:20 | 显示全部楼层

我想用抢占式内核的操作系统应该可以做到吧。

  
 楼主| s99060 发表于 2007-3-8 19:39 | 显示全部楼层

操作系统的抢占不是这个意思吧

看来只有Cortex的核能做到了<br />可为什么AVR,430,MAXQ等等的都不行呢?似乎大家都只做做仪器之类的东东哦,没做工控的吗?
mxh0506 发表于 2007-3-9 12:42 | 显示全部楼层

这是ATMEL芯片数据手册的一部分,AIC那一章的:

24.7.3.2&nbsp;中断嵌套<br />为了使低优先级中断服务期间能够处理高优先级中断,优先级控制器中使用了中断嵌套。这需要低优先级中断处理例程在处理器级别重新使能中断。<br />当处理已经发生的中断期间产生更高级的中断时,nIRQ信号线会被重新置为有效。如果中断是在核心级被使能的,当前执行过程被中断,新的中断服务例程应读取AIC_IVR。此时,当前的中断号及其优先级被压入一嵌入的硬堆栈,被保存起来;当高级中断服务完成后,这些数据从栈中弹出并恢复,然后写AIC_EOICR寄存器。<br />AIC配备了八级硬堆栈,以支持八次中断嵌套,满足八级优先权的需要。<br /><br />AVR做中断嵌套也不是问题
 楼主| s99060 发表于 2007-3-12 12:19 | 显示全部楼层

谢谢mxh0506

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

40

主题

224

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部