HRESULT Library_spot_hardware_usb_native_Microsoft_SPOT_Hardware_UsbClient_UsbStream::nativeRead___I4__SZARRAY_U1__I4__I4( CLR_RT_StackFrame& stack )
{
    TINYCLR_HEADER();

    CLR_INT32               retVal = 0;
    CLR_INT32               controllerIndex, streamIndex, stream;
    CLR_UINT32              offset, count;
    CLR_RT_HeapBlock*       pThis;
    CLR_RT_HeapBlock_Array* array;

    pThis = stack.This(); FAULT_ON_NULL(pThis);

    controllerIndex = pThis[ Library_spot_hardware_usb_native_Microsoft_SPOT_Hardware_UsbClient_UsbStream::FIELD__m_controllerIndex ].NumericByRef().s4;
    streamIndex     = pThis[ Library_spot_hardware_usb_native_Microsoft_SPOT_Hardware_UsbClient_UsbStream::FIELD__m_streamIndex     ].NumericByRef().s4;
    array           = stack.Arg1().DereferenceArray(); FAULT_ON_NULL(array);
    offset          = stack.Arg2().NumericByRef().u4;
    count           = stack.Arg3().NumericByRef().u4;
    
    stream = (controllerIndex << USB_CONTROLLER_SHIFT) + streamIndex;
    if( array->m_numOfElements < (offset + count) )
    {
        TINYCLR_SET_AND_LEAVE(CLR_E_INVALID_PARAMETER);
    }
    else
    {
        retVal = USB_Read( stream, (char*)array->GetFirstElement()+offset, count );
    }
    stack.SetResult_I4( retVal );

    TINYCLR_NOCLEANUP();
}
Ejemplo n.º 2
0
int DebuggerPort_Read( COM_HANDLE ComPortNum, char* Data, size_t size )
{
    NATIVE_PROFILE_PAL_COM();
    int ret = 0;

    switch(ExtractTransport(ComPortNum))
    {
        case USART_TRANSPORT:
            ret = USART_Read( ConvertCOM_ComPort( ComPortNum ), Data, size );
            break;
        case USB_TRANSPORT:
            ret = USB_Read( ConvertCOM_UsbStream( ComPortNum ), Data, size );
            break;
        case SOCKET_TRANSPORT:
            ret = SOCKETS_Read( ConvertCOM_SockPort(ComPortNum), Data, size );
            break;
    }

    return ret;
}
Ejemplo n.º 3
0
int main()
{
	unsigned char c = 0x55;

	USB_Open();

	//USB_WriteWord(0x0100);
	//USB_WriteChar('D');
	//USB_WriteChar(c);
	//printf("W: 0x%02x\r\n", c);

	while(1) {
		if(kbhit()) break;
		c = USB_Read();
		printf("R: 0x%02x\r\n", c);
		Sleep(200);
	}

	USB_Close();
}
Ejemplo n.º 4
0
/////////////////
// Helper functions
char USB_ReadChar() {
	char c = -1;
	USB_Read(&c, 1);
	return c;
}