/* Once configured, the non-blocking read is started by calling  */
void EPINonBlockingReadConfigure(unsigned long ulBase, unsigned long ulChannel, unsigned long ulDataSize, unsigned long ulAddress)
/* Once configured, the non-blocking read is started by calling  */
void EPINonBlockingReadConfigure(unsigned long ulBase, unsigned long ulChannel, unsigned long ulDataSize, unsigned long ulAddress)
{
    unsigned long ulOffset;
    ASSERT(ulBase == EPI0_BASE);
    ASSERT(ulChannel < 2);
    ASSERT(ulDataSize < 4);
    ASSERT(ulAddress < 0x20000000);
    ulOffset = ulChannel * (EPI_O_RSIZE1 - EPI_O_RSIZE0);
    HWREG(ulBase + EPI_O_RSIZE0 + ulOffset) = ulDataSize;
    HWREG(ulBase + EPI_O_RADDR0 + ulOffset) = ulAddress;
}