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:
parent
23f3c3deee
commit
a54ed0085b
14 changed files with 213 additions and 95 deletions
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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 |
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
*/
|
||||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue