20131007-181002
This commit is contained in:
@@ -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
|
||||||
Binary file not shown.
@@ -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:
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
:00000001FF
|
||||||
Binary file not shown.
@@ -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
@@ -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
|
||||||
@@ -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
|
||||||
@@ -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"
|
||||||
|
|
||||||
@@ -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:
|
||||||
@@ -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
|
||||||
|
|
||||||
@@ -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:
|
||||||
@@ -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:
|
||||||
@@ -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:
|
||||||
@@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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>
|
||||||
@@ -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
|
||||||
@@ -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_ */
|
||||||
@@ -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);
|
||||||
|
}
|
||||||
@@ -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_ */
|
||||||
@@ -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);
|
||||||
|
}
|
||||||
@@ -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_ */
|
||||||
@@ -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));
|
||||||
|
}
|
||||||
@@ -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_ */
|
||||||
@@ -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
|
||||||
|
}
|
||||||
@@ -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
|
||||||
@@ -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
|
||||||
@@ -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();
|
||||||
|
}
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -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
|
||||||
@@ -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
|
||||||
@@ -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"" -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>
|
||||||
@@ -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.
@@ -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.
@@ -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
|
||||||
@@ -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.
@@ -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__ */
|
||||||
|
|
||||||
Reference in New Issue
Block a user