3040|5

62

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

从OAL请求一个逻辑中断号 [复制链接]

KernelIoControl(IOCTL_HAL_REQUEST_SYSINTR, &g_I2CIrq, sizeof(UINT32), &g_I2CSysIntr, sizeof(UINT32), NULL)
可以从OAL请求一个SYSINTR值,然后通过IST执行相关中断
但是SYSINTR有SYSINTR_I2C,SYSINTR_TOUC,SYSINTR_SERIA.......
系统怎么能知道我要申请SYSINTR_I2C??
或者系统根本不需要了解我要申请哪个中断逻辑号???

最新回复

弱弱的问一下,物理中断号与逻辑中断号是如何关联的呢?在那个函数里有物理中断号的定义呢?  详情 回复 发表于 2009-3-13 11:35
点赞 关注

回复
举报

68

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
1动态申请中断号 就不需要自定义 SYSINT_ 了 除非 你非要将它挂在那个 SYSINT_上 否则 那个自定义的可以不要,本身系统就是为了实现动态分配的,在必要的时候去掉它,如果分要处理 那也是在初始化的时候
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
系统不知道你要申请的所谓“中断逻辑号”到底是哪个中断对应的,具体的处理必须你来实现,在InterruptInit,InterruptDone之类的OEM函数里面,你就必须进行中断号的判断及处理。
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

4
 
调用这个函数KernelIoControl(IOCTL_HAL_REQUEST_SYSINTR...) 系统会分配一个sysintr,并且将这个sysintr和irq联系起来,实际上就是放在两个数组里,一个数组的序号是irq,数组元素是sysintr,一个数组的序号是sysintr,元素是irq,这样系统就可以方便的找到irq和sysintr的对应关系了.这是所谓的动态映射,静态映射就是自己调用函数把irq和自己定义的sysintr添加到数组里. 这样在oal层处理中断的时候可以用一个循环语句来处理. 这些都是ce5.0采用的处理方式.ce4.2就没有这样的数组,所以中断处理的时候有大量的if else语句,或者 swicth case语句.
 
 
 

回复

52

帖子

0

TA的资源

一粒金砂(初级)

5
 
Reallyu  解释的真详细 明白了谢谢
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

6
 
弱弱的问一下,物理中断号与逻辑中断号是如何关联的呢?在那个函数里有物理中断号的定义呢?
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表