From 4544fb1a1fd04893626dd81273a29bad69360cb2 Mon Sep 17 00:00:00 2001 From: Zach Eveland Date: Fri, 3 Feb 2012 23:15:04 -0500 Subject: proper bootloader timeout and LED control in Leonardo bootloader --- bootloaders/caterina_LUFA/Caterina.c | 92 +++++-- bootloaders/caterina_LUFA/Caterina.h | 15 +- bootloaders/caterina_LUFA/Caterina.hex | 452 +++++++++++++++++---------------- bootloaders/caterina_LUFA/makefile | 2 +- 4 files changed, 325 insertions(+), 236 deletions(-) diff --git a/bootloaders/caterina_LUFA/Caterina.c b/bootloaders/caterina_LUFA/Caterina.c index f95613f..82d468f 100755 --- a/bootloaders/caterina_LUFA/Caterina.c +++ b/bootloaders/caterina_LUFA/Caterina.c @@ -56,26 +56,58 @@ static uint32_t CurrAddress; */ static bool RunBootloader = true; -void StartSketch() +/* Pulse generation counters to keep track of the time remaining for each pulse type */ +#define TX_RX_LED_PULSE_PERIOD 100 +uint16_t TxLEDPulse = 0; // time remaining for Tx LED pulse +uint16_t RxLEDPulse = 0; // time remaining for Rx LED pulse + +/* Bootloader timeout timer */ +uint16_t Timeout = 0; + +void StartSketch(void) { cli(); + + /* Undo TIMER1 setup and clear the count before running the sketch */ + TIMSK1 = 0; + TCCR1B = 0; + TCNT1H = 0; // 16-bit write to TCNT1 requires high byte be written first + TCNT1L = 0; + /* Relocate the interrupt vector table to the application section */ MCUCR = (1 << IVCE); MCUCR = 0; - -// UDCON = 1; // Detach USB -// UDIEN = 0; + + L_LED_OFF(); + TX_LED_OFF(); + RX_LED_OFF(); /* jump to beginning of application space */ __asm__ volatile("jmp 0x0000"); } +/* Breathing animation on L LED indicates bootloader is running */ +uint16_t LLEDPulse; +void LEDPulse(void) +{ + LLEDPulse++; + uint8_t p = LLEDPulse >> 8; + if (p > 127) + p = 254-p; + p += p; + if (((uint8_t)LLEDPulse) > p) + L_LED_OFF(); + else + L_LED_ON(); +} + /** Main program entry point. This routine configures the hardware required by the bootloader, then continuously * runs the bootloader processing routine until instructed to soft-exit, or hard-reset via the watchdog to start * the loaded application code. */ int main(void) { + /* Watchdog may be configured with a 15 ms period so must disable it before doing anything else */ wdt_disable(); /* Setup hardware required for the bootloader */ @@ -88,10 +120,11 @@ int main(void) { CDC_Task(); USB_USBTask(); - /* time out and start the sketch if one is present - * TODO - handle ctr now that TIMER1 is gone */ -// if (ctr++ > 10000 && pgm_read_word(0) != 0xFFFF) -// RunBootloader = false; + /* Time out and start the sketch if one is present */ + if (Timeout > 8000 && pgm_read_word(0) != 0xFFFF) + RunBootloader = false; + + LEDPulse(); } /* Disconnect from the host - USB interface will be reset later along with the AVR */ @@ -114,11 +147,39 @@ void SetupHardware(void) /* Relocate the interrupt vector table to the bootloader section */ MCUCR = (1 << IVCE); MCUCR = (1 << IVSEL); + + LED_SETUP(); + CPU_PRESCALE(0); + L_LED_OFF(); + TX_LED_OFF(); + RX_LED_OFF(); + + /* Initialize TIMER1 to handle bootloader timeout and LED tasks. Compare match happens at approx. 1 ms interval */ + OCR1AH = 0; + OCR1AL = 250; + TIMSK1 = (1 << OCIE1A); + TCCR1B = ((1 << CS11) | (1 << CS10)); /* Initialize USB Subsystem */ USB_Init(); } +//uint16_t ctr = 0; +ISR(TIMER1_COMPA_vect, ISR_BLOCK) +{ + /* Reset counter */ + TCNT1H = 0; + TCNT1L = 0; + + /* Check whether the TX or RX LED one-shot period has elapsed. if so, turn off the LED */ + if (TxLEDPulse && !(--TxLEDPulse)) + TX_LED_OFF(); + if (RxLEDPulse && !(--RxLEDPulse)) + RX_LED_OFF(); + + Timeout++; +} + /** Event handler for the USB_ConfigurationChanged event. This configures the device's endpoints ready * to relay data to and from the attached USB host. */ @@ -345,6 +406,9 @@ static void WriteNextResponseByte(const uint8_t Response) /* Write the next byte to the IN endpoint */ Endpoint_Write_8(Response); + + TX_LED_ON(); + TxLEDPulse = TX_RX_LED_PULSE_PERIOD; } #define STK_OK 0x10 @@ -372,19 +436,13 @@ void CDC_Task(void) /* Check if endpoint has a command in it sent from the host */ if (!(Endpoint_IsOUTReceived())) return; + + RX_LED_ON(); + RxLEDPulse = TX_RX_LED_PULSE_PERIOD; /* Read in the bootloader command (first byte sent from host) */ uint8_t Command = FetchNextCommandByte(); - /* - if (STK_UNIVERSAL == Command) { - WriteNextResponseByte(')'); - } else { - WriteNextResponseByte(Command); - } - */ - - if (Command == 'E') { RunBootloader = false; diff --git a/bootloaders/caterina_LUFA/Caterina.h b/bootloaders/caterina_LUFA/Caterina.h index 4260166..7f37063 100755 --- a/bootloaders/caterina_LUFA/Caterina.h +++ b/bootloaders/caterina_LUFA/Caterina.h @@ -62,13 +62,26 @@ #define BOOTLOADER_HWVERSION_MINOR 0x00 /** Eight character bootloader firmware identifier reported to the host when requested */ - #define SOFTWARE_IDENTIFIER "LUFACDC" + #define SOFTWARE_IDENTIFIER "CATERINA" + + #define CPU_PRESCALE(n) (CLKPR = 0x80, CLKPR = (n)) + #define LED_SETUP() DDRC |= (1<<7); DDRB |= (1<<0); DDRD |= (1<<5); + #define L_LED_OFF() PORTC &= ~(1<<7) + #define L_LED_ON() PORTC |= (1<<7) + #define L_LED_TOGGLE() PORTC ^= (1<<7) + #define TX_LED_OFF() PORTD |= (1<<5) + #define TX_LED_ON() PORTD &= ~(1<<5) + #define RX_LED_OFF() PORTB |= (1<<0) + #define RX_LED_ON() PORTB &= ~(1<<0) /* Type Defines: */ /** Type define for a non-returning pointer to the start of the loaded application in flash memory. */ typedef void (*AppPtr_t)(void) ATTR_NO_RETURN; /* Function Prototypes: */ + void StartSketch(void); + void LEDPulse(); + void CDC_Task(void); void SetupHardware(void); diff --git a/bootloaders/caterina_LUFA/Caterina.hex b/bootloaders/caterina_LUFA/Caterina.hex index c3c1d93..5987d79 100644 --- a/bootloaders/caterina_LUFA/Caterina.hex +++ b/bootloaders/caterina_LUFA/Caterina.hex @@ -1,228 +1,246 @@ :1070000055C000006EC000006CC000006AC00000E7 :1070100068C0000066C0000064C0000062C00000DC -:1070200060C000005EC000001FC400005AC0000025 +:1070200060C000005EC00000B0C400005AC0000094 :1070300058C0000056C0000054C0000052C00000FC -:1070400050C000004EC000004CC000004AC000000C +:1070400050C0000078C000004CC000004AC00000E2 :1070500048C0000046C0000044C0000042C000001C :1070600040C000003EC000003CC000003AC000002C :1070700038C0000036C0000034C0000032C000003C :1070800030C000002EC000002CC000002AC000004C :1070900028C0000026C0000024C0000022C000005C :1070A00020C000001EC000001CC0000011241FBE34 -:1070B000CFEFDAE0DEBFCDBF11E0A0E0B1E0ECE859 -:1070C000FDE702C005900D92AC38B107D9F711E089 -:1070D000ACE8B1E001C01D92AA39B107E1F7FCD2DA -:1070E00053C68ECFF89481E085BF15BE0C94000086 -:1070F000089584E08093E9000DC08091E8008B77CB -:107100008093E80003C08EB3882351F08091E8009B -:1071100082FFF9CF8091E80085FFEFCF8091F100E9 -:107120000895982F83E08093E9008091E80085FD21 -:107130000DC08091E8008E778093E80003C08EB385 -:10714000882331F08091E80080FFF9CF9093F1001F -:1071500008954F925F926F927F928F929F92AF921B -:10716000BF92CF92DF92EF92FF920F931F93CF9334 -:10717000DF9384E08093E9008091E80082FF45C2BC -:10718000B8DF182F853419F41092080103C0843534 -:1071900019F4AFDF8DE00FC28C34E1F38035D1F309 -:1071A000843721F484E4BDDF80E005C2813611F428 -:1071B00089E501C28134B1F49CDF182F9ADF90E099 -:1071C000880F991FAA2797FDA095BA2F312F330F4B -:1071D00020E0442737FD4095542F822B932BA42B7E -:1071E000B52BBAC1803711F483E5E5C1833549F485 -:1071F000C0E0D1E0899195DF21E0C730D207D1F717 -:10720000DBC1863521F481E38CDF80E3D4C1833791 -:1072100031F487E886DF85E984DF8EE1CCC18536ED -:10722000B9F4E0E0F0E093E085E090935700E89552 -:1072300007B600FCFDCF80935700E89507B600FC29 -:10724000FDCFE058FF4FA0E7E030FA0771F7A2CF7B -:107250008C3651F44EDF809599E0E1E0F0E0082EA5 -:1072600090935700E89596CF823739F4E1E0F0E04B -:1072700089E08093570084919EC1863439F4E0E020 -:10728000F0E089E080935700849195C18E3439F401 -:10729000E3E0F0E089E08093570084918CC1813570 -:1072A00039F4E2E0F0E089E080935700849183C1F3 -:1072B000823631F489E535DF80E033DF80E87BC159 -:1072C000823419F0873609F0DBC013DF082F11DF95 -:1072D000F82E0FDF682E8554823008F06BC1902F96 -:1072E00080E0CF2DD0E0C82BD92B173609F04BC04A -:1072F00081E180935700E895DD24CC24C3943FC0FE -:10730000E0908C01F0908D0100918E0110918F0121 -:10731000B6E46B16D9F4ED2DF0E0EE29FF29E491E7 -:107320008E2FFFDEDD2081F082E090E0A0E0B0E073 -:10733000E80EF91E0A1F1B1FE0928C01F0928D01CE -:1073400000938E0110938F01DC2418C0D801C7016F -:10735000B695A7959795879501D5E3DE82E090E0F5 -:10736000A0E0B0E0E80EF91E0A1F1B1FE0928C019E -:10737000F0928D0100938E0110938F012197209739 -:1073800009F0BECF19C180908C0190908D01A09022 -:107390008E01B0908F0196E4691609F05DC083E01C -:1073A000F40180935700E89507B600FCFDCF54C068 -:1073B000F6E46F1661F5772031F1E0908C01F090E2 -:1073C0008D0100918E0110918F0193DED82ECC2477 -:1073D000852D90E08C299D29F7010C0140925700E2 -:1073E000E895112482E090E0A0E0B0E0E80EF91EFC -:1073F0000A1F1B1FE0928C01F0928D0100938E01F9 -:1074000010938F0102C075DE582E742423C0E090C3 -:107410008C01F0908D0100918E0110918F011695D5 -:107420000795F794E79465DE682FC7019FD4809194 -:107430008C0190918D01A0918E01B0918F010296E7 -:10744000A11DB11D80938C0190938D01A0938E019D -:10745000B0938F01219704C055247724442443948A -:10746000209709F0A5CF96E4691609F093CE85E040 -:10747000F40180935700E89507B600FCFDCF8ACE53 -:10748000833471F400918C0110918D0132DE90E013 -:1074900021E0F8010C0120935700E89511247ACEE1 -:1074A000833619F5E0908C01F0908D0100918E01EA -:1074B00010918F011EDEF701E16090E021E00C01E8 -:1074C00020935700E895112482E090E0A0E0B0E01E -:1074D000E80EF91E0A1F1B1FE0928C01F0928D012D -:1074E00000938E0110938F0155CE8D3661F4E0919B -:1074F0008C01F0918D0185E080935700E89507B6E7 -:1075000000FCFDCF47CE823551F4E0918C01F09123 -:107510008D0105911491812F04DE802F4CC084349D -:1075200021F5E0908C01F0908D0100918E01109179 -:107530008F0116950795F794E794DBDD682FC70157 -:1075400015D480918C0190918D01A0918E01B09104 -:107550008F010296A11DB11D80938C0190938D0126 -:10756000A0938E01B0938F0115CE843609F5E0907B -:107570008C01F0908D0100918E0110918F01D80146 -:10758000C701B695A79597958795E8D3CADD82E0A0 -:1075900090E0A0E0B0E0E80EF91E0A1F1B1FE09289 -:1075A0008C01F0928D0100938E0110938F0104C025 -:1075B0008B3111F08FE3B5DD83E08093E90090918A -:1075C000E8008091E8008E778093E80095FF04C082 -:1075D00010C08EB38823C9F08091E80080FFF9CFF6 -:1075E0008091E8008E778093E80003C08EB38823F3 -:1075F00061F08091E80080FFF9CF84E08093E9009A -:107600008091E8008B778093E800DF91CF911F9104 -:107610000F91FF90EF90DF90CF90BF90AF909F9031 -:107620008F907F906F905F904F900895909192010E -:10763000892F8F77813249F5809193018032A1F0B3 -:10764000813219F5913A09F58091E800877F80939E -:10765000E80089E091E067E070E0B7D18091E80050 -:107660008B778093E8000895913279F48091E80057 -:10767000877F8093E80089E091E067E070E009D2BD -:107680008091E8008E778093E800089582E061ECB5 -:1076900042E061D083E061E842E15DD084E060E8EF -:1076A00042E159C084B7877F84BF88E10FB6F89460 -:1076B00080936000109260000FBE80E090E020E8B0 -:1076C0000FB6F89420936100809361000FBE81E0B3 -:1076D00085BF82E085BFB0C088E10FB6F894809383 -:1076E0006000109260000FBEDDDF789402C031DDD3 -:1076F00023D3809108018823D1F78091E000816035 -:107700008093E000EFDC80E090E00895FA01923091 -:1077100071F0933089F0913029F480E191E022E119 -:1077200030E015C080E090E020E030E010C082E260 -:1077300091E02EE330E00BC0882329F480E691E04D -:1077400024E030E004C084E691E026E230E091835A -:107750008083C90108958093E9008091EB008160E6 -:107760008093EB001092ED006093EC004093ED00ED -:107770008091EE00881F8827881F089580919201CC -:1077800088238CF403C08EB38823B1F08091E80085 -:1077900082FFF9CF8091E8008B778093E80008950D -:1077A0008EB3882349F08091E80080FFF9CF809163 -:1077B000E8008E778093E8000895EF92FF920F9390 -:1077C0001F9345D04CD008ED10E0F80180818F77F1 -:1077D000808380818068808380818F7D808319BCD5 -:1077E0001EBA1092900180EEE82EF12CF7018081F4 -:1077F0008B7F8083F80180818160808380E060E0FE -:1078000042E0A9DFE1EEF0E080818E7F8083E2EE4E -:10781000F0E0808181608083808188608083F701CF -:1078200080818E7F8083F8018081806180831F91B9 -:107830000F91FF90EF900895E7EDF0E08081816077 -:1078400080838AE482BF81E080939101B6CFE8ED26 -:10785000F0E080818E7F80831092E2000895109284 -:10786000DA001092E10008951F920F920FB60F9266 -:1078700011242F933F934F935F936F937F938F9335 -:107880009F93AF93BF93EF93FF938091DA0080FFB4 -:107890001BC08091D80080FF17C08091DA008E7FD6 -:1078A0008093DA008091D90080FF0BC080E189BD10 -:1078B00082E189BD09B400FEFDCF81E08EBB3BD2E1 -:1078C00003C019BC1EBA37D28091E10080FF17C0F7 -:1078D0008091E20080FF13C08091E2008E7F809350 -:1078E000E2008091E20080618093E2008091D80004 -:1078F00080628093D80019BC85E08EBB1CD2809139 -:10790000E10084FF2CC08091E20084FF28C080E168 -:1079100089BD82E189BD09B400FEFDCF8091D80008 -:107920008F7D8093D8008091E1008F7E8093E1006D -:107930008091E2008F7E8093E2008091E20081607E -:107940008093E20080919001882331F48091E300DC -:1079500087FD02C081E001C084E08EBBECD1809144 -:10796000E10083FF21C08091E20083FF1DC0809170 -:10797000E100877F8093E10082E08EBB109290014E -:107980008091E1008E7F8093E1008091E2008E7F04 -:107990008093E2008091E20080618093E20080E0C9 -:1079A00060E042E0D8DEC7D1FF91EF91BF91AF9187 -:1079B0009F918F917F916F915F914F913F912F9107 -:1079C0000F900FBE0F901F9018959C014091980149 -:1079D000509199014617570718F4F90190E044C0F7 -:1079E0006115710511F0AB01F8CF8091E8008E7739 -:1079F0008093E80040E050E0F0CF8EB3882309F494 -:107A000044C0853009F443C08091E80083FF02C080 -:107A100081E008958091E80082FD31C08091E80006 -:107A200080FF22C08091F3009091F200782F60E0F7 -:107A3000292F30E0262B372B07C081918093F1004E -:107A4000415050402F5F3F4F4115510519F02830EC -:107A5000310598F390E02830310509F491E08091E8 -:107A6000E8008E778093E8004115510531F699239F -:107A700021F605C08EB3882341F0853041F0809116 -:107A8000E80082FFF7CF80E0089582E0089583E068 -:107A900008959C016115710529F48091E8008B77A8 -:107AA0008093E800F90126C08EB3882391F18530D8 -:107AB00091F18091E80083FF02C081E008958091F8 -:107AC000E80082FFF1CF06C08091F1008193615000 -:107AD000704059F02091F3008091F200322F20E0A5 -:107AE00090E0822B932B892B79F78091E8008B779C -:107AF0008093E80061157105B9F605C08EB388233F -:107B000041F0853041F08091E80080FFF7CF80E0C0 -:107B1000089582E0089583E008950F931F93DF9303 -:107B2000CF9300D0CDB7DEB7E2E9F1E08091F1006C -:107B3000819381E0EA39F807C9F778DD8091E800A0 -:107B400083FFE4C08091920190919301953009F4F4 -:107B50006DC0963040F4913081F1913070F09330E7 -:107B600009F0D4C02AC0983009F4A3C0993009F4B0 -:107B7000B2C0963009F0CAC07CC0803809F4C6C0D3 -:107B8000823809F0C3C08091960187708093E90024 -:107B90008091EB001092E9002091E800277F20936C -:107BA000E80090E025E0969587952A95E1F78170A9 -:107BB0008093F1001092F10087C0882319F0823081 -:107BC00009F0A4C08F71823009F0A0C080919401A7 -:107BD000882331F520919601277009F497C02093EE -:107BE000E9008091EB0080FF1BC0933021F480916D -:107BF000EB00806213C08091EB0080618093EB000A -:107C000081E090E002C0880F991F2A95E2F78093E7 -:107C1000EA001092EA008091EB0088608093EB000C -:107C20001092E9008091E800877F51C0882309F015 -:107C30006DC0109194011F770FB7F8948091E80000 -:107C4000877F8093E8009ADD8091E80080FFFCCF79 -:107C50008091E3008078812B8093E300806880939B -:107C6000E300112311F482E001C083E08EBB0FBF5B -:107C70004DC08058823008F049C0809194019091A5 -:107C8000950160919601AE014F5F5F4F3FDDBC01F2 -:107C9000009709F43BC08091E800877F8093E8005B -:107CA00089819A8192DE8091E8008B778093E80049 -:107CB0002DC0803859F58091E800877F8093E800D7 -:107CC000809190018093F1008091E8008E778093FD -:107CD000E80054DD1BC08823C9F4909194019230D0 -:107CE000A8F48091E800877F8093E800909390014A -:107CF00045DD80919001882331F48091E30087FD78 -:107D000002C081E001C084E08EBBC0DC8091E8004D -:107D100083FF0AC08091EB0080628093EB0080912A -:107D2000E800877F8093E8000F900F90CF91DF915C -:107D30001F910F91089508951F938EB3882361F0CA -:107D40001091E9001092E9008091E80083FF01C0E2 -:107D5000E4DE17701093E9001F910895F999FECFA2 -:107D600092BD81BDF89A992780B50895262FF9997B -:107D7000FECF1FBA92BD81BD20BD0FB6F894FA9A0E -:0C7D8000F99A0FBE01960895F894FFCF09 -:107D8C004C554641434443000100000000000008EC -:107D9C001201100102000008EB034A20010000014F -:107DAC00000109023E0002010080320904000001BA -:107DBC00020201000524001001042402040524061B -:107DCC000001070582030800FF09040100020A00F4 -:107DDC0000000705040210000107058302100001D2 -:107DEC0004030904260341005600520020004300FE -:107DFC0044004300200042006F006F0074006C00D0 -:0C7E0C006F00610064006500720000005F +:1070B000CFEFDAE0DEBFCDBF11E0A0E0B1E0EEEA55 +:1070C000FEE702C005900D92AE38B107D9F711E086 +:1070D000AEE8B1E001C01D92A43AB107E1F777D361 +:1070E000E4C68ECFF89410926F0010928100109237 +:1070F00085001092840081E085BF15BE47985D9A97 +:10710000289A0C94000008952091980130919901DB +:107110002F5F3F4F3093990120939801932F37FFB2 +:1071200003C08EEF831B982F990F921710F4479886 +:107130000895479A08951F920F920FB60F92112447 +:107140008F939F93109285001092840080918E01FE +:1071500090918F01009741F0019790938F01809358 +:107160008E01892B09F45D9A809190019091910193 +:10717000009741F001979093910180939001892BA2 +:1071800009F4289A8091920190919301019690932D +:107190009301809392019F918F910F900FBE0F905A +:1071A0001F90189584E08093E9000DC08091E8005D +:1071B0008B778093E80003C08EB3882351F08091D1 +:1071C000E80082FFF9CF8091E80085FFEFCF809142 +:1071D000F1000895982F83E08093E9008091E80002 +:1071E00085FD0DC08091E8008E778093E80003C094 +:1071F0008EB3882369F08091E80080FFF9CF9093E7 +:10720000F1005D9884E690E090938F0180938E0169 +:1072100008954F925F926F927F928F929F92AF925A +:10722000BF92CF92DF92EF92FF920F931F93CF9373 +:10723000DF9384E08093E9008091E80082FF4CC2F4 +:10724000289884E690E09093910180939001AADFC2 +:10725000182F853419F41092090103C0843519F4EC +:10726000A1DF8DE00FC28C34E1F38035D1F3843798 +:1072700021F484E4AFDF80E005C2813611F489E5B2 +:1072800001C28134B1F48EDF182F8CDF90E0880FBB +:10729000991FAA2797FDA095BA2F312F330F20E011 +:1072A000442737FD4095542F822B932BA42BB52BCD +:1072B000BAC1803711F483E5E5C1833549F4C0E0F4 +:1072C000D1E0899187DF21E0C730D207D1F7DBC158 +:1072D000863521F481E37EDF80E3D4C1833731F446 +:1072E00087E878DF85E976DF8EE1CCC18536B9F4B1 +:1072F000E0E0F0E093E085E090935700E89507B672 +:1073000000FCFDCF80935700E89507B600FCFDCF49 +:10731000E058FF4FA0E7E030FA0771F7A2CF8C36B4 +:1073200051F440DF809599E0E1E0F0E0082E909381 +:107330005700E89596CF823739F4E1E0F0E089E034 +:107340008093570084919EC1863439F4E0E0F0E0E8 +:1073500089E080935700849195C18E3439F4E3E03D +:10736000F0E089E08093570084918CC1813539F435 +:10737000E2E0F0E089E080935700849183C1823697 +:1073800031F489E527DF80E025DF80E87BC18234A6 +:1073900019F0873609F0DBC005DF082F03DFF82E70 +:1073A00001DF682E8554823008F06BC1902F80E099 +:1073B000CF2DD0E0C82BD92B173609F04BC081E177 +:1073C00080935700E895DD24CC24C3943FC0E0901F +:1073D0009401F09095010091960110919701B6E407 +:1073E0006B16D9F4ED2DF0E0EE29FF29E4918E2FF4 +:1073F000F1DEDD2081F082E090E0A0E0B0E0E80E78 +:10740000F91E0A1F1B1FE0929401F0929501009350 +:10741000960110939701DC2418C0D801C701B695D6 +:10742000A795979587952BD5D5DE82E090E0A0E0D3 +:10743000B0E0E80EF91E0A1F1B1FE0929401F092C3 +:10744000950100939601109397012197209709F0D9 +:10745000BECF19C18090940190909501A0909601A3 +:10746000B090970196E4691609F05DC083E0F401DD +:1074700080935700E89507B600FCFDCF54C0F6E4B2 +:107480006F1661F5772031F1E0909401F09095014D +:10749000009196011091970185DED82ECC24852D80 +:1074A00090E08C299D29F7010C0140925700E89546 +:1074B000112482E090E0A0E0B0E0E80EF91E0A1F7F +:1074C0001B1FE0929401F092950100939601109396 +:1074D000970102C067DE582E742423C0E090940107 +:1074E000F0909501009196011091970116950795DE +:1074F000F794E79457DE682FC701C9D480919401AF +:1075000090919501A0919601B09197010296A11DCD +:10751000B11D8093940190939501A0939601B0932F +:107520009701219704C0552477244424439420973D +:1075300009F0A5CF96E4691609F093CE85E0F40131 +:1075400080935700E89507B600FCFDCF8ACE8334C0 +:1075500071F4009194011091950124DE90E021E0F6 +:10756000F8010C0120935700E89511247ACE833658 +:1075700019F5E0909401F090950100919601109119 +:10758000970110DEF701E16090E021E00C0120930B +:107590005700E895112482E090E0A0E0B0E0E80E0A +:1075A000F91E0A1F1B1FE0929401F09295010093AF +:1075B00096011093970155CE8D3661F4E0919401B8 +:1075C000F091950185E080935700E89507B600FC9F +:1075D000FDCF47CE823551F4E0919401F0919501B1 +:1075E00005911491812FF6DD802F4CC0843421F554 +:1075F000E0909401F090950100919601109197010F +:1076000016950795F794E794CDDD682FC7013FD411 +:107610008091940190919501A0919601B09197016C +:107620000296A11DB11D8093940190939501A093A2 +:107630009601B093970115CE843609F5E090940138 +:10764000F09095010091960110919701D801C70122 +:10765000B695A7959795879512D4BCDD82E090E00A +:10766000A0E0B0E0E80EF91E0A1F1B1FE092940193 +:10767000F0929501009396011093970104C08B310D +:1076800011F08FE3A7DD83E08093E9009091E8009B +:107690008091E8008E778093E80095FF04C010C0C9 +:1076A0008EB38823C9F08091E80080FFF9CF8091E4 +:1076B000E8008E778093E80003C08EB3882361F0E2 +:1076C0008091E80080FFF9CF84E08093E900809109 +:1076D000E8008B778093E800DF91CF911F910F91A5 +:1076E000FF90EF90DF90CF90BF90AF909F908F90E2 +:1076F0007F906F905F904F90089590919C01892F9B +:107700008F77813249F580919D018032A1F08132DD +:1077100019F5913A09F58091E800877F8093E80098 +:107720008AE091E067E070E0E1D18091E8008B773A +:107730008093E8000895913279F48091E800877F82 +:107740008093E8008AE091E067E070E033D28091B6 +:10775000E8008E778093E800089582E061EC42E0D3 +:107760008BD083E061E842E187D084E060E842E1C9 +:1077700083C084B7877F84BF88E10FB6F894809375 +:107780006000109260000FBE20E880E090E00FB62D +:10779000F89420936100809361000FBE81E085BF63 +:1077A00092E095BF3F9A209A559AE1E6F0E0208357 +:1077B000108247985D9A289A109289008AEF8093E8 +:1077C000880090936F0083E080938100C6C0CF93C0 +:1077D000DF9388E10FB6F894809360001092600008 +:1077E0000FBEC7DF7894E0E0F0E0C591D49110C0FF +:1077F00010DD33D3809192019091930181549F4188 +:1078000030F08FEFCF3FD80711F0109209017CDCE8 +:1078100080910901882361F78091E0008160809365 +:10782000E00060DC80E090E0DF91CF910895FA0104 +:10783000923071F0933089F0913029F481E191E038 +:1078400022E130E015C080E090E020E030E010C0A0 +:1078500083E291E02EE330E00BC0882329F481E637 +:1078600091E024E030E004C085E691E026E230E0DB +:1078700091838083C90108958093E9008091EB0092 +:1078800081608093EB001092ED006093EC004093D8 +:10789000ED008091EE00881F8827881F0895809151 +:1078A0009C0188238CF403C08EB38823B1F08091AF +:1078B000E80082FFF9CF8091E8008B778093E800A1 +:1078C00008958EB3882349F08091E80080FFF9CFB6 +:1078D0008091E8008E778093E8000895EF92FF9200 +:1078E0000F931F9345D04CD008ED10E0F801808134 +:1078F0008F77808380818068808380818F7D808383 +:1079000019BC1EBA10929A0180EEE82EF12CF701F4 +:1079100080818B7F8083F80180818160808380E01B +:1079200060E042E0A9DFE1EEF0E080818E7F8083BD +:10793000E2EEF0E0808181608083808188608083D6 +:10794000F70180818E7F8083F80180818061808350 +:107950001F910F91FF90EF900895E7EDF0E0808187 +:10796000816080838AE482BF81E080939B01B6CFEF +:10797000E8EDF0E080818E7F80831092E200089530 +:107980001092DA001092E10008951F920F920FB644 +:107990000F9211242F933F934F935F936F937F9395 +:1079A0008F939F93AF93BF93EF93FF938091DA00F0 +:1079B00080FF1BC08091D80080FF17C08091DA0043 +:1079C0008E7F8093DA008091D90080FF0BC080E128 +:1079D00089BD82E189BD09B400FEFDCF81E08EBB87 +:1079E0003BD203C019BC1EBA37D28091E10080FFA0 +:1079F00017C08091E20080FF13C08091E2008E7F6B +:107A00008093E2008091E20080618093E2008091A7 +:107A1000D80080628093D80019BC85E08EBB1CD250 +:107A20008091E10084FF2CC08091E20084FF28C097 +:107A300080E189BD82E189BD09B400FEFDCF80915E +:107A4000D8008F7D8093D8008091E1008F7E809355 +:107A5000E1008091E2008F7E8093E2008091E2005D +:107A600081608093E20080919A01882331F48091B3 +:107A7000E30087FD02C081E001C084E08EBBECD151 +:107A80008091E10083FF21C08091E20083FF1DC04F +:107A90008091E100877F8093E10082E08EBB1092AD +:107AA0009A018091E1008E7F8093E1008091E20055 +:107AB0008E7F8093E2008091E20080618093E200FB +:107AC00080E060E042E0D8DEC7D1FF91EF91BF9146 +:107AD000AF919F918F917F916F915F914F913F9166 +:107AE0002F910F900FBE0F901F9018959C01409101 +:107AF000A2015091A3014617570718F4F90190E02D +:107B000044C06115710511F0AB01F8CF8091E80018 +:107B10008E778093E80040E050E0F0CF8EB388236A +:107B200009F444C0853009F443C08091E80083FF24 +:107B300002C081E008958091E80082FD31C080910B +:107B4000E80080FF22C08091F3009091F200782F2E +:107B500060E0292F30E0262B372B07C081918093DE +:107B6000F100415050402F5F3F4F4115510519F032 +:107B70002830310598F390E02830310509F491E080 +:107B80008091E8008E778093E8004115510531F629 +:107B9000992321F605C08EB3882341F0853041F04A +:107BA0008091E80082FFF7CF80E0089582E0089599 +:107BB00083E008959C016115710529F48091E80026 +:107BC0008B778093E800F90126C08EB3882391F16A +:107BD000853091F18091E80083FF02C081E0089533 +:107BE0008091E80082FFF1CF06C08091F10081937F +:107BF0006150704059F02091F3008091F200322FD3 +:107C000020E090E0822B932B892B79F78091E8007C +:107C10008B778093E80061157105B9F605C08EB3C6 +:107C2000882341F0853041F08091E80080FFF7CF54 +:107C300080E0089582E0089583E008950F931F93F4 +:107C4000DF93CF9300D0CDB7DEB7ECE9F1E08091C0 +:107C5000F100819381E0E43AF807C9F74EDD8091A5 +:107C6000E80083FFE4C080919C0190919D019530D4 +:107C700009F46DC0963040F4913081F1913070F08C +:107C8000933009F0D4C02AC0983009F4A3C09930C9 +:107C900009F4B2C0963009F0CAC07CC0803809F43B +:107CA000C6C0823809F0C3C08091A001877080935C +:107CB000E9008091EB001092E9002091E800277F15 +:107CC0002093E80090E025E0969587952A95E1F7C6 +:107CD00081708093F1001092F10087C0882319F021 +:107CE000823009F0A4C08F71823009F0A0C0809169 +:107CF0009E01882331F52091A001277009F497C0D7 +:107D00002093E9008091EB0080FF1BC0933021F4A9 +:107D10008091EB00806213C08091EB0080618093C2 +:107D2000EB0081E090E002C0880F991F2A95E2F7EE +:107D30008093EA001092EA008091EB0088608093C3 +:107D4000EB001092E9008091E800877F51C0882302 +:107D500009F06DC010919E011F770FB7F8948091C4 +:107D6000E800877F8093E8009ADD8091E80080FF3B +:107D7000FCCF8091E3008078812B8093E3008068C2 +:107D80008093E300112311F482E001C083E08EBBF5 +:107D90000FBF4DC08058823008F049C080919E01CD +:107DA00090919F016091A001AE014F5F5F4F3FDD59 +:107DB000BC01009709F43BC08091E800877F809365 +:107DC000E80089819A8192DE8091E8008B77809328 +:107DD000E8002DC0803859F58091E800877F8093B6 +:107DE000E80080919A018093F1008091E8008E77FD +:107DF0008093E80054DD1BC08823C9F490919E0154 +:107E00009230A8F48091E800877F8093E8009093F7 +:107E10009A0145DD80919A01882331F48091E30035 +:107E200087FD02C081E001C084E08EBB96DC8091BA +:107E3000E80083FF0AC08091EB0080628093EB0032 +:107E40008091E800877F8093E8000F900F90CF919A +:107E5000DF911F910F91089508951F938EB388238A +:107E600061F01091E9001092E9008091E80083FF31 +:107E700001C0E4DE17701093E9001F910895F9998D +:107E8000FECF92BD81BDF89A992780B50895262F1F +:107E9000F999FECF1FBA92BD81BD20BD0FB6F894EF +:0E7EA000FA9AF99A0FBE01960895F894FFCF52 +:107EAE004341544552494E4100010000000000007C +:107EBE00081201100102000008EB034A2001000025 +:107ECE0001000109023E0002010080320904000097 +:107EDE0001020201000524001001042402040524FD +:107EEE00060001070582030800FF09040100020ACB +:107EFE0000000007050402100001070583021000B0 +:107F0E0001040309042603410056005200200043D9 +:107F1E000044004300200042006F006F0074006CAC +:0E7F2E00006F0061006400650072000000003A :040000030000700089 :00000001FF diff --git a/bootloaders/caterina_LUFA/makefile b/bootloaders/caterina_LUFA/makefile index a647af0..5439b5b 100755 --- a/bootloaders/caterina_LUFA/makefile +++ b/bootloaders/caterina_LUFA/makefile @@ -424,7 +424,7 @@ OBJDUMP = avr-objdump SIZE = avr-size AR = avr-ar rcs NM = avr-nm -AVRDUDE = /Applications/avrdude -C /Applications/avrdude.conf +AVRDUDE = /Applications/avrdude -C /Applications/avrdude.conf -B 1 REMOVE = rm -f REMOVEDIR = rm -rf COPY = cp -- cgit v1.2.3-18-g5258