20131007-181002

This commit is contained in:
BlubbFish 2013-10-07 16:10:19 +00:00
parent ab01211c70
commit cb8cb8ec3b
61 changed files with 7843 additions and 0 deletions

20
Mainboard/Mainboard.atsln Normal file
View File

@ -0,0 +1,20 @@

Microsoft Visual Studio Solution File, Format Version 11.00
# Atmel Studio Solution File, Format Version 11.00
Project("{54F91283-7BC4-4236-8FF9-10F437C3AD48}") = "Mainboard", "Mainboard\Mainboard.cproj", "{839C4697-AB18-4132-8E80-F57DDB26ADEB}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|AVR = Debug|AVR
Release|AVR = Release|AVR
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{839C4697-AB18-4132-8E80-F57DDB26ADEB}.Debug|AVR.ActiveCfg = Debug|AVR
{839C4697-AB18-4132-8E80-F57DDB26ADEB}.Debug|AVR.Build.0 = Debug|AVR
{839C4697-AB18-4132-8E80-F57DDB26ADEB}.Release|AVR.ActiveCfg = Release|AVR
{839C4697-AB18-4132-8E80-F57DDB26ADEB}.Release|AVR.Build.0 = Release|AVR
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

BIN
Mainboard/Mainboard.atsuo Normal file

Binary file not shown.

View File

@ -0,0 +1,68 @@
Mainboard.d Mainboard.o: .././Mainboard.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 \
.././led.h .././rs232.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/stdio.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/include/stdarg.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/include/stddef.h \
.././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:
.././led.h:
.././rs232.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/stdio.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/include/stdarg.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/include/stddef.h:
.././usb.h:

View File

@ -0,0 +1 @@
:00000001FF

Binary file not shown.

View File

@ -0,0 +1,245 @@
:100000000C9461000C947E000C947E000C947E0095
:100010000C947E000C947E000C947E000C947E0068
:100020000C947E000C947E000C947E000C9434039F
:100030000C945C030C947E000C947E000C947E0067
:100040000C947E000C947E000C947E000C947E0038
:100050000C947E000C947E000C947E000C947E0028
:100060000C947E000C947E000C947E000C947E0018
:100070000C947E0012010002FF000010ADDEEEBE07
:1000800000010102030104030904140342006C008F
:10009000750062006200460069007300680000009D
:1000A00020034800610063006B00650072002D00B2
:1000B0004A0065006F007000610072006400790002
:1000C000000011241FBECFEFD4E0DEBFCDBF11E092
:1000D000A0E0B1E0E6EFFEE002C005900D92AE3385
:1000E000B107D9F721E0AEE3B1E001C01D92AA3417
:1000F000B207E1F70E9433010C9479070C940000D9
:1001000095B19F7195B995B18295880F807E982B96
:1001100095B9089584B1806E84B9089586E090E021
:100120000E94800078940E948A000E944E010E94E2
:10013000BA0108952F923F924F925F926F927F92F1
:100140008F929F92AF92BF92CF92DF92EF92FF92E7
:100150000F931F93CF93DF937C018B015A01C0E073
:10016000D0E0212C312C422C532C2CC0862C972CE7
:10017000C7010E9480008FEF881A980A8FEF8816B7
:100180009104B1F71C161D065CF4842C952CC80153
:100190000E9480008FEF881A980A8C169D06B9F786
:1001A0008FEFC81AD80ACA14DB0421F407C0610112
:1001B0006C2E7D2ECF3FD105CCF2E4CF2196CF3FE0
:1001C000D10521F01A141B0494F3F8CFDF91CF91DD
:1001D0001F910F91FF90EF90DF90CF90BF90AF9065
:1001E0009F908F907F906F905F904F903F902F9057
:1001F0000895C82F4AE050E064E070E087E090E0A6
:100200000E949A004C2F50E066E070E084E090E09D
:100210000E949A004C2F50E062E070E086E090E08F
:100220000E949A004C2F50E063E070E082E090E082
:100230000E949A004C2F50E061E070E083E090E073
:100240000E949A004C2F50E065E070E081E090E061
:100250000E949A004C2F50E064E070E085E090E04E
:100260000E949A00CFCF0E948E0082E090E00E9410
:1002700080008CE30E94F900CF93C82F8A3019F4D4
:100280008DE00E943C01E8ECF0E0908195FFFDCF0D
:10029000C093CE0080E090E0CF91089586E08093F7
:1002A000CA00E9ECF0E080818860808387E6809373
:1002B000CC0080E091E0909347018093460108953F
:1002C000CF93DF93CDB7DEB760970FB6F894DEBF5C
:1002D0000FBECDBF2CE0E5E1F1E0DE01119601900B
:1002E0000D922A95E1F71D861E861F86188AFC014D
:1002F0002081233C51F48181813049F460E1CE01B9
:1003000001960E94E20281E003C080E001C080E02B
:1003100060960FB6F894DEBF0FBECDBFDF91CF91D0
:100320000895CF93DF93CDB7DEB7A0970FB6F894BB
:10033000DEBF0FBECDBF8130A1F440E2BE016F5FD2
:100340007F4F0E94BD02882361F018A2CE01019662
:100350000E94540740E2BE016F5F7F4F81E80E9418
:100360000503A0960FB6F894DEBF0FBECDBFDF9198
:10037000CF9108950E94BD01089580EA8093D8002E
:1003800086E089BD09B400FEFDCF80E88093D800E7
:100390001092E00010923E018FEF80930E013C9886
:1003A00088E08093E20008952F923F924F925F92EF
:1003B0007F928F929F92AF92CF92DF92EF92FF92B5
:1003C0000F931F93CF93DF93282F90E06CE070E0A2
:1003D0000E940A06FC01EB5DFE4F822F90E06CE06C
:1003E00070E00E940A06895D9E4F41E00F2EF9EEF3
:1003F000CF2ED12CF02D0F2EFBEEEF2EF12CF02D69
:10040000AA24A3940CEE10E06DEE70E00F2EF0EF36
:100410004F2E512CF02D6894992492F8812C6894D9
:10042000772474F8DF0120812F3F59F1E6014883DA
:10043000E701A8822081E80128831C019C0121504A
:100440003109E9012881203841F0203441F020327F
:1004500041F0203141F4372D07C030E405C030E3CE
:1004600003C030E201C0382DE1012881232BEB01CC
:1004700028832C9120FF03C0D2011C9202C0E2010C
:1004800098824F5F33960396453061F6EAEEF0E0CE
:100490008EE180831082DF91CF911F910F91FF90A9
:1004A000EF90DF90CF90AF909F908F907F905F9074
:1004B0004F903F902F900895E8EEF0E08081857096
:1004C000E9F30895AF92BF92CF92DF92EF92FF923D
:1004D0000F931F93CF93DF93D82ED62FC72FE42FE0
:1004E000F0E02E173F0710F4C22E01C0C42E0E9468
:1004F0005C020D2F1C2F6894AA24A4F80F2EF8EE8E
:10050000EF2EF12CF02D0F2EFEEFBF2EF02DC1EFB0
:10051000D0E02C2D80E18C1508F42A2D2223D9F06F
:10052000F801922FDD2011F0808101C08491888331
:10053000915031969111F6CF622F615070E06F5F4C
:100540007F4F060F171FC21AF701B082C11007C0F4
:10055000203129F007C0F701B082CC2019F00E94A9
:100560005C02D7CFDF91CF911F910F91FF90EF9059
:10057000DF90CF90BF90AF9008958093E900909165
:10058000F200941708F4492F4423D1F0362FE62FB8
:10059000F72FA1EFB0E09C9191939E2F931B94179E
:1005A000D0F39091F20091110BC021E030E002C035
:1005B000220F331F8A95E2F7EAEEF0E020831082E3
:1005C000842F08956623E9F01092E900E8EEF0E048
:1005D000208120FFFDCF2091F200211114C0282F8F
:1005E000E82FF92FA1EFB0E081918C938E2F821B21
:1005F0008617D0F3E8EEF0E080818E7F808381E083
:10060000089580E0089580E00895CF93DF93442318
:1006100029F18093E900E8EEF0E0808180FFFDCFD2
:100620008091F20081111CC0962FE62FF72FA8EEC3
:10063000B0E0C1EFD0E08C9185FF02C0808188835B
:1006400031968E2F891B8417B0F3E8EEF0E080819D
:100650008E7F80838FE7808381E003C080E001C0CC
:1006600080E0DF91CF9108951F920F920FB60F9205
:1006700011248F93EF93FF93E1EEF0E080811082DD
:1006800083FF12C01092E90081E08093EB0010928A
:10069000EC0082E18093ED0088E08093F0001092FE
:1006A0003E018FEF80930E01FF91EF918F910F909C
:1006B0000FBE0F901F9018951F920F920FB60F92BA
:1006C00011243F924F925F926F927F928F929F92EE
:1006D000AF92BF92CF92DF92EF92FF920F931F9350
:1006E0002F933F934F935F936F937F938F939F933A
:1006F000AF93BF93EF93FF93CF93DF93CDB7DEB765
:100700002A97DEBFCDBF8091F40080FF4CC21092CB
:10071000E9008091E80083FF13C2E1EFF0E08081FF
:10072000898380818A83208130E03C832B834081D0
:10073000942F80E0822B932B9C838B83208130E04D
:100740003E832D834081942F80E0822B932B9E83C8
:100750008D83208130E038872F834081942F80E083
:10076000822B932B98878F8382EF8093E8008A8176
:10077000863009F024C18B819C81811523E092078A
:1007800009F4FBC048F4811551E0950779F0811513
:10079000924009F010C124C08130B3E09B0709F4F6
:1007A000F6C08230934009F006C1FBC0E4E7F0E0F8
:1007B00044912F813885BF0180E00E94620202C20D
:1007C0009A2F50815F3F09F49B2F490F8150339638
:1007D0008111F6CF2F5F3F4F2230310539F410C021
:1007E00020E030E040E014E0A1E0B0E0C9016CE0BE
:1007F00070E00E940A06FC01EB5DFE4F812FE0CF06
:10080000842F880F880F880F841B0F2EFBE1EF2E9B
:10081000F02DE80E8E2D90E00E941C06082F192F57
:1008200089E0D8018C9382E011968C9311971296EF
:10083000EC92129713961C92139714968C9314971C
:1008400081E015968C93159716961C92169780EC5E
:1008500017968C9317978AEF18968C93F801399610
:100860001A86198644E0A12C88248394F82C9A2CAB
:100870000F2EF9E07F2EF02DDD24DA940F2EF7E015
:10088000BF2EF02D0F2EF5E0CF2EF02D68946624AC
:1008900061F80F2EF3E05F2EF02D56C07F2DDC01A6
:1008A0002C912F3F09F4792D670F51500396511168
:1008B000F5CF70824183428213826483D58216828F
:1008C000D782108639966623C1F1832F932D6CE071
:1008D00070E00E940A069C012A5D3E4F482CC90127
:1008E000B90161507109DB015C915F3F01F1B08298
:1008F000C182652F679566276795642962835134A5
:1009000041F0503441F0513841F0503841F4562D07
:1009100007C05F2D05C05F2D03C0562D01C0552DAA
:100920005383DC018C91848315821682379643941D
:100930002D5F3F4FB5E04B12D2CFA985BA851196F6
:10094000BA87A987129771F04984342D3A84842D8F
:10095000932D6CE070E00E940A068B5D9E4F542F31
:100960006A2D9CCF2F8138854E2DB80181E00E94E1
:100970006202C8010E94B70625C1E6E8F0E0449192
:100980002F813885BF0180E00E9462021BC1EAE826
:10099000F0E044912F813885BF0180E00E9462021F
:1009A00011C1E0EAF0E044912F813885BF0180E079
:1009B0000E94620207C181E28093EB0003C185308F
:1009C00071F48EEF8093E800E8EEF0E0808180FF24
:1009D000FDCF8B819C8180688093E300F3C08930D8
:1009E000C1F49981911160C08B819C81019769F458
:1009F00081E080933E018EEF8093E80010920E011B
:100A000080910E010E94D401DDC081E28093EB0051
:100A1000D9C0883089F49981903809F057C0E8EE40
:100A2000F0E0808180FFFDCF80913E018093F10056
:100A30008EEF8093E800C6C081111CC0E8EEF0E0A4
:100A4000808180FFFDCF8981823859F48D81E9EE64
:100A5000F0E080838091EB0085FB882780F910828D
:100A600001C080E0E1EFF0E0808310828EEF8093A0
:100A7000E800A8C08B30C1F48981803211F0811167
:100A800055C08D819E818230910550F480930E0176
:100A90008EEF8093E80080910E010E94D40192C0F5
:100AA00081E28093EB008EC08A3081F489818038A6
:100AB000E9F5E8EEF0E0808180FFFDCF80910E0146
:100AC0008093F1008EEF8093E8007CC0813011F0BC
:100AD000833061F58981823049F58B819C81892B36
:100AE00029F58D819E818F779927382F31503430A9
:100AF000E8F43EEF3093E8008093E9002A81233048
:100B000021F481E28093EB005DC099E19093EB00CA
:100B100021E030E0F90102C0EE0FFF1F8A95E2F7F5
:100B2000CF01EAEEF0E0808310824CC0CE01019646
:100B30000E946001811146C081E28093EB0042C0B7
:100B400081E28093EB002FC0F22E408150E0022E14
:100B500002C0559547950A94E2F740FF1BC0DB01A0
:100B60002C93D6018C9182FF13C08091F2008823D0
:100B700041F06091F20070E0822F0E949101F092AA
:100B8000E900E8EEF0E089EF80838FE780831AC008
:100B9000D8019C932F5F3F4F25303105A9F681E2A4
:100BA0008093EB000FC021E030E0E4EFF0E069EE6D
:100BB00070E00F2EF8EECF2ED12CF02D0BEE10E0C2
:100BC00091E2C2CF2A960FB6F894DEBF0FBECDBF1A
:100BD000DF91CF91FF91EF91BF91AF919F918F9155
:100BE0007F916F915F914F913F912F911F910F9145
:100BF000FF90EF90DF90CF90BF90AF909F908F903D
:100C00007F906F905F904F903F900F900FBE0F902E
:100C10001F9018955527002480FF02C0060E571F0D
:100C2000660F771F6115710521F0969587950097DE
:100C300099F7952F802D08950F931F93CF93DF93EE
:100C40008230910510F482E090E0E0914201F09151
:100C5000430120E030E0C0E0D0E023C0408151817A
:100C600048175907A8F04817590761F48281938102
:100C7000209719F09B838A832EC090934301809321
:100C8000420129C02115310529F04217530710F000
:100C9000A90102C0BE01DF0102811381EF019A01A7
:100CA000F8013097D9F62115310509F1281B390BC8
:100CB0002430310590F412968D919C911397611513
:100CC000710521F0FB019383828304C0909343015B
:100CD00080934201FD01329644C0FD01E20FF31FF3
:100CE00081939193225031092D933C933AC02091E6
:100CF000400130914101232B41F4209111013091A9
:100D00001201309341012093400120910F01309155
:100D100010012115310541F42DB73EB74091130163
:100D200050911401241B350BE0914001F0914101D9
:100D3000E217F307A0F42E1B3F0B2817390778F0B2
:100D4000AC014E5F5F4F2417350748F04E0F5F1F11
:100D500050934101409340018193919302C0E0E0A0
:100D6000F0E0CF01DF91CF911F910F910895EF92A5
:100D7000FF920F931F93CF93DF93009709F48FC0D7
:100D8000DC01129713961C921E921297E09042017A
:100D9000F0904301E114F10489F42D913C911197F5
:100DA000280F391F809140019091410182179307CC
:100DB00089F5B0934101A093400171C0E70120E0A3
:100DC00030E001C0EA01CA17DB0738F44A815B81D1
:100DD0009E0141155105B1F722C0BC016250710955
:100DE000FB01D383C28300811181AC01400F511FED
:100DF0004C175D0761F448815981400F511F4E5FC8
:100E00005F4F518340834A815B8153834283211525
:100E1000310529F4B0934301A093420140C0F90188
:100E2000B383A283E90169917991C60FD71FAC17EB
:100E3000BD0779F4DC015E914E91460F571F4E5F5E
:100E40005F4F5183408312968D919C9113979383AA
:100E50008283A0E0B0E002C0D7017C01F70182816B
:100E600093810097C9F7C701029620813181820FD3
:100E7000931F20914001309141012817390779F4DF
:100E8000109729F4109243011092420104C0139666
:100E90001C921E921297F0924101E0924001CDB750
:100EA000DEB7E6E00C946A07DC016C9161566A31AA
:100EB00008F0605E6F5B6D93C1F708952A883988EA
:100EC00048885F846E847D848C849B84AA84B984E2
:100ED000C884DF80EE80FD800C811B81AA81B981EE
:100EE000CE0FD11D0FB6F894DEBF0FBECDBFED0102
:060EF0000895F894FFCF05
:100EF60000000002000000003C0100000000FF00AE
:100F0600004A01200056657273696F6E20312E30DB
:100F16000000000000802002812002FF2002FF2046
:0E0F260002FF2002FF2002FF2002FF20020037
:00000001FF

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,754 @@
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 0x00000000 0x0 Mainboard.o
.bss 0x00000000 0x0 Mainboard.o
.text 0x00000000 0x0 rs232.o
.bss 0x00000000 0x0 rs232.o
.text.rs232_send
0x00000000 0x1a rs232.o
.text 0x00000000 0x0 usb.o
.bss 0x00000000 0x0 usb.o
.text.usb_send
0x00000000 0xc usb.o
.text 0x00000000 0x0 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_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)
.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 0xef6
*(.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 0x4e usb_user.o
0x000000c2 . = ALIGN (0x2)
0x000000c2 __trampolines_start = .
*(.trampolines)
.trampolines 0x000000c2 0x0 linker stubs
*(.trampolines*)
0x000000c2 __trampolines_end = .
*(.jumptables)
*(.jumptables*)
*(.lowtext)
*(.lowtext*)
0x000000c2 __ctors_start = .
*(.ctors)
0x000000c2 __ctors_end = .
0x000000c2 __dtors_start = .
*(.dtors)
0x000000c2 __dtors_end = .
SORT(*)(.ctors)
SORT(*)(.dtors)
*(.init0)
.init0 0x000000c2 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
0x000000c2 __init
*(.init0)
*(.init1)
*(.init1)
*(.init2)
.init2 0x000000c2 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 0x000000ce 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)
0x000000ce __do_copy_data
.init4 0x000000e4 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)
0x000000e4 __do_clear_bss
*(.init4)
*(.init5)
*(.init5)
*(.init6)
*(.init6)
*(.init7)
*(.init7)
*(.init8)
*(.init8)
*(.init9)
.init9 0x000000f4 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 0x000000fc 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
0x000000fc __vector_22
0x000000fc __vector_28
0x000000fc __vector_1
0x000000fc __vector_24
0x000000fc __bad_interrupt
0x000000fc __vector_6
0x000000fc __vector_3
0x000000fc __vector_23
0x000000fc __vector_25
0x000000fc __vector_13
0x000000fc __vector_17
0x000000fc __vector_19
0x000000fc __vector_7
0x000000fc __vector_27
0x000000fc __vector_5
0x000000fc __vector_4
0x000000fc __vector_9
0x000000fc __vector_2
0x000000fc __vector_21
0x000000fc __vector_15
0x000000fc __vector_8
0x000000fc __vector_26
0x000000fc __vector_14
0x000000fc __vector_10
0x000000fc __vector_16
0x000000fc __vector_18
0x000000fc __vector_20
0x00000100 . = ALIGN (0x2)
*(.text.*)
.text.led 0x00000100 0x14 led.o
0x00000100 led
.text.init_led
0x00000114 0x8 led.o
0x00000114 init_led
.text.init 0x0000011c 0x18 Mainboard.o
0x0000011c init
.text.fade 0x00000134 0xbe Mainboard.o
0x00000134 fade
.text.programRainbow
0x000001f2 0x74 Mainboard.o
0x000001f2 programRainbow
.text.main 0x00000266 0x12 Mainboard.o
0x00000266 main
.text.uart_putchar
0x00000278 0x24 rs232.o
0x00000278 uart_putchar
.text.init_rs232
0x0000029c 0x24 rs232.o
0x0000029c init_rs232
.text.usb_controlrequest
0x000002c0 0x62 usb.o
0x000002c0 usb_controlrequest
.text.usb_ep 0x00000322 0x52 usb.o
0x00000322 usb_ep
.text.init_usb
0x00000374 0x6 usb.o
0x00000374 init_usb
.text.usb_init
0x0000037a 0x2e usb_user.o
0x0000037a usb_init
.text.usb_endpoints
0x000003a8 0x110 usb_user.o
0x000003a8 usb_endpoints
.text.usb_wait_in
0x000004b8 0xc usb_user.o
0x000004b8 usb_wait_in
.text.usb_desc_out
0x000004c4 0xb6 usb_user.o
0x000004c4 usb_desc_out
.text.usb_rxdata
0x0000057a 0x4a usb_user.o
0x0000057a usb_rxdata
.text.usb_txdata_control
0x000005c4 0x46 usb_user.o
0x000005c4 usb_txdata_control
.text.usb_txdata
0x0000060a 0x5e usb_user.o
0x0000060a usb_txdata
.text.__vector_11
0x00000668 0x50 usb_user.o
0x00000668 __vector_11
.text.__vector_12
0x000006b8 0x55c usb_user.o
0x000006b8 __vector_12
.text.libgcc.mul
0x00000c14 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)
0x00000c14 __mulhi3
.text.avr-libc
0x00000c38 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)
0x00000c38 malloc
0x00000d6e free
.text.avr-libc
0x00000ea8 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)
0x00000ea8 strupr
.text.libgcc.prologue
0x00000ebc 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)
0x00000ebc __epilogue_restores__
0x00000ef2 . = ALIGN (0x2)
*(.fini9)
.fini9 0x00000ef2 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)
0x00000ef2 _exit
0x00000ef2 exit
*(.fini9)
*(.fini8)
*(.fini8)
*(.fini7)
*(.fini7)
*(.fini6)
*(.fini6)
*(.fini5)
*(.fini5)
*(.fini4)
*(.fini4)
*(.fini3)
*(.fini3)
*(.fini2)
*(.fini2)
*(.fini1)
*(.fini1)
*(.fini0)
.fini0 0x00000ef2 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)
0x00000ef6 _etext = .
.data 0x00800100 0x3e load address 0x00000ef6
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 0xc
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
COMMON 0x00800144 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)
0x00800144 __iob
0x0080014a PROVIDE (__bss_end, .)
0x00000ef6 __data_load_start = LOADADDR (.data)
0x00000f34 __data_load_end = (__data_load_start + SIZEOF (.data))
.noinit 0x0080014a 0x0
0x0080014a PROVIDE (__noinit_start, .)
*(.noinit*)
0x0080014a PROVIDE (__noinit_end, .)
0x0080014a _end = .
0x0080014a 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 0x1f0
*(.debug_aranges)
.debug_aranges
0x00000000 0x28 led.o
.debug_aranges
0x00000028 0x38 Mainboard.o
.debug_aranges
0x00000060 0x30 rs232.o
.debug_aranges
0x00000090 0x38 usb.o
.debug_aranges
0x000000c8 0x88 usb_user.o
.debug_aranges
0x00000150 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
0x00000178 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
0x00000198 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
0x000001b0 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
0x000001d0 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 0x20ca
*(.debug_info)
.debug_info 0x00000000 0xb7 led.o
.debug_info 0x000000b7 0x34f Mainboard.o
.debug_info 0x00000406 0x232 rs232.o
.debug_info 0x00000638 0x41c usb.o
.debug_info 0x00000a54 0xa32 usb_user.o
.debug_info 0x00001486 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 0x000016c3 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 0x000018bf 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 0x00001a0d 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 0x00001f56 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 0xd9a
*(.debug_abbrev)
.debug_abbrev 0x00000000 0x85 led.o
.debug_abbrev 0x00000085 0x174 Mainboard.o
.debug_abbrev 0x000001f9 0x181 rs232.o
.debug_abbrev 0x0000037a 0x1b8 usb.o
.debug_abbrev 0x00000532 0x2ae usb_user.o
.debug_abbrev 0x000007e0 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 0x000008d9 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 0x00000a12 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 0x00000ad3 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 0x00000ca9 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 0x10cf
*(.debug_line)
.debug_line 0x00000000 0xe0 led.o
.debug_line 0x000000e0 0x178 Mainboard.o
.debug_line 0x00000258 0x107 rs232.o
.debug_line 0x0000035f 0x140 usb.o
.debug_line 0x0000049f 0x485 usb_user.o
.debug_line 0x00000924 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 0x00000aec 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 0x00000c36 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 0x00000cf7 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 0x00000ff5 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 0x510
*(.debug_frame)
.debug_frame 0x00000000 0x34 led.o
.debug_frame 0x00000034 0xb0 Mainboard.o
.debug_frame 0x000000e4 0x5c rs232.o
.debug_frame 0x00000140 0x74 usb.o
.debug_frame 0x000001b4 0x244 usb_user.o
.debug_frame 0x000003f8 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 0x00000460 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 0x0000048c 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 0x000004d8 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 0x74d
*(.debug_str)
.debug_str 0x00000000 0x9e led.o
0xd2 (size before relaxing)
.debug_str 0x0000009e 0x4c Mainboard.o
0x118 (size before relaxing)
.debug_str 0x000000ea 0x59 rs232.o
0x135 (size before relaxing)
.debug_str 0x00000143 0x158 usb.o
0x247 (size before relaxing)
.debug_str 0x0000029b 0x223 usb_user.o
0x43a (size before relaxing)
.debug_str 0x000004be 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 0x0000058b 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 0x00000604 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 0x0000064f 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 0x00000700 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 0x198b
*(.debug_loc)
.debug_loc 0x00000000 0x26 led.o
.debug_loc 0x00000026 0x27f Mainboard.o
.debug_loc 0x000002a5 0xee rs232.o
.debug_loc 0x00000393 0x1b9 usb.o
.debug_loc 0x0000054c 0x918 usb_user.o
.debug_loc 0x00000e64 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 0x0000135c 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 0x0000137d 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 0x00001898 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 0x190
*(.debug_ranges)
.debug_ranges 0x00000000 0x18 led.o
.debug_ranges 0x00000018 0x70 Mainboard.o
.debug_ranges 0x00000088 0x20 rs232.o
.debug_ranges 0x000000a8 0x28 usb.o
.debug_ranges 0x000000d0 0x78 usb_user.o
.debug_ranges 0x00000148 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 0x00000160 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 0x00000170 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 0x00000180 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

View File

@ -0,0 +1,246 @@
S01100004D61696E626F6172642E7372656386
S11300000C9461000C947E000C947E000C947E0091
S11300100C947E000C947E000C947E000C947E0064
S11300200C947E000C947E000C947E000C9434039B
S11300300C945C030C947E000C947E000C947E0063
S11300400C947E000C947E000C947E000C947E0034
S11300500C947E000C947E000C947E000C947E0024
S11300600C947E000C947E000C947E000C947E0014
S11300700C947E0012010002FF000010ADDEEEBE03
S113008000010102030104030904140342006C008B
S11300907500620062004600690073006800000099
S11300A020034800610063006B00650072002D00AE
S11300B04A0065006F0070006100720064007900FE
S11300C0000011241FBECFEFD4E0DEBFCDBF11E08E
S11300D0A0E0B1E0E6EFFEE002C005900D92AE3381
S11300E0B107D9F721E0AEE3B1E001C01D92AA3413
S11300F0B207E1F70E9433010C9479070C940000D5
S113010095B19F7195B995B18295880F807E982B92
S113011095B9089584B1806E84B9089586E090E01D
S11301200E94800078940E948A000E944E010E94DE
S1130130BA0108952F923F924F925F926F927F92ED
S11301408F929F92AF92BF92CF92DF92EF92FF92E3
S11301500F931F93CF93DF937C018B015A01C0E06F
S1130160D0E0212C312C422C532C2CC0862C972CE3
S1130170C7010E9480008FEF881A980A8FEF8816B3
S11301809104B1F71C161D065CF4842C952CC8014F
S11301900E9480008FEF881A980A8C169D06B9F782
S11301A08FEFC81AD80ACA14DB0421F407C061010E
S11301B06C2E7D2ECF3FD105CCF2E4CF2196CF3FDC
S11301C0D10521F01A141B0494F3F8CFDF91CF91D9
S11301D01F910F91FF90EF90DF90CF90BF90AF9061
S11301E09F908F907F906F905F904F903F902F9053
S11301F00895C82F4AE050E064E070E087E090E0A2
S11302000E949A004C2F50E066E070E084E090E099
S11302100E949A004C2F50E062E070E086E090E08B
S11302200E949A004C2F50E063E070E082E090E07E
S11302300E949A004C2F50E061E070E083E090E06F
S11302400E949A004C2F50E065E070E081E090E05D
S11302500E949A004C2F50E064E070E085E090E04A
S11302600E949A00CFCF0E948E0082E090E00E940C
S113027080008CE30E94F900CF93C82F8A3019F4D0
S11302808DE00E943C01E8ECF0E0908195FFFDCF09
S1130290C093CE0080E090E0CF91089586E08093F3
S11302A0CA00E9ECF0E080818860808387E680936F
S11302B0CC0080E091E0909347018093460108953B
S11302C0CF93DF93CDB7DEB760970FB6F894DEBF58
S11302D00FBECDBF2CE0E5E1F1E0DE011196019007
S11302E00D922A95E1F71D861E861F86188AFC0149
S11302F02081233C51F48181813049F460E1CE01B5
S113030001960E94E20281E003C080E001C080E027
S113031060960FB6F894DEBF0FBECDBFDF91CF91CC
S11303200895CF93DF93CDB7DEB7A0970FB6F894B7
S1130330DEBF0FBECDBF8130A1F440E2BE016F5FCE
S11303407F4F0E94BD02882361F018A2CE0101965E
S11303500E94540740E2BE016F5F7F4F81E80E9414
S11303600503A0960FB6F894DEBF0FBECDBFDF9194
S1130370CF9108950E94BD01089580EA8093D8002A
S113038086E089BD09B400FEFDCF80E88093D800E3
S11303901092E00010923E018FEF80930E013C9882
S11303A088E08093E20008952F923F924F925F92EB
S11303B07F928F929F92AF92CF92DF92EF92FF92B1
S11303C00F931F93CF93DF93282F90E06CE070E09E
S11303D00E940A06FC01EB5DFE4F822F90E06CE068
S11303E070E00E940A06895D9E4F41E00F2EF9EEEF
S11303F0CF2ED12CF02D0F2EFBEEEF2EF12CF02D65
S1130400AA24A3940CEE10E06DEE70E00F2EF0EF32
S11304104F2E512CF02D6894992492F8812C6894D5
S1130420772474F8DF0120812F3F59F1E6014883D6
S1130430E701A8822081E80128831C019C01215046
S11304403109E9012881203841F0203441F020327B
S113045041F0203141F4372D07C030E405C030E3CA
S113046003C030E201C0382DE1012881232BEB01C8
S113047028832C9120FF03C0D2011C9202C0E20108
S113048098824F5F33960396453061F6EAEEF0E0CA
S11304908EE180831082DF91CF911F910F91FF90A5
S11304A0EF90DF90CF90AF909F908F907F905F9070
S11304B04F903F902F900895E8EEF0E08081857092
S11304C0E9F30895AF92BF92CF92DF92EF92FF9239
S11304D00F931F93CF93DF93D82ED62FC72FE42FDC
S11304E0F0E02E173F0710F4C22E01C0C42E0E9464
S11304F05C020D2F1C2F6894AA24A4F80F2EF8EE8A
S1130500EF2EF12CF02D0F2EFEEFBF2EF02DC1EFAC
S1130510D0E02C2D80E18C1508F42A2D2223D9F06B
S1130520F801922FDD2011F0808101C0849188832D
S1130530915031969111F6CF622F615070E06F5F48
S11305407F4F060F171FC21AF701B082C11007C0F0
S1130550203129F007C0F701B082CC2019F00E94A5
S11305605C02D7CFDF91CF911F910F91FF90EF9055
S1130570DF90CF90BF90AF9008958093E900909161
S1130580F200941708F4492F4423D1F0362FE62FB4
S1130590F72FA1EFB0E09C9191939E2F931B94179A
S11305A0D0F39091F20091110BC021E030E002C031
S11305B0220F331F8A95E2F7EAEEF0E020831082DF
S11305C0842F08956623E9F01092E900E8EEF0E044
S11305D0208120FFFDCF2091F200211114C0282F8B
S11305E0E82FF92FA1EFB0E081918C938E2F821B1D
S11305F08617D0F3E8EEF0E080818E7F808381E07F
S1130600089580E0089580E00895CF93DF93442314
S113061029F18093E900E8EEF0E0808180FFFDCFCE
S11306208091F20081111CC0962FE62FF72FA8EEBF
S1130630B0E0C1EFD0E08C9185FF02C08081888357
S113064031968E2F891B8417B0F3E8EEF0E0808199
S11306508E7F80838FE7808381E003C080E001C0C8
S113066080E0DF91CF9108951F920F920FB60F9201
S113067011248F93EF93FF93E1EEF0E080811082D9
S113068083FF12C01092E90081E08093EB00109286
S1130690EC0082E18093ED0088E08093F0001092FA
S11306A03E018FEF80930E01FF91EF918F910F9098
S11306B00FBE0F901F9018951F920F920FB60F92B6
S11306C011243F924F925F926F927F928F929F92EA
S11306D0AF92BF92CF92DF92EF92FF920F931F934C
S11306E02F933F934F935F936F937F938F939F9336
S11306F0AF93BF93EF93FF93CF93DF93CDB7DEB761
S11307002A97DEBFCDBF8091F40080FF4CC21092C7
S1130710E9008091E80083FF13C2E1EFF0E08081FB
S1130720898380818A83208130E03C832B834081CC
S1130730942F80E0822B932B9C838B83208130E049
S11307403E832D834081942F80E0822B932B9E83C4
S11307508D83208130E038872F834081942F80E07F
S1130760822B932B98878F8382EF8093E8008A8172
S1130770863009F024C18B819C81811523E0920786
S113078009F4FBC048F4811551E0950779F081150F
S1130790924009F010C124C08130B3E09B0709F4F2
S11307A0F6C08230934009F006C1FBC0E4E7F0E0F4
S11307B044912F813885BF0180E00E94620202C209
S11307C09A2F50815F3F09F49B2F490F8150339634
S11307D08111F6CF2F5F3F4F2230310539F410C01D
S11307E020E030E040E014E0A1E0B0E0C9016CE0BA
S11307F070E00E940A06FC01EB5DFE4F812FE0CF02
S1130800842F880F880F880F841B0F2EFBE1EF2E97
S1130810F02DE80E8E2D90E00E941C06082F192F53
S113082089E0D8018C9382E011968C9311971296EB
S1130830EC92129713961C92139714968C93149718
S113084081E015968C93159716961C92169780EC5A
S113085017968C9317978AEF18968C93F80139960C
S11308601A86198644E0A12C88248394F82C9A2CA7
S11308700F2EF9E07F2EF02DDD24DA940F2EF7E011
S1130880BF2EF02D0F2EF5E0CF2EF02D68946624A8
S113089061F80F2EF3E05F2EF02D56C07F2DDC01A2
S11308A02C912F3F09F4792D670F51500396511164
S11308B0F5CF70824183428213826483D58216828B
S11308C0D782108639966623C1F1832F932D6CE06D
S11308D070E00E940A069C012A5D3E4F482CC90123
S11308E0B90161507109DB015C915F3F01F1B08294
S11308F0C182652F679566276795642962835134A1
S113090041F0503441F0513841F0503841F4562D03
S113091007C05F2D05C05F2D03C0562D01C0552DA6
S11309205383DC018C918483158216823796439419
S11309302D5F3F4FB5E04B12D2CFA985BA851196F2
S1130940BA87A987129771F04984342D3A84842D8B
S1130950932D6CE070E00E940A068B5D9E4F542F2D
S11309606A2D9CCF2F8138854E2DB80181E00E94DD
S11309706202C8010E94B70625C1E6E8F0E044918E
S11309802F813885BF0180E00E9462021BC1EAE822
S1130990F0E044912F813885BF0180E00E9462021B
S11309A011C1E0EAF0E044912F813885BF0180E075
S11309B00E94620207C181E28093EB0003C185308B
S11309C071F48EEF8093E800E8EEF0E0808180FF20
S11309D0FDCF8B819C8180688093E300F3C08930D4
S11309E0C1F49981911160C08B819C81019769F454
S11309F081E080933E018EEF8093E80010920E0117
S1130A0080910E010E94D401DDC081E28093EB004D
S1130A10D9C0883089F49981903809F057C0E8EE3C
S1130A20F0E0808180FFFDCF80913E018093F10052
S1130A308EEF8093E800C6C081111CC0E8EEF0E0A0
S1130A40808180FFFDCF8981823859F48D81E9EE60
S1130A50F0E080838091EB0085FB882780F9108289
S1130A6001C080E0E1EFF0E0808310828EEF80939C
S1130A70E800A8C08B30C1F48981803211F0811163
S1130A8055C08D819E818230910550F480930E0172
S1130A908EEF8093E80080910E010E94D40192C0F1
S1130AA081E28093EB008EC08A3081F489818038A2
S1130AB0E9F5E8EEF0E0808180FFFDCF80910E0142
S1130AC08093F1008EEF8093E8007CC0813011F0B8
S1130AD0833061F58981823049F58B819C81892B32
S1130AE029F58D819E818F779927382F31503430A5
S1130AF0E8F43EEF3093E8008093E9002A81233044
S1130B0021F481E28093EB005DC099E19093EB00C6
S1130B1021E030E0F90102C0EE0FFF1F8A95E2F7F1
S1130B20CF01EAEEF0E0808310824CC0CE01019642
S1130B300E946001811146C081E28093EB0042C0B3
S1130B4081E28093EB002FC0F22E408150E0022E10
S1130B5002C0559547950A94E2F740FF1BC0DB019C
S1130B602C93D6018C9182FF13C08091F2008823CC
S1130B7041F06091F20070E0822F0E949101F092A6
S1130B80E900E8EEF0E089EF80838FE780831AC004
S1130B90D8019C932F5F3F4F25303105A9F681E2A0
S1130BA08093EB000FC021E030E0E4EFF0E069EE69
S1130BB070E00F2EF8EECF2ED12CF02D0BEE10E0BE
S1130BC091E2C2CF2A960FB6F894DEBF0FBECDBF16
S1130BD0DF91CF91FF91EF91BF91AF919F918F9151
S1130BE07F916F915F914F913F912F911F910F9141
S1130BF0FF90EF90DF90CF90BF90AF909F908F9039
S1130C007F906F905F904F903F900F900FBE0F902A
S1130C101F9018955527002480FF02C0060E571F09
S1130C20660F771F6115710521F0969587950097DA
S1130C3099F7952F802D08950F931F93CF93DF93EA
S1130C408230910510F482E090E0E0914201F0914D
S1130C50430120E030E0C0E0D0E023C04081518176
S1130C6048175907A8F04817590761F482819381FE
S1130C70209719F09B838A832EC09093430180931D
S1130C80420129C02115310529F04217530710F0FC
S1130C90A90102C0BE01DF0102811381EF019A01A3
S1130CA0F8013097D9F62115310509F1281B390BC4
S1130CB02430310590F412968D919C91139761150F
S1130CC0710521F0FB019383828304C09093430157
S1130CD080934201FD01329644C0FD01E20FF31FEF
S1130CE081939193225031092D933C933AC02091E2
S1130CF0400130914101232B41F4209111013091A5
S1130D001201309341012093400120910F01309151
S1130D1010012115310541F42DB73EB7409113015F
S1130D2050911401241B350BE0914001F0914101D5
S1130D30E217F307A0F42E1B3F0B2817390778F0AE
S1130D40AC014E5F5F4F2417350748F04E0F5F1F0D
S1130D5050934101409340018193919302C0E0E09C
S1130D60F0E0CF01DF91CF911F910F910895EF92A1
S1130D70FF920F931F93CF93DF93009709F48FC0D3
S1130D80DC01129713961C921E921297E090420176
S1130D90F0904301E114F10489F42D913C911197F1
S1130DA0280F391F809140019091410182179307C8
S1130DB089F5B0934101A093400171C0E70120E09F
S1130DC030E001C0EA01CA17DB0738F44A815B81CD
S1130DD09E0141155105B1F722C0BC016250710951
S1130DE0FB01D383C28300811181AC01400F511FE9
S1130DF04C175D0761F448815981400F511F4E5FC4
S1130E005F4F518340834A815B8153834283211521
S1130E10310529F4B0934301A093420140C0F90184
S1130E20B383A283E90169917991C60FD71FAC17E7
S1130E30BD0779F4DC015E914E91460F571F4E5F5A
S1130E405F4F5183408312968D919C9113979383A6
S1130E508283A0E0B0E002C0D7017C01F701828167
S1130E6093810097C9F7C701029620813181820FCF
S1130E70931F20914001309141012817390779F4DB
S1130E80109729F4109243011092420104C0139662
S1130E901C921E921297F0924101E0924001CDB74C
S1130EA0DEB7E6E00C946A07DC016C9161566A31A6
S1130EB008F0605E6F5B6D93C1F708952A883988E6
S1130EC048885F846E847D848C849B84AA84B984DE
S1130ED0C884DF80EE80FD800C811B81AA81B981EA
S1130EE0CE0FD11D0FB6F894DEBF0FBECDBFED01FE
S1090EF00895F894FFCF01
S1130EF600000002000000003C0100000000FF00AA
S1130F06004A01200056657273696F6E20312E30D7
S1130F160000000000802002812002FF2002FF2042
S1110F2602FF2002FF2002FF2002FF20020033
S9030000FC

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"

View File

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

View File

@ -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

View File

@ -0,0 +1,63 @@
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/stdio.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/include/stdarg.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/include/stddef.h \
.././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/stdio.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/include/stdarg.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/include/stddef.h:
.././rs232.h:

View File

@ -0,0 +1,65 @@
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 \
.././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
.././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:
.././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:

View File

@ -0,0 +1,67 @@
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 \
.././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:
.././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:

View File

@ -0,0 +1,65 @@
/*
* Mainboard.c
*
* Created: 06.10.2013 19:12:35
* Author: netz
*/
#include "config.h"
//#include <avr/io.h>
#include "led.h"
#include "rs232.h"
#include "usb.h"
void init()
{
led(YELLOW);
sei();
init_led();
init_rs232();
init_usb();
}
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 programRainbow(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);
}
}
int main(void)
{
init();
led(GREEN);
char t[32];
while(1)
{
programRainbow(60);
t[0]=0; // clear response string buffer
sprintf(t, "test\r\n");
rs232_send(t);
usb_send(t);
}
}

View File

@ -0,0 +1,157 @@
<?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>
</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>

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

View File

@ -0,0 +1,21 @@
/*
* 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>
#endif /* CONFIG_H_ */

23
Mainboard/Mainboard/led.c Normal file
View File

@ -0,0 +1,23 @@
/*
* led.c
*
* Created: 06.10.2013 16:32:15
* Author: netz
*/
#include <avr/io.h>
void 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);
}

26
Mainboard/Mainboard/led.h Normal file
View File

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

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);
}

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_ */

68
Mainboard/Mainboard/usb.c Normal file
View File

@ -0,0 +1,68 @@
/*
* usb.c
*
* Created: 06.10.2013 21:42:35
* Author: netz
*/
#include "config.h"
#include <stdbool.h>
#include <string.h>
#include "usb_user_config.h" // USB configuration
#include "usb_user.h" // USB functions
#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 0x81 // 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
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 TXENDPOINT 0x81
usb_txdata(TXENDPOINT, (uint8_t *)text, sizeof(text));
}

17
Mainboard/Mainboard/usb.h Normal file
View File

@ -0,0 +1,17 @@
/*
* usb.h
*
* Created: 06.10.2013 21:42:01
* Author: netz
*/
#ifndef USB_H_
#define USB_H_
void init_usb();
void usb_send(char * text);
#endif /* USB_H_ */

View File

@ -0,0 +1,683 @@
/*****************************************************************************
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)));
}
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
}

View File

@ -0,0 +1,252 @@
/*****************************************************************************
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);
#endif

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 0 // Options: 0= no S/N; 1= S/N inside the flash memory; 2= S/N inside RAM
#if (USESN==1)
#define STR_SERIAL_NUMBER L"000000" // your serial number, stored in flash memory
#endif
// Vendor ID
// set your vendor ID here
#define VENDOR_ID 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_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
}
// 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

View File

@ -0,0 +1,167 @@
/*****************************************************************************
USB-Example: User defined USB device
V1.0.0
(c) 2011 Reusch Elektronik, Dipl.-Ing. (FH) Rainer Reusch
Homepage: http://products.reworld.eu/index.htm
Main Form
Borland C++Builder 6
Created: 2011-05-30
Changed: 2011-05-30
*****************************************************************************/
/*
This example uses the "LibUSB-Win32" library and driver collection, to communicate
with the USB device.
The example shows, how to use control transfers for the own usage.
It defines two additional endpoints for bulk transfer (write and read) of data.
*/
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "UnitMain.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TFormMain *FormMain;
//---------------------------------------------------------------------------
__fastcall TFormMain::TFormMain(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
usb_dev_handle * TFormMain::open_dev(void)
// open USB device with defined VID and PID
{
struct usb_bus *bus;
struct usb_device *dev;
for (bus = usb_get_busses(); bus; bus = bus->next) {
for (dev = bus->devices; dev; dev = dev->next) {
if ((dev->descriptor.idVendor==MY_VID)&&(dev->descriptor.idProduct==MY_PID)) {
return usb_open(dev);
}
}
}
return NULL;
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::FormCreate(TObject *Sender)
{
// USB initializations
dev=0;
usb_init(); // initialize the library
usb_find_busses(); // find all busses
usb_find_devices(); // find all connected devices
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::FormCloseQuery(TObject *Sender, bool &CanClose)
{
ButtonCloseClick(Sender);
CanClose=true;
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::FormDestroy(TObject *Sender)
{
//
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::ButtonOpenClick(TObject *Sender)
// open USB device
{
dev=open_dev();
if (dev) {
usb_set_configuration(dev, 1); // select 1st USB configuration
StatusBar1->SimpleText="USB device opened";
} else
StatusBar1->SimpleText="opening failed";
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::ButtonVersionClick(TObject *Sender)
// user defined control transfer
{
#define CONTROLBUFSIZE 16 // USB buffer size for control transfers
#define USER_REQUESTTYPE 0xC3 // a user defined request type with response (means, no standard request)
#define USER_REQUESTVERSION 0x01 // a self defined request: get version info
int r;
char buf[CONTROLBUFSIZE];
AnsiString s;
if (dev) {
r=usb_control_msg(dev,USER_REQUESTTYPE,USER_REQUESTVERSION,0,1,(char *)(&buf),sizeof(buf),100);
if (r>0) {
s.SetLength(strlen(buf));
strcpy(s.c_str(),buf);
LabelVersion->Caption=s;
StatusBar1->SimpleText="version info received";
}
}
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::ButtonTransferClick(TObject *Sender)
// transfer data to device and receive response
// (bulk transfer via user defined endpoints)
{
#define BUFSIZE 32 // USB buffer size (= max. data size for one data block)
#define EP_TODEVICE 0x01 // endpoint for data to device (OUT)
#define EP_FROMDEVICE 0x82 // endpoint for data from device (IN)
char buf[BUFSIZE];
int r;
AnsiString s;
if (dev) {
strcpy(buf,LabeledEdit1->Text.c_str());
usb_claim_interface(dev, 0); // select interface 0
r=usb_bulk_write(dev,EP_TODEVICE,buf,sizeof(buf),100); // output data
if (r>0) { // data was transmitted successfully, now wait for response
Sleep(100);
r=usb_bulk_read(dev,EP_FROMDEVICE,(char *)&buf,sizeof(buf),100);
if (r>0) { // data received from device
s.SetLength(strlen(buf));
strcpy(s.c_str(),buf);
LabelData->Caption=s;
StatusBar1->SimpleText="data sent and received";
} else { // error
LabelData->Caption="(no response)";
StatusBar1->SimpleText="no response from device";
}
}
usb_release_interface(dev, 0); // close pipe
}
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::ButtonCloseClick(TObject *Sender)
// close USB device
{
if (dev) {
usb_close(dev);
dev=NULL;
StatusBar1->SimpleText="USB device closed";
}
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::ButtonExitClick(TObject *Sender)
// exit program
{
Close();
}
//---------------------------------------------------------------------------

View File

@ -0,0 +1,121 @@
object FormMain: TFormMain
Left = 1154
Top = 299
BorderStyle = bsSingle
Caption = 'UxDIL - User Device Demo'
ClientHeight = 276
ClientWidth = 329
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
Position = poScreenCenter
OnCloseQuery = FormCloseQuery
OnCreate = FormCreate
OnDestroy = FormDestroy
PixelsPerInch = 96
TextHeight = 13
object Label1: TLabel
Left = 8
Top = 152
Width = 256
Height = 13
Caption = 'Received (converted) string from device (bulk transfer)'
end
object LabelData: TLabel
Left = 8
Top = 168
Width = 45
Height = 16
Caption = '(none)'
Font.Charset = DEFAULT_CHARSET
Font.Color = clHotLight
Font.Height = -13
Font.Name = 'MS Sans Serif'
Font.Style = [fsBold]
ParentFont = False
end
object LabelVersion: TLabel
Left = 216
Top = 48
Width = 9
Height = 16
Caption = '?'
Font.Charset = DEFAULT_CHARSET
Font.Color = clHotLight
Font.Height = -13
Font.Name = 'MS Sans Serif'
Font.Style = [fsBold]
ParentFont = False
end
object StatusBar1: TStatusBar
Left = 0
Top = 257
Width = 329
Height = 19
Panels = <>
SimplePanel = True
SimpleText = '(c) 2011 Reusch Elektronik'
end
object ButtonOpen: TButton
Left = 8
Top = 8
Width = 193
Height = 25
Caption = '&Open Device'
TabOrder = 1
OnClick = ButtonOpenClick
end
object ButtonVersion: TButton
Left = 8
Top = 40
Width = 193
Height = 25
Caption = 'Firmware &Version (control transfer)'
TabOrder = 2
OnClick = ButtonVersionClick
end
object LabeledEdit1: TLabeledEdit
Left = 8
Top = 88
Width = 289
Height = 21
EditLabel.Width = 77
EditLabel.Height = 13
EditLabel.Caption = 'String for device'
LabelPosition = lpAbove
LabelSpacing = 3
MaxLength = 31
TabOrder = 3
end
object ButtonClose: TButton
Left = 8
Top = 192
Width = 193
Height = 25
Caption = '&Close Device'
TabOrder = 4
OnClick = ButtonCloseClick
end
object ButtonExit: TButton
Left = 8
Top = 224
Width = 193
Height = 25
Caption = 'E&xit'
TabOrder = 5
OnClick = ButtonExitClick
end
object ButtonTransfer: TButton
Left = 8
Top = 120
Width = 193
Height = 25
Caption = 'Convert &String (bulk transfer)'
TabOrder = 6
OnClick = ButtonTransferClick
end
end

View File

@ -0,0 +1,64 @@
/*****************************************************************************
USB-Example: User defined USB device
V1.0.0
(c) 2011 Reusch Elektronik, Dipl.-Ing. (FH) Rainer Reusch
Homepage: http://products.reworld.eu/index.htm
Main Form
Borland C++Builder 6
Created: 2011-05-30
Changed: 2011-05-30
*****************************************************************************/
//---------------------------------------------------------------------------
#ifndef UnitMainH
#define UnitMainH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ComCtrls.hpp>
#include <ExtCtrls.hpp>
#include "usb.h"
#define MY_VID 0x0001 // Vendor ID of the device
#define MY_PID 0x0001 // Product ID of the device
//---------------------------------------------------------------------------
class TFormMain : public TForm
{
__published: // Von der IDE verwaltete Komponenten
TStatusBar *StatusBar1;
TButton *ButtonOpen;
TButton *ButtonVersion;
TLabeledEdit *LabeledEdit1;
TLabel *Label1;
TLabel *LabelData;
TButton *ButtonClose;
TLabel *LabelVersion;
TButton *ButtonExit;
TButton *ButtonTransfer;
void __fastcall FormCreate(TObject *Sender);
void __fastcall FormCloseQuery(TObject *Sender, bool &CanClose);
void __fastcall FormDestroy(TObject *Sender);
void __fastcall ButtonOpenClick(TObject *Sender);
void __fastcall ButtonVersionClick(TObject *Sender);
void __fastcall ButtonCloseClick(TObject *Sender);
void __fastcall ButtonExitClick(TObject *Sender);
void __fastcall ButtonTransferClick(TObject *Sender);
private: // Anwender-Deklarationen
struct usb_dev_handle *dev;
usb_dev_handle *open_dev(void);
public: // Anwender-Deklarationen
__fastcall TFormMain(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TFormMain *FormMain;
//---------------------------------------------------------------------------
#endif

View File

@ -0,0 +1,138 @@
<?xml version='1.0' encoding='utf-8' ?>
<!-- C++Builder XML Project -->
<PROJECT>
<MACROS>
<VERSION value="BCB.06.00"/>
<PROJECT value="UserDevice.exe"/>
<OBJFILES value="UserDevice.obj UnitMain.obj"/>
<RESFILES value="UserDevice.res"/>
<IDLFILES value=""/>
<IDLGENFILES value=""/>
<DEFFILE value=""/>
<RESDEPEN value="$(RESFILES) UnitMain.dfm"/>
<LIBFILES value="libusb.lib"/>
<LIBRARIES value="rtl.lib vcl.lib"/>
<SPARELIBS value="vcl.lib rtl.lib"/>
<PACKAGES value="vcl.bpi rtl.bpi dbrtl.bpi adortl.bpi vcldb.bpi vclx.bpi bdertl.bpi
vcldbx.bpi ibxpress.bpi dsnap.bpi cds.bpi bdecds.bpi qrpt.bpi teeui.bpi
teedb.bpi tee.bpi dss.bpi teeqr.bpi visualclx.bpi visualdbclx.bpi
dsnapcrba.bpi dsnapcon.bpi bcbsmp.bpi vclie.bpi xmlrtl.bpi inet.bpi
inetdbbde.bpi inetdbxpress.bpi inetdb.bpi nmfast.bpi webdsnap.bpi
bcbie.bpi websnap.bpi soaprtl.bpi dclocx.bpi dbexpress.bpi dbxcds.bpi
indy.bpi bcb2kaxserver.bpi toolbox2.bpi"/>
<PATHCPP value=".;"/>
<PATHPAS value=".;"/>
<PATHRC value=".;"/>
<PATHASM value=".;"/>
<DEBUGLIBPATH value="$(BCB)\lib\debug"/>
<RELEASELIBPATH value="$(BCB)\lib\release"/>
<LINKER value="ilink32"/>
<USERDEFINES value="_DEBUG"/>
<SYSDEFINES value="NO_STRICT"/>
<MAINSOURCE value="UserDevice.cpp"/>
<INCLUDEPATH value="..\..;UxDIL_Examples\UserDevice;$(BCB)\include;$(BCB)\include\vcl"/>
<LIBPATH value="..\..;UxDIL_Examples\UserDevice;$(BCB)\Projects\Lib;$(BCB)\lib\obj;$(BCB)\lib"/>
<WARNINGS value="-w-par"/>
<OTHERFILES value=""/>
</MACROS>
<OPTIONS>
<IDLCFLAGS value="-I..\.. -IUxDIL_Examples\UserDevice -I$(BCB)\include -I$(BCB)\include\vcl
-src_suffix cpp -D_DEBUG -boa"/>
<CFLAG1 value="-Od -H=$(BCB)\lib\vcl60.csm -Hc -Vx -Ve -X- -r- -a8 -6 -b- -k -y -v -vi-
-c -tW -tWM"/>
<PFLAGS value="-$YD -$W -$O- -$A8 -v -JPHNE -M"/>
<RFLAGS value=""/>
<AFLAGS value="/mx /w2 /zd"/>
<LFLAGS value="-D&quot;&quot; -aa -Tpe -x -Gn -v"/>
<OTHERFILES value=""/>
</OPTIONS>
<LINKER>
<ALLOBJ value="c0w32.obj sysinit.obj $(OBJFILES)"/>
<ALLRES value="$(RESFILES)"/>
<ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cp32mt.lib"/>
<OTHERFILES value=""/>
</LINKER>
<FILELIST>
<FILE FILENAME="UserDevice.res" FORMNAME="" UNITNAME="UserDevice.res" CONTAINERID="ResTool" DESIGNCLASS="" LOCALCOMMAND=""/>
<FILE FILENAME="UserDevice.cpp" FORMNAME="" UNITNAME="UserDevice" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
<FILE FILENAME="UnitMain.cpp" FORMNAME="FormMain" UNITNAME="UnitMain" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
<FILE FILENAME="libusb.lib" FORMNAME="" UNITNAME="libusb.lib" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
</FILELIST>
<BUILDTOOLS>
</BUILDTOOLS>
<IDEOPTIONS>
[Version Info]
IncludeVerInfo=0
AutoIncBuild=0
MajorVer=1
MinorVer=0
Release=0
Build=0
Debug=0
PreRelease=0
Special=0
Private=0
DLL=0
Locale=1031
CodePage=1252
[Version Info Keys]
CompanyName=
FileDescription=
FileVersion=1.0.0.0
InternalName=
LegalCopyright=
LegalTrademarks=
OriginalFilename=
ProductName=
ProductVersion=1.0.0.0
Comments=
[HistoryLists\hlIncludePath]
Count=1
Item0=..\..;UxDIL_Examples\UserDevice;$(BCB)\include;$(BCB)\include\vcl
[HistoryLists\hlLibraryPath]
Count=1
Item0=..\..;UxDIL_Examples\UserDevice;$(BCB)\Projects\Lib;$(BCB)\lib\obj;$(BCB)\lib
[HistoryLists\hlDebugSourcePath]
Count=1
Item0=$(BCB)\source\vcl
[HistoryLists\hlConditionals]
Count=1
Item0=_DEBUG
[Debugging]
DebugSourceDirs=$(BCB)\source\vcl
[Parameters]
RunParams=
Launcher=
UseLauncher=0
DebugCWD=
HostApplication=
RemoteHost=
RemotePath=
RemoteLauncher=
RemoteCWD=
RemoteDebug=0
[Compiler]
ShowInfoMsgs=0
LinkDebugVcl=0
LinkCGLIB=0
[CORBA]
AddServerUnit=1
AddClientUnit=1
PrecompiledHeaders=1
[Language]
ActiveLang=
ProjectLang=
RootDir=
</IDEOPTIONS>
</PROJECT>

View File

@ -0,0 +1,51 @@
/*****************************************************************************
USB-Example: User defined USB device
V1.0.0
(c) 2011 Reusch Elektronik, Dipl.-Ing. (FH) Rainer Reusch
Homepage: http://products.reworld.eu/index.htm
Main program
Borland C++Builder 6
Created: 2011-05-30
Changed: 2011-05-30
*****************************************************************************/
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
//---------------------------------------------------------------------------
USEFORM("UnitMain.cpp", FormMain);
//---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
try
{
Application->Initialize();
Application->Title = "User Device Demo";
Application->CreateForm(__classid(TFormMain), &FormMain);
Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
catch (...)
{
try
{
throw Exception("");
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
}
return 0;
}
//---------------------------------------------------------------------------

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,3 @@
This file will contain the digital signature of the files to be installed
on the system.
This file will be provided by Microsoft upon certification of your drivers.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,27 @@
libusb-win32-bin v1.2.4.0 (04/08/2011) - [Package Information]
ALL ARCHITECTURES:
x86\libusb0_x86.dll: x86 32-bit library. Must be renamed to libusb0.dll
On 64 bit, Installs to Windows\syswow64\libusb0.dll.
On 32 bit, Installs to Windows\system32\libusb0.dll.
x86\inf-wizard.exe: inf-wizard application with embedded libusb-win32
v1.2.4.0 binaries.
X86 ONLY ARCHITECTURES:
x86\libusb0.sys: x86 32-bit driver.
Installs to Windows\system32\drivers\libusb0.sys
AMD64-INTEL64 ONLY ARCHITECTURES:
amd64\libusb0.sys: x64 64-bit driver.
Installs to Windows\system32\drivers\libusb0.sys
amd64\libusb0.dll: x64 64-bit library.
Installs to Windows\system32\libusb0.dll
IA64 ONLY ARCHITECTURES:
ia64\libusb0.sys: IA64 64-bit driver.
Installs to Windows\system32\drivers\libusb0.sys
ia64\libusb0.dll: IA64 64-bit library.
Installs to Windows\system32\libusb0.dll

View File

@ -0,0 +1,851 @@
Copyright (c) 2002-2004 Stephan Meyer, <ste_meyer@web.de>
Copyright (c) 2000-2004 Johannes Erdfelt, <johannes@erdfelt.com>
Copyright (c) 2000-2004 Thomas Sailer, <sailer@ife.ee.ethz.ch>
Copyright (c) 2010 Travis Robinson, <libusbdotnet@gmail.com>
This software is distributed under the following licenses:
Driver: GNU General Public License (GPL)
Library, Test Files, Installer: GNU Lesser General Public License (LGPL)
***********************************************************************
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users. We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors. You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights. Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received. You must make sure that they, too, receive
or can get the source code. And you must show them these terms so they
know their rights.
Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.
For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software. For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.
Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so. This is fundamentally incompatible with the aim of
protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable. Therefore, we
have designed this version of the GPL to prohibit the practice for those
products. If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary. To prevent this, the GPL assures that
patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
<program> Copyright (C) <year> <name of author>
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<http://www.gnu.org/licenses/>.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
GNU LESSER GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
This version of the GNU Lesser General Public License incorporates
the terms and conditions of version 3 of the GNU General Public
License, supplemented by the additional permissions listed below.
0. Additional Definitions.
As used herein, "this License" refers to version 3 of the GNU Lesser
General Public License, and the "GNU GPL" refers to version 3 of the GNU
General Public License.
"The Library" refers to a covered work governed by this License,
other than an Application or a Combined Work as defined below.
An "Application" is any work that makes use of an interface provided
by the Library, but which is not otherwise based on the Library.
Defining a subclass of a class defined by the Library is deemed a mode
of using an interface provided by the Library.
A "Combined Work" is a work produced by combining or linking an
Application with the Library. The particular version of the Library
with which the Combined Work was made is also called the "Linked
Version".
The "Minimal Corresponding Source" for a Combined Work means the
Corresponding Source for the Combined Work, excluding any source code
for portions of the Combined Work that, considered in isolation, are
based on the Application, and not on the Linked Version.
The "Corresponding Application Code" for a Combined Work means the
object code and/or source code for the Application, including any data
and utility programs needed for reproducing the Combined Work from the
Application, but excluding the System Libraries of the Combined Work.
1. Exception to Section 3 of the GNU GPL.
You may convey a covered work under sections 3 and 4 of this License
without being bound by section 3 of the GNU GPL.
2. Conveying Modified Versions.
If you modify a copy of the Library, and, in your modifications, a
facility refers to a function or data to be supplied by an Application
that uses the facility (other than as an argument passed when the
facility is invoked), then you may convey a copy of the modified
version:
a) under this License, provided that you make a good faith effort to
ensure that, in the event an Application does not supply the
function or data, the facility still operates, and performs
whatever part of its purpose remains meaningful, or
b) under the GNU GPL, with none of the additional permissions of
this License applicable to that copy.
3. Object Code Incorporating Material from Library Header Files.
The object code form of an Application may incorporate material from
a header file that is part of the Library. You may convey such object
code under terms of your choice, provided that, if the incorporated
material is not limited to numerical parameters, data structure
layouts and accessors, or small macros, inline functions and templates
(ten or fewer lines in length), you do both of the following:
a) Give prominent notice with each copy of the object code that the
Library is used in it and that the Library and its use are
covered by this License.
b) Accompany the object code with a copy of the GNU GPL and this license
document.
4. Combined Works.
You may convey a Combined Work under terms of your choice that,
taken together, effectively do not restrict modification of the
portions of the Library contained in the Combined Work and reverse
engineering for debugging such modifications, if you also do each of
the following:
a) Give prominent notice with each copy of the Combined Work that
the Library is used in it and that the Library and its use are
covered by this License.
b) Accompany the Combined Work with a copy of the GNU GPL and this license
document.
c) For a Combined Work that displays copyright notices during
execution, include the copyright notice for the Library among
these notices, as well as a reference directing the user to the
copies of the GNU GPL and this license document.
d) Do one of the following:
0) Convey the Minimal Corresponding Source under the terms of this
License, and the Corresponding Application Code in a form
suitable for, and under terms that permit, the user to
recombine or relink the Application with a modified version of
the Linked Version to produce a modified Combined Work, in the
manner specified by section 6 of the GNU GPL for conveying
Corresponding Source.
1) Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (a) uses at run time
a copy of the Library already present on the user's computer
system, and (b) will operate properly with a modified version
of the Library that is interface-compatible with the Linked
Version.
e) Provide Installation Information, but only if you would otherwise
be required to provide such information under section 6 of the
GNU GPL, and only to the extent that such information is
necessary to install and execute a modified version of the
Combined Work produced by recombining or relinking the
Application with a modified version of the Linked Version. (If
you use option 4d0, the Installation Information must accompany
the Minimal Corresponding Source and Corresponding Application
Code. If you use option 4d1, you must provide the Installation
Information in the manner specified by section 6 of the GNU GPL
for conveying Corresponding Source.)
5. Combined Libraries.
You may place library facilities that are a work based on the
Library side by side in a single library together with other library
facilities that are not Applications and are not covered by this
License, and convey such a combined library under terms of your
choice, if you do both of the following:
a) Accompany the combined library with a copy of the same work based
on the Library, uncombined with any other library facilities,
conveyed under the terms of this License.
b) Give prominent notice with the combined library that part of it
is a work based on the Library, and explaining where to find the
accompanying uncombined form of the same work.
6. Revised Versions of the GNU Lesser General Public License.
The Free Software Foundation may publish revised and/or new versions
of the GNU Lesser General Public License from time to time. Such new
versions will be similar in spirit to the present version, but may
differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the
Library as you received it specifies that a certain numbered version
of the GNU Lesser General Public License "or any later version"
applies to it, you have the option of following the terms and
conditions either of that published version or of any later version
published by the Free Software Foundation. If the Library as you
received it does not specify a version number of the GNU Lesser
General Public License, you may choose any version of the GNU Lesser
General Public License ever published by the Free Software Foundation.
If the Library as you received it specifies that a proxy can decide
whether future versions of the GNU Lesser General Public License shall
apply, that proxy's public statement of acceptance of any version is
permanent authorization for you to choose that version for the
Library.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

394
Mainboard/Windows/usb.h Normal file
View File

@ -0,0 +1,394 @@
#ifndef __USB_H__
#define __USB_H__
#include <stdlib.h>
#include <windows.h>
/*
* 'interface' is defined somewhere in the Windows header files. This macro
* is deleted here to avoid conflicts and compile errors.
*/
#ifdef interface
#undef interface
#endif
/*
* PATH_MAX from limits.h can't be used on Windows if the dll and
* import libraries are build/used by different compilers
*/
#define LIBUSB_PATH_MAX 512
/*
* USB spec information
*
* This is all stuff grabbed from various USB specs and is pretty much
* not subject to change
*/
/*
* Device and/or Interface Class codes
*/
#define USB_CLASS_PER_INTERFACE 0 /* for DeviceClass */
#define USB_CLASS_AUDIO 1
#define USB_CLASS_COMM 2
#define USB_CLASS_HID 3
#define USB_CLASS_PRINTER 7
#define USB_CLASS_MASS_STORAGE 8
#define USB_CLASS_HUB 9
#define USB_CLASS_DATA 10
#define USB_CLASS_VENDOR_SPEC 0xff
/*
* Descriptor types
*/
#define USB_DT_DEVICE 0x01
#define USB_DT_CONFIG 0x02
#define USB_DT_STRING 0x03
#define USB_DT_INTERFACE 0x04
#define USB_DT_ENDPOINT 0x05
#define USB_DT_HID 0x21
#define USB_DT_REPORT 0x22
#define USB_DT_PHYSICAL 0x23
#define USB_DT_HUB 0x29
/*
* Descriptor sizes per descriptor type
*/
#define USB_DT_DEVICE_SIZE 18
#define USB_DT_CONFIG_SIZE 9
#define USB_DT_INTERFACE_SIZE 9
#define USB_DT_ENDPOINT_SIZE 7
#define USB_DT_ENDPOINT_AUDIO_SIZE 9 /* Audio extension */
#define USB_DT_HUB_NONVAR_SIZE 7
/* ensure byte-packed structures */
#include <pshpack1.h>
/* All standard descriptors have these 2 fields in common */
struct usb_descriptor_header {
unsigned char bLength;
unsigned char bDescriptorType;
};
/* String descriptor */
struct usb_string_descriptor {
unsigned char bLength;
unsigned char bDescriptorType;
unsigned short wData[1];
};
/* HID descriptor */
struct usb_hid_descriptor {
unsigned char bLength;
unsigned char bDescriptorType;
unsigned short bcdHID;
unsigned char bCountryCode;
unsigned char bNumDescriptors;
};
/* Endpoint descriptor */
#define USB_MAXENDPOINTS 32
struct usb_endpoint_descriptor {
unsigned char bLength;
unsigned char bDescriptorType;
unsigned char bEndpointAddress;
unsigned char bmAttributes;
unsigned short wMaxPacketSize;
unsigned char bInterval;
unsigned char bRefresh;
unsigned char bSynchAddress;
unsigned char *extra; /* Extra descriptors */
int extralen;
};
#define USB_ENDPOINT_ADDRESS_MASK 0x0f /* in bEndpointAddress */
#define USB_ENDPOINT_DIR_MASK 0x80
#define USB_ENDPOINT_TYPE_MASK 0x03 /* in bmAttributes */
#define USB_ENDPOINT_TYPE_CONTROL 0
#define USB_ENDPOINT_TYPE_ISOCHRONOUS 1
#define USB_ENDPOINT_TYPE_BULK 2
#define USB_ENDPOINT_TYPE_INTERRUPT 3
/* Interface descriptor */
#define USB_MAXINTERFACES 32
struct usb_interface_descriptor {
unsigned char bLength;
unsigned char bDescriptorType;
unsigned char bInterfaceNumber;
unsigned char bAlternateSetting;
unsigned char bNumEndpoints;
unsigned char bInterfaceClass;
unsigned char bInterfaceSubClass;
unsigned char bInterfaceProtocol;
unsigned char iInterface;
struct usb_endpoint_descriptor *endpoint;
unsigned char *extra; /* Extra descriptors */
int extralen;
};
#define USB_MAXALTSETTING 128 /* Hard limit */
struct usb_interface {
struct usb_interface_descriptor *altsetting;
int num_altsetting;
};
/* Configuration descriptor information.. */
#define USB_MAXCONFIG 8
struct usb_config_descriptor {
unsigned char bLength;
unsigned char bDescriptorType;
unsigned short wTotalLength;
unsigned char bNumInterfaces;
unsigned char bConfigurationValue;
unsigned char iConfiguration;
unsigned char bmAttributes;
unsigned char MaxPower;
struct usb_interface *interface;
unsigned char *extra; /* Extra descriptors */
int extralen;
};
/* Device descriptor */
struct usb_device_descriptor {
unsigned char bLength;
unsigned char bDescriptorType;
unsigned short bcdUSB;
unsigned char bDeviceClass;
unsigned char bDeviceSubClass;
unsigned char bDeviceProtocol;
unsigned char bMaxPacketSize0;
unsigned short idVendor;
unsigned short idProduct;
unsigned short bcdDevice;
unsigned char iManufacturer;
unsigned char iProduct;
unsigned char iSerialNumber;
unsigned char bNumConfigurations;
};
struct usb_ctrl_setup {
unsigned char bRequestType;
unsigned char bRequest;
unsigned short wValue;
unsigned short wIndex;
unsigned short wLength;
};
/*
* Standard requests
*/
#define USB_REQ_GET_STATUS 0x00
#define USB_REQ_CLEAR_FEATURE 0x01
/* 0x02 is reserved */
#define USB_REQ_SET_FEATURE 0x03
/* 0x04 is reserved */
#define USB_REQ_SET_ADDRESS 0x05
#define USB_REQ_GET_DESCRIPTOR 0x06
#define USB_REQ_SET_DESCRIPTOR 0x07
#define USB_REQ_GET_CONFIGURATION 0x08
#define USB_REQ_SET_CONFIGURATION 0x09
#define USB_REQ_GET_INTERFACE 0x0A
#define USB_REQ_SET_INTERFACE 0x0B
#define USB_REQ_SYNCH_FRAME 0x0C
#define USB_TYPE_STANDARD (0x00 << 5)
#define USB_TYPE_CLASS (0x01 << 5)
#define USB_TYPE_VENDOR (0x02 << 5)
#define USB_TYPE_RESERVED (0x03 << 5)
#define USB_RECIP_DEVICE 0x00
#define USB_RECIP_INTERFACE 0x01
#define USB_RECIP_ENDPOINT 0x02
#define USB_RECIP_OTHER 0x03
/*
* Various libusb API related stuff
*/
#define USB_ENDPOINT_IN 0x80
#define USB_ENDPOINT_OUT 0x00
/* Error codes */
#define USB_ERROR_BEGIN 500000
/*
* This is supposed to look weird. This file is generated from autoconf
* and I didn't want to make this too complicated.
*/
#define USB_LE16_TO_CPU(x)
/* Data types */
/* struct usb_device; */
/* struct usb_bus; */
struct usb_device {
struct usb_device *next, *prev;
char filename[LIBUSB_PATH_MAX];
struct usb_bus *bus;
struct usb_device_descriptor descriptor;
struct usb_config_descriptor *config;
void *dev; /* Darwin support */
unsigned char devnum;
unsigned char num_children;
struct usb_device **children;
};
struct usb_bus {
struct usb_bus *next, *prev;
char dirname[LIBUSB_PATH_MAX];
struct usb_device *devices;
unsigned long location;
struct usb_device *root_dev;
};
/* Version information, Windows specific */
struct usb_version {
struct {
int major;
int minor;
int micro;
int nano;
} dll;
struct {
int major;
int minor;
int micro;
int nano;
} driver;
};
struct usb_dev_handle;
typedef struct usb_dev_handle usb_dev_handle;
/* Variables */
#ifndef __USB_C__
#define usb_busses usb_get_busses()
#endif
#include <poppack.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Function prototypes */
/* usb.c */
usb_dev_handle *usb_open(struct usb_device *dev);
int usb_close(usb_dev_handle *dev);
int usb_get_string(usb_dev_handle *dev, int index, int langid, char *buf,
size_t buflen);
int usb_get_string_simple(usb_dev_handle *dev, int index, char *buf,
size_t buflen);
/* descriptors.c */
int usb_get_descriptor_by_endpoint(usb_dev_handle *udev, int ep,
unsigned char type, unsigned char index,
void *buf, int size);
int usb_get_descriptor(usb_dev_handle *udev, unsigned char type,
unsigned char index, void *buf, int size);
/* <arch>.c */
int usb_bulk_write(usb_dev_handle *dev, int ep, char *bytes, int size,
int timeout);
int usb_bulk_read(usb_dev_handle *dev, int ep, char *bytes, int size,
int timeout);
int usb_interrupt_write(usb_dev_handle *dev, int ep, char *bytes, int size,
int timeout);
int usb_interrupt_read(usb_dev_handle *dev, int ep, char *bytes, int size,
int timeout);
int usb_control_msg(usb_dev_handle *dev, int requesttype, int request,
int value, int index, char *bytes, int size,
int timeout);
int usb_set_configuration(usb_dev_handle *dev, int configuration);
int usb_claim_interface(usb_dev_handle *dev, int interface);
int usb_release_interface(usb_dev_handle *dev, int interface);
int usb_set_altinterface(usb_dev_handle *dev, int alternate);
int usb_resetep(usb_dev_handle *dev, unsigned int ep);
int usb_clear_halt(usb_dev_handle *dev, unsigned int ep);
int usb_reset(usb_dev_handle *dev);
char *usb_strerror(void);
void usb_init(void);
void usb_set_debug(int level);
int usb_find_busses(void);
int usb_find_devices(void);
struct usb_device *usb_device(usb_dev_handle *dev);
struct usb_bus *usb_get_busses(void);
/* Windows specific functions */
#define LIBUSB_HAS_INSTALL_SERVICE_NP 1
int usb_install_service_np(void);
void CALLBACK usb_install_service_np_rundll(HWND wnd, HINSTANCE instance,
LPSTR cmd_line, int cmd_show);
#define LIBUSB_HAS_UNINSTALL_SERVICE_NP 1
int usb_uninstall_service_np(void);
void CALLBACK usb_uninstall_service_np_rundll(HWND wnd, HINSTANCE instance,
LPSTR cmd_line, int cmd_show);
#define LIBUSB_HAS_INSTALL_DRIVER_NP 1
int usb_install_driver_np(const char *inf_file);
void CALLBACK usb_install_driver_np_rundll(HWND wnd, HINSTANCE instance,
LPSTR cmd_line, int cmd_show);
#define LIBUSB_HAS_TOUCH_INF_FILE_NP 1
int usb_touch_inf_file_np(const char *inf_file);
void CALLBACK usb_touch_inf_file_np_rundll(HWND wnd, HINSTANCE instance,
LPSTR cmd_line, int cmd_show);
#define LIBUSB_HAS_INSTALL_NEEDS_RESTART_NP 1
int usb_install_needs_restart_np(void);
const struct usb_version *usb_get_version(void);
int usb_isochronous_setup_async(usb_dev_handle *dev, void **context,
unsigned char ep, int pktsize);
int usb_bulk_setup_async(usb_dev_handle *dev, void **context,
unsigned char ep);
int usb_interrupt_setup_async(usb_dev_handle *dev, void **context,
unsigned char ep);
int usb_submit_async(void *context, char *bytes, int size);
int usb_reap_async(void *context, int timeout);
int usb_reap_async_nocancel(void *context, int timeout);
int usb_cancel_async(void *context);
int usb_free_async(void **context);
#ifdef __cplusplus
}
#endif
#endif /* __USB_H__ */