none
How to share memory from OAL to the user mode/kernel driver RRS feed

  • General discussion

  • I can share the memory mapped driver registers from the kernel mode to user mode by using MmMapIoSpace and VirtualAllocCopyEx. But how can I share the memory residing in OAL to the user mode. The reason I want to do is that the interrupt service thread is very slow therefore I want to signal the interrupt from OEMInterruptHandler to the user mode code. Currently when I catch the interrupt in IST and then signal the user event,  my latency is 40 microsecond which is very large for my system. I am using Windows CE Embedded Compact 2013 and my platform is Xilinx704 board.

    Thanks

    -shashi

    Friday, June 27, 2014 5:00 PM

All replies

  • Did you tried with increased thread priority with "CeSetThreadPriority()" to lower value preferably 0-10

    CeSetThreadPriority
    CeSetThreadPriority
    CeSetThreadPriority

    ... and making the thread quantum to zero using CeSetThreadQuantum() to zero so that the thread will run without interruption

    Refer these blog for an explanation :

    http://www.e-consystems.com/blog/windowsce/?p=218

    http://blogs.msdn.com/b/ce_base/archive/2005/08/31/458474.aspx

    http://geekswithblogs.net/BruceEitman/archive/2009/01/21/windows-ce-threads.aspx

    http://msdn.microsoft.com/en-us/library/aa450626.aspx

    The approach which you want to implement is not possible.

    --- Misbah


    Senior Design Engineer T.E.S Electroni Solutions (Bangalore-India) www.tes-dst.com email-misbah.khan@tes-dst.com

    Sunday, June 29, 2014 11:46 AM
  • Yes. The priority of the IST is 0, user mode interrupt handler is 0. The priority of the interrupt in GIC distributor is also zero.  

    I have tried all the techniques I can imagine. The IST is not responsive if I do it in the OEMInterruptHandler at the OAL layer, I get 2 micro second max latency.

    • Edited by Charvak Monday, June 30, 2014 12:40 PM
    Monday, June 30, 2014 12:39 PM