Best way to do writes to physical address in a loop with sub-millsec interval between writes.

Discussion in 'Windows Vista Drivers' started by Praveen Kumar Amritaluru, Sep 24, 2008.

  1. Hi,

    I got a requirement from a different team who is looking for a utility to
    write to a physical address in a continous loop.
    The time between successive writes to the physical address cannot be more
    than 500us.
    The system is a multi-proc system running Vista.
    The physical address is an address that will appear on FSB and not
    intercepted in cache.
    Choosing physical address is not a problem, plan was to use memory-mapped
    PCI config space.



    What is the best way to go about providing this feature request?
    Is there an utility already present?

    Thanks,
    -Praveen
     
    Praveen Kumar Amritaluru, Sep 24, 2008
    #1
    1. Advertisements

  2. Praveen Kumar Amritaluru

    matt_sykes Guest

    This is impossible to implement exactly on Windows. Windows is not a
    real time OS, it does not guarantee this kind of precision of timing
    and any thread in which you have such a loop can be interrupted by
    anyother higher priority thread or request.

    So the closest you will get is to have a delay in your loop that
    generally will work. You cant use a timer for that delay, the system
    timers granularity is 10ms, so you will have to use
    KeStallExecutionProcessor(); between writes.
     
    matt_sykes, Sep 25, 2008
    #2
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.