}\r
}\r
\r
+void Endpoint_ClearStatusStage(void)\r
+{\r
+ if (USB_ControlRequest.bmRequestType & REQDIR_DEVICETOHOST)\r
+ {\r
+ while (!(Endpoint_IsOUTReceived()))\r
+ {\r
+ if (USB_DeviceState == DEVICE_STATE_Unattached)\r
+ return;\r
+ }\r
+\r
+ Endpoint_ClearOUT();\r
+ }\r
+ else\r
+ {\r
+ while (!(Endpoint_IsINReady()))\r
+ {\r
+ if (USB_DeviceState == DEVICE_STATE_Unattached)\r
+ return;\r
+ }\r
+ \r
+ Endpoint_ClearIN();\r
+ }\r
+}\r
+\r
#if !defined(CONTROL_ONLY_DEVICE)\r
uint8_t Endpoint_WaitUntilReady(void)\r
{\r
return ENDPOINT_READYWAIT_NoError; \r
}\r
\r
- if (!(USB_IsConnected))\r
+ if (USB_DeviceState == DEVICE_STATE_Unattached)\r
return ENDPOINT_READYWAIT_DeviceDisconnected;\r
else if (Endpoint_IsStalled())\r
return ENDPOINT_READYWAIT_EndpointStalled;\r
}\r
\r
#define TEMPLATE_FUNC_NAME Endpoint_Write_Stream_LE\r
+#define TEMPLATE_BUFFER_TYPE const void*\r
#define TEMPLATE_CLEAR_ENDPOINT() Endpoint_ClearIN()\r
#define TEMPLATE_BUFFER_OFFSET(Length) 0\r
-#define TEMPLATE_TRANSFER_BYTE(BufferPtr) Endpoint_Write_Byte(*(BufferPtr++))\r
+#define TEMPLATE_TRANSFER_BYTE(BufferPtr) Endpoint_Write_Byte(*((uint8_t*)BufferPtr++))\r
#include "Template/Template_Endpoint_RW.c"\r
\r
#define TEMPLATE_FUNC_NAME Endpoint_Write_PStream_LE\r
+#define TEMPLATE_BUFFER_TYPE const void*\r
#define TEMPLATE_CLEAR_ENDPOINT() Endpoint_ClearIN()\r
#define TEMPLATE_BUFFER_OFFSET(Length) 0\r
-#define TEMPLATE_TRANSFER_BYTE(BufferPtr) Endpoint_Write_Byte(pgm_read_byte(BufferPtr++))\r
+#define TEMPLATE_TRANSFER_BYTE(BufferPtr) Endpoint_Write_Byte(pgm_read_byte((uint8_t*)BufferPtr++))\r
#include "Template/Template_Endpoint_RW.c"\r
\r
#define TEMPLATE_FUNC_NAME Endpoint_Write_EStream_LE\r
+#define TEMPLATE_BUFFER_TYPE const void*\r
#define TEMPLATE_CLEAR_ENDPOINT() Endpoint_ClearIN()\r
#define TEMPLATE_BUFFER_OFFSET(Length) 0\r
-#define TEMPLATE_TRANSFER_BYTE(BufferPtr) Endpoint_Write_Byte(eeprom_read_byte(BufferPtr++))\r
+#define TEMPLATE_TRANSFER_BYTE(BufferPtr) Endpoint_Write_Byte(eeprom_read_byte((uint8_t*)BufferPtr++))\r
#include "Template/Template_Endpoint_RW.c"\r
\r
#define TEMPLATE_FUNC_NAME Endpoint_Write_Stream_BE\r
+#define TEMPLATE_BUFFER_TYPE const void*\r
#define TEMPLATE_CLEAR_ENDPOINT() Endpoint_ClearIN()\r
#define TEMPLATE_BUFFER_OFFSET(Length) Length - 1\r
-#define TEMPLATE_TRANSFER_BYTE(BufferPtr) Endpoint_Write_Byte(*(BufferPtr--))\r
+#define TEMPLATE_TRANSFER_BYTE(BufferPtr) Endpoint_Write_Byte(*((uint8_t*)BufferPtr--))\r
#include "Template/Template_Endpoint_RW.c"\r
\r
#define TEMPLATE_FUNC_NAME Endpoint_Write_EStream_BE\r
+#define TEMPLATE_BUFFER_TYPE const void*\r
#define TEMPLATE_CLEAR_ENDPOINT() Endpoint_ClearIN()\r
#define TEMPLATE_BUFFER_OFFSET(Length) Length - 1\r
-#define TEMPLATE_TRANSFER_BYTE(BufferPtr) Endpoint_Write_Byte(eeprom_read_byte(BufferPtr--))\r
+#define TEMPLATE_TRANSFER_BYTE(BufferPtr) Endpoint_Write_Byte(eeprom_read_byte((uint8_t*)BufferPtr--))\r
#include "Template/Template_Endpoint_RW.c"\r
\r
#define TEMPLATE_FUNC_NAME Endpoint_Write_PStream_BE\r
+#define TEMPLATE_BUFFER_TYPE const void*\r
#define TEMPLATE_CLEAR_ENDPOINT() Endpoint_ClearIN()\r
#define TEMPLATE_BUFFER_OFFSET(Length) Length - 1\r
-#define TEMPLATE_TRANSFER_BYTE(BufferPtr) Endpoint_Write_Byte(pgm_read_byte(BufferPtr--))\r
+#define TEMPLATE_TRANSFER_BYTE(BufferPtr) Endpoint_Write_Byte(pgm_read_byte((uint8_t*)BufferPtr--))\r
#include "Template/Template_Endpoint_RW.c"\r
\r
#define TEMPLATE_FUNC_NAME Endpoint_Read_Stream_LE\r
+#define TEMPLATE_BUFFER_TYPE void*\r
#define TEMPLATE_CLEAR_ENDPOINT() Endpoint_ClearOUT()\r
#define TEMPLATE_BUFFER_OFFSET(Length) 0\r
-#define TEMPLATE_TRANSFER_BYTE(BufferPtr) *(BufferPtr++) = Endpoint_Read_Byte()\r
+#define TEMPLATE_TRANSFER_BYTE(BufferPtr) *((uint8_t*)BufferPtr++) = Endpoint_Read_Byte()\r
#include "Template/Template_Endpoint_RW.c"\r
\r
#define TEMPLATE_FUNC_NAME Endpoint_Read_EStream_LE\r
+#define TEMPLATE_BUFFER_TYPE void*\r
#define TEMPLATE_CLEAR_ENDPOINT() Endpoint_ClearOUT()\r
#define TEMPLATE_BUFFER_OFFSET(Length) 0\r
-#define TEMPLATE_TRANSFER_BYTE(BufferPtr) eeprom_write_byte(BufferPtr++, Endpoint_Read_Byte())\r
+#define TEMPLATE_TRANSFER_BYTE(BufferPtr) eeprom_write_byte((uint8_t*)BufferPtr++, Endpoint_Read_Byte())\r
#include "Template/Template_Endpoint_RW.c"\r
\r
#define TEMPLATE_FUNC_NAME Endpoint_Read_Stream_BE\r
+#define TEMPLATE_BUFFER_TYPE void*\r
#define TEMPLATE_CLEAR_ENDPOINT() Endpoint_ClearOUT()\r
#define TEMPLATE_BUFFER_OFFSET(Length) Length - 1\r
-#define TEMPLATE_TRANSFER_BYTE(BufferPtr) *(BufferPtr--) = Endpoint_Read_Byte()\r
+#define TEMPLATE_TRANSFER_BYTE(BufferPtr) *((uint8_t*)BufferPtr--) = Endpoint_Read_Byte()\r
#include "Template/Template_Endpoint_RW.c"\r
\r
#define TEMPLATE_FUNC_NAME Endpoint_Read_EStream_BE\r
+#define TEMPLATE_BUFFER_TYPE void*\r
#define TEMPLATE_CLEAR_ENDPOINT() Endpoint_ClearOUT()\r
#define TEMPLATE_BUFFER_OFFSET(Length) Length - 1\r
-#define TEMPLATE_TRANSFER_BYTE(BufferPtr) eeprom_write_byte(BufferPtr--, Endpoint_Read_Byte())\r
+#define TEMPLATE_TRANSFER_BYTE(BufferPtr) eeprom_write_byte((uint8_t*)BufferPtr--, Endpoint_Read_Byte())\r
#include "Template/Template_Endpoint_RW.c"\r
\r
#endif\r
\r
#define TEMPLATE_FUNC_NAME Endpoint_Write_Control_Stream_LE\r
#define TEMPLATE_BUFFER_OFFSET(Length) 0\r
-#define TEMPLATE_TRANSFER_BYTE(BufferPtr) Endpoint_Write_Byte(*(BufferPtr++))\r
+#define TEMPLATE_TRANSFER_BYTE(BufferPtr) Endpoint_Write_Byte(*((uint8_t*)BufferPtr++))\r
#include "Template/Template_Endpoint_Control_W.c"\r
\r
#define TEMPLATE_FUNC_NAME Endpoint_Write_Control_PStream_LE\r
#define TEMPLATE_BUFFER_OFFSET(Length) 0\r
-#define TEMPLATE_TRANSFER_BYTE(BufferPtr) Endpoint_Write_Byte(pgm_read_byte(BufferPtr++))\r
+#define TEMPLATE_TRANSFER_BYTE(BufferPtr) Endpoint_Write_Byte(pgm_read_byte((uint8_t*)BufferPtr++))\r
#include "Template/Template_Endpoint_Control_W.c"\r
\r
#define TEMPLATE_FUNC_NAME Endpoint_Write_Control_EStream_LE\r
#define TEMPLATE_BUFFER_OFFSET(Length) 0\r
-#define TEMPLATE_TRANSFER_BYTE(BufferPtr) Endpoint_Write_Byte(eeprom_read_byte(BufferPtr++))\r
+#define TEMPLATE_TRANSFER_BYTE(BufferPtr) Endpoint_Write_Byte(eeprom_read_byte((uint8_t*)BufferPtr++))\r
#include "Template/Template_Endpoint_Control_W.c"\r
\r
#define TEMPLATE_FUNC_NAME Endpoint_Write_Control_Stream_BE\r
#define TEMPLATE_BUFFER_OFFSET(Length) Length - 1\r
-#define TEMPLATE_TRANSFER_BYTE(BufferPtr) Endpoint_Write_Byte(*(BufferPtr--))\r
+#define TEMPLATE_TRANSFER_BYTE(BufferPtr) Endpoint_Write_Byte(*((uint8_t*)BufferPtr--))\r
#include "Template/Template_Endpoint_Control_W.c"\r
\r
#define TEMPLATE_FUNC_NAME Endpoint_Write_Control_PStream_BE\r
#define TEMPLATE_BUFFER_OFFSET(Length) Length - 1\r
-#define TEMPLATE_TRANSFER_BYTE(BufferPtr) Endpoint_Write_Byte(pgm_read_byte(BufferPtr--))\r
+#define TEMPLATE_TRANSFER_BYTE(BufferPtr) Endpoint_Write_Byte(pgm_read_byte((uint8_t*)BufferPtr--))\r
#include "Template/Template_Endpoint_Control_W.c"\r
\r
#define TEMPLATE_FUNC_NAME Endpoint_Write_Control_EStream_BE\r
#define TEMPLATE_BUFFER_OFFSET(Length) Length - 1\r
-#define TEMPLATE_TRANSFER_BYTE(BufferPtr) Endpoint_Write_Byte(eeprom_read_byte(BufferPtr--))\r
+#define TEMPLATE_TRANSFER_BYTE(BufferPtr) Endpoint_Write_Byte(eeprom_read_byte((uint8_t*)BufferPtr--))\r
#include "Template/Template_Endpoint_Control_W.c"\r
\r
#define TEMPLATE_FUNC_NAME Endpoint_Read_Control_Stream_LE\r
#define TEMPLATE_BUFFER_OFFSET(Length) 0\r
-#define TEMPLATE_TRANSFER_BYTE(BufferPtr) *(BufferPtr++) = Endpoint_Read_Byte()\r
+#define TEMPLATE_TRANSFER_BYTE(BufferPtr) *((uint8_t*)BufferPtr++) = Endpoint_Read_Byte()\r
#include "Template/Template_Endpoint_Control_R.c"\r
\r
#define TEMPLATE_FUNC_NAME Endpoint_Read_Control_EStream_LE\r
#define TEMPLATE_BUFFER_OFFSET(Length) 0\r
-#define TEMPLATE_TRANSFER_BYTE(BufferPtr) eeprom_write_byte(BufferPtr++, Endpoint_Read_Byte())\r
+#define TEMPLATE_TRANSFER_BYTE(BufferPtr) eeprom_write_byte((uint8_t*)BufferPtr++, Endpoint_Read_Byte())\r
#include "Template/Template_Endpoint_Control_R.c"\r
\r
#define TEMPLATE_FUNC_NAME Endpoint_Read_Control_Stream_BE\r
#define TEMPLATE_BUFFER_OFFSET(Length) Length - 1\r
-#define TEMPLATE_TRANSFER_BYTE(BufferPtr) *(BufferPtr--) = Endpoint_Read_Byte()\r
+#define TEMPLATE_TRANSFER_BYTE(BufferPtr) *((uint8_t*)BufferPtr--) = Endpoint_Read_Byte()\r
#include "Template/Template_Endpoint_Control_R.c"\r
\r
#define TEMPLATE_FUNC_NAME Endpoint_Read_Control_EStream_BE\r
#define TEMPLATE_BUFFER_OFFSET(Length) Length - 1\r
-#define TEMPLATE_TRANSFER_BYTE(BufferPtr) eeprom_write_byte(BufferPtr--, Endpoint_Read_Byte())\r
+#define TEMPLATE_TRANSFER_BYTE(BufferPtr) eeprom_write_byte((uint8_t*)BufferPtr--, Endpoint_Read_Byte())\r
#include "Template/Template_Endpoint_Control_R.c"\r
\r
#endif\r