社区导航

 

搜索
查看: 2920|回复: 11

关于逻辑中断

[复制链接]

96

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2009-3-17 23:38 | 显示全部楼层 |阅读模式
在CE5 中,比如现在BSP中的 keypb 已经对 EINT0中断 进行了处理。
那么可不可以 再写个驱动 对于EINT0 进行处理。调用KernelIoControl 老是失败。

  1. static UINT32 g_EINTIrq = INTSRC_EINT0;
  2. static UINT32 g_EINTSysIntr = SYSINTR_UNDEFINED;
  3. KernelIoControl(IOCTL_HAL_REQUEST_SYSINTR, &g_EINTIrq, sizeof(UINT32),
  4.                 &g_EINTSysIntr, sizeof(UINT32), NULL)
复制代码

111

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2009-3-18 08:25 | 显示全部楼层
一个硬件中断是可以映射到几个逻辑中断上的.

回复

使用道具 举报

106

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2009-3-18 08:31 | 显示全部楼层
wince5.0 (2440BSP)的中断流程

     注册表等——》KernelIoControl(——》OEMIoControl——》OALIntrRequestIrqs )把物理中断转换成系统中断——》InterruptInitialize调用OEMInterruptEnable使能中断并用中断绑定线程——》OEMInterruptHandler屏蔽中断——》执行线程——》InterruptDone——》调用OEMInterruptDone——》调用OALIntrDoneIrqs完成中断线程并重新使能中断

把上面相关的代码看一遍就明白了。

回复

使用道具 举报

105

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2009-3-18 09:00 | 显示全部楼层

引用 2 楼 gooogleman 的回复:
wince5.0 (2440BSP)的中断流程

    注册表等——》KernelIoControl(——》OEMIoControl——》OALIntrRequestIrqs )把物理中断转换成系统中断——》InterruptInitialize调用OEMInterruptEnable使能中断并用中断绑定线程——》OEMInterruptHandler屏蔽中断——》执行线程——》InterruptDone——》调用OEMInterruptDone——》调用OALIntrDoneIrqs完成中断线程并重新使能中断

把上面相关的代码看一遍就明白了。


这是一个中断的流程。
gooogleman你的那个wince 5.0下的扩展串口驱动搞到哪步了?

回复

使用道具 举报

110

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2009-3-18 09:33 | 显示全部楼层
搞完好几周了。

不过稳定性,健壮性我没有测试。


上面涉及很多逻辑,物理中断的转换,看了自然知道。

回复

使用道具 举报

90

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2009-3-18 13:25 | 显示全部楼层
引用 4 楼 gooogleman 的回复:
搞完好几周了。

不过稳定性,健壮性我没有测试。


上面涉及很多逻辑,物理中断的转换,看了自然知道。

你是用的wince5.0下自带的改的还是网上那个4.2移植过来的?4.2那个我测过很不稳定.

回复

使用道具 举报

102

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2009-3-18 14:02 | 显示全部楼层
4.2下的。不过我想改回系统自带那种。

回复

使用道具 举报

101

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2009-3-18 14:34 | 显示全部楼层
唉,我现在就在改,微软这种层次结构的看着很费劲。而且要移植到9261上。

回复

使用道具 举报

119

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2009-3-18 15:09 | 显示全部楼层
引用 7 楼 papapa123123 的回复:
唉,我现在就在改,微软这种层次结构的看着很费劲。而且要移植到9261上。


你要移植那些驱动到BSP下才行,因为那些驱动是被别的驱动共用的,移植,改名才行。

回复

使用道具 举报

104

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2009-3-18 15:10 | 显示全部楼层
C++写的驱动相当精妙。我现在还在学C++的基础语法啊,汗。

回复

使用道具 举报

108

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2009-3-18 15:11 | 显示全部楼层
C++写的驱动相当精妙。我现在还在学C++的基础语法啊,汗。

回复

使用道具 举报

123

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2009-3-18 21:13 | 显示全部楼层
我这个板子BSP比较特别,不能用KernelIoControl申请
要直接指定。。。。汗。。

回复

使用道具 举报

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

关闭

站长推荐上一条 /5 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2019-11-19 05:59 , Processed in 0.352611 second(s), 18 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表