library

Dependents:   USB_CDC_MSD_Hello

Committer:
sherckuith
Date:
Fri Aug 24 02:01:51 2012 +0000
Revision:
0:d5bb9a9c3e24
[mbed] converted /USB_CDC_MSD_Hello/USBDevice

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sherckuith 0:d5bb9a9c3e24 1 /* USBBusInterface.h */
sherckuith 0:d5bb9a9c3e24 2 /* USB Bus Interface */
sherckuith 0:d5bb9a9c3e24 3 /* Copyright (c) 2011 ARM Limited. All rights reserved. */
sherckuith 0:d5bb9a9c3e24 4
sherckuith 0:d5bb9a9c3e24 5 #ifndef USBBUSINTERFACE_H
sherckuith 0:d5bb9a9c3e24 6 #define USBBUSINTERFACE_H
sherckuith 0:d5bb9a9c3e24 7
sherckuith 0:d5bb9a9c3e24 8 #include "mbed.h"
sherckuith 0:d5bb9a9c3e24 9 #include "USBEndpoints.h"
sherckuith 0:d5bb9a9c3e24 10
sherckuith 0:d5bb9a9c3e24 11 class USBHAL {
sherckuith 0:d5bb9a9c3e24 12 public:
sherckuith 0:d5bb9a9c3e24 13 /* Configuration */
sherckuith 0:d5bb9a9c3e24 14 USBHAL();
sherckuith 0:d5bb9a9c3e24 15 ~USBHAL();
sherckuith 0:d5bb9a9c3e24 16 void connect(void);
sherckuith 0:d5bb9a9c3e24 17 void disconnect(void);
sherckuith 0:d5bb9a9c3e24 18 void configureDevice(void);
sherckuith 0:d5bb9a9c3e24 19 void unconfigureDevice(void);
sherckuith 0:d5bb9a9c3e24 20 void setAddress(uint8_t address);
sherckuith 0:d5bb9a9c3e24 21 void remoteWakeup(void);
sherckuith 0:d5bb9a9c3e24 22
sherckuith 0:d5bb9a9c3e24 23 /* Endpoint 0 */
sherckuith 0:d5bb9a9c3e24 24 void EP0setup(uint8_t *buffer);
sherckuith 0:d5bb9a9c3e24 25 void EP0read(void);
sherckuith 0:d5bb9a9c3e24 26 uint32_t EP0getReadResult(uint8_t *buffer);
sherckuith 0:d5bb9a9c3e24 27 void EP0write(uint8_t *buffer, uint32_t size);
sherckuith 0:d5bb9a9c3e24 28 void EP0getWriteResult(void);
sherckuith 0:d5bb9a9c3e24 29 void EP0stall(void);
sherckuith 0:d5bb9a9c3e24 30
sherckuith 0:d5bb9a9c3e24 31 /* Other endpoints */
sherckuith 0:d5bb9a9c3e24 32 EP_STATUS endpointRead(uint8_t endpoint, uint32_t maximumSize);
sherckuith 0:d5bb9a9c3e24 33 EP_STATUS endpointReadResult(uint8_t endpoint, uint8_t *data, uint32_t *bytesRead);
sherckuith 0:d5bb9a9c3e24 34 EP_STATUS endpointWrite(uint8_t endpoint, uint8_t *data, uint32_t size);
sherckuith 0:d5bb9a9c3e24 35 EP_STATUS endpointWriteResult(uint8_t endpoint);
sherckuith 0:d5bb9a9c3e24 36 void stallEndpoint(uint8_t endpoint);
sherckuith 0:d5bb9a9c3e24 37 void unstallEndpoint(uint8_t endpoint);
sherckuith 0:d5bb9a9c3e24 38 bool realiseEndpoint(uint8_t endpoint, uint32_t maxPacket, uint32_t options);
sherckuith 0:d5bb9a9c3e24 39 bool getEndpointStallState(unsigned char endpoint);
sherckuith 0:d5bb9a9c3e24 40 uint32_t endpointReadcore(uint8_t endpoint, uint8_t *buffer);
sherckuith 0:d5bb9a9c3e24 41
sherckuith 0:d5bb9a9c3e24 42 protected:
sherckuith 0:d5bb9a9c3e24 43 virtual void busReset(void){};
sherckuith 0:d5bb9a9c3e24 44 virtual void EP0setupCallback(void){};
sherckuith 0:d5bb9a9c3e24 45 virtual void EP0out(void){};
sherckuith 0:d5bb9a9c3e24 46 virtual void EP0in(void){};
sherckuith 0:d5bb9a9c3e24 47 virtual void connectStateChanged(unsigned int connected){};
sherckuith 0:d5bb9a9c3e24 48 virtual void suspendStateChanged(unsigned int suspended){};
sherckuith 0:d5bb9a9c3e24 49 virtual void SOF(int frameNumber){};
sherckuith 0:d5bb9a9c3e24 50 virtual bool EP1_OUT_callback(){return false;};
sherckuith 0:d5bb9a9c3e24 51 virtual bool EP1_IN_callback(){return false;};
sherckuith 0:d5bb9a9c3e24 52 virtual bool EP2_OUT_callback(){return false;};
sherckuith 0:d5bb9a9c3e24 53 virtual bool EP2_IN_callback(){return false;};
sherckuith 0:d5bb9a9c3e24 54 virtual bool EP3_OUT_callback(){return false;};
sherckuith 0:d5bb9a9c3e24 55 virtual bool EP3_IN_callback(){return false;};
sherckuith 0:d5bb9a9c3e24 56 virtual bool EP5_OUT_callback(){return false;};
sherckuith 0:d5bb9a9c3e24 57 virtual bool EP5_IN_callback(){return false;};
sherckuith 0:d5bb9a9c3e24 58
sherckuith 0:d5bb9a9c3e24 59 private:
sherckuith 0:d5bb9a9c3e24 60 void usbisr(void);
sherckuith 0:d5bb9a9c3e24 61 static void _usbisr(void);
sherckuith 0:d5bb9a9c3e24 62 static USBHAL * instance;
sherckuith 0:d5bb9a9c3e24 63 };
sherckuith 0:d5bb9a9c3e24 64 #endif
sherckuith 0:d5bb9a9c3e24 65
sherckuith 0:d5bb9a9c3e24 66