/** Endpoint number mask, for masking against endpoint addresses to retrieve the endpoint's\r
* numerical address in the device.\r
*/\r
- #define ENDPOINT_EPNUM_MASK 0x03\r
+ #define ENDPOINT_EPNUM_MASK 0x07\r
\r
/** Endpoint bank size mask, for masking against endpoint addresses to retrieve the endpoint's\r
* bank size in the device.\r
\r
/** Maximum size in bytes of a given endpoint.\r
*\r
- * \param n Endpoint number, a value between 0 and (ENDPOINT_TOTAL_ENDPOINTS - 1)\r
+ * \param[in] n Endpoint number, a value between 0 and (ENDPOINT_TOTAL_ENDPOINTS - 1)\r
*/ \r
#define ENDPOINT_MAX_SIZE(n) _ENDPOINT_GET_MAXSIZE(n)\r
\r
/** Indicates if the given endpoint supports double banking.\r
*\r
- * \param n Endpoint number, a value between 0 and (ENDPOINT_TOTAL_ENDPOINTS - 1)\r
+ * \param[in] n Endpoint number, a value between 0 and (ENDPOINT_TOTAL_ENDPOINTS - 1)\r
*/ \r
#define ENDPOINT_DOUBLEBANK_SUPPORTED(n) _ENDPOINT_GET_DOUBLEBANK(n)\r
\r
#if !defined(CONTROL_ONLY_DEVICE)\r
- #if defined(USB_FULL_CONTROLLER) || defined(USB_MODIFIED_FULL_CONTROLLER) || defined(__DOXYGEN__)\r
+ #if defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR) || defined(__DOXYGEN__)\r
/** Total number of endpoints (including the default control endpoint at address 0) which may\r
* be used in the device. Different USB AVR models support different amounts of endpoints,\r
* this value reflects the maximum number of endpoints for the currently selected AVR model.\r
* Any endpoint operations which do not require the endpoint number to be indicated will operate on\r
* the currently selected endpoint.\r
*\r
- * \param EndpointNumber Endpoint number to select\r
+ * \param[in] EndpointNumber Endpoint number to select\r
*/\r
static inline void Endpoint_SelectEndpoint(uint8_t EndpointNumber);\r
\r
/** Resets the endpoint bank FIFO. This clears all the endpoint banks and resets the USB controller's\r
* In and Out pointers to the bank's contents.\r
*\r
- * \param EndpointNumber Endpoint number whose FIFO buffers are to be reset\r
+ * \param[in] EndpointNumber Endpoint number whose FIFO buffers are to be reset\r
*/\r
static inline void Endpoint_ResetFIFO(uint8_t EndpointNumber);\r
\r
/** Determines if the specified endpoint number has interrupted (valid only for INTERRUPT type\r
* endpoints).\r
*\r
- * \param EndpointNumber Index of the endpoint whose interrupt flag should be tested\r
+ * \param[in] EndpointNumber Index of the endpoint whose interrupt flag should be tested\r
*\r
* \return Boolean true if the specified endpoint has interrupted, false otherwise\r
*/\r
*/\r
static inline uint8_t Endpoint_GetEndpointDirection(void);\r
#else\r
- #if defined(USB_FULL_CONTROLLER) || defined(USB_MODIFIED_FULL_CONTROLLER) || defined(__DOXYGEN__)\r
+ #if defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR) || defined(__DOXYGEN__)\r
#define Endpoint_BytesInEndpoint() UEBCX\r
#else\r
#define Endpoint_BytesInEndpoint() UEBCLX\r
*\r
* \ingroup Group_EndpointRW\r
*\r
- * \param Byte Next byte to write into the the currently selected endpoint's FIFO buffer\r
+ * \param[in] Byte Next byte to write into the the currently selected endpoint's FIFO buffer\r
*/\r
static inline void Endpoint_Write_Byte(const uint8_t Byte) ATTR_ALWAYS_INLINE;\r
static inline void Endpoint_Write_Byte(const uint8_t Byte)\r
*\r
* \ingroup Group_EndpointRW\r
*\r
- * \param Word Next word to write to the currently selected endpoint's FIFO buffer\r
+ * \param[in] Word Next word to write to the currently selected endpoint's FIFO buffer\r
*/\r
static inline void Endpoint_Write_Word_LE(const uint16_t Word) ATTR_ALWAYS_INLINE;\r
static inline void Endpoint_Write_Word_LE(const uint16_t Word)\r
*\r
* \ingroup Group_EndpointRW\r
*\r
- * \param Word Next word to write to the currently selected endpoint's FIFO buffer\r
+ * \param[in] Word Next word to write to the currently selected endpoint's FIFO buffer\r
*/\r
static inline void Endpoint_Write_Word_BE(const uint16_t Word) ATTR_ALWAYS_INLINE;\r
static inline void Endpoint_Write_Word_BE(const uint16_t Word)\r
*\r
* \ingroup Group_EndpointRW\r
*\r
- * \param DWord Next double word to write to the currently selected endpoint's FIFO buffer\r
+ * \param[in] DWord Next double word to write to the currently selected endpoint's FIFO buffer\r
*/\r
static inline void Endpoint_Write_DWord_LE(const uint32_t DWord) ATTR_ALWAYS_INLINE;\r
static inline void Endpoint_Write_DWord_LE(const uint32_t DWord)\r
*\r
* \ingroup Group_EndpointRW\r
*\r
- * \param DWord Next double word to write to the currently selected endpoint's FIFO buffer\r
+ * \param[in] DWord Next double word to write to the currently selected endpoint's FIFO buffer\r
*/\r
static inline void Endpoint_Write_DWord_BE(const uint32_t DWord) ATTR_ALWAYS_INLINE;\r
static inline void Endpoint_Write_DWord_BE(const uint32_t DWord)\r
/* Function Prototypes: */\r
/** Configures the specified endpoint number with the given endpoint type, direction, bank size\r
* and banking mode. Endpoints should be allocated in ascending order by their address in the\r
- * device (i.e. endpoint 1 should be configured before endpoint 2 and so on).\r
+ * device (i.e. endpoint 1 should be configured before endpoint 2 and so on) to prevent fragmentation\r
+ * of the USB FIFO memory.\r
*\r
* The endpoint type may be one of the EP_TYPE_* macros listed in LowLevel.h and the direction\r
* may be either \ref ENDPOINT_DIR_OUT or \ref ENDPOINT_DIR_IN.\r
*\r
* The banking mode may be either \ref ENDPOINT_BANK_SINGLE or \ref ENDPOINT_BANK_DOUBLE.\r
*\r
- * The success of this routine can be determined via the \ref Endpoint_IsConfigured() macro.\r
+ * \note The default control endpoint does not have to be manually configured, as it is automatically\r
+ * configured by the library internally.\r
*\r
* \note This routine will select the specified endpoint, and the endpoint will remain selected\r
* once the routine completes regardless of if the endpoint configuration succeeds.\r
* each USB packet, the given stream callback function is executed repeatedly until the next\r
* packet is ready, allowing for early aborts of stream transfers.\r
*\r
- * The callback routine should be created using the \ref STREAM_CALLBACK() macro. If the token\r
- * NO_STREAM_CALLBACKS is passed via the -D option to the compiler, stream callbacks are disabled\r
- * and this function has the Callback parameter omitted.\r
+ * The callback routine should be created according to the information in \ref Group_StreamCallbacks.\r
+ * If the token NO_STREAM_CALLBACKS is passed via the -D option to the compiler, stream callbacks are\r
+ * disabled and this function has the Callback parameter omitted.\r
*\r
* \note This routine should not be used on CONTROL type endpoints.\r
*\r
* \ingroup Group_EndpointRW\r
*\r
- * \param Length Number of bytes to send via the currently selected endpoint.\r
- * \param Callback Name of a callback routine to call between successive USB packet transfers, NULL if no callback\r
+ * \param[in] Length Number of bytes to send via the currently selected endpoint.\r
+ * \param[in] Callback Name of a callback routine to call between successive USB packet transfers, NULL if no callback\r
*\r
* \return A value from the \ref Endpoint_Stream_RW_ErrorCodes_t enum.\r
*/\r
* is executed repeatedly until the endpoint is ready to accept the next packet, allowing for early\r
* aborts of stream transfers.\r
*\r
- * The callback routine should be created using the \ref STREAM_CALLBACK() macro. If the token\r
- * NO_STREAM_CALLBACKS is passed via the -D option to the compiler, stream callbacks are disabled\r
- * and this function has the Callback parameter omitted.\r
+ * The callback routine should be created according to the information in \ref Group_StreamCallbacks.\r
+ * If the token NO_STREAM_CALLBACKS is passed via the -D option to the compiler, stream callbacks are\r
+ * disabled and this function has the Callback parameter omitted.\r
*\r
* \note This routine should not be used on CONTROL type endpoints.\r
*\r
* \ingroup Group_EndpointRW\r
*\r
- * \param Buffer Pointer to the source data buffer to read from.\r
- * \param Length Number of bytes to read for the currently selected endpoint into the buffer.\r
- * \param Callback Name of a callback routine to call between successive USB packet transfers, NULL if no callback\r
+ * \param[in] Buffer Pointer to the source data buffer to read from.\r
+ * \param[in] Length Number of bytes to read for the currently selected endpoint into the buffer.\r
+ * \param[in] Callback Name of a callback routine to call between successive USB packet transfers, NULL if no callback\r
*\r
* \return A value from the \ref Endpoint_Stream_RW_ErrorCodes_t enum.\r
*/\r
* is executed repeatedly until the endpoint is ready to accept the next packet, allowing for early\r
* aborts of stream transfers.\r
*\r
- * The callback routine should be created using the \ref STREAM_CALLBACK() macro. If the token\r
- * NO_STREAM_CALLBACKS is passed via the -D option to the compiler, stream callbacks are disabled\r
- * and this function has the Callback parameter omitted.\r
+ * The callback routine should be created according to the information in \ref Group_StreamCallbacks.\r
+ * If the token NO_STREAM_CALLBACKS is passed via the -D option to the compiler, stream callbacks are\r
+ * disabled and this function has the Callback parameter omitted.\r
*\r
* \note This routine should not be used on CONTROL type endpoints.\r
*\r
* \ingroup Group_EndpointRW\r
*\r
- * \param Buffer Pointer to the source data buffer to read from.\r
- * \param Length Number of bytes to read for the currently selected endpoint into the buffer.\r
- * \param Callback Name of a callback routine to call between successive USB packet transfers, NULL if no callback\r
+ * \param[in] Buffer Pointer to the source data buffer to read from.\r
+ * \param[in] Length Number of bytes to read for the currently selected endpoint into the buffer.\r
+ * \param[in] Callback Name of a callback routine to call between successive USB packet transfers, NULL if no callback\r
*\r
* \return A value from the \ref Endpoint_Stream_RW_ErrorCodes_t enum.\r
*/\r
* each USB packet, the given stream callback function is executed repeatedly until the endpoint\r
* is ready to accept the next packet, allowing for early aborts of stream transfers.\r
*\r
- * The callback routine should be created using the \ref STREAM_CALLBACK() macro. If the token\r
- * NO_STREAM_CALLBACKS is passed via the -D option to the compiler, stream callbacks are disabled\r
- * and this function has the Callback parameter omitted.\r
+ * The callback routine should be created according to the information in \ref Group_StreamCallbacks.\r
+ * If the token NO_STREAM_CALLBACKS is passed via the -D option to the compiler, stream callbacks are\r
+ * disabled and this function has the Callback parameter omitted.\r
*\r
* \note This routine should not be used on CONTROL type endpoints.\r
*\r
* \ingroup Group_EndpointRW\r
*\r
- * \param Buffer Pointer to the destination data buffer to write to.\r
- * \param Length Number of bytes to send via the currently selected endpoint.\r
- * \param Callback Name of a callback routine to call between successive USB packet transfers, NULL if no callback\r
+ * \param[out] Buffer Pointer to the destination data buffer to write to.\r
+ * \param[in] Length Number of bytes to send via the currently selected endpoint.\r
+ * \param[in] Callback Name of a callback routine to call between successive USB packet transfers, NULL if no callback\r
*\r
* \return A value from the \ref Endpoint_Stream_RW_ErrorCodes_t enum.\r
*/\r
* each USB packet, the given stream callback function is executed repeatedly until the endpoint\r
* is ready to accept the next packet, allowing for early aborts of stream transfers.\r
*\r
- * The callback routine should be created using the \ref STREAM_CALLBACK() macro. If the token\r
- * NO_STREAM_CALLBACKS is passed via the -D option to the compiler, stream callbacks are disabled\r
- * and this function has the Callback parameter omitted.\r
+ * The callback routine should be created according to the information in \ref Group_StreamCallbacks.\r
+ * If the token NO_STREAM_CALLBACKS is passed via the -D option to the compiler, stream callbacks are\r
+ * disabled and this function has the Callback parameter omitted.\r
*\r
* \note This routine should not be used on CONTROL type endpoints.\r
*\r
* \ingroup Group_EndpointRW\r
*\r
- * \param Buffer Pointer to the destination data buffer to write to.\r
- * \param Length Number of bytes to send via the currently selected endpoint.\r
- * \param Callback Name of a callback routine to call between successive USB packet transfers, NULL if no callback\r
+ * \param[out] Buffer Pointer to the destination data buffer to write to.\r
+ * \param[in] Length Number of bytes to send via the currently selected endpoint.\r
+ * \param[in] Callback Name of a callback routine to call between successive USB packet transfers, NULL if no callback\r
*\r
* \return A value from the \ref Endpoint_Stream_RW_ErrorCodes_t enum.\r
*/\r
*\r
* \ingroup Group_EndpointRW\r
*\r
- * \param Buffer Pointer to the source data buffer to read from.\r
- * \param Length Number of bytes to read for the currently selected endpoint into the buffer.\r
+ * \param[in] Buffer Pointer to the source data buffer to read from.\r
+ * \param[in] Length Number of bytes to read for the currently selected endpoint into the buffer.\r
*\r
* \return A value from the \ref Endpoint_ControlStream_RW_ErrorCodes_t enum.\r
*/\r
*\r
* \ingroup Group_EndpointRW\r
*\r
- * \param Buffer Pointer to the source data buffer to read from.\r
- * \param Length Number of bytes to read for the currently selected endpoint into the buffer.\r
+ * \param[in] Buffer Pointer to the source data buffer to read from.\r
+ * \param[in] Length Number of bytes to read for the currently selected endpoint into the buffer.\r
*\r
* \return A value from the \ref Endpoint_ControlStream_RW_ErrorCodes_t enum.\r
*/\r
*\r
* \ingroup Group_EndpointRW\r
*\r
- * \param Buffer Pointer to the destination data buffer to write to.\r
- * \param Length Number of bytes to send via the currently selected endpoint.\r
+ * \param[out] Buffer Pointer to the destination data buffer to write to.\r
+ * \param[in] Length Number of bytes to send via the currently selected endpoint.\r
*\r
* \return A value from the \ref Endpoint_ControlStream_RW_ErrorCodes_t enum.\r
*/\r
*\r
* \ingroup Group_EndpointRW\r
*\r
- * \param Buffer Pointer to the destination data buffer to write to.\r
- * \param Length Number of bytes to send via the currently selected endpoint.\r
+ * \param[out] Buffer Pointer to the destination data buffer to write to.\r
+ * \param[in] Length Number of bytes to send via the currently selected endpoint.\r
*\r
* \return A value from the \ref Endpoint_ControlStream_RW_ErrorCodes_t enum.\r
*/\r
#define _ENDPOINT_GET_DOUBLEBANK2(details) _ENDPOINT_GET_DOUBLEBANK3(details)\r
#define _ENDPOINT_GET_DOUBLEBANK3(maxsize, db) db\r
\r
- #if defined(USB_FULL_CONTROLLER) || defined(USB_MODIFIED_FULL_CONTROLLER)\r
+ #if defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR)\r
#define ENDPOINT_DETAILS_EP0 64, true\r
#define ENDPOINT_DETAILS_EP1 256, true\r
#define ENDPOINT_DETAILS_EP2 64, true\r