Seperated out parts of the PrinterHost incomplete demo into a seperate Lib subdirectory.

Fixed Host mode to Device mode UID change not causing a USB Disconnect event when a device was connected.
This commit is contained in:
Dean Camera 2009-07-13 04:46:52 +00:00
parent 23f3c3deee
commit a54ed0085b
14 changed files with 213 additions and 95 deletions

View file

@ -243,8 +243,8 @@ ISR(USB_GEN_vect, ISR_BLOCK)
{
if (USB_CurrentMode == USB_MODE_HOST)
EVENT_USB_DeviceUnattached();
else
EVENT_USB_Disconnect();
EVENT_USB_Disconnect();
}
EVENT_USB_UIDChange();

View file

@ -39,7 +39,7 @@ volatile bool USB_IsInitialized;
USB_Request_Header_t USB_ControlRequest;
#if defined(USB_CAN_BE_HOST)
volatile uint8_t USB_HostState;
volatile uint8_t USB_HostState;
#endif
void USB_USBTask(void)

View file

@ -58,7 +58,7 @@ uint8_t USB_Host_SendControlRequest(void* BufferPtr)
Pipe_ClearSETUP();
if ((ReturnStatus = USB_Host_Wait_For_Setup_IOS(USB_HOST_WAITFOR_SetupSent)))
if ((ReturnStatus = USB_Host_WaitForIOS(USB_HOST_WAITFOR_SetupSent)))
goto End_Of_Control_Send;
Pipe_Freeze();
@ -76,7 +76,7 @@ uint8_t USB_Host_SendControlRequest(void* BufferPtr)
{
Pipe_Unfreeze();
if ((ReturnStatus = USB_Host_Wait_For_Setup_IOS(USB_HOST_WAITFOR_InReceived)))
if ((ReturnStatus = USB_Host_WaitForIOS(USB_HOST_WAITFOR_InReceived)))
goto End_Of_Control_Send;
if (!(Pipe_BytesInPipe()))
@ -96,12 +96,12 @@ uint8_t USB_Host_SendControlRequest(void* BufferPtr)
Pipe_SetToken(PIPE_TOKEN_OUT);
Pipe_Unfreeze();
if ((ReturnStatus = USB_Host_Wait_For_Setup_IOS(USB_HOST_WAITFOR_OutReady)))
if ((ReturnStatus = USB_Host_WaitForIOS(USB_HOST_WAITFOR_OutReady)))
goto End_Of_Control_Send;
Pipe_ClearOUT();
if ((ReturnStatus = USB_Host_Wait_For_Setup_IOS(USB_HOST_WAITFOR_OutReady)))
if ((ReturnStatus = USB_Host_WaitForIOS(USB_HOST_WAITFOR_OutReady)))
goto End_Of_Control_Send;
}
else
@ -113,7 +113,7 @@ uint8_t USB_Host_SendControlRequest(void* BufferPtr)
while (DataLen)
{
if ((ReturnStatus = USB_Host_Wait_For_Setup_IOS(USB_HOST_WAITFOR_OutReady)))
if ((ReturnStatus = USB_Host_WaitForIOS(USB_HOST_WAITFOR_OutReady)))
goto End_Of_Control_Send;
while (DataLen && (Pipe_BytesInPipe() < USB_ControlPipeSize))
@ -125,7 +125,7 @@ uint8_t USB_Host_SendControlRequest(void* BufferPtr)
Pipe_ClearOUT();
}
if ((ReturnStatus = USB_Host_Wait_For_Setup_IOS(USB_HOST_WAITFOR_OutReady)))
if ((ReturnStatus = USB_Host_WaitForIOS(USB_HOST_WAITFOR_OutReady)))
goto End_Of_Control_Send;
Pipe_Freeze();
@ -134,7 +134,7 @@ uint8_t USB_Host_SendControlRequest(void* BufferPtr)
Pipe_SetToken(PIPE_TOKEN_IN);
Pipe_Unfreeze();
if ((ReturnStatus = USB_Host_Wait_For_Setup_IOS(USB_HOST_WAITFOR_InReceived)))
if ((ReturnStatus = USB_Host_WaitForIOS(USB_HOST_WAITFOR_InReceived)))
goto End_Of_Control_Send;
Pipe_ClearIN();
@ -151,7 +151,7 @@ End_Of_Control_Send:
return ReturnStatus;
}
static uint8_t USB_Host_Wait_For_Setup_IOS(const uint8_t WaitType)
static uint8_t USB_Host_WaitForIOS(const uint8_t WaitType)
{
#if (USB_HOST_TIMEOUT_MS < 0xFF)
uint8_t TimeoutCounter = USB_HOST_TIMEOUT_MS;

View file

@ -90,7 +90,7 @@
/* Function Prototypes: */
#if defined(INCLUDE_FROM_HOSTCHAPTER9_C)
static uint8_t USB_Host_Wait_For_Setup_IOS(const uint8_t WaitType);
static uint8_t USB_Host_WaitForIOS(const uint8_t WaitType);
#endif
#endif

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Before After
Before After

View file

@ -49,6 +49,7 @@
* - Fixed MassStorage demo not clearing the reset flag when a Mass Storage Reset is issued while not processing a command
* - Fixed USB_Host_SendControlRequest() not re-suspending the USB bus when initial device ready-wait fails
* - Fixed USB Pad regulator not being disabled on some AVR models when the USB_OPT_REG_DISABLED option is used
* - Fixed Host mode to Device mode UID change not causing a USB Disconnect event when a device was connected
*
*
* \section Sec_ChangeLog090605 Version 090605

View file

@ -24,7 +24,9 @@
* - <b>BOARD</b>, the target board hardware
* - <b>F_CLOCK</b>, the target raw master clock frequency, before any prescaling is performed
* - <b>F_CPU</b>, the target AVR CPU master clock frequency, after any prescaling
* - <b>CDEFS</b>, the C preprocessor defines which configure the source code
* - <b>CDEFS</b>, the C preprocessor defines which configure options the source code
* - <b>LUFA_PATH</b>, the path to the LUFA library source code
* - <b>LUFA_OPTS</b>, the compile time LUFA options which configure the library features
*
* These values should be changed to reflect the build hardware.
*
@ -63,12 +65,23 @@
* library components will occur.
*
* \section Sec_CDEFS The CDEFS Parameter
* Many applications have features which can be controlled by the defining of specially named preprocessor tokens at the point of compilation - for example,
* an application might use a compile time token to turn on or off optional or mutually exclusive portions of code. Preprocessor tokens can be
* defined here by listing each one with the -D command line switch, and each token can optionally be defined to a specific value. When defined in the
* project makefile, these behave as if they were defined in every source file via a normal preprocessor define statement.
*
* Most applications will actually have multiple CDEF lines, which are concatenated together with the "+=" operator. This ensures that large
* numbers of configuration options remain readable by splitting up groups of options into separate lines.
*
* Normally, these options do not need to be altered to allow an application to compile and run correctly on a different board or AVR to the
* current configuration - if the options are incorrect, then the demo is most likely incompatible with the chosen USB AVR model and cannot be
* made to function through the altering of the makefile settings alone (or at all). Settings such as the USB mode (device, host or both), the USB
* interface speed (Low or Full speed) and other LUFA configuration options can be set here - refer to the library documentation for details on the
* configuration parameters.
* \section Sec_LUFA_PATH The LUFA_PATH Parameter
* As each LUFA program requires the LUFA library source code to compile correctly, the application must know where the LUFA library is located. This
* value specifies the path to the LUFA library base relative to the path of the project makefile.
*
* \section Sec_LUFA_OPTS The LUFA_OPTS Parameter
* This value is similar to the CDEFS parameter listed elsewhere -- indeed, it is simply a convenient place to group LUFA related tokens away from the
* application's compile time tokens. Normally, these options do not need to be altered to allow an application to compile and run correctly on a
* different board or AVR to the current configuration - if the options are incorrect, then the demo is most likely incompatible with the chosen USB AVR
* model and cannot be made to function through the altering of the makefile settings alone (or at all). Settings such as the USB mode (device, host or both),
* the USB interface speed (Low or Full speed) and other LUFA configuration options can be set here - see \ref Page_TokenSummary documentation for details
* on the available LUFA compile time configuration options.
*/

View file

@ -21,11 +21,11 @@
* - Add standardized descriptor names to device and host class driver structures
* - Remove USE_NONSTANDARD_DESCRIPTOR_NAMES, make all typedefs unions to allow either naming scheme to be used
* - Add in INTERRUPT_CONTROL_PIPE to use HSOFI to trigger calls to the host state machine
* - Remove FAST_STREAM_TRANSFERS as they have little effect
* - Make Suspend host state suspend USB bus frames
* - Add in Stream functions for PROGMEM, EEPROM -- move to templated system
* - Debug mode for pipe/endpoint calls
* - Test and document new FAST_STREAM_TRANSFERS compile time option
* - Demo hardware compatibility table/list
*
* <b>Targeted for Future Releases:</b>
* - Remake AVRStudio project files