message( "${MCU}" )
+#| Chip Size Database
+#| Teensy 1.0
+if ( "${CHIP}" MATCHES "at90usb162" )
+ set( SIZE_RAM 512 )
+ set( SIZE_FLASH 15872 )
+
+#| Teensy 2.0
+elseif ( "${CHIP}" MATCHES "atmega32u4" )
+ set( SIZE_RAM 2560 )
+ set( SIZE_FLASH 32256 )
+
+#| Teensy++ 1.0
+elseif ( "${CHIP}" MATCHES "at90usb646" )
+ set( SIZE_RAM 4096 )
+ set( SIZE_FLASH 64512 )
+
+#| Teensy++ 2.0
+elseif ( "${CHIP}" MATCHES "at90usb1286" )
+ set( SIZE_RAM 8192 )
+ set( SIZE_FLASH 130048 )
+
+#| Unknown AVR
+else ()
+ message( AUTHOR_WARNING "CHIP: ${CHIP} - Unknown AVR microcontroller" )
+endif ()
+
+
#| Extra Compiler Sources
#| Mostly for convenience functions like interrupt handlers
set( COMPILER_SRCS
#| USB Defines
-set( VENDOR_ID "0x16C0" )
-set( PRODUCT_ID "0x047D" )
+set( VENDOR_ID "0x1C11" )
+set( PRODUCT_ID "0xB04D" )
+set( BOOT_VENDOR_ID "0x16C0" ) # TODO Double check, this is likely incorrect
+set( BOOT_PRODUCT_ID "0x047D" )
+
+
+#| Only Teensy based AVRs supported
+set ( TEENSY 1 )
+message( STATUS "Bootloader Type:" )
+message( "Teensy" )
#| Compiler flag to set the C Standard level.
#| Linker Flags
-set( LINKER_FLAGS "-mmcu=${MCU} -Wl,-Map=${TARGET}.map,--cref -Wl,--relax -Wl,--gc-sections" )
+set( LINKER_FLAGS "-mmcu=${MCU} -Wl,-Map=link.map,--cref -Wl,--relax -Wl,--gc-sections" )
#| Hex Flags (XXX, CMake seems to have issues if you quote the arguments for the custom commands...)