4304|10

59

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

关于wince50下申请中断号KernelIoControl [复制链接]

各位高手:
   情况是这样的:我用WINCE42的BSP升级到WINCE50,现在做一个SDIO的驱动,但是总是中断进不去,后来通过调试信息发现kernelIoControl(....)申请的中断号不知道是多少,总之是失败了
dwSDIOIrq = pHardwareContext->dwSDMMCIrq;
        if (!KernelIoControl(IOCTL_HAL_REQUEST_SYSINTR, &dwSDIOIrq, sizeof(DWORD), &(pHardwareContext->dwSysintrSDMMC), sizeof(DWORD), NULL))
    {
        pHardwareContext->dwSysintrSDMMC = SYSINTR_UNDEFINED;
        RETAILMSG(1, (TEXT("goto exitInit STEP 5555 :fault!\r\n")));
        goto exitInit;
    }
这段代码打印了goto exitInit STEP 5555 :fault!后,进入了exitInit代码段,
请问怎么能看出来BSP是否支持kernelIoControl这个函数??
CE42下需要在三个地方添加中断相关的操作:intbvd1.c  OALINTR.H  cfwBvd1.c(PXA270)
请问在CE50下需要做什么相关的操作??才可以使用kerneliocontrol
谢谢各位

最新回复

我是将BSP42直接升级到WINCE50下 所以BSP中kernelIocontrol并不支持  详情 回复 发表于 2008-11-20 00:49
点赞 关注

回复
举报

84

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
你装的是wince5.0, 也就有了kernelIoControl中了, 它的代码好像是在private\winceos\coreos\nk\kernel下.
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
楼主你的是4.2的BSP,我建议你不要用这个KernelIoControl,因为4.2的BSP和5.0的不同的,除了KernelIoControl还隐藏了一些玄机的。

使用静态映射吧。把那些中断相关代码搬到OAL

同情楼主啊,你这样移植我都说很辛苦的了。比换BSP还难的。
我现在已经换了两个5.0的BSP了,一点问题都没有。随便改动。

哈哈,楼主估计还要痛苦一回。
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

4
 
这个IOCTL最终还是调到你BSP或者是CPU厂商提供的代码里来的,你可以查一下最终是什么地方出错了,或者就根本没有实现?
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(中级)

5
 
在很久很久以前,CE 4.2的时候,CE只支持静态映射,所以一个ISR会写的巨大无比;
从CE 5开始,微软对OAL有了更严格的要求了,其中就要求BSP一定要支持动态中断申请,即kernelIoControl的方式申请系统中断号。

倒是说到底,静态也好,动态也好,其实都是让系统分配一个数字,便于管理,其实现也就是几张中断映射表的动态/静态加入一个entry。

楼主还是慢慢打一些debug语句来调试一下你的中断分配机制吧

 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(初级)

6
 
动态中断的好处就是驱动卸载以后中断也卸载了。
这样就可以两个不是并行的驱动可以复用同一个中断。

=============楼主,还没有解决吗?
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

7
 
动态中断的好处就是驱动卸载以后中断也卸载了。
这样就可以两个不是并行的驱动可以复用同一个中断。

=============楼主,还没有解决吗?
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

8
 
IOCTL_HAL_REQUEST_SYSINTR,在bsp中查找,应该会有一个宏定义和一个映射函数的tab.h的文件(具体名字不记得了),找到和他影射的函数代码,进去加点调试信息看看
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

9
 
直接用GetLastError()看看错误号是什么不就结了。。。。。
 
 
 

回复

48

帖子

0

TA的资源

一粒金砂(初级)

10
 
你的BSP里面其它地方肯定也用到了这个函数,看他们是怎么用的,然后你自己COPY着用就可以了!!!
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

11
 
我是将BSP42直接升级到WINCE50下
所以BSP中kernelIocontrol并不支持
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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