From e0420015df848f18d5eb1672da4ccac578d454cf Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Sun, 21 Jun 2009 05:04:18 +0000 Subject: Re-add signature byte defines to the DFU and CDC class bootloaders -- the SIGNATURE_x defines in the AVR device header files only exist in a newer version of avr-libc than is in the Debian repositories, causing build issues on Linux. --- Bootloaders/CDC/BootloaderCDC.c | 6 +++--- Bootloaders/CDC/BootloaderCDC.h | 7 +------ Bootloaders/CDC/BootloaderCDC.txt | 7 ------- Bootloaders/CDC/Descriptors.h | 40 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 44 insertions(+), 16 deletions(-) (limited to 'Bootloaders/CDC') diff --git a/Bootloaders/CDC/BootloaderCDC.c b/Bootloaders/CDC/BootloaderCDC.c index d72d128a1..92c2291c9 100644 --- a/Bootloaders/CDC/BootloaderCDC.c +++ b/Bootloaders/CDC/BootloaderCDC.c @@ -424,9 +424,9 @@ void CDC_Task(void) } else if (Command == 's') { - WriteNextResponseByte(SIGNATURE_2); - WriteNextResponseByte(SIGNATURE_1); - WriteNextResponseByte(SIGNATURE_0); + WriteNextResponseByte(AVR_SIGNATURE_3); + WriteNextResponseByte(AVR_SIGNATURE_2); + WriteNextResponseByte(AVR_SIGNATURE_1); } else if (Command == 'b') { diff --git a/Bootloaders/CDC/BootloaderCDC.h b/Bootloaders/CDC/BootloaderCDC.h index 97e32e9fb..fa98a15b3 100644 --- a/Bootloaders/CDC/BootloaderCDC.h +++ b/Bootloaders/CDC/BootloaderCDC.h @@ -46,12 +46,7 @@ #include "Descriptors.h" - #include // 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 + #include /* Macros: */ /** CDC Class Specific request to get the line encoding on a CDC-ACM virtual serial port, including the diff --git a/Bootloaders/CDC/BootloaderCDC.txt b/Bootloaders/CDC/BootloaderCDC.txt index 1122e73ae..c518195eb 100644 --- a/Bootloaders/CDC/BootloaderCDC.txt +++ b/Bootloaders/CDC/BootloaderCDC.txt @@ -54,12 +54,5 @@ * Location: * Description: * - * - * SIGNATURE_0, SIGNATURE_1, SIGNATURE_2 - * Makefile CDEFS - * 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. - * * */ \ No newline at end of file diff --git a/Bootloaders/CDC/Descriptors.h b/Bootloaders/CDC/Descriptors.h index d913f45c0..62d75986e 100644 --- a/Bootloaders/CDC/Descriptors.h +++ b/Bootloaders/CDC/Descriptors.h @@ -40,6 +40,46 @@ #include /* Macros: */ + #if defined(__AVR_AT90USB1286__) + #define AVR_SIGNATURE_1 0x1E + #define AVR_SIGNATURE_2 0x97 + #define AVR_SIGNATURE_3 0x82 + #elif defined(__AVR_AT90USB1287__) + #define AVR_SIGNATURE_1 0x1E + #define AVR_SIGNATURE_2 0x97 + #define AVR_SIGNATURE_3 0x82 + #elif defined(__AVR_AT90USB646__) + #define AVR_SIGNATURE_1 0x1E + #define AVR_SIGNATURE_2 0x96 + #define AVR_SIGNATURE_3 0x82 + #elif defined(__AVR_AT90USB647__) + #define AVR_SIGNATURE_1 0x1E + #define AVR_SIGNATURE_2 0x96 + #define AVR_SIGNATURE_3 0x82 + #elif defined(__AVR_AT90USB162__) + #define AVR_SIGNATURE_1 0x1E + #define AVR_SIGNATURE_2 0x94 + #define AVR_SIGNATURE_3 0x82 + #elif defined(__AVR_AT90USB82__) + #define AVR_SIGNATURE_1 0x1E + #define AVR_SIGNATURE_2 0x94 + #define AVR_SIGNATURE_3 0x82 + #elif defined(__AVR_ATmega32U6__) + #define AVR_SIGNATURE_1 0x1E + #define AVR_SIGNATURE_2 0x95 + #define AVR_SIGNATURE_3 0x88 + #elif defined(__AVR_ATmega32U4__) + #define AVR_SIGNATURE_1 0x1E + #define AVR_SIGNATURE_2 0x95 + #define AVR_SIGNATURE_3 0x87 + #elif defined(__AVR_ATmega16U4__) + #define AVR_SIGNATURE_1 0x1E + #define AVR_SIGNATURE_2 0x94 + #define AVR_SIGNATURE_3 0x88 + #else + #error The selected AVR part is not currently supported by this bootloader. + #endif + /** Structure for a CDC class Functional descriptor, with a given data size. This is used instead of a * type define so that the same macro can be used for functional descriptors of varying data lengths, * while allowing the sizeof() operator to return correct results. -- cgit v1.2.3