test

Dependencies:   SDFileSystem mbed-dev

Fork of Nucleo_Ex06_EMU by woodstock .

Committer:
charliex
Date:
Sat May 27 02:17:37 2017 +0000
Revision:
4:53ef91c87d74
Parent:
0:3dac1f1bc9e0
test

Who changed what in which revision?

UserRevisionLine numberNew contents of line
beaglescout007 0:3dac1f1bc9e0 1 #pragma once
beaglescout007 0:3dac1f1bc9e0 2 #include "mbed.h"
beaglescout007 0:3dac1f1bc9e0 3 #include "USBHostTypes.h"
beaglescout007 0:3dac1f1bc9e0 4 #include "USBEndpoint.h"
beaglescout007 0:3dac1f1bc9e0 5
beaglescout007 0:3dac1f1bc9e0 6 class HC {
beaglescout007 0:3dac1f1bc9e0 7 static const uint8_t DIR_IN = 1;
beaglescout007 0:3dac1f1bc9e0 8 static const uint8_t DIR_OUT = 0;
beaglescout007 0:3dac1f1bc9e0 9
beaglescout007 0:3dac1f1bc9e0 10 public:
beaglescout007 0:3dac1f1bc9e0 11 HC();
beaglescout007 0:3dac1f1bc9e0 12 HC(int ch);
beaglescout007 0:3dac1f1bc9e0 13 ~HC();
beaglescout007 0:3dac1f1bc9e0 14 HAL_StatusTypeDef Init(uint8_t epnum, uint8_t dev_address, uint8_t speed, uint8_t ep_type, uint16_t mps);
beaglescout007 0:3dac1f1bc9e0 15 HAL_StatusTypeDef SubmitRequest(uint8_t* pbuff, uint16_t length, bool setup = false);
beaglescout007 0:3dac1f1bc9e0 16 HCD_URBStateTypeDef GetURBState();
beaglescout007 0:3dac1f1bc9e0 17 HCD_HCStateTypeDef GetState();
beaglescout007 0:3dac1f1bc9e0 18 uint32_t GetXferCount();
beaglescout007 0:3dac1f1bc9e0 19 void SetToggle(uint8_t toggle);
beaglescout007 0:3dac1f1bc9e0 20
beaglescout007 0:3dac1f1bc9e0 21 static uint8_t slot;
beaglescout007 0:3dac1f1bc9e0 22
beaglescout007 0:3dac1f1bc9e0 23 private:
beaglescout007 0:3dac1f1bc9e0 24 int _ch;
beaglescout007 0:3dac1f1bc9e0 25 uint8_t _ep_addr;
beaglescout007 0:3dac1f1bc9e0 26 uint8_t _ep_type;
beaglescout007 0:3dac1f1bc9e0 27 };
beaglescout007 0:3dac1f1bc9e0 28
beaglescout007 0:3dac1f1bc9e0 29 class USBHALHost {
beaglescout007 0:3dac1f1bc9e0 30 public:
beaglescout007 0:3dac1f1bc9e0 31 uint8_t LastStatus;
beaglescout007 0:3dac1f1bc9e0 32 uint8_t prev_LastStatus;
beaglescout007 0:3dac1f1bc9e0 33
beaglescout007 0:3dac1f1bc9e0 34 protected:
beaglescout007 0:3dac1f1bc9e0 35 USBHALHost();
beaglescout007 0:3dac1f1bc9e0 36 void init();
beaglescout007 0:3dac1f1bc9e0 37 virtual bool addDevice(USBDeviceConnected* parent, int port, bool lowSpeed) = 0;
beaglescout007 0:3dac1f1bc9e0 38 int token_setup(USBEndpoint* ep, SETUP_PACKET* setup, uint16_t wLength = 0);
beaglescout007 0:3dac1f1bc9e0 39 int token_iso_in(USBEndpoint* ep, uint8_t* data, int size);
beaglescout007 0:3dac1f1bc9e0 40 int multi_token_in(USBEndpoint* ep, uint8_t* data = NULL, size_t total = 0, bool block = true);
beaglescout007 0:3dac1f1bc9e0 41 int multi_token_out(USBEndpoint* ep, const uint8_t* data = NULL, size_t total = 0);
beaglescout007 0:3dac1f1bc9e0 42 void multi_token_inNB(USBEndpoint* ep, uint8_t* data, int size);
beaglescout007 0:3dac1f1bc9e0 43 USB_TYPE multi_token_inNB_result(USBEndpoint* ep);
beaglescout007 0:3dac1f1bc9e0 44 void setToggle(USBEndpoint* ep, uint8_t toggle);
beaglescout007 0:3dac1f1bc9e0 45
beaglescout007 0:3dac1f1bc9e0 46 private:
beaglescout007 0:3dac1f1bc9e0 47 int token_in(USBEndpoint* ep, uint8_t* data = NULL, int size = 0, int retryLimit = 10);
beaglescout007 0:3dac1f1bc9e0 48 int token_out(USBEndpoint* ep, const uint8_t* data = NULL, int size = 0, int retryLimit = 10);
beaglescout007 0:3dac1f1bc9e0 49 int token_ctl_in(USBEndpoint* ep, uint8_t* data, int size, int retryLimit);
beaglescout007 0:3dac1f1bc9e0 50 int token_int_in(USBEndpoint* ep, uint8_t* data, int size);
beaglescout007 0:3dac1f1bc9e0 51 int token_blk_in(USBEndpoint* ep, uint8_t* data, int size, int retryLimit);
beaglescout007 0:3dac1f1bc9e0 52 int token_ctl_out(USBEndpoint* ep, const uint8_t* data, int size, int retryLimit);
beaglescout007 0:3dac1f1bc9e0 53 int token_int_out(USBEndpoint* ep, const uint8_t* data, int size);
beaglescout007 0:3dac1f1bc9e0 54 int token_blk_out(USBEndpoint* ep, const uint8_t* data, int size, int retryLimit);
beaglescout007 0:3dac1f1bc9e0 55 bool wait_attach();
beaglescout007 0:3dac1f1bc9e0 56 static USBHALHost * instHost;
beaglescout007 0:3dac1f1bc9e0 57 };
beaglescout007 0:3dac1f1bc9e0 58
beaglescout007 0:3dac1f1bc9e0 59