2440 中断优先级问题(作者wogoyixikexie@gliet)
//-----------------------------------------------------------------------------------------------------------
// 日期:2009年3月23日 10:49:43
// 作者:wogoyixikexie@gliet
// 版权:桂林电子科技大学一系科协wogoyixikexie@gliet
// 平台:wince5.0 2440 5.0 BSP
// 最后修改:2009年3月23日 11:21:12
//-----------------------------------------------------------------------------------------------------------
折腾2440半年多来,没有看到代码有中断优先级的痕迹,我真不信2440有这么差劲,连优先级寄存器也没有?!后来在2440的数据手册上看到了答案,感觉2440在中断优先级配置方面还是比较精妙的。
现在就来学习一下吧。
2440数据手册382页有。
从这个图可以看出,2440中断是以群组的形式存在的,再往下看看是怎么回事。
从2440文档可以看出,每个仲裁都可以通过一位的仲裁控制器 (ARB_MODE)和两位的选择控制器 (ARB_SEL) 来控制六个中断申请。但是注意的是无论ARB_MODE和ARB_SEL如何配置,REQ0永远是最高优先级,REQ5永远是最低优先级。
2440可以通过ARB_MODE来选择中断优先级是手动旋转还是自动旋转,默认是自动旋转的;ARB_SEL用来设置具体中断的优先级。关于中断优先级寄存器在2440收据手册的390页有详细说明,再次不再赘述。
我看了一下2440的BSP,没有出现中断优先级设置的代码,我想这样就是默认中断优先级自动旋转吧,哈哈,虽然这些知识粗浅,但是有必要掌握的。