我用的板子是x86架构的,我现在正在写单片驱动,有几个问题想请教大侠:(1)如果我想在OEMInterruptxxx函数中实现对我的设备开/关中断的话,那么我是不是应该在这个c文件(好像是cfwpc.c)中定义一个全局变量来保存我设备的地址啊?(这个地址应该可由Interrupt...
全文
回复(9) 2004-12-03 16:40 来自版块 - Wince 程序开发
表情
wwei_wang非常感谢wxl_50685330大哥以及chang_nicolas兄弟的无私援助,分已给出,请两位笑纳! :P(2004-12-07 14:29)
wxl_50685330对头,对头!!!!!!!!!!!!!!:) (2004-12-07 14:01)
wwei_wang谢谢wxl_50685330大哥,不过我还得罗嗦一下,呵呵。 你看全局共享缓冲区是不是可以这么实现? 假设我的CONFIG.bib里面是这样设置的: NK 80220000 009E0000 RAMIMAGE RAM 80C00000 01...(2004-12-07 13:56)
wxl_50685330:) 可以在你的CONFIG.bib里面预留一块出来作为公共缓冲区。比如 xxx 8C020000 00001000 RESERVED 记住这个地址,在驱动中和isr中可以访问它来交换数据。不过注意访问时需要先映射(如果isr是写在kernel的可以不映射)(2004-12-07 13:24)
wwei_wang哈哈,谢谢wxl_50685330大哥的解答,问一个很菜的问题: 前面你说,我的ISR和我的驱动之间要交换数据可以通过一个全局的缓冲区,比如drvier_global,那么这个全局的缓冲区怎么定义啊?在我的驱动和ISR中分别怎么使用啊? :P(2004-12-07 09:10)
wxl_506853301.设备地址保不保存要看你的实际需要了,如果你清楚每个设备的地址,可以直接用。 2.是 3.要交换数据可以通过一个全局的缓冲区,比如drvier_global 4.不是很(2004-12-06 13:17)
wwei_wang谢谢楼上兄弟,不过你可能误会了。 其实我的IST中有很多事情要做的。我的问题的出发点是如何使用和实现OEMInterruptxxx以及用HookInterrupt这些函数,因为我想用这种方法来做,顺便练练手。 还请多多指教! :D(2004-12-06 09:33)
wwei_wang谢谢楼上兄弟,不过你可能误会了。 其实我的IST中有很多事情要做的。我的问题的出发点是如何使用和实现OEMInterruptxxx以及用HookInterrupt这些函数,因为我想用这种方法来做,顺便练练手。(2004-12-06 09:33)
chang_nicolas如果只是实现在ISR中设备的开关的话,只是设置GPIO的电平高低就行了吧,就不用写IST了,直接在ISR中就解决了,OemInterruptEnable这样的函数也不用了,只是处理个GPIO中断(2004-12-06 09:19)

返回顶部