00001
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044 #ifndef FLASH_H
00045 #define FLASH_H
00046
00047
00048
00049
00050 #ifdef __ICCAVR__
00051 #if (defined(__AT90USB1287__) || defined(__AT90USB1286__))
00052 #define FLASH_END 0x1FFFF // Size of flash
00053 #define FLASH_PAGE_SIZE 0x100 // Size of page flash
00054 #define BOOT_SIZE 0x2000 // Size of bootloader
00055 #elif (defined(__AT90USB647__) || defined(__AT90USB646__))
00056 #define FLASH_END 0x0FFFF // Size of flash
00057 #define FLASH_PAGE_SIZE 0x100 // Size of page flash
00058 #define BOOT_SIZE 0x1000 // Size of bootloader
00059 #elif (defined(__ATmega32U4__) || defined(__ATmega32U6__))
00060 #define FLASH_END 0x7FFF // Size of flash
00061 #define FLASH_PAGE_SIZE 0x80 // Size of page flash
00062 #define BOOT_SIZE 0x1000 // Size of bootloader
00063 #elif defined(__ATmega16U4__)
00064 #define FLASH_END 0x3FFF // Size of flash
00065 #define FLASH_PAGE_SIZE 0x80 // Size of page flash
00066 #define BOOT_SIZE 0x1000 // Size of bootloader
00067 #elif (defined(__AT90USB162__) )
00068 #define FLASH_END 0x3FFF // Size of flash
00069 #define FLASH_PAGE_SIZE 0x80 // Size of page flash
00070 #define BOOT_SIZE 0x1000 // Size of bootloader
00071 #elif (defined(__AT90USB82__) )
00072 #define FLASH_END 0x1FFF // Size of flash
00073 #define FLASH_PAGE_SIZE 0x80 // Size of page flash
00074 #define BOOT_SIZE 0x1000 // Size of bootloader
00075 #else
00076 #error TARGET should be defined
00077 #endif
00078 #elif defined __GNUC__
00079 #if (defined(__AVR_AT90USB1287__) || defined(__AVR_AT90USB1286__))
00080 #define FLASH_END 0x1FFFF // Size of flash
00081 #define FLASH_PAGE_SIZE 0x100 // Size of page flash
00082 #define BOOT_SIZE 0x2000 // Size of bootloader
00083 #elif (defined(__AVR_AT90USB647__) || defined(__AVR_AT90USB646__))
00084 #define FLASH_END 0x0FFFF // Size of flash
00085 #define FLASH_PAGE_SIZE 0x100 // Size of page flash
00086 #define BOOT_SIZE 0x1000 // Size of bootloader
00087 #elif (defined(__AVR_AT90USB647__) || defined(__AVR_AT90USB646__))
00088 #define FLASH_END 0x0FFFF // Size of flash
00089 #define FLASH_PAGE_SIZE 0x100 // Size of page flash
00090 #elif (defined(__AVR_ATmega32U4__) || defined(__AVR_ATmega32U6__))
00091 #define FLASH_END 0x7FFF // Size of flash
00092 #define FLASH_PAGE_SIZE 0x80 // Size of page flash
00093 #define BOOT_SIZE 0x1000 // Size of bootloader
00094 #elif defined(__AVR_ATmega16U4__)
00095 #define FLASH_END 0x3FFF // Size of flash
00096 #define FLASH_PAGE_SIZE 0x80 // Size of page flash
00097 #define BOOT_SIZE 0x1000 // Size of bootloader
00098 #elif (defined(__AVR_AT90USB162__) )
00099 #define FLASH_END 0x3FFF // Size of flash
00100 #define FLASH_PAGE_SIZE 0x80 // Size of page flash
00101 #define BOOT_SIZE 0x1000 // Size of bootloader
00102 #elif (defined(__AVR_AT90USB82__) )
00103 #define FLASH_END 0x1FFF // Size of flash
00104 #define FLASH_PAGE_SIZE 0x80 // Size of page flash
00105 #define BOOT_SIZE 0x1000 // Size of bootloader
00106 #else
00107 #error TARGET should be defined
00108 #endif
00109 #else // Other compiler
00110 #error Compiler unknow
00111 #endif
00112
00113 #define LAST_BOOT_ENTRY (((FLASH_END+1)/2)-2) // Last boot entry is the last Word of flash (unit Word 16-bit)
00114 #define FLASH_SIZE FLASH_END-BOOT_SIZE
00115
00116
00117 #endif // FLASH_H
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131