From 4b53af48c57eccb9c769aea1d4a88f2ead9d16f1 Mon Sep 17 00:00:00 2001 From: Pablo2048 Date: Sun, 2 Sep 2018 12:40:36 +0200 Subject: [PATCH] Fix warning in lock fuses --- 1.0.5/boards.txt | 65 +++++ .../ATmegaBOOT_168_atmega328_pro_8MHz.hex | 124 ++++++++++ .../atmega/optiboot_atmega328_pro_8MHz.hex | 67 ++++++ .../atmega/optiboot_atmega328p_8MHz.hex | 67 ++++++ 1.0.5/platform.txt | 124 ++++++++++ 1.0.5/variants/rfs/pins_arduino.h | 223 ++++++++++++++++++ 6 files changed, 670 insertions(+) create mode 100644 1.0.5/boards.txt create mode 100644 1.0.5/bootloaders/atmega/ATmegaBOOT_168_atmega328_pro_8MHz.hex create mode 100644 1.0.5/bootloaders/atmega/optiboot_atmega328_pro_8MHz.hex create mode 100644 1.0.5/bootloaders/atmega/optiboot_atmega328p_8MHz.hex create mode 100644 1.0.5/platform.txt create mode 100644 1.0.5/variants/rfs/pins_arduino.h diff --git a/1.0.5/boards.txt b/1.0.5/boards.txt new file mode 100644 index 0000000..19eed4a --- /dev/null +++ b/1.0.5/boards.txt @@ -0,0 +1,65 @@ +############################################################## + +RFS.name=ETCP RFS Rev.A (8MHz internal clock) + +RFS.upload.protocol=arduino +RFS.upload.maximum_size=30720 +RFS.upload.speed=57600 + +RFS.bootloader.low_fuses=0xE2 +RFS.bootloader.high_fuses=0xDA +RFS.bootloader.extended_fuses=0x05 + +RFS.bootloader.file=atmega/ATmegaBOOT_168_atmega328_pro_8MHz.hex +RFS.bootloader.unlock_bits=0x3F +RFS.bootloader.lock_bits=0xCF + +RFS.build.mcu=atmega328p +RFS.build.f_cpu=8000000L +RFS.build.core=arduino:arduino +RFS.build.variant=arduino:standard + +RFS.bootloader.tool=arduino:avrdude +RFS.upload.tool=arduino:avrdude + +RFSO.name=ETCP RFS Rev.A (8MHz, DualOptiBoot, 9600Bd) + +RFSO.upload.protocol=arduino +RFSO.upload.maximum_size=31744 +RFSO.upload.speed=9600 + +RFSO.bootloader.low_fuses=0xD2 +RFSO.bootloader.high_fuses=0xD4 +RFSO.bootloader.extended_fuses=0xFE + +RFSO.bootloader.file=atmega/optiboot_atmega328_pro_8MHz.hex +RFSO.bootloader.unlock_bits=0x3F +RFSO.bootloader.lock_bits=0xCF + +RFSO.build.mcu=atmega328p +RFSO.build.f_cpu=8000000L +RFSO.build.core=arduino:arduino +RFSO.build.variant=arduino:standard + +RFSO.bootloader.tool=arduino:avrdude +RFSO.upload.tool=arduino:avrdude + +RFSU.name=ETCP RFS Rev.A (8MHz internal clock, USBTinyISP) + +RFSU.upload.maximum_size=32768 +RFSU.upload.speed=57600 +RFSU.upload.tool=arduino:usbtinyisp + +RFSU.bootloader.low_fuses=0xE2 +RFSU.bootloader.high_fuses=0xDA +RFSU.bootloader.extended_fuses=0x01 +RFSU.bootloader.tool=arduino:avrdude + +RFSU.bootloader.file=atmega/ATmegaBOOT_168_atmega328_pro_8MHz.hex +RFSU.bootloader.unlock_bits=0x3F +RFSU.bootloader.lock_bits=0xCF + +RFSU.build.mcu=atmega328p +RFSU.build.f_cpu=8000000L +RFSU.build.core=arduino:arduino +RFSU.build.variant=arduino:standard diff --git a/1.0.5/bootloaders/atmega/ATmegaBOOT_168_atmega328_pro_8MHz.hex b/1.0.5/bootloaders/atmega/ATmegaBOOT_168_atmega328_pro_8MHz.hex new file mode 100644 index 0000000..84134c2 --- /dev/null +++ b/1.0.5/bootloaders/atmega/ATmegaBOOT_168_atmega328_pro_8MHz.hex @@ -0,0 +1,124 @@ +:107800000C94343C0C94513C0C94513C0C94513CE1 +:107810000C94513C0C94513C0C94513C0C94513CB4 +:107820000C94513C0C94513C0C94513C0C94513CA4 +:107830000C94513C0C94513C0C94513C0C94513C94 +:107840000C94513C0C94513C0C94513C0C94513C84 +:107850000C94513C0C94513C0C94513C0C94513C74 +:107860000C94513C0C94513C11241FBECFEFD8E036 +:10787000DEBFCDBF11E0A0E0B1E0EAE8FFE702C063 +:1078800005900D92A230B107D9F712E0A2E0B1E065 +:1078900001C01D92AD30B107E1F70E942D3D0C945F +:1078A000C33F0C94003C982F95959595959595958B +:1078B000905D8F708A307CF0282F295A8091C0000B +:1078C00085FFFCCF9093C6008091C00085FFFCCF60 +:1078D0002093C6000895282F205DF0CF982F809127 +:1078E000C00085FFFCCF9093C6000895EF92FF92F1 +:1078F0000F931F93EE24FF2487018091C00087FD22 +:1079000017C00894E11CF11C011D111D81E2E8164D +:1079100081EAF80687E0080780E0180770F3E09135 +:107920000401F091050109958091C00087FFE9CF1E +:107930008091C6001F910F91FF90EF9008950E94D3 +:10794000763C982F8091C00085FFFCCF9093C600B5 +:1079500091362CF490330CF09053892F089597555D +:10796000892F08951F930E949F3C182F0E949F3CCF +:107970001295107F810F1F9108951F93182F882350 +:1079800021F00E94763C1150E1F71F9108951F935A +:10799000182F0E94763C803249F0809103018F5F5E +:1079A000809303018530C1F01F9108958091C0003C +:1079B00085FFFCCF84E18093C6008091C00085FFE5 +:1079C000FCCF1093C6008091C00085FFFCCF80E102 +:1079D0008093C6001F910895E0910401F091050184 +:1079E00009951F9108950E94763C803241F0809164 +:1079F00003018F5F80930301853081F008958091AA +:107A0000C00085FFFCCF84E18093C6008091C00058 +:107A100085FFFCCF80E18093C6000895E0910401CA +:107A2000F09105010995089548EC50E08823A1F0F4 +:107A30002D9A28EE33E0FA013197F1F721503040CA +:107A4000D1F72D9828EE33E0FA013197F1F7215064 +:107A50003040D1F7815061F708953F924F925F9285 +:107A60006F927F928F929F92AF92BF92CF92DF924E +:107A7000EF92FF920F931F93CF93DF93000082E06A +:107A80008093C00080E18093C4001092C50088E11B +:107A90008093C10086E08093C2005098589A259A3E +:107AA00081E00E94143D24E1F22E9EE1E92E85E959 +:107AB000D82E0FE0C02E10E1B12EAA24A394B1E479 +:107AC0009B2EA6E58A2EF2E57F2EE0E26E2E79E46B +:107AD000572E63E5462E50E5352E0E94763C8033C6 +:107AE000B1F18133B9F1803409F46FC0813409F404 +:107AF00076C0823409F485C0853409F488C08035A5 +:107B000031F1823521F1813511F1853509F485C0D6 +:107B1000863509F48DC0843609F496C0843709F49B +:107B200003C1853709F472C1863709F466C08091B4 +:107B300003018F5F80930301853079F6E0910401A2 +:107B4000F091050109950E94763C803351F60E9420 +:107B5000F33CC3CF0E94763C803249F78091C0004D +:107B600085FFFCCFF092C6008091C00085FFFCCF5E +:107B70009092C6008091C00085FFFCCF8092C60025 +:107B80008091C00085FFFCCF7092C6008091C0003C +:107B900085FFFCCF6092C6008091C00085FFFCCFBE +:107BA0005092C6008091C00085FFFCCF4092C60075 +:107BB0008091C00085FFFCCF3092C6008091C0004C +:107BC00085FFFCCFB092C60088CF0E94763C8638F5 +:107BD00008F4BDCF0E94763C0E94F33C7ECF0E9409 +:107BE000763C803809F49CC0813809F40BC1823896 +:107BF00009F430C1883909F48FC080E00E94C73C85 +:107C00006CCF84E10E94BD3C0E94F33C66CF85E0CE +:107C10000E94BD3C0E94F33C60CF0E94763C809362 +:107C200006010E94763C809307010E94F33C55CFE9 +:107C30000E94763C803309F411C183E00E94BD3C70 +:107C400080E00E94C73C49CF0E94763C80930902A5 +:107C50000E94763C8093080280910C028E7F809374 +:107C60000C020E94763C853409F409C18091080217 +:107C700090910902892B89F000E010E00E94763C87 +:107C8000F801E85FFE4F80830F5F1F4F809108026D +:107C9000909109020817190788F30E94763C8032F8 +:107CA00009F045CF80910C0280FFF5C0609106017C +:107CB00070910701660F771F7093070160930601AB +:107CC000A0910802B09109021097C9F0E8E0F1E034 +:107CD0009B01AD014E0F5F1FF999FECF32BD21BD53 +:107CE000819180BDFA9AF99A2F5F3F4FE417F5070B +:107CF00099F76A0F7B1F70930701609306018091CB +:107D0000C00085FFFCCFF092C6008091C00085FFC7 +:107D1000FCCFB092C600E1CE83E00E94C73CDDCE2E +:107D200082E00E94C73CD9CE0E94763C8093090233 +:107D30000E94763C80930802809106019091070191 +:107D4000880F991F90930701809306010E94763C4B +:107D5000853409F49AC080910C028E7F80930C02C6 +:107D60000E94763C803209F0B8CE8091C00085FF39 +:107D7000FCCFF092C600A0910802B09109021097C2 +:107D8000C1F180910C02082F0170182F1695117007 +:107D9000E0910601F0910701AF014F5F5F4FBA011B +:107DA00020E030E00023B1F4112339F49491809164 +:107DB000C00085FFFCCF9093C6002F5F3F4FCB01E3 +:107DC0000196FA012A173B0780F4BC014F5F5F4F11 +:107DD000002351F3F999FECFF2BDE1BDF89A90B5B9 +:107DE0008091C00085FFFCCFE6CF709307016093C0 +:107DF00006018091C00085FDE5CE8091C00085FF21 +:107E0000F8CFE0CE81E00E94C73C67CE0E94763C6E +:107E1000803209F08CCE8091C00085FFFCCFF092BB +:107E2000C6008091C00085FFFCCFE092C600809123 +:107E3000C00085FFFCCFD092C6008091C00085FFB6 +:107E4000FCCFC092C6008091C00085FFFCCFB092ED +:107E5000C60043CE80E10E94C73C3FCE0E94763CE4 +:107E60000E94763C182F0E94763C112309F483C0AF +:107E7000113009F484C08FE00E94C73C2ECE80915F +:107E80000C02816080930C02F1CE80910C02816023 +:107E900080930C0265CF809107018823880F880B9F +:107EA0008A2180930B028091060190910701880F2F +:107EB000991F90930701809306018091080280FF2B +:107EC00009C08091080290910902019690930902DD +:107ED00080930802F894F999FECF1127E0910601EA +:107EE000F0910701C8E0D1E0809108029091090269 +:107EF000103091F40091570001700130D9F303E084 +:107F000000935700E8950091570001700130D9F3B4 +:107F100001E100935700E8950990199000915700EE +:107F200001700130D9F301E000935700E8951395F3 +:107F3000103498F011270091570001700130D9F3E7 +:107F400005E000935700E89500915700017001305B +:107F5000D9F301E100935700E8953296029709F0B2 +:107F6000C7CF103011F00296E5CF11248091C000E8 +:107F700085FFC5CEC8CE8EE10E94C73CAECD85E957 +:0A7F80000E94C73CAACDF894FFCF81 +:027F8A00800075 +:040000030000780081 +:00000001FF diff --git a/1.0.5/bootloaders/atmega/optiboot_atmega328_pro_8MHz.hex b/1.0.5/bootloaders/atmega/optiboot_atmega328_pro_8MHz.hex new file mode 100644 index 0000000..9e2c6e3 --- /dev/null +++ b/1.0.5/bootloaders/atmega/optiboot_atmega328_pro_8MHz.hex @@ -0,0 +1,67 @@ +:107C0000112404B714BE01FD07C003FD27D18CB5B4 +:107C10008F7A8CBD802FEAD185E08093810082E04D +:107C20008093C00088E18093C10086E08093C20009 +:107C300087E68093C4008EE0FBD0559A86E028E169 +:107C40003EEF91E0309385002093840096BBB09B7B +:107C5000FECF4D9AA8958150A9F7EE24FF24AA24BF +:107C6000A394B5E0CB2EA1E1BA2EF3E0DF2ED2D063 +:107C7000813461F4CFD0082FE1D0023829F10138E6 +:107C800011F485E001C083E0BDD07FC0823411F4DF +:107C900084E103C0853419F485E0D8D076C08535F9 +:107CA00079F4B8D0E82EFF24B5D0082F10E0102FBB +:107CB00000270E291F29000F111FC0D0780165C0B1 +:107CC000863521F484E0C2D080E0DECF843609F02E +:107CD00040C0A0D09FD0082F9DD080E0E81680E75C +:107CE000F80618F4F701D7BEE895C0E0D1E092D0CD +:107CF00089930C17E1F7F0E0EF16F0E7FF0618F0B4 +:107D0000F701D7BEE8959AD007B600FCFDCFA701D2 +:107D1000A0E0B1E02C9130E011968C91119790E0A9 +:107D2000982F8827822B932B1296FA010C01A7BE5D +:107D3000E89511244E5F5F4FF1E0A038BF0751F77F +:107D4000F701C7BEE89507B600FCFDCFB7BEE895C2 +:107D50001CC0843761F45ED05DD0082F5BD06ED03C +:107D6000F70185917F014ED00150D1F70EC08537C4 +:107D700039F464D08EE146D085E944D08FE084CFD9 +:107D8000813511F488E054D059D080E13BD06FCFD9 +:107D90008EBD0DB407FEFDCF8EB50895289885E001 +:107DA000F7DF80E0F5DF289A817008951F93182F80 +:107DB000662321F086E060E0F9DF289AEFDF882370 +:107DC000E9F72898812FE4DF1F910895EF92FF9241 +:107DD0000F931F937B018C0183E060E0E7DFC80114 +:107DE000AA27BB27D5DFBB27A12F902F8F2DD0DF50 +:107DF0008E2DCEDF80E0CCDF289A1F910F91FF906F +:107E0000EF900895982F8091C00085FFFCCF90934C +:107E1000C60008954D9A8091C00087FFFCCF8091E5 +:107E2000C00084FD01C0A8958091C6004D9A0895B8 +:107E3000E0E6F0E098E1908380830895EBDF803204 +:107E400019F088E0F5DFFFCF84E1DCCF1F93182F16 +:107E5000E1DF1150E9F7F2DF1F9108959F92AF9291 +:107E6000BF92CF92DF92EF92FF920F931F93CF9327 +:107E7000DF9380E0DDDF84B18D6284B9289A2A9A8D +:107E80008CB580658CBD28988FE982DF80E080DF2B +:107E9000289A81508E3F08F09DC081E061E086DF26 +:107EA00080E076DF289A60E070E080E090E08EDF8E +:107EB000863409F08FC061E070E080E090E086DFFA +:107EC0008C3409F087C062E070E080E090E07EDFF3 +:107ED000883509F07FC066E070E080E090E076DFF2 +:107EE0008A3309F077C069E070E080E090E06EDFEF +:107EF0008A3309F06FC067E070E080E090E066DFF1 +:107F0000082F68E070E080E090E060DF10E0F02E85 +:107F1000EE2490E0E82AF92AE0FC5CC04D9AC0E02B +:107F2000D0E0CC24DD249924939443E0A42E35E0C2 +:107F3000B32E30C02A96BE0180E090E047DF082FC4 +:107F400010E02196BE0180E090E02B973FDF90E0AB +:107F5000982F8827802B912BFE010C0197BEE89566 +:107F600011242296CE018F779070892B19F0CE15AF +:107F7000DF0581F4F601A7BEE89507B600FCFDCF4A +:107F8000F601B7BEE89507B600FCFDCF80E890E0AB +:107F9000C80ED91ECE15DF0508F4CCCF4D9881E16F +:107FA00087BFE895EAE0F0E0EE0EFF1EF1E0EF1685 +:107FB000F0E8FF0610F482E501C088ED61E0F6DE2E +:107FC00080E0E6DE80E0E4DE80E0E2DE289A88E021 +:107FD0002FDFFFCFDF91CF911F910F91FF90EF9097 +:107FE000DF90CF90BF90AF909F900895282E80E0B3 +:087FF0001FDFEE27FF270994B3 +:027FFE0000057C +:0400000300007C007D +:00000001FF diff --git a/1.0.5/bootloaders/atmega/optiboot_atmega328p_8MHz.hex b/1.0.5/bootloaders/atmega/optiboot_atmega328p_8MHz.hex new file mode 100644 index 0000000..58f396e --- /dev/null +++ b/1.0.5/bootloaders/atmega/optiboot_atmega328p_8MHz.hex @@ -0,0 +1,67 @@ +:107C00001F92CDB7DEB7112484B714BE81FD06C024 +:107C100083FF03C08983F4D08981E3D185E0809319 +:107C2000810082E08093C00088E18093C10096E0EB +:107C30009093C20090E19093C400809360008EE026 +:107C4000809360003B9A86E028E13EEF91E030931C +:107C500085002093840096BBB09BFECF339AA895F5 +:107C60008150A9F7612C712C08E128E0F22EEE2456 +:107C7000E39435E0D32E41E1C42E13E08BD181345F +:107C800069F488D1898394D189818238F9F0813867 +:107C900011F485E001C083E076D17BC0823411F419 +:107CA00084E103C0853419F485E08ED172C0853536 +:107CB00049F470D1B82E6ED16B2C712C782A660CD9 +:107CC000771C66C0863521F484E07ED180E0E4CF65 +:107CD000843609F03FC05ED15DD1982E5BD161142E +:107CE00080E7780618F4F30117BFE895A12CBB24B0 +:107CF000B39450D1F50181935F019E12FACF6114C4 +:107D0000F0E77F0618F0F30117BFE89551D107B6E9 +:107D100000FCFDCFA301A0E0B1E08C9112969D0183 +:107D200021503109F901208190E0922BFA010C01D8 +:107D3000E7BEE89511244E5F5F4FA038F1E0BF0722 +:107D400061F7F301D7BEE89507B600FCFDCFC7BECB +:107D5000E8951FC0843769F41DD11CD1B82E1AD103 +:107D600027D1F30185913F010ED1BA94B110F9CF1B +:107D700010C0853739F41CD18EE105D185E903D1D6 +:107D80008FE08ACF813521F400936000F09260008B +:107D90000FD180E1F8D072CF8EBD0DB407FEFDCFBC +:107DA0008EB50895289885E0F7DF80E0F5DF289A02 +:107DB00081700895CF93C82F662321F060E086E09C +:107DC000F9DF289AEFDF8111FDCF28988C2FCF9112 +:107DD000E3CFCF92DF92EF92FF926B017C0160E0E4 +:107DE00083E0E8DF8E2DD8DF8D2DD6DF8C2DD4DF1C +:107DF00080E0D2DF289AFF90EF90DF90CF90089537 +:107E00009F92AF92BF92CF92DF92EF92FF920F9329 +:107E10001F93CF93DF9388E18093600010926000FE +:107E200084B18D6284B9289A2A9A8CB580658CBDFC +:107E300028988FE9B1DF80E0AFDF289A81508E3F2C +:107E400008F095C061E081E0B5DF80E0A5DF289A09 +:107E500060E070E0CB01BDDF863409F088C061E0EE +:107E600070E080E090E0B5DF8C3409F080C062E023 +:107E700070E080E090E0ADDF883509F078C066E022 +:107E800070E080E090E0A5DF8A3309F070C069E01F +:107E900070E080E090E09DDF8A3309F068C067E021 +:107EA00070E080E090E095DFC82F68E070E080E04F +:107EB00090E08FDFD0E0DC2FCC27C82BC0FD57C06F +:107EC000339AC12CD12C00E010E0BB24B39483E0A2 +:107ED000A82E95E0992E0C171D0770F5B801665F66 +:107EE0007F4F80E090E075DFE82EF12CB801655FF0 +:107EF0007F4F80E090E06DDFF82AF8010701B7BE00 +:107F0000E89511240E5F1F4FC8018F779927892BA1 +:107F100019F00C171D07F9F6F601A7BEE89507B68C +:107F200000FCFDCFF60197BEE89507B600FCFDCF3B +:107F3000F0E8CF0ED11CCFCF339881E187BFE89511 +:107F40002A9661E0C130D04810F482E501C088ED86 +:107F500031DF80E021DF80E01FDF80E01DDF289A35 +:107F600088E18093600088E080936000FFCFDF911C +:107F7000CF911F910F91FF90EF90DF90CF90BF9026 +:107F8000AF909F9008959091C00095FFFCCF809393 +:107F9000C6000895339A8091C00087FFFCCF80917E +:107FA000C00084FD01C0A8958091C600339A089551 +:107FB000F1DF803239F088E18093600088E08093BF +:107FC0006000FFCF84E1DFCFCF93C82FE3DFC15044 +:107FD000E9F7CF91EDCFE0E6F0E098E19083808380 +:107FE0000895282EE0E6F0E088E180831082EE27F5 +:047FF000FF270994CA +:027FFE0000057C +:0400000300007C007D +:00000001FF diff --git a/1.0.5/platform.txt b/1.0.5/platform.txt new file mode 100644 index 0000000..47e6cf5 --- /dev/null +++ b/1.0.5/platform.txt @@ -0,0 +1,124 @@ + +# xPablo EasyTherm platform. +# ------------------------------ +# +# For more info: +# https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5-3rd-party-Hardware-specification + +name=xPablo.cz AVR based boards +version=1.0.0 + +# Derived from Arduino AVR 1.6.11. + +# AVR compile variables +# --------------------- + +compiler.warning_flags=-w +compiler.warning_flags.none=-w +compiler.warning_flags.default= +compiler.warning_flags.more=-Wall +compiler.warning_flags.all=-Wall -Wextra + +# Default "compiler.path" is correct, change only if you want to override the initial value +compiler.path={runtime.tools.avr-gcc.path}/bin/ +compiler.c.cmd=avr-gcc +compiler.c.flags=-c -g -Os {compiler.warning_flags} -std=gnu11 -ffunction-sections -fdata-sections -MMD +compiler.c.elf.flags={compiler.warning_flags} -Os -Wl,--gc-sections +compiler.c.elf.cmd=avr-gcc +compiler.S.flags=-c -g -x assembler-with-cpp +compiler.cpp.cmd=avr-g++ +compiler.cpp.flags=-c -g -Os {compiler.warning_flags} -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD +compiler.ar.cmd=avr-ar +compiler.ar.flags=rcs +compiler.objcopy.cmd=avr-objcopy +compiler.objcopy.eep.flags=-O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0 +compiler.elf2hex.flags=-O ihex -R .eeprom +compiler.elf2hex.cmd=avr-objcopy +compiler.ldflags= +compiler.size.cmd=avr-size + +# This can be overridden in boards.txt +build.extra_flags= + +# These can be overridden in platform.local.txt +compiler.c.extra_flags= +compiler.c.elf.extra_flags= +compiler.S.extra_flags= +compiler.cpp.extra_flags= +compiler.ar.extra_flags= +compiler.objcopy.eep.extra_flags= +compiler.elf2hex.extra_flags= + +# AVR compile patterns +# -------------------- + +## Compile c files +recipe.c.o.pattern="{compiler.path}{compiler.c.cmd}" {compiler.c.flags} -mmcu={build.mcu} -DF_CPU={build.f_cpu} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} {compiler.c.extra_flags} {build.extra_flags} {includes} "{source_file}" -o "{object_file}" + +## Compile c++ files +recipe.cpp.o.pattern="{compiler.path}{compiler.cpp.cmd}" {compiler.cpp.flags} -mmcu={build.mcu} -DF_CPU={build.f_cpu} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} {compiler.cpp.extra_flags} {build.extra_flags} {includes} "{source_file}" -o "{object_file}" + +## Compile S files +recipe.S.o.pattern="{compiler.path}{compiler.c.cmd}" {compiler.S.flags} -mmcu={build.mcu} -DF_CPU={build.f_cpu} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} {compiler.S.extra_flags} {build.extra_flags} {includes} "{source_file}" -o "{object_file}" + +## Create archives +# archive_file_path is needed for backwards compatibility with IDE 1.6.5 or older, IDE 1.6.6 or newer overrides this value +archive_file_path={build.path}/{archive_file} +recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} {compiler.ar.extra_flags} "{archive_file_path}" "{object_file}" + +## Combine gc-sections, archives, and objects +recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" {compiler.c.elf.flags} -mmcu={build.mcu} {compiler.c.elf.extra_flags} -o "{build.path}/{build.project_name}.elf" {object_files} "{build.path}/{archive_file}" "-L{build.path}" -lm + +## Create output files (.eep and .hex) +recipe.objcopy.eep.pattern="{compiler.path}{compiler.objcopy.cmd}" {compiler.objcopy.eep.flags} {compiler.objcopy.eep.extra_flags} "{build.path}/{build.project_name}.elf" "{build.path}/{build.project_name}.eep" +recipe.objcopy.hex.pattern="{compiler.path}{compiler.elf2hex.cmd}" {compiler.elf2hex.flags} {compiler.elf2hex.extra_flags} "{build.path}/{build.project_name}.elf" "{build.path}/{build.project_name}.hex" + +## Save hex +recipe.output.tmp_file={build.project_name}.hex +recipe.output.save_file={build.project_name}.{build.variant}.hex + +## Compute size +recipe.size.pattern="{compiler.path}{compiler.size.cmd}" -A "{build.path}/{build.project_name}.elf" +recipe.size.regex=^(?:\.text|\.data|\.bootloader)\s+([0-9]+).* +recipe.size.regex.data=^(?:\.data|\.bss|\.noinit)\s+([0-9]+).* +recipe.size.regex.eeprom=^(?:\.eeprom)\s+([0-9]+).* + +## Preprocessor +preproc.includes.flags=-w -x c++ -M -MG -MP +recipe.preproc.includes="{compiler.path}{compiler.cpp.cmd}" {compiler.cpp.flags} {preproc.includes.flags} -mmcu={build.mcu} -DF_CPU={build.f_cpu} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} {compiler.cpp.extra_flags} {build.extra_flags} {includes} "{source_file}" + +preproc.macros.flags=-w -x c++ -E -CC +recipe.preproc.macros="{compiler.path}{compiler.cpp.cmd}" {compiler.cpp.flags} {preproc.macros.flags} -mmcu={build.mcu} -DF_CPU={build.f_cpu} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} {compiler.cpp.extra_flags} {build.extra_flags} {includes} "{source_file}" -o "{preprocessed_file_path}" + +# AVR Uploader/Programmers tools +# ------------------------------ + +tools.avrdude.path={runtime.tools.avrdude.path} +tools.avrdude.cmd.path={path}/bin/avrdude +tools.avrdude.config.path={path}/etc/avrdude.conf + +tools.avrdude.upload.params.verbose=-v +tools.avrdude.upload.params.quiet=-q -q +tools.avrdude.upload.params.noverify=-V +tools.avrdude.upload.pattern="{cmd.path}" "-C{config.path}" {upload.verbose} {upload.verify} -p{build.mcu} -c{upload.protocol} -P{serial.port} -b{upload.speed} -D "-Uflash:w:{build.path}/{build.project_name}.hex:i" + +tools.avrdude.program.params.verbose=-v +tools.avrdude.program.params.quiet=-q -q +tools.avrdude.program.params.noverify=-V +tools.avrdude.program.pattern="{cmd.path}" "-C{config.path}" {program.verbose} {program.verify} -p{build.mcu} -c{protocol} {program.extra_params} "-Uflash:w:{build.path}/{build.project_name}.hex:i" + +tools.avrdude.erase.params.verbose=-v +tools.avrdude.erase.params.quiet=-q -q +tools.avrdude.erase.pattern="{cmd.path}" "-C{config.path}" {erase.verbose} -p{build.mcu} -c{protocol} {program.extra_params} -e -Ulock:w:{bootloader.unlock_bits}:m -Uefuse:w:{bootloader.extended_fuses}:m -Uhfuse:w:{bootloader.high_fuses}:m -Ulfuse:w:{bootloader.low_fuses}:m + +tools.avrdude.bootloader.params.verbose=-v +tools.avrdude.bootloader.params.quiet=-q -q +tools.avrdude.bootloader.pattern="{cmd.path}" "-C{config.path}" {bootloader.verbose} -p{build.mcu} -c{protocol} {program.extra_params} "-Uflash:w:{runtime.platform.path}/bootloaders/{bootloader.file}:i" -Ulock:w:{bootloader.lock_bits}:m + +tools.avrdude_remote.upload.pattern=/usr/bin/run-avrdude /tmp/sketch.hex {upload.verbose} -p{build.mcu} + +# USB Default Flags +# Default blank usb manufacturer will be filled in at compile time +# - from numeric vendor ID, set to Unknown otherwise +build.usb_manufacturer="Unknown" +build.usb_flags=-DUSB_VID={build.vid} -DUSB_PID={build.pid} '-DUSB_MANUFACTURER={build.usb_manufacturer}' '-DUSB_PRODUCT={build.usb_product}' diff --git a/1.0.5/variants/rfs/pins_arduino.h b/1.0.5/variants/rfs/pins_arduino.h new file mode 100644 index 0000000..e312475 --- /dev/null +++ b/1.0.5/variants/rfs/pins_arduino.h @@ -0,0 +1,223 @@ +/* + pins_arduino.h - Pin definition functions for Arduino + Part of Arduino - http://www.arduino.cc/ + + Copyright (c) 2007 David A. Mellis + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General + Public License along with this library; if not, write to the + Free Software Foundation, Inc., 59 Temple Place, Suite 330, + Boston, MA 02111-1307 USA + + $Id: wiring.h 249 2007-02-03 16:52:51Z mellis $ +*/ + +#ifndef Pins_Arduino_h +#define Pins_Arduino_h + +#include + +#define NUM_DIGITAL_PINS 20 +#define NUM_ANALOG_INPUTS 6 +#define analogInputToDigitalPin(p) ((p < 6) ? (p) + 14 : -1) + +#if defined(__AVR_ATmega8__) + #define digitalPinHasPWM(p) ((p) == 9 || (p) == 10 || (p) == 11) +#else + #define digitalPinHasPWM(p) ((p) == 3 || (p) == 5 || (p) == 6 || (p) == 9 || (p) == 10 || (p) == 11) +#endif + +static const uint8_t SS = 10; +static const uint8_t MOSI = 11; +static const uint8_t MISO = 12; +static const uint8_t SCK = 13; + +static const uint8_t SDA = 18; +static const uint8_t SCL = 19; +#define LED_BUILTIN 8 + +static const uint8_t A0 = 14; +static const uint8_t A1 = 15; +static const uint8_t A2 = 16; +static const uint8_t A3 = 17; +static const uint8_t A4 = 18; +static const uint8_t A5 = 19; +static const uint8_t A6 = 20; +static const uint8_t A7 = 21; + +#define digitalPinToPCICR(p) (((p) >= 0 && (p) <= 21) ? (&PCICR) : ((uint8_t *)0)) +#define digitalPinToPCICRbit(p) (((p) <= 7) ? 2 : (((p) <= 13) ? 0 : 1)) +#define digitalPinToPCMSK(p) (((p) <= 7) ? (&PCMSK2) : (((p) <= 13) ? (&PCMSK0) : (((p) <= 21) ? (&PCMSK1) : ((uint8_t *)0)))) +#define digitalPinToPCMSKbit(p) (((p) <= 7) ? (p) : (((p) <= 13) ? ((p) - 8) : ((p) - 14))) + +#define digitalPinToInterrupt(p) ((p) == 2 ? 0 : ((p) == 3 ? 1 : NOT_AN_INTERRUPT)) + +#ifdef ARDUINO_MAIN + +// On the Arduino board, digital pins are also used +// for the analog output (software PWM). Analog input +// pins are a separate set. + +// ATMEL ATMEGA8 & 168 / ARDUINO +// +// +-\/-+ +// PC6 1| |28 PC5 (AI 5) +// (D 0) PD0 2| |27 PC4 (AI 4) +// (D 1) PD1 3| |26 PC3 (AI 3) +// (D 2) PD2 4| |25 PC2 (AI 2) +// PWM+ (D 3) PD3 5| |24 PC1 (AI 1) +// (D 4) PD4 6| |23 PC0 (AI 0) +// VCC 7| |22 GND +// GND 8| |21 AREF +// PB6 9| |20 AVCC +// PB7 10| |19 PB5 (D 13) +// PWM+ (D 5) PD5 11| |18 PB4 (D 12) +// PWM+ (D 6) PD6 12| |17 PB3 (D 11) PWM +// (D 7) PD7 13| |16 PB2 (D 10) PWM +// (D 8) PB0 14| |15 PB1 (D 9) PWM +// +----+ +// +// (PWM+ indicates the additional PWM pins on the ATmega168.) + +// these arrays map port names (e.g. port B) to the +// appropriate addresses for various functions (e.g. reading +// and writing) +const uint16_t PROGMEM port_to_mode_PGM[] = { + NOT_A_PORT, + NOT_A_PORT, + (uint16_t) &DDRB, + (uint16_t) &DDRC, + (uint16_t) &DDRD, +}; + +const uint16_t PROGMEM port_to_output_PGM[] = { + NOT_A_PORT, + NOT_A_PORT, + (uint16_t) &PORTB, + (uint16_t) &PORTC, + (uint16_t) &PORTD, +}; + +const uint16_t PROGMEM port_to_input_PGM[] = { + NOT_A_PORT, + NOT_A_PORT, + (uint16_t) &PINB, + (uint16_t) &PINC, + (uint16_t) &PIND, +}; + +const uint8_t PROGMEM digital_pin_to_port_PGM[] = { + PD, /* 0 */ + PD, + PD, + PD, + PD, + PD, + PD, + PD, + PB, /* 8 */ + PB, + PB, + PB, + PB, + PB, + PC, /* 14 */ + PC, + PC, + PC, + PC, + PC, +}; + +const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = { + _BV(0), /* 0, port D */ + _BV(1), + _BV(2), + _BV(3), + _BV(4), + _BV(5), + _BV(6), + _BV(7), + _BV(0), /* 8, port B */ + _BV(1), + _BV(2), + _BV(3), + _BV(4), + _BV(5), + _BV(0), /* 14, port C */ + _BV(1), + _BV(2), + _BV(3), + _BV(4), + _BV(5), +}; + +const uint8_t PROGMEM digital_pin_to_timer_PGM[] = { + NOT_ON_TIMER, /* 0 - port D */ + NOT_ON_TIMER, + NOT_ON_TIMER, + // on the ATmega168, digital pin 3 has hardware pwm +#if defined(__AVR_ATmega8__) + NOT_ON_TIMER, +#else + TIMER2B, +#endif + NOT_ON_TIMER, + // on the ATmega168, digital pins 5 and 6 have hardware pwm +#if defined(__AVR_ATmega8__) + NOT_ON_TIMER, + NOT_ON_TIMER, +#else + TIMER0B, + TIMER0A, +#endif + NOT_ON_TIMER, + NOT_ON_TIMER, /* 8 - port B */ + TIMER1A, + TIMER1B, +#if defined(__AVR_ATmega8__) + TIMER2, +#else + TIMER2A, +#endif + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, /* 14 - port C */ + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, +}; + +#endif + +// These serial port names are intended to allow libraries and architecture-neutral +// sketches to automatically default to the correct port name for a particular type +// of use. For example, a GPS module would normally connect to SERIAL_PORT_HARDWARE_OPEN, +// the first hardware serial port whose RX/TX pins are not dedicated to another use. +// +// SERIAL_PORT_MONITOR Port which normally prints to the Arduino Serial Monitor +// +// SERIAL_PORT_USBVIRTUAL Port which is USB virtual serial +// +// SERIAL_PORT_LINUXBRIDGE Port which connects to a Linux system via Bridge library +// +// SERIAL_PORT_HARDWARE Hardware serial port, physical RX & TX pins. +// +// SERIAL_PORT_HARDWARE_OPEN Hardware serial ports which are open for use. Their RX & TX +// pins are NOT connected to anything by default. +#define SERIAL_PORT_MONITOR Serial +#define SERIAL_PORT_HARDWARE Serial + +#endif