打印

请教str912的中断优先级设置

[复制链接]
2504|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
armnew|  楼主 | 2008-1-9 21:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本人是初次接触arm,对于中断优先级的概念不是很清楚。
我要使用一个外部中断,在初始化里设置了下面这句。
VIC_Config(WIU_ITLine, VIC_IRQ, 0);
我看了下手册,这样就是把WIU_ITLine的优先级设置为最高,但是我在仿真中发现,在进入这个中断服务程序时,还会响应别的优先级低的中断请求。
为什么会这样呢?
还有我的程序有时候会出现,IRQ模式的sp指针出错,结果程序就进入了数据访问中止异常,请问为什么会发生这种情况呢?IRQ的堆栈已经设置的足够大了。
沙发
一览| | 2008-1-10 08:43 | 只看该作者

Str912 中断优先级分两组

STR912 中断优先级分两组: VICO, VIC1, 由于硬件设计的原因, VICO 内中断源的优先机都高于VIC1的.
Interrupt Priority
The FIQ interrupt has the highest priority and is followed by the 32 vectored interrupts. The
interrupt priority is based on the position of the vectored interrupt, where VIC0 Vectored
Interrupt 0 has the highest priority and VIC1 Vectored Interrupt 15 has the lowest priority. The
priority is hardwired and can not be changed.
Each of the Vectored Interrupts has a Control Register which specifies the input source of the
interrupt. Depending on your application requirement, you can assign an interrupt source/input
to a low or high priority Vectored Interrupt by writing to the Control Register. The Vectored
Interrupt priority is fixed by hardware, but the interrupt input source to the Vectored Interrupt is
software programmable (selectable).

使用特权

评论回复
板凳
香水城| | 2008-1-10 10:46 | 只看该作者

请问你的中断服务程序中做了什么?

系统的响应与你的程序密切相关。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

6

帖子

1

粉丝