diff options
author | Dean Camera <dean@fourwalledcubicle.com> | 2012-06-10 13:09:39 +0000 |
---|---|---|
committer | Dean Camera <dean@fourwalledcubicle.com> | 2012-06-10 13:09:39 +0000 |
commit | 21a6acff834a05b0c061764afa90eb80f3be461e (patch) | |
tree | b81e22cce8d87b236ec0e9bed5f9d4047af8c43e | |
parent | 67a8f54a6e05d052f20de16c5597dc37d554a7c6 (diff) | |
download | lufa-21a6acff834a05b0c061764afa90eb80f3be461e.tar.gz lufa-21a6acff834a05b0c061764afa90eb80f3be461e.tar.bz2 lufa-21a6acff834a05b0c061764afa90eb80f3be461e.zip |
Add MAX_ENDPOINT_INDEX compile time option for the XMEGA devices.
-rw-r--r-- | LUFA/CodeTemplates/LUFAConfig.h | 1 | ||||
-rw-r--r-- | LUFA/DoxygenPages/CompileTimeTokens.txt | 4 | ||||
-rw-r--r-- | LUFA/Drivers/USB/Core/XMEGA/Endpoint_XMEGA.h | 8 |
3 files changed, 11 insertions, 2 deletions
diff --git a/LUFA/CodeTemplates/LUFAConfig.h b/LUFA/CodeTemplates/LUFAConfig.h index 0c9dca363..06882dcc4 100644 --- a/LUFA/CodeTemplates/LUFAConfig.h +++ b/LUFA/CodeTemplates/LUFAConfig.h @@ -117,6 +117,7 @@ // #define DEVICE_STATE_AS_GPIOR {Insert Value Here} // #define FIXED_NUM_CONFIGURATIONS {Insert Value Here} // #define CONTROL_ONLY_DEVICE +// #define MAX_ENDPOINT_INDEX {Insert Value Here} // #define NO_DEVICE_REMOTE_WAKEUP // #define NO_DEVICE_SELF_POWER diff --git a/LUFA/DoxygenPages/CompileTimeTokens.txt b/LUFA/DoxygenPages/CompileTimeTokens.txt index 8c348dd9a..79c4cd4f1 100644 --- a/LUFA/DoxygenPages/CompileTimeTokens.txt +++ b/LUFA/DoxygenPages/CompileTimeTokens.txt @@ -168,6 +168,10 @@ * is through control endpoint requests. Defining this token will remove several features related to the selection and control of device * endpoints internally, saving space. Generally, this is usually only useful in (some) bootloaders and is best avoided. * + * - <b>MAX_ENDPOINT_INDEX</b> - (\ref Group_Device) - <i>XMEGA Only</i> \n + * Defining this value to the highest index (not address - this excludes the direction flag) endpoint within the device will restrict the + * number of FIFOs created internally for the endpoint buffers, reducing the total RAM usage. + * * - <b>INTERRUPT_CONTROL_ENDPOINT</b> - (\ref Group_USBManagement) - <i>All Architectures</i> \n * Some applications prefer to not call the USB_USBTask() management task regularly while in device mode, as it can complicate code significantly. * Instead, when device mode is used this token can be passed to the library via the -D switch to allow the library to manage the USB control diff --git a/LUFA/Drivers/USB/Core/XMEGA/Endpoint_XMEGA.h b/LUFA/Drivers/USB/Core/XMEGA/Endpoint_XMEGA.h index 23de8fc09..8be20d2de 100644 --- a/LUFA/Drivers/USB/Core/XMEGA/Endpoint_XMEGA.h +++ b/LUFA/Drivers/USB/Core/XMEGA/Endpoint_XMEGA.h @@ -90,14 +90,18 @@ /* Public Interface - May be used in end-application: */ /* Macros: */ - #if !defined(CONTROL_ONLY_DEVICE) || defined(__DOXYGEN__) + #if (!defined(MAX_ENDPOINT_INDEX) && !defined(CONTROL_ONLY_DEVICE)) || defined(__DOXYGEN__) /** Total number of endpoints (including the default control endpoint at address 0) which may * be used in the device. Different USB AVR models support different amounts of endpoints, * this value reflects the maximum number of endpoints for the currently selected AVR model. */ #define ENDPOINT_TOTAL_ENDPOINTS 16 #else - #define ENDPOINT_TOTAL_ENDPOINTS 1 + #if defined(CONTROL_ONLY_DEVICE) + #define ENDPOINT_TOTAL_ENDPOINTS 1 + #else + #define ENDPOINT_TOTAL_ENDPOINTS (MAX_ENDPOINT_INDEX + 1) + #endif #endif /* Private Interface - For use in library only: */ |