20131104-184551

This commit is contained in:
2013-11-04 17:45:46 +00:00
parent 001e0be085
commit 95817ec8b2
106 changed files with 12070 additions and 3939 deletions
+43
View File
@@ -0,0 +1,43 @@
Mainboard.d Mainboard.o: .././Mainboard.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/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/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/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/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/math.h:
+1
View File
@@ -0,0 +1 @@
:00000001FF
Binary file not shown.
+226
View File
@@ -0,0 +1,226 @@
:100000000C9469000C9486000C9486000C94860075
:100010000C9486000C9486000C9486000C94860048
:100020000C9486000C9486000C9486000C948F022D
:100030000C94B7020C9486000C9486000C948600F5
:100040000C9486000C9486000C9486000C94860018
:100050000C9486000C9486000C9486000C94860008
:100060000C9486000C9486000C9486000C948600F8
:100070000C94860012010002FF000010ADDEEEBEFF
:1000800000010102030104030904140342006C008F
:10009000750062006200460069007300680000009D
:1000A00020034800610063006B00650072002D00B2
:1000B0004A0065006F007000610072006400790002
:1000C00000000E03300030003000300030003100FE
:1000D000000011241FBECFEFD4E0DEBFCDBF11E082
:1000E000A0E0B1E0E4ECFDE002C005900D92AE337B
:1000F000B107D9F721E0AEE3B1E001C01D92A4340D
:10010000B207E1F70E949E000C94E0060C940000F8
:100110008EBD0DB407FC10C090E485B1892785B968
:100120002FEF31EE84E0215030408040E1F700C0F5
:1001300000000DB407FEF1CF8EB5089586ED84B9A9
:1001400080E185B91DBC83E58CBD8FE39CE90197F7
:10015000F1F700C000002C9880EC0E9488008FE925
:100160009FE00197F1F700C000002C9A2C9880ECDA
:100170000E9488008FE99FE00197F1F700C000001E
:100180002C9A2F9AFFCFCF93C82F8A3019F48DE085
:100190000E94C300E8ECF0E0908195FFFDCFC09392
:1001A000CE0080E090E0CF910895CF93DF93CDB75C
:1001B000DEB760970FB6F894DEBF0FBECDBF2CE060
:1001C000E5E1F1E0DE01119601900D922A95E1F74B
:1001D0001D861E861F86188AFC012081233C51F44F
:1001E0008181813049F460E1CE0101960E943D0297
:1001F00081E003C080E001C080E060960FB6F89413
:10020000DEBF0FBECDBFDF91CF910895CF93DF93B7
:10021000CDB7DEB7A0970FB6F894DEBF0FBECDBF47
:100220008130A1F440E2BE016F5F7F4F0E9418024F
:10023000882361F018A2CE0101960E94BB0640E21D
:10024000BE016F5F7F4F82E80E946002A0960FB6EA
:10025000F894DEBF0FBECDBFDF91CF9108952F92EE
:100260003F924F925F927F928F929F92AF92CF92E6
:10027000DF92EF92FF920F931F93CF93DF93282F7C
:1002800090E06CE070E00E947105FC01EB5DFE4FB8
:10029000822F90E06CE070E00E947105895D9E4FB6
:1002A00041E00F2EF9EECF2ED12CF02D0F2EFBEECC
:1002B000EF2EF12CF02DAA24A3940CEE10E06DEE9D
:1002C00070E00F2EF0EF4F2E512CF02D68949924F2
:1002D00092F8812C6894772474F8DF0120812F3FF5
:1002E00059F1E6014883E701A8822081E8012883CB
:1002F0001C019C0121503109E9012881203841F07D
:10030000203441F0203241F0203141F4372D07C034
:1003100030E405C030E303C030E201C0382DE10114
:100320002881232BEB0128832C9120FF03C0D201CD
:100330001C9202C0E20198824F5F339603964530CB
:1003400061F6EAEEF0E08EE180831082DF91CF91DA
:100350001F910F91FF90EF90DF90CF90AF909F9003
:100360008F907F905F904F903F902F900895E8EE90
:10037000F0E080818570E9F30895AF92BF92CF924B
:10038000DF92EF92FF920F931F93CF93DF93D82EBC
:10039000D62FC72FE42FF0E02E173F0710F4C22E00
:1003A00001C0C42E0E94B7010D2F1C2F6894AA24EF
:1003B000A4F80F2EF8EEEF2EF12CF02D0F2EFEEFFD
:1003C000BF2EF02DC1EFD0E02C2D80E18C1508F46C
:1003D0002A2D2223D9F0F801922FDD2011F08081FF
:1003E00001C084918883915031969111F6CF622F8C
:1003F000615070E06F5F7F4F060F171FC21AF70141
:10040000B082C11007C0203129F007C0F701B082C7
:10041000CC2019F00E94B701D7CFDF91CF911F9167
:100420000F91FF90EF90DF90CF90BF90AF90089525
:100430008093E9009091F200941708F4492F442327
:10044000D1F0362FE62FF72FA1EFB0E09C919193DA
:100450009E2F931B9417D0F39091F20091110BC033
:1004600021E030E002C0220F331F8A95E2F7EAEE66
:10047000F0E020831082842F08956623E9F0109223
:10048000E900E8EEF0E0208120FFFDCF2091F200AE
:10049000211114C0282FE82FF92FA1EFB0E081918E
:1004A0008C938E2F821B8617D0F3E8EEF0E08081CC
:1004B0008E7F808381E0089580E0089580E0089534
:1004C000CF93DF93442329F18093E900E8EEF0E035
:1004D000808180FFFDCF8091F20081111CC0962F9A
:1004E000E62FF72FA8EEB0E0C1EFD0E08C9185FFAA
:1004F00002C08081888331968E2F891B8417B0F3C8
:10050000E8EEF0E080818E7F80838FE7808381E05A
:1005100003C080E001C080E0DF91CF9108951F9279
:100520000F920FB60F9211248F93EF93FF93E1EE8A
:10053000F0E08081108283FF12C01092E90081E018
:100540008093EB001092EC0082E18093ED0088E054
:100550008093F00010923E018FEF80930E01FF9187
:10056000EF918F910F900FBE0F901F9018951F92D3
:100570000F920FB60F9211243F924F925F926F929B
:100580007F928F929F92AF92BF92CF92DF92EF9223
:10059000FF920F931F932F933F934F935F936F930C
:1005A0007F938F939F93AF93BF93EF93FF93CF93DB
:1005B000DF93CDB7DEB72A97DEBFCDBF8091F400C1
:1005C00080FF58C21092E9008091E80083FF1FC2AB
:1005D000E1EFF0E08081898380818A83208130E0AF
:1005E0003C832B834081942F80E0822B932B9C8330
:1005F0008B83208130E03E832D834081942F80E0E7
:10060000822B932B9E838D83208130E038872F832C
:100610004081942F80E0822B932B98878F8382EFE9
:100620008093E8008A81863009F030C18B819C81FB
:10063000811523E0920709F4FDC048F4811551E0CB
:10064000950789F08115924009F01CC126C08230BF
:10065000B3E09B0709F402C108F4F6C0833093406D
:1006600009F010C105C1E4E7F0E044912F8138851D
:10067000BF0180E00E94BD010CC29A2F50815F3FF4
:1006800009F49B2F490F815033968111F6CF2F5FCC
:100690003F4F2230310539F410C020E030E040E017
:1006A00014E0A1E0B0E0C9016CE070E00E947105C7
:1006B000FC01EB5DFE4F812FE0CF842F880F880F68
:1006C000880F841B0F2EFBE1EF2EF02DE80E8E2DF0
:1006D00090E00E948305082F192F89E0D8018C93A0
:1006E00082E011968C9311971296EC9212971396C2
:1006F0001C92139714968C93149781E015968C9303
:10070000159716961C92169780EC17968C93179750
:100710008AEF18968C93F80139961A86198644E068
:10072000A12C88248394F82C9A2C0F2EF9E07F2E8C
:10073000F02DBB24BA940F2EF7E0CF2EF02D0F2E04
:10074000F5E0DF2EF02D6894662461F80F2EF3E0BB
:100750005F2EF02D56C07F2DDC012C912F3F09F428
:10076000792D670F515003965111F5CF7082418357
:10077000428213826483B5821682B78210863996CC
:100780006623C1F1832F932D6CE070E00E94710508
:100790009C012A5D3E4F482CC901B9016150710985
:1007A000DB015C915F3F01F1C082D182652F6795CB
:1007B0006627679564296283513441F0503441F0D3
:1007C000513841F0503841F4562D07C05F2D05C017
:1007D0005F2D03C0562D01C0552D5383DC018C9134
:1007E000848315821682379643942D5F3F4FB5E080
:1007F0004B12D2CFA985BA851196BA87A9871297CD
:1008000071F04984342D3A84842D932D6CE070E08E
:100810000E9471058B5D9E4F542F6A2D9CCF2F81B6
:1008200038854E2DB80181E00E94BD01C8010E94AB
:100830001E062FC1E6E8F0E044912F813885BF0104
:1008400080E00E94BD0125C1EAE8F0E044912F81DB
:100850003885BF0180E00E94BD011BC1E0EAF0E0E5
:1008600044912F813885BF0180E00E94BD0111C1F4
:10087000E2ECF0E044912F813885BF0180E00E94D6
:10088000BD0107C181E28093EB0003C1853071F4A3
:100890008EEF8093E800E8EEF0E0808180FFFDCFEE
:1008A0008B819C8180688093E300F3C08930C1F420
:1008B0009981911160C08B819C81019769F481E0DD
:1008C00080933E018EEF8093E80010920E0180919C
:1008D0000E010E942F01DDC081E28093EB00D9C0A0
:1008E000883089F49981903809F057C0E8EEF0E03B
:1008F000808180FFFDCF80913E018093F1008EEFDB
:100900008093E800C6C081111CC0E8EEF0E0808151
:1009100080FFFDCF8981823859F48D81E9EEF0E0C6
:1009200080838091EB0085FB882780F9108201C0CD
:1009300080E0E1EFF0E0808310828EEF8093E800AA
:10094000A8C08B30C1F48981803211F0811155C06B
:100950008D819E818230910550F480930E018EEF3F
:100960008093E80080910E010E942F0192C081E2E5
:100970008093EB008EC08A3081F489818038E9F55C
:10098000E8EEF0E0808180FFFDCF80910E01809342
:10099000F1008EEF8093E8007CC0813011F083304D
:1009A00061F58981823049F58B819C81892B29F5FC
:1009B0008D819E818F779927382F31503430E8F41C
:1009C0003EEF3093E8008093E9002A81233021F440
:1009D00081E28093EB005DC099E19093EB0021E010
:1009E00030E0F90102C0EE0FFF1F8A95E2F7CF0158
:1009F000EAEEF0E0808310824CC0CE0101960E94A6
:100A0000D500811146C081E28093EB0042C081E2B3
:100A10008093EB002FC0F22E408150E0022E02C0E6
:100A2000559547950A94E2F740FF1BC0DB012C93D4
:100A3000D6018C9182FF13C08091F200882341F08F
:100A40006091F20070E0822F0E940601F092E900AE
:100A5000E8EEF0E089EF80838FE780831AC0D80149
:100A60009C932F5F3F4F25303105A9F681E280939B
:100A7000EB000FC021E030E0E4EFF0E069EE70E061
:100A80000F2EF8EECF2ED12CF02D0BEE10E091E2D0
:100A9000C2CF2A960FB6F894DEBF0FBECDBFDF914E
:100AA000CF91FF91EF91BF91AF919F918F917F91E6
:100AB0006F915F914F913F912F911F910F91FF90F7
:100AC000EF90DF90CF90BF90AF909F908F907F90EE
:100AD0006F905F904F903F900F900FBE0F901F90C0
:100AE00018955527002480FF02C0060E571F660F79
:100AF000771F6115710521F096958795009799F7F5
:100B0000952F802D08950F931F93CF93DF938230FD
:100B1000910510F482E090E0E0914201F0914301F0
:100B200020E030E0C0E0D0E023C040815181481790
:100B30005907A8F04817590761F4828193812097DB
:100B400019F09B838A832EC09093430180934201C6
:100B500029C02115310529F04217530710F0A901CA
:100B600002C0BE01DF0102811381EF019A01F80189
:100B70003097D9F62115310509F1281B390B24309E
:100B8000310590F412968D919C9113976115710522
:100B900021F0FB019383828304C0909343018093EF
:100BA0004201FD01329644C0FD01E20FF31F819323
:100BB0009193225031092D933C933AC020914001EA
:100BC00030914101232B41F4209111013091120108
:100BD000309341012093400120910F013091100189
:100BE0002115310541F42DB73EB7409113015091C5
:100BF0001401241B350BE0914001F0914101E217F3
:100C0000F307A0F42E1B3F0B2817390778F0AC012F
:100C10004E5F5F4F2417350748F04E0F5F1F50930C
:100C20004101409340018193919302C0E0E0F0E0E4
:100C3000CF01DF91CF911F910F910895EF92FF9215
:100C40000F931F93CF93DF93009709F48FC0DC01BC
:100C5000129713961C921E921297E0904201F09008
:100C60004301E114F10489F42D913C911197280F6F
:100C7000391F80914001909141018217930789F5B6
:100C8000B0934101A093400171C0E70120E030E042
:100C900001C0EA01CA17DB0738F44A815B819E0173
:100CA00041155105B1F722C0BC0162507109FB0129
:100CB000D383C28300811181AC01400F511F4C17B7
:100CC0005D0761F448815981400F511F4E5F5F4FAE
:100CD000518340834A815B815383428321153105CF
:100CE00029F4B0934301A093420140C0F901B383BA
:100CF000A283E90169917991C60FD71FAC17BD078F
:100D000079F4DC015E914E91460F571F4E5F5F4FA5
:100D10005183408312968D919C9113979383828384
:100D2000A0E0B0E002C0D7017C01F701828193818D
:100D30000097C9F7C701029620813181820F931F66
:100D400020914001309141012817390779F410971B
:100D500029F4109243011092420104C013961C9290
:100D60001E921297F0924101E0924001CDB7DEB79A
:100D7000E6E00C94D106DC016C9161566A3108F012
:100D8000605E6F5B6D93C1F708952A883988488843
:100D90005F846E847D848C849B84AA84B984C88497
:100DA000DF80EE80FD800C811B81AA81B981CE0F8E
:100DB000D11D0FB6F894DEBF0FBECDBFED01089573
:040DC000F894FFCFD5
:100DC4000000000200000000C30000000000FF005B
:100DD400004401200056657273696F6E20312E3015
:100DE4000000000000802002812002FF2002FF207A
:0E0DF40002C12002FF2002FF2002FF200200A9
:00000001FF
File diff suppressed because it is too large Load Diff
+753
View File
@@ -0,0 +1,753 @@
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(_mulhi3.o)
usb_user.o (__mulhi3)
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/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)
usb_user.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_user.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(strupr.o)
usb.o (strupr)
c:/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)
rs232.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(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(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(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(_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
__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)
__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
.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.led 0x00000000 0x14 led.o
.text.init_led
0x00000000 0x8 led.o
.text.fade 0x00000000 0xbe led.o
.text.led_rainbow
0x00000000 0x74 led.o
.text 0x00000000 0x0 Mainboard.o
.bss 0x00000000 0x0 Mainboard.o
.text 0x00000000 0x0 rs232.o
.bss 0x00000000 0x0 rs232.o
.text.init_rs232
0x00000000 0x24 rs232.o
.text.rs232_send
0x00000000 0x1a rs232.o
.text 0x00000000 0x0 usb.o
.bss 0x00000000 0x0 usb.o
.text.init_usb
0x00000000 0x6 usb.o
.text.usb_send
0x00000000 0x20 usb.o
.text.usb_getstatus
0x00000000 0x6 usb.o
.text.usb_ready
0x00000000 0x6 usb.o
.text 0x00000000 0x0 usb_user.o
.text.usb_init
0x00000000 0x2e usb_user.o
.text.usb_status
0x00000000 0x1c usb_user.o
.text.usb_configuration
0x00000000 0x6 usb_user.o
.text.usb_interface
0x00000000 0x6 usb_user.o
.text.usb_is_ready
0x00000000 0x8 usb_user.o
.text.usb_freebuffer
0x00000000 0x1e usb_user.o
.text.usb_rxavail
0x00000000 0xa usb_user.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(_mulhi3.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(_mulhi3.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(_mulhi3.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(_mulhi3.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(_mulhi3.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(_mulhi3.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(_mulhi3.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)
.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(_exit.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(_exit.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(_exit.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(_exit.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(_exit.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(_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(strupr.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(strupr.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.avr-libc
0x00000000 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)
.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)
COMMON 0x00000000 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)
.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.avr-libc
0x00000000 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)
.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.avr-libc
0x00000000 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)
.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.avr-libc
0x00000000 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)
.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.avr-libc
0x00000000 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)
.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.avr-libc
0x00000000 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)
.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.mul
0x00000000 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)
.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(_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.prologue
0x00000000 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)
.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
Name Origin Length Attributes
text 0x00000000 0x00010000 xr
data 0x00800060 0x0000ffa0 rw !x
eeprom 0x00810000 0x00010000 rw !x
fuse 0x00820000 0x00000400 rw !x
lock 0x00830000 0x00000400 rw !x
signature 0x00840000 0x00000400 rw !x
user_signatures 0x00850000 0x00000400 rw !x
*default* 0x00000000 0xffffffff
Linker script and memory map
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 led.o
LOAD Mainboard.o
LOAD rs232.o
LOAD usb.o
LOAD usb_user.o
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
END 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/avr35\libgcc.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\libc.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/avr35\libgcc.a
.hash
*(.hash)
.dynsym
*(.dynsym)
.dynstr
*(.dynstr)
.gnu.version
*(.gnu.version)
.gnu.version_d
*(.gnu.version_d)
.gnu.version_r
*(.gnu.version_r)
.rel.init
*(.rel.init)
.rela.init
*(.rela.init)
.rel.text
*(.rel.text)
*(.rel.text.*)
*(.rel.gnu.linkonce.t*)
.rela.text
*(.rela.text)
*(.rela.text.*)
*(.rela.gnu.linkonce.t*)
.rel.fini
*(.rel.fini)
.rela.fini
*(.rela.fini)
.rel.rodata
*(.rel.rodata)
*(.rel.rodata.*)
*(.rel.gnu.linkonce.r*)
.rela.rodata
*(.rela.rodata)
*(.rela.rodata.*)
*(.rela.gnu.linkonce.r*)
.rel.data
*(.rel.data)
*(.rel.data.*)
*(.rel.gnu.linkonce.d*)
.rela.data
*(.rela.data)
*(.rela.data.*)
*(.rela.gnu.linkonce.d*)
.rel.ctors
*(.rel.ctors)
.rela.ctors
*(.rela.ctors)
.rel.dtors
*(.rel.dtors)
.rela.dtors
*(.rela.dtors)
.rel.got
*(.rel.got)
.rela.got
*(.rela.got)
.rel.bss
*(.rel.bss)
.rela.bss
*(.rela.bss)
.rel.plt
*(.rel.plt)
.rela.plt
*(.rela.plt)
.text 0x00000000 0xdc4
*(.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
0x00000000 __vector_default
0x00000000 __vectors
*(.vectors)
*(.progmem.gcc*)
*(.progmem*)
.progmem.data 0x00000074 0x5e usb_user.o
0x000000d2 . = ALIGN (0x2)
0x000000d2 __trampolines_start = .
*(.trampolines)
.trampolines 0x000000d2 0x0 linker stubs
*(.trampolines*)
0x000000d2 __trampolines_end = .
*(.jumptables)
*(.jumptables*)
*(.lowtext)
*(.lowtext*)
0x000000d2 __ctors_start = .
*(.ctors)
0x000000d2 __ctors_end = .
0x000000d2 __dtors_start = .
*(.dtors)
0x000000d2 __dtors_end = .
SORT(*)(.ctors)
SORT(*)(.dtors)
*(.init0)
.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
0x000000d2 __init
*(.init0)
*(.init1)
*(.init1)
*(.init2)
.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)
*(.init3)
*(.init3)
*(.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)
*(.init5)
*(.init5)
*(.init6)
*(.init6)
*(.init7)
*(.init7)
*(.init8)
*(.init8)
*(.init9)
.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)
*(.text)
.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
0x0000010c __vector_22
0x0000010c __vector_28
0x0000010c __vector_1
0x0000010c __vector_24
0x0000010c __bad_interrupt
0x0000010c __vector_6
0x0000010c __vector_3
0x0000010c __vector_23
0x0000010c __vector_25
0x0000010c __vector_13
0x0000010c __vector_17
0x0000010c __vector_19
0x0000010c __vector_7
0x0000010c __vector_27
0x0000010c __vector_5
0x0000010c __vector_4
0x0000010c __vector_9
0x0000010c __vector_2
0x0000010c __vector_21
0x0000010c __vector_15
0x0000010c __vector_8
0x0000010c __vector_26
0x0000010c __vector_14
0x0000010c __vector_10
0x0000010c __vector_16
0x0000010c __vector_18
0x0000010c __vector_20
0x00000110 . = ALIGN (0x2)
*(.text.*)
.text.spi_putc
0x00000110 0x2c Mainboard.o
0x00000110 spi_putc
.text.main 0x0000013c 0x4a Mainboard.o
0x0000013c main
.text.uart_putchar
0x00000186 0x24 rs232.o
0x00000186 uart_putchar
.text.usb_controlrequest
0x000001aa 0x62 usb.o
0x000001aa usb_controlrequest
.text.usb_ep 0x0000020c 0x52 usb.o
0x0000020c usb_ep
.text.usb_endpoints
0x0000025e 0x110 usb_user.o
0x0000025e usb_endpoints
.text.usb_wait_in
0x0000036e 0xc usb_user.o
0x0000036e usb_wait_in
.text.usb_desc_out
0x0000037a 0xb6 usb_user.o
0x0000037a usb_desc_out
.text.usb_rxdata
0x00000430 0x4a usb_user.o
0x00000430 usb_rxdata
.text.usb_txdata_control
0x0000047a 0x46 usb_user.o
0x0000047a usb_txdata_control
.text.usb_txdata
0x000004c0 0x5e usb_user.o
0x000004c0 usb_txdata
.text.__vector_11
0x0000051e 0x50 usb_user.o
0x0000051e __vector_11
.text.__vector_12
0x0000056e 0x574 usb_user.o
0x0000056e __vector_12
.text.libgcc.mul
0x00000ae2 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/avr35\libgcc.a(_mulhi3.o)
0x00000ae2 __mulhi3
.text.avr-libc
0x00000b06 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)
0x00000b06 malloc
0x00000c3c free
.text.avr-libc
0x00000d76 0x14 c:/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(strupr.o)
0x00000d76 strupr
.text.libgcc.prologue
0x00000d8a 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)
0x00000d8a __epilogue_restores__
0x00000dc0 . = ALIGN (0x2)
*(.fini9)
.fini9 0x00000dc0 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)
0x00000dc0 _exit
0x00000dc0 exit
*(.fini9)
*(.fini8)
*(.fini8)
*(.fini7)
*(.fini7)
*(.fini6)
*(.fini6)
*(.fini5)
*(.fini5)
*(.fini4)
*(.fini4)
*(.fini3)
*(.fini3)
*(.fini2)
*(.fini2)
*(.fini1)
*(.fini1)
*(.fini0)
.fini0 0x00000dc0 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)
0x00000dc4 _etext = .
.data 0x00800100 0x3e load address 0x00000dc4
0x00800100 PROVIDE (__data_start, .)
*(.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 led.o
.data 0x00800100 0x0 Mainboard.o
.data 0x00800100 0xe rs232.o
.data 0x0080010e 0x0 usb.o
.data 0x0080010e 0x1 usb_user.o
.data 0x0080010f 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(_mulhi3.o)
.data 0x0080010f 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 0x0080010f 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 0x0080010f 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 0x0080010f 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)
0x0080010f __malloc_heap_end
0x00800111 __malloc_heap_start
0x00800113 __malloc_margin
.data 0x00800115 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(strupr.o)
.data 0x00800115 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 0x00800115 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 0x00800115 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 0x00800115 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 0x00800115 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 0x00800115 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 0x00800115 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 0x00800115 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 0x00800115 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 0x00800115 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*)
*(.rodata)
.rodata 0x00800115 0x10 usb.o
.rodata 0x00800125 0x18 usb_user.o
*(.rodata*)
*(.gnu.linkonce.d*)
0x0080013e . = ALIGN (0x2)
*fill* 0x0080013d 0x1
0x0080013e _edata = .
0x0080013e PROVIDE (__data_end, .)
.bss 0x0080013e 0x6
0x0080013e PROVIDE (__bss_start, .)
*(.bss)
.bss 0x0080013e 0x2 usb_user.o
*(.bss*)
*(COMMON)
COMMON 0x00800140 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)
0x00800140 __brkval
0x00800142 __flp
0x00800144 PROVIDE (__bss_end, .)
0x00000dc4 __data_load_start = LOADADDR (.data)
0x00000e02 __data_load_end = (__data_load_start + SIZEOF (.data))
.noinit 0x00800144 0x0
0x00800144 PROVIDE (__noinit_start, .)
*(.noinit*)
0x00800144 PROVIDE (__noinit_end, .)
0x00800144 _end = .
0x00800144 PROVIDE (__heap_start, .)
.eeprom 0x00810000 0x0
*(.eeprom*)
0x00810000 __eeprom_end = .
.fuse
*(.fuse)
*(.lfuse)
*(.hfuse)
*(.efuse)
.lock
*(.lock*)
.signature
*(.signature*)
.user_signatures
*(.user_signatures*)
.stab 0x00000000 0xd2c
*(.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 0x000006cc 0x90 c:/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(strupr.o)
0x9c (size before relaxing)
.stab 0x0000075c 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 0x000007f8 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 0x00000894 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 0x209
*(.stabstr)
.stabstr 0x00000000 0x209 c:/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.exclstr
*(.stab.exclstr)
.stab.index
*(.stab.index)
.stab.indexstr
*(.stab.indexstr)
.comment 0x00000000 0x2f
*(.comment)
.comment 0x00000000 0x2f led.o
0x30 (size before relaxing)
.comment 0x00000000 0x30 Mainboard.o
.comment 0x00000000 0x30 rs232.o
.comment 0x00000000 0x30 usb.o
.comment 0x00000000 0x30 usb_user.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(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(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)
.line
*(.line)
.debug_srcinfo
*(.debug_srcinfo)
.debug_sfnames
*(.debug_sfnames)
.debug_aranges 0x00000000 0x208
*(.debug_aranges)
.debug_aranges
0x00000000 0x38 led.o
.debug_aranges
0x00000038 0x28 Mainboard.o
.debug_aranges
0x00000060 0x30 rs232.o
.debug_aranges
0x00000090 0x48 usb.o
.debug_aranges
0x000000d8 0x90 usb_user.o
.debug_aranges
0x00000168 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
0x00000190 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
0x000001b0 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
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_info 0x00000000 0x226a
*(.debug_info)
.debug_info 0x00000000 0x294 led.o
.debug_info 0x00000294 0x237 Mainboard.o
.debug_info 0x000004cb 0x232 rs232.o
.debug_info 0x000006fd 0x481 usb.o
.debug_info 0x00000b7e 0xaa8 usb_user.o
.debug_info 0x00001626 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 0x00001863 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 0x00001a5f 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 0x00001bad 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 0x000020f6 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.*)
.debug_abbrev 0x00000000 0xe59
*(.debug_abbrev)
.debug_abbrev 0x00000000 0x112 led.o
.debug_abbrev 0x00000112 0x14b Mainboard.o
.debug_abbrev 0x0000025d 0x181 rs232.o
.debug_abbrev 0x000003de 0x1fb usb.o
.debug_abbrev 0x000005d9 0x2c6 usb_user.o
.debug_abbrev 0x0000089f 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 0x00000998 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 0x00000ad1 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 0x00000b92 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 0x00000d68 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 0x11b9
*(.debug_line)
.debug_line 0x00000000 0x150 led.o
.debug_line 0x00000150 0x1ba Mainboard.o
.debug_line 0x0000030a 0x107 rs232.o
.debug_line 0x00000411 0x164 usb.o
.debug_line 0x00000575 0x499 usb_user.o
.debug_line 0x00000a0e 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 0x00000bd6 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 0x00000d20 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 0x00000de1 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 0x000010df 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 0x540
*(.debug_frame)
.debug_frame 0x00000000 0xb0 led.o
.debug_frame 0x000000b0 0x34 Mainboard.o
.debug_frame 0x000000e4 0x5c rs232.o
.debug_frame 0x00000140 0x94 usb.o
.debug_frame 0x000001d4 0x254 usb_user.o
.debug_frame 0x00000428 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 0x00000490 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 0x000004bc 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 0x00000508 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 0x7d4
*(.debug_str)
.debug_str 0x00000000 0xb5 led.o
0xe9 (size before relaxing)
.debug_str 0x000000b5 0x7b Mainboard.o
0x13a (size before relaxing)
.debug_str 0x00000130 0x5b rs232.o
0x136 (size before relaxing)
.debug_str 0x0000018b 0x1a2 usb.o
0x280 (size before relaxing)
.debug_str 0x0000032d 0x218 usb_user.o
0x450 (size before relaxing)
.debug_str 0x00000545 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 0x00000612 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 0x0000068b 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 0x000006d6 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 0x00000787 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 0x00000000 0x19f5
*(.debug_loc)
.debug_loc 0x00000000 0x2a5 led.o
.debug_loc 0x000002a5 0x67 Mainboard.o
.debug_loc 0x0000030c 0xee rs232.o
.debug_loc 0x000003fa 0x1a9 usb.o
.debug_loc 0x000005a3 0x92b usb_user.o
.debug_loc 0x00000ece 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 0x000013c6 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 0x000013e7 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 0x00001902 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_pubtypes
*(.debug_pubtypes)
.debug_ranges 0x00000000 0x1a8
*(.debug_ranges)
.debug_ranges 0x00000000 0x70 led.o
.debug_ranges 0x00000070 0x18 Mainboard.o
.debug_ranges 0x00000088 0x20 rs232.o
.debug_ranges 0x000000a8 0x38 usb.o
.debug_ranges 0x000000e0 0x80 usb_user.o
.debug_ranges 0x00000160 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 0x00000178 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 0x00000188 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 0x00000198 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)
OUTPUT(Mainboard.elf elf32-avr)
LOAD linker stubs
+227
View File
@@ -0,0 +1,227 @@
S01100004D61696E626F6172642E7372656386
S11300000C9469000C9486000C9486000C94860071
S11300100C9486000C9486000C9486000C94860044
S11300200C9486000C9486000C9486000C948F0229
S11300300C94B7020C9486000C9486000C948600F1
S11300400C9486000C9486000C9486000C94860014
S11300500C9486000C9486000C9486000C94860004
S11300600C9486000C9486000C9486000C948600F4
S11300700C94860012010002FF000010ADDEEEBEFB
S113008000010102030104030904140342006C008B
S11300907500620062004600690073006800000099
S11300A020034800610063006B00650072002D00AE
S11300B04A0065006F0070006100720064007900FE
S11300C000000E03300030003000300030003100FA
S11300D0000011241FBECFEFD4E0DEBFCDBF11E07E
S11300E0A0E0B1E0E4ECFDE002C005900D92AE3377
S11300F0B107D9F721E0AEE3B1E001C01D92A43409
S1130100B207E1F70E949E000C94E0060C940000F4
S11301108EBD0DB407FC10C090E485B1892785B964
S11301202FEF31EE84E0215030408040E1F700C0F1
S113013000000DB407FEF1CF8EB5089586ED84B9A5
S113014080E185B91DBC83E58CBD8FE39CE90197F3
S1130150F1F700C000002C9880EC0E9488008FE921
S11301609FE00197F1F700C000002C9A2C9880ECD6
S11301700E9488008FE99FE00197F1F700C000001A
S11301802C9A2F9AFFCFCF93C82F8A3019F48DE081
S11301900E94C300E8ECF0E0908195FFFDCFC0938E
S11301A0CE0080E090E0CF910895CF93DF93CDB758
S11301B0DEB760970FB6F894DEBF0FBECDBF2CE05C
S11301C0E5E1F1E0DE01119601900D922A95E1F747
S11301D01D861E861F86188AFC012081233C51F44B
S11301E08181813049F460E1CE0101960E943D0293
S11301F081E003C080E001C080E060960FB6F8940F
S1130200DEBF0FBECDBFDF91CF910895CF93DF93B3
S1130210CDB7DEB7A0970FB6F894DEBF0FBECDBF43
S11302208130A1F440E2BE016F5F7F4F0E9418024B
S1130230882361F018A2CE0101960E94BB0640E219
S1130240BE016F5F7F4F82E80E946002A0960FB6E6
S1130250F894DEBF0FBECDBFDF91CF9108952F92EA
S11302603F924F925F927F928F929F92AF92CF92E2
S1130270DF92EF92FF920F931F93CF93DF93282F78
S113028090E06CE070E00E947105FC01EB5DFE4FB4
S1130290822F90E06CE070E00E947105895D9E4FB2
S11302A041E00F2EF9EECF2ED12CF02D0F2EFBEEC8
S11302B0EF2EF12CF02DAA24A3940CEE10E06DEE99
S11302C070E00F2EF0EF4F2E512CF02D68949924EE
S11302D092F8812C6894772474F8DF0120812F3FF1
S11302E059F1E6014883E701A8822081E8012883C7
S11302F01C019C0121503109E9012881203841F079
S1130300203441F0203241F0203141F4372D07C030
S113031030E405C030E303C030E201C0382DE10110
S11303202881232BEB0128832C9120FF03C0D201C9
S11303301C9202C0E20198824F5F339603964530C7
S113034061F6EAEEF0E08EE180831082DF91CF91D6
S11303501F910F91FF90EF90DF90CF90AF909F90FF
S11303608F907F905F904F903F902F900895E8EE8C
S1130370F0E080818570E9F30895AF92BF92CF9247
S1130380DF92EF92FF920F931F93CF93DF93D82EB8
S1130390D62FC72FE42FF0E02E173F0710F4C22EFC
S11303A001C0C42E0E94B7010D2F1C2F6894AA24EB
S11303B0A4F80F2EF8EEEF2EF12CF02D0F2EFEEFF9
S11303C0BF2EF02DC1EFD0E02C2D80E18C1508F468
S11303D02A2D2223D9F0F801922FDD2011F08081FB
S11303E001C084918883915031969111F6CF622F88
S11303F0615070E06F5F7F4F060F171FC21AF7013D
S1130400B082C11007C0203129F007C0F701B082C3
S1130410CC2019F00E94B701D7CFDF91CF911F9163
S11304200F91FF90EF90DF90CF90BF90AF90089521
S11304308093E9009091F200941708F4492F442323
S1130440D1F0362FE62FF72FA1EFB0E09C919193D6
S11304509E2F931B9417D0F39091F20091110BC02F
S113046021E030E002C0220F331F8A95E2F7EAEE62
S1130470F0E020831082842F08956623E9F010921F
S1130480E900E8EEF0E0208120FFFDCF2091F200AA
S1130490211114C0282FE82FF92FA1EFB0E081918A
S11304A08C938E2F821B8617D0F3E8EEF0E08081C8
S11304B08E7F808381E0089580E0089580E0089530
S11304C0CF93DF93442329F18093E900E8EEF0E031
S11304D0808180FFFDCF8091F20081111CC0962F96
S11304E0E62FF72FA8EEB0E0C1EFD0E08C9185FFA6
S11304F002C08081888331968E2F891B8417B0F3C4
S1130500E8EEF0E080818E7F80838FE7808381E056
S113051003C080E001C080E0DF91CF9108951F9275
S11305200F920FB60F9211248F93EF93FF93E1EE86
S1130530F0E08081108283FF12C01092E90081E014
S11305408093EB001092EC0082E18093ED0088E050
S11305508093F00010923E018FEF80930E01FF9183
S1130560EF918F910F900FBE0F901F9018951F92CF
S11305700F920FB60F9211243F924F925F926F9297
S11305807F928F929F92AF92BF92CF92DF92EF921F
S1130590FF920F931F932F933F934F935F936F9308
S11305A07F938F939F93AF93BF93EF93FF93CF93D7
S11305B0DF93CDB7DEB72A97DEBFCDBF8091F400BD
S11305C080FF58C21092E9008091E80083FF1FC2A7
S11305D0E1EFF0E08081898380818A83208130E0AB
S11305E03C832B834081942F80E0822B932B9C832C
S11305F08B83208130E03E832D834081942F80E0E3
S1130600822B932B9E838D83208130E038872F8328
S11306104081942F80E0822B932B98878F8382EFE5
S11306208093E8008A81863009F030C18B819C81F7
S1130630811523E0920709F4FDC048F4811551E0C7
S1130640950789F08115924009F01CC126C08230BB
S1130650B3E09B0709F402C108F4F6C08330934069
S113066009F010C105C1E4E7F0E044912F81388519
S1130670BF0180E00E94BD010CC29A2F50815F3FF0
S113068009F49B2F490F815033968111F6CF2F5FC8
S11306903F4F2230310539F410C020E030E040E013
S11306A014E0A1E0B0E0C9016CE070E00E947105C3
S11306B0FC01EB5DFE4F812FE0CF842F880F880F64
S11306C0880F841B0F2EFBE1EF2EF02DE80E8E2DEC
S11306D090E00E948305082F192F89E0D8018C939C
S11306E082E011968C9311971296EC9212971396BE
S11306F01C92139714968C93149781E015968C93FF
S1130700159716961C92169780EC17968C9317974C
S11307108AEF18968C93F80139961A86198644E064
S1130720A12C88248394F82C9A2C0F2EF9E07F2E88
S1130730F02DBB24BA940F2EF7E0CF2EF02D0F2E00
S1130740F5E0DF2EF02D6894662461F80F2EF3E0B7
S11307505F2EF02D56C07F2DDC012C912F3F09F424
S1130760792D670F515003965111F5CF7082418353
S1130770428213826483B5821682B78210863996C8
S11307806623C1F1832F932D6CE070E00E94710504
S11307909C012A5D3E4F482CC901B9016150710981
S11307A0DB015C915F3F01F1C082D182652F6795C7
S11307B06627679564296283513441F0503441F0CF
S11307C0513841F0503841F4562D07C05F2D05C013
S11307D05F2D03C0562D01C0552D5383DC018C9130
S11307E0848315821682379643942D5F3F4FB5E07C
S11307F04B12D2CFA985BA851196BA87A9871297C9
S113080071F04984342D3A84842D932D6CE070E08A
S11308100E9471058B5D9E4F542F6A2D9CCF2F81B2
S113082038854E2DB80181E00E94BD01C8010E94A7
S11308301E062FC1E6E8F0E044912F813885BF0100
S113084080E00E94BD0125C1EAE8F0E044912F81D7
S11308503885BF0180E00E94BD011BC1E0EAF0E0E1
S113086044912F813885BF0180E00E94BD0111C1F0
S1130870E2ECF0E044912F813885BF0180E00E94D2
S1130880BD0107C181E28093EB0003C1853071F49F
S11308908EEF8093E800E8EEF0E0808180FFFDCFEA
S11308A08B819C8180688093E300F3C08930C1F41C
S11308B09981911160C08B819C81019769F481E0D9
S11308C080933E018EEF8093E80010920E01809198
S11308D00E010E942F01DDC081E28093EB00D9C09C
S11308E0883089F49981903809F057C0E8EEF0E037
S11308F0808180FFFDCF80913E018093F1008EEFD7
S11309008093E800C6C081111CC0E8EEF0E080814D
S113091080FFFDCF8981823859F48D81E9EEF0E0C2
S113092080838091EB0085FB882780F9108201C0C9
S113093080E0E1EFF0E0808310828EEF8093E800A6
S1130940A8C08B30C1F48981803211F0811155C067
S11309508D819E818230910550F480930E018EEF3B
S11309608093E80080910E010E942F0192C081E2E1
S11309708093EB008EC08A3081F489818038E9F558
S1130980E8EEF0E0808180FFFDCF80910E0180933E
S1130990F1008EEF8093E8007CC0813011F0833049
S11309A061F58981823049F58B819C81892B29F5F8
S11309B08D819E818F779927382F31503430E8F418
S11309C03EEF3093E8008093E9002A81233021F43C
S11309D081E28093EB005DC099E19093EB0021E00C
S11309E030E0F90102C0EE0FFF1F8A95E2F7CF0154
S11309F0EAEEF0E0808310824CC0CE0101960E94A2
S1130A00D500811146C081E28093EB0042C081E2AF
S1130A108093EB002FC0F22E408150E0022E02C0E2
S1130A20559547950A94E2F740FF1BC0DB012C93D0
S1130A30D6018C9182FF13C08091F200882341F08B
S1130A406091F20070E0822F0E940601F092E900AA
S1130A50E8EEF0E089EF80838FE780831AC0D80145
S1130A609C932F5F3F4F25303105A9F681E2809397
S1130A70EB000FC021E030E0E4EFF0E069EE70E05D
S1130A800F2EF8EECF2ED12CF02D0BEE10E091E2CC
S1130A90C2CF2A960FB6F894DEBF0FBECDBFDF914A
S1130AA0CF91FF91EF91BF91AF919F918F917F91E2
S1130AB06F915F914F913F912F911F910F91FF90F3
S1130AC0EF90DF90CF90BF90AF909F908F907F90EA
S1130AD06F905F904F903F900F900FBE0F901F90BC
S1130AE018955527002480FF02C0060E571F660F75
S1130AF0771F6115710521F096958795009799F7F1
S1130B00952F802D08950F931F93CF93DF938230F9
S1130B10910510F482E090E0E0914201F0914301EC
S1130B2020E030E0C0E0D0E023C04081518148178C
S1130B305907A8F04817590761F4828193812097D7
S1130B4019F09B838A832EC09093430180934201C2
S1130B5029C02115310529F04217530710F0A901C6
S1130B6002C0BE01DF0102811381EF019A01F80185
S1130B703097D9F62115310509F1281B390B24309A
S1130B80310590F412968D919C911397611571051E
S1130B9021F0FB019383828304C0909343018093EB
S1130BA04201FD01329644C0FD01E20FF31F81931F
S1130BB09193225031092D933C933AC020914001E6
S1130BC030914101232B41F4209111013091120104
S1130BD0309341012093400120910F013091100185
S1130BE02115310541F42DB73EB7409113015091C1
S1130BF01401241B350BE0914001F0914101E217EF
S1130C00F307A0F42E1B3F0B2817390778F0AC012B
S1130C104E5F5F4F2417350748F04E0F5F1F509308
S1130C204101409340018193919302C0E0E0F0E0E0
S1130C30CF01DF91CF911F910F910895EF92FF9211
S1130C400F931F93CF93DF93009709F48FC0DC01B8
S1130C50129713961C921E921297E0904201F09004
S1130C604301E114F10489F42D913C911197280F6B
S1130C70391F80914001909141018217930789F5B2
S1130C80B0934101A093400171C0E70120E030E03E
S1130C9001C0EA01CA17DB0738F44A815B819E016F
S1130CA041155105B1F722C0BC0162507109FB0125
S1130CB0D383C28300811181AC01400F511F4C17B3
S1130CC05D0761F448815981400F511F4E5F5F4FAA
S1130CD0518340834A815B815383428321153105CB
S1130CE029F4B0934301A093420140C0F901B383B6
S1130CF0A283E90169917991C60FD71FAC17BD078B
S1130D0079F4DC015E914E91460F571F4E5F5F4FA1
S1130D105183408312968D919C9113979383828380
S1130D20A0E0B0E002C0D7017C01F7018281938189
S1130D300097C9F7C701029620813181820F931F62
S1130D4020914001309141012817390779F4109717
S1130D5029F4109243011092420104C013961C928C
S1130D601E921297F0924101E0924001CDB7DEB796
S1130D70E6E00C94D106DC016C9161566A3108F00E
S1130D80605E6F5B6D93C1F708952A88398848883F
S1130D905F846E847D848C849B84AA84B984C88493
S1130DA0DF80EE80FD800C811B81AA81B981CE0F8A
S1130DB0D11D0FB6F894DEBF0FBECDBFED0108956F
S1070DC0F894FFCFD1
S1130DC40000000200000000C30000000000FF0057
S1130DD4004401200056657273696F6E20312E3011
S1130DE40000000000802002812002FF2002FF2076
S1110DF402C12002FF2002FF2002FF200200A5
S9030000FC
+154
View File
@@ -0,0 +1,154 @@
################################################################################
# Automatically-generated file. Do not edit!
################################################################################
SHELL := cmd.exe
RM := rm -rf
USER_OBJS :=
LIBS :=
PROJ :=
O_SRCS :=
C_SRCS :=
S_SRCS :=
S_UPPER_SRCS :=
OBJ_SRCS :=
ASM_SRCS :=
PREPROCESSING_SRCS :=
OBJS :=
OBJS_AS_ARGS :=
C_DEPS :=
C_DEPS_AS_ARGS :=
EXECUTABLES :=
OUTPUT_FILE_PATH :=
OUTPUT_FILE_PATH_AS_ARGS :=
AVR_APP_PATH :=$$$AVR_APP_PATH$$$
QUOTE := "
ADDITIONAL_DEPENDENCIES:=
OUTPUT_FILE_DEP:=
LIB_DEP:=
# Every subdirectory with source files must be described here
SUBDIRS :=
# Add inputs and outputs from these tool invocations to the build variables
C_SRCS += \
../led.c \
../Mainboard.c \
../rs232.c \
../usb.c \
../usb_user.c
PREPROCESSING_SRCS +=
ASM_SRCS +=
OBJS += \
led.o \
Mainboard.o \
rs232.o \
usb.o \
usb_user.o
OBJS_AS_ARGS += \
led.o \
Mainboard.o \
rs232.o \
usb.o \
usb_user.o
C_DEPS += \
led.d \
Mainboard.d \
rs232.d \
usb.d \
usb_user.d
C_DEPS_AS_ARGS += \
led.d \
Mainboard.d \
rs232.d \
usb.d \
usb_user.d
OUTPUT_FILE_PATH +=Mainboard.elf
OUTPUT_FILE_PATH_AS_ARGS +=Mainboard.elf
ADDITIONAL_DEPENDENCIES:=
OUTPUT_FILE_DEP:= ./makedep.mk
LIB_DEP+=
# AVR32/GNU C Compiler
./%.o: .././%.c
@echo Building file: $<
@echo Invoking: AVR/GNU C Compiler :
$(QUOTE)C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.876\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -funsigned-char -funsigned-bitfields -DDEBUG -O1 -ffunction-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega32u2 -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o"$@" "$<"
@echo Finished building: $<
# AVR32/GNU Preprocessing Assembler
# AVR32/GNU Assembler
ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(C_DEPS)),)
-include $(C_DEPS)
endif
endif
# Add inputs and outputs from these tool invocations to the build variables
# All Target
all: $(OUTPUT_FILE_PATH) $(ADDITIONAL_DEPENDENCIES)
$(OUTPUT_FILE_PATH): $(OBJS) $(USER_OBJS) $(OUTPUT_FILE_DEP) $(LIB_DEP)
@echo Building target: $@
@echo Invoking: AVR/GNU Linker :
$(QUOTE)C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.876\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -o$(OUTPUT_FILE_PATH_AS_ARGS) $(OBJS_AS_ARGS) $(USER_OBJS) $(LIBS) -Wl,-Map="Mainboard.map" -Wl,--start-group -Wl,-lm -Wl,--end-group -Wl,--gc-sections -mmcu=atmega32u2
@echo Finished building target: $@
"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.876\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O ihex -R .eeprom -R .fuse -R .lock -R .signature "Mainboard.elf" "Mainboard.hex"
"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.876\avr8-gnu-toolchain\bin\avr-objcopy.exe" -j .eeprom --set-section-flags=.eeprom=alloc,load --change-section-lma .eeprom=0 --no-change-warnings -O ihex "Mainboard.elf" "Mainboard.eep" || exit 0
"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.876\avr8-gnu-toolchain\bin\avr-objdump.exe" -h -S "Mainboard.elf" > "Mainboard.lss"
"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.876\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O srec -R .eeprom -R .fuse -R .lock -R .signature "Mainboard.elf" "Mainboard.srec"
"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.876\avr8-gnu-toolchain\bin\avr-size.exe" "Mainboard.elf"
# Other Targets
clean:
-$(RM) $(OBJS_AS_ARGS)$(C_DEPS_AS_ARGS) $(EXECUTABLES)
rm -rf "Mainboard.elf" "Mainboard.a" "Mainboard.hex" "Mainboard.lss" "Mainboard.eep" "Mainboard.map" "Mainboard.srec"
+37
View File
@@ -0,0 +1,37 @@
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 \
.././led.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:
.././led.h:
+14
View File
@@ -0,0 +1,14 @@
################################################################################
# Automatically-generated file. Do not edit or delete the file
################################################################################
led.c
Mainboard.c
rs232.c
usb.c
usb_user.c
+66
View File
@@ -0,0 +1,66 @@
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/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/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/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/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/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/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/string.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/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 \
.././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/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/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/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/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/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/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/string.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/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:
.././rs232.h:
+74
View File
@@ -0,0 +1,74 @@
usb.d usb.o: .././usb.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/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/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/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/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/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/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/string.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/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 \
.././usb_user_config.h .././usb_user.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 \
.././usb.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/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/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/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/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/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/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/string.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/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:
.././usb_user_config.h:
.././usb_user.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:
.././usb.h:
+70
View File
@@ -0,0 +1,70 @@
usb_user.d usb_user.o: .././usb_user.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_user_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 \
.././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/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/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/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/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/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/string.h \
.././usb_user.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/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_user_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:
.././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/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/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/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/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/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/string.h:
.././usb_user.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:
+126
View File
@@ -0,0 +1,126 @@
/*
* Mainboard.c
*
* Created: 06.10.2013 19:12:35
* Author: netz
*/
#define F_CPU 16000000
//#define F_CPU 8000000
//#define F_CPU 2000000
#include <avr/io.h>
#include <util/delay.h>
//#include "config.h"
//#include <avr/io.h>
//#include "led.h"
//#include "rs232.h"
//#include "usb.h"
/*void wait_for_usb() {
while(true) {
if(usb_getstatus() == USB_STATUS_DISCONNECTED) {
led(YELLOW);
if(!(PINC & (1<<PINC7))) {
return;
}
}
if(usb_getstatus() == USB_STATUS_ENUMERATED) {
led(CYAN);
}
if(usb_getstatus() == USB_STATUS_CONFIGURED) {
led(GREEN);
return;
}
}
}
void init()
{
led(YELLOW);
sei();
init_led();
init_rs232();
//init_usb();
DDRC &= ~(1<<PINC7);
PORTC |= (1<<PINC7);
//wait_for_usb();
}
void send(char * text) {
uint8_t l = strlen(text);
if(l >= 29) {
text[29] = 13;
text[30] = 10;
text[31] = 0;
} else {
text[l] = 13;
text[l+1] = 10;
text[l+2] = 0;
}
led(MAGENTA);
rs232_send(text);
if(usb_getstatus() == USB_STATUS_CONFIGURED && usb_ready()) {
usb_send(text);
}
led(GREEN);
}
void resi(char * text) {
_delay_ms(10);
send("Nachricht bekommen!");
//send(text);
led(RED);
_delay_ms(2000);
}*/
uint8_t spi_putc( uint8_t data ) {
SPDR = data;
while(!(SPSR & (1<<SPIF))) {
PORTB ^= (1<<PINB6);
_delay_ms(100);
}
return SPDR;
}
int main(void)
{
DDRB = (1<<PINB1) | (1<<PINB2) | (0<<PINB3) | (1<<PINB4) | (1<<PINB7) | (1<<PINB6);
PORTB = 0 | (1<<PINB4);
SPSR = 0;//(1<<SPI2X);
SPCR = (1<<SPE) | (1<<MSTR) | (1<<SPR1) | (1<<SPR0);
_delay_ms(10);
PORTB &= ~(1<<PINB4);
spi_putc( 0xC0 );
_delay_ms(1);
PORTB |= (1<<PINB4);
PORTB &= ~(1<<PINB4);
spi_putc( 0xC0 );
_delay_ms(1);
PORTB |= (1<<PINB4);
PORTB |= (1<<PINB7);
/*init();
led(GREEN);
char text[32];
uint16_t i=0;
while(1)
{
snprintf(text, 32, "blafoo %d ich bin ein lager doofer text",i++);
send(text);
_delay_ms(100);
led_rainbow(5);
}*/
while(1) {
}
}
+156
View File
@@ -0,0 +1,156 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<SchemaVersion>2.0</SchemaVersion>
<ProjectVersion>6.1</ProjectVersion>
<ToolchainName>com.Atmel.AVRGCC8.C</ToolchainName>
<ProjectGuid>{839c4697-ab18-4132-8e80-f57ddb26adeb}</ProjectGuid>
<avrdevice>ATmega32U2</avrdevice>
<avrdeviceseries>none</avrdeviceseries>
<OutputType>Executable</OutputType>
<Language>C</Language>
<OutputFileName>$(MSBuildProjectName)</OutputFileName>
<OutputFileExtension>.elf</OutputFileExtension>
<OutputDirectory>$(MSBuildProjectDirectory)\$(Configuration)</OutputDirectory>
<AssemblyName>Mainboard</AssemblyName>
<Name>Mainboard</Name>
<RootNamespace>Mainboard</RootNamespace>
<ToolchainFlavour>Native</ToolchainFlavour>
<KeepTimersRunning>true</KeepTimersRunning>
<OverrideVtor>false</OverrideVtor>
<OverrideVtorValue>exception_table</OverrideVtorValue>
<eraseonlaunchrule>0</eraseonlaunchrule>
<ProgFlashFromRam>true</ProgFlashFromRam>
<RamSnippetAddress>0x20000000</RamSnippetAddress>
<CacheFlash>true</CacheFlash>
<UncachedRange />
<BootSegment>0</BootSegment>
<AsfFrameworkConfig>
<framework-data xmlns="">
<options />
<configurations />
<files />
<documentation help="" />
<dependencies>
<content-extension eid="atmel.asf" uuidref="Atmel.ASF" version="3.7.2" />
</dependencies>
</framework-data>
</AsfFrameworkConfig>
<avrtoolinterface>ISP</avrtoolinterface>
<avrtool>com.atmel.avrdbg.tool.ispmk2</avrtool>
<com_atmel_avrdbg_tool_ispmk2>
<ToolType xmlns="">com.atmel.avrdbg.tool.ispmk2</ToolType>
<ToolName xmlns="">AVRISP mkII</ToolName>
<ToolNumber xmlns="">0000000000000</ToolNumber>
<Channel xmlns="">
<host>127.0.0.1</host>
<port>63239</port>
<ssl>False</ssl>
</Channel>
<ToolOptions xmlns="">
<InterfaceName>ISP</InterfaceName>
<InterfaceProperties>
<JtagDbgClock>249000</JtagDbgClock>
<JtagProgClock>1000000</JtagProgClock>
<IspClock>150000</IspClock>
<JtagInChain>false</JtagInChain>
<JtagEnableExtResetOnStartSession>false</JtagEnableExtResetOnStartSession>
<JtagDevicesBefore>0</JtagDevicesBefore>
<JtagDevicesAfter>0</JtagDevicesAfter>
<JtagInstrBitsBefore>0</JtagInstrBitsBefore>
<JtagInstrBitsAfter>0</JtagInstrBitsAfter>
</InterfaceProperties>
</ToolOptions>
</com_atmel_avrdbg_tool_ispmk2>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<ToolchainSettings>
<AvrGcc>
<avrgcc.common.outputfiles.hex>True</avrgcc.common.outputfiles.hex>
<avrgcc.common.outputfiles.lss>True</avrgcc.common.outputfiles.lss>
<avrgcc.common.outputfiles.eep>True</avrgcc.common.outputfiles.eep>
<avrgcc.common.outputfiles.srec>True</avrgcc.common.outputfiles.srec>
<avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>
<avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>
<avrgcc.compiler.symbols.DefSymbols>
<ListValues>
<Value>NDEBUG</Value>
</ListValues>
</avrgcc.compiler.symbols.DefSymbols>
<avrgcc.compiler.optimization.level>Optimize for size (-Os)</avrgcc.compiler.optimization.level>
<avrgcc.compiler.optimization.PackStructureMembers>True</avrgcc.compiler.optimization.PackStructureMembers>
<avrgcc.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcc.compiler.optimization.AllocateBytesNeededForEnum>
<avrgcc.compiler.warnings.AllWarnings>True</avrgcc.compiler.warnings.AllWarnings>
<avrgcc.linker.libraries.Libraries>
<ListValues>
<Value>libm</Value>
</ListValues>
</avrgcc.linker.libraries.Libraries>
</AvrGcc>
</ToolchainSettings>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<ToolchainSettings>
<AvrGcc>
<avrgcc.common.outputfiles.hex>True</avrgcc.common.outputfiles.hex>
<avrgcc.common.outputfiles.lss>True</avrgcc.common.outputfiles.lss>
<avrgcc.common.outputfiles.eep>True</avrgcc.common.outputfiles.eep>
<avrgcc.common.outputfiles.srec>True</avrgcc.common.outputfiles.srec>
<avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>
<avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>
<avrgcc.compiler.symbols.DefSymbols>
<ListValues>
<Value>DEBUG</Value>
</ListValues>
</avrgcc.compiler.symbols.DefSymbols>
<avrgcc.compiler.optimization.level>Optimize (-O1)</avrgcc.compiler.optimization.level>
<avrgcc.compiler.optimization.PackStructureMembers>True</avrgcc.compiler.optimization.PackStructureMembers>
<avrgcc.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcc.compiler.optimization.AllocateBytesNeededForEnum>
<avrgcc.compiler.optimization.DebugLevel>Default (-g2)</avrgcc.compiler.optimization.DebugLevel>
<avrgcc.compiler.warnings.AllWarnings>True</avrgcc.compiler.warnings.AllWarnings>
<avrgcc.linker.libraries.Libraries>
<ListValues>
<Value>libm</Value>
</ListValues>
</avrgcc.linker.libraries.Libraries>
<avrgcc.assembler.debugging.DebugLevel>Default (-Wa,-g)</avrgcc.assembler.debugging.DebugLevel>
</AvrGcc>
</ToolchainSettings>
</PropertyGroup>
<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="Mainboard.c">
<SubType>compile</SubType>
</Compile>
<Compile Include="rs232.c">
<SubType>compile</SubType>
</Compile>
<Compile Include="rs232.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="usb.c">
<SubType>compile</SubType>
</Compile>
<Compile Include="usb.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="usb_user.c">
<SubType>compile</SubType>
</Compile>
<Compile Include="usb_user.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="usb_user_config.h">
<SubType>compile</SubType>
</Compile>
</ItemGroup>
<Import Project="$(AVRSTUDIO_EXE_PATH)\\Vs\\Compiler.targets" />
</Project>
+184
View File
@@ -0,0 +1,184 @@
:100000000C9486000C94A3000C94A3000C94A30001
:100010000C94A3000C94A3000C94A3000C94A300D4
:100020000C94A3000C94A3000C94DC010C94FD012F
:100030000C94A3000C94A3000C94A3000C94A300B4
:100040000C94A3000C94A3000C94A3000C94A300A4
:100050000C94A3000C94A3000C94A3000C94A30094
:100060000C94A3000C94A3000C94A3000C94A30084
:100070000C94A3000C94A3000C94A3000C94A30074
:100080000C94A3000C94A3000C94A3000C94A30064
:100090000C94A3000C94A3000C94A3000C94A30054
:1000A0000C94A3000C94A3000C94A3001201000272
:1000B000FF00001001000100000101020301040320
:1000C0000904240352006500750073006300680092
:1000D000200045006C0065006B00740072006F002A
:1000E0006E0069006B00000022035500730065007C
:1000F000720020004400650076006900630065001E
:100100002000440065006D006F00000011241FBE38
:10011000CFEFDAE0DEBFCDBF11E0A0E0B1E0E0E478
:10012000FBE002C005900D92A832B107D9F711E0AB
:10013000A8E2B1E001C01D92AD32B107E1F70E9423
:10014000DC030C949E050C94000081E08093D700A2
:1001500080EA8093D80082E189BD09B400FEFDCF1A
:1001600080E98093D8001092E0001092280188E086
:100170008093E2000895E0E0F1E091E051E044E096
:1001800020812F3F09F19093E9005093EB002093D9
:10019000EC008181803811F480E40BC0803411F4CC
:1001A00080E307C0803229F0803111F080E001C087
:1001B00080E13281382B3093ED0020FF03C0109294
:1001C000F00002C04093F0009F5F33969730C1F675
:1001D0008EE78093EA001092EA0008958091D9009A
:1001E00080FD02C080E008958091E30087FD02C099
:1001F00081E0089580912801882311F083E008951B
:1002000082E008958091280108958091E80085702A
:10021000E1F30895E42FF0E02E173F0708F4422F92
:10022000262F372F7EEF9091E8009570E1F3942F01
:10023000413108F090E1F901592F09C0882311F0EC
:10024000608101C064916093F10051503196552353
:10025000A9F7290F311D491B7093E800442319F7B2
:10026000903109F308958093E90021E030E002C065
:10027000220F331F8A95E2F7EAEEF0E02083108226
:1002800008958093E9009091F3008091F200392F56
:1002900020E0280F311DC90108958093E900909155
:1002A000F300E091F200392F20E0D901AE0FB11D2B
:1002B000FD01242F352FE217F30708F49F012115C4
:1002C000310519F140E050E09091F100FB01E40F9D
:1002D000F51F90834F5F5F4F42175307A8F360915C
:1002E000F3009091F200562F40E0490F511D411547
:1002F000510559F441E050E002C0440F551F8A9562
:10030000E2F74093EA001092EA00C90108956623DB
:1003100009F11092E9002091E80020FFFCCF5091F4
:10032000F3004091F200352F20E0240F311D2115FC
:10033000310581F4FC0180E004C091919093F100BB
:100340008F5F8617D0F38091E8008E7F8093E8005E
:1003500081E0089580E008954115510559F1809399
:10036000E9008091E80080FFFCCF3091F3002091FC
:10037000F200932F80E0820F911D0097D9F480E066
:1003800090E00BC02091E80025FF06C0FB01E80FBC
:10039000F91F20812093F10001968417950790F3AF
:1003A0008091E8008E7F8093E8008FE78093E800DB
:1003B00081E0089580E008951F920F920FB60F928A
:1003C00011248F938091E1001092E10083FF0FC010
:1003D0001092E90081E08093EB001092EC0082E142
:1003E0008093ED0088E08093F000109228018F91B7
:1003F0000F900FBE0F901F9018951F920F920FB67F
:100400000F921124DF92EF92FF920F931F932F937D
:100410003F934F935F936F937F938F939F93AF938C
:10042000BF93EF93FF93DF93CF93CDB7DEB72997B9
:10043000DEBFCDBF8091F40080FF66C11092E9005D
:100440008091E80083FF5DC15091F1005983409194
:10045000F1004A838091F1009091F100392F20E062
:1004600090E0822B932B9C838B836091F1007091A1
:10047000F100372F20E070E0622B732B7E836D83B9
:100480002091F1003091F100F32FE0E030E02E2BCD
:100490003F2B38872F83E2EFE093E800463009F0E6
:1004A000BAC043E08030940709F4A3C063E0813010
:1004B000960750F471E08030970789F0A2E0803011
:1004C0009A0709F05BC110C0B3E081309B0709F4C3
:1004D00098C0E3E082309E0709F050C197C06CEAF3
:1004E00070E0FB01449189C030E0E32E31E0F32E4F
:1004F000F701DD2480E090819F3F09F081E0D80E74
:10050000339621E0E231F207A9F747E0D49E402D6F
:1005100011244E5E842F90E049870E9440048C0194
:1005200089E0D8018C9392E011969C9311974985AC
:1005300012964C93129713961C92139791E014966F
:100540009C93149715969C93159716961C92169744
:1005500090E817969C93179799E118969C93189793
:10056000F801399619968C93199784E08183128249
:100570001382D4828FEF8583168287831086DD20D5
:1005800071F1F801729691E057E035E0D7018C9156
:100590008F3FF1F050833183282F2795222727950D
:1005A000292B2283813441F0803431F0813831F0BD
:1005B000803821F083E003C081E001C082E08383C2
:1005C000D70111968C9111978483158216823796E4
:1005D0009F5F63E070E0E60EF71E9730B9F62F815B
:1005E000388581E0B8010E940A01C8010E94E20436
:1005F000C8C06EEB70E0FB01449180E00E940A01EC
:10060000C0C062EC70E0FB014491F7CF68EE70E08F
:10061000FB014491F2CF453059F42EEF2093E800CE
:100620002091E80020FFFCCF80688093E300A9C000
:10063000493081F4552309F05CC08130910509F0FF
:100640009DC081E0809328018EEF8093E8000E9496
:10065000BB0097C0483061F4503809F04AC080911F
:10066000E80080FFFCCF809128018093F1001BC03F
:100670004423D9F48091E80080FFFCCF523811F078
:1006800080E00DC06093E9008091EB0090E025E0F0
:10069000969587952A95E1F781701092E9008093ED
:1006A000F1001092F1008EEF61C0413011F0433043
:1006B00001F55230F1F40097E1F46F77862F815005
:1006C0008630B8F48EEF8093E8006093E900433001
:1006D00009F454C089E18093EB0081E090E002C00E
:1006E000880F991F6A95E2F78093EA001092EA005A
:1006F00048C0CE0101960E940D04882309F041C034
:100700003DC081E28093EB0080E090E041E2082F61
:100710000F5F2091F400019630E0082E02C035955D
:1007200027950A94E2F720FF26C00093E900209164
:10073000E80022FF1EC03091F3002091F200932FB9
:1007400080E0820F911D009769F09091F3008091F5
:10075000F200792F60E0680F711D802F0E94E00386
:100760000093E90089EF8093E8008FE78093E80029
:1007700008C04093EB008630910549F681E28093F2
:10078000EB002996DEBFCDBFCF91DF91FF91EF91B6
:10079000BF91AF919F918F917F916F915F914F9199
:1007A0003F912F911F910F91FF90EF90DF900F904D
:1007B0000FBE0F901F9018950E94A5007894FFCF50
:1007C0000F931F93DF93CF93CDB7DEB7A0970FB6EC
:1007D000F894DEBF0FBECDBF8130A1F48E010F5F54
:1007E0001F4FB80140E250E00E944D01882351F0B4
:1007F00018A2C8010E94790582E8B80140E250E0E1
:100800000E94AC01A0960FB6F894DEBF0FBECDBF1C
:10081000CF91DF911F910F910895DF93CF93CDB7C3
:10082000DEB760970FB6F894DEBF0FBECDBFAC0148
:100830009E012F5F3F4FA2E1B1E09CE00D90F901D6
:1008400001929F019150D1F71D861E861F86188A3E
:10085000FA018081833C51F48181813039F4CE01E9
:10086000019660E10E94870181E001C080E060960E
:100870000FB6F894DEBF0FBECDBFCF91DF910895C4
:10088000EF92FF920F931F93CF93DF9382309105E6
:1008900010F482E090E0C0912B01D0912C0120E077
:1008A00030E040E050E029C068817981681779071D
:1008B000D8F06817790779F48A819B812115310571
:1008C00021F0F9019383828304C090932C018093DB
:1008D0002B01DE012AC04115510519F06417750777
:1008E00018F4FE01AB01D9019E017A816B81E72EDC
:1008F000E7017E01062FF62EE7012097A9F64115A4
:100900005105F9F0481B590B4430510580F48281A0
:100910009381109729F013969C938E93129704C09D
:1009200090932C0180932B01DF01129645C0DF01CB
:10093000A40FB51F8D939D93425050405183408327
:100940003BC02091290130912A012115310541F444
:10095000209124013091250130932A01209329010F
:1009600020912601309127012115310541F42DB741
:100970003EB74091220150912301241B350BA091D9
:100980002901B0912A01A217B307A0F42A1B3B0B3F
:100990002817390778F0AC014E5F5F4F24173507F1
:1009A00048F04A0F5B1F50932A01409329018D9311
:1009B0009D9302C0A0E0B0E0CD01CDB7DEB7E6E088
:1009C0000C948F05CF93DF93009709F48FC0FC013F
:1009D00032971382128260912B0170912C01611564
:1009E000710581F420813181280F391F80912901FF
:1009F00090912A018217930761F5F0932A01E09301
:100A0000290174C0EB0180E090E0CE17DF0740F4CD
:100A10002A813B81CE012115310501F1E901F5CF94
:100A2000D383C283DF014D915D919D01240F351F5A
:100A3000C217D30761F428813981240F351F2E5F37
:100A40003F4F318320832A813B8133832283009768
:100A500029F4F0932C01E0932B0148C0DC0113969C
:100A6000FC93EE931297EC0149915991C40FD51F55
:100A7000EC17FD0779F420813181240F351F2E5F9B
:100A80003F4F11963C932E932281338113963C93D2
:100A90002E931297E0E0F0E0DB0112968D919C918D
:100AA0001397009721F0E62FF72FBC01F5CF9B019C
:100AB0002E5F3F4FDB018D919C911197820F931F09
:100AC0004091290150912A014817590779F430972C
:100AD00029F410922C0110922B0102C01382128271
:100AE0002250304030932A0120932901DF91CF9189
:100AF0000895DC016C9161566A3108F0605E6F5BAD
:100B00006D93C1F708952A88398848885F846E8478
:100B10007D848C849B84AA84B984C884DF80EE8021
:100B2000FD800C811B81AA81B981CE0FD11D0FB62A
:100B3000F894DEBF0FBECDBFED010895F894FFCF4E
:100B4000802002812002FF2002FF2002FF2002FFFE
:100B5000200256657273696F6E20312E30000000DE
:080B6000000020002D0100003F
:00000001FF
+22
View File
@@ -0,0 +1,22 @@
/*
* 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
#include <util/delay.h>
#include <stdbool.h>
#include <avr/interrupt.h>
#include <string.h>
#endif /* CONFIG_H_ */
+49
View File
@@ -0,0 +1,49 @@
/*
* led.c
*
* Created: 06.10.2013 16:32:15
* Author: netz
*/
#include <avr/io.h>
#include "led.h"
void led(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);
}
void fade(int from, int to, int dur) {
for (int i=0;i<0xFF;i++) {
for(int k=0;k<dur;k++) {
for (int j=i;j<0xFF;j++) {
led(from);
}
for (int j=0;j<i;j++) {
led(to);
}
}
}
}
void led_rainbow(uint8_t t) {
fade(WHITE, RED, 10);
while(1) {
fade(RED, YELLOW, t);
fade(YELLOW, GREEN, t);
fade(GREEN, CYAN, t);
fade(CYAN, BLUE, t);
fade(BLUE, MAGENTA, t);
fade(MAGENTA, RED, t);
}
}
+28
View File
@@ -0,0 +1,28 @@
/*
* 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 led(int mask);
void fade(int from, int to, int dur);
void led_rainbow(uint8_t t);
#endif /* LED_H_ */
+38
View File
@@ -0,0 +1,38 @@
/*
* 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);
static FILE rs232 = FDEV_SETUP_STREAM(uart_putchar, NULL, _FDEV_SETUP_WRITE);
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)
}
void rs232_send(char * text) {
fprintf(&rs232, text);
}
+16
View File
@@ -0,0 +1,16 @@
/*
* rs232.h
*
* Created: 06.10.2013 16:34:17
* Author: netz
*/
#include <stdio.h>
#ifndef RS232_H_
#define RS232_H_
void init_rs232();
void rs232_send(char * text);
#endif /* RS232_H_ */
+81
View File
@@ -0,0 +1,81 @@
/*
* usb.c
*
* Created: 06.10.2013 21:42:35
* Author: netz
*/
#include "config.h"
#include <stdbool.h>
#include <string.h>
#include <stdio.h>
#include "usb_user_config.h" // USB configuration
#include "usb_user.h" // USB functions
#include "usb.h"
#ifdef USERDEFCONTROLS // see usbconfig.h
//-----------------------------------------------------------------------------
// Handle user defined control requests
// "ucr" contains the data of the control request
// function has to return "true", if request is handled (otherwise "false")
bool usb_controlrequest(struct usb_control_request *ucr) {
#define USER_REQUESTTYPE 0xC3 // a user defined request type (means, no standard request)
#define USER_REQUESTVERSION 0x01 // a self defined request: get version info
bool Result;
const char VersionInfo[ENDPOINT0_SIZE] = {"Version 1.0"};
Result=false;
if (ucr->bmRequestType == USER_REQUESTTYPE) {
// handle the requests (only one defined in this example)
switch (ucr->bRequest) {
case USER_REQUESTVERSION: // request for version info)
usb_txdata_control((uint8_t *)VersionInfo,sizeof(VersionInfo));
Result=true;
break;
}
}
return Result; // true means, request is handled
}
#endif
//-----------------------------------------------------------------------------
// handle of endpoint interrupt for incoming data
// "datasize" contains the number of bytes in the USB FIFO buffer
void usb_ep(uint8_t endpoint, uint16_t datasize) {
#define RXENDPOINT 0x01 // endpoint, used for data transfer host->device (defined in "usb_user_config.h")
#define TXENDPOINT 0x82 // endpoint, used for data transfer device->host
#define BUFSIZE 32 // USB FIFO buffer size (see usb_user_config.h at "endpoints")
char buf[BUFSIZE]; // buffer for received data from host and data to transmit to host
uint8_t n;
if (endpoint == RXENDPOINT) { // data from host by our defined data receive endpoint
n=usb_rxdata(endpoint, (uint8_t *)buf, sizeof(buf)); // read data into buffer
if (n) { // data read into local buffer
buf[BUFSIZE-1]=0; // for security: terminate string
//resi(buf);
strupr(buf); // upper case string
// response to host with converted string
usb_txdata(TXENDPOINT, (uint8_t *)buf, sizeof(buf)); // transfer data to host*/
}
}
}
void init_usb() {
usb_init();
}
void usb_send(char* text) {
#define RXENDPOINT 0x01
#define TXENDPOINT 0x82
#define ITENDPOINT 0x83
usb_txdata(TXENDPOINT, (uint8_t *)text, strlen(text));
}
uint8_t usb_getstatus() {
return usb_status();
}
uint8_t usb_ready() {
return usb_is_ready();
}
+21
View File
@@ -0,0 +1,21 @@
/*
* usb.h
*
* Created: 06.10.2013 21:42:01
* Author: netz
*/
#ifndef USB_H_
#define USB_H_
#include "usb_user.h"
void init_usb();
void usb_send(char * text);
uint8_t usb_getstatus();
uint8_t usb_ready();
void resi(char * text);
#endif /* USB_H_ */
+687
View File
@@ -0,0 +1,687 @@
/*****************************************************************************
USB-Template: User defined USB device
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
USB Function Implementation
Created: 2010-01-07
Changed: 2011-08-02
*****************************************************************************/
// Usually no changes are necessary in this file!
#include <stdlib.h>
#include <stdbool.h>
#include "usb_user_config.h"
#include "usb_user.h"
//-----------------------------------------------------------------------------
// 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
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;
// 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
//-----------------------------------------------------------------------------
#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
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); // bufer 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 STALL UECONX = _BV(STALLRQ) | _BV(EPEN)
static inline void usb_wait_in_ready(void)
{
while (!(UEINTX & _BV(TXINI)));
}
uint8_t usb_is_ready() {
return (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_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=0, 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
UERST = _BV(endpoint); // endpoint FIFO reset
UERST = 0;
}
}
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;
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
s = sizeof(cfg_desc)+NUMINTERFACES*sizeof(if_desc)+n*sizeof(ep_desc);
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 = 0xFF;
ifp->bInterfaceSubClass = 0x00;
ifp->bInterfaceProtocol = 0xFF;
ifp->iInterface = 0;
epp = (ep_desc *)((uint16_t)(ifp)+sizeof(if_desc));
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 = 0;
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) // Seriennummer im 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;
#if (NUMINTERFACES==1)
usb_endpoints(); // initialize endpoints
#else
usb_if = 0; // select interface 0
usb_endpoints(usb_if); // initialize endpoints
#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 == 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;
usb_endpoints(usb_if); // initialize endpoints
} 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 interrupts for further 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
}
}
STALL; // stall
}
+254
View File
@@ -0,0 +1,254 @@
/*****************************************************************************
USB-Template: User defined USB device
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
USB Header File
Created: 2010-01-07
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_user_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
//=============================================================================
// 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);
uint8_t usb_is_ready();
#endif
+244
View File
@@ -0,0 +1,244 @@
/*****************************************************************************
USB-Template: User defined USB device
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
USB Configuration
Created: 2010-01-07
Changed: 2011-03-12
*****************************************************************************/
// in this file you will make changes for your purposes
#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>
#include "config.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
//-----------------------------------------------------------------------------
// 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"000001" // your serial number, stored in flash memory
#endif
// Vendor ID
// set your vendor ID here
#define VENDOR_ID 0xDEAD // !!! THIS ID IS NOT FOR OFFICIAL USE, FOR YOUR PERSONAL TESTING PURPOSES ONLY !!!
// Product ID
// set your product ID here
#define PRODUCT_ID 0xBEEE // !!! THIS ID IS NOT FOR OFFICIAL USE, FOR YOUR PERSONAL TESTING PURPOSES ONLY !!!
// USB device class
// possible settings:
#define USBDEVICECLASS_USER 0xFF // user defined class
// set the class for your purposes
#define USBDEVICECLASS USBDEVICECLASS_USER
// power supply
#define SELFPOWERED 0x40
#define BUSPOWERED 0x80
#define POWERING SELFPOWERED | 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
//-----------------------------------------------------------------------------
// 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;
};
//-----------------------------------------------------------------------------
// 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 // we will use self defined control transfers in this example
#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
} ep_config;
// 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
#define NUMINTERFACES 2 // number of supported interfaces (1...3) (Endpoint configurations)
#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_BULK_OUT, 32, EP_SINGLE_BUFFER}, // one OUT and one IN endpoint with bulk transfer in this example
{EP_TYPE_BULK_IN, 32, EP_SINGLE_BUFFER},
{EP_TYPE_DISABLED, 32, EP_SINGLE_BUFFER},
{EP_TYPE_DISABLED, 32, EP_SINGLE_BUFFER}
#ifdef MEGA4_6 // the following endpoints are only available on ATMEGAxxU4 and AT90USB64x/128x controllers
,
{EP_TYPE_DISABLED, 32, EP_SINGLE_BUFFER},
{EP_TYPE_DISABLED, 32, EP_SINGLE_BUFFER}
#endif
#if (NUMINTERFACES>1)
},{
// modify the following lines for your purposes
{EP_TYPE_INTERRUPT_IN, 32, EP_SINGLE_BUFFER},
{EP_TYPE_DISABLED, 32, EP_SINGLE_BUFFER},
{EP_TYPE_DISABLED, 32, EP_SINGLE_BUFFER},
{EP_TYPE_DISABLED, 32, EP_SINGLE_BUFFER}
#ifdef MEGA4_6 // the following endpoints are only available on ATMEGAxxU4 and AT90USB64x/128x controllers
,
{EP_TYPE_DISABLED, 32, EP_SINGLE_BUFFER},
{EP_TYPE_DISABLED, 32, EP_SINGLE_BUFFER}
#endif
}
// more interfaces...
#if (NUMINTERFACES==3)
,{
// modify the following lines for your purposes
{EP_TYPE_DISABLED, 32, EP_SINGLE_BUFFER},
{EP_TYPE_DISABLED, 32, EP_SINGLE_BUFFER},
{EP_TYPE_DISABLED, 32, EP_SINGLE_BUFFER},
{EP_TYPE_DISABLED, 32, EP_SINGLE_BUFFER}
#ifdef MEGA4_6 // the following endpoints are only available on ATMEGAxxU4 and AT90USB64x/128x controllers
,
{EP_TYPE_DISABLED, 32, EP_SINGLE_BUFFER},
{EP_TYPE_DISABLED, 32, EP_SINGLE_BUFFER}
#endif
}
#endif
#endif
};
//-----------------------------------------------------------------------------
// 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