USB_Init() no longer calls sei() to enable global interrupts - this must now be done in the user application once all init code has run.

This commit is contained in:
Dean Camera 2010-04-28 07:48:26 +00:00
parent 85aaaf84ce
commit 59c4871f80
135 changed files with 181 additions and 61 deletions

View file

@ -103,8 +103,6 @@ void USB_Init(
#endif
USB_IsInitialized = true;
sei();
}
void USB_ShutDown(void)

View file

@ -236,8 +236,12 @@
* allow for device connection to a host when in device mode, or for device enumeration while in
* host mode.
*
* As the USB library relies on USB interrupts for some of its functionality, this routine will
* enable global interrupts.
* As the USB library relies on interrupts for the device and host mode enumeration processes,
* the user must enable global interrupts before or shortly after this function is called. In
* device mode, interrupts must be enabled within 500ms of this function being called to ensure
* that the host does not time out whilst enumerating the device. In host mode, interrupts may be
* enabled at the application's leisure however enumeration will not begin of an attached device
* until after this has occurred.
*
* Calling this function when the USB interface is already initialized will cause a complete USB
* interface reset and re-enumeration.

View file

@ -28,6 +28,7 @@
* - Added LIBUSB_FILTERDRV_COMPAT compile time option to the AVRISP programmer project to make the code compatible with Windows
* builds of avrdude at the expense of AVRStudio compatibility
* - Removed two-step endpoint/pipe bank clear and switch sequence for smaller, faster endpoint/pipe code
* - The USB_Init() function no longer calls sei() - the user is now responsible for enabling interrupts when they are ready
*
* <b>Fixed:</b>
* - Fixed software PDI/TPI programming mode in the AVRISP project not correctly toggling just the clock pin

View file

@ -16,6 +16,18 @@
* - The \ref TWI_StartTransmission() function now takes in a timeout period, expressed in milliseconds, within which the addressed
* device must respond or the function will abort.
*
* <b>Device Mode</b>
* - The \ref USB_Init() function no longer calls sei() to enable global interrupts, as the user application may need
* to perform other initialization before it is ready to handle global interrupts. The user application is now responsible
* for enabling global interrupts before or shortly after calling \ref USB_Init() to ensure that the enumeration process
* functions correctly.
*
* <b>Host Mode</b>
* - The \ref USB_Init() function no longer calls sei() to enable global interrupts, as the user application may need
* to perform other initialization before it is ready to handle global interrupts. The user application is now responsible
* for enabling global interrupts before or shortly after calling \ref USB_Init() to ensure that the enumeration process
* functions correctly.
*
* \section Sec_Migration100219 Migrating from 091223 to 100219
*
* <b>Non-USB Library Components</b>