Added preprocessor checks and documentation to the bootloaders giving information about missing SIGNATURE_x defines due to outdated avr-libc versions.

pull/1469/head
Dean Camera 16 years ago
parent 557a945ba1
commit cb7884da50

@ -48,6 +48,11 @@
#include <LUFA/Drivers/USB/USB.h> // USB Functionality #include <LUFA/Drivers/USB/USB.h> // USB Functionality
/* Preprocessor Checks: */
#if !defined(SIGNATURE_0) || !defined(SIGNATURE_1) || !defined(SIGNATURE_2)
#error Device signature byte constants are not defined due to outdated avr-libc version. See demo documentation.
#endif
/* Macros: */ /* Macros: */
/** CDC Class Specific request to get the line encoding on a CDC-ACM virtual serial port, including the /** CDC Class Specific request to get the line encoding on a CDC-ACM virtual serial port, including the
* baud rate, parity, stop bits and data bits. * baud rate, parity, stop bits and data bits.

@ -50,9 +50,16 @@
* *
* <table> * <table>
* <tr> * <tr>
* <td> * <td><b>Define Name:</b></td>
* None * <td><b>Location:</b></td>
* </td> * <td><b>Description:</b></td>
* </tr>
* <tr>
* <td>SIGNATURE_0, SIGNATURE_1, SIGNATURE_2</td>
* <td>Makefile CDEFS</td>
* <td>AVR part signature bytes. These are normally defined as part of the AVR device header files in recent avr-libc
* distributions. If your avr-libc library is out of date and does not define these values, you can define them
* manually in the makefile CDEFS.</td>
* </tr> * </tr>
* </table> * </table>
*/ */

@ -49,6 +49,11 @@
#include <LUFA/Drivers/USB/USB.h> // USB Functionality #include <LUFA/Drivers/USB/USB.h> // USB Functionality
/* Preprocessor Checks: */
#if !defined(SIGNATURE_0) || !defined(SIGNATURE_1) || !defined(SIGNATURE_2)
#error Device signature byte constants are not defined due to outdated avr-libc version. See demo documentation.
#endif
/* Macros: */ /* Macros: */
/** Configuration define. Define this token to true to case the bootloader to reject all memory commands /** Configuration define. Define this token to true to case the bootloader to reject all memory commands
* until a memory erase has been performed. When used in conjunction with the lockbits of the AVR, this * until a memory erase has been performed. When used in conjunction with the lockbits of the AVR, this

@ -73,5 +73,12 @@
* erase has been perfomed. This can be used in conjunction with the AVR's lockbits to prevent the AVRs firmware from * erase has been perfomed. This can be used in conjunction with the AVR's lockbits to prevent the AVRs firmware from
* being dumped by unauthorized persons.</td> * being dumped by unauthorized persons.</td>
* </tr> * </tr>
* <tr>
* <td>SIGNATURE_0, SIGNATURE_1, SIGNATURE_2</td>
* <td>Makefile CDEFS</td>
* <td>AVR part signature bytes. These are normally defined as part of the AVR device header files in recent avr-libc
* distributions. If your avr-libc library is out of date and does not define these values, you can define them
* manually in the makefile CDEFS.</td>
* </tr>
* </table> * </table>
*/ */

@ -386,7 +386,7 @@ STREAM_CALLBACK(AbortOnMassStoreReset)
/** ISR for the general Pipe/Endpoint interrupt vector. This ISR fires when a control request has been issued to the control endpoint, /** ISR for the general Pipe/Endpoint interrupt vector. This ISR fires when a control request has been issued to the control endpoint,
* so that the request can be processed. As several elements of the Mass Storage implementation require asynchronous control requests * so that the request can be processed. As several elements of the Mass Storage implementation require asynchronous control requests
* (such as endpoint stall clearing and Mass Storage Reset requests during data transfers) this is done via interrupts rather than * (such as endpoint stall clearing and Mass Storage Reset requests during data transfers) this is done via interrupts rather than
* polling. * polling so that they can be processed regardless of the rest of the application's state.
*/ */
ISR(ENDPOINT_PIPE_vect, ISR_BLOCK) ISR(ENDPOINT_PIPE_vect, ISR_BLOCK)
{ {

@ -55,10 +55,10 @@
#define REMOTE_NDIS_VERSION_MINOR 0x00 #define REMOTE_NDIS_VERSION_MINOR 0x00
/** RNDIS request to issue a host-to-device NDIS command */ /** RNDIS request to issue a host-to-device NDIS command */
#define SEND_ENCAPSULATED_COMMAND 0x00 #define REQ_SendEncapsulatedCommand 0x00
/** RNDIS request to issue a device-to-host NDIS response */ /** RNDIS request to issue a device-to-host NDIS response */
#define GET_ENCAPSULATED_RESPONSE 0x01 #define REQ_GetEncapsulatedResponse 0x01
/* Enums: */ /* Enums: */
/** Enum for the possible NDIS adapter states. */ /** Enum for the possible NDIS adapter states. */

@ -158,7 +158,7 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
/* Process RNDIS class commands */ /* Process RNDIS class commands */
switch (bRequest) switch (bRequest)
{ {
case SEND_ENCAPSULATED_COMMAND: case REQ_SendEncapsulatedCommand:
if (bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE)) if (bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE))
{ {
/* Clear the SETUP packet, ready for data transfer */ /* Clear the SETUP packet, ready for data transfer */
@ -175,7 +175,7 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
} }
break; break;
case GET_ENCAPSULATED_RESPONSE: case REQ_GetEncapsulatedResponse:
if (bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_CLASS | REQREC_INTERFACE)) if (bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_CLASS | REQREC_INTERFACE))
{ {
/* Check if a response to the last message is ready */ /* Check if a response to the last message is ready */

@ -17,11 +17,13 @@
* - Added new PIMA_DATA_SIZE() define to the Still Image Host demo * - Added new PIMA_DATA_SIZE() define to the Still Image Host demo
* - Add call to MassStore_WaitForDataReceived() in MassStore_GetReturnedStatus() to ensure that the CSW has been received in the * - Add call to MassStore_WaitForDataReceived() in MassStore_GetReturnedStatus() to ensure that the CSW has been received in the
* extended MSC timeout period before continuing, to prevent long processing delays from causing the MassStore_GetReturnedStatus() * extended MSC timeout period before continuing, to prevent long processing delays from causing the MassStore_GetReturnedStatus()
* to early-abort * to early-abort (thanks to Dmitry Maksimov)
* - Move StdRequestType.h, StreamCallbacks.h, USBMode.h from the LowLevel USB driver directory to the HighLevel USB driver directory, * - Move StdRequestType.h, StreamCallbacks.h, USBMode.h from the LowLevel USB driver directory to the HighLevel USB driver directory,
* where they are more suited * where they are more suited
* - Removed all binary constants and replaced with decimal or hexadecimal constants so that unpatched GCC compilers can still build the * - Removed all binary constants and replaced with decimal or hexadecimal constants so that unpatched GCC compilers can still build the
* code without having to be itself patched and recompiled first * code without having to be itself patched and recompiled first
* - Added preprocessor checks and documentation to the bootloaders giving information about missing SIGNATURE_x defines due to
* outdated avr-libc versions.
* *
* \section Sec_ChangeLog090401 Version 090401 * \section Sec_ChangeLog090401 Version 090401
* *

Loading…
Cancel
Save