20131006-181003

This commit is contained in:
BlubbFish 2013-10-06 16:10:06 +00:00
parent 50906f094b
commit d2fe789501
22 changed files with 7064 additions and 195 deletions

Binary file not shown.

View File

@ -36,7 +36,10 @@ SUBDIRS :=
# Add inputs and outputs from these tool invocations to the build variables # Add inputs and outputs from these tool invocations to the build variables
C_SRCS += \ C_SRCS += \
../Test.c ../led.c \
../rs232.c \
../Test.c \
../usb_serial.c
PREPROCESSING_SRCS += PREPROCESSING_SRCS +=
@ -46,19 +49,31 @@ ASM_SRCS +=
OBJS += \ OBJS += \
Test.o led.o \
rs232.o \
Test.o \
usb_serial.o
OBJS_AS_ARGS += \ OBJS_AS_ARGS += \
Test.o led.o \
rs232.o \
Test.o \
usb_serial.o
C_DEPS += \ C_DEPS += \
Test.d led.d \
rs232.d \
Test.d \
usb_serial.d
C_DEPS_AS_ARGS += \ C_DEPS_AS_ARGS += \
Test.d led.d \
rs232.d \
Test.d \
usb_serial.d
OUTPUT_FILE_PATH +=Test.elf OUTPUT_FILE_PATH +=Test.elf
@ -75,6 +90,12 @@ LIB_DEP+=
./%.o: .././%.c ./%.o: .././%.c
@echo Building file: $< @echo Building file: $<
@echo Invoking: AVR/GNU C Compiler : @echo Invoking: AVR/GNU C Compiler :

View File

@ -1,4 +1,4 @@
Test.d Test.o: .././Test.c \ Test.d Test.o: .././Test.c .././config.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/io.h \ c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/io.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/sfr_defs.h \ c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/sfr_defs.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/inttypes.h \ c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/inttypes.h \
@ -10,9 +10,21 @@ Test.d Test.o: .././Test.c \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/version.h \ c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/version.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/fuse.h \ c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/fuse.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/lock.h \ c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/lock.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/interrupt.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/stdio.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/include/stdarg.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/include/stddef.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/util/delay.h \ c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/util/delay.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/util/delay_basic.h \ c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/util/delay_basic.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/math.h c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/math.h \
.././led.h .././rs232.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/stdlib.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/include/stdbool.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/string.h \
.././usb_serial_config.h .././usb_serial.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/pgmspace.h
.././config.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/io.h: c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/io.h:
@ -36,8 +48,32 @@ c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/lock.h: c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/lock.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/interrupt.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/stdio.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/include/stdarg.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/include/stddef.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/util/delay.h: c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/util/delay.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/util/delay_basic.h: c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/util/delay_basic.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/math.h: c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/math.h:
.././led.h:
.././rs232.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/stdlib.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/include/stdbool.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/string.h:
.././usb_serial_config.h:
.././usb_serial.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/pgmspace.h:

Binary file not shown.

View File

@ -1,11 +1,401 @@
:100000000C943A000C9444000C9444000C9444006A :100000000C9469000C9486000C9486000C94860075
:100010000C9444000C9444000C9444000C94440050 :100010000C9486000C9486000C9486000C94860048
:100020000C9444000C9444000C9444000C94440040 :100020000C9486000C9486000C9486000C94E103DA
:100030000C9444000C9444000C9444000C94440030 :100030000C9409040C9486000C9486000C948600A1
:100040000C9444000C9444000C9444000C94440020 :100040000C9486000C9486000C9486000C94860018
:100050000C9444000C9444000C9444000C94440010 :100050000C9486000C9486000C9486000C94860008
:100060000C9444000C9444000C9444000C94440000 :100060000C9486000C9486000C9486000C948600F8
:100070000C94440011241FBECFEFD4E0DEBFCDBFEF :100070000C9486001201000202000010010003002F
:100080000E9446000C944E000C94000084B1806ED7 :1000800000010102030104030904140342006C008F
:1000900084B990E485B1892785B9FCCFF894FFCF66 :10009000750062006200460069007300680000009D
:1000A00020034800610063006B00650072002D00B2
:1000B0004A0065006F007000610072006400790002
:1000C00000000E03300030003000300030003000FF
:1000D000000011241FBECFEFD4E0DEBFCDBF11E082
:1000E000A0E0B1E0E6EFF7E102C005900D92A23F7B
:1000F000B107D9F722E0A2EFB1E001C01D92A6300E
:10010000B207E1F70E9444020C94F90B0C94000032
:1001100095B19F7195B995B18295880F807E982B86
:1001200095B9089584B1806E84B90895CF93C82F8E
:100130008A3019F48DE00E949600E8ECF0E090819E
:1001400095FFFDCFC093CE0080E090E0CF91089561
:1001500086E08093CA00E9ECF0E0808188608083CB
:1001600087E68093CC0080E091E090930302809337
:10017000020208950E94920086E090E00E948800AA
:1001800087E090E00E9488000E94A80086E090E04E
:100190000E9488000E949F0278942EE031E049E09E
:1001A00050E061E070E08FE691E00E94A0080895C1
:1001B0000895089508950F931F93CF93DF93CDB7BC
:1001C000DEB7C854D1090FB6F894DEBF0FBECDBF5D
:1001D000833009F04DC140E2BE016F5F7F4F0E9446
:1001E0009C0319A28981883669F030F48F3351F06D
:1001F000833609F01BC11AC0893671F0803709F0C7
:1002000015C11EC08AE1E9E7F1E0DE019196019097
:100210000D928A95E1F713C184E1E3E9F1E0DE0193
:10022000919601900D928A95E1F709C18BE1E7EA79
:10023000F1E0DE01919601900D928A95E1F7FFC001
:100240008E010F5D1F4F80E790E7A0E7B0E089A324
:100250009AA3ABA3BCA36091F5017091F6018091C4
:10026000F7019091F8012AE030E0A8010E945A08B5
:10027000F80101900020E9F731978AE390E091833B
:1002800080834AE050E0BE016F5B7F4F8091FB01AD
:1002900090E00E943908BE016F5B7F4FC8010E9449
:1002A0002E088091FA01823009F128F4882341F068
:1002B0008130E9F510C0833021F18430C1F52CC0C4
:1002C000FE01B19601900020E9F731978EE490E0AD
:1002D0009183808336C0FE01B19601900020E9F73A
:1002E00031978FE490E0918380832BC0FE01B1961B
:1002F00001900020E9F7319785E490E091838083B5
:1003000020C0FE01B19601900020E9F731978DE4FD
:1003100090E09183808315C0FE01B196019000208A
:10032000E9F7319783E590E0918380830AC0FE016D
:10033000B19601900020E9F731978FE390E0918327
:1003400080838091F901813079F018F0823031F5A5
:100350001AC0FE01B19601900020E9F7319781E3C0
:1003600090E09183808324C0FE01B196019000202B
:10037000E9F7319781E39EE2A5E3B0E080839183C2
:10038000A283B38315C0FE01B19601900020E9F766
:10039000319782E390E0918380830AC0FE01B19699
:1003A00001900020E9F731978FE390E091838083FB
:1003B0008E010F5D1F4FD8010D900020E9F71197B6
:1003C00086E0E2ECF1E001900D928A95E1F78091F0
:1003D000F4014AE050E0BE016F5B7F4F869590E0EC
:1003E0000E943908BE016F5B7F4FC8010E942E0832
:1003F000D8010D900020E9F7119786E0E8ECF1E0D4
:1004000001900D928A95E1F78091F4014AE050E065
:10041000BE016F5B7F4F817090E00E943908BE0182
:100420006F5B7F4FC8010E942E0809C080E1EEEC8F
:10043000F1E0DE01919601900D928A95E1F7BE01FF
:100440006F5D7F4FFB0101900020E9F731978DE050
:100450009AE0A0E080839183A283FB0101900020B9
:10046000E9F73197AF01461B570B84E00E94B203B6
:10047000C85BDF4F0FB6F894DEBF0FBECDBFDF9174
:10048000CF911F910F910895CF93DF93CDB7DEB732
:10049000A0970FB6F894DEBF0FBECDBF0E94BA0082
:1004A00082E090E00E948800912C0F2EFEEDAF2E8E
:1004B000F1E0BF2EF02D0F2EFEE0CF2EF1E0DF2E6B
:1004C000F02D0F2EF7EEEF2EF1E0FF2EF02D8E0126
:1004D0000F5F1F4F86E090E00E94880093941F9268
:1004E0009F92BF92AF92DF92CF920E948E081982A4
:1004F0001F929F92FF92EF921F930F930E94D10839
:10050000F80101900020E9F73197AF01401B510B32
:10051000B80184E00E94B20382E090E00E9488006B
:100520002FEF81EE94E0215080409040E1F700C031
:1005300000000FB6F894DEBF0FBECDBFCBCF80EA70
:100540008093D80086E089BD09B400FEFDCF80E825
:100550008093D8001092E0001092F2018FEF809308
:1005600025013C9888E08093E20008952F923F9205
:100570004F925F927F928F929F92AF92CF92DF9233
:10058000EF92FF920F931F93CF93DF93ECE2F1E092
:100590008EE291E041E00F2EF9EECF2ED12CF02D1E
:1005A0000F2EFBEEEF2EF12CF02DAA24A3940CEECF
:1005B00010E06DEE70E00F2EF0EF4F2E512CF02D6D
:1005C0006894992492F8812C6894772474F8DF0158
:1005D00020812F3F59F1E6014883E701A88220815D
:1005E000E80128831C019C0121503109E90128817F
:1005F000203841F0203441F0203241F0203141F4E4
:10060000372D07C030E405C030E303C030E201C03D
:10061000382DE1012881232BEB0128832C9120FF29
:1006200003C0D2011C9202C0E20198824F5F34964F
:100630000496453061F6EAEEF0E08EE180831082A8
:10064000DF91CF911F910F91FF90EF90DF90CF90AE
:10065000AF909F908F907F905F904F903F902F90A2
:100660000895E8EEF0E080818570E9F30895E8EE02
:10067000F0E0808182FFFDCF08958F929F92AF922C
:10068000BF92CF92DF92EF92FF920F931F93CF937F
:10069000DF93D82EE42FF0E02E173F0710F4C22E80
:1006A00001C0C42E062F172F6894992494F80F2E9A
:1006B000F8EEEF2EF12CF02D0F2EFEEFBF2EF02DC9
:1006C000C1EFD0E0A12C01C08A2C0E94310382FC32
:1006D00026C02C2D80E18C1508F4292D2223D9F079
:1006E000F801922FDD2011F0808101C08491888370
:1006F000915031969111F6CF622F615070E06F5F8B
:100700007F4F060F171FC21AF701B082C110DCCF4E
:100710002031D1F204C0F701B082C110D5CFDF91F2
:10072000CF911F910F91FF90EF90DF90CF90BF90EE
:10073000AF909F908F9008958093E9009091F20080
:10074000842F941708F4892F882359F0262FE62F39
:10075000F72FA1EFB0E09C9191939E2F921B9817D9
:10076000D0F30895CF93DF93442329F18093E900D8
:10077000E8EEF0E0808180FFFDCF8091F2008111F2
:100780001CC0962FE62FF72FA8EEB0E0C1EFD0E007
:100790008C9185FF02C08081888331968E2F891BC2
:1007A0008417B0F3E8EEF0E080818E7F80838FE7DE
:1007B000808381E003C080E001C080E0DF91CF91C1
:1007C00008951F920F920FB60F9211248F93EF93FB
:1007D000FF93E1EEF0E08081108283FF12C010925F
:1007E000E90081E08093EB001092EC0082E18093BD
:1007F000ED0088E08093F0001092F2018FEF80937B
:100800002501FF91EF918F910F900FBE0F901F90D8
:1008100018951F920F920FB60F9211242F923F92AC
:100820004F925F926F927F928F929F92AF92BF9200
:10083000CF92DF92EF92FF920F931F932F933F93EC
:100840004F935F936F937F938F939F93AF93BF93D8
:10085000EF93FF93CF93DF93CDB7DEB72997DEBF3A
:10086000CDBF8091F40080FF8FC21092E90080918B
:10087000E80083FF58C2E1EFF0E050814081208121
:100880003081932F80E0822B608170813081E08104
:1008900022EF2093E800463009F05AC11E2F00E0F5
:1008A000032B811523E0920709F42AC148F481152E
:1008B00041E09407F9F08115924009F045C10CC060
:1008C0008230A3E09A0709F42DC108F422C18330D5
:1008D000934009F039C12FC12CE331E03D832C83D3
:1008E0006CE571E0A0E040E050E0FF24F394E12CDF
:1008F00069011BC0E4E7F0E044919801BF0180E08A
:100900000E943D034AC2F901E80FF91FBF2DE081A3
:10091000EF3F09F4BE2DAB0F04968031910599F796
:10092000205F3F4F2617370711F0CA01ECCFDD8259
:10093000CC828A2F880F880F880F8A1B825D89835B
:1009400090E00E94F606E82EF92E89E0D7018C93FC
:1009500082E011968C931197E9811296EC9312978D
:1009600013961C92139714968C93149781E0159606
:100970008C93159716961C92169780E817968C9371
:1009800017978AEF18968C93189719960F2EF2E204
:10099000AF2EF1E0BF2EF02D0F2EFFE18F2EF1E0F4
:1009A0009F2EF02D0F2EFCE16F2EF1E07F2EF02D0B
:1009B00040E050E0412C512C312CDD24D394232CE9
:1009C0008FE691E01B830A83FD0188C0D801A20F46
:1009D000B31F6D2DAC91AF3F09F4622DC60E2C5F95
:1009E0003F4F2031310591F71D830C8319E01083AF
:1009F00024E0218372831382C4829A01D5016D9110
:100A00005D016583D4016D914D016683D3016D91C4
:100A10003D016783108671110CC0BF013996ACE5AA
:100A2000B1E01D911193A817B907D9F7FB017C9686
:100A300001C03996CC2009F446C022953295307F0A
:100A40003227207F3227215C3E4F11E059874887AB
:100A50006C817D813F832E83A90143505109DA01C6
:100A60000C910F3F39F1B7E0B08345E04183402F4F
:100A7000479544274795412B4283013441F0003488
:100A800041F0013841F0003841F442E007C04D2DFB
:100A900005C04D2D03C042E001C043E04383AE8159
:100AA000BF8112974C9144831582AE81BF814C91D6
:100AB000468337961F5F2C5F3F4F153059F64885A8
:100AC00059857D836C834F5F5F4F0C811D81005F73
:100AD0001F4F1D830C834230510531F0742F92015A
:100AE000C32C0C811D8172CF0A811B819801498121
:100AF000B70181E00E943D03C7010E9491074DC1EB
:100B0000E6E8F0E044919801BF0180E00E943D03D7
:100B100044C1EAE8F0E044919801BF0180E00E94FE
:100B20003D033BC1E0EAF0E044919801BF0180E061
:100B30000E943D0332C1E2ECF0E044919801BF0114
:100B400080E00E943D0329C181E28093EB0025C132
:100B5000453061F42EEF2093E800E8EEF0E02081CC
:100B600020FFFDCF80688093E30017C1372F20E07E
:100B7000262B493099F451113EC0019759F481E078
:100B80008093F2018EEF8093E800109225010E947D
:100B9000B60203C181E28093EB00FFC0483081F4CC
:100BA000503809F043C0E8EEF0E0808180FFFDCFCF
:100BB0008091F2018093F1008EEF8093E800EDC008
:100BC0004132C9F4513A09F043C0E8EEF0E08081C7
:100BD00080FFFDCF0E94D800E5EFF1E08CEF91E0BF
:100BE000A1EFB0E021912C93E817F907D9F78EEF28
:100BF0008093E800D2C04032C9F4513209F059C0A4
:100C00000E943703E5EFF1E08CEF91E0A1EFB0E057
:100C10002C912193E817F907D9F7E8EEF0E08BEF74
:100C200080838EEF80830E94D900B7C0423281F466
:100C3000513209F04FC08093F401E8EEF0E080817A
:100C400080FFFDCF8EEF8093E8000E94DA00A5C000
:100C500041111AC0E8EEF0E0808180FFFDCF5238EC
:100C600051F4E9EEF0E020838091EB0085FB8827CA
:100C700080F9108201C080E0E1EFF0E08083108213
:100C80008EEF8093E80089C04B3099F4503211F018
:100C9000511149C02230310540F4209325018EEFD7
:100CA0008093E8000E94B60278C081E28093EB0056
:100CB00074C04A3079F45038B1F5E8EEF0E0808144
:100CC00080FFFDCF809125018093F1008EEF80930E
:100CD000E80063C0413011F0433029F5523019F576
:100CE000892B09F52F773327922F91509430D8F420
:100CF0009EEF9093E8002093E900433021F481E2D5
:100D00008093EB004AC089E18093EB0081E090E0A2
:100D1000AC0102C0440F551F2A95E2F7EAEEF0E05D
:100D2000408310823AC081E28093EB002DC0122FE5
:100D3000808190E0022E02C0959587950A94E2F793
:100D400080FF19C0DA012C93DB018C9182FF13C064
:100D50008091F200882341F06091F20070E0822FD0
:100D60000E94DB001093E900E8EEF0E089EF808359
:100D70008FE7808312C02F5F3F4F25303105B9F6D2
:100D800081E28093EB0009C021E030E0E4EFF0E085
:100D900049EE50E068EE70E0CACF29960FB6F8949D
:100DA000DEBF0FBECDBFDF91CF91FF91EF91BF911D
:100DB000AF919F918F917F916F915F914F913F91F3
:100DC0002F911F910F91FF90EF90DF90CF90BF90E8
:100DD000AF909F908F907F906F905F904F903F90DB
:100DE0002F900F900FBE0F901F9018950F931F9389
:100DF000CF93DF938230910510F482E090E0E09190
:100E0000FE01F091FF0120E030E0C0E0D0E023C01F
:100E10004081518148175907A8F04817590761F4D4
:100E200082819381209719F09B838A832EC09093AF
:100E3000FF018093FE0129C02115310529F04217D9
:100E4000530710F0A90102C0BE01DF010281138126
:100E5000EF019A01F8013097D9F62115310509F112
:100E6000281B390B2430310590F412968D919C91FA
:100E700013976115710521F0FB019383828304C0F0
:100E80009093FF018093FE01FD01329644C0FD0165
:100E9000E20FF31F81939193225031092D933C93DC
:100EA0003AC02091FC013091FD01232B41F42091A7
:100EB0002801309129013093FD012093FC012091FC
:100EC0002601309127012115310541F42DB73EB798
:100ED00040912A0150912B01241B350BE091FC011C
:100EE000F091FD01E217F307A0F42E1B3F0B28172A
:100EF000390778F0AC014E5F5F4F2417350748F093
:100F00004E0F5F1F5093FD014093FC01819391931D
:100F100002C0E0E0F0E0CF01DF91CF911F910F918F
:100F20000895EF92FF920F931F93CF93DF93009753
:100F300009F48FC0DC01129713961C921E9212972F
:100F4000E090FE01F090FF01E114F10489F42D918D
:100F50003C911197280F391F8091FC019091FD0160
:100F60008217930789F5B093FD01A093FC0171C02E
:100F7000E70120E030E001C0EA01CA17DB0738F4DE
:100F80004A815B819E0141155105B1F722C0BC0128
:100F900062507109FB01D383C28300811181AC01CE
:100FA000400F511F4C175D0761F448815981400F74
:100FB000511F4E5F5F4F518340834A815B81538352
:100FC00042832115310529F4B093FF01A093FE015E
:100FD00040C0F901B383A283E90169917991C60FF9
:100FE000D71FAC17BD0779F4DC015E914E91460F17
:100FF000571F4E5F5F4F5183408312968D919C9196
:10100000139793838283A0E0B0E002C0D7017C01F4
:10101000F701828193810097C9F7C7010296208169
:101020003181820F931F2091FC013091FD0128171F
:10103000390779F4109729F41092FF011092FE01FC
:1010400004C013961C921E921297F092FD01E0923A
:10105000FC01CDB7DEB7E6E00C94EA0BFB01DC0146
:101060000D900020E9F7119701900D920020E1F713
:101070000895FB019F01E8944230C4F04532B4F476
:101080004A3029F497FB1EF4909581959F4F642F69
:1010900077270E948C0B805D8A330CF0895D8193E9
:1010A000CB010097A1F716F45DE251931082C901BC
:1010B0000C94E70AFA01CF93FF93EF93223044F1A7
:1010C000253234F5C22FE894CA3049F497FB3EF438
:1010D00090958095709561957F4F8F4F9F4F2C2FE6
:1010E000332744275527FF93EF930E94A00BEF91DE
:1010F000FF91605D6A330CF0695D6193B901CA01CB
:10110000605070408040904051F716F4CDE2C1939A
:1011100010828F919F91CF910C94E70AA0E0B0E0EC
:10112000E4E9F8E00C94D20BCE010996AC016F8192
:1011300078858D819E810E94F308E2E00C94EE0B8D
:10114000A0E0B0E0E6EAF8E00C94C80B6B014A01BD
:101150007901D90113962C9121FF1BC08C01C0E0AD
:10116000D0E010C0D7011896ED91FC911997B70106
:10117000D8018D918D010995892B69F40A151B05FC
:1011800089F72196C815D90531F05801AC0CBD1C62
:10119000F5CFC0E0D0E0CE01CDB7DEB7ECE00C94E7
:1011A000E40BAEE0B0E0E7EDF8E00C94D00B0D8975
:1011B0001E8986E08C831A8309838FEF9FE79E83C5
:1011C0008D83CE014996AC016F89788DCE01019651
:1011D0000E94F308EF81F885E00FF11F10822E9630
:1011E000E4E00C94EC0BACE0B0E0E9EFF8E00C9438
:1011F000C20B7C016B018A01FC011782168283817C
:1012000081FFC8C188248394912C8C0E9D1EF70108
:101210009381F60193FD859193FF81916F0188235E
:1012200009F4B4C1853239F493FD859193FF81911E
:101230006F01853229F4B70190E00E94F70AE7CFE9
:10124000512C312C20E02032A8F48B3261F028F4AC
:10125000803251F0833271F40BC08D3239F080331B
:1012600049F421602AC02260246027C0286025C07C
:10127000206123C027FD29C0382F30533A3088F42D
:1012800026FF07C0852D6AE00E94830B582E530E5F
:1012900014C0832D6AE00E94830B382E330E206227
:1012A0000CC08E3221F426FD71C1206406C08C363C
:1012B00011F4206802C0883641F4F60193FD85914F
:1012C00093FF81916F018111BECF982F9554933078
:1012D00018F09052933028F40C5F1F4FFFE3F9830E
:1012E0000DC0833631F0833771F0833509F05EC06D
:1012F00023C0F801808189830E5F1F4F44244394EB
:10130000512C540115C03801F2E06F0E711CF80128
:10131000A080B18026FF03C0652D70E002C06FEF92
:101320007FEFC5012C870E94DC0A2C0183012C85EC
:101330006FE7262E222218C03801F2E06F0E711CD2
:10134000F801A080B18026FF03C0652D70E002C0C7
:101350006FEF7FEFC5012C870E94D10A2C012C85ED
:1013600050E8252E222A830123FC1CC006C0B701A9
:1013700080E290E00E94F70A3A94832D90E04816AC
:101380005906A8F30FC0F50127FC859127FE81912E
:101390005F01B70190E00E94F70A31103A94F1E042
:1013A0004F1A51084114510471F7EDC0843611F001
:1013B000893641F5F80127FF07C06081718182817C
:1013C00093810C5F1F4F08C060817181882777FD72
:1013D0008095982F0E5F1F4F4FE6B42EB22297FFD5
:1013E00009C090958095709561957F4F8F4F9F4F65
:1013F000F0E8BF2A2AE030E0A4010E94230BA82EC7
:10140000A81843C0853731F43FEEB32EB2222AE04C
:1014100030E024C099EFB92EB2228F36B9F020F413
:10142000883509F0B3C00DC0803721F0883709F046
:10143000ADC002C020E1B22AB4FE0BC084E0B82ADD
:1014400008C024FF09C0E6E0BE2A06C028E030E05C
:1014500005C020E130E002C020E132E0F801B7FE33
:1014600007C060817181828193810C5F1F4F06C02C
:101470006081718180E090E00E5F1F4FA4010E94A7
:10148000230BA82EA818FFE7BF22B6FE0BC02B2DFA
:101490002E7FA51450F4B4FE0AC0B2FC08C02B2D58
:1014A0002E7E05C07A2C2B2D03C07A2C01C0752C02
:1014B00024FF0DC0FE01EA0DF11D8081803311F47F
:1014C000297E09C022FF06C07394739404C0822F42
:1014D000867809F0739423FD14C020FF0FC05A2CA6
:1014E000731460F4530C5718732C08C0B70180E2D2
:1014F00090E02C870E94F70A73942C857314B0F344
:1015000004C0731410F4371801C0312C24FF12C02A
:10151000B70180E390E02C870E94F70A2C8522FF18
:101520001EC021FF03C088E590E002C088E790E07C
:10153000B7010CC0822F867891F021FD02C080E2B5
:1015400001C08BE227FD8DE2B70190E00E94F70A0F
:1015500006C0B70180E390E00E94F70A5A94A514F0
:10156000C0F3AA94F401EA0DF11DB701808190E067
:101570000E94F70AA110F5CF06C0B70180E290E003
:101580000E94F70A3A943110F8CF41CEF701268134
:10159000378102C02FEF3FEFC9012C96E2E10C9496
:1015A000DE0BFC010590615070400110D8F780956A
:1015B00090958E0F9F1F0895FC016150704001901F
:1015C0000110D8F7809590958E0F9F1F0895DC012C
:1015D000FC01672F71917723E1F7329704C07C916A
:1015E0006D9370836291AE17BF07C8F308950F9390
:1015F0001F93CF93DF938C01EB018B8181FD03C09F
:101600000FEF1FEF1AC082FF0DC02E813F818C812A
:101610009D812817390764F4E881F9810193F983E2
:10162000E88306C0E885F985802F0995892B41F765
:101630008E819F8101969F838E83C801DF91CF9118
:101640001F910F910895FA01AA27283061F12031E6
:1016500091F1E8946F936E7F6E5F7F4F8F4F9F4F36
:10166000AF4FB1E040D0B4E03ED0670F781F891F84
:101670009A1FA11D680F791F8A1F911DA11D6A0F56
:10168000711D811D911DA11D22D009F468943F9107
:10169000062E000C3019000C000C3019305D31930F
:1016A000CEF6CF010895462F4770405D4193B3E0D9
:1016B0000FD0C9F7F6CF462F4F70405D4A3318F070
:1016C000495D31FD4052419302D0A9F7EACFB4E021
:1016D000A6959795879577956795BA95C9F70097D9
:1016E0006105710508959B01AC010A2E069457957A
:1016F000479537952795BA95C9F7620F731F841FD1
:10170000951FA01D0895002480FD060E660F11F0A0
:101710008695D1F7802D0895AA1BBB1B51E107C008
:10172000AA1FBB1FA617B70710F0A61BB70B881F71
:10173000991F5A95A9F780959095BC01CD01089500
:10174000A1E21A2EAA1BBB1BFD010DC0AA1FBB1FC5
:10175000EE1FFF1FA217B307E407F50720F0A21B37
:10176000B30BE40BF50B661F771F881F991F1A94A4
:1017700069F760957095809590959B01AC01BD01CE
:10178000CF0108952F923F924F925F926F927F9276
:101790008F929F92AF92BF92CF92DF92EF92FF9281
:1017A0000F931F93CF93DF93CDB7DEB7CA1BDB0B2D
:1017B0000FB6F894DEBF0FBECDBF09942A883988D2
:1017C00048885F846E847D848C849B84AA84B984D9
:1017D000C884DF80EE80FD800C811B81AA81B981E5
:1017E000CE0FD11D0FB6F894DEBF0FBECDBFED01F9
:0617F0000895F894FFCFFC
:1017F600000000020000000096000000000000004B
:101806000002000000009600000000000100FF0238
:1018160000FF020AFFFF000006022000FF20020070
:10182600C11002408020060081200600FF20020031
:10183600C1100240FF200600FF200600FF20020024
:10184600FF200200802006008120060005240010EB
:1018560001052401010104240206052406000149AC
:101866006E69742E2E2E2E0A0056616C69642063F2
:101876006F6D6D616E64733A203F20682069206346
:10188600207000557844494C204344432044656DFC
:101896006F2056312E300028632920323031312016
:1018A60052657573636820456C656B74726F6E69FB
:1018B6006B00205254533D00204454523D00696E43
:1018C60076616C696420636F6D6D616E640074652A
:1018D60073742025640A00746573742025640D0AE8
:0218E600000000
:00000001FF :00000001FF

File diff suppressed because it is too large Load Diff

View File

@ -2,12 +2,80 @@ Archive member included because of file (symbol)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_exit.o) c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_exit.o)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35/crtm32u2.o (exit) c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35/crtm32u2.o (exit)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_copy_data.o)
rs232.o (__do_copy_data)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_clear_bss.o)
Test.o (__do_clear_bss)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(malloc.o)
usb_serial.o (malloc)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(strcat.o)
Test.o (strcat)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(itoa.o)
Test.o (itoa)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(ltoa.o)
Test.o (ltoa)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(fprintf.o)
Test.o (fprintf)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(fwrite.o)
Test.o (fwrite)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(iob.o)
rs232.o (__iob)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(sprintf.o)
Test.o (sprintf)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(vfprintf_std.o)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(fprintf.o) (vfprintf)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(strnlen_P.o)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(vfprintf_std.o) (strnlen_P)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(strnlen.o)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(vfprintf_std.o) (strnlen)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(strrev.o)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(itoa.o) (strrev)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(fputc.o)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(vfprintf_std.o) (fputc)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(ultoa_invert.o)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(vfprintf_std.o) (__ultoa_invert)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_mulqi3.o)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(vfprintf_std.o) (__mulqi3)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_udivmodhi4.o)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(itoa.o) (__udivmodhi4)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_udivmodsi4.o)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(ltoa.o) (__udivmodsi4)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_prologue.o)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(fprintf.o) (__prologue_saves__)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_epilogue.o)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(malloc.o) (__epilogue_restores__)
Allocating common symbols
Common symbol size file
cdc_rtsdtr 0x1 Test.o
__brkval 0x2 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(malloc.o)
cdc_linecoding 0x7 usb_serial.o
__flp 0x2 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(malloc.o)
__iob 0x6 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(iob.o)
Discarded input sections Discarded input sections
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35/crtm32u2.o .bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35/crtm32u2.o
.text 0x00000000 0x0 led.o
.bss 0x00000000 0x0 led.o
.text 0x00000000 0x0 rs232.o
.bss 0x00000000 0x0 rs232.o
.text 0x00000000 0x0 Test.o .text 0x00000000 0x0 Test.o
.bss 0x00000000 0x0 Test.o .bss 0x00000000 0x0 Test.o
.text 0x00000000 0x0 usb_serial.o
.text.usb_status
0x00000000 0x1c usb_serial.o
.text.usb_configuration
0x00000000 0x6 usb_serial.o
.text.usb_interface
0x00000000 0x6 usb_serial.o
.text.usb_freebuffer
0x00000000 0x1e usb_serial.o
.text.usb_rxavail
0x00000000 0xa usb_serial.o
.text.usb_txdata_control
0x00000000 0x46 usb_serial.o
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_exit.o) .text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_exit.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_exit.o) .bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_exit.o)
.text.libgcc.mul .text.libgcc.mul
@ -21,6 +89,115 @@ Discarded input sections
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_exit.o) 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_exit.o)
.text.libgcc.fmul .text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_exit.o) 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_exit.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_copy_data.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_copy_data.o)
.text.libgcc.mul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_copy_data.o)
.text.libgcc.div
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_copy_data.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_copy_data.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_copy_data.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_copy_data.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_copy_data.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_clear_bss.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_clear_bss.o)
.text.libgcc.mul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_clear_bss.o)
.text.libgcc.div
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_clear_bss.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_clear_bss.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_clear_bss.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_clear_bss.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_clear_bss.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(malloc.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(malloc.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(strcat.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(strcat.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(itoa.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(itoa.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(ltoa.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(ltoa.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(fprintf.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(fprintf.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(fwrite.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(fwrite.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(iob.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(iob.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(sprintf.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(sprintf.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(vfprintf_std.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(vfprintf_std.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(strnlen_P.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(strnlen_P.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(strnlen.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(strnlen.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(strrev.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(strrev.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(fputc.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(fputc.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(ultoa_invert.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(ultoa_invert.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_mulqi3.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_mulqi3.o)
.text.libgcc.div
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_mulqi3.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_mulqi3.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_mulqi3.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_mulqi3.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_mulqi3.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_udivmodhi4.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_udivmodhi4.o)
.text.libgcc.mul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_udivmodhi4.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_udivmodhi4.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_udivmodhi4.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_udivmodhi4.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_udivmodhi4.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_udivmodsi4.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_udivmodsi4.o)
.text.libgcc.mul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_udivmodsi4.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_udivmodsi4.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_udivmodsi4.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_udivmodsi4.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_udivmodsi4.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_prologue.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_prologue.o)
.text.libgcc.mul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_prologue.o)
.text.libgcc.div
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_prologue.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_prologue.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_prologue.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_prologue.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_epilogue.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_epilogue.o)
.text.libgcc.mul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_epilogue.o)
.text.libgcc.div
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_epilogue.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_epilogue.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_epilogue.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_epilogue.o)
Memory Configuration Memory Configuration
@ -38,7 +215,10 @@ Linker script and memory map
Address of section .data set to 0x800100 Address of section .data set to 0x800100
LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35/crtm32u2.o LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35/crtm32u2.o
LOAD led.o
LOAD rs232.o
LOAD Test.o LOAD Test.o
LOAD usb_serial.o
START GROUP START GROUP
LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libm.a LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libm.a
END GROUP END GROUP
@ -136,7 +316,7 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
.rela.plt .rela.plt
*(.rela.plt) *(.rela.plt)
.text 0x00000000 0xa0 .text 0x00000000 0x17f6
*(.vectors) *(.vectors)
.vectors 0x00000000 0x74 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35/crtm32u2.o .vectors 0x00000000 0x74 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35/crtm32u2.o
0x00000000 __vector_default 0x00000000 __vector_default
@ -144,36 +324,41 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
*(.vectors) *(.vectors)
*(.progmem.gcc*) *(.progmem.gcc*)
*(.progmem*) *(.progmem*)
0x00000074 . = ALIGN (0x2) .progmem.data 0x00000074 0x5e usb_serial.o
0x00000074 __trampolines_start = . 0x000000d2 . = ALIGN (0x2)
0x000000d2 __trampolines_start = .
*(.trampolines) *(.trampolines)
.trampolines 0x00000074 0x0 linker stubs .trampolines 0x000000d2 0x0 linker stubs
*(.trampolines*) *(.trampolines*)
0x00000074 __trampolines_end = . 0x000000d2 __trampolines_end = .
*(.jumptables) *(.jumptables)
*(.jumptables*) *(.jumptables*)
*(.lowtext) *(.lowtext)
*(.lowtext*) *(.lowtext*)
0x00000074 __ctors_start = . 0x000000d2 __ctors_start = .
*(.ctors) *(.ctors)
0x00000074 __ctors_end = . 0x000000d2 __ctors_end = .
0x00000074 __dtors_start = . 0x000000d2 __dtors_start = .
*(.dtors) *(.dtors)
0x00000074 __dtors_end = . 0x000000d2 __dtors_end = .
SORT(*)(.ctors) SORT(*)(.ctors)
SORT(*)(.dtors) SORT(*)(.dtors)
*(.init0) *(.init0)
.init0 0x00000074 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35/crtm32u2.o .init0 0x000000d2 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35/crtm32u2.o
0x00000074 __init 0x000000d2 __init
*(.init0) *(.init0)
*(.init1) *(.init1)
*(.init1) *(.init1)
*(.init2) *(.init2)
.init2 0x00000074 0xc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35/crtm32u2.o .init2 0x000000d2 0xc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35/crtm32u2.o
*(.init2) *(.init2)
*(.init3) *(.init3)
*(.init3) *(.init3)
*(.init4) *(.init4)
.init4 0x000000de 0x16 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_copy_data.o)
0x000000de __do_copy_data
.init4 0x000000f4 0x10 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_clear_bss.o)
0x000000f4 __do_clear_bss
*(.init4) *(.init4)
*(.init5) *(.init5)
*(.init5) *(.init5)
@ -184,48 +369,152 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
*(.init8) *(.init8)
*(.init8) *(.init8)
*(.init9) *(.init9)
.init9 0x00000080 0x8 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35/crtm32u2.o .init9 0x00000104 0x8 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35/crtm32u2.o
*(.init9) *(.init9)
*(.text) *(.text)
.text 0x00000088 0x4 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35/crtm32u2.o .text 0x0000010c 0x4 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35/crtm32u2.o
0x00000088 __vector_22 0x0000010c __vector_22
0x00000088 __vector_28 0x0000010c __vector_28
0x00000088 __vector_1 0x0000010c __vector_1
0x00000088 __vector_24 0x0000010c __vector_24
0x00000088 __vector_12 0x0000010c __bad_interrupt
0x00000088 __bad_interrupt 0x0000010c __vector_6
0x00000088 __vector_6 0x0000010c __vector_3
0x00000088 __vector_3 0x0000010c __vector_23
0x00000088 __vector_23 0x0000010c __vector_25
0x00000088 __vector_25 0x0000010c __vector_13
0x00000088 __vector_11 0x0000010c __vector_17
0x00000088 __vector_13 0x0000010c __vector_19
0x00000088 __vector_17 0x0000010c __vector_7
0x00000088 __vector_19 0x0000010c __vector_27
0x00000088 __vector_7 0x0000010c __vector_5
0x00000088 __vector_27 0x0000010c __vector_4
0x00000088 __vector_5 0x0000010c __vector_9
0x00000088 __vector_4 0x0000010c __vector_2
0x00000088 __vector_9 0x0000010c __vector_21
0x00000088 __vector_2 0x0000010c __vector_15
0x00000088 __vector_21 0x0000010c __vector_8
0x00000088 __vector_15 0x0000010c __vector_26
0x00000088 __vector_8 0x0000010c __vector_14
0x00000088 __vector_26 0x0000010c __vector_10
0x00000088 __vector_14 0x0000010c __vector_16
0x00000088 __vector_10 0x0000010c __vector_18
0x00000088 __vector_16 0x0000010c __vector_20
0x00000088 __vector_18 0x00000110 . = ALIGN (0x2)
0x00000088 __vector_20
0x0000008c . = ALIGN (0x2)
*(.text.*) *(.text.*)
.text.main 0x0000008c 0x10 Test.o .text.ledg 0x00000110 0x14 led.o
0x0000008c main 0x00000110 ledg
0x0000009c . = ALIGN (0x2) .text.init_led
0x00000124 0x8 led.o
0x00000124 init_led
.text.uart_putchar
0x0000012c 0x24 rs232.o
0x0000012c uart_putchar
.text.init_rs232
0x00000150 0x24 rs232.o
0x00000150 init_rs232
.text.init 0x00000174 0x3c Test.o
0x00000174 init
.text.cdc_notify_getlinecoding
0x000001b0 0x2 Test.o
0x000001b0 cdc_notify_getlinecoding
.text.cdc_notify_setlinecoding
0x000001b2 0x2 Test.o
0x000001b2 cdc_notify_setlinecoding
.text.cdc_notify_setcontrollinestate
0x000001b4 0x2 Test.o
0x000001b4 cdc_notify_setcontrollinestate
.text.usb_ep 0x000001b6 0x2d2 Test.o
0x000001b6 usb_ep
.text.main 0x00000488 0xb6 Test.o
0x00000488 main
.text.usb_init
0x0000053e 0x2e usb_serial.o
0x0000053e usb_init
.text.usb_endpoints
0x0000056c 0xf6 usb_serial.o
0x0000056c usb_endpoints
.text.usb_wait_in
0x00000662 0xc usb_serial.o
0x00000662 usb_wait_in
.text.usb_wait_receive_out
0x0000066e 0xc usb_serial.o
0x0000066e usb_wait_receive_out
.text.usb_desc_out
0x0000067a 0xbe usb_serial.o
0x0000067a usb_desc_out
.text.usb_rxdata
0x00000738 0x2c usb_serial.o
0x00000738 usb_rxdata
.text.usb_txdata
0x00000764 0x5e usb_serial.o
0x00000764 usb_txdata
.text.__vector_11
0x000007c2 0x50 usb_serial.o
0x000007c2 __vector_11
.text.__vector_12
0x00000812 0x5da usb_serial.o
0x00000812 __vector_12
.text.avr-libc
0x00000dec 0x270 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(malloc.o)
0x00000dec malloc
0x00000f22 free
.text.avr-libc
0x0000105c 0x16 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(strcat.o)
0x0000105c strcat
.text.avr-libc
0x00001072 0x42 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(itoa.o)
0x00001072 itoa
.text.avr-libc
0x000010b4 0x68 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(ltoa.o)
0x000010b4 ltoa
.text.avr-libc
0x0000111c 0x24 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(fprintf.o)
0x0000111c fprintf
.text.avr-libc
0x00001140 0x62 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(fwrite.o)
0x00001140 fwrite
.text.avr-libc
0x000011a2 0x44 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(sprintf.o)
0x000011a2 sprintf
.text.avr-libc
0x000011e6 0x3bc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(vfprintf_std.o)
0x000011e6 vfprintf
.text.avr-libc
0x000015a2 0x16 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(strnlen_P.o)
0x000015a2 strnlen_P
.text.avr-libc
0x000015b8 0x16 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(strnlen.o)
0x000015b8 strnlen
.text.avr-libc
0x000015ce 0x20 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(strrev.o)
0x000015ce strrev
.text.avr-libc
0x000015ee 0x58 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(fputc.o)
0x000015ee fputc
.text.avr-libc
0x00001646 0xc0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(ultoa_invert.o)
0x00001646 __ultoa_invert
.text.libgcc.mul
0x00001706 0x12 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_mulqi3.o)
0x00001706 __mulqi3
.text.libgcc.div
0x00001718 0x28 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_udivmodhi4.o)
0x00001718 __udivmodhi4
.text.libgcc.div
0x00001740 0x44 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_udivmodsi4.o)
0x00001740 __udivmodsi4
.text.libgcc.prologue
0x00001784 0x38 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_prologue.o)
0x00001784 __prologue_saves__
.text.libgcc.prologue
0x000017bc 0x36 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_epilogue.o)
0x000017bc __epilogue_restores__
0x000017f2 . = ALIGN (0x2)
*(.fini9) *(.fini9)
.fini9 0x0000009c 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_exit.o) .fini9 0x000017f2 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_exit.o)
0x0000009c _exit 0x000017f2 _exit
0x0000009c exit 0x000017f2 exit
*(.fini9) *(.fini9)
*(.fini8) *(.fini8)
*(.fini8) *(.fini8)
@ -244,39 +533,83 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
*(.fini1) *(.fini1)
*(.fini1) *(.fini1)
*(.fini0) *(.fini0)
.fini0 0x0000009c 0x4 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_exit.o) .fini0 0x000017f2 0x4 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_exit.o)
*(.fini0) *(.fini0)
0x000000a0 _etext = . 0x000017f6 _etext = .
.data 0x00800100 0x0 load address 0x000000a0 .data 0x00800100 0xf2 load address 0x000017f6
0x00800100 PROVIDE (__data_start, .) 0x00800100 PROVIDE (__data_start, .)
*(.data) *(.data)
.data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35/crtm32u2.o .data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35/crtm32u2.o
.data 0x00800100 0x0 Test.o .data 0x00800100 0x0 led.o
.data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_exit.o) .data 0x00800100 0xe rs232.o
.data 0x0080010e 0xe Test.o
.data 0x0080011c 0xa usb_serial.o
0x0080011c InterfaceProtocols
0x0080011f InterfaceSubClasses
0x00800122 InterfaceClasses
.data 0x00800126 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_exit.o)
.data 0x00800126 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_copy_data.o)
.data 0x00800126 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_clear_bss.o)
.data 0x00800126 0x6 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(malloc.o)
0x00800126 __malloc_heap_end
0x00800128 __malloc_heap_start
0x0080012a __malloc_margin
.data 0x0080012c 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(strcat.o)
.data 0x0080012c 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(itoa.o)
.data 0x0080012c 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(ltoa.o)
.data 0x0080012c 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(fprintf.o)
.data 0x0080012c 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(fwrite.o)
.data 0x0080012c 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(iob.o)
.data 0x0080012c 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(sprintf.o)
.data 0x0080012c 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(vfprintf_std.o)
.data 0x0080012c 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(strnlen_P.o)
.data 0x0080012c 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(strnlen.o)
.data 0x0080012c 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(strrev.o)
.data 0x0080012c 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(fputc.o)
.data 0x0080012c 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(ultoa_invert.o)
.data 0x0080012c 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_mulqi3.o)
.data 0x0080012c 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_udivmodhi4.o)
.data 0x0080012c 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_udivmodsi4.o)
.data 0x0080012c 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_prologue.o)
.data 0x0080012c 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr35\libgcc.a(_epilogue.o)
*(.data*) *(.data*)
*(.rodata) *(.rodata)
.rodata 0x0080012c 0x43 usb_serial.o
*(.rodata*) *(.rodata*)
.rodata.str1.1
0x0080016f 0x82 Test.o
*(.gnu.linkonce.d*) *(.gnu.linkonce.d*)
0x00800100 . = ALIGN (0x2) 0x008001f2 . = ALIGN (0x2)
0x00800100 _edata = . *fill* 0x008001f1 0x1
0x00800100 PROVIDE (__data_end, .) 0x008001f2 _edata = .
0x008001f2 PROVIDE (__data_end, .)
.bss 0x00800100 0x0 .bss 0x008001f2 0x14
0x00800100 PROVIDE (__bss_start, .) 0x008001f2 PROVIDE (__bss_start, .)
*(.bss) *(.bss)
.bss 0x008001f2 0x2 usb_serial.o
*(.bss*) *(.bss*)
*(COMMON) *(COMMON)
0x00800100 PROVIDE (__bss_end, .) COMMON 0x008001f4 0x1 Test.o
0x000000a0 __data_load_start = LOADADDR (.data) 0x008001f4 cdc_rtsdtr
0x000000a0 __data_load_end = (__data_load_start + SIZEOF (.data)) COMMON 0x008001f5 0x7 usb_serial.o
0x008001f5 cdc_linecoding
COMMON 0x008001fc 0x4 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(malloc.o)
0x008001fc __brkval
0x008001fe __flp
COMMON 0x00800200 0x6 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(iob.o)
0x00800200 __iob
0x00800206 PROVIDE (__bss_end, .)
0x000017f6 __data_load_start = LOADADDR (.data)
0x000018e8 __data_load_end = (__data_load_start + SIZEOF (.data))
.noinit 0x00800100 0x0 .noinit 0x00800206 0x0
0x00800100 PROVIDE (__noinit_start, .) 0x00800206 PROVIDE (__noinit_start, .)
*(.noinit*) *(.noinit*)
0x00800100 PROVIDE (__noinit_end, .) 0x00800206 PROVIDE (__noinit_end, .)
0x00800100 _end = . 0x00800206 _end = .
0x00800100 PROVIDE (__heap_start, .) 0x00800206 PROVIDE (__heap_start, .)
.eeprom 0x00810000 0x0 .eeprom 0x00810000 0x0
*(.eeprom*) *(.eeprom*)
@ -297,13 +630,27 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
.user_signatures .user_signatures
*(.user_signatures*) *(.user_signatures*)
.stab 0x00000000 0x6cc .stab 0x00000000 0x1254
*(.stab) *(.stab)
.stab 0x00000000 0x6cc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35/crtm32u2.o .stab 0x00000000 0x6cc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35/crtm32u2.o
.stab 0x000006cc 0x9c c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(strcat.o)
0xa8 (size before relaxing)
.stab 0x00000768 0x1b0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(itoa.o)
0x1bc (size before relaxing)
.stab 0x00000918 0x294 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(ltoa.o)
0x2a0 (size before relaxing)
.stab 0x00000bac 0x9c c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(strnlen_P.o)
0xa8 (size before relaxing)
.stab 0x00000c48 0x9c c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(strnlen.o)
0xa8 (size before relaxing)
.stab 0x00000ce4 0xd8 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(strrev.o)
0xe4 (size before relaxing)
.stab 0x00000dbc 0x498 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(ultoa_invert.o)
0x4a4 (size before relaxing)
.stabstr 0x00000000 0x82 .stabstr 0x00000000 0x32e
*(.stabstr) *(.stabstr)
.stabstr 0x00000000 0x82 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35/crtm32u2.o .stabstr 0x00000000 0x32e c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35/crtm32u2.o
.stab.excl .stab.excl
*(.stab.excl) *(.stab.excl)
@ -319,8 +666,18 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
.comment 0x00000000 0x2f .comment 0x00000000 0x2f
*(.comment) *(.comment)
.comment 0x00000000 0x2f Test.o .comment 0x00000000 0x2f led.o
0x30 (size before relaxing) 0x30 (size before relaxing)
.comment 0x00000000 0x30 rs232.o
.comment 0x00000000 0x30 Test.o
.comment 0x00000000 0x30 usb_serial.o
.comment 0x00000000 0x30 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(malloc.o)
.comment 0x00000000 0x30 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(fprintf.o)
.comment 0x00000000 0x30 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(fwrite.o)
.comment 0x00000000 0x30 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(iob.o)
.comment 0x00000000 0x30 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(sprintf.o)
.comment 0x00000000 0x30 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(vfprintf_std.o)
.comment 0x00000000 0x30 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(fputc.o)
.debug .debug
*(.debug) *(.debug)
@ -334,38 +691,127 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
.debug_sfnames .debug_sfnames
*(.debug_sfnames) *(.debug_sfnames)
.debug_aranges 0x00000000 0x20 .debug_aranges 0x00000000 0x208
*(.debug_aranges) *(.debug_aranges)
.debug_aranges .debug_aranges
0x00000000 0x20 Test.o 0x00000000 0x28 led.o
.debug_aranges
0x00000028 0x28 rs232.o
.debug_aranges
0x00000050 0x48 Test.o
.debug_aranges
0x00000098 0x90 usb_serial.o
.debug_aranges
0x00000128 0x28 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(malloc.o)
.debug_aranges
0x00000150 0x20 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(fprintf.o)
.debug_aranges
0x00000170 0x20 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(fwrite.o)
.debug_aranges
0x00000190 0x18 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(iob.o)
.debug_aranges
0x000001a8 0x20 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(sprintf.o)
.debug_aranges
0x000001c8 0x20 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(vfprintf_std.o)
.debug_aranges
0x000001e8 0x20 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(fputc.o)
.debug_pubnames .debug_pubnames
*(.debug_pubnames) *(.debug_pubnames)
.debug_info 0x00000000 0x87 .debug_info 0x00000000 0x27cc
*(.debug_info) *(.debug_info)
.debug_info 0x00000000 0x87 Test.o .debug_info 0x00000000 0xb7 led.o
.debug_info 0x000000b7 0x1d5 rs232.o
.debug_info 0x0000028c 0x8b3 Test.o
.debug_info 0x00000b3f 0xc67 usb_serial.o
.debug_info 0x000017a6 0x23d c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(malloc.o)
.debug_info 0x000019e3 0x1fc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(fprintf.o)
.debug_info 0x00001bdf 0x1de c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(fwrite.o)
.debug_info 0x00001dbd 0x14e c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(iob.o)
.debug_info 0x00001f0b 0x204 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(sprintf.o)
.debug_info 0x0000210f 0x549 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(vfprintf_std.o)
.debug_info 0x00002658 0x174 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(fputc.o)
*(.gnu.linkonce.wi.*) *(.gnu.linkonce.wi.*)
.debug_abbrev 0x00000000 0x53 .debug_abbrev 0x00000000 0xfcb
*(.debug_abbrev) *(.debug_abbrev)
.debug_abbrev 0x00000000 0x53 Test.o .debug_abbrev 0x00000000 0x85 led.o
.debug_abbrev 0x00000085 0x13b rs232.o
.debug_abbrev 0x000001c0 0x30d Test.o
.debug_abbrev 0x000004cd 0x2ff usb_serial.o
.debug_abbrev 0x000007cc 0xf9 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(malloc.o)
.debug_abbrev 0x000008c5 0x139 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(fprintf.o)
.debug_abbrev 0x000009fe 0x11b c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(fwrite.o)
.debug_abbrev 0x00000b19 0xc1 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(iob.o)
.debug_abbrev 0x00000bda 0x12a c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(sprintf.o)
.debug_abbrev 0x00000d04 0x1d6 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(vfprintf_std.o)
.debug_abbrev 0x00000eda 0xf1 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(fputc.o)
.debug_line 0x00000000 0xd7 .debug_line 0x00000000 0x13d8
*(.debug_line) *(.debug_line)
.debug_line 0x00000000 0xd7 Test.o .debug_line 0x00000000 0xe0 led.o
.debug_line 0x000000e0 0x102 rs232.o
.debug_line 0x000001e2 0x288 Test.o
.debug_line 0x0000046a 0x51b usb_serial.o
.debug_line 0x00000985 0x1c8 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(malloc.o)
.debug_line 0x00000b4d 0x14a c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(fprintf.o)
.debug_line 0x00000c97 0x15a c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(fwrite.o)
.debug_line 0x00000df1 0xc1 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(iob.o)
.debug_line 0x00000eb2 0x14e c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(sprintf.o)
.debug_line 0x00001000 0x2fe c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(vfprintf_std.o)
.debug_line 0x000012fe 0xda c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(fputc.o)
.debug_frame 0x00000000 0x24 .debug_frame 0x00000000 0x4f8
*(.debug_frame) *(.debug_frame)
.debug_frame 0x00000000 0x24 Test.o .debug_frame 0x00000000 0x34 led.o
.debug_frame 0x00000034 0x3c rs232.o
.debug_frame 0x00000070 0xa0 Test.o
.debug_frame 0x00000110 0x260 usb_serial.o
.debug_frame 0x00000370 0x68 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(malloc.o)
.debug_frame 0x000003d8 0x2c c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(fprintf.o)
.debug_frame 0x00000404 0x40 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(fwrite.o)
.debug_frame 0x00000444 0x30 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(sprintf.o)
.debug_frame 0x00000474 0x4c c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(vfprintf_std.o)
.debug_frame 0x000004c0 0x38 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(fputc.o)
.debug_str 0x00000000 0x7c .debug_str 0x00000000 0x8f9
*(.debug_str) *(.debug_str)
.debug_str 0x00000000 0x7c Test.o .debug_str 0x00000000 0x89 led.o
0xb0 (size before relaxing) 0xbd (size before relaxing)
.debug_str 0x00000089 0x54 rs232.o
0x103 (size before relaxing)
.debug_str 0x000000dd 0x224 Test.o
0x34c (size before relaxing)
.debug_str 0x00000301 0x2c6 usb_serial.o
0x548 (size before relaxing)
.debug_str 0x000005c7 0xcd c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(malloc.o)
0x167 (size before relaxing)
.debug_str 0x00000694 0x79 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(fprintf.o)
0x12e (size before relaxing)
.debug_str 0x0000070d 0x54 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(fwrite.o)
0x107 (size before relaxing)
.debug_str 0x00000761 0x4b c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(iob.o)
0xf8 (size before relaxing)
.debug_str 0x000007ac 0x4f c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(sprintf.o)
0x127 (size before relaxing)
.debug_str 0x000007fb 0xb1 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(vfprintf_std.o)
0x198 (size before relaxing)
.debug_str 0x000008ac 0x4d c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(fputc.o)
0xf8 (size before relaxing)
.debug_loc .debug_loc 0x00000000 0x202b
*(.debug_loc) *(.debug_loc)
.debug_loc 0x00000000 0x26 led.o
.debug_loc 0x00000026 0x72 rs232.o
.debug_loc 0x00000098 0x10f Test.o
.debug_loc 0x000001a7 0x1211 usb_serial.o
.debug_loc 0x000013b8 0x4f8 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(malloc.o)
.debug_loc 0x000018b0 0x21 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(fprintf.o)
.debug_loc 0x000018d1 0x12b c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(fwrite.o)
.debug_loc 0x000019fc 0x21 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(sprintf.o)
.debug_loc 0x00001a1d 0x51b c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(vfprintf_std.o)
.debug_loc 0x00001f38 0xf3 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(fputc.o)
.debug_macinfo .debug_macinfo
*(.debug_macinfo) *(.debug_macinfo)
@ -373,9 +819,18 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
.debug_pubtypes .debug_pubtypes
*(.debug_pubtypes) *(.debug_pubtypes)
.debug_ranges 0x00000000 0x10 .debug_ranges 0x00000000 0x150
*(.debug_ranges) *(.debug_ranges)
.debug_ranges 0x00000000 0x10 Test.o .debug_ranges 0x00000000 0x18 led.o
.debug_ranges 0x00000018 0x18 rs232.o
.debug_ranges 0x00000030 0x38 Test.o
.debug_ranges 0x00000068 0x80 usb_serial.o
.debug_ranges 0x000000e8 0x18 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(malloc.o)
.debug_ranges 0x00000100 0x10 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(fprintf.o)
.debug_ranges 0x00000110 0x10 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(fwrite.o)
.debug_ranges 0x00000120 0x10 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(sprintf.o)
.debug_ranges 0x00000130 0x10 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(vfprintf_std.o)
.debug_ranges 0x00000140 0x10 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr35\libc.a(fputc.o)
.debug_macro .debug_macro
*(.debug_macro) *(.debug_macro)

View File

@ -1,12 +1,402 @@
S00C0000546573742E7372656378 S00C0000546573742E7372656378
S11300000C943A000C9444000C9444000C94440066 S11300000C9469000C9486000C9486000C94860071
S11300100C9444000C9444000C9444000C9444004C S11300100C9486000C9486000C9486000C94860044
S11300200C9444000C9444000C9444000C9444003C S11300200C9486000C9486000C9486000C94E103D6
S11300300C9444000C9444000C9444000C9444002C S11300300C9409040C9486000C9486000C9486009D
S11300400C9444000C9444000C9444000C9444001C S11300400C9486000C9486000C9486000C94860014
S11300500C9444000C9444000C9444000C9444000C S11300500C9486000C9486000C9486000C94860004
S11300600C9444000C9444000C9444000C944400FC S11300600C9486000C9486000C9486000C948600F4
S11300700C94440011241FBECFEFD4E0DEBFCDBFEB S11300700C9486001201000202000010010003002B
S11300800E9446000C944E000C94000084B1806ED3 S113008000010102030104030904140342006C008B
S113009084B990E485B1892785B9FCCFF894FFCF62 S11300907500620062004600690073006800000099
S11300A020034800610063006B00650072002D00AE
S11300B04A0065006F0070006100720064007900FE
S11300C000000E03300030003000300030003000FB
S11300D0000011241FBECFEFD4E0DEBFCDBF11E07E
S11300E0A0E0B1E0E6EFF7E102C005900D92A23F77
S11300F0B107D9F722E0A2EFB1E001C01D92A6300A
S1130100B207E1F70E9444020C94F90B0C9400002E
S113011095B19F7195B995B18295880F807E982B82
S113012095B9089584B1806E84B90895CF93C82F8A
S11301308A3019F48DE00E949600E8ECF0E090819A
S113014095FFFDCFC093CE0080E090E0CF9108955D
S113015086E08093CA00E9ECF0E0808188608083C7
S113016087E68093CC0080E091E090930302809333
S1130170020208950E94920086E090E00E948800A6
S113018087E090E00E9488000E94A80086E090E04A
S11301900E9488000E949F0278942EE031E049E09A
S11301A050E061E070E08FE691E00E94A0080895BD
S11301B00895089508950F931F93CF93DF93CDB7B8
S11301C0DEB7C854D1090FB6F894DEBF0FBECDBF59
S11301D0833009F04DC140E2BE016F5F7F4F0E9442
S11301E09C0319A28981883669F030F48F3351F069
S11301F0833609F01BC11AC0893671F0803709F0C3
S113020015C11EC08AE1E9E7F1E0DE019196019093
S11302100D928A95E1F713C184E1E3E9F1E0DE018F
S1130220919601900D928A95E1F709C18BE1E7EA75
S1130230F1E0DE01919601900D928A95E1F7FFC0FD
S11302408E010F5D1F4F80E790E7A0E7B0E089A320
S11302509AA3ABA3BCA36091F5017091F6018091C0
S1130260F7019091F8012AE030E0A8010E945A08B1
S1130270F80101900020E9F731978AE390E0918337
S113028080834AE050E0BE016F5B7F4F8091FB01A9
S113029090E00E943908BE016F5B7F4FC8010E9445
S11302A02E088091FA01823009F128F4882341F064
S11302B08130E9F510C0833021F18430C1F52CC0C0
S11302C0FE01B19601900020E9F731978EE490E0A9
S11302D09183808336C0FE01B19601900020E9F736
S11302E031978FE490E0918380832BC0FE01B19617
S11302F001900020E9F7319785E490E091838083B1
S113030020C0FE01B19601900020E9F731978DE4F9
S113031090E09183808315C0FE01B1960190002086
S1130320E9F7319783E590E0918380830AC0FE0169
S1130330B19601900020E9F731978FE390E0918323
S113034080838091F901813079F018F0823031F5A1
S11303501AC0FE01B19601900020E9F7319781E3BC
S113036090E09183808324C0FE01B1960190002027
S1130370E9F7319781E39EE2A5E3B0E080839183BE
S1130380A283B38315C0FE01B19601900020E9F762
S1130390319782E390E0918380830AC0FE01B19695
S11303A001900020E9F731978FE390E091838083F7
S11303B08E010F5D1F4FD8010D900020E9F71197B2
S11303C086E0E2ECF1E001900D928A95E1F78091EC
S11303D0F4014AE050E0BE016F5B7F4F869590E0E8
S11303E00E943908BE016F5B7F4FC8010E942E082E
S11303F0D8010D900020E9F7119786E0E8ECF1E0D0
S113040001900D928A95E1F78091F4014AE050E061
S1130410BE016F5B7F4F817090E00E943908BE017E
S11304206F5B7F4FC8010E942E0809C080E1EEEC8B
S1130430F1E0DE01919601900D928A95E1F7BE01FB
S11304406F5D7F4FFB0101900020E9F731978DE04C
S11304509AE0A0E080839183A283FB0101900020B5
S1130460E9F73197AF01461B570B84E00E94B203B2
S1130470C85BDF4F0FB6F894DEBF0FBECDBFDF9170
S1130480CF911F910F910895CF93DF93CDB7DEB72E
S1130490A0970FB6F894DEBF0FBECDBF0E94BA007E
S11304A082E090E00E948800912C0F2EFEEDAF2E8A
S11304B0F1E0BF2EF02D0F2EFEE0CF2EF1E0DF2E67
S11304C0F02D0F2EF7EEEF2EF1E0FF2EF02D8E0122
S11304D00F5F1F4F86E090E00E94880093941F9264
S11304E09F92BF92AF92DF92CF920E948E081982A0
S11304F01F929F92FF92EF921F930F930E94D10835
S1130500F80101900020E9F73197AF01401B510B2E
S1130510B80184E00E94B20382E090E00E94880067
S11305202FEF81EE94E0215080409040E1F700C02D
S113053000000FB6F894DEBF0FBECDBFCBCF80EA6C
S11305408093D80086E089BD09B400FEFDCF80E821
S11305508093D8001092E0001092F2018FEF809304
S113056025013C9888E08093E20008952F923F9201
S11305704F925F927F928F929F92AF92CF92DF922F
S1130580EF92FF920F931F93CF93DF93ECE2F1E08E
S11305908EE291E041E00F2EF9EECF2ED12CF02D1A
S11305A00F2EFBEEEF2EF12CF02DAA24A3940CEECB
S11305B010E06DEE70E00F2EF0EF4F2E512CF02D69
S11305C06894992492F8812C6894772474F8DF0154
S11305D020812F3F59F1E6014883E701A882208159
S11305E0E80128831C019C0121503109E90128817B
S11305F0203841F0203441F0203241F0203141F4E0
S1130600372D07C030E405C030E303C030E201C039
S1130610382DE1012881232BEB0128832C9120FF25
S113062003C0D2011C9202C0E20198824F5F34964B
S11306300496453061F6EAEEF0E08EE180831082A4
S1130640DF91CF911F910F91FF90EF90DF90CF90AA
S1130650AF909F908F907F905F904F903F902F909E
S11306600895E8EEF0E080818570E9F30895E8EEFE
S1130670F0E0808182FFFDCF08958F929F92AF9228
S1130680BF92CF92DF92EF92FF920F931F93CF937B
S1130690DF93D82EE42FF0E02E173F0710F4C22E7C
S11306A001C0C42E062F172F6894992494F80F2E96
S11306B0F8EEEF2EF12CF02D0F2EFEEFBF2EF02DC5
S11306C0C1EFD0E0A12C01C08A2C0E94310382FC2E
S11306D026C02C2D80E18C1508F4292D2223D9F075
S11306E0F801922FDD2011F0808101C0849188836C
S11306F0915031969111F6CF622F615070E06F5F87
S11307007F4F060F171FC21AF701B082C110DCCF4A
S11307102031D1F204C0F701B082C110D5CFDF91EE
S1130720CF911F910F91FF90EF90DF90CF90BF90EA
S1130730AF909F908F9008958093E9009091F2007C
S1130740842F941708F4892F882359F0262FE62F35
S1130750F72FA1EFB0E09C9191939E2F921B9817D5
S1130760D0F30895CF93DF93442329F18093E900D4
S1130770E8EEF0E0808180FFFDCF8091F2008111EE
S11307801CC0962FE62FF72FA8EEB0E0C1EFD0E003
S11307908C9185FF02C08081888331968E2F891BBE
S11307A08417B0F3E8EEF0E080818E7F80838FE7DA
S11307B0808381E003C080E001C080E0DF91CF91BD
S11307C008951F920F920FB60F9211248F93EF93F7
S11307D0FF93E1EEF0E08081108283FF12C010925B
S11307E0E90081E08093EB001092EC0082E18093B9
S11307F0ED0088E08093F0001092F2018FEF809377
S11308002501FF91EF918F910F900FBE0F901F90D4
S113081018951F920F920FB60F9211242F923F92A8
S11308204F925F926F927F928F929F92AF92BF92FC
S1130830CF92DF92EF92FF920F931F932F933F93E8
S11308404F935F936F937F938F939F93AF93BF93D4
S1130850EF93FF93CF93DF93CDB7DEB72997DEBF36
S1130860CDBF8091F40080FF8FC21092E900809187
S1130870E80083FF58C2E1EFF0E05081408120811D
S11308803081932F80E0822B608170813081E08100
S113089022EF2093E800463009F05AC11E2F00E0F1
S11308A0032B811523E0920709F42AC148F481152A
S11308B041E09407F9F08115924009F045C10CC05C
S11308C08230A3E09A0709F42DC108F422C18330D1
S11308D0934009F039C12FC12CE331E03D832C83CF
S11308E06CE571E0A0E040E050E0FF24F394E12CDB
S11308F069011BC0E4E7F0E044919801BF0180E086
S11309000E943D034AC2F901E80FF91FBF2DE0819F
S1130910EF3F09F4BE2DAB0F04968031910599F792
S1130920205F3F4F2617370711F0CA01ECCFDD8255
S1130930CC828A2F880F880F880F8A1B825D898357
S113094090E00E94F606E82EF92E89E0D7018C93F8
S113095082E011968C931197E9811296EC93129789
S113096013961C92139714968C93149781E0159602
S11309708C93159716961C92169780E817968C936D
S113098017978AEF18968C93189719960F2EF2E200
S1130990AF2EF1E0BF2EF02D0F2EFFE18F2EF1E0F0
S11309A09F2EF02D0F2EFCE16F2EF1E07F2EF02D07
S11309B040E050E0412C512C312CDD24D394232CE5
S11309C08FE691E01B830A83FD0188C0D801A20F42
S11309D0B31F6D2DAC91AF3F09F4622DC60E2C5F91
S11309E03F4F2031310591F71D830C8319E01083AB
S11309F024E0218372831382C4829A01D5016D910C
S1130A005D016583D4016D914D016683D3016D91C0
S1130A103D016783108671110CC0BF013996ACE5A6
S1130A20B1E01D911193A817B907D9F7FB017C9682
S1130A3001C03996CC2009F446C022953295307F06
S1130A403227207F3227215C3E4F11E059874887A7
S1130A506C817D813F832E83A90143505109DA01C2
S1130A600C910F3F39F1B7E0B08345E04183402F4B
S1130A70479544274795412B4283013441F0003484
S1130A8041F0013841F0003841F442E007C04D2DF7
S1130A9005C04D2D03C042E001C043E04383AE8155
S1130AA0BF8112974C9144831582AE81BF814C91D2
S1130AB0468337961F5F2C5F3F4F153059F64885A4
S1130AC059857D836C834F5F5F4F0C811D81005F6F
S1130AD01F4F1D830C834230510531F0742F920156
S1130AE0C32C0C811D8172CF0A811B81980149811D
S1130AF0B70181E00E943D03C7010E9491074DC1E7
S1130B00E6E8F0E044919801BF0180E00E943D03D3
S1130B1044C1EAE8F0E044919801BF0180E00E94FA
S1130B203D033BC1E0EAF0E044919801BF0180E05D
S1130B300E943D0332C1E2ECF0E044919801BF0110
S1130B4080E00E943D0329C181E28093EB0025C12E
S1130B50453061F42EEF2093E800E8EEF0E02081C8
S1130B6020FFFDCF80688093E30017C1372F20E07A
S1130B70262B493099F451113EC0019759F481E074
S1130B808093F2018EEF8093E800109225010E9479
S1130B90B60203C181E28093EB00FFC0483081F4C8
S1130BA0503809F043C0E8EEF0E0808180FFFDCFCB
S1130BB08091F2018093F1008EEF8093E800EDC004
S1130BC04132C9F4513A09F043C0E8EEF0E08081C3
S1130BD080FFFDCF0E94D800E5EFF1E08CEF91E0BB
S1130BE0A1EFB0E021912C93E817F907D9F78EEF24
S1130BF08093E800D2C04032C9F4513209F059C0A0
S1130C000E943703E5EFF1E08CEF91E0A1EFB0E053
S1130C102C912193E817F907D9F7E8EEF0E08BEF70
S1130C2080838EEF80830E94D900B7C0423281F462
S1130C30513209F04FC08093F401E8EEF0E0808176
S1130C4080FFFDCF8EEF8093E8000E94DA00A5C0FC
S1130C5041111AC0E8EEF0E0808180FFFDCF5238E8
S1130C6051F4E9EEF0E020838091EB0085FB8827C6
S1130C7080F9108201C080E0E1EFF0E0808310820F
S1130C808EEF8093E80089C04B3099F4503211F014
S1130C90511149C02230310540F4209325018EEFD3
S1130CA08093E8000E94B60278C081E28093EB0052
S1130CB074C04A3079F45038B1F5E8EEF0E0808140
S1130CC080FFFDCF809125018093F1008EEF80930A
S1130CD0E80063C0413011F0433029F5523019F572
S1130CE0892B09F52F773327922F91509430D8F41C
S1130CF09EEF9093E8002093E900433021F481E2D1
S1130D008093EB004AC089E18093EB0081E090E09E
S1130D10AC0102C0440F551F2A95E2F7EAEEF0E059
S1130D20408310823AC081E28093EB002DC0122FE1
S1130D30808190E0022E02C0959587950A94E2F78F
S1130D4080FF19C0DA012C93DB018C9182FF13C060
S1130D508091F200882341F06091F20070E0822FCC
S1130D600E94DB001093E900E8EEF0E089EF808355
S1130D708FE7808312C02F5F3F4F25303105B9F6CE
S1130D8081E28093EB0009C021E030E0E4EFF0E081
S1130D9049EE50E068EE70E0CACF29960FB6F89499
S1130DA0DEBF0FBECDBFDF91CF91FF91EF91BF9119
S1130DB0AF919F918F917F916F915F914F913F91EF
S1130DC02F911F910F91FF90EF90DF90CF90BF90E4
S1130DD0AF909F908F907F906F905F904F903F90D7
S1130DE02F900F900FBE0F901F9018950F931F9385
S1130DF0CF93DF938230910510F482E090E0E0918C
S1130E00FE01F091FF0120E030E0C0E0D0E023C01B
S1130E104081518148175907A8F04817590761F4D0
S1130E2082819381209719F09B838A832EC09093AB
S1130E30FF018093FE0129C02115310529F04217D5
S1130E40530710F0A90102C0BE01DF010281138122
S1130E50EF019A01F8013097D9F62115310509F10E
S1130E60281B390B2430310590F412968D919C91F6
S1130E7013976115710521F0FB019383828304C0EC
S1130E809093FF018093FE01FD01329644C0FD0161
S1130E90E20FF31F81939193225031092D933C93D8
S1130EA03AC02091FC013091FD01232B41F42091A3
S1130EB02801309129013093FD012093FC012091F8
S1130EC02601309127012115310541F42DB73EB794
S1130ED040912A0150912B01241B350BE091FC0118
S1130EE0F091FD01E217F307A0F42E1B3F0B281726
S1130EF0390778F0AC014E5F5F4F2417350748F08F
S1130F004E0F5F1F5093FD014093FC018193919319
S1130F1002C0E0E0F0E0CF01DF91CF911F910F918B
S1130F200895EF92FF920F931F93CF93DF9300974F
S1130F3009F48FC0DC01129713961C921E9212972B
S1130F40E090FE01F090FF01E114F10489F42D9189
S1130F503C911197280F391F8091FC019091FD015C
S1130F608217930789F5B093FD01A093FC0171C02A
S1130F70E70120E030E001C0EA01CA17DB0738F4DA
S1130F804A815B819E0141155105B1F722C0BC0124
S1130F9062507109FB01D383C28300811181AC01CA
S1130FA0400F511F4C175D0761F448815981400F70
S1130FB0511F4E5F5F4F518340834A815B8153834E
S1130FC042832115310529F4B093FF01A093FE015A
S1130FD040C0F901B383A283E90169917991C60FF5
S1130FE0D71FAC17BD0779F4DC015E914E91460F13
S1130FF0571F4E5F5F4F5183408312968D919C9192
S1131000139793838283A0E0B0E002C0D7017C01F0
S1131010F701828193810097C9F7C7010296208165
S11310203181820F931F2091FC013091FD0128171B
S1131030390779F4109729F41092FF011092FE01F8
S113104004C013961C921E921297F092FD01E09236
S1131050FC01CDB7DEB7E6E00C94EA0BFB01DC0142
S11310600D900020E9F7119701900D920020E1F70F
S11310700895FB019F01E8944230C4F04532B4F472
S11310804A3029F497FB1EF4909581959F4F642F65
S113109077270E948C0B805D8A330CF0895D8193E5
S11310A0CB010097A1F716F45DE251931082C901B8
S11310B00C94E70AFA01CF93FF93EF93223044F1A3
S11310C0253234F5C22FE894CA3049F497FB3EF434
S11310D090958095709561957F4F8F4F9F4F2C2FE2
S11310E0332744275527FF93EF930E94A00BEF91DA
S11310F0FF91605D6A330CF0695D6193B901CA01C7
S1131100605070408040904051F716F4CDE2C19396
S113111010828F919F91CF910C94E70AA0E0B0E0E8
S1131120E4E9F8E00C94D20BCE010996AC016F818E
S113113078858D819E810E94F308E2E00C94EE0B89
S1131140A0E0B0E0E6EAF8E00C94C80B6B014A01B9
S11311507901D90113962C9121FF1BC08C01C0E0A9
S1131160D0E010C0D7011896ED91FC911997B70102
S1131170D8018D918D010995892B69F40A151B05F8
S113118089F72196C815D90531F05801AC0CBD1C5E
S1131190F5CFC0E0D0E0CE01CDB7DEB7ECE00C94E3
S11311A0E40BAEE0B0E0E7EDF8E00C94D00B0D8971
S11311B01E8986E08C831A8309838FEF9FE79E83C1
S11311C08D83CE014996AC016F89788DCE0101964D
S11311D00E94F308EF81F885E00FF11F10822E962C
S11311E0E4E00C94EC0BACE0B0E0E9EFF8E00C9434
S11311F0C20B7C016B018A01FC0117821682838178
S113120081FFC8C188248394912C8C0E9D1EF70104
S11312109381F60193FD859193FF81916F0188235A
S113122009F4B4C1853239F493FD859193FF81911A
S11312306F01853229F4B70190E00E94F70AE7CFE5
S1131240512C312C20E02032A8F48B3261F028F4A8
S1131250803251F0833271F40BC08D3239F0803317
S113126049F421602AC02260246027C0286025C078
S1131270206123C027FD29C0382F30533A3088F429
S113128026FF07C0852D6AE00E94830B582E530E5B
S113129014C0832D6AE00E94830B382E330E206223
S11312A00CC08E3221F426FD71C1206406C08C3638
S11312B011F4206802C0883641F4F60193FD85914B
S11312C093FF81916F018111BECF982F9554933074
S11312D018F09052933028F40C5F1F4FFFE3F9830A
S11312E00DC0833631F0833771F0833509F05EC069
S11312F023C0F801808189830E5F1F4F44244394E7
S1131300512C540115C03801F2E06F0E711CF80124
S1131310A080B18026FF03C0652D70E002C06FEF8E
S11313207FEFC5012C870E94DC0A2C0183012C85E8
S11313306FE7262E222218C03801F2E06F0E711CCE
S1131340F801A080B18026FF03C0652D70E002C0C3
S11313506FEF7FEFC5012C870E94D10A2C012C85E9
S113136050E8252E222A830123FC1CC006C0B701A5
S113137080E290E00E94F70A3A94832D90E04816A8
S11313805906A8F30FC0F50127FC859127FE81912A
S11313905F01B70190E00E94F70A31103A94F1E03E
S11313A04F1A51084114510471F7EDC0843611F0FD
S11313B0893641F5F80127FF07C060817181828178
S11313C093810C5F1F4F08C060817181882777FD6E
S11313D08095982F0E5F1F4F4FE6B42EB22297FFD1
S11313E009C090958095709561957F4F8F4F9F4F61
S11313F0F0E8BF2A2AE030E0A4010E94230BA82EC3
S1131400A81843C0853731F43FEEB32EB2222AE048
S113141030E024C099EFB92EB2228F36B9F020F40F
S1131420883509F0B3C00DC0803721F0883709F042
S1131430ADC002C020E1B22AB4FE0BC084E0B82AD9
S113144008C024FF09C0E6E0BE2A06C028E030E058
S113145005C020E130E002C020E132E0F801B7FE2F
S113146007C060817181828193810C5F1F4F06C028
S11314706081718180E090E00E5F1F4FA4010E94A3
S1131480230BA82EA818FFE7BF22B6FE0BC02B2DF6
S11314902E7FA51450F4B4FE0AC0B2FC08C02B2D54
S11314A02E7E05C07A2C2B2D03C07A2C01C0752CFE
S11314B024FF0DC0FE01EA0DF11D8081803311F47B
S11314C0297E09C022FF06C07394739404C0822F3E
S11314D0867809F0739423FD14C020FF0FC05A2CA2
S11314E0731460F4530C5718732C08C0B70180E2CE
S11314F090E02C870E94F70A73942C857314B0F340
S113150004C0731410F4371801C0312C24FF12C026
S1131510B70180E390E02C870E94F70A2C8522FF14
S11315201EC021FF03C088E590E002C088E790E078
S1131530B7010CC0822F867891F021FD02C080E2B1
S113154001C08BE227FD8DE2B70190E00E94F70A0B
S113155006C0B70180E390E00E94F70A5A94A514EC
S1131560C0F3AA94F401EA0DF11DB701808190E063
S11315700E94F70AA110F5CF06C0B70180E290E0FF
S11315800E94F70A3A943110F8CF41CEF701268130
S1131590378102C02FEF3FEFC9012C96E2E10C9492
S11315A0DE0BFC010590615070400110D8F7809566
S11315B090958E0F9F1F0895FC016150704001901B
S11315C00110D8F7809590958E0F9F1F0895DC0128
S11315D0FC01672F71917723E1F7329704C07C9166
S11315E06D9370836291AE17BF07C8F308950F938C
S11315F01F93CF93DF938C01EB018B8181FD03C09B
S11316000FEF1FEF1AC082FF0DC02E813F818C8126
S11316109D812817390764F4E881F9810193F983DE
S1131620E88306C0E885F985802F0995892B41F761
S11316308E819F8101969F838E83C801DF91CF9114
S11316401F910F910895FA01AA27283061F12031E2
S113165091F1E8946F936E7F6E5F7F4F8F4F9F4F32
S1131660AF4FB1E040D0B4E03ED0670F781F891F80
S11316709A1FA11D680F791F8A1F911DA11D6A0F52
S1131680711D811D911DA11D22D009F468943F9103
S1131690062E000C3019000C000C3019305D31930B
S11316A0CEF6CF010895462F4770405D4193B3E0D5
S11316B00FD0C9F7F6CF462F4F70405D4A3318F06C
S11316C0495D31FD4052419302D0A9F7EACFB4E01D
S11316D0A6959795879577956795BA95C9F70097D5
S11316E06105710508959B01AC010A2E0694579576
S11316F0479537952795BA95C9F7620F731F841FCD
S1131700951FA01D0895002480FD060E660F11F09C
S11317108695D1F7802D0895AA1BBB1B51E107C004
S1131720AA1FBB1FA617B70710F0A61BB70B881F6D
S1131730991F5A95A9F780959095BC01CD010895FC
S1131740A1E21A2EAA1BBB1BFD010DC0AA1FBB1FC1
S1131750EE1FFF1FA217B307E407F50720F0A21B33
S1131760B30BE40BF50B661F771F881F991F1A94A0
S113177069F760957095809590959B01AC01BD01CA
S1131780CF0108952F923F924F925F926F927F9272
S11317908F929F92AF92BF92CF92DF92EF92FF927D
S11317A00F931F93CF93DF93CDB7DEB7CA1BDB0B29
S11317B00FB6F894DEBF0FBECDBF09942A883988CE
S11317C048885F846E847D848C849B84AA84B984D5
S11317D0C884DF80EE80FD800C811B81AA81B981E1
S11317E0CE0FD11D0FB6F894DEBF0FBECDBFED01F5
S10917F00895F894FFCFF8
S11317F60000000200000000960000000000000047
S11318060002000000009600000000000100FF0234
S113181600FF020AFFFF000006022000FF2002006C
S1131826C11002408020060081200600FF2002002D
S1131836C1100240FF200600FF200600FF20020020
S1131846FF200200802006008120060005240010E7
S113185601052401010104240206052406000149A8
S11318666E69742E2E2E2E0A0056616C69642063EE
S11318766F6D6D616E64733A203F20682069206342
S1131886207000557844494C204344432044656DF8
S11318966F2056312E300028632920323031312012
S11318A652657573636820456C656B74726F6E69F7
S11318B66B00205254533D00204454523D00696E3F
S11318C676616C696420636F6D6D616E6400746526
S11318D673742025640A00746573742025640D0AE4
S10518E60000FC
S9030000FC S9030000FC

34
Test/Debug/led.d Normal file
View File

@ -0,0 +1,34 @@
led.d led.o: .././led.c \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/io.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/sfr_defs.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/inttypes.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/include/stdint.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/stdint.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/iom32u2.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/portpins.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/common.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/version.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/fuse.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/lock.h
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/io.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/sfr_defs.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/inttypes.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/include/stdint.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/stdint.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/iom32u2.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/portpins.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/common.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/version.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/fuse.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/lock.h:

View File

@ -2,5 +2,11 @@
# Automatically-generated file. Do not edit or delete the file # Automatically-generated file. Do not edit or delete the file
################################################################################ ################################################################################
led.c
rs232.c
Test.c Test.c
usb_serial.c

48
Test/Debug/rs232.d Normal file
View File

@ -0,0 +1,48 @@
rs232.d rs232.o: .././rs232.c .././config.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/stdio.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/inttypes.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/include/stdint.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/stdint.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/include/stdarg.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/include/stddef.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/io.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/sfr_defs.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/iom32u2.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/portpins.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/common.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/version.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/fuse.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/lock.h \
.././rs232.h
.././config.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/stdio.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/inttypes.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/include/stdint.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/stdint.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/include/stdarg.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/include/stddef.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/io.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/sfr_defs.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/iom32u2.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/portpins.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/common.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/version.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/fuse.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/lock.h:
.././rs232.h:

57
Test/Debug/usb_serial.d Normal file
View File

@ -0,0 +1,57 @@
usb_serial.d usb_serial.o: .././usb_serial.c \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/stdlib.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/include/stddef.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/include/stdbool.h \
.././usb_serial_config.h .././config.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/include/stdint.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/stdint.h \
.././usb_serial.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/pgmspace.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/inttypes.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/io.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/sfr_defs.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/iom32u2.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/portpins.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/common.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/version.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/fuse.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/lock.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/interrupt.h
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/stdlib.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/include/stddef.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/include/stdbool.h:
.././usb_serial_config.h:
.././config.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/include/stdint.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/stdint.h:
.././usb_serial.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/pgmspace.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/inttypes.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/io.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/sfr_defs.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/iom32u2.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/portpins.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/common.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/version.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/fuse.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/lock.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/interrupt.h:

View File

@ -5,23 +5,167 @@
* Author: netz * Author: netz
*/ */
#define F_CPU 16000000 #include "config.h"
#include <avr/io.h> #include <avr/io.h>
#include <avr/interrupt.h>
#include <stdio.h>
#include <util/delay.h> #include <util/delay.h>
#include "led.h"
#include "rs232.h"
#include <stdlib.h>
#include <stdbool.h>
#include <string.h>
#include "usb_serial_config.h" // USB configuration
#include "usb_serial.h"
void init()
{
init_led();
ledg(YELLOW);
ledg(WHITE);
init_rs232();
ledg(YELLOW);
usb_init(); // initialize USB
sei();
fprintf(&rs232, "Init....\n");
}
// the following routines are called by USB interface. Don't call them yourself!
// You can add own code for your application.
#ifdef USERDEFCONTROLS // see usbconfig.h
//-----------------------------------------------------------------------------
bool usb_controlrequest(struct usb_control_request *ucr)
//-----------------------------------------------------------------------------
// Handle user defined control requests
// "ucr" contains the data of the control request
// function has to return "true", if request is handled (otherwise "false")
{
// insert your own program code here
return true; // means request is handled
}
#endif
//-----------------------------------------------------------------------------
void cdc_notify_getlinecoding(void)
//-----------------------------------------------------------------------------
// This routine is called, when baudrate and transmission parameters (see
// cdc_linecoding in usb_serial.h) are requested by the host.
// Parameters of this variable can be modified in this routine, before they
// will be sent to host.
{
// your code here
}
//-----------------------------------------------------------------------------
void cdc_notify_setlinecoding(void)
//-----------------------------------------------------------------------------
// This routine is called, when baudrate and transmission parameters (see
// cdc_linecoding in usb_serial.h) are set by the host.
// New settings are available in this variable, when this routine is called.
{
// your code here
}
//-----------------------------------------------------------------------------
void cdc_notify_setcontrollinestate(void)
//-----------------------------------------------------------------------------
// This routine is called, when host is changing handshake output lines RTS and
// DTR.
// New settings are available in the global variable cdc_rtsdtr (see
// usb_serial.h).
{
// your code here
}
//-----------------------------------------------------------------------------
void usb_ep(uint8_t endpoint, uint16_t datasize)
//-----------------------------------------------------------------------------
// handle of endpoint interrupt for incoming data
// "datasize" contains the number od bytes in the USB FIFO buffer
{
// insert your own program code here (read of USB FIFO buffer UEDATX)
// example code
char r[32]; // use endpoint buffer size (= maximum length of one transfered string)
char t[32];
char s[8];
uint8_t n;
if (endpoint==CDC_RX_ENDPOINT) {
// serial data received
n=usb_rxdata(endpoint,(unsigned char *)r,sizeof(r)); // read data into buffer
// parse command and prepare response
t[0]=0; // clear response string buffer
switch (r[0]) { // 1st byte is command
case '?': // help command
case 'h':
strcpy(t,"Valid commands: ? h i c p");
break;
case 'i': // info command
strcpy(t,"UxDIL CDC Demo V1.0");
break;
case 'c': // copyright command
strcpy(t,"(c) 2011 Reusch Elektronik");
break;
case 'p': // parameter settings command
strcpy(t,"ppp");
ltoa(cdc_linecoding.dwDTERate,t,10);
strcat(t,":");
itoa(cdc_linecoding.bDataBits,s,10);
strcat(t,s);
switch (cdc_linecoding.bParityType) {
case 0: strcat(t,"N");
break;
case 1: strcat(t,"O");
break;
case 2: strcat(t,"E");
break;
case 3: strcat(t,"M");
break;
case 4: strcat(t,"S");
break;
default: strcat(t,"?");
};
switch (cdc_linecoding.bCharFormat) {
case 0: strcat(t,"1");
break;
case 1: strcat(t,"1.5");
break;
case 2: strcat(t,"2");
break;
default: strcat(t,"?");
};
strcat(t," RTS=");
itoa(cdc_rtsdtr>>1,s,10);
strcat(t,s);
strcat(t," DTR=");
itoa(cdc_rtsdtr&0x01,s,10);
strcat(t,s);
break;
default: strcpy(t,"invalid command");
}
strcat(t,"\r\n");
// response
usb_txdata(CDC_TX_ENDPOINT,(unsigned char *)t,strlen(t)); // return answer to host
}
}
int main(void) int main(void)
{ {
DDRB |= (1<<PINB7) | (1<<PINB6) | (1<<PINB5); init();
while(1) ledg(GREEN);
char t[32];
uint8_t i = 0;
while(1)
{ {
//PORTB ^= (1<<PINB7); ledg(YELLOW);
//_delay_us(10000); fprintf(&rs232, "test %d\n",++i);
//PORTB ^= (1<<PINB7); t[0]=0; // clear response string buffer
PORTB ^= (1<<PINB6); sprintf(t, "test %d\r\n",i);
//_delay_ms(100); usb_txdata(CDC_TX_ENDPOINT,(unsigned char *)t,strlen(t));
//PORTB ^= (1<<PINB5); ledg(GREEN);
_delay_ms(100);
} }
} }

View File

@ -118,9 +118,33 @@
</ToolchainSettings> </ToolchainSettings>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Compile Include="config.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="led.c">
<SubType>compile</SubType>
</Compile>
<Compile Include="led.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="rs232.c">
<SubType>compile</SubType>
</Compile>
<Compile Include="rs232.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="Test.c"> <Compile Include="Test.c">
<SubType>compile</SubType> <SubType>compile</SubType>
</Compile> </Compile>
<Compile Include="usb_serial.c">
<SubType>compile</SubType>
</Compile>
<Compile Include="usb_serial.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="usb_serial_config.h">
<SubType>compile</SubType>
</Compile>
</ItemGroup> </ItemGroup>
<Import Project="$(AVRSTUDIO_EXE_PATH)\\Vs\\Compiler.targets" /> <Import Project="$(AVRSTUDIO_EXE_PATH)\\Vs\\Compiler.targets" />
</Project> </Project>

17
Test/config.h Normal file
View File

@ -0,0 +1,17 @@
/*
* config.h
*
* Created: 06.10.2013 17:05:43
* Author: netz
*/
#ifndef CONFIG_H_
#define CONFIG_H_
#define F_CPU 16000000
#define BAUD_RATE 9600
#endif /* CONFIG_H_ */

23
Test/led.c Normal file
View File

@ -0,0 +1,23 @@
/*
* led.c
*
* Created: 06.10.2013 16:32:15
* Author: netz
*/
#include <avr/io.h>
void ledg(int mask) {
int rgb = 0;
rgb |= (mask & (1<<0)) ? (1<<0) : (0<<0);
rgb |= (mask & (1<<1)) ? (1<<1) : (0<<1);
rgb |= (mask & (1<<2)) ? (1<<2) : (0<<2);
PORTB &= ~((1<<PINB5) | (1<<PINB6) | (1<<PINB7));
PORTB |= (rgb<<PINB5);
}
void init_led()
{
DDRB |= (1<<PINB7) | (1<<PINB6) | (1<<PINB5);
}

26
Test/led.h Normal file
View File

@ -0,0 +1,26 @@
/*
* led.h
*
* Created: 06.10.2013 16:30:58
* Author: netz
*/
#ifndef LED_H_
#define LED_H_
#define BLACK 0
#define RED 4
#define GREEN 2
#define YELLOW 6
#define BLUE 1
#define MAGENTA 5
#define CYAN 3
#define WHITE 7
void init_led();
void ledg(int mask);
#endif /* LED_H_ */

32
Test/rs232.c Normal file
View File

@ -0,0 +1,32 @@
/*
* rs232.c
*
* Created: 06.10.2013 16:34:27
* Author: netz
*/
#include "config.h"
#include <stdio.h>
#include <avr/io.h>
#include "rs232.h"
int uart_putchar(char c, FILE *stream)
{
if (c == '\n') {
uart_putchar('\r', stream); //Warten solange bis Zeichen gesendet wurde
}
loop_until_bit_is_set(UCSR1A, UDRE1); //Ausgabe des Zeichens
UDR1 = c;
return (0);
}
void init_rs232()
{
UCSR1C = (1 << UCSZ11) |(1 << UCSZ10); //8N1
UCSR1B |= /*(1<<RXEN1) | (1<<RXCIE1) | */ (1<<TXEN1); //Enable TXEN im Register UCR TX-Data Enable
UBRR1L = (F_CPU / (BAUD_RATE * 16L) - 1); //Teiler wird gesetzt
stdout = &rs232; //öffnet einen Kanal für printf (STDOUT)
}

17
Test/rs232.h Normal file
View File

@ -0,0 +1,17 @@
/*
* rs232.h
*
* Created: 06.10.2013 16:34:17
* Author: netz
*/
#ifndef RS232_H_
#define RS232_H_
int uart_putchar(char c, FILE *stream);
static FILE rs232 = FDEV_SETUP_STREAM(uart_putchar, NULL, _FDEV_SETUP_WRITE);
void init_rs232();
#endif /* RS232_H_ */

763
Test/usb_serial.c Normal file
View File

@ -0,0 +1,763 @@
/*****************************************************************************
USB-Template: USB Serial Communication Device (CDC)
V1.1.1
(c) 2010-2011 Reusch Elektronik, Dipl.-Ing. (FH) Rainer Reusch
Homepage: http://products.reworld.eu/index.htm
Supported devices:
- AT90USB82, AT90USB162
- ATMEGA8U2, ATMEGA16U2, ATMEGA32U2
- ATMEGA8U4, ATMEGA16U4, ATMEGA32U4
- AT90USB646, AT90USB647, AT90USB1286, AT90USB1287
Supported modules:
- U2DIL-AT90USB162
- U2DIL-ATMEGA32U2
- U4DIL-ATMEGA32U4
- U6DIL-AT90USB1286
Created: 2010-12-28
Changed: 2011-08-02
*****************************************************************************/
// Usually no changes are necessary in this file!
#include <stdlib.h>
#include <stdbool.h>
#include "usb_serial_config.h"
#include "usb_serial.h"
//-----------------------------------------------------------------------------
// Global Variables
//-----------------------------------------------------------------------------
Tcdc_linecoding cdc_linecoding;
//-----------------------------------------------------------------------------
// Internal Variables
//-----------------------------------------------------------------------------
// USB State
static volatile uint8_t usb_stat = USB_STATUS_DISCONNECTED;
// USB configuration, selected by host (0=none)
// In this version only 0 or 1 is possible (support of only one configuration)
static volatile uint8_t usb_conf = 0;
// USB interface, selected by host
// In this version the value 0 and optional more cfgs are possible (see usbconfig.h)
#if (NUMINTERFACES>1)
static volatile uint8_t usb_if = 0xFF; // 0xFF: no interface selected
#endif
//-----------------------------------------------------------------------------
// Descriptors
//-----------------------------------------------------------------------------
// configuration descriptor
typedef struct {
uint8_t bLength;
uint8_t bDescriptorType;
uint16_t wTotalLength;
uint8_t bNumInterfaces;
uint8_t bConfigurationValue;
uint8_t iConfiguration;
uint8_t bmAttributes;
uint8_t bMaxPower;
} cfg_desc;
// interface descriptor
uint8_t InterfaceClasses[3] = {INTERFACE_CLASS_0,INTERFACE_CLASS_1,INTERFACE_CLASS_2};
uint8_t InterfaceSubClasses[3] = {INTERFACE_SUBCLASS_0,INTERFACE_SUBCLASS_1,INTERFACE_SUBCLASS_2};
uint8_t InterfaceProtocols[3] = {INTERFACE_PROTOCOL_0,INTERFACE_PROTOCOL_1,INTERFACE_PROTOCOL_2};
typedef struct {
uint8_t bLength;
uint8_t bDescriptorType;
uint8_t bInterfaceNumber;
uint8_t bAlternateSetting;
uint8_t bNumEndpoints;
uint8_t bInterfaceClass;
uint8_t bInterfaceSubClass;
uint8_t bInterfaceProtocol;
uint8_t iInterface;
} if_desc;
// additional descriptors, required for CDC
// (contents see usb_serial_cfg.h CDCDescriptorData)
#ifdef CDC
typedef uint8_t cdc_desc[CDC_DESCRIPTORSIZE];
#endif
// endpoint descriptor
typedef struct {
uint8_t bLength;
uint8_t bDescriptorType;
uint8_t bEndpointAddress;
uint8_t bmAttributes;
uint16_t wMaxPacketSize;
uint8_t bInterval;
} ep_desc;
//-----------------------------------------------------------------------------
// USB Initializing
//-----------------------------------------------------------------------------
#if defined (__AVR_AT90USB1286__) || (__AVR_AT90USB1287__)
#define AT128X
#endif
void usb_init(void)
{
#ifdef MEGA4
UHWCON = _BV(UVREGE); // enable PAD regulator
#endif
#ifdef MEGA6
UHWCON = _BV(UIMOD)|_BV(UVREGE); // set device mode, enable PAD regulator
#endif
USBCON = _BV(USBE) | _BV(FRZCLK); // enable USB
#if (F_CPU==16000000)
// 16MHz
#ifdef MEGA2
PLLCSR = _BV(PLLE) | _BV(PLLP0); // config PLL, 16 MHz xtal
#endif
#ifdef MEGA4
PLLCSR = _BV(PINDIV) | _BV(PLLE); // config PLL, 16 MHz xtal
#endif
#ifdef MEGA6
#ifdef AT128X
PLLCSR = _BV(PLLP2) | _BV(PLLP0) | _BV(PLLE); // config PLL, 16 MHz xtal (AT90USB128x)
#else
PLLCSR = _BV(PLLP2) | _BV(PLLP1) | _BV(PLLE); // config PLL, 16 MHz xtal (AT90USB64x and ATMEGA32U6)
#endif
#endif
#else
// 8MHz
#ifdef MEGA6
PLLCSR = _BV(PLLP1) | _BV(PLLP0) |_BV(PLLE); // config PLL, 8 MHz xtal
#else
PLLCSR = _BV(PLLE); // config PLL, 8 MHz xtal
#endif
#endif
while (!(PLLCSR & _BV(PLOCK))) ; // wait for PLL lock
#ifdef MEGA4_6
USBCON = _BV(USBE)|_BV(OTGPADE); // start USB clock
#else
USBCON = _BV(USBE); // start USB clock
#endif
UDCON = 0; // enable attach resistor
usb_conf = 0;
#if (NUMINTERFACES>1)
usb_if = 0xFF;
#endif
#ifdef MEGA2
// port for VBUS detection
VBUSDIR &= ~_BV(VBUSPIN); // port as input
#endif
UDIEN = _BV(EORSTE); // enable "end of reset" interrupt
}
//-----------------------------------------------------------------------------
// Initializing Endpoints
//-----------------------------------------------------------------------------
#ifdef STATICENDPOINTS // physical endpoint configuration for all interfaces, may differ from descriptor defintions
void usb_endpoints(void)
{
#define EPC EP_CONFIG_STATIC[i]
#define IN_TRANSFER EP_CONFIG_STATIC[i].ep_type & 0x01
#else // endpoint configuration corresponds with descriptor
#if (NUMINTERFACES>1)
void usb_endpoints(uint8_t ifnumber) // with interface number
#else
void usb_endpoints(void)
#endif
{
#if (NUMINTERFACES>1)
#define EPC EP_CONFIG[ifnumber][i]
#define IN_TRANSFER EP_CONFIG[ifnumber][i].ep_type & 0x01
#else
#define EPC EP_CONFIG[i]
#define IN_TRANSFER EP_CONFIG[i].ep_type & 0x01
#endif
#endif
uint8_t i;
for (i=0; i<MAX_ENDPOINT; i++) {
if (EPC.ep_type!=EP_TYPE_DISABLED) {
UENUM = i+1; // select endpoint
UECONX = _BV(EPEN); // enable endpoint
UECFG0X = EPC.ep_type; // transfer type and direction
UECFG1X = EP_SIZE(EPC.ep_size)|
(EPC.ep_buffer); // buffer size and bank
if (IN_TRANSFER) UEIENX = 0; // no interrupts handling for IN endpoints
else UEIENX = _BV(RXOUTE); // interrupt handling for incoming data (OUT endpoint)
}
}
#ifdef MEGA4_6
UERST = 0x7E; // endpoint FIFO reset for endpoint 1, 2, 3, 4, 5 and 6
#else
UERST = 0x1E; // endpoint FIFO reset for endpoint 1, 2, 3 and 4
#endif
UERST = 0;
}
//-----------------------------------------------------------------------------
// USB State
//-----------------------------------------------------------------------------
uint8_t usb_status(void)
{
uint8_t r;
r = USB_STATUS_DISCONNECTED;
#ifdef MEGA4_6
if (USBSTA & _BV(VBUS)) {
r = USB_STATUS_CONNECTED;
if (UDADDR & _BV(ADDEN)) {
r = USB_STATUS_ENUMERATED;
if (usb_conf) r = USB_STATUS_CONFIGURED;
}
}
#endif
#ifdef MEGA2
#ifdef VBUSDETECT
if (VBUSPORT & _BV(VBUSPIN)) {
r = USB_STATUS_CONNECTED;
#endif
if (UDADDR & _BV(ADDEN)) {
r = USB_STATUS_ENUMERATED;
if (usb_conf) r = USB_STATUS_CONFIGURED;
}
#ifdef VBUSDETECT
}
#endif
#endif
return r;
}
//-----------------------------------------------------------------------------
// USB Configuration
//-----------------------------------------------------------------------------
uint8_t usb_configuration(void)
{
return usb_conf;
}
//-----------------------------------------------------------------------------
// USB Interface
//-----------------------------------------------------------------------------
#if (NUMINTERFACES>1)
uint8_t usb_interface(void)
{
return usb_if;
}
#endif
//-----------------------------------------------------------------------------
// Internal used USB routines and macros
//-----------------------------------------------------------------------------
#define USB_SEND_IN UEINTX = ~(1<<TXINI)
#define USB_ACK UEINTX = ~_BV(RXOUTI)
#define STALL UECONX = _BV(STALLRQ) | _BV(EPEN)
static inline void usb_wait_in_ready(void)
{
while (!(UEINTX & _BV(TXINI)));
}
void usb_wait_in(void)
// wait for host, until it's ready to receive IN package
{
uint8_t i;
do {
i = UEINTX;
} while (!(i & (_BV(TXINI)|_BV(RXOUTI))));
}
void usb_wait_receive_out(void)
{
while (!(UEINTX & _BV(RXOUTI))) ;
}
void usb_desc_out(bool isRAM, const uint8_t *pgmaddr, uint8_t size, uint16_t maxsize)
// return descriptor over endpoint 0 to host from flash memory or RAM
{
uint8_t i, len, n;
const uint8_t *addr;
addr=pgmaddr;
len=size;
if (len>maxsize) len=maxsize;
do {
usb_wait_in();
if (i & _BV(RXOUTI)) return; // cancel
// send IN package
n = (len < ENDPOINT0_SIZE) ? len : ENDPOINT0_SIZE;
for (i = n; i; i--)
UEDATX = isRAM ? *addr++ : pgm_read_byte(addr++);
len -= n;
USB_SEND_IN;
} while (len || n == ENDPOINT0_SIZE);
}
//-----------------------------------------------------------------------------
// Free FIFO Buffer
//-----------------------------------------------------------------------------
void usb_freebuffer(uint8_t endpoint)
{
UENUM = endpoint; // select endpoint
UERST = _BV(endpoint); // endpoint FIFO reset
UERST = 0;
}
//-----------------------------------------------------------------------------
// Data Check (Host to Device)
//-----------------------------------------------------------------------------
#ifdef MEGA4_6
uint16_t usb_rxavail(uint8_t endpoint)
#else
uint8_t usb_rxavail(uint8_t endpoint)
#endif
{
UENUM = endpoint; // select endpoint
#ifdef MEGA4_6
return ((uint16_t)(UEBCHX)<<8)+UEBCLX;
#else
return UEBCLX;
#endif
}
//-----------------------------------------------------------------------------
// Data Receive (Host to Device)
//-----------------------------------------------------------------------------
#ifdef MEGA4_6
uint16_t usb_rxdata(uint8_t endpoint, uint8_t *buffer, uint16_t maxdatasize)
#else
uint8_t usb_rxdata(uint8_t endpoint, uint8_t *buffer, uint8_t maxdatasize)
#endif
{
#ifdef MEGA4_6
uint16_t r, i;
#else
uint8_t r, i;
#endif
UENUM = endpoint; // select endpoint
#ifdef MEGA4_6
r = ((uint16_t)(UEBCHX)<<8)+UEBCLX;
#else
r = UEBCLX;
#endif
if (r>maxdatasize) r = maxdatasize;
if (r) { // data available in input endpoint
for (i=0; i<r; i++) buffer[i]=UEDATX;
/****
#ifdef MEGA4_6
if ((((uint16_t)(UEBCHX)<<8)+UEBCLX)==0) { // buffer is empty
#else
if (UEBCLX==0) { // buffer is empty
#endif
}
****/
}
return r;
}
//-----------------------------------------------------------------------------
// Data Return (Device to Host), Control Transfers
//-----------------------------------------------------------------------------
bool usb_txdata_control(uint8_t *buffer, uint8_t datasize)
{
uint8_t i;
if (datasize) {
UENUM = 0;
usb_wait_in_ready();
#ifdef MEGA4_6
if ((((uint16_t)(UEBCHX)<<8)+UEBCLX)==0) { // buffer is empty
#else
if (UEBCLX==0) { // buffer is empty
#endif
for (i=0; i<datasize; i++) UEDATX = buffer[i];
UEINTX&=~_BV(TXINI); // necessary (in this order) (changed V1.1.1)
return true;
}
}
return false;
}
//-----------------------------------------------------------------------------
// Data Return (Device to Host)
//-----------------------------------------------------------------------------
// This routine has to be used for all transfer types, except control transfers
#ifdef MEGA4_6
bool usb_txdata(uint8_t endpoint, uint8_t *buffer, uint16_t datasize)
#else
bool usb_txdata(uint8_t endpoint, uint8_t *buffer, uint8_t datasize)
#endif
{
#ifdef MEGA4_6
uint16_t i;
#else
uint8_t i;
#endif
if (datasize) {
UENUM = endpoint;
usb_wait_in_ready();
#ifdef MEGA4_6
if ((((uint16_t)(UEBCHX)<<8)+UEBCLX)==0) { // buffer is empty
#else
if (UEBCLX==0) { // buffer is empty
#endif
for (i=0; i<datasize; i++)
if (UEINTX & _BV(RWAL)) UEDATX = buffer[i];
UEINTX&=~_BV(TXINI); // necessary (in this order) (changed V1.1.1)
UEINTX=0x7F; // (uint8_t)~_BV(FIFOCON);
return true;
}
}
return false;
}
//-----------------------------------------------------------------------------
// USB Device Interrupt
//-----------------------------------------------------------------------------
// Hardware interrupts of the USB controller
ISR(USB_GEN_vect)
{
uint8_t intbits;
intbits = UDINT; // save flags
UDINT = 0; // reset flags
if (intbits & _BV(EORSTI)) { // End Of Reset Interrupt Flag
// initialize endpoint 0 for control transfers
UENUM = 0;
UECONX = _BV(EPEN);
UECFG0X = EP_TYPE_CONTROL;
UECFG1X = EP_SIZE(ENDPOINT0_SIZE) | EP_SINGLE_BUFFER;
UEIENX = _BV(RXSTPE); // enable interrupt for incoming data
usb_conf = 0;
#if (NUMINTERFACES>1)
usb_if = 0xFF;
#endif
}
}
//-----------------------------------------------------------------------------
// Endpoint Interrupts
//-----------------------------------------------------------------------------
// Interrupts, triggered by incoming data in an endpoint, are handled here.
ISR(USB_COM_vect)
{
#if (NUMINTERFACES>1)
#define EPCO EP_CONFIG[j][i]
#else
#define EPCO EP_CONFIG[i]
#endif
uint8_t intbits;
uint8_t i, j, n, s;
cfg_desc *cfg;
if_desc *ifp;
#ifdef CDC
cdc_desc *cdc;
#endif
ep_desc *epp;
#if (USESN==2) // serial number in RAM
struct usb_string_descriptor_ram buf;
#endif
struct usb_control_request ucr;
if (UEINT & 0x01) {
// handle interrupts of endpoint 0 (control transfers)
UENUM = 0;
intbits = UEINTX; // save interrupt flags of the endpoint
if (intbits & _BV(RXSTPI)) { // control transfer, setup
ucr.bmRequestType = UEDATX;
ucr.bRequest = UEDATX;
ucr.wValue = UEDATX;
ucr.wValue |= (UEDATX << 8);
ucr.wIndex = UEDATX;
ucr.wIndex |= (UEDATX << 8);
ucr.wLength = UEDATX;
ucr.wLength |= (UEDATX << 8);
UEINTX = ~(_BV(RXSTPI) | _BV(RXOUTI) | _BV(TXINI));
if (ucr.bRequest == GET_DESCRIPTOR) {
switch (ucr.wValue) {
case 0x0100: // device descriptor
usb_desc_out(false,&device_descriptor[0],pgm_read_byte(&device_descriptor[0]),ucr.wLength);
break;
case 0x0200: // configuration descriptor
// get number of activated endpoints
n=0;
#if (NUMINTERFACES>1)
for (j=0; j<NUMINTERFACES; j++)
for (i=0; i<MAX_ENDPOINT; i++) n+=(EP_CONFIG[j][i].ep_type!=EP_TYPE_DISABLED);
#else
for (i=0; i<MAX_ENDPOINT; i++) n+=(EP_CONFIG[i].ep_type!=EP_TYPE_DISABLED);
#endif
#ifdef CDC
s = sizeof(cfg_desc)+NUMINTERFACES*sizeof(if_desc)+sizeof(cdc_desc)+n*sizeof(ep_desc);
#else
s = sizeof(cfg_desc)+NUMINTERFACES*sizeof(if_desc)+n*sizeof(ep_desc);
#endif
cfg = malloc(s); // allocate memory
// initialize configuration descriptor
cfg->bLength = sizeof(cfg_desc);
cfg->bDescriptorType = 2;
cfg->wTotalLength = s;
cfg->bNumInterfaces = NUMINTERFACES;
cfg->bConfigurationValue = 1;
cfg->iConfiguration = 0;
cfg->bmAttributes = POWERING;
cfg->bMaxPower = MAXPOWER>>1;
// initialize interface descriptor
ifp = (if_desc *)((uint16_t)(cfg)+sizeof(cfg_desc));
#if (NUMINTERFACES>1)
for (j=0; j<NUMINTERFACES; j++) {
n = 0;
for (i=0; i<MAX_ENDPOINT; i++) n+=(EP_CONFIG[j][i].ep_type!=EP_TYPE_DISABLED); // number of endpoints for one interface
#else
j = 0;
#endif
ifp->bLength = sizeof(if_desc);
ifp->bDescriptorType = 4;
ifp->bInterfaceNumber = j;
ifp->bAlternateSetting = 0;
ifp->bNumEndpoints = n;
ifp->bInterfaceClass = InterfaceClasses[j];
ifp->bInterfaceSubClass = InterfaceSubClasses[j];
ifp->bInterfaceProtocol = InterfaceProtocols[j];
ifp->iInterface = 0;
#ifdef CDC
if (j==0) {
cdc = (cdc_desc *)((uint16_t)(ifp)+sizeof(if_desc));
for (i=0; i<CDC_DESCRIPTORSIZE; i++) *(cdc[0]+i)=CDCDescriptorData[i];
epp = (ep_desc *)((uint16_t)(cdc)+sizeof(cdc_desc));
} else epp = (ep_desc *)((uint16_t)(ifp)+sizeof(if_desc));
#else
epp = (ep_desc *)((uint16_t)(ifp)+sizeof(if_desc));
#endif
if (n) { // endpoints
for (i=0; i<MAX_ENDPOINT; i++) {
if (EPCO.ep_type!=EP_TYPE_DISABLED) {
epp->bLength = sizeof(ep_desc);
epp->bDescriptorType = 5;
epp->bEndpointAddress = (i+1)|(EPCO.ep_type<<7);
epp->bmAttributes = EP_TRANSFER(EPCO.ep_type);
epp->wMaxPacketSize = EPCO.ep_size;
epp->bInterval = EPCO.ep_interval;
epp = (ep_desc *)((uint16_t)(epp)+sizeof(ep_desc));
}
}
}
#if (NUMINTERFACES>1)
ifp = (if_desc *)epp;
}
#endif
// finally
usb_desc_out(true,(uint8_t *)cfg,s,ucr.wLength);
free(cfg);
break;
case 0x0300: // String 0
usb_desc_out(false,(uint8_t *)&string0.bLength,pgm_read_byte(&string0.bLength),ucr.wLength);
break;
case 0x0301: // String 1
usb_desc_out(false,(uint8_t *)&string1.bLength,pgm_read_byte(&string1.bLength),ucr.wLength);
break;
case 0x0302: // String 2
usb_desc_out(false,(uint8_t *)&string2.bLength,pgm_read_byte(&string2.bLength),ucr.wLength);
break;
#if (USESN>0)
case 0x0303: // String 3, serial number
#if (USESN==1) // serial number in the flash
usb_desc_out(false,(uint8_t *)&string3.bLength,pgm_read_byte(&string3.bLength),ucr.wLength);
#endif
#if (USESN==2) // serial number in the RAM
buf.bDescriptorType=3; // has to be 3 always
i = 0;
while (RAMSN[i]) {
buf.wString[i] = RAMSN[i];
i++;
}
buf.bLength=2*i+2; // total length of the data set
usb_desc_out(true,(uint8_t *)&buf,buf.bLength,ucr.wLength);
#endif
break;
#endif
default:
STALL; // stall
}
return;
}
if (ucr.bRequest == SET_ADDRESS) {
USB_SEND_IN;
usb_wait_in_ready();
UDADDR = ucr.wValue | _BV(ADDEN);
return;
}
if (ucr.bRequest == SET_CONFIGURATION && ucr.bmRequestType == 0) { // another configuration will be chosen
if (ucr.wValue==1) { // configuration 1 will be chosen
usb_conf = ucr.wValue;
USB_SEND_IN;
#ifdef STATICENDPOINTS
usb_if = 0; // select interface 0
usb_endpoints(); // initialize endpoints
#else
#if (NUMINTERFACES==1)
usb_endpoints(); // initialize endpoints
#else
usb_if = 0; // select interface 0
usb_endpoints(usb_if); // initialize endpoints
#endif
#endif
} else { // other configurations are not supported in this version
STALL; // stall
}
return;
}
if (ucr.bRequest == GET_CONFIGURATION && ucr.bmRequestType == 0x80) {
usb_wait_in_ready();
UEDATX = usb_conf;
USB_SEND_IN;
return;
}
if (ucr.bRequest == CDC_GET_LINE_CODING && ucr.bmRequestType == 0xA1) {
// request baudrate and transmission format
usb_wait_in_ready();
cdc_notify_getlinecoding();
for (i=0; i<7; i++) UEDATX = cdc_linecoding.data[i];
USB_SEND_IN;
return;
}
if (ucr.bRequest == CDC_SET_LINE_CODING && ucr.bmRequestType == 0x21) {
// set baudrate and transmission format
usb_wait_receive_out();
for (i=0; i<7; i++) cdc_linecoding.data[i] = UEDATX;
USB_ACK;
USB_SEND_IN;
cdc_notify_setlinecoding();
return;
}
if (ucr.bRequest == CDC_SET_CONTROL_LINE_STATE && ucr.bmRequestType == 0x21) {
// set handshake outputs RTS and DTR
cdc_rtsdtr = (uint8_t)ucr.wValue;
usb_wait_in_ready();
USB_SEND_IN;
cdc_notify_setcontrollinestate();
return;
}
if (ucr.bRequest == GET_STATUS) {
usb_wait_in_ready();
i = 0;
#ifdef SUPPORT_ENDPOINT_HALT
if (ucr.bmRequestType == 0x82) {
UENUM = ucr.wIndex;
if (UECONX & _BV(STALLRQ)) i = 1;
UENUM = 0;
}
#endif
UEDATX = i;
UEDATX = 0;
USB_SEND_IN;
return;
}
#if (NUMINTERFACES>1)
if (ucr.bRequest == SET_INTERFACE && (ucr.bmRequestType == 0x20 || ucr.bmRequestType == 0)) { // another interface will be chosen
if (ucr.wIndex<NUMINTERFACES) { // defined interface will be chosen
usb_if = ucr.wIndex;
USB_SEND_IN;
#ifdef STATICENDPOINTS
usb_endpoints(); // initialize endpoints
#else
usb_endpoints(usb_if); // initialize endpoints
#endif
} else { // other configurations are not supported in this version
STALL; // stall
}
return;
}
if (ucr.bRequest == GET_INTERFACE && ucr.bmRequestType == 0x80) {
usb_wait_in_ready();
UEDATX = usb_if;
USB_SEND_IN;
return;
}
#endif
#ifdef SUPPORT_ENDPOINT_HALT
if ((ucr.bRequest == CLEAR_FEATURE || ucr.bRequest == SET_FEATURE)
&& ucr.bmRequestType == 0x02 && ucr.wValue == 0) {
i = ucr.wIndex & 0x7F;
if (i >= 1 && i <= MAX_ENDPOINT) {
USB_SEND_IN;
UENUM = i;
if (ucr.bRequest == SET_FEATURE) {
UECONX = _BV(STALLRQ)|_BV(EPEN);
} else {
UECONX = _BV(STALLRQC)|_BV(RSTDT)|_BV(EPEN);
UERST = _BV(i);
UERST = 0;
}
return;
}
}
#endif
#ifdef USERDEFCONTROLS
// handle user defined control requests
if (!usb_controlrequest(&ucr))
UECONX = _BV(STALLRQ) | _BV(EPEN); // stall
return;
#endif
}
UECONX = _BV(STALLRQ) | _BV(EPEN); // stall
}
// handle pending interrupts for other endpoints
for (i=1; i<=MAX_ENDPOINT; i++) {
if (UEINT & _BV(i)) {
UENUM=i; // select endpoint
intbits = UEINTX; // save interrupt bits of the endpoint
if (intbits & _BV(RXOUTI)) { // interrupt occured by incoming data
#ifdef MEGA4_6
if (((uint16_t)(UEBCHX)<<8)+UEBCLX) { // data available in input endpoint
usb_ep(i,((uint16_t)(UEBCHX)<<8)+UEBCLX);
#else
if (UEBCLX) { // data available in input endpoint
usb_ep(i,UEBCLX);
#endif
UENUM=i; // reselect endpoint (if changed by handling routine)
}
UEINTX = ~(_BV(RXOUTI)|_BV(STALLEDI)); // clear interrupt flags
UEINTX = 0x7F; // free bank (FIFOCON), has to be executed after RXOUTI!
return;
}
}
}
STALL; // stall
}

273
Test/usb_serial.h Normal file
View File

@ -0,0 +1,273 @@
/*****************************************************************************
USB-Template: USB Serial Communication Device (CDC)
V1.1.0
(c) 2010-2011 Reusch Elektronik, Dipl.-Ing. (FH) Rainer Reusch
Homepage: http://products.reworld.eu/index.htm
Supported devices:
- AT90USB82, AT90USB162
- ATMEGA8U2, ATMEGA16U2, ATMEGA32U2
- ATMEGA8U4, ATMEGA16U4, ATMEGA32U4
- AT90USB646, AT90USB647, AT90USB1286, AT90USB1287
Supported modules:
- U2DIL-AT90USB162
- U2DIL-ATMEGA32U2
- U4DIL-ATMEGA32U4
- U6DIL-AT90USB1286
Created: 2010-12-28
Changed: 2011-03-12
*****************************************************************************/
// Usually no changes are necessary in this file!
#ifndef usb_h__
#define usb_h__
#include <avr/pgmspace.h>
#include <avr/interrupt.h>
#include <stdint.h>
#include "usb_serial_config.h"
//-----------------------------------------------------------------------------
// USB Strings
//-----------------------------------------------------------------------------
struct usb_string_descriptor {
uint8_t bLength;
uint8_t bDescriptorType;
int16_t wString[];
};
static const struct usb_string_descriptor PROGMEM string0 = {
4,
3,
{0x0409}
};
static const struct usb_string_descriptor PROGMEM string1 = {
sizeof(STR_MANUFACTURER),
3,
STR_MANUFACTURER
};
static const struct usb_string_descriptor PROGMEM string2 = {
sizeof(STR_PRODUCT),
3,
STR_PRODUCT
};
#if (USESN==1)
static const struct usb_string_descriptor PROGMEM string3 = {
sizeof(STR_SERIAL_NUMBER),
3,
STR_SERIAL_NUMBER
};
#endif
#if (USESN==2)
// Your USB serial numebr in RAM. Must be set into RAMSN before calling usb_init!
// Descriptor size, descriptor ID and conversion into widechars wil be done automatically.
#define RAMSNLEN 16 // maximum length of the serial number
struct usb_string_descriptor_ram {
uint8_t bLength;
uint8_t bDescriptorType;
int16_t wString[RAMSNLEN];
};
char RAMSN[RAMSNLEN]; // save the S/N as string here (e.g. read from EEPROM)
#endif
//-----------------------------------------------------------------------------
// Endpoints
//-----------------------------------------------------------------------------
// buffer sizes of an endpoint
// Hint: For 64 byte and more only two endpoints must be activated!
#define EP_SIZE(s) ((s) == 512 ? 0x60 : \
((s) == 256 ? 0x50 : \
((s) == 128 ? 0x40 : \
((s) == 64 ? 0x30 : \
((s) == 32 ? 0x20 : \
((s) == 16 ? 0x10 : \
0x00))))))
// endpoint attributes
#define EP_TRANSFER(t) ((t) == EP_TYPE_ISOCHRONOUS_IN ? 1 : \
((t) == EP_TYPE_ISOCHRONOUS_OUT ? 1 : \
((t) == EP_TYPE_BULK_IN ? 2 : \
((t) == EP_TYPE_BULK_OUT ? 2 : \
3))))
//-----------------------------------------------------------------------------
// Device Descriptor
//-----------------------------------------------------------------------------
#define LSB(n) (n & 255)
#define MSB(n) ((n >> 8) & 255)
static const uint8_t PROGMEM device_descriptor[] = {
18, // bLength
1, // bDescriptorType
0x00, 0x02, // bcdUSB
USBDEVICECLASS, // bDeviceClass
0, // bDeviceSubClass
0, // bDeviceProtocol
ENDPOINT0_SIZE, // bMaxPacketSize0
LSB(VENDOR_ID), MSB(VENDOR_ID), // idVendor
LSB(PRODUCT_ID), MSB(PRODUCT_ID), // idProduct
0x00, 0x01, // bcdDevice
1, // iManufacturer
2, // iProduct
3, // iSerialNumber
1 // bNumConfigurations
};
//-----------------------------------------------------------------------------
// Standard Commands for Control Transfers
//-----------------------------------------------------------------------------
#define GET_STATUS 0
#define CLEAR_FEATURE 1
#define SET_FEATURE 3
#define SET_ADDRESS 5
#define GET_DESCRIPTOR 6
#define GET_CONFIGURATION 8
#define SET_CONFIGURATION 9
#define GET_INTERFACE 10
#define SET_INTERFACE 11
// CDC specific commands
#define CDC_SET_LINE_CODING 0x20
#define CDC_GET_LINE_CODING 0x21
#define CDC_SET_CONTROL_LINE_STATE 0x22
//-----------------------------------------------------------------------------
// DCD Data Structures
//-----------------------------------------------------------------------------
// Baudrate and Transmission format (read and write)
typedef union {
struct {
uint32_t dwDTERate; // baudrate
uint8_t bCharFormat; // stop bits: 0=1, 1=1.5, 2=2 stop bits
uint8_t bParityType; // parity: 0=none, 1=odd, 2=even, 3=mark, 4=space
uint8_t bDataBits; // number of data bits (5, 6, 7, 8 or 16)
};
uint8_t data[7];
} Tcdc_linecoding;
extern Tcdc_linecoding cdc_linecoding; // buffer for data
// Handshake Lines
uint8_t cdc_rtsdtr; // Bit0=DTR, Bit1=RTS
//=============================================================================
// USB Functions
//=============================================================================
//-----------------------------------------------------------------------------
// USB Initializing
//-----------------------------------------------------------------------------
// Has to be called one time before any USB actions.
// Interrupts has to be enabled (call of sei macro)
void usb_init(void);
//-----------------------------------------------------------------------------
// USB State
//-----------------------------------------------------------------------------
// Request of the USB state.
// State is determined with function call.
// Hint: For AT90USB82/162 and ATMEGAxxU2 without VBUSDETECT option, state will
// not change, if USB connector will be unplugged!
// Possible return values:
#define USB_STATUS_DISCONNECTED 0 // not connected (for self powered devices)
#define USB_STATUS_CONNECTED 1 // connected (for AT90USB82/162 and ATMEGAxxU2 only with option VBUSDETECT)
#define USB_STATUS_ENUMERATED 2 // USB address assigned (USB connection established)
#define USB_STATUS_CONFIGURED 3 // a valid configuration were selected (USB device usable)
uint8_t usb_status(void);
//-----------------------------------------------------------------------------
// USB Configuration
//-----------------------------------------------------------------------------
// Returns the configuration number, set by the host
// If the value is 0, no configuration were selected by the host. No endpoint
// (except ep0 for control transfers) can be used in this case.
uint8_t usb_configuration(void);
//-----------------------------------------------------------------------------
// USB Interface
//-----------------------------------------------------------------------------
// Returns the number of the interface, selected by the host.
uint8_t usb_interface(void);
//-----------------------------------------------------------------------------
// Data Check (Host to Device)
//-----------------------------------------------------------------------------
// This function returns the number of data bytes, contained in the FIFO
// input buffer, for the specified endpoint.
#ifdef MEGA4_6
uint16_t usb_rxavail(uint8_t endpoint);
#else
uint8_t usb_rxavail(uint8_t endpoint);
#endif
//-----------------------------------------------------------------------------
// Data Receive (Host to Device)
//-----------------------------------------------------------------------------
// "endpoint" has to specify an "OUT" endpoint (1..4 or 1..6)!
// Data will be stored into "buffer".
// Returns number of bytes, transfered into buffer
#ifdef MEGA4_6
uint16_t usb_rxdata(uint8_t endpoint, uint8_t *buffer, uint16_t maxdatasize);
#else
uint8_t usb_rxdata(uint8_t endpoint, uint8_t *buffer, uint8_t maxdatasize);
#endif
//-----------------------------------------------------------------------------
// Data Return (Device to Host), Control Transfer
//-----------------------------------------------------------------------------
// Data return for control transfers (endpoint 0)
// "datasize" not greater than size of FIFO buffer (no check!)
// Result is always "true", if no connection to host.
// When a connection is established, result is "false", if data block,
// stored before, is not read from the FIFO buffer.
bool usb_txdata_control(uint8_t *buffer, uint8_t datasize);
//-----------------------------------------------------------------------------
// Data Return (Device to Host)
//-----------------------------------------------------------------------------
// "endpoint" must specify a valid endpoint number (1..4 or 1..6)!
// "datasize" not greater than size of FIFO buffer (no check!)
// Result is always "true", if no connection to host.
// When a connection is established, result is "false", if data block,
// stored before, is not read from the FIFO buffer.
#ifdef MEGA4_6
bool usb_txdata(uint8_t endpoint, uint8_t *buffer, uint16_t datasize);
#else
bool usb_txdata(uint8_t endpoint, uint8_t *buffer, uint8_t datasize);
#endif
//-----------------------------------------------------------------------------
// Free FIFO Buffer
//-----------------------------------------------------------------------------
// Free the FIFO buffer for one endpoint
// Data contained in the buffer will be lost.
// Endpoint usable for new data transfer.
// It is not necessary, to call this routine after read of buffer data with
// read routine. Routine can be used to clear buffer before writing new data.
void usb_freebuffer(uint8_t endpoint);
#endif

322
Test/usb_serial_config.h Normal file
View File

@ -0,0 +1,322 @@
/*****************************************************************************
USB-Template: USB Serial Communication Device (CDC)
V1.1.0
(c) 2010-2011 Reusch Elektronik, Dipl.-Ing. (FH) Rainer Reusch
Homepage: http://products.reworld.eu/index.htm
Supported devices:
- AT90USB82, AT90USB162
- ATMEGA8U2, ATMEGA16U2, ATMEGA32U2
- ATMEGA8U4, ATMEGA16U4, ATMEGA32U4
- AT90USB646, AT90USB647, AT90USB1286, AT90USB1287
Supported modules:
- U2DIL-AT90USB162
- U2DIL-ATMEGA32U2
- U4DIL-ATMEGA32U4
- U6DIL-AT90USB1286
Please note:
The USB Vendor and Product ID, used in this file, is NOT for official use!
Created: 2010-12-28
Changed: 2011-03-12
*****************************************************************************/
// in this file you will make changes for your purposes
#include "config.h"
#ifndef usbconfig_h__
#define usbconfig_h__
#if defined (__AVR_AT90USB82__) || (__AVR_AT90USB162__) || (__AVR_ATmega8U2__) || (__AVR_ATmega32U2__)
#define MEGA2 // AT90USB82/162, ATMEGAxxU2
#endif
#if defined (__AVR_ATmega16U4__) || (__AVR_ATmega32U4__)
#define MEGA4 // ATMEGAxxU4
#define MEGA4_6
#endif
#if defined (__AVR_AT90USB646__) || (__AVR_AT90USB647__) || (__AVR_AT90USB1286__) || (__AVR_AT90USB1287__)
#define MEGA6 // AT90USB646, -647, -1286, -1287
#define MEGA4_6
#endif
#include <stdint.h>
#include <stdbool.h>
#if (F_CPU==8000000)
#define FREQ_OK
#endif
#if (F_CPU==16000000)
#define FREQ_OK
#endif
#ifndef FREQ_OK
#error "Invalid clock frequency (only 8 or 16MHz)!"
#endif
//-----------------------------------------------------------------------------
// General USB commitments
//-----------------------------------------------------------------------------
#define CDC // additional code for Communication Device Class
// Vendor Name
// will be a part of the descriptor and can be requested by the host
#define STR_MANUFACTURER L"BlubbFish"
// Product Name
// will be a part of the descriptor and can be requested by the host
#define STR_PRODUCT L"Hacker-Jeopardy"
// USB Serial Number (optional)
// will be a part of the descriptor and can be requested by the host
#define USESN 1 // Options: 0= no S/N; 1= S/N inside the flash memory; 2= S/N inside RAM
#if (USESN==1)
#define STR_SERIAL_NUMBER L"000000" // your serial number, stored in flash memory
#endif
// Vendor ID
// set your vendor ID here
#define VENDOR_ID 0x0001 // !!! THIS ID IS NOT FOR OFFICIAL USE, FOR YOUR PERSONAL TESTING PURPOSES ONLY !!!
// Product ID
// set your product ID here
#define PRODUCT_ID 0x0003 // !!! THIS ID IS NOT FOR OFFICIAL USE, FOR YOUR PERSONAL TESTING PURPOSES ONLY !!!
// USB device class
#define USBDEVICECLASS 0x02 // class for DCD devices
// power supply
#define SELFPOWERED 0x40
#define BUSPOWERED 0x80
#define POWERING BUSPOWERED // Alternatives: SELFPOWERED or SELFPOWERED | BUSPOWERED
// current consumption
// in mA (milliamperes), uses only even values between 2 and 500
#define MAXPOWER 500
#ifdef MEGA2
// The controllers AT90USB82/162 and ATMEGAxxU2 are not able, to detect a
// plugged USB connector (presence of VBUS voltage). As alternative an input
// port, which is connected with the 5V line of the USB connector, can be
// used. A pull down resistor at the input port is recommended.
// Uncomment the following line, if a port pin is used for this purpose.
//#define VBUSDETECT
#define VBUSDIR DDRC // Data Direction Register of the used port
#define VBUSPORT PINC // used port
#define VBUSPIN PC4 // used pin (PC4 as example)
#endif
//-----------------------------------------------------------------------------
// Additional CDC Configuration Descriptor Parameters
//-----------------------------------------------------------------------------
#ifdef CDC
#define CDC_DESCRIPTORSIZE 19 // size of additional CDC descriptor
static const uint8_t CDCDescriptorData[CDC_DESCRIPTORSIZE] = {
0x05, 0x24, 0x00, 0x10, 0x01,
0x05, 0x24, 0x01, 0x01, 0x01,
0x04, 0x24, 0x02, 0x06,
0x05, 0x24, 0x06, 0x00, 0x01
};
#endif
//-----------------------------------------------------------------------------
// Data Set for a USB Control Request
//-----------------------------------------------------------------------------
// Nothing to change here!
struct usb_control_request {
uint8_t bmRequestType;
uint8_t bRequest;
uint16_t wValue;
uint16_t wIndex;
uint16_t wLength;
};
//-----------------------------------------------------------------------------
// Interfaces
//-----------------------------------------------------------------------------
// Number of interfaces and interface descriptor topics for each interface
#define NUMINTERFACES 2 // number of supported interfaces (1...3) (use 2 for CDC)
#if (NUMINTERFACES>3)
#error "Only up to 3 interfaces are supported!"
#endif
// Interface classes for each interface
#define INTERFACE_CLASS_0 0x02 // Communication Interface Class
#define INTERFACE_CLASS_1 0x0A // Data Interface Class
#define INTERFACE_CLASS_2 0xFF // not used in CDC
// Interface sub classes for each interface
#define INTERFACE_SUBCLASS_0 0x02 // Abstract Control Model
#define INTERFACE_SUBCLASS_1 0x00 // always 0 at CDC
#define INTERFACE_SUBCLASS_2 0xFF // not used in CDC
// Interface protocols for each interface
#define INTERFACE_PROTOCOL_0 0x01 // AT commands V250, set to 0x00, if no protocol
#define INTERFACE_PROTOCOL_1 0x00 // always 0 at CDC
#define INTERFACE_PROTOCOL_2 0xFF // not used in CDC
//-----------------------------------------------------------------------------
// Endpoints
//-----------------------------------------------------------------------------
// maximum number of endpoints (don't change!)
#ifdef MEGA4_6
#define MAX_ENDPOINT 6
#else
#define MAX_ENDPOINT 4
#endif
// Constants for endpoint configuration (don't change!)
#define EP_TYPE_DISABLED 0xFF // endpoint not used
#define EP_TYPE_CONTROL 0x00
#define EP_TYPE_BULK_IN 0x81
#define EP_TYPE_BULK_OUT 0x80
#define EP_TYPE_INTERRUPT_IN 0xC1
#define EP_TYPE_INTERRUPT_OUT 0xC0
#define EP_TYPE_ISOCHRONOUS_IN 0x41
#define EP_TYPE_ISOCHRONOUS_OUT 0x40
#define EP_SINGLE_BUFFER 0x02
#define EP_DOUBLE_BUFFER 0x06
// Endpoint 0
// (for Control Transfers, must be defined always)
#define ENDPOINT0_SIZE 16 // control endpoint
// uncomment the following line to handle user defined control request
// of endpoint 0 in the main program
//#define USERDEFCONTROLS
#ifdef USERDEFCONTROLS
// function prototype to handle user defined control requests.
// Function has to return "true", if request is handled.
// If result is "false", a "stall" will be returned to host.
bool usb_controlrequest(struct usb_control_request *ucr);
#endif
typedef struct {
uint8_t ep_type; // transfer
uint8_t ep_size; // buffer size
uint8_t ep_buffer; // buffer configuration
uint8_t ep_interval; // interval
} ep_config;
#ifdef CDC
#define STATICENDPOINTS // endpoint defintions in descriptors and physical (may differ)
#else
// #define STATICENDPOINTS // if comment: the following endpoint defintions are valid for descriptors and physical
#endif
// configuration of the endpoints
// EP_TYPE constant, buffer size (8, 16, 32 or 64 byte), single or double buffer
// Hint: Use only two endpoints, if buffer size is 64 byte!
// Additional hints, if more than one USB interfaces are defined:
// - after configuration change (only configuration 1 is possible),
// interface 0 will be selected
// - to chose another interface, the control request command SET_INTERFACE
// with the request type 0x20 has to be executed
// if STATICENDPOINTS is defined, the following agreements are only used in the descriptors.
#if (NUMINTERFACES>1)
static const ep_config EP_CONFIG[NUMINTERFACES][MAX_ENDPOINT] = {{
#else
static const ep_config EP_CONFIG[MAX_ENDPOINT] = {
#endif
// modify the following lines for your purposes
{EP_TYPE_DISABLED, 32, EP_SINGLE_BUFFER, 0x00},
{EP_TYPE_INTERRUPT_IN, 16, EP_SINGLE_BUFFER, 0x40}, // interval for CDC
{EP_TYPE_DISABLED, 32, EP_DOUBLE_BUFFER, 0x00},
{EP_TYPE_DISABLED, 32, EP_DOUBLE_BUFFER, 0x00}
#ifdef MEGA4_6 // the following endpoints are only available on ATMEGAxxU4 and AT90USB64x/128x controllers
,
{EP_TYPE_DISABLED, 32, EP_SINGLE_BUFFER, 0x00},
{EP_TYPE_DISABLED, 32, EP_SINGLE_BUFFER, 0x00}
#endif
#if (NUMINTERFACES>1)
},{
// modify the following lines for your purposes
{EP_TYPE_DISABLED, 32, EP_SINGLE_BUFFER, 0x00},
{EP_TYPE_DISABLED, 32, EP_SINGLE_BUFFER, 0x00},
{EP_TYPE_BULK_OUT, 32, EP_DOUBLE_BUFFER, 0x00},
{EP_TYPE_BULK_IN, 32, EP_DOUBLE_BUFFER, 0x00}
#ifdef MEGA4_6 // the following endpoints are only available on ATMEGAxxU4 and AT90USB64x/128x controllers
,
{EP_TYPE_DISABLED, 32, EP_SINGLE_BUFFER, 0x00},
{EP_TYPE_DISABLED, 32, EP_SINGLE_BUFFER, 0x00}
#endif
}
// more interfaces...
#if (NUMINTERFACES==3)
,{
// modify the following lines for your purposes
{EP_TYPE_BULK_IN, 32, EP_SINGLE_BUFFER, 0x00},
{EP_TYPE_DISABLED, 32, EP_SINGLE_BUFFER, 0x00},
{EP_TYPE_DISABLED, 32, EP_SINGLE_BUFFER, 0x00},
{EP_TYPE_DISABLED, 32, EP_SINGLE_BUFFER, 0x00}
#ifdef MEGA4_6 // the following endpoints are only available on ATMEGAxxU4 and AT90USB64x/128x controllers
,
{EP_TYPE_DISABLED, 32, EP_SINGLE_BUFFER, 0x00},
{EP_TYPE_DISABLED, 32, EP_SINGLE_BUFFER, 0x00}
#endif
}
#endif
#endif
};
#ifdef STATICENDPOINTS
// If defined, the physical endpoint configuration, valid for each interface, is defined here.
// It should correspond with the upper definitions!
static const ep_config EP_CONFIG_STATIC[MAX_ENDPOINT] = {
// modify the following lines for your purposes
{EP_TYPE_DISABLED, 32, EP_SINGLE_BUFFER, 0x00},
{EP_TYPE_INTERRUPT_IN, 16, EP_SINGLE_BUFFER, 0x40}, // interval for CDC
{EP_TYPE_BULK_OUT, 32, EP_DOUBLE_BUFFER, 0x00},
{EP_TYPE_BULK_IN, 32, EP_DOUBLE_BUFFER, 0x00}
#ifdef MEGA4_6 // the following endpoints are only available on ATMEGAxxU4 and AT90USB64x/128x controllers
,
{EP_TYPE_DISABLED, 32, EP_SINGLE_BUFFER, 0x00},
{EP_TYPE_DISABLED, 32, EP_SINGLE_BUFFER, 0x00}
#endif
};
#endif
// the following defintions has to correspond with upper endpoint configuration!!!
#define CDC_ACM_ENDPOINT 2 // handshake line state request
#define CDC_RX_ENDPOINT 3 // data receive from host
#define CDC_TX_ENDPOINT 4 // data transmitt to host
//-----------------------------------------------------------------------------
// Interface Routines
//-----------------------------------------------------------------------------
// Function prototypes to handle serial communication
// The routines will be a part of the main program
void cdc_notify_setlinecoding(void);
void cdc_notify_getlinecoding(void);
void cdc_notify_setcontrollinestate(void);
//-----------------------------------------------------------------------------
// Endpoint Interrupt
//-----------------------------------------------------------------------------
// Function prototype to handle endpoint interrupts for incoming data
// The routine will be a part of the main program
void usb_ep(uint8_t endpoint, uint16_t datasize);
//-----------------------------------------------------------------------------
// Functional Purposes
//-----------------------------------------------------------------------------
// "Endpoint Halt" option
// Comment the following to save code memory. But USB conformity is lost.
#define SUPPORT_ENDPOINT_HALT
#endif