zoukankan      html  css  js  c++  java
  • 提高wince中断响应速度的一种方法(作者:wogoyixikexie@gliet)

    提高wince中断响应速度的一种方法(作者:wogoyixikexie@gliet)

      

     

    //-----------------------------------------------------------------------------------------------------------

    // 作者:wogoyixikexie@gliet

    //论坛账号:gooogleman (经常在CSDN出没)

    // 版权:桂林电子科技大学一系科协wogoyixikexie@gliet

    // 平台:wince5.0 2440 5.0 BSP

    // 发布日期:2009年8月10日

    // 最后修改:

    // 注意事项:未经作者同意,不得在转载的时候擅自修改、删除文章的任何部分

    //-----------------------------------------------------------------------------------------------------------


          关于wince中断响应速度问题,网上很多文章讨论,我以前也不太明白,后来在弄外部串口驱动的时候我遇到了这个问题,明显是wince中断响应速度太慢,后来我想了好几天,尝试了一种如何提高wince中断响应速度的方法。

      在一些文章中模糊的说着什么提高ISR效率就可以提高中断响应素的,后来我用4.2BSP和5.0BSP实测,发现4.2BSP的ISR效率高于5.0的。原因4.2BSP采用的是静态中断绑定方式,而5.0BSP是动态中断方式;嘿嘿,一件事情总有它的利弊,5.0BSP对开发效率有帮助,但是却在中断效率上输了一截,原因就是动态方法要使用太多的查询,耗费了时间。

      我想,只要绕过查询,那么5.0BSP就完美了,后来我果然想到了招数:就是在中断线程结束之后立即使能中断!通常中断线程最后通常调用

    InterruptDone函数来查询,然后使能中断,现在我不要这个耗费时间的函数了,我直接使能即可。

    //-------------------ECOM interrupt EINT1-------------------------
     s2440INT->rSRCPND = BIT_EINT1; // to clear the previous pending states
     if (s2440INT->rINTPND & BIT_EINT1)
      s2440INT->rINTPND = BIT_EINT1;
     s2440INT->rINTMSK &= ~BIT_EINT1;

      果然,使用这个方法之后,我的串口数据截断问题就解决了。效果非常明显。

  • 相关阅读:
    A Look Inside Presentation Controllers
    iOS用户数据安全:Keychain、Touch ID以及1Password
    iOS开发UI篇—UITableView全面解析
    iOS 上的相机捕捉
    iOS UIScrollView
    ViewController类中得方法和属性的用途
    ios 中__bridge,__bridge_transfer和__bridge_retained详解
    __weak如何实现对象值自动设置为nil
    iOS开发UI篇—UIWindow简单介绍
    iOS:App启动过程详解
  • 原文地址:https://www.cnblogs.com/gooogleman/p/1869630.html
Copyright © 2011-2022 走看看