日志档案

发表于 2007-12-5 22:50:13

1

标签: Windows  CE  .net  5.0  Interrupt  Architecture  

Windows CE 中断体系结构

系统分类: 嵌入式   |   用户分类: Windows CE   |   来源: 原创   |   【推荐给朋友】   |   【添加到收藏夹】

    阅读(671)    回复(11)  

投一票您将和博主都有获奖机会!

  • CESAD

    2007-12-5 22:53:50

    这是Windows CE .net 5.0 中的中断体系结构,最近在研究Windows CE的中断体系结构,特别是可安装中断(the Installable ISR)的体系结构。已经搞定了。

    如果大家有什么疑问,可以直接回帖,大家一起研究一下了。

  • apen00

    2008-5-6 10:38:57

    請問我可以用Installable ISR,例如:ISR16550.DLL 讓我的X86板子上的6個COM PORT(走LOW PIN COUNT) 只用1個IRQ,就全部都能動起來嗎? 如果可以,那要怎麼做呢? 感謝指教.

  • CESAD

    2008-5-7 12:32:08

    可以啊!

  • CESAD

    2008-5-7 12:37:54

    在驱动程序里面,主要用的示SYSINTR,这个SYSINTR主要与相对应的IST来处理,所以你的六个COM,可以用6个SYSINTR; 下来呢,就是在你的ISR16550.DLL里面的ISR里,做处理。也就是做一个IRQ到6个SYSINTR的过程,这个就简单了; 你的ISR进入后,当然是在对应的IRQ产生,然后你可以在里面进一步做处理。例如读取对应端口的数据,来判断到底是哪一个COM口的中断,然后在返回相应的SYSINTR,然后对应的IST会执行。

  • apen00

    2008-5-19 16:49:26

    首先感謝CESAD的熱心回應. 可是問題是,IRQ和SYSINTR不是要有mapping的關係嗎? 我該如何把這6個不同的SYSINTR寫入OAL, 使他們能同時對應到1個IRQ呢? 感謝指教.

  • CESAD

    2008-5-22 22:48:31

    这里面不用MAPPING的,可安装中断不需要的。

  • CESAD

    2008-5-22 22:50:27

    MAPPING主要是完成一个注册工作,主要工作是ISR来做,但是iISR就不需要了,因为ISR主要的工作是返回一个SYSINTR,所以这里面由你自己写啦! 这也就是二级中断的体系结构啦!

  • apen00

    2008-5-27 12:00:23

    從CESAD大俠的回應中,我可以感受到你對可安裝中斷的專業研究,不過你卻提出不需MAPPING,使我一直無法從你的回應中搞定它,因為我只是一個好奇的初學者! 我想把問題簡化處理:只用2個COM共享1個IRQ. DRIVER和IISR都是用 CE5.0 提供的標準DRIVER及ISR16550.DLL去做修改. 能否請CESAD大俠詳細告知到底該改寫些什麼? 如何改寫? 才能讓這2個COM共享1個IRQ.

  • CESAD

    2008-5-27 12:44:40

    你的在IISR做修改就可以,在ISRHandler()函数里面添加代码就可以,代码的主要内容是: 1、首先识别物理中断号, 2、然后再通过读相应的寄存器来判断到底示哪个中断产生了, 3、然后根据情况判断到底应该返回一个SYSINTR

  • apen00

    2008-5-27 17:38:53

    小弟才疏學淺,能否請CESAD大俠,把添加代碼的短短幾行 ISRHandler() CODE 直接寄給小弟呢? 感謝. appach0edu@mail.educities.edu.tw

  • apen00

    2008-5-27 17:47:57

    小弟才疏學淺,能否請CESAD大俠,把添加代碼的短短幾行 ISRHandler() CODE 直接寄給小弟呢? 感謝. Email:appach0edu@mail.educities.edu.tw