WINCE6.0中断实验总结

来源:互联网 发布:关于网络舆论的论文 编辑:程序博客网 时间:2024/06/02 15:51

 

在这里不得不说一下,真是万事开头难啊,简单的流驱动,以及中断弄了这么久,真是折磨人啊

在总结之前,先写一下自己在wince6.0上实现按键外部中断的过程:

1.新建一个流驱动,下载到板子,验证是否加载成功

2.

       a.查找出空闲的物理中断号,并宏定义。

       b.实现OEM层的一些函数,例如:

             BspIntrEnableIrq函数:初始化配置并使能一个外部中断引脚,并绑定一个自己任意用的空闲的引脚到一个指定的物理中断号(OalGpioRegisterIntr就实现了该功能)

            还有BspIntrDisableIrq,和BspIntrDoneIrq函数、

3,定义逻辑中断号,并绑定到物理中断号,通过BspIntrInit()函数(在intr.c里)。()静态指定

4.定义两个线程函数,一个初始化中断线程函数,一个中断处理函数,初始化启动中断线程函数在xxx_init中调用。

初始化中断线程函数:

    a,创建事件

   b,获得逻辑中断号

   c.将前面两者关联起来

   d,调用InterruptDone函数

   e.创建并启动中断线程

 

总结:

中间碰到的问题:

1,,将驱动加载到系统后,引脚配置初始化一直不成功

     原因:物理中断号被系统其他地方用过了,要重新指定空闲的物理中断号(师傅指导下)

2,改过来后,加载试验,发现按键只有按一次才有效,第一次才能进中断,第二,三次都没反应

   原因:InterruptDone函数的参数弄错了,应该是逻辑中断号,结果被弄成了物理中断号。该死。

   这样在执行一次中断后,系统没有打开中断引脚,让他进入下一次中断。

 

 

 

 

0 0
原创粉丝点击