From c81a78446ce8a941bef3e5f4c8573f47a720d4de Mon Sep 17 00:00:00 2001 From: Tom Igoe Date: Sat, 7 Apr 2012 10:00:07 -0400 Subject: [PATCH] Deleted work directory files. --- build/linux/work/arduino | 22 - .../AnalogReadSerial/AnalogReadSerial.ino | 15 - .../01.Basics/BareMinimum/BareMinimum.ino | 9 - .../work/examples/01.Basics/Blink/Blink.ino | 19 - .../DigitalReadSerial/DigitalReadSerial.ino | 19 - .../work/examples/01.Basics/Fade/Fade.ino | 31 - .../BlinkWithoutDelay/BlinkWithoutDelay.ino | 65 - .../examples/02.Digital/Button/Button.ino | 56 - .../examples/02.Digital/Debounce/Debounce.ino | 75 - .../DigitalIputPullup/DigitalIputPullup.ino | 52 - .../StateChangeDetection.ino | 92 - .../02.Digital/toneKeyboard/pitches.h | 95 - .../02.Digital/toneKeyboard/toneKeyboard.ino | 45 - .../examples/02.Digital/toneMelody/pitches.h | 95 - .../02.Digital/toneMelody/toneMelody.ino | 49 - .../02.Digital/toneMultiple/pitches.h | 95 - .../02.Digital/toneMultiple/toneMultiple.ino | 42 - .../tonePitchFollower/tonePitchFollower.ino | 46 - .../AnalogInOutSerial/AnalogInOutSerial.ino | 53 - .../03.Analog/AnalogInput/AnalogInput.ino | 50 - .../AnalogWriteMega/AnalogWriteMega.ino | 45 - .../03.Analog/Calibration/Calibration.ino | 75 - .../work/examples/03.Analog/Fading/Fading.ino | 45 - .../03.Analog/Smoothing/Smoothing.ino | 67 - .../ASCIITable/ASCIITable.ino | 77 - .../04.Communication/Dimmer/Dimmer.ino | 112 - .../examples/04.Communication/Graph/Graph.ino | 149 - .../examples/04.Communication/MIDI/Midi.ino | 49 - .../MultiSerialMega/MultiSerialMega.ino | 33 - .../PhysicalPixel/PhysicalPixel.ino | 170 - .../SerialCallResponse/SerialCallResponse.ino | 211 - .../SerialCallResponseASCII.ino | 228 - .../SerialEvent/SerialEvent.ino | 60 - .../VirtualColorMixer/VirtualColorMixer.ino | 130 - .../examples/05.Control/Arrays/Arrays.ino | 57 - .../ForLoopIteration/ForLoopIteration.ino | 47 - .../IfStatementConditional.ino | 56 - .../WhileStatementConditional.ino | 88 - .../05.Control/switchCase/switchCase.ino | 62 - .../05.Control/switchCase2/switchCase2.ino | 66 - .../examples/06.Sensors/ADXL3xx/ADXL3xx.ino | 64 - .../work/examples/06.Sensors/Knock/Knock.ino | 55 - .../06.Sensors/Memsic2125/Memsic2125.ino | 63 - .../work/examples/06.Sensors/Ping/Ping.ino | 84 - .../RowColumnScanning/RowColumnScanning.ino | 114 - .../examples/07.Display/barGraph/barGraph.ino | 60 - .../.CharacterAnalysis.ino.swp | Bin 12288 -> 0 bytes .../CharacterAnalysis/CharacterAnalysis.ino | 84 - .../StringAdditionOperator.ino | 68 - .../StringAppendOperator.ino | 70 - .../StringCaseChanges/StringCaseChanges.ino | 41 - .../StringCharacters/StringCharacters.ino | 44 - .../StringComparisonOperators.ino | 129 - .../StringConstructors/StringConstructors.ino | 70 - .../StringIndexOf/StringIndexOf.ino | 65 - .../08.Strings/StringLength/StringLength.ino | 48 - .../StringLengthTrim/StringLengthTrim.ino | 40 - .../examples/08.Strings/StringReplace/.swp | Bin 12288 -> 0 bytes .../StringReplace/StringReplace.ino | 48 - .../StringStartsWithEndsWith.ino | 54 - .../StringSubstring/StringSubstring.ino | 41 - .../08.Strings/StringToInt/StringToInt.ino | 49 - .../StringToIntRGB/StringToIntRGB.ino | 235 - .../KeyboardLogout/KeyboardLogout.ino | 95 - .../KeyboardMessage/KeyboardMessage.ino | 47 - .../KeyboardReprogram/KeyboardReprogram.ino | 95 - .../KeyboardSerial/KeyboardSerial.ino | 36 - .../KeyboardAndMouseControl.ino | 94 - .../ButtonMouseControl/ButtonMouseControl.ino | 81 - .../JoystickMouseControl.ino | 121 - .../work/examples/ArduinoISP/ArduinoISP.ino | 554 - build/linux/work/hardware/arduino/boards.txt | 477 - .../bootloaders/atmega/ATmegaBOOT_168.c | 1054 - .../atmega/ATmegaBOOT_168_atmega1280.hex | 245 - .../atmega/ATmegaBOOT_168_atmega328.hex | 125 - .../ATmegaBOOT_168_atmega328_pro_8MHz.hex | 124 - .../atmega/ATmegaBOOT_168_diecimila.hex | 126 - .../bootloaders/atmega/ATmegaBOOT_168_ng.hex | 110 - .../atmega/ATmegaBOOT_168_pro_8MHz.hex | 126 - .../arduino/bootloaders/atmega/Makefile | 224 - .../arduino/bootloaders/atmega8/ATmegaBOOT.c | 507 - .../bootloaders/atmega8/ATmegaBOOT.hex | 66 - .../arduino/bootloaders/atmega8/Makefile | 88 - .../arduino/bootloaders/bt/ATmegaBOOT_168.c | 1038 - .../arduino/bootloaders/bt/ATmegaBOOT_168.hex | 121 - .../bt/ATmegaBOOT_168_atmega328_bt.hex | 162 - .../hardware/arduino/bootloaders/bt/Makefile | 109 - .../arduino/bootloaders/caterina/Caterina.c | 710 - .../arduino/bootloaders/caterina/Caterina.h | 99 - .../arduino/bootloaders/caterina/Caterina.hex | 256 - .../bootloaders/caterina/Descriptors.c | 265 - .../bootloaders/caterina/Descriptors.h | 139 - .../arduino/bootloaders/caterina/Makefile | 717 - .../bootloaders/lilypad/LilyPadBOOT_168.hex | 117 - .../bootloaders/lilypad/src/ATmegaBOOT.c | 979 - .../arduino/bootloaders/lilypad/src/Makefile | 84 - .../arduino/bootloaders/optiboot/Makefile | 451 - .../arduino/bootloaders/optiboot/README.TXT | 81 - .../arduino/bootloaders/optiboot/boot.h | 848 - .../arduino/bootloaders/optiboot/makeall | 20 - .../arduino/bootloaders/optiboot/omake | 2 - .../arduino/bootloaders/optiboot/omake.bat | 1 - .../arduino/bootloaders/optiboot/optiboot.c | 672 - .../optiboot/optiboot_atmega168.hex | 35 - .../optiboot/optiboot_atmega168.lst | 598 - .../optiboot/optiboot_atmega328-Mini.hex | 33 - .../optiboot/optiboot_atmega328.hex | 35 - .../optiboot/optiboot_atmega328.lst | 598 - .../bootloaders/optiboot/optiboot_atmega8.hex | 33 - .../bootloaders/optiboot/optiboot_atmega8.lst | 604 - .../arduino/bootloaders/optiboot/pin_defs.h | 80 - .../arduino/bootloaders/optiboot/stk500.h | 39 - .../arduino/bootloaders/stk500v2/License.txt | 280 - .../arduino/bootloaders/stk500v2/Makefile | 588 - .../bootloaders/stk500v2/STK500V2.pnproj | 1 - .../bootloaders/stk500v2/STK500V2.pnps | 1 - .../bootloaders/stk500v2/avrinterruptnames.h | 742 - .../arduino/bootloaders/stk500v2/command.h | 114 - .../arduino/bootloaders/stk500v2/stk500boot.c | 1996 -- .../bootloaders/stk500v2/stk500boot.ppg | 1 - .../stk500v2/stk500boot_v2_mega2560.hex | 513 - .../hardware/arduino/cores/arduino/Arduino.h | 215 - .../hardware/arduino/cores/arduino/CDC.cpp | 234 - .../hardware/arduino/cores/arduino/Client.h | 26 - .../hardware/arduino/cores/arduino/HID.cpp | 520 - .../arduino/cores/arduino/HardwareSerial.cpp | 428 - .../arduino/cores/arduino/HardwareSerial.h | 81 - .../arduino/cores/arduino/IPAddress.cpp | 56 - .../arduino/cores/arduino/IPAddress.h | 76 - .../hardware/arduino/cores/arduino/Platform.h | 23 - .../hardware/arduino/cores/arduino/Print.cpp | 263 - .../hardware/arduino/cores/arduino/Print.h | 78 - .../arduino/cores/arduino/Printable.h | 40 - .../hardware/arduino/cores/arduino/Server.h | 9 - .../hardware/arduino/cores/arduino/Stream.cpp | 246 - .../hardware/arduino/cores/arduino/Stream.h | 94 - .../hardware/arduino/cores/arduino/Tone.cpp | 601 - .../hardware/arduino/cores/arduino/USBAPI.h | 195 - .../arduino/cores/arduino/USBCore.cpp | 668 - .../hardware/arduino/cores/arduino/USBCore.h | 303 - .../hardware/arduino/cores/arduino/USBDesc.h | 67 - .../work/hardware/arduino/cores/arduino/Udp.h | 88 - .../arduino/cores/arduino/WCharacter.h | 168 - .../arduino/cores/arduino/WInterrupts.c | 298 - .../hardware/arduino/cores/arduino/WMath.cpp | 60 - .../arduino/cores/arduino/WString.cpp | 645 - .../hardware/arduino/cores/arduino/WString.h | 205 - .../hardware/arduino/cores/arduino/binary.h | 515 - .../hardware/arduino/cores/arduino/main.cpp | 20 - .../hardware/arduino/cores/arduino/new.cpp | 18 - .../work/hardware/arduino/cores/arduino/new.h | 22 - .../hardware/arduino/cores/arduino/wiring.c | 328 - .../arduino/cores/arduino/wiring_analog.c | 276 - .../arduino/cores/arduino/wiring_digital.c | 178 - .../arduino/cores/arduino/wiring_private.h | 69 - .../arduino/cores/arduino/wiring_pulse.c | 69 - .../arduino/cores/arduino/wiring_shift.c | 55 - ...dfu-usbserial-atmega16u2-Mega2560-Rev3.hex | 467 - ...-dfu-usbserial-atmega16u2-MegaADK-Rev3.hex | 467 - ...INED-dfu-usbserial-atmega16u2-Uno-Rev3.hex | 467 - .../MEGA-dfu_and_usbserial_combined.hex | 234 - .../hardware/arduino/firmwares/README.txt | 33 - .../UNO-dfu_and_usbserial_combined.hex | 234 - .../firmwares/arduino-usbdfu/Arduino-usbdfu.c | 728 - .../firmwares/arduino-usbdfu/Arduino-usbdfu.h | 220 - .../firmwares/arduino-usbdfu/Board/LEDs.h | 110 - .../firmwares/arduino-usbdfu/Descriptors.c | 189 - .../firmwares/arduino-usbdfu/Descriptors.h | 177 - .../arduino/firmwares/arduino-usbdfu/makefile | 710 - .../firmwares/arduino-usbdfu/readme.txt | 7 - ...ino-usbserial-atmega16u2-Mega2560-Rev3.hex | 254 - ...uino-usbserial-atmega16u2-MegaADK-Rev3.hex | 254 - .../Arduino-usbserial-atmega16u2-Uno-Rev3.hex | 254 - .../Arduino-usbserial-mega.hex | 256 - .../Arduino-usbserial-uno.hex | 256 - .../arduino-usbserial/Arduino-usbserial.c | 242 - .../arduino-usbserial/Arduino-usbserial.h | 79 - .../firmwares/arduino-usbserial/Board/LEDs.h | 110 - .../firmwares/arduino-usbserial/Descriptors.c | 277 - .../firmwares/arduino-usbserial/Descriptors.h | 88 - .../Lib/LightweightRingBuff.h | 197 - .../firmwares/arduino-usbserial/makefile | 776 - .../firmwares/arduino-usbserial/readme.txt | 13 - .../work/hardware/arduino/programmers.txt | 26 - .../variants/eightanaloginputs/pins_arduino.h | 27 - .../arduino/variants/leonardo/pins_arduino.h | 253 - .../arduino/variants/mega/pins_arduino.h | 363 - .../arduino/variants/micro/pins_arduino.h | 27 - .../arduino/variants/standard/pins_arduino.h | 218 - .../work/hardware/tools/avr/bin.gcc/avr-cpp | Bin 230392 -> 0 bytes .../work/hardware/tools/avr/bin.gcc/avr-g++ | Bin 230392 -> 0 bytes .../work/hardware/tools/avr/bin.gcc/avr-gcc | Bin 230400 -> 0 bytes .../work/hardware/tools/avr/bin/avr-addr2line | Bin 546736 -> 0 bytes .../linux/work/hardware/tools/avr/bin/avr-ar | Bin 575152 -> 0 bytes .../linux/work/hardware/tools/avr/bin/avr-as | Bin 783472 -> 0 bytes .../linux/work/hardware/tools/avr/bin/avr-c++ | 1 - .../work/hardware/tools/avr/bin/avr-c++filt | Bin 546352 -> 0 bytes .../linux/work/hardware/tools/avr/bin/avr-cpp | 3 - .../linux/work/hardware/tools/avr/bin/avr-g++ | 3 - .../linux/work/hardware/tools/avr/bin/avr-gcc | 3 - .../work/hardware/tools/avr/bin/avr-gcc-4.3.2 | 1 - .../work/hardware/tools/avr/bin/avr-gccbug | 558 - .../linux/work/hardware/tools/avr/bin/avr-ld | Bin 914736 -> 0 bytes .../linux/work/hardware/tools/avr/bin/avr-nm | Bin 559688 -> 0 bytes .../work/hardware/tools/avr/bin/avr-objcopy | Bin 746536 -> 0 bytes .../work/hardware/tools/avr/bin/avr-objdump | Bin 810792 -> 0 bytes .../work/hardware/tools/avr/bin/avr-ranlib | Bin 575152 -> 0 bytes .../work/hardware/tools/avr/bin/avr-size | Bin 558320 -> 0 bytes .../work/hardware/tools/avr/bin/avr-strings | Bin 550800 -> 0 bytes .../work/hardware/tools/avr/bin/avr-strip | Bin 746568 -> 0 bytes .../work/hardware/tools/avr/lib/avr/bin/ar | 1 - .../work/hardware/tools/avr/lib/avr/bin/as | 1 - .../work/hardware/tools/avr/lib/avr/bin/ld | 1 - .../work/hardware/tools/avr/lib/avr/bin/nm | 1 - .../hardware/tools/avr/lib/avr/bin/objcopy | 1 - .../hardware/tools/avr/lib/avr/bin/objdump | 1 - .../hardware/tools/avr/lib/avr/bin/ranlib | 1 - .../work/hardware/tools/avr/lib/avr/bin/strip | 1 - .../tools/avr/lib/avr/include/alloca.h | 59 - .../tools/avr/lib/avr/include/assert.h | 112 - .../tools/avr/lib/avr/include/avr/boot.h | 677 - .../tools/avr/lib/avr/include/avr/builtins.h | 101 - .../tools/avr/lib/avr/include/avr/common.h | 293 - .../tools/avr/lib/avr/include/avr/crc16.h | 39 - .../tools/avr/lib/avr/include/avr/delay.h | 39 - .../tools/avr/lib/avr/include/avr/eeprom.h | 442 - .../avr/lib/avr/include/avr/eeprom.h.orig | 423 - .../tools/avr/lib/avr/include/avr/fuse.h | 264 - .../tools/avr/lib/avr/include/avr/interrupt.h | 344 - .../tools/avr/lib/avr/include/avr/io.h | 346 - .../tools/avr/lib/avr/include/avr/io1200.h | 270 - .../tools/avr/lib/avr/include/avr/io2313.h | 371 - .../tools/avr/lib/avr/include/avr/io2323.h | 204 - .../tools/avr/lib/avr/include/avr/io2333.h | 444 - .../tools/avr/lib/avr/include/avr/io2343.h | 209 - .../tools/avr/lib/avr/include/avr/io43u32x.h | 436 - .../tools/avr/lib/avr/include/avr/io43u35x.h | 428 - .../tools/avr/lib/avr/include/avr/io4414.h | 485 - .../tools/avr/lib/avr/include/avr/io4433.h | 473 - .../tools/avr/lib/avr/include/avr/io4434.h | 567 - .../tools/avr/lib/avr/include/avr/io58u54a.h | 1558 -- .../tools/avr/lib/avr/include/avr/io76c711.h | 493 - .../tools/avr/lib/avr/include/avr/io8515.h | 486 - .../tools/avr/lib/avr/include/avr/io8534.h | 216 - .../tools/avr/lib/avr/include/avr/io8535.h | 568 - .../tools/avr/lib/avr/include/avr/io86r401.h | 308 - .../tools/avr/lib/avr/include/avr/io90pwm1.h | 1121 - .../avr/lib/avr/include/avr/io90pwm216.h | 1181 -- .../tools/avr/lib/avr/include/avr/io90pwm2b.h | 1383 -- .../avr/lib/avr/include/avr/io90pwm316.h | 1224 -- .../tools/avr/lib/avr/include/avr/io90pwm3b.h | 1383 -- .../tools/avr/lib/avr/include/avr/io90pwmx.h | 1371 -- .../tools/avr/lib/avr/include/avr/ioat94k.h | 557 - .../tools/avr/lib/avr/include/avr/iocan128.h | 94 - .../tools/avr/lib/avr/include/avr/iocan32.h | 94 - .../tools/avr/lib/avr/include/avr/iocan64.h | 94 - .../tools/avr/lib/avr/include/avr/iocanxx.h | 1978 -- .../tools/avr/lib/avr/include/avr/iom103.h | 675 - .../tools/avr/lib/avr/include/avr/iom128.h | 1203 -- .../tools/avr/lib/avr/include/avr/iom1280.h | 94 - .../tools/avr/lib/avr/include/avr/iom1281.h | 94 - .../tools/avr/lib/avr/include/avr/iom1284p.h | 1132 -- .../tools/avr/lib/avr/include/avr/iom16.h | 614 - .../tools/avr/lib/avr/include/avr/iom161.h | 673 - .../tools/avr/lib/avr/include/avr/iom162.h | 951 - .../tools/avr/lib/avr/include/avr/iom163.h | 639 - .../tools/avr/lib/avr/include/avr/iom164.h | 88 - .../tools/avr/lib/avr/include/avr/iom165.h | 820 - .../tools/avr/lib/avr/include/avr/iom165p.h | 822 - .../tools/avr/lib/avr/include/avr/iom168.h | 91 - .../tools/avr/lib/avr/include/avr/iom168p.h | 874 - .../tools/avr/lib/avr/include/avr/iom169.h | 1107 - .../tools/avr/lib/avr/include/avr/iom169p.h | 1030 - .../tools/avr/lib/avr/include/avr/iom16hva.h | 75 - .../tools/avr/lib/avr/include/avr/iom2560.h | 94 - .../tools/avr/lib/avr/include/avr/iom2561.h | 94 - .../tools/avr/lib/avr/include/avr/iom32.h | 696 - .../tools/avr/lib/avr/include/avr/iom323.h | 688 - .../tools/avr/lib/avr/include/avr/iom324.h | 88 - .../tools/avr/lib/avr/include/avr/iom325.h | 821 - .../tools/avr/lib/avr/include/avr/iom3250.h | 911 - .../tools/avr/lib/avr/include/avr/iom328p.h | 875 - .../tools/avr/lib/avr/include/avr/iom329.h | 1003 - .../tools/avr/lib/avr/include/avr/iom3290.h | 1155 -- .../tools/avr/lib/avr/include/avr/iom32c1.h | 1146 -- .../tools/avr/lib/avr/include/avr/iom32hvb.h | 885 - .../tools/avr/lib/avr/include/avr/iom32m1.h | 1394 -- .../tools/avr/lib/avr/include/avr/iom32u4.h | 1504 -- .../tools/avr/lib/avr/include/avr/iom32u6.h | 1411 -- .../tools/avr/lib/avr/include/avr/iom406.h | 768 - .../tools/avr/lib/avr/include/avr/iom48.h | 87 - .../tools/avr/lib/avr/include/avr/iom48p.h | 868 - .../tools/avr/lib/avr/include/avr/iom64.h | 1227 -- .../tools/avr/lib/avr/include/avr/iom640.h | 94 - .../tools/avr/lib/avr/include/avr/iom644.h | 94 - .../tools/avr/lib/avr/include/avr/iom645.h | 816 - .../tools/avr/lib/avr/include/avr/iom6450.h | 907 - .../tools/avr/lib/avr/include/avr/iom649.h | 992 - .../tools/avr/lib/avr/include/avr/iom6490.h | 1144 -- .../tools/avr/lib/avr/include/avr/iom8.h | 614 - .../tools/avr/lib/avr/include/avr/iom8515.h | 636 - .../tools/avr/lib/avr/include/avr/iom8535.h | 715 - .../tools/avr/lib/avr/include/avr/iom88.h | 91 - .../tools/avr/lib/avr/include/avr/iom88p.h | 874 - .../tools/avr/lib/avr/include/avr/iom8hva.h | 70 - .../tools/avr/lib/avr/include/avr/iomx8.h | 735 - .../tools/avr/lib/avr/include/avr/iomxx0_1.h | 1553 -- .../tools/avr/lib/avr/include/avr/iomxx4.h | 867 - .../tools/avr/lib/avr/include/avr/iomxxhva.h | 523 - .../tools/avr/lib/avr/include/avr/iotn11.h | 234 - .../tools/avr/lib/avr/include/avr/iotn12.h | 265 - .../tools/avr/lib/avr/include/avr/iotn13.h | 364 - .../tools/avr/lib/avr/include/avr/iotn13a.h | 389 - .../tools/avr/lib/avr/include/avr/iotn15.h | 333 - .../tools/avr/lib/avr/include/avr/iotn167.h | 832 - .../tools/avr/lib/avr/include/avr/iotn22.h | 205 - .../tools/avr/lib/avr/include/avr/iotn2313.h | 633 - .../tools/avr/lib/avr/include/avr/iotn24.h | 89 - .../tools/avr/lib/avr/include/avr/iotn25.h | 89 - .../tools/avr/lib/avr/include/avr/iotn26.h | 385 - .../tools/avr/lib/avr/include/avr/iotn261.h | 88 - .../tools/avr/lib/avr/include/avr/iotn28.h | 275 - .../tools/avr/lib/avr/include/avr/iotn43u.h | 575 - .../tools/avr/lib/avr/include/avr/iotn44.h | 89 - .../tools/avr/lib/avr/include/avr/iotn45.h | 89 - .../tools/avr/lib/avr/include/avr/iotn461.h | 89 - .../tools/avr/lib/avr/include/avr/iotn48.h | 759 - .../tools/avr/lib/avr/include/avr/iotn84.h | 89 - .../tools/avr/lib/avr/include/avr/iotn85.h | 89 - .../tools/avr/lib/avr/include/avr/iotn861.h | 89 - .../tools/avr/lib/avr/include/avr/iotn88.h | 760 - .../tools/avr/lib/avr/include/avr/iotnx4.h | 453 - .../tools/avr/lib/avr/include/avr/iotnx5.h | 413 - .../tools/avr/lib/avr/include/avr/iotnx61.h | 515 - .../tools/avr/lib/avr/include/avr/iousb1286.h | 94 - .../tools/avr/lib/avr/include/avr/iousb1287.h | 94 - .../tools/avr/lib/avr/include/avr/iousb162.h | 94 - .../tools/avr/lib/avr/include/avr/iousb646.h | 94 - .../tools/avr/lib/avr/include/avr/iousb647.h | 94 - .../tools/avr/lib/avr/include/avr/iousb82.h | 88 - .../tools/avr/lib/avr/include/avr/iousbxx2.h | 766 - .../avr/lib/avr/include/avr/iousbxx6_7.h | 1285 -- .../tools/avr/lib/avr/include/avr/iox128a1.h | 7099 ------- .../tools/avr/lib/avr/include/avr/iox128a3.h | 6852 ------- .../tools/avr/lib/avr/include/avr/iox256a3.h | 6852 ------- .../tools/avr/lib/avr/include/avr/iox256a3b.h | 6854 ------- .../tools/avr/lib/avr/include/avr/iox64a1.h | 7099 ------- .../tools/avr/lib/avr/include/avr/iox64a3.h | 6852 ------- .../tools/avr/lib/avr/include/avr/lock.h | 239 - .../tools/avr/lib/avr/include/avr/parity.h | 39 - .../tools/avr/lib/avr/include/avr/pgmspace.h | 775 - .../tools/avr/lib/avr/include/avr/portpins.h | 373 - .../tools/avr/lib/avr/include/avr/power.h | 1260 -- .../tools/avr/lib/avr/include/avr/sfr_defs.h | 269 - .../tools/avr/lib/avr/include/avr/signal.h | 39 - .../tools/avr/lib/avr/include/avr/sleep.h | 456 - .../tools/avr/lib/avr/include/avr/version.h | 90 - .../tools/avr/lib/avr/include/avr/wdt.h | 392 - .../avr/lib/avr/include/compat/deprecated.h | 226 - .../tools/avr/lib/avr/include/compat/ina90.h | 99 - .../tools/avr/lib/avr/include/compat/twi.h | 38 - .../tools/avr/lib/avr/include/ctype.h | 193 - .../tools/avr/lib/avr/include/errno.h | 73 - .../tools/avr/lib/avr/include/inttypes.h | 533 - .../hardware/tools/avr/lib/avr/include/math.h | 473 - .../tools/avr/lib/avr/include/setjmp.h | 160 - .../tools/avr/lib/avr/include/stdint.h | 673 - .../tools/avr/lib/avr/include/stdio.h | 961 - .../tools/avr/lib/avr/include/stdlib.h | 595 - .../tools/avr/lib/avr/include/string.h | 154 - .../tools/avr/lib/avr/include/util/atomic.h | 306 - .../tools/avr/lib/avr/include/util/crc16.h | 336 - .../tools/avr/lib/avr/include/util/delay.h | 165 - .../avr/lib/avr/include/util/delay_basic.h | 113 - .../tools/avr/lib/avr/include/util/parity.h | 65 - .../tools/avr/lib/avr/include/util/setbaud.h | 229 - .../tools/avr/lib/avr/include/util/twi.h | 237 - .../tools/avr/lib/avr/lib/avr25/crt86401.o | Bin 3516 -> 0 bytes .../tools/avr/lib/avr/lib/avr25/crttn13.o | Bin 3616 -> 0 bytes .../tools/avr/lib/avr/lib/avr25/crttn2313.o | Bin 3992 -> 0 bytes .../tools/avr/lib/avr/lib/avr25/crttn24.o | Bin 3908 -> 0 bytes .../tools/avr/lib/avr/lib/avr25/crttn25.o | Bin 3824 -> 0 bytes .../tools/avr/lib/avr/lib/avr25/crttn261.o | Bin 3992 -> 0 bytes .../tools/avr/lib/avr/lib/avr25/crttn43u.o | Bin 3868 -> 0 bytes .../tools/avr/lib/avr/lib/avr25/crttn44.o | Bin 3972 -> 0 bytes .../tools/avr/lib/avr/lib/avr25/crttn45.o | Bin 3888 -> 0 bytes .../tools/avr/lib/avr/lib/avr25/crttn461.o | Bin 4056 -> 0 bytes .../tools/avr/lib/avr/lib/avr25/crttn48.o | Bin 4100 -> 0 bytes .../tools/avr/lib/avr/lib/avr25/crttn84.o | Bin 3972 -> 0 bytes .../tools/avr/lib/avr/lib/avr25/crttn85.o | Bin 3888 -> 0 bytes .../tools/avr/lib/avr/lib/avr25/crttn861.o | Bin 4056 -> 0 bytes .../tools/avr/lib/avr/lib/avr25/crttn88.o | Bin 4100 -> 0 bytes .../tools/avr/lib/avr/lib/avr25/libc.a | Bin 573950 -> 0 bytes .../tools/avr/lib/avr/lib/avr25/libm.a | Bin 138184 -> 0 bytes .../avr/lib/avr/lib/avr25/libprintf_flt.a | Bin 13358 -> 0 bytes .../avr/lib/avr/lib/avr25/libprintf_min.a | Bin 7938 -> 0 bytes .../avr/lib/avr/lib/avr25/libscanf_flt.a | Bin 15720 -> 0 bytes .../avr/lib/avr/lib/avr25/libscanf_min.a | Bin 10320 -> 0 bytes .../tools/avr/lib/avr/lib/avr3/crt43320.o | Bin 3836 -> 0 bytes .../tools/avr/lib/avr/lib/avr3/crt43355.o | Bin 3836 -> 0 bytes .../tools/avr/lib/avr/lib/avr3/crt76711.o | Bin 3924 -> 0 bytes .../tools/avr/lib/avr/lib/avr3/crtm103.o | Bin 5108 -> 0 bytes .../tools/avr/lib/avr/lib/avr3/crtusb162.o | Bin 4540 -> 0 bytes .../tools/avr/lib/avr/lib/avr3/crtusb82.o | Bin 4540 -> 0 bytes .../tools/avr/lib/avr/lib/avr3/libc.a | Bin 576922 -> 0 bytes .../tools/avr/lib/avr/lib/avr3/libm.a | Bin 138544 -> 0 bytes .../avr/lib/avr/lib/avr3/libprintf_flt.a | Bin 13578 -> 0 bytes .../avr/lib/avr/lib/avr3/libprintf_min.a | Bin 8050 -> 0 bytes .../tools/avr/lib/avr/lib/avr3/libscanf_flt.a | Bin 16204 -> 0 bytes .../tools/avr/lib/avr/lib/avr3/libscanf_min.a | Bin 10556 -> 0 bytes .../tools/avr/lib/avr/lib/avr31/crt43320.o | Bin 3836 -> 0 bytes .../tools/avr/lib/avr/lib/avr31/crtm103.o | Bin 5108 -> 0 bytes .../tools/avr/lib/avr/lib/avr31/libc.a | Bin 576966 -> 0 bytes .../tools/avr/lib/avr/lib/avr31/libm.a | Bin 138544 -> 0 bytes .../avr/lib/avr/lib/avr31/libprintf_flt.a | Bin 13578 -> 0 bytes .../avr/lib/avr/lib/avr31/libprintf_min.a | Bin 8054 -> 0 bytes .../avr/lib/avr/lib/avr31/libscanf_flt.a | Bin 16204 -> 0 bytes .../avr/lib/avr/lib/avr31/libscanf_min.a | Bin 10560 -> 0 bytes .../tools/avr/lib/avr/lib/avr35/crttn167.o | Bin 4144 -> 0 bytes .../tools/avr/lib/avr/lib/avr35/crtusb162.o | Bin 4540 -> 0 bytes .../tools/avr/lib/avr/lib/avr35/crtusb82.o | Bin 4540 -> 0 bytes .../tools/avr/lib/avr/lib/avr35/libc.a | Bin 574394 -> 0 bytes .../tools/avr/lib/avr/lib/avr35/libm.a | Bin 138184 -> 0 bytes .../avr/lib/avr/lib/avr35/libprintf_flt.a | Bin 13418 -> 0 bytes .../avr/lib/avr/lib/avr35/libprintf_min.a | Bin 7962 -> 0 bytes .../avr/lib/avr/lib/avr35/libscanf_flt.a | Bin 15816 -> 0 bytes .../avr/lib/avr/lib/avr35/libscanf_min.a | Bin 10376 -> 0 bytes .../tools/avr/lib/avr/lib/avr4/crt90pwm1.o | Bin 4604 -> 0 bytes .../tools/avr/lib/avr/lib/avr4/crt90pwm2.o | Bin 4604 -> 0 bytes .../tools/avr/lib/avr/lib/avr4/crt90pwm2b.o | Bin 4604 -> 0 bytes .../tools/avr/lib/avr/lib/avr4/crt90pwm3.o | Bin 4604 -> 0 bytes .../tools/avr/lib/avr/lib/avr4/crt90pwm3b.o | Bin 4604 -> 0 bytes .../tools/avr/lib/avr/lib/avr4/crtm48.o | Bin 4352 -> 0 bytes .../tools/avr/lib/avr/lib/avr4/crtm48p.o | Bin 4352 -> 0 bytes .../tools/avr/lib/avr/lib/avr4/crtm8.o | Bin 4056 -> 0 bytes .../tools/avr/lib/avr/lib/avr4/crtm8515.o | Bin 3972 -> 0 bytes .../tools/avr/lib/avr/lib/avr4/crtm8535.o | Bin 4140 -> 0 bytes .../tools/avr/lib/avr/lib/avr4/crtm88.o | Bin 4352 -> 0 bytes .../tools/avr/lib/avr/lib/avr4/crtm88p.o | Bin 4352 -> 0 bytes .../tools/avr/lib/avr/lib/avr4/crtm8hva.o | Bin 4140 -> 0 bytes .../tools/avr/lib/avr/lib/avr4/libc.a | Bin 573314 -> 0 bytes .../tools/avr/lib/avr/lib/avr4/libm.a | Bin 137880 -> 0 bytes .../avr/lib/avr/lib/avr4/libprintf_flt.a | Bin 13306 -> 0 bytes .../avr/lib/avr/lib/avr4/libprintf_min.a | Bin 7934 -> 0 bytes .../tools/avr/lib/avr/lib/avr4/libscanf_flt.a | Bin 15720 -> 0 bytes .../tools/avr/lib/avr/lib/avr4/libscanf_min.a | Bin 10316 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/crt90pwm216.o | Bin 4672 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/crt90pwm316.o | Bin 4672 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/crtat94k.o | Bin 4848 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/crtcan128.o | Bin 5592 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/crtcan32.o | Bin 4892 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/crtcan64.o | Bin 4892 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/crtm128.o | Bin 5504 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/crtm1280.o | Bin 6472 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/crtm1281.o | Bin 6208 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/crtm1284p.o | Bin 5504 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/crtm16.o | Bin 4188 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/crtm161.o | Bin 4188 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/crtm162.o | Bin 4496 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/crtm163.o | Bin 4056 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/crtm164p.o | Bin 4628 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/crtm165.o | Bin 4232 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/crtm165p.o | Bin 4232 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/crtm168.o | Bin 4408 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/crtm168p.o | Bin 4408 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/crtm169.o | Bin 4276 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/crtm169p.o | Bin 4276 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/crtm16hva.o | Bin 4188 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/crtm32.o | Bin 4188 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/crtm323.o | Bin 4144 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/crtm324p.o | Bin 4628 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/crtm325.o | Bin 4276 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/crtm3250.o | Bin 4364 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/crtm3250p.o | Bin 4364 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/crtm325p.o | Bin 4276 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/crtm328p.o | Bin 4408 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/crtm329.o | Bin 4276 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/crtm3290.o | Bin 4364 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/crtm3290p.o | Bin 4364 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/crtm329p.o | Bin 4276 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/crtm32c1.o | Bin 4628 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/crtm32m1.o | Bin 4628 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/crtm32u4.o | Bin 5156 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/crtm406.o | Bin 4276 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/crtm64.o | Bin 4804 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/crtm640.o | Bin 5772 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/crtm644.o | Bin 4496 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/crtm644p.o | Bin 4628 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/crtm645.o | Bin 4276 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/crtm6450.o | Bin 4364 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/crtm649.o | Bin 4276 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/crtm6490.o | Bin 4364 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/crtusb1286.o | Bin 5636 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/crtusb1287.o | Bin 5636 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/crtusb646.o | Bin 4936 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/crtusb647.o | Bin 4936 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/libc.a | Bin 573738 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/libm.a | Bin 137880 -> 0 bytes .../avr/lib/avr/lib/avr5/libprintf_flt.a | Bin 13370 -> 0 bytes .../avr/lib/avr/lib/avr5/libprintf_min.a | Bin 7958 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/libscanf_flt.a | Bin 15816 -> 0 bytes .../tools/avr/lib/avr/lib/avr5/libscanf_min.a | Bin 10372 -> 0 bytes .../tools/avr/lib/avr/lib/avr51/crtcan128.o | Bin 5592 -> 0 bytes .../tools/avr/lib/avr/lib/avr51/crtm128.o | Bin 5504 -> 0 bytes .../tools/avr/lib/avr/lib/avr51/crtm1280.o | Bin 6472 -> 0 bytes .../tools/avr/lib/avr/lib/avr51/crtm1281.o | Bin 6208 -> 0 bytes .../tools/avr/lib/avr/lib/avr51/crtm1284p.o | Bin 5504 -> 0 bytes .../tools/avr/lib/avr/lib/avr51/crtusb1286.o | Bin 5636 -> 0 bytes .../tools/avr/lib/avr/lib/avr51/crtusb1287.o | Bin 5636 -> 0 bytes .../tools/avr/lib/avr/lib/avr51/libc.a | Bin 573786 -> 0 bytes .../tools/avr/lib/avr/lib/avr51/libm.a | Bin 137880 -> 0 bytes .../avr/lib/avr/lib/avr51/libprintf_flt.a | Bin 13370 -> 0 bytes .../avr/lib/avr/lib/avr51/libprintf_min.a | Bin 7962 -> 0 bytes .../avr/lib/avr/lib/avr51/libscanf_flt.a | Bin 15816 -> 0 bytes .../avr/lib/avr/lib/avr51/libscanf_min.a | Bin 10376 -> 0 bytes .../tools/avr/lib/avr/lib/avr6/crtm2560.o | Bin 6536 -> 0 bytes .../tools/avr/lib/avr/lib/avr6/crtm2561.o | Bin 6272 -> 0 bytes .../tools/avr/lib/avr/lib/avr6/libc.a | Bin 573898 -> 0 bytes .../tools/avr/lib/avr/lib/avr6/libm.a | Bin 137880 -> 0 bytes .../avr/lib/avr/lib/avr6/libprintf_flt.a | Bin 13370 -> 0 bytes .../avr/lib/avr/lib/avr6/libprintf_min.a | Bin 7958 -> 0 bytes .../tools/avr/lib/avr/lib/avr6/libscanf_flt.a | Bin 15816 -> 0 bytes .../tools/avr/lib/avr/lib/avr6/libscanf_min.a | Bin 10372 -> 0 bytes .../avr/lib/avr/lib/avrxmega5/crtx64a1.o | Bin 9492 -> 0 bytes .../tools/avr/lib/avr/lib/avrxmega5/libc.a | Bin 574170 -> 0 bytes .../tools/avr/lib/avr/lib/avrxmega5/libm.a | Bin 137984 -> 0 bytes .../avr/lib/avr/lib/avrxmega5/libprintf_flt.a | Bin 13374 -> 0 bytes .../avr/lib/avr/lib/avrxmega5/libprintf_min.a | Bin 7966 -> 0 bytes .../avr/lib/avr/lib/avrxmega5/libscanf_flt.a | Bin 15820 -> 0 bytes .../avr/lib/avr/lib/avrxmega5/libscanf_min.a | Bin 10380 -> 0 bytes .../avr/lib/avr/lib/avrxmega7/crtx128a1.o | Bin 9556 -> 0 bytes .../tools/avr/lib/avr/lib/avrxmega7/libc.a | Bin 574330 -> 0 bytes .../tools/avr/lib/avr/lib/avrxmega7/libm.a | Bin 137984 -> 0 bytes .../avr/lib/avr/lib/avrxmega7/libprintf_flt.a | Bin 13374 -> 0 bytes .../avr/lib/avr/lib/avrxmega7/libprintf_min.a | Bin 7966 -> 0 bytes .../avr/lib/avr/lib/avrxmega7/libscanf_flt.a | Bin 15820 -> 0 bytes .../avr/lib/avr/lib/avrxmega7/libscanf_min.a | Bin 10380 -> 0 bytes .../hardware/tools/avr/lib/avr/lib/crt86401.o | Bin 3516 -> 0 bytes .../hardware/tools/avr/lib/avr/lib/crtc8534.o | Bin 3556 -> 0 bytes .../hardware/tools/avr/lib/avr/lib/crts1200.o | Bin 3036 -> 0 bytes .../hardware/tools/avr/lib/avr/lib/crts2313.o | Bin 3656 -> 0 bytes .../hardware/tools/avr/lib/avr/lib/crts2323.o | Bin 3328 -> 0 bytes .../hardware/tools/avr/lib/avr/lib/crts2333.o | Bin 3784 -> 0 bytes .../hardware/tools/avr/lib/avr/lib/crts2343.o | Bin 3328 -> 0 bytes .../hardware/tools/avr/lib/avr/lib/crts4414.o | Bin 3804 -> 0 bytes .../hardware/tools/avr/lib/avr/lib/crts4433.o | Bin 3784 -> 0 bytes .../hardware/tools/avr/lib/avr/lib/crts4434.o | Bin 3972 -> 0 bytes .../hardware/tools/avr/lib/avr/lib/crts8515.o | Bin 3804 -> 0 bytes .../hardware/tools/avr/lib/avr/lib/crts8535.o | Bin 3972 -> 0 bytes .../hardware/tools/avr/lib/avr/lib/crttn11.o | Bin 3076 -> 0 bytes .../hardware/tools/avr/lib/avr/lib/crttn12.o | Bin 3116 -> 0 bytes .../hardware/tools/avr/lib/avr/lib/crttn13.o | Bin 3616 -> 0 bytes .../hardware/tools/avr/lib/avr/lib/crttn15.o | Bin 3240 -> 0 bytes .../hardware/tools/avr/lib/avr/lib/crttn22.o | Bin 3328 -> 0 bytes .../tools/avr/lib/avr/lib/crttn2313.o | Bin 3992 -> 0 bytes .../hardware/tools/avr/lib/avr/lib/crttn24.o | Bin 3908 -> 0 bytes .../hardware/tools/avr/lib/avr/lib/crttn25.o | Bin 3824 -> 0 bytes .../hardware/tools/avr/lib/avr/lib/crttn26.o | Bin 3700 -> 0 bytes .../hardware/tools/avr/lib/avr/lib/crttn261.o | Bin 3992 -> 0 bytes .../hardware/tools/avr/lib/avr/lib/crttn28.o | Bin 3116 -> 0 bytes .../hardware/tools/avr/lib/avr/lib/crttn44.o | Bin 3972 -> 0 bytes .../hardware/tools/avr/lib/avr/lib/crttn45.o | Bin 3888 -> 0 bytes .../hardware/tools/avr/lib/avr/lib/crttn461.o | Bin 4056 -> 0 bytes .../hardware/tools/avr/lib/avr/lib/crttn84.o | Bin 3972 -> 0 bytes .../hardware/tools/avr/lib/avr/lib/crttn85.o | Bin 3888 -> 0 bytes .../hardware/tools/avr/lib/avr/lib/crttn861.o | Bin 4056 -> 0 bytes .../tools/avr/lib/avr/lib/ldscripts/avr1.x | 228 - .../tools/avr/lib/avr/lib/ldscripts/avr1.xbn | 228 - .../tools/avr/lib/avr/lib/ldscripts/avr1.xn | 228 - .../tools/avr/lib/avr/lib/ldscripts/avr1.xr | 191 - .../tools/avr/lib/avr/lib/ldscripts/avr1.xu | 199 - .../tools/avr/lib/avr/lib/ldscripts/avr2.x | 228 - .../tools/avr/lib/avr/lib/ldscripts/avr2.xbn | 228 - .../tools/avr/lib/avr/lib/ldscripts/avr2.xn | 228 - .../tools/avr/lib/avr/lib/ldscripts/avr2.xr | 191 - .../tools/avr/lib/avr/lib/ldscripts/avr2.xu | 199 - .../tools/avr/lib/avr/lib/ldscripts/avr3.x | 228 - .../tools/avr/lib/avr/lib/ldscripts/avr3.xbn | 228 - .../tools/avr/lib/avr/lib/ldscripts/avr3.xn | 228 - .../tools/avr/lib/avr/lib/ldscripts/avr3.xr | 191 - .../tools/avr/lib/avr/lib/ldscripts/avr3.xu | 199 - .../tools/avr/lib/avr/lib/ldscripts/avr4.x | 228 - .../tools/avr/lib/avr/lib/ldscripts/avr4.xbn | 228 - .../tools/avr/lib/avr/lib/ldscripts/avr4.xn | 228 - .../tools/avr/lib/avr/lib/ldscripts/avr4.xr | 191 - .../tools/avr/lib/avr/lib/ldscripts/avr4.xu | 199 - .../tools/avr/lib/avr/lib/ldscripts/avr5.x | 228 - .../tools/avr/lib/avr/lib/ldscripts/avr5.xbn | 228 - .../tools/avr/lib/avr/lib/ldscripts/avr5.xn | 228 - .../tools/avr/lib/avr/lib/ldscripts/avr5.xr | 191 - .../tools/avr/lib/avr/lib/ldscripts/avr5.xu | 199 - .../tools/avr/lib/avr/lib/ldscripts/avr6.x | 228 - .../tools/avr/lib/avr/lib/ldscripts/avr6.xbn | 228 - .../tools/avr/lib/avr/lib/ldscripts/avr6.xn | 228 - .../tools/avr/lib/avr/lib/ldscripts/avr6.xr | 191 - .../tools/avr/lib/avr/lib/ldscripts/avr6.xu | 199 - .../avr/lib/avr/lib/ldscripts/avrxmega1.x | 228 - .../avr/lib/avr/lib/ldscripts/avrxmega1.xbn | 228 - .../avr/lib/avr/lib/ldscripts/avrxmega1.xn | 228 - .../avr/lib/avr/lib/ldscripts/avrxmega1.xr | 191 - .../avr/lib/avr/lib/ldscripts/avrxmega1.xu | 199 - .../avr/lib/avr/lib/ldscripts/avrxmega2.x | 228 - .../avr/lib/avr/lib/ldscripts/avrxmega2.xbn | 228 - .../avr/lib/avr/lib/ldscripts/avrxmega2.xn | 228 - .../avr/lib/avr/lib/ldscripts/avrxmega2.xr | 191 - .../avr/lib/avr/lib/ldscripts/avrxmega2.xu | 199 - .../avr/lib/avr/lib/ldscripts/avrxmega3.x | 228 - .../avr/lib/avr/lib/ldscripts/avrxmega3.xbn | 228 - .../avr/lib/avr/lib/ldscripts/avrxmega3.xn | 228 - .../avr/lib/avr/lib/ldscripts/avrxmega3.xr | 191 - .../avr/lib/avr/lib/ldscripts/avrxmega3.xu | 199 - .../avr/lib/avr/lib/ldscripts/avrxmega4.x | 228 - .../avr/lib/avr/lib/ldscripts/avrxmega4.xbn | 228 - .../avr/lib/avr/lib/ldscripts/avrxmega4.xn | 228 - .../avr/lib/avr/lib/ldscripts/avrxmega4.xr | 191 - .../avr/lib/avr/lib/ldscripts/avrxmega4.xu | 199 - .../avr/lib/avr/lib/ldscripts/avrxmega5.x | 228 - .../avr/lib/avr/lib/ldscripts/avrxmega5.xbn | 228 - .../avr/lib/avr/lib/ldscripts/avrxmega5.xn | 228 - .../avr/lib/avr/lib/ldscripts/avrxmega5.xr | 191 - .../avr/lib/avr/lib/ldscripts/avrxmega5.xu | 199 - .../avr/lib/avr/lib/ldscripts/avrxmega6.x | 228 - .../avr/lib/avr/lib/ldscripts/avrxmega6.xbn | 228 - .../avr/lib/avr/lib/ldscripts/avrxmega6.xn | 228 - .../avr/lib/avr/lib/ldscripts/avrxmega6.xr | 191 - .../avr/lib/avr/lib/ldscripts/avrxmega6.xu | 199 - .../avr/lib/avr/lib/ldscripts/avrxmega7.x | 228 - .../avr/lib/avr/lib/ldscripts/avrxmega7.xbn | 228 - .../avr/lib/avr/lib/ldscripts/avrxmega7.xn | 228 - .../avr/lib/avr/lib/ldscripts/avrxmega7.xr | 191 - .../avr/lib/avr/lib/ldscripts/avrxmega7.xu | 199 - .../hardware/tools/avr/lib/avr/lib/libc.a | Bin 576462 -> 0 bytes .../hardware/tools/avr/lib/avr/lib/libm.a | Bin 138544 -> 0 bytes .../tools/avr/lib/avr/lib/libprintf_flt.a | Bin 13518 -> 0 bytes .../tools/avr/lib/avr/lib/libprintf_min.a | Bin 8026 -> 0 bytes .../tools/avr/lib/avr/lib/libscanf_flt.a | Bin 16108 -> 0 bytes .../tools/avr/lib/avr/lib/libscanf_min.a | Bin 10500 -> 0 bytes .../avr/lib/gcc/avr/4.3.2/avr25/libgcc.a | Bin 188838 -> 0 bytes .../avr/lib/gcc/avr/4.3.2/avr25/libgcov.a | Bin 13608 -> 0 bytes .../tools/avr/lib/gcc/avr/4.3.2/avr3/libgcc.a | Bin 196002 -> 0 bytes .../avr/lib/gcc/avr/4.3.2/avr3/libgcov.a | Bin 13608 -> 0 bytes .../avr/lib/gcc/avr/4.3.2/avr31/libgcc.a | Bin 196002 -> 0 bytes .../avr/lib/gcc/avr/4.3.2/avr31/libgcov.a | Bin 13608 -> 0 bytes .../avr/lib/gcc/avr/4.3.2/avr35/libgcc.a | Bin 190186 -> 0 bytes .../avr/lib/gcc/avr/4.3.2/avr35/libgcov.a | Bin 13608 -> 0 bytes .../tools/avr/lib/gcc/avr/4.3.2/avr4/libgcc.a | Bin 187902 -> 0 bytes .../avr/lib/gcc/avr/4.3.2/avr4/libgcov.a | Bin 13608 -> 0 bytes .../tools/avr/lib/gcc/avr/4.3.2/avr5/libgcc.a | Bin 189250 -> 0 bytes .../avr/lib/gcc/avr/4.3.2/avr5/libgcov.a | Bin 13608 -> 0 bytes .../avr/lib/gcc/avr/4.3.2/avr51/libgcc.a | Bin 189250 -> 0 bytes .../avr/lib/gcc/avr/4.3.2/avr51/libgcov.a | Bin 13608 -> 0 bytes .../tools/avr/lib/gcc/avr/4.3.2/avr6/libgcc.a | Bin 189234 -> 0 bytes .../avr/lib/gcc/avr/4.3.2/avr6/libgcov.a | Bin 13608 -> 0 bytes .../avr/lib/gcc/avr/4.3.2/avrxmega5/libgcc.a | Bin 189262 -> 0 bytes .../avr/lib/gcc/avr/4.3.2/avrxmega5/libgcov.a | Bin 13608 -> 0 bytes .../avr/lib/gcc/avr/4.3.2/avrxmega7/libgcc.a | Bin 189250 -> 0 bytes .../avr/lib/gcc/avr/4.3.2/avrxmega7/libgcov.a | Bin 13608 -> 0 bytes .../hardware/tools/avr/lib/gcc/avr/4.3.2/cc1 | Bin 4988008 -> 0 bytes .../tools/avr/lib/gcc/avr/4.3.2/cc1plus | Bin 5610632 -> 0 bytes .../tools/avr/lib/gcc/avr/4.3.2/collect2 | Bin 117512 -> 0 bytes .../lib/gcc/avr/4.3.2/include-fixed/README | 14 - .../avr/lib/gcc/avr/4.3.2/include-fixed/fixed | 1 - .../lib/gcc/avr/4.3.2/include-fixed/limits.h | 103 - .../gcc/avr/4.3.2/include-fixed/syslimits.h | 8 - .../avr/lib/gcc/avr/4.3.2/include/float.h | 241 - .../avr/lib/gcc/avr/4.3.2/include/iso646.h | 48 - .../avr/lib/gcc/avr/4.3.2/include/stdarg.h | 133 - .../avr/lib/gcc/avr/4.3.2/include/stdbool.h | 53 - .../avr/lib/gcc/avr/4.3.2/include/stddef.h | 419 - .../avr/lib/gcc/avr/4.3.2/include/stdfix.h | 207 - .../avr/lib/gcc/avr/4.3.2/include/tgmath.h | 174 - .../avr/lib/gcc/avr/4.3.2/include/unwind.h | 279 - .../avr/lib/gcc/avr/4.3.2/include/varargs.h | 7 - .../gcc/avr/4.3.2/install-tools/fix-header | Bin 239208 -> 0 bytes .../gcc/avr/4.3.2/install-tools/fixinc_list | 1 - .../lib/gcc/avr/4.3.2/install-tools/fixproto | 340 - .../gcc/avr/4.3.2/install-tools/gsyslimits.h | 8 - .../avr/4.3.2/install-tools/include/limits.h | 103 - .../gcc/avr/4.3.2/install-tools/macro_list | 1 - .../avr/4.3.2/install-tools/mkheaders.conf | 5 - .../gcc/avr/4.3.2/install-tools/mkinstalldirs | 158 - .../tools/avr/lib/gcc/avr/4.3.2/libgcc.a | Bin 194698 -> 0 bytes .../tools/avr/lib/gcc/avr/4.3.2/libgcov.a | Bin 13608 -> 0 bytes .../work/hardware/tools/avr/lib/libgmp.so.3 | 1 - .../hardware/tools/avr/lib/libgmp.so.3.4.4 | Bin 268504 -> 0 bytes .../work/hardware/tools/avr/lib/libmpfr.so.1 | 1 - .../hardware/tools/avr/lib/libmpfr.so.1.2.0 | Bin 326560 -> 0 bytes .../avr/share/doc/binutils-avr/README.Debian | 8 - .../doc/binutils-avr/changelog.Debian.gz | Bin 2174 -> 0 bytes .../avr/share/doc/binutils-avr/copyright | 11 - .../tools/avr/share/doc/gcc-avr/README.Debian | 9 - .../avr/share/doc/gcc-avr/changelog.Debian.gz | Bin 2717 -> 0 bytes .../tools/avr/share/doc/gcc-avr/copyright | 9 - build/linux/work/hardware/tools/avrdude | Bin 960618 -> 0 bytes build/linux/work/hardware/tools/avrdude.conf | 16919 ---------------- build/linux/work/hardware/tools/avrdude64 | Bin 960618 -> 0 bytes build/linux/work/hardware/tools/readme.txt | 20 - build/linux/work/lib/RXTXcomm.jar | Bin 59467 -> 0 bytes build/linux/work/lib/about.jpg | Bin 106594 -> 0 bytes build/linux/work/lib/core.jar | Bin 173279 -> 0 bytes build/linux/work/lib/ecj.jar | Bin 1647271 -> 0 bytes build/linux/work/lib/jna.jar | Bin 625227 -> 0 bytes build/linux/work/lib/keywords.txt | 186 - build/linux/work/lib/librxtxSerial.so | Bin 182189 -> 0 bytes build/linux/work/lib/librxtxSerial64.so | Bin 182189 -> 0 bytes build/linux/work/lib/pde.jar | Bin 401211 -> 0 bytes build/linux/work/lib/preferences.txt | 257 - build/linux/work/lib/theme/buttons.gif | Bin 3331 -> 0 bytes build/linux/work/lib/theme/resize.gif | Bin 73 -> 0 bytes build/linux/work/lib/theme/tab-sel-left.gif | Bin 73 -> 0 bytes build/linux/work/lib/theme/tab-sel-menu.gif | Bin 114 -> 0 bytes build/linux/work/lib/theme/tab-sel-mid.gif | Bin 54 -> 0 bytes build/linux/work/lib/theme/tab-sel-right.gif | Bin 87 -> 0 bytes build/linux/work/lib/theme/tab-unsel-left.gif | Bin 73 -> 0 bytes build/linux/work/lib/theme/tab-unsel-menu.gif | Bin 114 -> 0 bytes build/linux/work/lib/theme/tab-unsel-mid.gif | Bin 54 -> 0 bytes .../linux/work/lib/theme/tab-unsel-right.gif | Bin 73 -> 0 bytes build/linux/work/lib/theme/theme.txt | 104 - build/linux/work/lib/version.txt | 1 - build/linux/work/libraries/EEPROM/EEPROM.cpp | 50 - build/linux/work/libraries/EEPROM/EEPROM.h | 35 - .../examples/eeprom_clear/eeprom_clear.ino | 23 - .../examples/eeprom_read/eeprom_read.ino | 39 - .../examples/eeprom_write/eeprom_write.ino | 38 - .../linux/work/libraries/EEPROM/keywords.txt | 18 - build/linux/work/libraries/Ethernet/Dhcp.cpp | 479 - build/linux/work/libraries/Ethernet/Dhcp.h | 178 - build/linux/work/libraries/Ethernet/Dns.cpp | 423 - build/linux/work/libraries/Ethernet/Dns.h | 41 - .../work/libraries/Ethernet/Ethernet.cpp | 121 - .../linux/work/libraries/Ethernet/Ethernet.h | 41 - .../libraries/Ethernet/EthernetClient.cpp | 165 - .../work/libraries/Ethernet/EthernetClient.h | 37 - .../libraries/Ethernet/EthernetServer.cpp | 91 - .../work/libraries/Ethernet/EthernetServer.h | 22 - .../work/libraries/Ethernet/EthernetUdp.cpp | 218 - .../work/libraries/Ethernet/EthernetUdp.h | 99 - .../BarometricPressureWebServer.ino | 222 - .../examples/ChatServer/ChatServer.ino | 78 - .../DhcpAddressPrinter/DhcpAddressPrinter.ino | 58 - .../DhcpChatServer/DhcpChatServer.ino | 85 - .../examples/DnsWebClient/DnsWebClient.ino | 80 - .../examples/PachubeClient/PachubeClient.ino | 162 - .../PachubeClientString.ino | 149 - .../examples/TelnetClient/TelnetClient.ino | 92 - .../examples/TwitterClient/TwitterClient.ino | 134 - .../UDPSendReceiveString.ino | 118 - .../examples/UdpNtpClient/UdpNtpClient.ino | 140 - .../Ethernet/examples/WebClient/WebClient.ino | 80 - .../Ethernet/examples/WebServer/WebServer.ino | 100 - .../work/libraries/Ethernet/keywords.txt | 37 - build/linux/work/libraries/Ethernet/util.h | 13 - .../libraries/Ethernet/utility/socket.cpp | 400 - .../work/libraries/Ethernet/utility/socket.h | 41 - .../work/libraries/Ethernet/utility/w5100.cpp | 188 - .../work/libraries/Ethernet/utility/w5100.h | 404 - build/linux/work/libraries/Firmata/Boards.h | 366 - .../linux/work/libraries/Firmata/Firmata.cpp | 444 - build/linux/work/libraries/Firmata/Firmata.h | 163 - .../linux/work/libraries/Firmata/LICENSE.txt | 458 - build/linux/work/libraries/Firmata/TODO.txt | 14 - .../AllInputsFirmata/AllInputsFirmata.ino | 90 - .../examples/AnalogFirmata/AnalogFirmata.ino | 94 - .../examples/EchoString/EchoString.ino | 46 - .../examples/I2CFirmata/I2CFirmata.ino | 228 - .../examples/OldStandardFirmata/LICENSE.txt | 458 - .../OldStandardFirmata/OldStandardFirmata.ino | 239 - .../examples/ServoFirmata/ServoFirmata.ino | 53 - .../SimpleAnalogFirmata.ino | 46 - .../SimpleDigitalFirmata.ino | 72 - .../examples/StandardFirmata/LICENSE.txt | 458 - .../StandardFirmata/StandardFirmata.ino | 636 - .../linux/work/libraries/Firmata/keywords.txt | 62 - .../libraries/LiquidCrystal/LiquidCrystal.cpp | 310 - .../libraries/LiquidCrystal/LiquidCrystal.h | 106 - .../examples/Autoscroll/Autoscroll.ino | 73 - .../LiquidCrystal/examples/Blink/Blink.ino | 61 - .../LiquidCrystal/examples/Cursor/Cursor.ino | 60 - .../CustomCharacter/CustomCharacter.ino | 138 - .../examples/Display/Display.ino | 60 - .../examples/HelloWorld/HelloWorld.ino | 58 - .../LiquidCrystal/examples/Scroll/Scroll.ino | 85 - .../examples/SerialDisplay/SerialDisplay.ino | 65 - .../examples/TextDirection/TextDirection.ino | 87 - .../examples/setCursor/setCursor.ino | 71 - .../work/libraries/LiquidCrystal/keywords.txt | 37 - build/linux/work/libraries/SD/File.cpp | 150 - build/linux/work/libraries/SD/README.txt | 13 - build/linux/work/libraries/SD/SD.cpp | 616 - build/linux/work/libraries/SD/SD.h | 103 - .../SD/examples/CardInfo/CardInfo.ino | 116 - .../SD/examples/Datalogger/Datalogger.ino | 91 - .../SD/examples/DumpFile/DumpFile.ino | 72 - .../libraries/SD/examples/Files/Files.ino | 83 - .../SD/examples/ReadWrite/ReadWrite.ino | 84 - .../SD/examples/listfiles/listfiles.ino | 82 - build/linux/work/libraries/SD/keywords.txt | 30 - .../work/libraries/SD/utility/FatStructs.h | 418 - .../work/libraries/SD/utility/Sd2Card.cpp | 644 - .../linux/work/libraries/SD/utility/Sd2Card.h | 233 - .../work/libraries/SD/utility/Sd2PinMap.h | 353 - build/linux/work/libraries/SD/utility/SdFat.h | 547 - .../work/libraries/SD/utility/SdFatUtil.h | 71 - .../work/libraries/SD/utility/SdFatmainpage.h | 202 - .../work/libraries/SD/utility/SdFile.cpp | 1253 -- .../linux/work/libraries/SD/utility/SdInfo.h | 232 - .../work/libraries/SD/utility/SdVolume.cpp | 295 - build/linux/work/libraries/SPI/SPI.cpp | 61 - build/linux/work/libraries/SPI/SPI.h | 70 - .../BarometricPressureSensor.ino | 143 - .../BarometricPressureSensor.ino | 143 - .../DigitalPotControl/DigitalPotControl.ino | 71 - build/linux/work/libraries/SPI/keywords.txt | 36 - build/linux/work/libraries/Servo/Servo.cpp | 337 - build/linux/work/libraries/Servo/Servo.h | 127 - .../libraries/Servo/examples/Knob/Knob.ino | 22 - .../libraries/Servo/examples/Sweep/Sweep.ino | 31 - build/linux/work/libraries/Servo/keywords.txt | 24 - .../SoftwareSerial/SoftwareSerial.cpp | 515 - .../libraries/SoftwareSerial/SoftwareSerial.h | 112 - .../SoftwareSerialExample.ino | 44 - .../TwoPortReceive/TwoPortReceive.ino | 82 - .../libraries/SoftwareSerial/keywords.txt | 27 - .../linux/work/libraries/Stepper/Stepper.cpp | 220 - build/linux/work/libraries/Stepper/Stepper.h | 83 - .../Stepper/examples/MotorKnob/MotorKnob.ino | 41 - .../stepper_oneRevolution.ino | 44 - .../stepper_oneStepAtATime.ino | 44 - .../stepper_speedControl.ino | 49 - .../linux/work/libraries/Stepper/keywords.txt | 28 - build/linux/work/libraries/Wire/Wire.cpp | 298 - build/linux/work/libraries/Wire/Wire.h | 79 - .../SFRRanger_reader/SFRRanger_reader.ino | 87 - .../digital_potentiometer.ino | 39 - .../examples/master_reader/master_reader.ino | 32 - .../examples/master_writer/master_writer.ino | 31 - .../slave_receiver/slave_receiver.ino | 38 - .../examples/slave_sender/slave_sender.ino | 32 - build/linux/work/libraries/Wire/keywords.txt | 31 - build/linux/work/libraries/Wire/utility/twi.c | 527 - build/linux/work/libraries/Wire/utility/twi.h | 53 - build/linux/work/reference/Abs.html | 112 - build/linux/work/reference/AnalogRead.html | 129 - .../linux/work/reference/AnalogReference.html | 116 - build/linux/work/reference/AnalogWrite.html | 135 - build/linux/work/reference/Arithmetic.html | 123 - build/linux/work/reference/Array.html | 142 - build/linux/work/reference/Assignment.html | 109 - .../linux/work/reference/AttachInterrupt.html | 138 - build/linux/work/reference/Bit.html | 108 - build/linux/work/reference/BitClear.html | 110 - build/linux/work/reference/BitRead.html | 110 - build/linux/work/reference/BitSet.html | 110 - build/linux/work/reference/BitWrite.html | 112 - build/linux/work/reference/Bitshift.html | 142 - build/linux/work/reference/BitwiseAnd.html | 192 - .../work/reference/BitwiseCompoundAnd.html | 149 - .../work/reference/BitwiseCompoundOr.html | 147 - build/linux/work/reference/BitwiseXorNot.html | 107 - build/linux/work/reference/Boolean.html | 134 - .../work/reference/BooleanVariables.html | 125 - build/linux/work/reference/Braces.html | 141 - build/linux/work/reference/Break.html | 107 - build/linux/work/reference/Byte.html | 101 - build/linux/work/reference/ByteCast.html | 105 - build/linux/work/reference/Changes.html | 123 - build/linux/work/reference/Char.html | 108 - build/linux/work/reference/CharCast.html | 105 - .../linux/work/reference/ClientAvailable.html | 209 - build/linux/work/reference/ClientConnect.html | 211 - .../linux/work/reference/ClientConnected.html | 207 - .../work/reference/ClientConstructor.html | 107 - build/linux/work/reference/ClientFlush.html | 106 - build/linux/work/reference/ClientPrint.html | 106 - build/linux/work/reference/ClientPrintln.html | 106 - build/linux/work/reference/ClientRead.html | 106 - build/linux/work/reference/ClientStop.html | 103 - build/linux/work/reference/ClientWrite.html | 103 - build/linux/work/reference/Comments.html | 111 - build/linux/work/reference/Comparison.html | 117 - build/linux/work/reference/Const.html | 113 - build/linux/work/reference/Constants.html | 135 - build/linux/work/reference/Constrain.html | 115 - build/linux/work/reference/Continue.html | 107 - build/linux/work/reference/Cos.html | 104 - build/linux/work/reference/Define.html | 122 - build/linux/work/reference/Delay.html | 131 - .../work/reference/DelayMicroseconds.html | 134 - .../linux/work/reference/DetachInterrupt.html | 99 - build/linux/work/reference/DigitalRead.html | 133 - build/linux/work/reference/DigitalWrite.html | 138 - build/linux/work/reference/DoWhile.html | 109 - build/linux/work/reference/Double.html | 101 - build/linux/work/reference/EEPROM.html | 98 - build/linux/work/reference/EEPROMRead.html | 137 - build/linux/work/reference/EEPROMWrite.html | 185 - build/linux/work/reference/Else.html | 125 - build/linux/work/reference/Ethernet.html | 142 - build/linux/work/reference/EthernetBegin.html | 185 - .../linux/work/reference/EthernetClient.html | 204 - .../work/reference/EthernetIPAddress.html | 194 - .../linux/work/reference/EthernetLocalIP.html | 195 - .../linux/work/reference/EthernetServer.html | 200 - .../work/reference/EthernetUDPAvailable.html | 221 - .../work/reference/EthernetUDPBegin.html | 189 - .../reference/EthernetUDPBeginPacket.html | 190 - .../work/reference/EthernetUDPEndPacket.html | 192 - .../reference/EthernetUDPParsePacket.html | 200 - .../linux/work/reference/EthernetUDPRead.html | 215 - .../work/reference/EthernetUDPRemoteIP.html | 207 - .../work/reference/EthernetUDPRemotePort.html | 215 - .../work/reference/EthernetUDPWrite.html | 188 - build/linux/work/reference/FAQ.html | 137 - build/linux/work/reference/FileAvailable.html | 110 - build/linux/work/reference/FileClose.html | 106 - build/linux/work/reference/FileFlush.html | 109 - .../linux/work/reference/FileIsDirectory.html | 213 - .../work/reference/FileOpenNextFile.html | 212 - build/linux/work/reference/FilePeek.html | 109 - build/linux/work/reference/FilePosition.html | 106 - build/linux/work/reference/FilePrint.html | 112 - build/linux/work/reference/FilePrintln.html | 112 - build/linux/work/reference/FileRead.html | 111 - .../work/reference/FileRewindDirectory.html | 215 - build/linux/work/reference/FileSeek.html | 108 - build/linux/work/reference/FileSize.html | 104 - build/linux/work/reference/FileWrite.html | 115 - build/linux/work/reference/Float.html | 123 - build/linux/work/reference/FloatCast.html | 108 - build/linux/work/reference/For.html | 147 - build/linux/work/reference/Fpconstants.html | 108 - build/linux/work/reference/Goto.html | 116 - .../linux/work/reference/Guide_ArduinoBT.html | 106 - .../Guide_ArduinoEthernetShield.html | 99 - .../work/reference/Guide_ArduinoLilyPad.html | 104 - .../work/reference/Guide_ArduinoMini.html | 129 - .../work/reference/Guide_ArduinoNano.html | 96 - .../work/reference/Guide_ArduinoPro.html | 119 - .../work/reference/Guide_ArduinoProMini.html | 113 - .../reference/Guide_ArduinoXbeeShield.html | 174 - .../work/reference/Guide_Environment.html | 209 - .../work/reference/Guide_Introduction.html | 102 - build/linux/work/reference/Guide_MacOSX.html | 152 - .../work/reference/Guide_Troubleshooting.html | 316 - build/linux/work/reference/Guide_Windows.html | 161 - build/linux/work/reference/Guide_index.html | 110 - build/linux/work/reference/HighByte.html | 106 - build/linux/work/reference/If.html | 133 - build/linux/work/reference/Include.html | 106 - build/linux/work/reference/Increment.html | 116 - .../work/reference/IncrementCompound.html | 115 - build/linux/work/reference/Int.html | 124 - build/linux/work/reference/IntCast.html | 105 - .../work/reference/IntegerConstants.html | 156 - build/linux/work/reference/Interrupts.html | 117 - build/linux/work/reference/Libraries.html | 147 - build/linux/work/reference/LiquidCrystal.html | 124 - .../reference/LiquidCrystalAutoscroll.html | 104 - .../work/reference/LiquidCrystalBegin.html | 105 - .../work/reference/LiquidCrystalBlink.html | 107 - .../work/reference/LiquidCrystalClear.html | 102 - .../reference/LiquidCrystalConstructor.html | 121 - .../reference/LiquidCrystalCreateChar.html | 132 - .../work/reference/LiquidCrystalCursor.html | 106 - .../work/reference/LiquidCrystalDisplay.html | 106 - .../work/reference/LiquidCrystalHome.html | 102 - .../reference/LiquidCrystalLeftToRight.html | 104 - .../reference/LiquidCrystalNoAutoscroll.html | 104 - .../work/reference/LiquidCrystalNoBlink.html | 106 - .../work/reference/LiquidCrystalNoCursor.html | 106 - .../reference/LiquidCrystalNoDisplay.html | 106 - .../work/reference/LiquidCrystalPrint.html | 178 - .../reference/LiquidCrystalRightToLeft.html | 104 - .../LiquidCrystalScrollDisplayLeft.html | 106 - .../LiquidCrystalScrollDisplayRight.html | 106 - .../reference/LiquidCrystalSetCursor.html | 105 - .../work/reference/LiquidCrystalWrite.html | 181 - build/linux/work/reference/Long.html | 110 - build/linux/work/reference/LongCast.html | 105 - build/linux/work/reference/Loop.html | 117 - build/linux/work/reference/LowByte.html | 106 - build/linux/work/reference/Map.html | 148 - build/linux/work/reference/Max.html | 121 - build/linux/work/reference/Micros.html | 123 - build/linux/work/reference/Millis.html | 125 - build/linux/work/reference/Min.html | 121 - build/linux/work/reference/Modulo.html | 133 - build/linux/work/reference/NoInterrupts.html | 115 - build/linux/work/reference/NoTone.html | 107 - build/linux/work/reference/PinMode.html | 132 - build/linux/work/reference/Pointer.html | 94 - build/linux/work/reference/Pow.html | 109 - build/linux/work/reference/PulseIn.html | 126 - build/linux/work/reference/Random.html | 139 - build/linux/work/reference/RandomSeed.html | 123 - build/linux/work/reference/Return.html | 126 - build/linux/work/reference/SD.html | 133 - build/linux/work/reference/SDCardNotes.html | 140 - build/linux/work/reference/SDbegin.html | 105 - build/linux/work/reference/SDexists.html | 105 - build/linux/work/reference/SDmkdir.html | 107 - build/linux/work/reference/SDopen.html | 111 - build/linux/work/reference/SDremove.html | 107 - build/linux/work/reference/SDrmdir.html | 107 - build/linux/work/reference/SPI.html | 141 - build/linux/work/reference/SPIBegin.html | 107 - build/linux/work/reference/SPIEnd.html | 107 - .../linux/work/reference/SPISetBitOrder.html | 107 - .../work/reference/SPISetClockDivider.html | 112 - .../linux/work/reference/SPISetDataMode.html | 108 - build/linux/work/reference/SPITransfer.html | 106 - build/linux/work/reference/Scope.html | 118 - build/linux/work/reference/SemiColon.html | 100 - build/linux/work/reference/Serial.html | 119 - .../work/reference/Serial_Available.html | 206 - build/linux/work/reference/Serial_Begin.html | 135 - build/linux/work/reference/Serial_End.html | 102 - build/linux/work/reference/Serial_Flush.html | 108 - build/linux/work/reference/Serial_Peek.html | 105 - build/linux/work/reference/Serial_Print.html | 229 - .../linux/work/reference/Serial_Println.html | 193 - build/linux/work/reference/Serial_Read.html | 128 - build/linux/work/reference/Serial_Write.html | 178 - .../linux/work/reference/ServerAvailable.html | 204 - build/linux/work/reference/ServerBegin.html | 198 - .../work/reference/ServerConstructor.html | 101 - build/linux/work/reference/ServerPrint.html | 106 - build/linux/work/reference/ServerPrintln.html | 106 - build/linux/work/reference/ServerWrite.html | 200 - build/linux/work/reference/Servo.html | 111 - build/linux/work/reference/ServoAttach.html | 125 - build/linux/work/reference/ServoAttached.html | 108 - build/linux/work/reference/ServoDetach.html | 105 - build/linux/work/reference/ServoRead.html | 107 - build/linux/work/reference/ServoWrite.html | 122 - .../reference/ServoWriteMicroseconds.html | 126 - build/linux/work/reference/Setup.html | 109 - build/linux/work/reference/ShiftIn.html | 112 - build/linux/work/reference/ShiftOut.html | 239 - build/linux/work/reference/Sin.html | 105 - build/linux/work/reference/Sizeof.html | 130 - .../linux/work/reference/SoftwareSerial.html | 196 - .../reference/SoftwareSerialAvailable.html | 133 - .../work/reference/SoftwareSerialBegin.html | 128 - .../reference/SoftwareSerialConstructor.html | 171 - .../reference/SoftwareSerialIsListening.html | 187 - .../work/reference/SoftwareSerialListen.html | 205 - .../reference/SoftwareSerialOverflow.html | 187 - .../work/reference/SoftwareSerialPrint.html | 199 - .../work/reference/SoftwareSerialPrintln.html | 199 - .../work/reference/SoftwareSerialRead.html | 118 - .../work/reference/SoftwareSerialWrite.html | 178 - build/linux/work/reference/Sqrt.html | 103 - build/linux/work/reference/Static.html | 146 - build/linux/work/reference/Stepper.html | 103 - .../work/reference/StepperBipolarCircuit.html | 95 - .../work/reference/StepperConstructor.html | 111 - .../linux/work/reference/StepperSetSpeed.html | 104 - build/linux/work/reference/StepperStep.html | 104 - .../reference/StepperUnipolarCircuit.html | 96 - build/linux/work/reference/String.html | 161 - build/linux/work/reference/StringClass.html | 3 - build/linux/work/reference/StringObject.html | 135 - build/linux/work/reference/SwitchCase.html | 131 - build/linux/work/reference/Tan.html | 105 - build/linux/work/reference/Tone.html | 121 - build/linux/work/reference/UnsignedChar.html | 106 - build/linux/work/reference/UnsignedInt.html | 120 - build/linux/work/reference/UnsignedLong.html | 124 - build/linux/work/reference/Void.html | 112 - build/linux/work/reference/Volatile.html | 125 - build/linux/work/reference/While.html | 110 - build/linux/work/reference/Wire.html | 109 - build/linux/work/reference/WireAvailable.html | 103 - build/linux/work/reference/WireBegin.html | 101 - .../work/reference/WireBeginTransmission.html | 103 - .../work/reference/WireEndTransmission.html | 107 - build/linux/work/reference/WireOnReceive.html | 102 - build/linux/work/reference/WireOnRequest.html | 102 - build/linux/work/reference/WireRead.html | 189 - .../linux/work/reference/WireRequestFrom.html | 105 - build/linux/work/reference/WireWrite.html | 199 - build/linux/work/reference/Word.html | 100 - build/linux/work/reference/WordCast.html | 109 - build/linux/work/reference/arduinoUno.css | 1 - build/linux/work/reference/arduinoWide.css | 1 - .../work/reference/arduinoWideRender.css | 1 - build/linux/work/reference/environment.html | 3 - build/linux/work/reference/img/logo.png | Bin 9181 -> 0 bytes build/linux/work/reference/index.html | 250 - build/linux/work/revisions.txt | 651 - build/linux/work/tools/Mangler/make.sh | 11 - .../linux/work/tools/Mangler/src/Mangler.java | 94 - build/linux/work/tools/howto.txt | 143 - 1094 files changed, 244188 deletions(-) delete mode 100755 build/linux/work/arduino delete mode 100644 build/linux/work/examples/01.Basics/AnalogReadSerial/AnalogReadSerial.ino delete mode 100644 build/linux/work/examples/01.Basics/BareMinimum/BareMinimum.ino delete mode 100644 build/linux/work/examples/01.Basics/Blink/Blink.ino delete mode 100644 build/linux/work/examples/01.Basics/DigitalReadSerial/DigitalReadSerial.ino delete mode 100644 build/linux/work/examples/01.Basics/Fade/Fade.ino delete mode 100644 build/linux/work/examples/02.Digital/BlinkWithoutDelay/BlinkWithoutDelay.ino delete mode 100644 build/linux/work/examples/02.Digital/Button/Button.ino delete mode 100644 build/linux/work/examples/02.Digital/Debounce/Debounce.ino delete mode 100644 build/linux/work/examples/02.Digital/DigitalIputPullup/DigitalIputPullup.ino delete mode 100644 build/linux/work/examples/02.Digital/StateChangeDetection/StateChangeDetection.ino delete mode 100644 build/linux/work/examples/02.Digital/toneKeyboard/pitches.h delete mode 100644 build/linux/work/examples/02.Digital/toneKeyboard/toneKeyboard.ino delete mode 100644 build/linux/work/examples/02.Digital/toneMelody/pitches.h delete mode 100644 build/linux/work/examples/02.Digital/toneMelody/toneMelody.ino delete mode 100644 build/linux/work/examples/02.Digital/toneMultiple/pitches.h delete mode 100644 build/linux/work/examples/02.Digital/toneMultiple/toneMultiple.ino delete mode 100644 build/linux/work/examples/02.Digital/tonePitchFollower/tonePitchFollower.ino delete mode 100644 build/linux/work/examples/03.Analog/AnalogInOutSerial/AnalogInOutSerial.ino delete mode 100644 build/linux/work/examples/03.Analog/AnalogInput/AnalogInput.ino delete mode 100644 build/linux/work/examples/03.Analog/AnalogWriteMega/AnalogWriteMega.ino delete mode 100644 build/linux/work/examples/03.Analog/Calibration/Calibration.ino delete mode 100644 build/linux/work/examples/03.Analog/Fading/Fading.ino delete mode 100644 build/linux/work/examples/03.Analog/Smoothing/Smoothing.ino delete mode 100644 build/linux/work/examples/04.Communication/ASCIITable/ASCIITable.ino delete mode 100644 build/linux/work/examples/04.Communication/Dimmer/Dimmer.ino delete mode 100644 build/linux/work/examples/04.Communication/Graph/Graph.ino delete mode 100644 build/linux/work/examples/04.Communication/MIDI/Midi.ino delete mode 100644 build/linux/work/examples/04.Communication/MultiSerialMega/MultiSerialMega.ino delete mode 100644 build/linux/work/examples/04.Communication/PhysicalPixel/PhysicalPixel.ino delete mode 100644 build/linux/work/examples/04.Communication/SerialCallResponse/SerialCallResponse.ino delete mode 100644 build/linux/work/examples/04.Communication/SerialCallResponseASCII/SerialCallResponseASCII.ino delete mode 100644 build/linux/work/examples/04.Communication/SerialEvent/SerialEvent.ino delete mode 100644 build/linux/work/examples/04.Communication/VirtualColorMixer/VirtualColorMixer.ino delete mode 100644 build/linux/work/examples/05.Control/Arrays/Arrays.ino delete mode 100644 build/linux/work/examples/05.Control/ForLoopIteration/ForLoopIteration.ino delete mode 100644 build/linux/work/examples/05.Control/IfStatementConditional/IfStatementConditional.ino delete mode 100644 build/linux/work/examples/05.Control/WhileStatementConditional/WhileStatementConditional.ino delete mode 100644 build/linux/work/examples/05.Control/switchCase/switchCase.ino delete mode 100644 build/linux/work/examples/05.Control/switchCase2/switchCase2.ino delete mode 100644 build/linux/work/examples/06.Sensors/ADXL3xx/ADXL3xx.ino delete mode 100644 build/linux/work/examples/06.Sensors/Knock/Knock.ino delete mode 100644 build/linux/work/examples/06.Sensors/Memsic2125/Memsic2125.ino delete mode 100644 build/linux/work/examples/06.Sensors/Ping/Ping.ino delete mode 100644 build/linux/work/examples/07.Display/RowColumnScanning/RowColumnScanning.ino delete mode 100644 build/linux/work/examples/07.Display/barGraph/barGraph.ino delete mode 100644 build/linux/work/examples/08.Strings/CharacterAnalysis/.CharacterAnalysis.ino.swp delete mode 100644 build/linux/work/examples/08.Strings/CharacterAnalysis/CharacterAnalysis.ino delete mode 100644 build/linux/work/examples/08.Strings/StringAdditionOperator/StringAdditionOperator.ino delete mode 100644 build/linux/work/examples/08.Strings/StringAppendOperator/StringAppendOperator.ino delete mode 100644 build/linux/work/examples/08.Strings/StringCaseChanges/StringCaseChanges.ino delete mode 100644 build/linux/work/examples/08.Strings/StringCharacters/StringCharacters.ino delete mode 100644 build/linux/work/examples/08.Strings/StringComparisonOperators/StringComparisonOperators.ino delete mode 100644 build/linux/work/examples/08.Strings/StringConstructors/StringConstructors.ino delete mode 100644 build/linux/work/examples/08.Strings/StringIndexOf/StringIndexOf.ino delete mode 100644 build/linux/work/examples/08.Strings/StringLength/StringLength.ino delete mode 100644 build/linux/work/examples/08.Strings/StringLengthTrim/StringLengthTrim.ino delete mode 100644 build/linux/work/examples/08.Strings/StringReplace/.swp delete mode 100644 build/linux/work/examples/08.Strings/StringReplace/StringReplace.ino delete mode 100644 build/linux/work/examples/08.Strings/StringStartsWithEndsWith/StringStartsWithEndsWith.ino delete mode 100644 build/linux/work/examples/08.Strings/StringSubstring/StringSubstring.ino delete mode 100644 build/linux/work/examples/08.Strings/StringToInt/StringToInt.ino delete mode 100644 build/linux/work/examples/08.Strings/StringToIntRGB/StringToIntRGB.ino delete mode 100644 build/linux/work/examples/09. USB (Leonardo only)/Keyboard/KeyboardLogout/KeyboardLogout.ino delete mode 100644 build/linux/work/examples/09. USB (Leonardo only)/Keyboard/KeyboardMessage/KeyboardMessage.ino delete mode 100644 build/linux/work/examples/09. USB (Leonardo only)/Keyboard/KeyboardReprogram/KeyboardReprogram.ino delete mode 100644 build/linux/work/examples/09. USB (Leonardo only)/Keyboard/KeyboardSerial/KeyboardSerial.ino delete mode 100644 build/linux/work/examples/09. USB (Leonardo only)/KeyboardAndMouseControl/KeyboardAndMouseControl.ino delete mode 100644 build/linux/work/examples/09. USB (Leonardo only)/Mouse/ButtonMouseControl/ButtonMouseControl.ino delete mode 100644 build/linux/work/examples/09. USB (Leonardo only)/Mouse/JoystickMouseControl/JoystickMouseControl.ino delete mode 100644 build/linux/work/examples/ArduinoISP/ArduinoISP.ino delete mode 100644 build/linux/work/hardware/arduino/boards.txt delete mode 100644 build/linux/work/hardware/arduino/bootloaders/atmega/ATmegaBOOT_168.c delete mode 100644 build/linux/work/hardware/arduino/bootloaders/atmega/ATmegaBOOT_168_atmega1280.hex delete mode 100644 build/linux/work/hardware/arduino/bootloaders/atmega/ATmegaBOOT_168_atmega328.hex delete mode 100644 build/linux/work/hardware/arduino/bootloaders/atmega/ATmegaBOOT_168_atmega328_pro_8MHz.hex delete mode 100644 build/linux/work/hardware/arduino/bootloaders/atmega/ATmegaBOOT_168_diecimila.hex delete mode 100644 build/linux/work/hardware/arduino/bootloaders/atmega/ATmegaBOOT_168_ng.hex delete mode 100644 build/linux/work/hardware/arduino/bootloaders/atmega/ATmegaBOOT_168_pro_8MHz.hex delete mode 100644 build/linux/work/hardware/arduino/bootloaders/atmega/Makefile delete mode 100644 build/linux/work/hardware/arduino/bootloaders/atmega8/ATmegaBOOT.c delete mode 100644 build/linux/work/hardware/arduino/bootloaders/atmega8/ATmegaBOOT.hex delete mode 100644 build/linux/work/hardware/arduino/bootloaders/atmega8/Makefile delete mode 100644 build/linux/work/hardware/arduino/bootloaders/bt/ATmegaBOOT_168.c delete mode 100644 build/linux/work/hardware/arduino/bootloaders/bt/ATmegaBOOT_168.hex delete mode 100644 build/linux/work/hardware/arduino/bootloaders/bt/ATmegaBOOT_168_atmega328_bt.hex delete mode 100644 build/linux/work/hardware/arduino/bootloaders/bt/Makefile delete mode 100644 build/linux/work/hardware/arduino/bootloaders/caterina/Caterina.c delete mode 100644 build/linux/work/hardware/arduino/bootloaders/caterina/Caterina.h delete mode 100644 build/linux/work/hardware/arduino/bootloaders/caterina/Caterina.hex delete mode 100644 build/linux/work/hardware/arduino/bootloaders/caterina/Descriptors.c delete mode 100644 build/linux/work/hardware/arduino/bootloaders/caterina/Descriptors.h delete mode 100644 build/linux/work/hardware/arduino/bootloaders/caterina/Makefile delete mode 100644 build/linux/work/hardware/arduino/bootloaders/lilypad/LilyPadBOOT_168.hex delete mode 100644 build/linux/work/hardware/arduino/bootloaders/lilypad/src/ATmegaBOOT.c delete mode 100644 build/linux/work/hardware/arduino/bootloaders/lilypad/src/Makefile delete mode 100644 build/linux/work/hardware/arduino/bootloaders/optiboot/Makefile delete mode 100644 build/linux/work/hardware/arduino/bootloaders/optiboot/README.TXT delete mode 100644 build/linux/work/hardware/arduino/bootloaders/optiboot/boot.h delete mode 100644 build/linux/work/hardware/arduino/bootloaders/optiboot/makeall delete mode 100644 build/linux/work/hardware/arduino/bootloaders/optiboot/omake delete mode 100644 build/linux/work/hardware/arduino/bootloaders/optiboot/omake.bat delete mode 100644 build/linux/work/hardware/arduino/bootloaders/optiboot/optiboot.c delete mode 100644 build/linux/work/hardware/arduino/bootloaders/optiboot/optiboot_atmega168.hex delete mode 100644 build/linux/work/hardware/arduino/bootloaders/optiboot/optiboot_atmega168.lst delete mode 100644 build/linux/work/hardware/arduino/bootloaders/optiboot/optiboot_atmega328-Mini.hex delete mode 100644 build/linux/work/hardware/arduino/bootloaders/optiboot/optiboot_atmega328.hex delete mode 100644 build/linux/work/hardware/arduino/bootloaders/optiboot/optiboot_atmega328.lst delete mode 100644 build/linux/work/hardware/arduino/bootloaders/optiboot/optiboot_atmega8.hex delete mode 100644 build/linux/work/hardware/arduino/bootloaders/optiboot/optiboot_atmega8.lst delete mode 100644 build/linux/work/hardware/arduino/bootloaders/optiboot/pin_defs.h delete mode 100644 build/linux/work/hardware/arduino/bootloaders/optiboot/stk500.h delete mode 100644 build/linux/work/hardware/arduino/bootloaders/stk500v2/License.txt delete mode 100644 build/linux/work/hardware/arduino/bootloaders/stk500v2/Makefile delete mode 100644 build/linux/work/hardware/arduino/bootloaders/stk500v2/STK500V2.pnproj delete mode 100644 build/linux/work/hardware/arduino/bootloaders/stk500v2/STK500V2.pnps delete mode 100644 build/linux/work/hardware/arduino/bootloaders/stk500v2/avrinterruptnames.h delete mode 100644 build/linux/work/hardware/arduino/bootloaders/stk500v2/command.h delete mode 100644 build/linux/work/hardware/arduino/bootloaders/stk500v2/stk500boot.c delete mode 100644 build/linux/work/hardware/arduino/bootloaders/stk500v2/stk500boot.ppg delete mode 100644 build/linux/work/hardware/arduino/bootloaders/stk500v2/stk500boot_v2_mega2560.hex delete mode 100644 build/linux/work/hardware/arduino/cores/arduino/Arduino.h delete mode 100644 build/linux/work/hardware/arduino/cores/arduino/CDC.cpp delete mode 100644 build/linux/work/hardware/arduino/cores/arduino/Client.h delete mode 100644 build/linux/work/hardware/arduino/cores/arduino/HID.cpp delete mode 100644 build/linux/work/hardware/arduino/cores/arduino/HardwareSerial.cpp delete mode 100644 build/linux/work/hardware/arduino/cores/arduino/HardwareSerial.h delete mode 100644 build/linux/work/hardware/arduino/cores/arduino/IPAddress.cpp delete mode 100644 build/linux/work/hardware/arduino/cores/arduino/IPAddress.h delete mode 100644 build/linux/work/hardware/arduino/cores/arduino/Platform.h delete mode 100644 build/linux/work/hardware/arduino/cores/arduino/Print.cpp delete mode 100644 build/linux/work/hardware/arduino/cores/arduino/Print.h delete mode 100644 build/linux/work/hardware/arduino/cores/arduino/Printable.h delete mode 100644 build/linux/work/hardware/arduino/cores/arduino/Server.h delete mode 100644 build/linux/work/hardware/arduino/cores/arduino/Stream.cpp delete mode 100644 build/linux/work/hardware/arduino/cores/arduino/Stream.h delete mode 100644 build/linux/work/hardware/arduino/cores/arduino/Tone.cpp delete mode 100644 build/linux/work/hardware/arduino/cores/arduino/USBAPI.h delete mode 100644 build/linux/work/hardware/arduino/cores/arduino/USBCore.cpp delete mode 100644 build/linux/work/hardware/arduino/cores/arduino/USBCore.h delete mode 100644 build/linux/work/hardware/arduino/cores/arduino/USBDesc.h delete mode 100644 build/linux/work/hardware/arduino/cores/arduino/Udp.h delete mode 100644 build/linux/work/hardware/arduino/cores/arduino/WCharacter.h delete mode 100644 build/linux/work/hardware/arduino/cores/arduino/WInterrupts.c delete mode 100644 build/linux/work/hardware/arduino/cores/arduino/WMath.cpp delete mode 100644 build/linux/work/hardware/arduino/cores/arduino/WString.cpp delete mode 100644 build/linux/work/hardware/arduino/cores/arduino/WString.h delete mode 100644 build/linux/work/hardware/arduino/cores/arduino/binary.h delete mode 100644 build/linux/work/hardware/arduino/cores/arduino/main.cpp delete mode 100644 build/linux/work/hardware/arduino/cores/arduino/new.cpp delete mode 100644 build/linux/work/hardware/arduino/cores/arduino/new.h delete mode 100644 build/linux/work/hardware/arduino/cores/arduino/wiring.c delete mode 100644 build/linux/work/hardware/arduino/cores/arduino/wiring_analog.c delete mode 100644 build/linux/work/hardware/arduino/cores/arduino/wiring_digital.c delete mode 100644 build/linux/work/hardware/arduino/cores/arduino/wiring_private.h delete mode 100644 build/linux/work/hardware/arduino/cores/arduino/wiring_pulse.c delete mode 100644 build/linux/work/hardware/arduino/cores/arduino/wiring_shift.c delete mode 100644 build/linux/work/hardware/arduino/firmwares/Arduino-COMBINED-dfu-usbserial-atmega16u2-Mega2560-Rev3.hex delete mode 100644 build/linux/work/hardware/arduino/firmwares/Arduino-COMBINED-dfu-usbserial-atmega16u2-MegaADK-Rev3.hex delete mode 100644 build/linux/work/hardware/arduino/firmwares/Arduino-COMBINED-dfu-usbserial-atmega16u2-Uno-Rev3.hex delete mode 100644 build/linux/work/hardware/arduino/firmwares/MEGA-dfu_and_usbserial_combined.hex delete mode 100644 build/linux/work/hardware/arduino/firmwares/README.txt delete mode 100644 build/linux/work/hardware/arduino/firmwares/UNO-dfu_and_usbserial_combined.hex delete mode 100644 build/linux/work/hardware/arduino/firmwares/arduino-usbdfu/Arduino-usbdfu.c delete mode 100644 build/linux/work/hardware/arduino/firmwares/arduino-usbdfu/Arduino-usbdfu.h delete mode 100644 build/linux/work/hardware/arduino/firmwares/arduino-usbdfu/Board/LEDs.h delete mode 100644 build/linux/work/hardware/arduino/firmwares/arduino-usbdfu/Descriptors.c delete mode 100644 build/linux/work/hardware/arduino/firmwares/arduino-usbdfu/Descriptors.h delete mode 100644 build/linux/work/hardware/arduino/firmwares/arduino-usbdfu/makefile delete mode 100644 build/linux/work/hardware/arduino/firmwares/arduino-usbdfu/readme.txt delete mode 100644 build/linux/work/hardware/arduino/firmwares/arduino-usbserial/Arduino-usbserial-atmega16u2-Mega2560-Rev3.hex delete mode 100644 build/linux/work/hardware/arduino/firmwares/arduino-usbserial/Arduino-usbserial-atmega16u2-MegaADK-Rev3.hex delete mode 100644 build/linux/work/hardware/arduino/firmwares/arduino-usbserial/Arduino-usbserial-atmega16u2-Uno-Rev3.hex delete mode 100644 build/linux/work/hardware/arduino/firmwares/arduino-usbserial/Arduino-usbserial-mega.hex delete mode 100644 build/linux/work/hardware/arduino/firmwares/arduino-usbserial/Arduino-usbserial-uno.hex delete mode 100644 build/linux/work/hardware/arduino/firmwares/arduino-usbserial/Arduino-usbserial.c delete mode 100644 build/linux/work/hardware/arduino/firmwares/arduino-usbserial/Arduino-usbserial.h delete mode 100644 build/linux/work/hardware/arduino/firmwares/arduino-usbserial/Board/LEDs.h delete mode 100644 build/linux/work/hardware/arduino/firmwares/arduino-usbserial/Descriptors.c delete mode 100644 build/linux/work/hardware/arduino/firmwares/arduino-usbserial/Descriptors.h delete mode 100644 build/linux/work/hardware/arduino/firmwares/arduino-usbserial/Lib/LightweightRingBuff.h delete mode 100644 build/linux/work/hardware/arduino/firmwares/arduino-usbserial/makefile delete mode 100644 build/linux/work/hardware/arduino/firmwares/arduino-usbserial/readme.txt delete mode 100644 build/linux/work/hardware/arduino/programmers.txt delete mode 100644 build/linux/work/hardware/arduino/variants/eightanaloginputs/pins_arduino.h delete mode 100644 build/linux/work/hardware/arduino/variants/leonardo/pins_arduino.h delete mode 100644 build/linux/work/hardware/arduino/variants/mega/pins_arduino.h delete mode 100644 build/linux/work/hardware/arduino/variants/micro/pins_arduino.h delete mode 100644 build/linux/work/hardware/arduino/variants/standard/pins_arduino.h delete mode 100755 build/linux/work/hardware/tools/avr/bin.gcc/avr-cpp delete mode 100755 build/linux/work/hardware/tools/avr/bin.gcc/avr-g++ delete mode 100755 build/linux/work/hardware/tools/avr/bin.gcc/avr-gcc delete mode 100755 build/linux/work/hardware/tools/avr/bin/avr-addr2line delete mode 100755 build/linux/work/hardware/tools/avr/bin/avr-ar delete mode 100755 build/linux/work/hardware/tools/avr/bin/avr-as delete mode 120000 build/linux/work/hardware/tools/avr/bin/avr-c++ delete mode 100755 build/linux/work/hardware/tools/avr/bin/avr-c++filt delete mode 100755 build/linux/work/hardware/tools/avr/bin/avr-cpp delete mode 100755 build/linux/work/hardware/tools/avr/bin/avr-g++ delete mode 100755 build/linux/work/hardware/tools/avr/bin/avr-gcc delete mode 120000 build/linux/work/hardware/tools/avr/bin/avr-gcc-4.3.2 delete mode 100755 build/linux/work/hardware/tools/avr/bin/avr-gccbug delete mode 100755 build/linux/work/hardware/tools/avr/bin/avr-ld delete mode 100755 build/linux/work/hardware/tools/avr/bin/avr-nm delete mode 100755 build/linux/work/hardware/tools/avr/bin/avr-objcopy delete mode 100755 build/linux/work/hardware/tools/avr/bin/avr-objdump delete mode 100755 build/linux/work/hardware/tools/avr/bin/avr-ranlib delete mode 100755 build/linux/work/hardware/tools/avr/bin/avr-size delete mode 100755 build/linux/work/hardware/tools/avr/bin/avr-strings delete mode 100755 build/linux/work/hardware/tools/avr/bin/avr-strip delete mode 120000 build/linux/work/hardware/tools/avr/lib/avr/bin/ar delete mode 120000 build/linux/work/hardware/tools/avr/lib/avr/bin/as delete mode 120000 build/linux/work/hardware/tools/avr/lib/avr/bin/ld delete mode 120000 build/linux/work/hardware/tools/avr/lib/avr/bin/nm delete mode 120000 build/linux/work/hardware/tools/avr/lib/avr/bin/objcopy delete mode 120000 build/linux/work/hardware/tools/avr/lib/avr/bin/objdump delete mode 120000 build/linux/work/hardware/tools/avr/lib/avr/bin/ranlib delete mode 120000 build/linux/work/hardware/tools/avr/lib/avr/bin/strip delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/alloca.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/assert.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/boot.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/builtins.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/common.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/crc16.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/delay.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/eeprom.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/eeprom.h.orig delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/fuse.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/interrupt.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/io.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/io1200.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/io2313.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/io2323.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/io2333.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/io2343.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/io43u32x.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/io43u35x.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/io4414.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/io4433.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/io4434.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/io58u54a.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/io76c711.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/io8515.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/io8534.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/io8535.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/io86r401.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/io90pwm1.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/io90pwm216.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/io90pwm2b.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/io90pwm316.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/io90pwm3b.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/io90pwmx.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/ioat94k.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iocan128.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iocan32.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iocan64.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iocanxx.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iom103.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iom128.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iom1280.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iom1281.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iom1284p.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iom16.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iom161.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iom162.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iom163.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iom164.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iom165.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iom165p.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iom168.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iom168p.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iom169.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iom169p.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iom16hva.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iom2560.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iom2561.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iom32.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iom323.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iom324.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iom325.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iom3250.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iom328p.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iom329.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iom3290.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iom32c1.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iom32hvb.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iom32m1.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iom32u4.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iom32u6.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iom406.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iom48.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iom48p.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iom64.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iom640.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iom644.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iom645.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iom6450.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iom649.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iom6490.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iom8.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iom8515.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iom8535.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iom88.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iom88p.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iom8hva.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iomx8.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iomxx0_1.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iomxx4.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iomxxhva.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iotn11.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iotn12.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iotn13.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iotn13a.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iotn15.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iotn167.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iotn22.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iotn2313.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iotn24.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iotn25.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iotn26.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iotn261.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iotn28.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iotn43u.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iotn44.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iotn45.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iotn461.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iotn48.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iotn84.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iotn85.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iotn861.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iotn88.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iotnx4.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iotnx5.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iotnx61.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iousb1286.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iousb1287.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iousb162.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iousb646.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iousb647.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iousb82.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iousbxx2.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iousbxx6_7.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iox128a1.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iox128a3.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iox256a3.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iox256a3b.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iox64a1.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/iox64a3.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/lock.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/parity.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/pgmspace.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/portpins.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/power.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/sfr_defs.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/signal.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/sleep.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/version.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/avr/wdt.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/compat/deprecated.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/compat/ina90.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/compat/twi.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/ctype.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/errno.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/inttypes.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/math.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/setjmp.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/stdint.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/stdio.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/stdlib.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/string.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/util/atomic.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/util/crc16.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/util/delay.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/util/delay_basic.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/util/parity.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/util/setbaud.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/include/util/twi.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr25/crt86401.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr25/crttn13.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr25/crttn2313.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr25/crttn24.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr25/crttn25.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr25/crttn261.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr25/crttn43u.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr25/crttn44.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr25/crttn45.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr25/crttn461.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr25/crttn48.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr25/crttn84.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr25/crttn85.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr25/crttn861.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr25/crttn88.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr25/libc.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr25/libm.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr25/libprintf_flt.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr25/libprintf_min.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr25/libscanf_flt.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr25/libscanf_min.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr3/crt43320.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr3/crt43355.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr3/crt76711.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr3/crtm103.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr3/crtusb162.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr3/crtusb82.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr3/libc.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr3/libm.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr3/libprintf_flt.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr3/libprintf_min.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr3/libscanf_flt.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr3/libscanf_min.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr31/crt43320.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr31/crtm103.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr31/libc.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr31/libm.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr31/libprintf_flt.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr31/libprintf_min.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr31/libscanf_flt.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr31/libscanf_min.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr35/crttn167.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr35/crtusb162.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr35/crtusb82.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr35/libc.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr35/libm.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr35/libprintf_flt.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr35/libprintf_min.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr35/libscanf_flt.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr35/libscanf_min.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr4/crt90pwm1.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr4/crt90pwm2.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr4/crt90pwm2b.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr4/crt90pwm3.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr4/crt90pwm3b.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr4/crtm48.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr4/crtm48p.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr4/crtm8.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr4/crtm8515.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr4/crtm8535.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr4/crtm88.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr4/crtm88p.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr4/crtm8hva.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr4/libc.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr4/libm.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr4/libprintf_flt.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr4/libprintf_min.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr4/libscanf_flt.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr4/libscanf_min.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/crt90pwm216.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/crt90pwm316.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/crtat94k.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/crtcan128.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/crtcan32.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/crtcan64.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/crtm128.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/crtm1280.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/crtm1281.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/crtm1284p.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/crtm16.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/crtm161.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/crtm162.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/crtm163.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/crtm164p.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/crtm165.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/crtm165p.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/crtm168.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/crtm168p.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/crtm169.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/crtm169p.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/crtm16hva.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/crtm32.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/crtm323.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/crtm324p.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/crtm325.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/crtm3250.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/crtm3250p.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/crtm325p.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/crtm328p.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/crtm329.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/crtm3290.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/crtm3290p.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/crtm329p.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/crtm32c1.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/crtm32m1.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/crtm32u4.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/crtm406.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/crtm64.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/crtm640.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/crtm644.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/crtm644p.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/crtm645.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/crtm6450.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/crtm649.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/crtm6490.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/crtusb1286.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/crtusb1287.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/crtusb646.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/crtusb647.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/libc.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/libm.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/libprintf_flt.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/libprintf_min.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/libscanf_flt.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr5/libscanf_min.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr51/crtcan128.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr51/crtm128.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr51/crtm1280.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr51/crtm1281.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr51/crtm1284p.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr51/crtusb1286.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr51/crtusb1287.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr51/libc.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr51/libm.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr51/libprintf_flt.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr51/libprintf_min.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr51/libscanf_flt.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr51/libscanf_min.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr6/crtm2560.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr6/crtm2561.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr6/libc.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr6/libm.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr6/libprintf_flt.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr6/libprintf_min.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr6/libscanf_flt.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avr6/libscanf_min.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avrxmega5/crtx64a1.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avrxmega5/libc.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avrxmega5/libm.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avrxmega5/libprintf_flt.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avrxmega5/libprintf_min.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avrxmega5/libscanf_flt.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avrxmega5/libscanf_min.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avrxmega7/crtx128a1.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avrxmega7/libc.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avrxmega7/libm.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avrxmega7/libprintf_flt.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avrxmega7/libprintf_min.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avrxmega7/libscanf_flt.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/avrxmega7/libscanf_min.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/crt86401.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/crtc8534.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/crts1200.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/crts2313.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/crts2323.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/crts2333.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/crts2343.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/crts4414.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/crts4433.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/crts4434.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/crts8515.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/crts8535.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/crttn11.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/crttn12.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/crttn13.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/crttn15.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/crttn22.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/crttn2313.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/crttn24.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/crttn25.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/crttn26.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/crttn261.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/crttn28.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/crttn44.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/crttn45.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/crttn461.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/crttn84.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/crttn85.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/crttn861.o delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avr1.x delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avr1.xbn delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avr1.xn delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avr1.xr delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avr1.xu delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avr2.x delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avr2.xbn delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avr2.xn delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avr2.xr delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avr2.xu delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avr3.x delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avr3.xbn delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avr3.xn delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avr3.xr delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avr3.xu delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avr4.x delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avr4.xbn delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avr4.xn delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avr4.xr delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avr4.xu delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avr5.x delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avr5.xbn delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avr5.xn delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avr5.xr delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avr5.xu delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avr6.x delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avr6.xbn delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avr6.xn delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avr6.xr delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avr6.xu delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avrxmega1.x delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avrxmega1.xbn delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avrxmega1.xn delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avrxmega1.xr delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avrxmega1.xu delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avrxmega2.x delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avrxmega2.xbn delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avrxmega2.xn delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avrxmega2.xr delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avrxmega2.xu delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avrxmega3.x delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avrxmega3.xbn delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avrxmega3.xn delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avrxmega3.xr delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avrxmega3.xu delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avrxmega4.x delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avrxmega4.xbn delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avrxmega4.xn delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avrxmega4.xr delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avrxmega4.xu delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avrxmega5.x delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avrxmega5.xbn delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avrxmega5.xn delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avrxmega5.xr delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avrxmega5.xu delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avrxmega6.x delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avrxmega6.xbn delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avrxmega6.xn delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avrxmega6.xr delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avrxmega6.xu delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avrxmega7.x delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avrxmega7.xbn delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avrxmega7.xn delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avrxmega7.xr delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/ldscripts/avrxmega7.xu delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/libc.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/libm.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/libprintf_flt.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/libprintf_min.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/libscanf_flt.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/avr/lib/libscanf_min.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/gcc/avr/4.3.2/avr25/libgcc.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/gcc/avr/4.3.2/avr25/libgcov.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/gcc/avr/4.3.2/avr3/libgcc.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/gcc/avr/4.3.2/avr3/libgcov.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/gcc/avr/4.3.2/avr31/libgcc.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/gcc/avr/4.3.2/avr31/libgcov.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/gcc/avr/4.3.2/avr35/libgcc.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/gcc/avr/4.3.2/avr35/libgcov.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/gcc/avr/4.3.2/avr4/libgcc.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/gcc/avr/4.3.2/avr4/libgcov.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/gcc/avr/4.3.2/avr5/libgcc.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/gcc/avr/4.3.2/avr5/libgcov.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/gcc/avr/4.3.2/avr51/libgcc.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/gcc/avr/4.3.2/avr51/libgcov.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/gcc/avr/4.3.2/avr6/libgcc.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/gcc/avr/4.3.2/avr6/libgcov.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/gcc/avr/4.3.2/avrxmega5/libgcc.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/gcc/avr/4.3.2/avrxmega5/libgcov.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/gcc/avr/4.3.2/avrxmega7/libgcc.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/gcc/avr/4.3.2/avrxmega7/libgcov.a delete mode 100755 build/linux/work/hardware/tools/avr/lib/gcc/avr/4.3.2/cc1 delete mode 100755 build/linux/work/hardware/tools/avr/lib/gcc/avr/4.3.2/cc1plus delete mode 100755 build/linux/work/hardware/tools/avr/lib/gcc/avr/4.3.2/collect2 delete mode 100644 build/linux/work/hardware/tools/avr/lib/gcc/avr/4.3.2/include-fixed/README delete mode 100644 build/linux/work/hardware/tools/avr/lib/gcc/avr/4.3.2/include-fixed/fixed delete mode 100644 build/linux/work/hardware/tools/avr/lib/gcc/avr/4.3.2/include-fixed/limits.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/gcc/avr/4.3.2/include-fixed/syslimits.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/gcc/avr/4.3.2/include/float.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/gcc/avr/4.3.2/include/iso646.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/gcc/avr/4.3.2/include/stdarg.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/gcc/avr/4.3.2/include/stdbool.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/gcc/avr/4.3.2/include/stddef.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/gcc/avr/4.3.2/include/stdfix.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/gcc/avr/4.3.2/include/tgmath.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/gcc/avr/4.3.2/include/unwind.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/gcc/avr/4.3.2/include/varargs.h delete mode 100755 build/linux/work/hardware/tools/avr/lib/gcc/avr/4.3.2/install-tools/fix-header delete mode 100644 build/linux/work/hardware/tools/avr/lib/gcc/avr/4.3.2/install-tools/fixinc_list delete mode 100755 build/linux/work/hardware/tools/avr/lib/gcc/avr/4.3.2/install-tools/fixproto delete mode 100644 build/linux/work/hardware/tools/avr/lib/gcc/avr/4.3.2/install-tools/gsyslimits.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/gcc/avr/4.3.2/install-tools/include/limits.h delete mode 100644 build/linux/work/hardware/tools/avr/lib/gcc/avr/4.3.2/install-tools/macro_list delete mode 100644 build/linux/work/hardware/tools/avr/lib/gcc/avr/4.3.2/install-tools/mkheaders.conf delete mode 100755 build/linux/work/hardware/tools/avr/lib/gcc/avr/4.3.2/install-tools/mkinstalldirs delete mode 100644 build/linux/work/hardware/tools/avr/lib/gcc/avr/4.3.2/libgcc.a delete mode 100644 build/linux/work/hardware/tools/avr/lib/gcc/avr/4.3.2/libgcov.a delete mode 120000 build/linux/work/hardware/tools/avr/lib/libgmp.so.3 delete mode 100644 build/linux/work/hardware/tools/avr/lib/libgmp.so.3.4.4 delete mode 120000 build/linux/work/hardware/tools/avr/lib/libmpfr.so.1 delete mode 100644 build/linux/work/hardware/tools/avr/lib/libmpfr.so.1.2.0 delete mode 100644 build/linux/work/hardware/tools/avr/share/doc/binutils-avr/README.Debian delete mode 100644 build/linux/work/hardware/tools/avr/share/doc/binutils-avr/changelog.Debian.gz delete mode 100644 build/linux/work/hardware/tools/avr/share/doc/binutils-avr/copyright delete mode 100644 build/linux/work/hardware/tools/avr/share/doc/gcc-avr/README.Debian delete mode 100644 build/linux/work/hardware/tools/avr/share/doc/gcc-avr/changelog.Debian.gz delete mode 100644 build/linux/work/hardware/tools/avr/share/doc/gcc-avr/copyright delete mode 100755 build/linux/work/hardware/tools/avrdude delete mode 100644 build/linux/work/hardware/tools/avrdude.conf delete mode 100644 build/linux/work/hardware/tools/avrdude64 delete mode 100644 build/linux/work/hardware/tools/readme.txt delete mode 100644 build/linux/work/lib/RXTXcomm.jar delete mode 100644 build/linux/work/lib/about.jpg delete mode 100644 build/linux/work/lib/core.jar delete mode 100644 build/linux/work/lib/ecj.jar delete mode 100644 build/linux/work/lib/jna.jar delete mode 100644 build/linux/work/lib/keywords.txt delete mode 100644 build/linux/work/lib/librxtxSerial.so delete mode 100644 build/linux/work/lib/librxtxSerial64.so delete mode 100644 build/linux/work/lib/pde.jar delete mode 100644 build/linux/work/lib/preferences.txt delete mode 100644 build/linux/work/lib/theme/buttons.gif delete mode 100644 build/linux/work/lib/theme/resize.gif delete mode 100644 build/linux/work/lib/theme/tab-sel-left.gif delete mode 100644 build/linux/work/lib/theme/tab-sel-menu.gif delete mode 100644 build/linux/work/lib/theme/tab-sel-mid.gif delete mode 100644 build/linux/work/lib/theme/tab-sel-right.gif delete mode 100644 build/linux/work/lib/theme/tab-unsel-left.gif delete mode 100644 build/linux/work/lib/theme/tab-unsel-menu.gif delete mode 100644 build/linux/work/lib/theme/tab-unsel-mid.gif delete mode 100644 build/linux/work/lib/theme/tab-unsel-right.gif delete mode 100644 build/linux/work/lib/theme/theme.txt delete mode 100644 build/linux/work/lib/version.txt delete mode 100644 build/linux/work/libraries/EEPROM/EEPROM.cpp delete mode 100644 build/linux/work/libraries/EEPROM/EEPROM.h delete mode 100644 build/linux/work/libraries/EEPROM/examples/eeprom_clear/eeprom_clear.ino delete mode 100644 build/linux/work/libraries/EEPROM/examples/eeprom_read/eeprom_read.ino delete mode 100644 build/linux/work/libraries/EEPROM/examples/eeprom_write/eeprom_write.ino delete mode 100644 build/linux/work/libraries/EEPROM/keywords.txt delete mode 100644 build/linux/work/libraries/Ethernet/Dhcp.cpp delete mode 100644 build/linux/work/libraries/Ethernet/Dhcp.h delete mode 100644 build/linux/work/libraries/Ethernet/Dns.cpp delete mode 100644 build/linux/work/libraries/Ethernet/Dns.h delete mode 100644 build/linux/work/libraries/Ethernet/Ethernet.cpp delete mode 100644 build/linux/work/libraries/Ethernet/Ethernet.h delete mode 100644 build/linux/work/libraries/Ethernet/EthernetClient.cpp delete mode 100644 build/linux/work/libraries/Ethernet/EthernetClient.h delete mode 100644 build/linux/work/libraries/Ethernet/EthernetServer.cpp delete mode 100644 build/linux/work/libraries/Ethernet/EthernetServer.h delete mode 100644 build/linux/work/libraries/Ethernet/EthernetUdp.cpp delete mode 100644 build/linux/work/libraries/Ethernet/EthernetUdp.h delete mode 100644 build/linux/work/libraries/Ethernet/examples/BarometricPressureWebServer/BarometricPressureWebServer.ino delete mode 100644 build/linux/work/libraries/Ethernet/examples/ChatServer/ChatServer.ino delete mode 100644 build/linux/work/libraries/Ethernet/examples/DhcpAddressPrinter/DhcpAddressPrinter.ino delete mode 100644 build/linux/work/libraries/Ethernet/examples/DhcpChatServer/DhcpChatServer.ino delete mode 100644 build/linux/work/libraries/Ethernet/examples/DnsWebClient/DnsWebClient.ino delete mode 100644 build/linux/work/libraries/Ethernet/examples/PachubeClient/PachubeClient.ino delete mode 100644 build/linux/work/libraries/Ethernet/examples/PachubeClientString/PachubeClientString.ino delete mode 100644 build/linux/work/libraries/Ethernet/examples/TelnetClient/TelnetClient.ino delete mode 100644 build/linux/work/libraries/Ethernet/examples/TwitterClient/TwitterClient.ino delete mode 100644 build/linux/work/libraries/Ethernet/examples/UDPSendReceiveString/UDPSendReceiveString.ino delete mode 100644 build/linux/work/libraries/Ethernet/examples/UdpNtpClient/UdpNtpClient.ino delete mode 100644 build/linux/work/libraries/Ethernet/examples/WebClient/WebClient.ino delete mode 100644 build/linux/work/libraries/Ethernet/examples/WebServer/WebServer.ino delete mode 100644 build/linux/work/libraries/Ethernet/keywords.txt delete mode 100644 build/linux/work/libraries/Ethernet/util.h delete mode 100644 build/linux/work/libraries/Ethernet/utility/socket.cpp delete mode 100644 build/linux/work/libraries/Ethernet/utility/socket.h delete mode 100644 build/linux/work/libraries/Ethernet/utility/w5100.cpp delete mode 100644 build/linux/work/libraries/Ethernet/utility/w5100.h delete mode 100644 build/linux/work/libraries/Firmata/Boards.h delete mode 100644 build/linux/work/libraries/Firmata/Firmata.cpp delete mode 100644 build/linux/work/libraries/Firmata/Firmata.h delete mode 100644 build/linux/work/libraries/Firmata/LICENSE.txt delete mode 100644 build/linux/work/libraries/Firmata/TODO.txt delete mode 100644 build/linux/work/libraries/Firmata/examples/AllInputsFirmata/AllInputsFirmata.ino delete mode 100644 build/linux/work/libraries/Firmata/examples/AnalogFirmata/AnalogFirmata.ino delete mode 100644 build/linux/work/libraries/Firmata/examples/EchoString/EchoString.ino delete mode 100644 build/linux/work/libraries/Firmata/examples/I2CFirmata/I2CFirmata.ino delete mode 100644 build/linux/work/libraries/Firmata/examples/OldStandardFirmata/LICENSE.txt delete mode 100644 build/linux/work/libraries/Firmata/examples/OldStandardFirmata/OldStandardFirmata.ino delete mode 100644 build/linux/work/libraries/Firmata/examples/ServoFirmata/ServoFirmata.ino delete mode 100644 build/linux/work/libraries/Firmata/examples/SimpleAnalogFirmata/SimpleAnalogFirmata.ino delete mode 100644 build/linux/work/libraries/Firmata/examples/SimpleDigitalFirmata/SimpleDigitalFirmata.ino delete mode 100644 build/linux/work/libraries/Firmata/examples/StandardFirmata/LICENSE.txt delete mode 100644 build/linux/work/libraries/Firmata/examples/StandardFirmata/StandardFirmata.ino delete mode 100644 build/linux/work/libraries/Firmata/keywords.txt delete mode 100644 build/linux/work/libraries/LiquidCrystal/LiquidCrystal.cpp delete mode 100644 build/linux/work/libraries/LiquidCrystal/LiquidCrystal.h delete mode 100644 build/linux/work/libraries/LiquidCrystal/examples/Autoscroll/Autoscroll.ino delete mode 100644 build/linux/work/libraries/LiquidCrystal/examples/Blink/Blink.ino delete mode 100644 build/linux/work/libraries/LiquidCrystal/examples/Cursor/Cursor.ino delete mode 100644 build/linux/work/libraries/LiquidCrystal/examples/CustomCharacter/CustomCharacter.ino delete mode 100644 build/linux/work/libraries/LiquidCrystal/examples/Display/Display.ino delete mode 100644 build/linux/work/libraries/LiquidCrystal/examples/HelloWorld/HelloWorld.ino delete mode 100644 build/linux/work/libraries/LiquidCrystal/examples/Scroll/Scroll.ino delete mode 100644 build/linux/work/libraries/LiquidCrystal/examples/SerialDisplay/SerialDisplay.ino delete mode 100644 build/linux/work/libraries/LiquidCrystal/examples/TextDirection/TextDirection.ino delete mode 100644 build/linux/work/libraries/LiquidCrystal/examples/setCursor/setCursor.ino delete mode 100644 build/linux/work/libraries/LiquidCrystal/keywords.txt delete mode 100644 build/linux/work/libraries/SD/File.cpp delete mode 100644 build/linux/work/libraries/SD/README.txt delete mode 100644 build/linux/work/libraries/SD/SD.cpp delete mode 100644 build/linux/work/libraries/SD/SD.h delete mode 100644 build/linux/work/libraries/SD/examples/CardInfo/CardInfo.ino delete mode 100644 build/linux/work/libraries/SD/examples/Datalogger/Datalogger.ino delete mode 100644 build/linux/work/libraries/SD/examples/DumpFile/DumpFile.ino delete mode 100644 build/linux/work/libraries/SD/examples/Files/Files.ino delete mode 100644 build/linux/work/libraries/SD/examples/ReadWrite/ReadWrite.ino delete mode 100644 build/linux/work/libraries/SD/examples/listfiles/listfiles.ino delete mode 100644 build/linux/work/libraries/SD/keywords.txt delete mode 100644 build/linux/work/libraries/SD/utility/FatStructs.h delete mode 100644 build/linux/work/libraries/SD/utility/Sd2Card.cpp delete mode 100644 build/linux/work/libraries/SD/utility/Sd2Card.h delete mode 100644 build/linux/work/libraries/SD/utility/Sd2PinMap.h delete mode 100644 build/linux/work/libraries/SD/utility/SdFat.h delete mode 100644 build/linux/work/libraries/SD/utility/SdFatUtil.h delete mode 100644 build/linux/work/libraries/SD/utility/SdFatmainpage.h delete mode 100644 build/linux/work/libraries/SD/utility/SdFile.cpp delete mode 100644 build/linux/work/libraries/SD/utility/SdInfo.h delete mode 100644 build/linux/work/libraries/SD/utility/SdVolume.cpp delete mode 100644 build/linux/work/libraries/SPI/SPI.cpp delete mode 100644 build/linux/work/libraries/SPI/SPI.h delete mode 100644 build/linux/work/libraries/SPI/examples/BarometricPressureSensor/BarometricPressureSensor.ino delete mode 100644 build/linux/work/libraries/SPI/examples/BarometricPressureSensor/BarometricPressureSensor/BarometricPressureSensor.ino delete mode 100644 build/linux/work/libraries/SPI/examples/DigitalPotControl/DigitalPotControl.ino delete mode 100644 build/linux/work/libraries/SPI/keywords.txt delete mode 100644 build/linux/work/libraries/Servo/Servo.cpp delete mode 100644 build/linux/work/libraries/Servo/Servo.h delete mode 100644 build/linux/work/libraries/Servo/examples/Knob/Knob.ino delete mode 100644 build/linux/work/libraries/Servo/examples/Sweep/Sweep.ino delete mode 100644 build/linux/work/libraries/Servo/keywords.txt delete mode 100644 build/linux/work/libraries/SoftwareSerial/SoftwareSerial.cpp delete mode 100644 build/linux/work/libraries/SoftwareSerial/SoftwareSerial.h delete mode 100644 build/linux/work/libraries/SoftwareSerial/examples/SoftwareSerialExample/SoftwareSerialExample.ino delete mode 100644 build/linux/work/libraries/SoftwareSerial/examples/TwoPortReceive/TwoPortReceive.ino delete mode 100644 build/linux/work/libraries/SoftwareSerial/keywords.txt delete mode 100644 build/linux/work/libraries/Stepper/Stepper.cpp delete mode 100644 build/linux/work/libraries/Stepper/Stepper.h delete mode 100644 build/linux/work/libraries/Stepper/examples/MotorKnob/MotorKnob.ino delete mode 100644 build/linux/work/libraries/Stepper/examples/stepper_oneRevolution/stepper_oneRevolution.ino delete mode 100644 build/linux/work/libraries/Stepper/examples/stepper_oneStepAtATime/stepper_oneStepAtATime.ino delete mode 100644 build/linux/work/libraries/Stepper/examples/stepper_speedControl/stepper_speedControl.ino delete mode 100644 build/linux/work/libraries/Stepper/keywords.txt delete mode 100644 build/linux/work/libraries/Wire/Wire.cpp delete mode 100644 build/linux/work/libraries/Wire/Wire.h delete mode 100644 build/linux/work/libraries/Wire/examples/SFRRanger_reader/SFRRanger_reader.ino delete mode 100644 build/linux/work/libraries/Wire/examples/digital_potentiometer/digital_potentiometer.ino delete mode 100644 build/linux/work/libraries/Wire/examples/master_reader/master_reader.ino delete mode 100644 build/linux/work/libraries/Wire/examples/master_writer/master_writer.ino delete mode 100644 build/linux/work/libraries/Wire/examples/slave_receiver/slave_receiver.ino delete mode 100644 build/linux/work/libraries/Wire/examples/slave_sender/slave_sender.ino delete mode 100644 build/linux/work/libraries/Wire/keywords.txt delete mode 100644 build/linux/work/libraries/Wire/utility/twi.c delete mode 100644 build/linux/work/libraries/Wire/utility/twi.h delete mode 100644 build/linux/work/reference/Abs.html delete mode 100644 build/linux/work/reference/AnalogRead.html delete mode 100644 build/linux/work/reference/AnalogReference.html delete mode 100644 build/linux/work/reference/AnalogWrite.html delete mode 100644 build/linux/work/reference/Arithmetic.html delete mode 100644 build/linux/work/reference/Array.html delete mode 100644 build/linux/work/reference/Assignment.html delete mode 100644 build/linux/work/reference/AttachInterrupt.html delete mode 100644 build/linux/work/reference/Bit.html delete mode 100644 build/linux/work/reference/BitClear.html delete mode 100644 build/linux/work/reference/BitRead.html delete mode 100644 build/linux/work/reference/BitSet.html delete mode 100644 build/linux/work/reference/BitWrite.html delete mode 100644 build/linux/work/reference/Bitshift.html delete mode 100644 build/linux/work/reference/BitwiseAnd.html delete mode 100644 build/linux/work/reference/BitwiseCompoundAnd.html delete mode 100644 build/linux/work/reference/BitwiseCompoundOr.html delete mode 100644 build/linux/work/reference/BitwiseXorNot.html delete mode 100644 build/linux/work/reference/Boolean.html delete mode 100644 build/linux/work/reference/BooleanVariables.html delete mode 100644 build/linux/work/reference/Braces.html delete mode 100644 build/linux/work/reference/Break.html delete mode 100644 build/linux/work/reference/Byte.html delete mode 100644 build/linux/work/reference/ByteCast.html delete mode 100644 build/linux/work/reference/Changes.html delete mode 100644 build/linux/work/reference/Char.html delete mode 100644 build/linux/work/reference/CharCast.html delete mode 100644 build/linux/work/reference/ClientAvailable.html delete mode 100644 build/linux/work/reference/ClientConnect.html delete mode 100644 build/linux/work/reference/ClientConnected.html delete mode 100644 build/linux/work/reference/ClientConstructor.html delete mode 100644 build/linux/work/reference/ClientFlush.html delete mode 100644 build/linux/work/reference/ClientPrint.html delete mode 100644 build/linux/work/reference/ClientPrintln.html delete mode 100644 build/linux/work/reference/ClientRead.html delete mode 100644 build/linux/work/reference/ClientStop.html delete mode 100644 build/linux/work/reference/ClientWrite.html delete mode 100644 build/linux/work/reference/Comments.html delete mode 100644 build/linux/work/reference/Comparison.html delete mode 100644 build/linux/work/reference/Const.html delete mode 100644 build/linux/work/reference/Constants.html delete mode 100644 build/linux/work/reference/Constrain.html delete mode 100644 build/linux/work/reference/Continue.html delete mode 100644 build/linux/work/reference/Cos.html delete mode 100644 build/linux/work/reference/Define.html delete mode 100644 build/linux/work/reference/Delay.html delete mode 100644 build/linux/work/reference/DelayMicroseconds.html delete mode 100644 build/linux/work/reference/DetachInterrupt.html delete mode 100644 build/linux/work/reference/DigitalRead.html delete mode 100644 build/linux/work/reference/DigitalWrite.html delete mode 100644 build/linux/work/reference/DoWhile.html delete mode 100644 build/linux/work/reference/Double.html delete mode 100644 build/linux/work/reference/EEPROM.html delete mode 100644 build/linux/work/reference/EEPROMRead.html delete mode 100644 build/linux/work/reference/EEPROMWrite.html delete mode 100644 build/linux/work/reference/Else.html delete mode 100644 build/linux/work/reference/Ethernet.html delete mode 100644 build/linux/work/reference/EthernetBegin.html delete mode 100644 build/linux/work/reference/EthernetClient.html delete mode 100644 build/linux/work/reference/EthernetIPAddress.html delete mode 100644 build/linux/work/reference/EthernetLocalIP.html delete mode 100644 build/linux/work/reference/EthernetServer.html delete mode 100644 build/linux/work/reference/EthernetUDPAvailable.html delete mode 100644 build/linux/work/reference/EthernetUDPBegin.html delete mode 100644 build/linux/work/reference/EthernetUDPBeginPacket.html delete mode 100644 build/linux/work/reference/EthernetUDPEndPacket.html delete mode 100644 build/linux/work/reference/EthernetUDPParsePacket.html delete mode 100644 build/linux/work/reference/EthernetUDPRead.html delete mode 100644 build/linux/work/reference/EthernetUDPRemoteIP.html delete mode 100644 build/linux/work/reference/EthernetUDPRemotePort.html delete mode 100644 build/linux/work/reference/EthernetUDPWrite.html delete mode 100644 build/linux/work/reference/FAQ.html delete mode 100644 build/linux/work/reference/FileAvailable.html delete mode 100644 build/linux/work/reference/FileClose.html delete mode 100644 build/linux/work/reference/FileFlush.html delete mode 100644 build/linux/work/reference/FileIsDirectory.html delete mode 100644 build/linux/work/reference/FileOpenNextFile.html delete mode 100644 build/linux/work/reference/FilePeek.html delete mode 100644 build/linux/work/reference/FilePosition.html delete mode 100644 build/linux/work/reference/FilePrint.html delete mode 100644 build/linux/work/reference/FilePrintln.html delete mode 100644 build/linux/work/reference/FileRead.html delete mode 100644 build/linux/work/reference/FileRewindDirectory.html delete mode 100644 build/linux/work/reference/FileSeek.html delete mode 100644 build/linux/work/reference/FileSize.html delete mode 100644 build/linux/work/reference/FileWrite.html delete mode 100644 build/linux/work/reference/Float.html delete mode 100644 build/linux/work/reference/FloatCast.html delete mode 100644 build/linux/work/reference/For.html delete mode 100644 build/linux/work/reference/Fpconstants.html delete mode 100644 build/linux/work/reference/Goto.html delete mode 100644 build/linux/work/reference/Guide_ArduinoBT.html delete mode 100644 build/linux/work/reference/Guide_ArduinoEthernetShield.html delete mode 100644 build/linux/work/reference/Guide_ArduinoLilyPad.html delete mode 100644 build/linux/work/reference/Guide_ArduinoMini.html delete mode 100644 build/linux/work/reference/Guide_ArduinoNano.html delete mode 100644 build/linux/work/reference/Guide_ArduinoPro.html delete mode 100644 build/linux/work/reference/Guide_ArduinoProMini.html delete mode 100644 build/linux/work/reference/Guide_ArduinoXbeeShield.html delete mode 100644 build/linux/work/reference/Guide_Environment.html delete mode 100644 build/linux/work/reference/Guide_Introduction.html delete mode 100644 build/linux/work/reference/Guide_MacOSX.html delete mode 100644 build/linux/work/reference/Guide_Troubleshooting.html delete mode 100644 build/linux/work/reference/Guide_Windows.html delete mode 100644 build/linux/work/reference/Guide_index.html delete mode 100644 build/linux/work/reference/HighByte.html delete mode 100644 build/linux/work/reference/If.html delete mode 100644 build/linux/work/reference/Include.html delete mode 100644 build/linux/work/reference/Increment.html delete mode 100644 build/linux/work/reference/IncrementCompound.html delete mode 100644 build/linux/work/reference/Int.html delete mode 100644 build/linux/work/reference/IntCast.html delete mode 100644 build/linux/work/reference/IntegerConstants.html delete mode 100644 build/linux/work/reference/Interrupts.html delete mode 100644 build/linux/work/reference/Libraries.html delete mode 100644 build/linux/work/reference/LiquidCrystal.html delete mode 100644 build/linux/work/reference/LiquidCrystalAutoscroll.html delete mode 100644 build/linux/work/reference/LiquidCrystalBegin.html delete mode 100644 build/linux/work/reference/LiquidCrystalBlink.html delete mode 100644 build/linux/work/reference/LiquidCrystalClear.html delete mode 100644 build/linux/work/reference/LiquidCrystalConstructor.html delete mode 100644 build/linux/work/reference/LiquidCrystalCreateChar.html delete mode 100644 build/linux/work/reference/LiquidCrystalCursor.html delete mode 100644 build/linux/work/reference/LiquidCrystalDisplay.html delete mode 100644 build/linux/work/reference/LiquidCrystalHome.html delete mode 100644 build/linux/work/reference/LiquidCrystalLeftToRight.html delete mode 100644 build/linux/work/reference/LiquidCrystalNoAutoscroll.html delete mode 100644 build/linux/work/reference/LiquidCrystalNoBlink.html delete mode 100644 build/linux/work/reference/LiquidCrystalNoCursor.html delete mode 100644 build/linux/work/reference/LiquidCrystalNoDisplay.html delete mode 100644 build/linux/work/reference/LiquidCrystalPrint.html delete mode 100644 build/linux/work/reference/LiquidCrystalRightToLeft.html delete mode 100644 build/linux/work/reference/LiquidCrystalScrollDisplayLeft.html delete mode 100644 build/linux/work/reference/LiquidCrystalScrollDisplayRight.html delete mode 100644 build/linux/work/reference/LiquidCrystalSetCursor.html delete mode 100644 build/linux/work/reference/LiquidCrystalWrite.html delete mode 100644 build/linux/work/reference/Long.html delete mode 100644 build/linux/work/reference/LongCast.html delete mode 100644 build/linux/work/reference/Loop.html delete mode 100644 build/linux/work/reference/LowByte.html delete mode 100644 build/linux/work/reference/Map.html delete mode 100644 build/linux/work/reference/Max.html delete mode 100644 build/linux/work/reference/Micros.html delete mode 100644 build/linux/work/reference/Millis.html delete mode 100644 build/linux/work/reference/Min.html delete mode 100644 build/linux/work/reference/Modulo.html delete mode 100644 build/linux/work/reference/NoInterrupts.html delete mode 100644 build/linux/work/reference/NoTone.html delete mode 100644 build/linux/work/reference/PinMode.html delete mode 100644 build/linux/work/reference/Pointer.html delete mode 100644 build/linux/work/reference/Pow.html delete mode 100644 build/linux/work/reference/PulseIn.html delete mode 100644 build/linux/work/reference/Random.html delete mode 100644 build/linux/work/reference/RandomSeed.html delete mode 100644 build/linux/work/reference/Return.html delete mode 100644 build/linux/work/reference/SD.html delete mode 100644 build/linux/work/reference/SDCardNotes.html delete mode 100644 build/linux/work/reference/SDbegin.html delete mode 100644 build/linux/work/reference/SDexists.html delete mode 100644 build/linux/work/reference/SDmkdir.html delete mode 100644 build/linux/work/reference/SDopen.html delete mode 100644 build/linux/work/reference/SDremove.html delete mode 100644 build/linux/work/reference/SDrmdir.html delete mode 100644 build/linux/work/reference/SPI.html delete mode 100644 build/linux/work/reference/SPIBegin.html delete mode 100644 build/linux/work/reference/SPIEnd.html delete mode 100644 build/linux/work/reference/SPISetBitOrder.html delete mode 100644 build/linux/work/reference/SPISetClockDivider.html delete mode 100644 build/linux/work/reference/SPISetDataMode.html delete mode 100644 build/linux/work/reference/SPITransfer.html delete mode 100644 build/linux/work/reference/Scope.html delete mode 100644 build/linux/work/reference/SemiColon.html delete mode 100644 build/linux/work/reference/Serial.html delete mode 100644 build/linux/work/reference/Serial_Available.html delete mode 100644 build/linux/work/reference/Serial_Begin.html delete mode 100644 build/linux/work/reference/Serial_End.html delete mode 100644 build/linux/work/reference/Serial_Flush.html delete mode 100644 build/linux/work/reference/Serial_Peek.html delete mode 100644 build/linux/work/reference/Serial_Print.html delete mode 100644 build/linux/work/reference/Serial_Println.html delete mode 100644 build/linux/work/reference/Serial_Read.html delete mode 100644 build/linux/work/reference/Serial_Write.html delete mode 100644 build/linux/work/reference/ServerAvailable.html delete mode 100644 build/linux/work/reference/ServerBegin.html delete mode 100644 build/linux/work/reference/ServerConstructor.html delete mode 100644 build/linux/work/reference/ServerPrint.html delete mode 100644 build/linux/work/reference/ServerPrintln.html delete mode 100644 build/linux/work/reference/ServerWrite.html delete mode 100644 build/linux/work/reference/Servo.html delete mode 100644 build/linux/work/reference/ServoAttach.html delete mode 100644 build/linux/work/reference/ServoAttached.html delete mode 100644 build/linux/work/reference/ServoDetach.html delete mode 100644 build/linux/work/reference/ServoRead.html delete mode 100644 build/linux/work/reference/ServoWrite.html delete mode 100644 build/linux/work/reference/ServoWriteMicroseconds.html delete mode 100644 build/linux/work/reference/Setup.html delete mode 100644 build/linux/work/reference/ShiftIn.html delete mode 100644 build/linux/work/reference/ShiftOut.html delete mode 100644 build/linux/work/reference/Sin.html delete mode 100644 build/linux/work/reference/Sizeof.html delete mode 100644 build/linux/work/reference/SoftwareSerial.html delete mode 100644 build/linux/work/reference/SoftwareSerialAvailable.html delete mode 100644 build/linux/work/reference/SoftwareSerialBegin.html delete mode 100644 build/linux/work/reference/SoftwareSerialConstructor.html delete mode 100644 build/linux/work/reference/SoftwareSerialIsListening.html delete mode 100644 build/linux/work/reference/SoftwareSerialListen.html delete mode 100644 build/linux/work/reference/SoftwareSerialOverflow.html delete mode 100644 build/linux/work/reference/SoftwareSerialPrint.html delete mode 100644 build/linux/work/reference/SoftwareSerialPrintln.html delete mode 100644 build/linux/work/reference/SoftwareSerialRead.html delete mode 100644 build/linux/work/reference/SoftwareSerialWrite.html delete mode 100644 build/linux/work/reference/Sqrt.html delete mode 100644 build/linux/work/reference/Static.html delete mode 100644 build/linux/work/reference/Stepper.html delete mode 100644 build/linux/work/reference/StepperBipolarCircuit.html delete mode 100644 build/linux/work/reference/StepperConstructor.html delete mode 100644 build/linux/work/reference/StepperSetSpeed.html delete mode 100644 build/linux/work/reference/StepperStep.html delete mode 100644 build/linux/work/reference/StepperUnipolarCircuit.html delete mode 100644 build/linux/work/reference/String.html delete mode 100644 build/linux/work/reference/StringClass.html delete mode 100644 build/linux/work/reference/StringObject.html delete mode 100644 build/linux/work/reference/SwitchCase.html delete mode 100644 build/linux/work/reference/Tan.html delete mode 100644 build/linux/work/reference/Tone.html delete mode 100644 build/linux/work/reference/UnsignedChar.html delete mode 100644 build/linux/work/reference/UnsignedInt.html delete mode 100644 build/linux/work/reference/UnsignedLong.html delete mode 100644 build/linux/work/reference/Void.html delete mode 100644 build/linux/work/reference/Volatile.html delete mode 100644 build/linux/work/reference/While.html delete mode 100644 build/linux/work/reference/Wire.html delete mode 100644 build/linux/work/reference/WireAvailable.html delete mode 100644 build/linux/work/reference/WireBegin.html delete mode 100644 build/linux/work/reference/WireBeginTransmission.html delete mode 100644 build/linux/work/reference/WireEndTransmission.html delete mode 100644 build/linux/work/reference/WireOnReceive.html delete mode 100644 build/linux/work/reference/WireOnRequest.html delete mode 100644 build/linux/work/reference/WireRead.html delete mode 100644 build/linux/work/reference/WireRequestFrom.html delete mode 100644 build/linux/work/reference/WireWrite.html delete mode 100644 build/linux/work/reference/Word.html delete mode 100644 build/linux/work/reference/WordCast.html delete mode 100644 build/linux/work/reference/arduinoUno.css delete mode 100644 build/linux/work/reference/arduinoWide.css delete mode 100644 build/linux/work/reference/arduinoWideRender.css delete mode 100644 build/linux/work/reference/environment.html delete mode 100644 build/linux/work/reference/img/logo.png delete mode 100644 build/linux/work/reference/index.html delete mode 100644 build/linux/work/revisions.txt delete mode 100644 build/linux/work/tools/Mangler/make.sh delete mode 100644 build/linux/work/tools/Mangler/src/Mangler.java delete mode 100644 build/linux/work/tools/howto.txt diff --git a/build/linux/work/arduino b/build/linux/work/arduino deleted file mode 100755 index d371e768a..000000000 --- a/build/linux/work/arduino +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh - -APPDIR="$(dirname -- $(readlink -f -- "${0}") )" - -cd $APPDIR - -for LIB in \ - java/lib/rt.jar \ - java/lib/tools.jar \ - lib/*.jar \ - ; -do - CLASSPATH="${CLASSPATH}:${LIB}" -done -export CLASSPATH - -LD_LIBRARY_PATH=`pwd`/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} -export LD_LIBRARY_PATH - -export PATH="${APPDIR}/java/bin:${PATH}" - -java -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel processing.app.Base diff --git a/build/linux/work/examples/01.Basics/AnalogReadSerial/AnalogReadSerial.ino b/build/linux/work/examples/01.Basics/AnalogReadSerial/AnalogReadSerial.ino deleted file mode 100644 index 2ba6fa73b..000000000 --- a/build/linux/work/examples/01.Basics/AnalogReadSerial/AnalogReadSerial.ino +++ /dev/null @@ -1,15 +0,0 @@ -/* - AnalogReadSerial - Reads an analog input on pin 0, prints the result to the serial monitor - - This example code is in the public domain. - */ - -void setup() { - Serial.begin(9600); -} - -void loop() { - int sensorValue = analogRead(A0); - Serial.println(sensorValue); -} diff --git a/build/linux/work/examples/01.Basics/BareMinimum/BareMinimum.ino b/build/linux/work/examples/01.Basics/BareMinimum/BareMinimum.ino deleted file mode 100644 index c9c84ceca..000000000 --- a/build/linux/work/examples/01.Basics/BareMinimum/BareMinimum.ino +++ /dev/null @@ -1,9 +0,0 @@ -void setup() { - // put your setup code here, to run once: - -} - -void loop() { - // put your main code here, to run repeatedly: - -} diff --git a/build/linux/work/examples/01.Basics/Blink/Blink.ino b/build/linux/work/examples/01.Basics/Blink/Blink.ino deleted file mode 100644 index 1953c3908..000000000 --- a/build/linux/work/examples/01.Basics/Blink/Blink.ino +++ /dev/null @@ -1,19 +0,0 @@ -/* - Blink - Turns on an LED on for one second, then off for one second, repeatedly. - - This example code is in the public domain. - */ - -void setup() { - // initialize the digital pin as an output. - // Pin 13 has an LED connected on most Arduino boards: - pinMode(13, OUTPUT); -} - -void loop() { - digitalWrite(13, HIGH); // set the LED on - delay(1000); // wait for a second - digitalWrite(13, LOW); // set the LED off - delay(1000); // wait for a second -} diff --git a/build/linux/work/examples/01.Basics/DigitalReadSerial/DigitalReadSerial.ino b/build/linux/work/examples/01.Basics/DigitalReadSerial/DigitalReadSerial.ino deleted file mode 100644 index 68e4dc966..000000000 --- a/build/linux/work/examples/01.Basics/DigitalReadSerial/DigitalReadSerial.ino +++ /dev/null @@ -1,19 +0,0 @@ -/* - DigitalReadSerial - Reads a digital input on pin 2, prints the result to the serial monitor - - This example code is in the public domain. - */ - -void setup() { - Serial.begin(9600); - pinMode(2, INPUT); -} - -void loop() { - int sensorValue = digitalRead(2); - Serial.println(sensorValue); -} - - - diff --git a/build/linux/work/examples/01.Basics/Fade/Fade.ino b/build/linux/work/examples/01.Basics/Fade/Fade.ino deleted file mode 100644 index b47bf4307..000000000 --- a/build/linux/work/examples/01.Basics/Fade/Fade.ino +++ /dev/null @@ -1,31 +0,0 @@ -/* - Fade - - This example shows how to fade an LED on pin 9 - using the analogWrite() function. - - This example code is in the public domain. - - */ -int brightness = 0; // how bright the LED is -int fadeAmount = 5; // how many points to fade the LED by - -void setup() { - // declare pin 9 to be an output: - pinMode(9, OUTPUT); -} - -void loop() { - // set the brightness of pin 9: - analogWrite(9, brightness); - - // change the brightness for next time through the loop: - brightness = brightness + fadeAmount; - - // reverse the direction of the fading at the ends of the fade: - if (brightness == 0 || brightness == 255) { - fadeAmount = -fadeAmount ; - } - // wait for 30 milliseconds to see the dimming effect - delay(30); -} diff --git a/build/linux/work/examples/02.Digital/BlinkWithoutDelay/BlinkWithoutDelay.ino b/build/linux/work/examples/02.Digital/BlinkWithoutDelay/BlinkWithoutDelay.ino deleted file mode 100644 index 014357191..000000000 --- a/build/linux/work/examples/02.Digital/BlinkWithoutDelay/BlinkWithoutDelay.ino +++ /dev/null @@ -1,65 +0,0 @@ -/* Blink without Delay - - Turns on and off a light emitting diode(LED) connected to a digital - pin, without using the delay() function. This means that other code - can run at the same time without being interrupted by the LED code. - - The circuit: - * LED attached from pin 13 to ground. - * Note: on most Arduinos, there is already an LED on the board - that's attached to pin 13, so no hardware is needed for this example. - - - created 2005 - by David A. Mellis - modified 8 Feb 2010 - by Paul Stoffregen - - This example code is in the public domain. - - - http://www.arduino.cc/en/Tutorial/BlinkWithoutDelay - */ - -// constants won't change. Used here to -// set pin numbers: -const int ledPin = 13; // the number of the LED pin - -// Variables will change: -int ledState = LOW; // ledState used to set the LED -long previousMillis = 0; // will store last time LED was updated - -// the follow variables is a long because the time, measured in miliseconds, -// will quickly become a bigger number than can be stored in an int. -long interval = 1000; // interval at which to blink (milliseconds) - -void setup() { - // set the digital pin as output: - pinMode(ledPin, OUTPUT); -} - -void loop() -{ - // here is where you'd put code that needs to be running all the time. - - // check to see if it's time to blink the LED; that is, if the - // difference between the current time and last time you blinked - // the LED is bigger than the interval at which you want to - // blink the LED. - unsigned long currentMillis = millis(); - - if(currentMillis - previousMillis > interval) { - // save the last time you blinked the LED - previousMillis = currentMillis; - - // if the LED is off turn it on and vice-versa: - if (ledState == LOW) - ledState = HIGH; - else - ledState = LOW; - - // set the LED with the ledState of the variable: - digitalWrite(ledPin, ledState); - } -} - diff --git a/build/linux/work/examples/02.Digital/Button/Button.ino b/build/linux/work/examples/02.Digital/Button/Button.ino deleted file mode 100644 index e019fca31..000000000 --- a/build/linux/work/examples/02.Digital/Button/Button.ino +++ /dev/null @@ -1,56 +0,0 @@ -/* - Button - - Turns on and off a light emitting diode(LED) connected to digital - pin 13, when pressing a pushbutton attached to pin 2. - - - The circuit: - * LED attached from pin 13 to ground - * pushbutton attached to pin 2 from +5V - * 10K resistor attached to pin 2 from ground - - * Note: on most Arduinos there is already an LED on the board - attached to pin 13. - - - created 2005 - by DojoDave - modified 30 Aug 2011 - by Tom Igoe - - This example code is in the public domain. - - http://www.arduino.cc/en/Tutorial/Button - */ - -// constants won't change. They're used here to -// set pin numbers: -const int buttonPin = 2; // the number of the pushbutton pin -const int ledPin = 13; // the number of the LED pin - -// variables will change: -int buttonState = 0; // variable for reading the pushbutton status - -void setup() { - // initialize the LED pin as an output: - pinMode(ledPin, OUTPUT); - // initialize the pushbutton pin as an input: - pinMode(buttonPin, INPUT); -} - -void loop(){ - // read the state of the pushbutton value: - buttonState = digitalRead(buttonPin); - - // check if the pushbutton is pressed. - // if it is, the buttonState is HIGH: - if (buttonState == HIGH) { - // turn LED on: - digitalWrite(ledPin, HIGH); - } - else { - // turn LED off: - digitalWrite(ledPin, LOW); - } -} \ No newline at end of file diff --git a/build/linux/work/examples/02.Digital/Debounce/Debounce.ino b/build/linux/work/examples/02.Digital/Debounce/Debounce.ino deleted file mode 100644 index 89416b269..000000000 --- a/build/linux/work/examples/02.Digital/Debounce/Debounce.ino +++ /dev/null @@ -1,75 +0,0 @@ -/* - Debounce - - Each time the input pin goes from LOW to HIGH (e.g. because of a push-button - press), the output pin is toggled from LOW to HIGH or HIGH to LOW. There's - a minimum delay between toggles to debounce the circuit (i.e. to ignore - noise). - - The circuit: - * LED attached from pin 13 to ground - * pushbutton attached from pin 2 to +5V - * 10K resistor attached from pin 2 to ground - - * Note: On most Arduino boards, there is already an LED on the board - connected to pin 13, so you don't need any extra components for this example. - - - created 21 November 2006 - by David A. Mellis - modified 30 Aug 2011 - by Limor Fried - -This example code is in the public domain. - - http://www.arduino.cc/en/Tutorial/Debounce - */ - -// constants won't change. They're used here to -// set pin numbers: -const int buttonPin = 2; // the number of the pushbutton pin -const int ledPin = 13; // the number of the LED pin - -// Variables will change: -int ledState = HIGH; // the current state of the output pin -int buttonState; // the current reading from the input pin -int lastButtonState = LOW; // the previous reading from the input pin - -// the following variables are long's because the time, measured in miliseconds, -// will quickly become a bigger number than can be stored in an int. -long lastDebounceTime = 0; // the last time the output pin was toggled -long debounceDelay = 50; // the debounce time; increase if the output flickers - -void setup() { - pinMode(buttonPin, INPUT); - pinMode(ledPin, OUTPUT); -} - -void loop() { - // read the state of the switch into a local variable: - int reading = digitalRead(buttonPin); - - // check to see if you just pressed the button - // (i.e. the input went from LOW to HIGH), and you've waited - // long enough since the last press to ignore any noise: - - // If the switch changed, due to noise or pressing: - if (reading != lastButtonState) { - // reset the debouncing timer - lastDebounceTime = millis(); - } - - if ((millis() - lastDebounceTime) > debounceDelay) { - // whatever the reading is at, it's been there for longer - // than the debounce delay, so take it as the actual current state: - buttonState = reading; - } - - // set the LED using the state of the button: - digitalWrite(ledPin, buttonState); - - // save the reading. Next time through the loop, - // it'll be the lastButtonState: - lastButtonState = reading; -} - diff --git a/build/linux/work/examples/02.Digital/DigitalIputPullup/DigitalIputPullup.ino b/build/linux/work/examples/02.Digital/DigitalIputPullup/DigitalIputPullup.ino deleted file mode 100644 index 6f540e9ff..000000000 --- a/build/linux/work/examples/02.Digital/DigitalIputPullup/DigitalIputPullup.ino +++ /dev/null @@ -1,52 +0,0 @@ -/* - Input Pullup Serial - - This example demonstrates the use of pinMode(INPUT_PULLUP). It reads a - digital input on pin 2 and prints the results to the serial monitor. - - The circuit: - * Momentary switch attached from pin 2 to ground - * Built-in LED on pin 13 - - Unlike pinMode(INPUT), there is no pull-down resistor necessary. An internal - 20K-ohm resistor is pulled to 5V. This configuration causes the input to - read HIGH when the switch is open, and LOW when it is closed. - - created 14 March 2012 - by Scott Fitzgerald - - http://www.arduino.cc/en/Tutorial/InputPullupSerial - - This example code is in the public domain - - */ - -void setup(){ - //start serial connection - Serial.begin(9600); - //configure pin2 as an input and enable the internal pull-up resistor - pinMode(2, INPUT_PULLUP); - pinMode(13, OUTPUT); - -} - -void loop(){ - //read the pushbutton value into a variable - int sensorVal = digitalRead(2); - //print out the value of the pushbutton - Serial.println(sensorVal); - - // Keep in mind the pullup means the pushbutton's - // logic is inverted. It goes HIGH when it's open, - // and LOW when it's pressed. Turn on pin 13 when the - // button's pressed, and off when it's not: - if (sensorVal == HIGH) { - digitalWrite(13, LOW); - } - else { - digitalWrite(13, HIGH); - } -} - - - diff --git a/build/linux/work/examples/02.Digital/StateChangeDetection/StateChangeDetection.ino b/build/linux/work/examples/02.Digital/StateChangeDetection/StateChangeDetection.ino deleted file mode 100644 index 30bb3c405..000000000 --- a/build/linux/work/examples/02.Digital/StateChangeDetection/StateChangeDetection.ino +++ /dev/null @@ -1,92 +0,0 @@ -/* - State change detection (edge detection) - - Often, you don't need to know the state of a digital input all the time, - but you just need to know when the input changes from one state to another. - For example, you want to know when a button goes from OFF to ON. This is called - state change detection, or edge detection. - - This example shows how to detect when a button or button changes from off to on - and on to off. - - The circuit: - * pushbutton attached to pin 2 from +5V - * 10K resistor attached to pin 2 from ground - * LED attached from pin 13 to ground (or use the built-in LED on - most Arduino boards) - - created 27 Sep 2005 - modified 30 Aug 2011 - by Tom Igoe - -This example code is in the public domain. - - http://arduino.cc/en/Tutorial/ButtonStateChange - - */ - -// this constant won't change: -const int buttonPin = 2; // the pin that the pushbutton is attached to -const int ledPin = 13; // the pin that the LED is attached to - -// Variables will change: -int buttonPushCounter = 0; // counter for the number of button presses -int buttonState = 0; // current state of the button -int lastButtonState = 0; // previous state of the button - -void setup() { - // initialize the button pin as a input: - pinMode(buttonPin, INPUT); - // initialize the LED as an output: - pinMode(ledPin, OUTPUT); - // initialize serial communication: - Serial.begin(9600); -} - - -void loop() { - // read the pushbutton input pin: - buttonState = digitalRead(buttonPin); - - // compare the buttonState to its previous state - if (buttonState != lastButtonState) { - // if the state has changed, increment the counter - if (buttonState == HIGH) { - // if the current state is HIGH then the button - // wend from off to on: - buttonPushCounter++; - Serial.println("on"); - Serial.print("number of button pushes: "); - Serial.println(buttonPushCounter); - } - else { - // if the current state is LOW then the button - // wend from on to off: - Serial.println("off"); - } - } - // save the current state as the last state, - //for next time through the loop - lastButtonState = buttonState; - - - // turns on the LED every four button pushes by - // checking the modulo of the button push counter. - // the modulo function gives you the remainder of - // the division of two numbers: - if (buttonPushCounter % 4 == 0) { - digitalWrite(ledPin, HIGH); - } else { - digitalWrite(ledPin, LOW); - } - -} - - - - - - - - - diff --git a/build/linux/work/examples/02.Digital/toneKeyboard/pitches.h b/build/linux/work/examples/02.Digital/toneKeyboard/pitches.h deleted file mode 100644 index 55c7d54e6..000000000 --- a/build/linux/work/examples/02.Digital/toneKeyboard/pitches.h +++ /dev/null @@ -1,95 +0,0 @@ -/************************************************* - * Public Constants - *************************************************/ - -#define NOTE_B0 31 -#define NOTE_C1 33 -#define NOTE_CS1 35 -#define NOTE_D1 37 -#define NOTE_DS1 39 -#define NOTE_E1 41 -#define NOTE_F1 44 -#define NOTE_FS1 46 -#define NOTE_G1 49 -#define NOTE_GS1 52 -#define NOTE_A1 55 -#define NOTE_AS1 58 -#define NOTE_B1 62 -#define NOTE_C2 65 -#define NOTE_CS2 69 -#define NOTE_D2 73 -#define NOTE_DS2 78 -#define NOTE_E2 82 -#define NOTE_F2 87 -#define NOTE_FS2 93 -#define NOTE_G2 98 -#define NOTE_GS2 104 -#define NOTE_A2 110 -#define NOTE_AS2 117 -#define NOTE_B2 123 -#define NOTE_C3 131 -#define NOTE_CS3 139 -#define NOTE_D3 147 -#define NOTE_DS3 156 -#define NOTE_E3 165 -#define NOTE_F3 175 -#define NOTE_FS3 185 -#define NOTE_G3 196 -#define NOTE_GS3 208 -#define NOTE_A3 220 -#define NOTE_AS3 233 -#define NOTE_B3 247 -#define NOTE_C4 262 -#define NOTE_CS4 277 -#define NOTE_D4 294 -#define NOTE_DS4 311 -#define NOTE_E4 330 -#define NOTE_F4 349 -#define NOTE_FS4 370 -#define NOTE_G4 392 -#define NOTE_GS4 415 -#define NOTE_A4 440 -#define NOTE_AS4 466 -#define NOTE_B4 494 -#define NOTE_C5 523 -#define NOTE_CS5 554 -#define NOTE_D5 587 -#define NOTE_DS5 622 -#define NOTE_E5 659 -#define NOTE_F5 698 -#define NOTE_FS5 740 -#define NOTE_G5 784 -#define NOTE_GS5 831 -#define NOTE_A5 880 -#define NOTE_AS5 932 -#define NOTE_B5 988 -#define NOTE_C6 1047 -#define NOTE_CS6 1109 -#define NOTE_D6 1175 -#define NOTE_DS6 1245 -#define NOTE_E6 1319 -#define NOTE_F6 1397 -#define NOTE_FS6 1480 -#define NOTE_G6 1568 -#define NOTE_GS6 1661 -#define NOTE_A6 1760 -#define NOTE_AS6 1865 -#define NOTE_B6 1976 -#define NOTE_C7 2093 -#define NOTE_CS7 2217 -#define NOTE_D7 2349 -#define NOTE_DS7 2489 -#define NOTE_E7 2637 -#define NOTE_F7 2794 -#define NOTE_FS7 2960 -#define NOTE_G7 3136 -#define NOTE_GS7 3322 -#define NOTE_A7 3520 -#define NOTE_AS7 3729 -#define NOTE_B7 3951 -#define NOTE_C8 4186 -#define NOTE_CS8 4435 -#define NOTE_D8 4699 -#define NOTE_DS8 4978 - - diff --git a/build/linux/work/examples/02.Digital/toneKeyboard/toneKeyboard.ino b/build/linux/work/examples/02.Digital/toneKeyboard/toneKeyboard.ino deleted file mode 100644 index 9decdd752..000000000 --- a/build/linux/work/examples/02.Digital/toneKeyboard/toneKeyboard.ino +++ /dev/null @@ -1,45 +0,0 @@ -/* - keyboard - - Plays a pitch that changes based on a changing analog input - - circuit: - * 3 force-sensing resistors from +5V to analog in 0 through 5 - * 3 10K resistors from analog in 0 through 5 to ground - * 8-ohm speaker on digital pin 8 - - created 21 Jan 2010 - modified 30 Aug 2011 - by Tom Igoe - -This example code is in the public domain. - - http://arduino.cc/en/Tutorial/Tone3 - - */ - -#include "pitches.h" - -const int threshold = 10; // minimum reading of the sensors that generates a note - -// notes to play, corresponding to the 3 sensors: -int notes[] = { - NOTE_A4, NOTE_B4,NOTE_C3 }; - -void setup() { - -} - -void loop() { - for (int thisSensor = 0; thisSensor < 3; thisSensor++) { - // get a sensor reading: - int sensorReading = analogRead(thisSensor); - - // if the sensor is pressed hard enough: - if (sensorReading > threshold) { - // play the note corresponding to this sensor: - tone(8, notes[thisSensor], 20); - } - } - Serial.println(); -} diff --git a/build/linux/work/examples/02.Digital/toneMelody/pitches.h b/build/linux/work/examples/02.Digital/toneMelody/pitches.h deleted file mode 100644 index 55c7d54e6..000000000 --- a/build/linux/work/examples/02.Digital/toneMelody/pitches.h +++ /dev/null @@ -1,95 +0,0 @@ -/************************************************* - * Public Constants - *************************************************/ - -#define NOTE_B0 31 -#define NOTE_C1 33 -#define NOTE_CS1 35 -#define NOTE_D1 37 -#define NOTE_DS1 39 -#define NOTE_E1 41 -#define NOTE_F1 44 -#define NOTE_FS1 46 -#define NOTE_G1 49 -#define NOTE_GS1 52 -#define NOTE_A1 55 -#define NOTE_AS1 58 -#define NOTE_B1 62 -#define NOTE_C2 65 -#define NOTE_CS2 69 -#define NOTE_D2 73 -#define NOTE_DS2 78 -#define NOTE_E2 82 -#define NOTE_F2 87 -#define NOTE_FS2 93 -#define NOTE_G2 98 -#define NOTE_GS2 104 -#define NOTE_A2 110 -#define NOTE_AS2 117 -#define NOTE_B2 123 -#define NOTE_C3 131 -#define NOTE_CS3 139 -#define NOTE_D3 147 -#define NOTE_DS3 156 -#define NOTE_E3 165 -#define NOTE_F3 175 -#define NOTE_FS3 185 -#define NOTE_G3 196 -#define NOTE_GS3 208 -#define NOTE_A3 220 -#define NOTE_AS3 233 -#define NOTE_B3 247 -#define NOTE_C4 262 -#define NOTE_CS4 277 -#define NOTE_D4 294 -#define NOTE_DS4 311 -#define NOTE_E4 330 -#define NOTE_F4 349 -#define NOTE_FS4 370 -#define NOTE_G4 392 -#define NOTE_GS4 415 -#define NOTE_A4 440 -#define NOTE_AS4 466 -#define NOTE_B4 494 -#define NOTE_C5 523 -#define NOTE_CS5 554 -#define NOTE_D5 587 -#define NOTE_DS5 622 -#define NOTE_E5 659 -#define NOTE_F5 698 -#define NOTE_FS5 740 -#define NOTE_G5 784 -#define NOTE_GS5 831 -#define NOTE_A5 880 -#define NOTE_AS5 932 -#define NOTE_B5 988 -#define NOTE_C6 1047 -#define NOTE_CS6 1109 -#define NOTE_D6 1175 -#define NOTE_DS6 1245 -#define NOTE_E6 1319 -#define NOTE_F6 1397 -#define NOTE_FS6 1480 -#define NOTE_G6 1568 -#define NOTE_GS6 1661 -#define NOTE_A6 1760 -#define NOTE_AS6 1865 -#define NOTE_B6 1976 -#define NOTE_C7 2093 -#define NOTE_CS7 2217 -#define NOTE_D7 2349 -#define NOTE_DS7 2489 -#define NOTE_E7 2637 -#define NOTE_F7 2794 -#define NOTE_FS7 2960 -#define NOTE_G7 3136 -#define NOTE_GS7 3322 -#define NOTE_A7 3520 -#define NOTE_AS7 3729 -#define NOTE_B7 3951 -#define NOTE_C8 4186 -#define NOTE_CS8 4435 -#define NOTE_D8 4699 -#define NOTE_DS8 4978 - - diff --git a/build/linux/work/examples/02.Digital/toneMelody/toneMelody.ino b/build/linux/work/examples/02.Digital/toneMelody/toneMelody.ino deleted file mode 100644 index 8593ab770..000000000 --- a/build/linux/work/examples/02.Digital/toneMelody/toneMelody.ino +++ /dev/null @@ -1,49 +0,0 @@ -/* - Melody - - Plays a melody - - circuit: - * 8-ohm speaker on digital pin 8 - - created 21 Jan 2010 - modified 30 Aug 2011 - by Tom Igoe - -This example code is in the public domain. - - http://arduino.cc/en/Tutorial/Tone - - */ - #include "pitches.h" - -// notes in the melody: -int melody[] = { - NOTE_C4, NOTE_G3,NOTE_G3, NOTE_A3, NOTE_G3,0, NOTE_B3, NOTE_C4}; - -// note durations: 4 = quarter note, 8 = eighth note, etc.: -int noteDurations[] = { - 4, 8, 8, 4,4,4,4,4 }; - -void setup() { - // iterate over the notes of the melody: - for (int thisNote = 0; thisNote < 8; thisNote++) { - - // to calculate the note duration, take one second - // divided by the note type. - //e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc. - int noteDuration = 1000/noteDurations[thisNote]; - tone(8, melody[thisNote],noteDuration); - - // to distinguish the notes, set a minimum time between them. - // the note's duration + 30% seems to work well: - int pauseBetweenNotes = noteDuration * 1.30; - delay(pauseBetweenNotes); - // stop the tone playing: - noTone(8); - } -} - -void loop() { - // no need to repeat the melody. -} diff --git a/build/linux/work/examples/02.Digital/toneMultiple/pitches.h b/build/linux/work/examples/02.Digital/toneMultiple/pitches.h deleted file mode 100644 index 55c7d54e6..000000000 --- a/build/linux/work/examples/02.Digital/toneMultiple/pitches.h +++ /dev/null @@ -1,95 +0,0 @@ -/************************************************* - * Public Constants - *************************************************/ - -#define NOTE_B0 31 -#define NOTE_C1 33 -#define NOTE_CS1 35 -#define NOTE_D1 37 -#define NOTE_DS1 39 -#define NOTE_E1 41 -#define NOTE_F1 44 -#define NOTE_FS1 46 -#define NOTE_G1 49 -#define NOTE_GS1 52 -#define NOTE_A1 55 -#define NOTE_AS1 58 -#define NOTE_B1 62 -#define NOTE_C2 65 -#define NOTE_CS2 69 -#define NOTE_D2 73 -#define NOTE_DS2 78 -#define NOTE_E2 82 -#define NOTE_F2 87 -#define NOTE_FS2 93 -#define NOTE_G2 98 -#define NOTE_GS2 104 -#define NOTE_A2 110 -#define NOTE_AS2 117 -#define NOTE_B2 123 -#define NOTE_C3 131 -#define NOTE_CS3 139 -#define NOTE_D3 147 -#define NOTE_DS3 156 -#define NOTE_E3 165 -#define NOTE_F3 175 -#define NOTE_FS3 185 -#define NOTE_G3 196 -#define NOTE_GS3 208 -#define NOTE_A3 220 -#define NOTE_AS3 233 -#define NOTE_B3 247 -#define NOTE_C4 262 -#define NOTE_CS4 277 -#define NOTE_D4 294 -#define NOTE_DS4 311 -#define NOTE_E4 330 -#define NOTE_F4 349 -#define NOTE_FS4 370 -#define NOTE_G4 392 -#define NOTE_GS4 415 -#define NOTE_A4 440 -#define NOTE_AS4 466 -#define NOTE_B4 494 -#define NOTE_C5 523 -#define NOTE_CS5 554 -#define NOTE_D5 587 -#define NOTE_DS5 622 -#define NOTE_E5 659 -#define NOTE_F5 698 -#define NOTE_FS5 740 -#define NOTE_G5 784 -#define NOTE_GS5 831 -#define NOTE_A5 880 -#define NOTE_AS5 932 -#define NOTE_B5 988 -#define NOTE_C6 1047 -#define NOTE_CS6 1109 -#define NOTE_D6 1175 -#define NOTE_DS6 1245 -#define NOTE_E6 1319 -#define NOTE_F6 1397 -#define NOTE_FS6 1480 -#define NOTE_G6 1568 -#define NOTE_GS6 1661 -#define NOTE_A6 1760 -#define NOTE_AS6 1865 -#define NOTE_B6 1976 -#define NOTE_C7 2093 -#define NOTE_CS7 2217 -#define NOTE_D7 2349 -#define NOTE_DS7 2489 -#define NOTE_E7 2637 -#define NOTE_F7 2794 -#define NOTE_FS7 2960 -#define NOTE_G7 3136 -#define NOTE_GS7 3322 -#define NOTE_A7 3520 -#define NOTE_AS7 3729 -#define NOTE_B7 3951 -#define NOTE_C8 4186 -#define NOTE_CS8 4435 -#define NOTE_D8 4699 -#define NOTE_DS8 4978 - - diff --git a/build/linux/work/examples/02.Digital/toneMultiple/toneMultiple.ino b/build/linux/work/examples/02.Digital/toneMultiple/toneMultiple.ino deleted file mode 100644 index 52a06df52..000000000 --- a/build/linux/work/examples/02.Digital/toneMultiple/toneMultiple.ino +++ /dev/null @@ -1,42 +0,0 @@ -/* - Multiple tone player - - Plays multiple tones on multiple pins in sequence - - circuit: - * 3 8-ohm speaker on digital pins 6, 7, and 11 - - created 8 March 2010 - by Tom Igoe - based on a snippet from Greg Borenstein - -This example code is in the public domain. - - http://arduino.cc/en/Tutorial/Tone4 - - */ - -void setup() { - -} - -void loop() { - // turn off tone function for pin 11: - noTone(11); - // play a note on pin 6 for 200 ms: - tone(6, 440, 200); - delay(200); - - // turn off tone function for pin 6: - noTone(6); - // play a note on pin 7 for 500 ms: - tone(7, 494, 500); - delay(500); - - // turn off tone function for pin 7: - noTone(7); - // play a note on pin 11 for 500 ms: - tone(11, 523, 300); - delay(300); - -} diff --git a/build/linux/work/examples/02.Digital/tonePitchFollower/tonePitchFollower.ino b/build/linux/work/examples/02.Digital/tonePitchFollower/tonePitchFollower.ino deleted file mode 100644 index beb28b2bd..000000000 --- a/build/linux/work/examples/02.Digital/tonePitchFollower/tonePitchFollower.ino +++ /dev/null @@ -1,46 +0,0 @@ -/* - Pitch follower - - Plays a pitch that changes based on a changing analog input - - circuit: - * 8-ohm speaker on digital pin 8 - * photoresistor on analog 0 to 5V - * 4.7K resistor on analog 0 to ground - - created 21 Jan 2010 - modified 30 Aug 2011 - by Tom Igoe - -This example code is in the public domain. - - http://arduino.cc/en/Tutorial/Tone2 - - */ - - -void setup() { - // initialize serial communications (for debugging only): - Serial.begin(9600); -} - -void loop() { - // read the sensor: - int sensorReading = analogRead(A0); - // print the sensor reading so you know its range - Serial.println(sensorReading); - // map the pitch to the range of the analog input. - // change the minimum and maximum input numbers below - // depending on the range your sensor's giving: - int thisPitch = map(sensorReading, 400, 1000, 100, 1000); - - // play the pitch: - tone(9, thisPitch, 10); - -} - - - - - - diff --git a/build/linux/work/examples/03.Analog/AnalogInOutSerial/AnalogInOutSerial.ino b/build/linux/work/examples/03.Analog/AnalogInOutSerial/AnalogInOutSerial.ino deleted file mode 100644 index e142f690e..000000000 --- a/build/linux/work/examples/03.Analog/AnalogInOutSerial/AnalogInOutSerial.ino +++ /dev/null @@ -1,53 +0,0 @@ -/* - Analog input, analog output, serial output - - Reads an analog input pin, maps the result to a range from 0 to 255 - and uses the result to set the pulsewidth modulation (PWM) of an output pin. - Also prints the results to the serial monitor. - - The circuit: - * potentiometer connected to analog pin 0. - Center pin of the potentiometer goes to the analog pin. - side pins of the potentiometer go to +5V and ground - * LED connected from digital pin 9 to ground - - created 29 Dec. 2008 - modified 30 Aug 2011 - by Tom Igoe - - This example code is in the public domain. - - */ - -// These constants won't change. They're used to give names -// to the pins used: -const int analogInPin = A0; // Analog input pin that the potentiometer is attached to -const int analogOutPin = 9; // Analog output pin that the LED is attached to - -int sensorValue = 0; // value read from the pot -int outputValue = 0; // value output to the PWM (analog out) - -void setup() { - // initialize serial communications at 9600 bps: - Serial.begin(9600); -} - -void loop() { - // read the analog in value: - sensorValue = analogRead(analogInPin); - // map it to the range of the analog out: - outputValue = map(sensorValue, 0, 1023, 0, 255); - // change the analog out value: - analogWrite(analogOutPin, outputValue); - - // print the results to the serial monitor: - Serial.print("sensor = " ); - Serial.print(sensorValue); - Serial.print("\t output = "); - Serial.println(outputValue); - - // wait 10 milliseconds before the next loop - // for the analog-to-digital converter to settle - // after the last reading: - delay(10); -} diff --git a/build/linux/work/examples/03.Analog/AnalogInput/AnalogInput.ino b/build/linux/work/examples/03.Analog/AnalogInput/AnalogInput.ino deleted file mode 100644 index 5d685883b..000000000 --- a/build/linux/work/examples/03.Analog/AnalogInput/AnalogInput.ino +++ /dev/null @@ -1,50 +0,0 @@ -/* - Analog Input - Demonstrates analog input by reading an analog sensor on analog pin 0 and - turning on and off a light emitting diode(LED) connected to digital pin 13. - The amount of time the LED will be on and off depends on - the value obtained by analogRead(). - - The circuit: - * Potentiometer attached to analog input 0 - * center pin of the potentiometer to the analog pin - * one side pin (either one) to ground - * the other side pin to +5V - * LED anode (long leg) attached to digital output 13 - * LED cathode (short leg) attached to ground - - * Note: because most Arduinos have a built-in LED attached - to pin 13 on the board, the LED is optional. - - - Created by David Cuartielles - modified 30 Aug 2011 - By Tom Igoe - - This example code is in the public domain. - - http://arduino.cc/en/Tutorial/AnalogInput - - */ - -int sensorPin = A0; // select the input pin for the potentiometer -int ledPin = 13; // select the pin for the LED -int sensorValue = 0; // variable to store the value coming from the sensor - -void setup() { - // declare the ledPin as an OUTPUT: - pinMode(ledPin, OUTPUT); -} - -void loop() { - // read the value from the sensor: - sensorValue = analogRead(sensorPin); - // turn the ledPin on - digitalWrite(ledPin, HIGH); - // stop the program for milliseconds: - delay(sensorValue); - // turn the ledPin off: - digitalWrite(ledPin, LOW); - // stop the program for for milliseconds: - delay(sensorValue); -} \ No newline at end of file diff --git a/build/linux/work/examples/03.Analog/AnalogWriteMega/AnalogWriteMega.ino b/build/linux/work/examples/03.Analog/AnalogWriteMega/AnalogWriteMega.ino deleted file mode 100644 index 04e50c86c..000000000 --- a/build/linux/work/examples/03.Analog/AnalogWriteMega/AnalogWriteMega.ino +++ /dev/null @@ -1,45 +0,0 @@ -/* - Mega analogWrite() test - - This sketch fades LEDs up and down one at a time on digital pins 2 through 13. - This sketch was written for the Arduino Mega, and will not work on previous boards. - - The circuit: - * LEDs attached from pins 2 through 13 to ground. - - created 8 Feb 2009 - by Tom Igoe - - This example code is in the public domain. - - */ -// These constants won't change. They're used to give names -// to the pins used: -const int lowestPin = 2; -const int highestPin = 13; - - -void setup() { - // set pins 2 through 13 as outputs: - for (int thisPin =lowestPin; thisPin <= highestPin; thisPin++) { - pinMode(thisPin, OUTPUT); - } -} - -void loop() { - // iterate over the pins: - for (int thisPin =lowestPin; thisPin <= highestPin; thisPin++) { - // fade the LED on thisPin from off to brightest: - for (int brightness = 0; brightness < 255; brightness++) { - analogWrite(thisPin, brightness); - delay(2); - } - // fade the LED on thisPin from brithstest to off: - for (int brightness = 255; brightness >= 0; brightness--) { - analogWrite(thisPin, brightness); - delay(2); - } - // pause between LEDs: - delay(100); - } -} diff --git a/build/linux/work/examples/03.Analog/Calibration/Calibration.ino b/build/linux/work/examples/03.Analog/Calibration/Calibration.ino deleted file mode 100644 index c3f88fdf0..000000000 --- a/build/linux/work/examples/03.Analog/Calibration/Calibration.ino +++ /dev/null @@ -1,75 +0,0 @@ -/* - Calibration - - Demonstrates one technique for calibrating sensor input. The - sensor readings during the first five seconds of the sketch - execution define the minimum and maximum of expected values - attached to the sensor pin. - - The sensor minimum and maximum initial values may seem backwards. - Initially, you set the minimum high and listen for anything - lower, saving it as the new minimum. Likewise, you set the - maximum low and listen for anything higher as the new maximum. - - The circuit: - * Analog sensor (potentiometer will do) attached to analog input 0 - * LED attached from digital pin 9 to ground - - created 29 Oct 2008 - By David A Mellis - modified 30 Aug 2011 - By Tom Igoe - - http://arduino.cc/en/Tutorial/Calibration - - This example code is in the public domain. - - */ - -// These constants won't change: -const int sensorPin = A0; // pin that the sensor is attached to -const int ledPin = 9; // pin that the LED is attached to - -// variables: -int sensorValue = 0; // the sensor value -int sensorMin = 1023; // minimum sensor value -int sensorMax = 0; // maximum sensor value - - -void setup() { - // turn on LED to signal the start of the calibration period: - pinMode(13, OUTPUT); - digitalWrite(13, HIGH); - - // calibrate during the first five seconds - while (millis() < 5000) { - sensorValue = analogRead(sensorPin); - - // record the maximum sensor value - if (sensorValue > sensorMax) { - sensorMax = sensorValue; - } - - // record the minimum sensor value - if (sensorValue < sensorMin) { - sensorMin = sensorValue; - } - } - - // signal the end of the calibration period - digitalWrite(13, LOW); -} - -void loop() { - // read the sensor: - sensorValue = analogRead(sensorPin); - - // apply the calibration to the sensor reading - sensorValue = map(sensorValue, sensorMin, sensorMax, 0, 255); - - // in case the sensor value is outside the range seen during calibration - sensorValue = constrain(sensorValue, 0, 255); - - // fade the LED using the calibrated value: - analogWrite(ledPin, sensorValue); -} diff --git a/build/linux/work/examples/03.Analog/Fading/Fading.ino b/build/linux/work/examples/03.Analog/Fading/Fading.ino deleted file mode 100644 index 858d3616c..000000000 --- a/build/linux/work/examples/03.Analog/Fading/Fading.ino +++ /dev/null @@ -1,45 +0,0 @@ -/* - Fading - - This example shows how to fade an LED using the analogWrite() function. - - The circuit: - * LED attached from digital pin 9 to ground. - - Created 1 Nov 2008 - By David A. Mellis - modified 30 Aug 2011 - By Tom Igoe - - http://arduino.cc/en/Tutorial/Fading - - This example code is in the public domain. - - */ - - -int ledPin = 9; // LED connected to digital pin 9 - -void setup() { - // nothing happens in setup -} - -void loop() { - // fade in from min to max in increments of 5 points: - for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=5) { - // sets the value (range from 0 to 255): - analogWrite(ledPin, fadeValue); - // wait for 30 milliseconds to see the dimming effect - delay(30); - } - - // fade out from max to min in increments of 5 points: - for(int fadeValue = 255 ; fadeValue >= 0; fadeValue -=5) { - // sets the value (range from 0 to 255): - analogWrite(ledPin, fadeValue); - // wait for 30 milliseconds to see the dimming effect - delay(30); - } -} - - diff --git a/build/linux/work/examples/03.Analog/Smoothing/Smoothing.ino b/build/linux/work/examples/03.Analog/Smoothing/Smoothing.ino deleted file mode 100644 index e33a0dd16..000000000 --- a/build/linux/work/examples/03.Analog/Smoothing/Smoothing.ino +++ /dev/null @@ -1,67 +0,0 @@ -/* - - Smoothing - - Reads repeatedly from an analog input, calculating a running average - and printing it to the computer. Keeps ten readings in an array and - continually averages them. - - The circuit: - * Analog sensor (potentiometer will do) attached to analog input 0 - - Created 22 April 2007 - modified 30 Aug 2011 - By David A. Mellis - - http://www.arduino.cc/en/Tutorial/Smoothing - - This example code is in the public domain. - - -*/ - - -// Define the number of samples to keep track of. The higher the number, -// the more the readings will be smoothed, but the slower the output will -// respond to the input. Using a constant rather than a normal variable lets -// use this value to determine the size of the readings array. -const int numReadings = 10; - -int readings[numReadings]; // the readings from the analog input -int index = 0; // the index of the current reading -int total = 0; // the running total -int average = 0; // the average - -int inputPin = A0; - -void setup() -{ - // initialize serial communication with computer: - Serial.begin(9600); - // initialize all the readings to 0: - for (int thisReading = 0; thisReading < numReadings; thisReading++) - readings[thisReading] = 0; -} - -void loop() { - // subtract the last reading: - total= total - readings[index]; - // read from the sensor: - readings[index] = analogRead(inputPin); - // add the reading to the total: - total= total + readings[index]; - // advance to the next position in the array: - index = index + 1; - - // if we're at the end of the array... - if (index >= numReadings) - // ...wrap around to the beginning: - index = 0; - - // calculate the average: - average = total / numReadings; - // send it to the computer as ASCII digits - Serial.println(average); -} - - diff --git a/build/linux/work/examples/04.Communication/ASCIITable/ASCIITable.ino b/build/linux/work/examples/04.Communication/ASCIITable/ASCIITable.ino deleted file mode 100644 index e993c2137..000000000 --- a/build/linux/work/examples/04.Communication/ASCIITable/ASCIITable.ino +++ /dev/null @@ -1,77 +0,0 @@ -/* - ASCII table - - Prints out byte values in all possible formats: - * as raw binary values - * as ASCII-encoded decimal, hex, octal, and binary values - - For more on ASCII, see http://www.asciitable.com and http://en.wikipedia.org/wiki/ASCII - - The circuit: No external hardware needed. - - created 2006 - by Nicholas Zambetti - modified 2 Apr 2012 - by Tom Igoe - - This example code is in the public domain. - - - - */ -void setup() { - //Initialize serial and wait for port to open: - Serial.begin(9600); - // this check is only needed on the Leonardo: - while (!Serial) ; - - // prints title with ending line break - Serial.println("ASCII Table ~ Character Map"); -} - -// first visible ASCIIcharacter '!' is number 33: -int thisByte = 33; -// you can also write ASCII characters in single quotes. -// for example. '!' is the same as 33, so you could also use this: -//int thisByte = '!'; - -void loop() { - // prints value unaltered, i.e. the raw binary version of the - // byte. The serial monitor interprets all bytes as - // ASCII, so 33, the first number, will show up as '!' - Serial.write(thisByte); - - Serial.print(", dec: "); - // prints value as string as an ASCII-encoded decimal (base 10). - // Decimal is the default format for Serial.print() and Serial.println(), - // so no modifier is needed: - Serial.print(thisByte); - // But you can declare the modifier for decimal if you want to. - //this also works if you uncomment it: - - // Serial.print(thisByte, DEC); - - - Serial.print(", hex: "); - // prints value as string in hexadecimal (base 16): - Serial.print(thisByte, HEX); - - Serial.print(", oct: "); - // prints value as string in octal (base 8); - Serial.print(thisByte, OCT); - - Serial.print(", bin: "); - // prints value as string in binary (base 2) - // also prints ending line break: - Serial.println(thisByte, BIN); - - // if printed last visible character '~' or 126, stop: - if(thisByte == 126) { // you could also use if (thisByte == '~') { - // This loop loops forever and does nothing - while(true) { - continue; - } - } - // go on to the next character - thisByte++; -} diff --git a/build/linux/work/examples/04.Communication/Dimmer/Dimmer.ino b/build/linux/work/examples/04.Communication/Dimmer/Dimmer.ino deleted file mode 100644 index 78849c2c9..000000000 --- a/build/linux/work/examples/04.Communication/Dimmer/Dimmer.ino +++ /dev/null @@ -1,112 +0,0 @@ -/* - Dimmer - - Demonstrates the sending data from the computer to the Arduino board, - in this case to control the brightness of an LED. The data is sent - in individual bytes, each of which ranges from 0 to 255. Arduino - reads these bytes and uses them to set the brightness of the LED. - - The circuit: - LED attached from digital pin 9 to ground. - Serial connection to Processing, Max/MSP, or another serial application - - created 2006 - by David A. Mellis - modified 30 Aug 2011 - by Tom Igoe and Scott Fitzgerald - - This example code is in the public domain. - - http://www.arduino.cc/en/Tutorial/Dimmer - - */ - -const int ledPin = 9; // the pin that the LED is attached to - -void setup() -{ - // initialize the serial communication: - Serial.begin(9600); - // initialize the ledPin as an output: - pinMode(ledPin, OUTPUT); -} - -void loop() { - byte brightness; - - // check if data has been sent from the computer: - if (Serial.available()) { - // read the most recent byte (which will be from 0 to 255): - brightness = Serial.read(); - // set the brightness of the LED: - analogWrite(ledPin, brightness); - } -} - -/* Processing code for this example - // Dimmer - sends bytes over a serial port - // by David A. Mellis - //This example code is in the public domain. - - import processing.serial.*; - Serial port; - - void setup() { - size(256, 150); - - println("Available serial ports:"); - println(Serial.list()); - - // Uses the first port in this list (number 0). Change this to - // select the port corresponding to your Arduino board. The last - // parameter (e.g. 9600) is the speed of the communication. It - // has to correspond to the value passed to Serial.begin() in your - // Arduino sketch. - port = new Serial(this, Serial.list()[0], 9600); - - // If you know the name of the port used by the Arduino board, you - // can specify it directly like this. - //port = new Serial(this, "COM1", 9600); - } - - void draw() { - // draw a gradient from black to white - for (int i = 0; i < 256; i++) { - stroke(i); - line(i, 0, i, 150); - } - - // write the current X-position of the mouse to the serial port as - // a single byte - port.write(mouseX); - } - */ - -/* Max/MSP v5 patch for this example - -----------begin_max5_patcher---------- -1008.3ocuXszaiaCD9r8uhA5rqAeHIa0aAMaAVf1S6hdoYQAsDiL6JQZHQ2M -YWr+2KeX4vjnjXKKkKhhiGQ9MeyCNz+X9rnMp63sQvuB+MLa1OlOalSjUvrC -ymEUytKuh05TKJWUWyk5nE9eSyuS6jesvHu4F4MxOuUzB6X57sPKWVzBLXiP -xZtGj6q2vafaaT0.BzJfjj.p8ZPukazsQvpfcpFs8mXR3plh8BoBxURIOWyK -rxspZ0YI.eTCEh5Vqp+wGtFXZMKe6CZc3yWZwTdCmYW.BBkdiby8v0r+ST.W -sD9SdUkn8FYspPbqvnBNFtZWiUyLmleJWo0vuKzeuj2vpJLaWA7YiE7wREui -FpDFDp1KcbAFcP5sJoVxp4NB5Jq40ougIDxJt1wo3GDZHiNocKhiIExx+owv -AdOEAksDs.RRrOoww1Arc.9RvN2J9tamwjkcqknvAE0l+8WnjHqreNet8whK -z6mukIK4d+Xknv3jstvJs8EirMMhxsZIusET25jXbX8xczIl5xPVxhPcTGFu -xNDu9rXtUCg37g9Q8Yc+EuofIYmg8QdkPCrOnXsaHwYs3rWx9PGsO+pqueG2 -uNQBqWFh1X7qQG+3.VHcHrfO1nyR2TlqpTM9MDsLKNCQVz6KO.+Sfc5j1Ykj -jzkn2jwNDRP7LVb3d9LtoWBAOnvB92Le6yRmZ4UF7YpQhiFi7A5Ka8zXhKdA -4r9TRGG7V4COiSbAJKdXrWNhhF0hNUh7uBa4Mba0l7JUK+omjDMwkSn95Izr -TOwkdp7W.oPRmNRQsiKeu4j3CkfVgt.NYPEYqMGvvJ48vIlPiyzrIuZskWIS -xGJPcmPiWOfLodybH3wjPbMYwlbFIMNHPHFOtLBNaLSa9sGk1TxMzCX5KTa6 -WIH2ocxSdngM0QPqFRxyPHFsprrhGc9Gy9xoBjz0NWdR2yW9DUa2F85jG2v9 -FgTO4Q8qiC7fzzQNpmNpsY3BrYPVJBMJQ1uVmoItRhw9NrVGO3NMNzYZ+zS7 -3WTvTOnUydG5kHMKLqAOjTe7fN2bGSxOZDkMrBrGQ9J1gONBEy0k4gVo8qHc -cxmfxVihWz6a3yqY9NazzUYkua9UnynadOtogW.JfsVGRVNEbWF8I+eHtcwJ -+wLXqZeSdWLo+FQF6731Tva0BISKTx.cLwmgJsUTTvkg1YsnXmxDge.CDR7x -D6YmX6fMznaF7kdczmJXwm.XSOOrdoHhNA7GMiZYLZZR.+4lconMaJP6JOZ8 -ftCs1YWHZI3o.sIXezX5ihMSuXzZtk3ai1mXRSczoCS32hAydeyXNEu5SHyS -xqZqbd3ZLdera1iPqYxOm++v7SUSz ------------end_max5_patcher----------- - */ diff --git a/build/linux/work/examples/04.Communication/Graph/Graph.ino b/build/linux/work/examples/04.Communication/Graph/Graph.ino deleted file mode 100644 index 92256ab00..000000000 --- a/build/linux/work/examples/04.Communication/Graph/Graph.ino +++ /dev/null @@ -1,149 +0,0 @@ -/* - Graph - - A simple example of communication from the Arduino board to the computer: - the value of analog input 0 is sent out the serial port. We call this "serial" - communication because the connection appears to both the Arduino and the - computer as a serial port, even though it may actually use - a USB cable. Bytes are sent one after another (serially) from the Arduino - to the computer. - - You can use the Arduino serial monitor to view the sent data, or it can - be read by Processing, PD, Max/MSP, or any other program capable of reading - data from a serial port. The Processing code below graphs the data received - so you can see the value of the analog input changing over time. - - The circuit: - Any analog input sensor is attached to analog in pin 0. - - created 2006 - by David A. Mellis - modified 30 Aug 2011 - by Tom Igoe and Scott Fitzgerald - - This example code is in the public domain. - - http://www.arduino.cc/en/Tutorial/Graph - */ - -void setup() { - // initialize the serial communication: - Serial.begin(9600); -} - -void loop() { - // send the value of analog input 0: - Serial.println(analogRead(A0)); - // wait a bit for the analog-to-digital converter - // to stabilize after the last reading: - delay(10); -} - -/* Processing code for this example - - // Graphing sketch - - - // This program takes ASCII-encoded strings - // from the serial port at 9600 baud and graphs them. It expects values in the - // range 0 to 1023, followed by a newline, or newline and carriage return - - // Created 20 Apr 2005 - // Updated 18 Jan 2008 - // by Tom Igoe - // This example code is in the public domain. - - import processing.serial.*; - - Serial myPort; // The serial port - int xPos = 1; // horizontal position of the graph - - void setup () { - // set the window size: - size(400, 300); - - // List all the available serial ports - println(Serial.list()); - // I know that the first port in the serial list on my mac - // is always my Arduino, so I open Serial.list()[0]. - // Open whatever port is the one you're using. - myPort = new Serial(this, Serial.list()[0], 9600); - // don't generate a serialEvent() unless you get a newline character: - myPort.bufferUntil('\n'); - // set inital background: - background(0); - } - void draw () { - // everything happens in the serialEvent() - } - - void serialEvent (Serial myPort) { - // get the ASCII string: - String inString = myPort.readStringUntil('\n'); - - if (inString != null) { - // trim off any whitespace: - inString = trim(inString); - // convert to an int and map to the screen height: - float inByte = float(inString); - inByte = map(inByte, 0, 1023, 0, height); - - // draw the line: - stroke(127,34,255); - line(xPos, height, xPos, height - inByte); - - // at the edge of the screen, go back to the beginning: - if (xPos >= width) { - xPos = 0; - background(0); - } - else { - // increment the horizontal position: - xPos++; - } - } - } - - */ - -/* Max/MSP v5 patch for this example - ----------begin_max5_patcher---------- -1591.3oc0YszbaaCD9r7uBL5RalQUAO3CvdyS5zVenWZxs5NcfHgjPCIfJIT -RTxj+6AOHkoTDooroUs0AQPR73a+1cwtK3WtZxzEpOwqlB9YveAlL4KWMYh6 -Q1GLo99ISKXeJMmU451zTUQAWpmNy+NM+SZ2y+sR1l02JuU9t0hJvFlNcMPy -dOuBv.U5Rgb0LPpRpYBooM3529latArTUVvzZdFPtsXAuDrrTU.f.sBffXxL -vGE50lIHkUVJXq3fRtdaoDvjYfbgjujaFJSCzq4.tLaN.bi1tJefWpqbO0uz -1IjIABoluxrJ1guxh2JfPO2B5zRNyBCLDFcqbwNvuv9fHCb8bvevyyEU2JKT -YhkBSWPAfq2TZ6YhqmuMUo0feUn+rYpY4YtY+cFw3lUJdCMYAapZqzwUHX8S -crjAd+SIOU6UBAwIygy.Q1+HAA1KH6EveWOFQlitUK92ehfal9kFhUxJ3tWc -sgpxadigWExbt1o7Ps5dk3yttivyg20W0VcSmg1G90qtx92rAZbH4ez.ruy1 -nhmaDPidE07J+5n2sg6E6oKXxUSmc20o6E3SPRDbrkXnPGUYE.i5nCNB9TxQ -jG.G0kCTZtH88f07Rt0ZMMWUw8VvbKVAaTk6GyoraPdZff7rQTejBN54lgyv -HE0Ft7AvIvvgvIwO23jBdUkYOuSvIFSiNcjFhiSsUBwsUCh1AgfNSBAeNDBZ -DIDqY.f8.YjfjV1HAn9XDTxyNFYatVTkKx3kcK9GraZpI5jv7GOx+Z37Xh82 -LSKHIDmDXaESoXRngIZQDKVkpxUkMCyXCQhcCK1z.G457gi3TzMz4RFD515F -G3bIQQwcP3SOF0zlkGhiCBQ1kOHHFFlXaEBQIQnCwv9QF1LxPZ.A4jR5cyQs -vbvHMJsLll01We+rE2LazX6zYmCraRrsPFwKg1ANBZFY.IAihr8Ox.aH0oAL -hB8nQVw0FSJiZeunOykbT6t3r.NP8.iL+bnwNiXuVMNJH9H9YCm89CFXPBER -bz422p8.O4dg6kRxdyjDqRwMIHTbT3QFLskxJ8tbmQK4tm0XGeZWF7wKKtYY -aTAF.XPNFaaQBinQMJ4QLF0aNHF0JtYuHSxoUZfZY6.UU2ejJTb8lQw8Fo5k -Rv6e2PI+fOM71o2ecY1VgTYdCSxxUqLokuYq9jYJi6lxPgD2NIPePLB0mwbG -YA9Rgxdiu1k5xiLlSU6JVnx6wzg3sYHwTesB8Z5D7RiGZpXyvDNJY.DQX3.H -hvmcUN4bP1yCkhpTle2P37jtBsKrLWcMScEmltOPv22ZfAqQAdKr9HzATQwZ -q18PrUGt6Tst2XMCRUfGuhXs6ccn23YloomMqcTiC5iMGPsHsHRWhWFlaenV -XcqwgCQiGGJzptyS2ZMODBz6fGza0bzmXBj7+DA94bvpR01MffAlueO7HwcI -pWCwmzJdvi9ILgflLAFmyXB6O7ML0YbD26lenmcGxjVsZUN+A6pUK7AtTrPg -M+eRYG0qD9j4I7eEbco8Xh6WcO.or9XDC6UCiewbXHkh6xm5LiPEkzpJDRTu -mEB44Fgz4NCtJvX.SM1vo2SlTCZGAe7GZu6ahdRyzFOhYZ+mbVVSYptBw.K1 -tboIkatIA7c1cTKD1u.honLYV04VkluHsXe0szv9pQCE9Ro3jaVB1o15pz2X -zYoBvO5KXCAe0LCYJybE8ZODf4fV8t9qW0zYxq.YJfTosj1bv0xc.SaC0+AV -9V9L.KKyV3SyTcRtmzi6rO.O16USvts4B5xe9EymDvebK0eMfW6+NIsNlE2m -eqRyJ0utRq13+RjmqYKN1e.4d61jjdsauXe3.2p6jgi9hsNIv97CoyJ01xzl -c3ZhUCtSHx3UZgjoEJYqNY+hYs5zZQVFW19L3JDYaTlMLqAAt1G2yXlnFg9a -53L1FJVcv.cOX0dh7mCVGCLce7GFcQwDdH5Ta3nyAS0pQbHxegr+tGIZORgM -RnMj5vGl1Fs16drnk7Tf1XOLgv1n0d2iEsCxR.eQsNOZ4FGF7whofgfI3kES -1kCeOX5L2rifbdu0A9ae2X.V33B1Z+.Bj1FrP5iFrCYCG5EUWSG.hhunHJd. -HJ5hhnng3h9HPj4lud02.1bxGw. ------------end_max5_patcher----------- - - */ diff --git a/build/linux/work/examples/04.Communication/MIDI/Midi.ino b/build/linux/work/examples/04.Communication/MIDI/Midi.ino deleted file mode 100644 index a10548673..000000000 --- a/build/linux/work/examples/04.Communication/MIDI/Midi.ino +++ /dev/null @@ -1,49 +0,0 @@ -/* - MIDI note player - - This sketch shows how to use the serial transmit pin (pin 1) to send MIDI note data. - If this circuit is connected to a MIDI synth, it will play - the notes F#-0 (0x1E) to F#-5 (0x5A) in sequence. - - - The circuit: - * digital in 1 connected to MIDI jack pin 5 - * MIDI jack pin 2 connected to ground - * MIDI jack pin 4 connected to +5V through 220-ohm resistor - Attach a MIDI cable to the jack, then to a MIDI synth, and play music. - - created 13 Jun 2006 - modified 30 Aug 2011 - by Tom Igoe - - This example code is in the public domain. - - http://www.arduino.cc/en/Tutorial/MIDI - - */ - -void setup() { - // Set MIDI baud rate: - Serial.begin(31250); -} - -void loop() { - // play notes from F#-0 (0x1E) to F#-5 (0x5A): - for (int note = 0x1E; note < 0x5A; note ++) { - //Note on channel 1 (0x90), some note value (note), middle velocity (0x45): - noteOn(0x90, note, 0x45); - delay(100); - //Note on channel 1 (0x90), some note value (note), silent velocity (0x00): - noteOn(0x90, note, 0x00); - delay(100); - } -} - -// plays a MIDI note. Doesn't check to see that -// cmd is greater than 127, or that data values are less than 127: -void noteOn(int cmd, int pitch, int velocity) { - Serial.write(cmd); - Serial.write(pitch); - Serial.write(velocity); -} - diff --git a/build/linux/work/examples/04.Communication/MultiSerialMega/MultiSerialMega.ino b/build/linux/work/examples/04.Communication/MultiSerialMega/MultiSerialMega.ino deleted file mode 100644 index 684e305bb..000000000 --- a/build/linux/work/examples/04.Communication/MultiSerialMega/MultiSerialMega.ino +++ /dev/null @@ -1,33 +0,0 @@ -/* - Mega multple serial test - - Receives from the main serial port, sends to the others. - Receives from serial port 1, sends to the main serial (Serial 0). - - This example works only on the Arduino Mega - - The circuit: - * Any serial device attached to Serial port 1 - * Serial monitor open on Serial port 0: - - created 30 Dec. 2008 - by Tom Igoe - - This example code is in the public domain. - - */ - - -void setup() { - // initialize both serial ports: - Serial.begin(9600); - Serial1.begin(9600); -} - -void loop() { - // read from port 1, send to port 0: - if (Serial1.available()) { - int inByte = Serial1.read(); - Serial.write(inByte); - } -} diff --git a/build/linux/work/examples/04.Communication/PhysicalPixel/PhysicalPixel.ino b/build/linux/work/examples/04.Communication/PhysicalPixel/PhysicalPixel.ino deleted file mode 100644 index 7ac8231a6..000000000 --- a/build/linux/work/examples/04.Communication/PhysicalPixel/PhysicalPixel.ino +++ /dev/null @@ -1,170 +0,0 @@ -/* - Physical Pixel - - An example of using the Arduino board to receive data from the - computer. In this case, the Arduino boards turns on an LED when - it receives the character 'H', and turns off the LED when it - receives the character 'L'. - - The data can be sent from the Arduino serial monitor, or another - program like Processing (see code below), Flash (via a serial-net - proxy), PD, or Max/MSP. - - The circuit: - * LED connected from digital pin 13 to ground - - created 2006 - by David A. Mellis - modified 30 Aug 2011 - by Tom Igoe and Scott Fitzgerald - - This example code is in the public domain. - - http://www.arduino.cc/en/Tutorial/PhysicalPixel - */ - -const int ledPin = 13; // the pin that the LED is attached to -int incomingByte; // a variable to read incoming serial data into - -void setup() { - // initialize serial communication: - Serial.begin(9600); - // initialize the LED pin as an output: - pinMode(ledPin, OUTPUT); -} - -void loop() { - // see if there's incoming serial data: - if (Serial.available() > 0) { - // read the oldest byte in the serial buffer: - incomingByte = Serial.read(); - // if it's a capital H (ASCII 72), turn on the LED: - if (incomingByte == 'H') { - digitalWrite(ledPin, HIGH); - } - // if it's an L (ASCII 76) turn off the LED: - if (incomingByte == 'L') { - digitalWrite(ledPin, LOW); - } - } -} - -/* Processing code for this example - - // mouseover serial - - // Demonstrates how to send data to the Arduino I/O board, in order to - // turn ON a light if the mouse is over a square and turn it off - // if the mouse is not. - - // created 2003-4 - // based on examples by Casey Reas and Hernando Barragan - // modified 30 Aug 2011 - // by Tom Igoe - // This example code is in the public domain. - - - - import processing.serial.*; - - float boxX; - float boxY; - int boxSize = 20; - boolean mouseOverBox = false; - - Serial port; - - void setup() { - size(200, 200); - boxX = width/2.0; - boxY = height/2.0; - rectMode(RADIUS); - - // List all the available serial ports in the output pane. - // You will need to choose the port that the Arduino board is - // connected to from this list. The first port in the list is - // port #0 and the third port in the list is port #2. - println(Serial.list()); - - // Open the port that the Arduino board is connected to (in this case #0) - // Make sure to open the port at the same speed Arduino is using (9600bps) - port = new Serial(this, Serial.list()[0], 9600); - - } - - void draw() - { - background(0); - - // Test if the cursor is over the box - if (mouseX > boxX-boxSize && mouseX < boxX+boxSize && - mouseY > boxY-boxSize && mouseY < boxY+boxSize) { - mouseOverBox = true; - // draw a line around the box and change its color: - stroke(255); - fill(153); - // send an 'H' to indicate mouse is over square: - port.write('H'); - } - else { - // return the box to it's inactive state: - stroke(153); - fill(153); - // send an 'L' to turn the LED off: - port.write('L'); - mouseOverBox = false; - } - - // Draw the box - rect(boxX, boxY, boxSize, boxSize); - } - - - */ - -/* -Max/MSP version 5 patch to run with this example: - -----------begin_max5_patcher---------- -1672.3oc2ZszaaiCD9ryuBBebQVCQRYao8xhf1cQCPVfBzh8RRQ.sDsM2HSZ -HQmlzh9eu7gjsjsEk7y0oWjiHoHm4aluYHGlueUmtiDuPy5B9Cv8fNc99Uc5 -XZR2Pm726zcF4knDRlYXciDylQ4xtWa6SReQZZ+iSeMiEQR.ej8BM4A9C7OO -kkAlSjQSAYTdbFfvA27o2c6sfO.Doqd6NfXgDHmRUCKkolg4hT06BfbQJGH3 -5Qd2e8d.QJIQSow5tzebZ7BFW.FIHow8.2JAQpVIIYByxo9KIMkSjL9D0BRT -sbGHZJIkDoZOSMuQT.8YZ5qpgGI3locF4IpQRzq2nDF+odZMIJkRjpEF44M3 -A9nWAum7LKFbSOv+PSRXYOvmIhYiYpg.8A2LOUOxPyH+TjPJA+MS9sIzTRRr -QP9rXF31IBZAHpVHkHrfaPRHLuUCzoj9GSoQRqIB52y6Z.tu8o4EX+fddfuj -+MrXiwPL5+9cXwrOVvkbxLpomazHbQO7EyX7DpzXYgkFdF6algCQpkX4XUlo -hA6oa7GWck9w0Gnmy6RXQOoQeCfWwlzsdnHLTq8n9PCHLv7Cxa6PAN3RCKjh -ISRVZ+sSl704Tqt0kocE9R8J+P+RJOZ4ysp6gN0vppBbOTEN8qp0YCq5bq47 -PUwfA5e766z7NbGMuncw7VgNRSyQhbnPMGrDsGaFSvKM5NcWoIVdZn44.eOi -9DTRUT.7jDQzSTiF4UzXLc7tLGh4T9pwaFQkGUGIiOOkpBSJUwGsBd40krHQ -9XEvwq2V6eLIhV6GuzP7uzzXBmzsXPSRYwBtVLp7s5lKVv6UN2VW7xRtYDbx -7s7wRgHYDI8YVFaTBshkP49R3rYpH3RlUhTQmK5jMadJyF3cYaTNQMGSyhRE -IIUlJaOOukdhoOyhnekEKmZlqU3UkLrk7bpPrpztKBVUR1uorLddk6xIOqNt -lBOroRrNVFJGLrDxudpET4kzkstNp2lzuUHVMgk5TDZx9GWumnoQTbhXsEtF -tzCcM+z0QKXsngCUtTOEIN0SX2iHTTIIz968.Kf.uhfzUCUuAd3UKd.OKt.N -HTynxTQyjpQD9jlwEXeKQxfHCBahUge6RprSa2V4m3aYOMyaP6gah2Yf1zbD -jVwZVGFZHHxINFxpjr5CiTS9JiZn6e6nTlXQZTAFj6QCppQwzL0AxVtoi6WE -QXsANkEGWMEuwNvhmKTnat7A9RqLq6pXuEwY6xM5xRraoTiurj51J1vKLzFs -CvM7HI14Mpje6YRxHOSieTsJpvJORjxT1nERK6s7YTN7sr6rylNwf5zMiHI4 -meZ4rTYt2PpVettZERbjJ6PjfqN2loPSrUcusH01CegsGEE5467rnCdqT1ES -QxtCvFq.cvGz+BaAHXKzRSfP+2Jf.KCvj5ZLJRAhwi+SWHvPyN3vXiaPn6JR -3eoA.0TkFhTvpsDMIrL20nAkCI4EoYfSHAuiPBdmJRyd.IynYYjIzMvjOTKf -3DLvnvRLDLpWeEOYXMfAZqfQ0.qsnlUdmA33t8CNJ7MZEb.u7fiZHLYzDkJp -R7CqEVLGN75U+1JXxFUY.xEEBcRCqhOEkz2bENEWnh4pbh0wY25EefbD6EmW -UA6Ip8wFLyuFXx+Wrp8m6iff1B86W7bqJO9+mx8er4E3.abCLrYdA16sBuHx -vKT6BlpIGQIhL55W7oicf3ayv3ixQCm4aQuY1HZUPQWY+cASx2WZ3f1fICuz -vj5R5ZbM1y8gXYN4dIXaYGq4NhQvS5MmcDADy+S.j8CQ78vk7Q7gtPDX3kFh -3NGaAsYBUAO.8N1U4WKycxbQdrWxJdXd10gNIO+hkUMmm.CZwknu7JbNUYUq -0sOsTsI1QudDtjw0t+xZ85wWZd80tMCiiMADNX4UzrcSeK23su87IANqmA7j -tiRzoXi2YRh67ldAk79gPmTe3YKuoY0qdEDV3X8xylCJMTN45JIakB7uY8XW -uVr3PO8wWwEoTW8lsfraX7ZqzZDDXCRqNkztHsGCYpIDDAOqxDpMVUMKcOrp -942acPvx2NPocMC1wQZ8glRn3myTykVaEUNLoEeJjVaAevA4EAZnsNgkeyO+ -3rEZB7f0DTazDcQTNmdt8aACGi1QOWnMmd+.6YjMHH19OB5gKsMF877x8wsJ -hN97JSnSfLUXGUoj6ujWXd6Pk1SAC+Pkogm.tZ.1lX1qL.pe6PE11DPeMMZ2 -.P0K+3peBt3NskC ------------end_max5_patcher----------- - - - */ diff --git a/build/linux/work/examples/04.Communication/SerialCallResponse/SerialCallResponse.ino b/build/linux/work/examples/04.Communication/SerialCallResponse/SerialCallResponse.ino deleted file mode 100644 index e15031e8b..000000000 --- a/build/linux/work/examples/04.Communication/SerialCallResponse/SerialCallResponse.ino +++ /dev/null @@ -1,211 +0,0 @@ -/* - Serial Call and Response - Language: Wiring/Arduino - - This program sends an ASCII A (byte of value 65) on startup - and repeats that until it gets some data in. - Then it waits for a byte in the serial port, and - sends three sensor values whenever it gets a byte in. - - Thanks to Greg Shakar and Scott Fitzgerald for the improvements - - The circuit: - * potentiometers attached to analog inputs 0 and 1 - * pushbutton attached to digital I/O 2 - - Created 26 Sept. 2005 - by Tom Igoe - modified 30 Aug 2011 - by Tom Igoe and Scott Fitzgerald - - This example code is in the public domain. - - http://www.arduino.cc/en/Tutorial/SerialCallResponse - - */ - -int firstSensor = 0; // first analog sensor -int secondSensor = 0; // second analog sensor -int thirdSensor = 0; // digital sensor -int inByte = 0; // incoming serial byte - -void setup() -{ - // start serial port at 9600 bps: - Serial.begin(9600); - pinMode(2, INPUT); // digital sensor is on digital pin 2 - establishContact(); // send a byte to establish contact until receiver responds -} - -void loop() -{ - // if we get a valid byte, read analog ins: - if (Serial.available() > 0) { - // get incoming byte: - inByte = Serial.read(); - // read first analog input, divide by 4 to make the range 0-255: - firstSensor = analogRead(A0)/4; - // delay 10ms to let the ADC recover: - delay(10); - // read second analog input, divide by 4 to make the range 0-255: - secondSensor = analogRead(1)/4; - // read switch, map it to 0 or 255L - thirdSensor = map(digitalRead(2), 0, 1, 0, 255); - // send sensor values: - Serial.write(firstSensor); - Serial.write(secondSensor); - Serial.write(thirdSensor); - } -} - -void establishContact() { - while (Serial.available() <= 0) { - Serial.print('A'); // send a capital A - delay(300); - } -} - -/* -Processing sketch to run with this example: - -// This example code is in the public domain. - -import processing.serial.*; - -int bgcolor; // Background color -int fgcolor; // Fill color -Serial myPort; // The serial port -int[] serialInArray = new int[3]; // Where we'll put what we receive -int serialCount = 0; // A count of how many bytes we receive -int xpos, ypos; // Starting position of the ball -boolean firstContact = false; // Whether we've heard from the microcontroller - -void setup() { - size(256, 256); // Stage size - noStroke(); // No border on the next thing drawn - - // Set the starting position of the ball (middle of the stage) - xpos = width/2; - ypos = height/2; - - // Print a list of the serial ports, for debugging purposes: - println(Serial.list()); - - // I know that the first port in the serial list on my mac - // is always my FTDI adaptor, so I open Serial.list()[0]. - // On Windows machines, this generally opens COM1. - // Open whatever port is the one you're using. - String portName = Serial.list()[0]; - myPort = new Serial(this, portName, 9600); -} - -void draw() { - background(bgcolor); - fill(fgcolor); - // Draw the shape - ellipse(xpos, ypos, 20, 20); -} - -void serialEvent(Serial myPort) { - // read a byte from the serial port: - int inByte = myPort.read(); - // if this is the first byte received, and it's an A, - // clear the serial buffer and note that you've - // had first contact from the microcontroller. - // Otherwise, add the incoming byte to the array: - if (firstContact == false) { - if (inByte == 'A') { - myPort.clear(); // clear the serial port buffer - firstContact = true; // you've had first contact from the microcontroller - myPort.write('A'); // ask for more - } - } - else { - // Add the latest byte from the serial port to array: - serialInArray[serialCount] = inByte; - serialCount++; - - // If we have 3 bytes: - if (serialCount > 2 ) { - xpos = serialInArray[0]; - ypos = serialInArray[1]; - fgcolor = serialInArray[2]; - - // print the values (for debugging purposes only): - println(xpos + "\t" + ypos + "\t" + fgcolor); - - // Send a capital A to request new sensor readings: - myPort.write('A'); - // Reset serialCount: - serialCount = 0; - } - } -} -*/ - -/* -Max/MSP version 5 patch to run with this example: - -----------begin_max5_patcher---------- -2569.3oc2as0jiZqD9YO+Jzw09PRc75BIAX671TaUop8gy4gLoNmG1YqsjAY -rxhAGPLW1T4+dZIAd.aCFeiEuYqXFABQqu9qa0Rp0ec2fgyiegmND8KnOgFL -3utav.8sT2XPd4ACWwdwKjkpq1vU7zTV.e3Hyyj7Wj5665Tbq3LYHWJecM2z -tCGh9b9iVyjdKEQAeIg6IMOkRmM1ZDx10UcgRF6LBgmN1Zy6H70se77+38yJ -9DKhijQrU5Ovv6SDrvhmDksRDAedsvRJU8Tw2zUGSfuyl5ZjUckwpa922cm5 -mQsDLh3OCx0NXQJODgqENlyhBFNpkvBchFVzfCwZ+vh60DVHm.r3EuZEORtC -t7.WISnOvBCe+uwSWGGkxQnGidL5AdjeJhgl+pjifuNRtjiRMUecbhbDhE4i -R3LnVTcsRQhnwHzCfXhVDmvChyfZ3EGFmLB8x53Tyq7J7Wn3EPS6IR7B4nrT -.n0M+SrvLnYR3xrjHtOZQR7ps+tiMh2+MVx+EzuuTjhz5JDzSy.KAn5Lir5y -eR3AhdjtTL7SBB5SpO8VMIBZjfXsPDC2GpCCojIP1L89EFIC45f9o6e3Ce7i -n6+YUCmJYIxr0iA4.ZvuxUxwyLgo+ajDUCLR8AizsLfnQn7l.8LbW9SfXIjv -qAZdzJ.1P9LIartS5AvqDvArM590I.ayZ1iQyeE8fWrTh9Ug7aA7DVnuFW+c -.q9XP7F+.ghHtGnBzJZLtdhsskshK6PLV85BXmZL3cNRlM9XX1VWPlsLQD.n -C5m.Mwmje9mUpDOE4RDrT99P9BIPMidBdUAP5AV08ggFdSB6YEWPgoqShg2Q -yOeV.OeIa8ZPSNmq32n+C6Efq9m.kETcfimb96Xz+WotkJtYgTrPjvA9Onn2 -gE.bNV5WQ2m3mIhh0LmRs0d0lz5UlDiWJGKGs1jXtTixz8lQalvEQBIHVvGM -UqlBXJONOqQZi2BvfjosuWrWPiTOngmXo8oatfoZPiZWCnYeq.ZdK4desvWD -GXYdBQtmLvk1iCu+wgJ12bdfHBLF.QNyioLGTVCKjJGSFPW8vUYQBySUtKWw -70t0f+bdXr2WQoKy.i.+3miNZJqsqA8czvNgRajxR6aneMQbrF.XkqDMzaFo -6wgmV.YDrNjCWaC.4psvwypAfH6Ef9e7DeVDauPDcePjUcAkUVN4I4.SNx.s -gHTMjVJvSJU6ACeq23nGfYlsoKYYT1khiBv6.Ekhq6SVE2zmu3XZiXvO8a0W -WiJ+Tslhn0f+YvFRSv296xxBkeY+fS0muf4wq8kqQULXXPhvONRIFUdW0sK9 -f.Gvn6cJK45ZDwVumWVFGGNmk7jHULOjWQS.rYVjXE39TJLRDDWQwCEqVmHL -VratGOhAswxTuj3vvJMk4IOsmmXB95YgubotsdCupL8lRLmJ1YUteiS2opQ2 -hjf4.H4T7+kqT81b0Fw+DGSrPZRyro5Bk7Kssom8jxeuZ8OUa3+6ZDhG6LyA -OcR0Wb6oHMnvok4OFcs.VK0+NOHkjCoF5ryrCBot2zPZkwF1cFoJVZy.ZwLS -2YFp0xYsLwvXtXlBOA2..6TK.ukep5FYsgQW2C5R6FzcMChIw5RvXMF+4DV7 -TqCBnzSFPsOE.sinq+afR0HPpG03PV+UHm1GFKImLVR9QGKycj1ZnDe6BkMM -vDDVMKYDZMCvrXXtMn2gQuifdGE8N6KhgewExAGpx5ldnJs7b1rRmIpUKNmN -taHqauXRSqETZfYU5IEy7U0fC6cfAlT137vnwrenQCp0QgFtV8Tzv74FdfQ5 -HSGSg+y1dj9uaWWF2pXs1ZIKNht7aScTs1L0LKLcuQ878iEowYIdE58h.dPU -6S97ToHZybo+zaNH2phKE99Um4pFtE9qiAJUt.h9bqzdGsb6zV41s+I231H2 -S5WxMts3shPQ5OxM4XjaZuQtUCt1d415FTtw8K4d1wf23aP4lzqvaWq1J2N8 -K+fsUtc6W768LL3sgbO46gbmeSnCX1tjT1Sb+u.eFHDwuvjxDw7LoIDrxaex -4uaBM9vCsYFAgwyYg4asylVoRauiTscac2aHwkYmzrpcWyJOsi8NkCb995N8 -sLYptT1wYxMRpL8udeCYxzAQjolDBf51BDw4FAQToB.LfJ9DS2MCjju8ylcV -rVHwtuAIx3ffP9YyGLoKhY8JpsySabC1u1pWqSS8hM6RrcqTuV2PoyXCo2Y6 -xmwbduYKMroMAL1S6aIzXnmesc+PQpT08KtpLBF0xbrXV9pz3t4x9vC5rivT -v9xo2kpTPLrQq8Qsydvwjze1js23fJcSmiNWRveuxj0mXga7OsuEl1jTWtlt -sIGdqqaiut85SJIixVMmmbHEu1tuIkus6jRnfiaiJ+aJcOoAcusILPWyfbGP -2Os+o7anaianaSlRZc2lX8CKmmZWFFZlySH8OR+EBFJFfKGFbZDF5g190LhX -Vzao5wgvnRWZAR4XxF37zsrVnZ10EpnWNn5agnfj3r0HZ8QR2xnGrMAMNA23 -.HG+3njuSrHHdZnKBbnCeFgZWr0XSbU4YgEooXqoVWyLZldIym7PAXpsjmvU -oMtWXbJe6iRSCCGQMo4MYlgzX03Anh3dyjj8U.EUh3dLXxz7T51oMXxj9FlT -2IOTSMNwUiI2xwvRn6jfnU.Dbea550AH5SYF6TONl1k3H13lPDbu67XVmYyG -pX1DvA3Aolut5joTx1Isov5yWzJCIgXMoQim9lsyYtvcDhwzHOPNRwu6kUf+ -9rvc+4JtLI9sjcrlAUaQ2rXfTmlTwXxMi6.8Yr3z7FjuBlFRuYY7q0a.8lY4 -L0F7LzLWKqyZ0sx4KTrloLswU6EeUOHeWx02323L+Buhhn0YRz7rEKTmm4m3 -IuBFXnUhPv6I2KNxO8nO8iTy4IKeo.sZ5vOhuYNwnlAXTGna0gztokIwrj.X -WCLfabXDbmECl9qWMO8Lvw16+cNnry9dWIsNpYKuUl.kpzNa2892p6czPsUj -bnsPlbONQhByHUkxwTr5B0d5lRmov51BYcVmBeTbKDIpS2JSUxFwZjIxrtWl -tzTehEUwrbLqlH1rP5UKkmgyDplCpKctFLSZQOYKqpCawfmYRR+7oXYuoz4h -6VsQZmzstbZCWvw9z74XN+h1NlSrdkRTmxnqtTW37zoas9IsxgNoakIRakIb -24QpshDoyDI21.Szt0w8V1g0jNmS6TYBa2VGHGAcpXHByvG1jYaJ0INIrNM2 -cj7kmjtozYJsaoJuLCuctHXaFDaqHw5GbPqN0klNltCF3WG65uMy4gP6dYhb -H9T2RmZ07HNRmD4tzv4KbOAuozkHpxCQzvc7LLZiSBR25jffuBy5IWORw5KE -CagO+YWiuFKOA0VOzDY5zRRqtz4Jszqgz5ZjVWqxRqpTWXei6VWyXx0d4nfB -+8c+C81VE7B ------------end_max5_patcher----------- - - -*/ diff --git a/build/linux/work/examples/04.Communication/SerialCallResponseASCII/SerialCallResponseASCII.ino b/build/linux/work/examples/04.Communication/SerialCallResponseASCII/SerialCallResponseASCII.ino deleted file mode 100644 index 2c4f3cd88..000000000 --- a/build/linux/work/examples/04.Communication/SerialCallResponseASCII/SerialCallResponseASCII.ino +++ /dev/null @@ -1,228 +0,0 @@ -/* - Serial Call and Response in ASCII - Language: Wiring/Arduino - - This program sends an ASCII A (byte of value 65) on startup - and repeats that until it gets some data in. - Then it waits for a byte in the serial port, and - sends three ASCII-encoded, comma-separated sensor values, - truncated by a linefeed and carriage return, - whenever it gets a byte in. - - Thanks to Greg Shakar and Scott Fitzgerald for the improvements - - The circuit: - * potentiometers attached to analog inputs 0 and 1 - * pushbutton attached to digital I/O 2 - - - - Created 26 Sept. 2005 - by Tom Igoe - modified 2 Apr 2012 - by Tom Igoe and Scott Fitzgerald - - This example code is in the public domain. - - http://www.arduino.cc/en/Tutorial/SerialCallResponseASCII - - */ - -int firstSensor = 0; // first analog sensor -int secondSensor = 0; // second analog sensor -int thirdSensor = 0; // digital sensor -int inByte = 0; // incoming serial byte - -void setup() -{ - // start serial port at 9600 bps and wait for port to open: - Serial.begin(9600); - // this check is only needed on the Leonardo: - while (!Serial) ; - ; - - pinMode(2, INPUT); // digital sensor is on digital pin 2 - establishContact(); // send a byte to establish contact until receiver responds -} - -void loop() -{ - // if we get a valid byte, read analog ins: - if (Serial.available() > 0) { - // get incoming byte: - inByte = Serial.read(); - // read first analog input: - firstSensor = analogRead(A0); - // read second analog input: - secondSensor = analogRead(A1); - // read switch, map it to 0 or 255L - thirdSensor = map(digitalRead(2), 0, 1, 0, 255); - // send sensor values: - Serial.print(firstSensor); - Serial.print(","); - Serial.print(secondSensor); - Serial.print(","); - Serial.println(thirdSensor); - } -} - -void establishContact() { - while (Serial.available() <= 0) { - Serial.println("0,0,0"); // send an initial string - delay(300); - } -} - - -/* -Processing code to run with this example: - -// This example code is in the public domain. - -import processing.serial.*; // import the Processing serial library -Serial myPort; // The serial port - -float bgcolor; // Background color -float fgcolor; // Fill color -float xpos, ypos; // Starting position of the ball - -void setup() { - size(640,480); - - // List all the available serial ports - println(Serial.list()); - - // I know that the first port in the serial list on my mac - // is always my Arduino module, so I open Serial.list()[0]. - // Change the 0 to the appropriate number of the serial port - // that your microcontroller is attached to. - myPort = new Serial(this, Serial.list()[0], 9600); - - // read bytes into a buffer until you get a linefeed (ASCII 10): - myPort.bufferUntil('\n'); - - // draw with smooth edges: - smooth(); -} - -void draw() { - background(bgcolor); - fill(fgcolor); - // Draw the shape - ellipse(xpos, ypos, 20, 20); -} - -// serialEvent method is run automatically by the Processing applet -// whenever the buffer reaches the byte value set in the bufferUntil() -// method in the setup(): - -void serialEvent(Serial myPort) { - // read the serial buffer: - String myString = myPort.readStringUntil('\n'); - // if you got any bytes other than the linefeed: - myString = trim(myString); - - // split the string at the commas - // and convert the sections into integers: - int sensors[] = int(split(myString, ',')); - - // print out the values you got: - for (int sensorNum = 0; sensorNum < sensors.length; sensorNum++) { - print("Sensor " + sensorNum + ": " + sensors[sensorNum] + "\t"); - } - // add a linefeed after all the sensor values are printed: - println(); - if (sensors.length > 1) { - xpos = map(sensors[0], 0,1023,0,width); - ypos = map(sensors[1], 0,1023,0,height); - fgcolor = sensors[2]; - } - // send a byte to ask for more data: - myPort.write("A"); - } - -*/ - -/* - -Max/MSP version 5 patch to run with this example: - -----------begin_max5_patcher---------- -3365.3oc4bk0iiaiD9Y2+J3JLOrAq6Fhj5LOscRP.lGxtCxDr6CYBFHaQaqL -xRNRzcOcBx+8s3grkZac31Vr8jMASKScPU7qNXUTUw+3lIVyx+LqzB80neFM -YxebyjIxSINwDc6IVqi977znR4sYMOe8ZVF2Zp5Zb1m4pyuJOujghPkrhjnT -zl7BNZQQ9ZDeURIBdlsUOyh7LdYxuyDOGlbms9zYaWmjkx3x2Cd+Iy2xqNa0 -stIhOeUR1xOVvlyUTuuqOzSHRfs7fspEz.8K5GJIVRn4y90ao90okrn0RZw5 -dAkaItvedyMh+LcffRF6QnaO.SzPQnmsM5eFskmmugkgrOebfzNNPbbDibJU -hCXG2tvArSEsn5b9SaXptwJQviQVV6drKCRslUVFsjcn3SJH8bJ.C4n.Ctcf -gRjhDTaO4gPI7DbbbgfaEWtz.RKhNR7XVT1xSASrOYLITJrfUG75VVwqULQR -mlAWRyihOUXAepvhiGsNrX2ErPbtFfkMELvzRrzp6nBM9Dk5CUJq3G1IzDXL -snsuz4WR3r054+rduzb86jPHxZp3OyxyWK92seS5VFX+lu5128c2e6s3c2w9 -K7C4wr0G47hG38OkMe2k99jB12m9zsgem+2b66e261CFMYCz1YCdJ7WaLiX2 -oHJE2qU9FV5EWWiIlU5MZi3vnJ+pANhxagvfNwMxq8r.bz7TVTw3pQqkgHRa -dNzNQDZqHhhPMCr.JsEFQJQgIjt8kz40VJo.dwrKjoeRufBNTZrwizInztyB -igWks.LhvOJeBLfmd4jVlmmlWnFJXABXeWPnMNzS7Ka8uv0.ki4htxQK2.0b -nNcAj9u1BWI77nSA8nlB8TBfNdcgdAcNwmY.veOEsDzP2b9A2P5GTTg031oQ -bmqAUyRVJP7HrMBSOekyN7ThXqfDao7le2g3X2su7S2ezTwE64NtAE6Js93D -HQGJ4N21CJN701TDHyfvipZTEb3JssP6z1hWuxJWZXoskdSE2B5aiRSu8GYk -axyJYn6e+2912h9P1GxdO3ScIJBM6IvKAfXQ7Ur5qR2TTD36cAKBtKp94XYP -vLwSQhWoXI81DUDwYwHTR1TDuXa1bYyYOA8aZRFaAiEeG5sx9NCtedIZQdAa -Y9VnqkF8mh97l7R065I3Wn7EvyNOo.bbDssD3CR55gHHtoRfZ3aKxf2fdEDa -Pv2gjiq+UNm80neRr5hRVIBvIHNvR31iTCxX1CIygwblrEDKFq.Ihy.d0OqK -QPmrLWRD4v4EwhfDzDPaJXaghxPdtn+tBht+qDcbIOpfucyc.c.c3mXB53wn -D03WQIhNXZEvHYEYZT9dzivYYO.jUBGdLPhFsFfMTbDO5N4fbNvWDHM1Ac+l -BQjdgeHCf82OOmyQeeB+2WxJhRik35OAX0aWly9P11MwxGihQ+6477YLwih2 -o7HXYyAdiT9ASGy0k0QY3UpP45nVTx.uiqR4ZYD8EdQxR.0P+cfC8y7e4qDr -p4Bgtjkq32lxV.gckm8.7nIfpDHsceZpRdpH5QgLh.q2TjCOiTt8wD35qjAu -hlwDx8neH5yfL7uAhx.KELmokquC8eEhAxUDuhJVjTv.8BP.3.oCPVLp7Sn6 -Kh2ljkKknp0WGkYNp7Rhx7nGQNKpi9PKSW3YHtYAKIKgCcJLZKkrokfneoT0 -Bosh.JpQR89EGEzHiIngUt4SUGv5EtwoEPywLf17Ur4epxFECjxlmjnsvAl5 -.gLA9Hj+lwVljImFXaVBXzGzHDJDK3BaVJbu4UEVRWGEKs3A+bVZ97OgJWsE -zChyeL6UPp0wWEo.VYHpximVX.Ti7kg1f9fkvZhD8USB9Aqi5Zi8KILqio6R -knfudQ98Te+ivVPgSdku9Orh3nrcQJJI.VgFXzHC7HIohY6JA4jZj6DKv1Ys -SOo1iHfyeUExn6zcmBrFVTuCl.VAdHo54CUmDXR2TcwJTPw70qquZ1HmfZN3 -ArykBIVVbMgpIVwrEmReH9Le6ueaUft09Sy6LIaCLC.nkJ0ed96MZaJ+iGWh -n40WDMm05C2BeZh0xhj37LAYz3YEmt5EJr6qzbpS4x6HKZyQdXddd5rnBACY -VJqAiFTVhxRVCFn4IJJB7no5hIq2TjnLHr6brrHnOVUNuHOMsQWotxCG4JJ2 -9dLIluR1W6wqFes65RY0Uiab9NCS64q1zxY.H4V8u52TCFH9N2PWbfesqerv -VZW+t0vWTg2hcs2u310il6fUBvuNM1tpdW1CmTYSTqxMV.qs3+MOjRzPpREv -MrWH06pARaL0ygQRKjRaGP2M4aqS.29xvzp3o5yTgUG7TQWi6.Kc6DKacIYZ -e1Iyftah.Wdr6QhsC.14kJrpz60xpXclvzE.SeoBqlEP+GH7KBHe4Z8MjTc5 -GHIcBj0Wr4+uCK0FPGLThutfxtlXR9MOmh1DATUND8D5MXzaHn2PQuww7SUo -09qNP5cpJ6qlopjidq1PD6WLh3KVOasL2g9v97UeJ3zj7phsV77eA.FXRcMv -9Qiv+RiFT6SBM7ruNPC0a15zcMytmI7HA2Qg+ywYp72CCTZXptug79PGEK8S -KQgIIMw0ONVTlusXdEnWEACpIAFyJ4IY6hk9m2SqO6FWkDG2LxU0ZKDuIG3m -6R.pAw8NY516KT519KS51anzsHliqH5VXEdXzM4KT5FBAAgudn6fgR2WWx2C -mtoWW1SHmBcSudna7oP2jqG518.0sVna+qK4D2gh2dWWzMcnzs8Ejt0mr5Cf -XUF8.K9ivqA726iQbdQxrsbkKXM95LG6qHLde5gNuXee4iko4yhR0eloc8h0 -M6QhKyGpydjqII0WCNjtO8qZKeib8uBRlw+1sWhLvpqRuQGWlKd.Hh6U.hHR -1.vhpQPEpusJMZ5JuzbMW9nyyWtLcWNKdl0bklwS1UJKcLDo8v3u3r2w0LfN -GUcFD609pHMLsG07vrRdOb.0jhSfwSDyz4wmfPuSuIkQ.VuVKd6Nbzhpn8Lv -MMoTVHWUG2W8tWxhQxyEkNtEurRQvinxQGxy+XAMPC2WXsKW+iDbgRmpGhRo -iZ0s6pRoees+B9cALXqK7nFnxYWhBtpKE9.RswmqWmL9936cT2siCumLp7dc -dVNLdefk4F13QcXSB8G7vlX+EnLO00evx7DxqiPuAfgpDSTCCtcBCuR59sLi -31r5o5wkXi8vsWbxSU9k5D3rUfJrOfp0ClB7zU.lMBOp0+kda+fnbwpmpV80 -q9uZMQsSS.IrUrBY1XK2UPddsqLpVg0oT3tMZfNKIJhm0q.nH2TcLIlniNY2 -VMT2XxEdqFpsBETlEti5ZU4DVaTqlOtsREDatZErMYjusgLxRFWVoZkbQ8MT -SPobbkTv57KXHaJUDqq1EmQuoRgUKPAgT82ix6wFawY9s0LdQ9EYwH5evWMC -R2UPLwn6FPsYLPkG8ip0.s+GpEqRUorsZMf9paM3GYQwUp8IYa1xQy1tXgnb -PefU7jnLzWmjBlGXyyyhKMeQhoS4FsABkUi1pQLrgJrNkETQ8vJpw0wMVOer -x9RP+6pT3K7Dphw6rsbd9toOWkTkFS0dQUeiK7wvA5NbXVdQrptm1clkGtoW -3GDPnthe43a6FD7rM8hZkCzgEmNVAOOuVhNNGXGybmcoYPDKh8ihr39cmV7z -4fBRsAf8cjo09Se6UG9pMRMW+9WTeha26KES6+q5T0oKyxAZPH9VeLpXMMFK -MJLq5iEI.oJBLu8Ufm.OZ77fOQ1Rn34+P1W+kPXrawJ7qhXkOUMireP+hUgz -+BKVI63l4SoRJ644ofVV6f7SPrNA6SOkVxMARijz4v7R334jvAR9mDM4zCMQ -MJIQaj1LsASglGlr6ilLKN4ZO.ZBaaTZxe.jD08zHIhuiHwD7v5HCB105LI1 -fAPr9FE9bF.EEXTJBODgLmSjgpXgtjPYBmnXuxVWBhkbgIVM4o+9n0ZctDKd -Hpulc1.5P31Dr4oo9lN.a1oCFDuidhldItTUBXo2ze8105bmnfN.p08DoVGa -o1qiCtlUYYqyjZ8HCAaMK+dH.njtIlyiDxPoIr4noAiSFzKoAI76ZVZxcHzj -yKSgTsEm53Enxxs5snpsA.8cJaYhILbMqSTtCwIT2SzWcJUNwuCtNBJactl6 -F.wFd8ow38BmsvSI4Q205b8XNXDX1mK.ND23cLqe7CI9Uri4iy+RSSUgG5p+ -HIpz3nQKZUBfJEBksNW2AcFp8b7I6NnNwkbbb10xHTqsY8b.OBxBZWnopDbs -BOIm+BGfGCsIpqTxkZqhBPSshVmK0RGCp0OPE7taMpU15boVxUnkJ7PVQRyZ -PmNnvjLbn5zqPZZHV6nFdYVFhSeT5UHMYV8Nr2HrbTNZCrNXoAV8xrHZctyg -MDIM7IxUE6mpR5SM8u1pqn0kvKf9roQ8N0YETQVpJnPOhptBazRteTK1KOcT -a+8meDTjfQXFCepaMuunggpQRiV5jcsxuB+C9dg27m27+.7QBpFG ------------end_max5_patcher----------- - -*/ diff --git a/build/linux/work/examples/04.Communication/SerialEvent/SerialEvent.ino b/build/linux/work/examples/04.Communication/SerialEvent/SerialEvent.ino deleted file mode 100644 index 11de7adfb..000000000 --- a/build/linux/work/examples/04.Communication/SerialEvent/SerialEvent.ino +++ /dev/null @@ -1,60 +0,0 @@ -/* - Serial Event example - - When new serial data arrives, this sketch adds it to a String. - When a newline is received, the loop prints the string and - clears it. - - A good test for this is to try it with a GPS receiver - that sends out NMEA 0183 sentences. - - Created 9 May 2011 - by Tom Igoe - - This example code is in the public domain. - - http://www.arduino.cc/en/Tutorial/SerialEvent - - */ - -String inputString = ""; // a string to hold incoming data -boolean stringComplete = false; // whether the string is complete - -void setup() { - // initialize serial: - Serial.begin(9600); - // reserve 200 bytes for the inputString: - inputString.reserve(200); -} - -void loop() { - // print the string when a newline arrives: - if (stringComplete) { - Serial.println(inputString); - // clear the string: - inputString = ""; - stringComplete = false; - } -} - -/* - SerialEvent occurs whenever a new data comes in the - hardware serial RX. This routine is run between each - time loop() runs, so using delay inside loop can delay - response. Multiple bytes of data may be available. - */ -void serialEvent() { - while (Serial.available()) { - // get the new byte: - char inChar = (char)Serial.read(); - // add it to the inputString: - inputString += inChar; - // if the incoming character is a newline, set a flag - // so the main loop can do something about it: - if (inChar == '\n') { - stringComplete = true; - } - } -} - - diff --git a/build/linux/work/examples/04.Communication/VirtualColorMixer/VirtualColorMixer.ino b/build/linux/work/examples/04.Communication/VirtualColorMixer/VirtualColorMixer.ino deleted file mode 100644 index 39e4b5761..000000000 --- a/build/linux/work/examples/04.Communication/VirtualColorMixer/VirtualColorMixer.ino +++ /dev/null @@ -1,130 +0,0 @@ -/* - This example reads three analog sensors (potentiometers are easiest) - and sends their values serially. The Processing and Max/MSP programs at the bottom - take those three values and use them to change the background color of the screen. - - The circuit: - * potentiometers attached to analog inputs 0, 1, and 2 - - http://www.arduino.cc/en/Tutorial/VirtualColorMixer - - created 2 Dec 2006 - by David A. Mellis - modified 30 Aug 2011 - by Tom Igoe and Scott Fitzgerald - - This example code is in the public domain. - */ - -const int redPin = A0; // sensor to control red color -const int greenPin = A1; // sensor to control green color -const int bluePin = A2; // sensor to control blue color - -void setup() -{ - Serial.begin(9600); -} - -void loop() -{ - Serial.print(analogRead(redPin)); - Serial.print(","); - Serial.print(analogRead(greenPin)); - Serial.print(","); - Serial.println(analogRead(bluePin)); -} - -/* Processing code for this example - -// This example code is in the public domain. - - import processing.serial.*; - - float redValue = 0; // red value - float greenValue = 0; // green value - float blueValue = 0; // blue value - - Serial myPort; - - void setup() { - size(200, 200); - - // List all the available serial ports - println(Serial.list()); - // I know that the first port in the serial list on my mac - // is always my Arduino, so I open Serial.list()[0]. - // Open whatever port is the one you're using. - myPort = new Serial(this, Serial.list()[0], 9600); - // don't generate a serialEvent() unless you get a newline character: - myPort.bufferUntil('\n'); - } - - void draw() { - // set the background color with the color values: - background(redValue, greenValue, blueValue); - } - - void serialEvent(Serial myPort) { - // get the ASCII string: - String inString = myPort.readStringUntil('\n'); - - if (inString != null) { - // trim off any whitespace: - inString = trim(inString); - // split the string on the commas and convert the - // resulting substrings into an integer array: - float[] colors = float(split(inString, ",")); - // if the array has at least three elements, you know - // you got the whole thing. Put the numbers in the - // color variables: - if (colors.length >=3) { - // map them to the range 0-255: - redValue = map(colors[0], 0, 1023, 0, 255); - greenValue = map(colors[1], 0, 1023, 0, 255); - blueValue = map(colors[2], 0, 1023, 0, 255); - } - } - } - */ - -/* Max/MSP patch for this example - - ----------begin_max5_patcher---------- -1512.3oc4Z00aaaCE8YmeED9ktB35xOjrj1aAsXX4g8xZQeYoXfVh1gqRjdT -TsIsn+2K+PJUovVVJ1VMdCAvxThV7bO7b48dIyWtXxzkxaYkSA+J3u.Sl7kK -lLwcK6MlT2dxzB5so4zRW2lJXeRt7elNy+HM6Vs61uDDzbOYkNmo02sg4euS -4BSede8S2P0o2vEq+aEKU66PPP7b3LPHDauPvyCmAvv4v6+M7L2XXF2WfCaF -lURgVPKbCxzKUbZdySDUEbgABN.ia08R9mccGYGn66qGutNir27qWbg8iY+7 -HDRx.Hjf+OPHCQgPdpQHoxhBlwB+QF4cbkthlCRk4REnfeKScs3ZwaugWBbj -.PS+.qDPAkZkgPlY5oPS4By2A5aTLFv9pounjsgpnZVF3x27pqtBrRpJnZaa -C3WxTkfUJYA.BzR.BhIy.ehquw7dSoJCsrlATLckR.nhLPNWvVwL+Vp1LHL. -SjMG.tRaG7OxT5R2c8Hx9B8.wLCxVaGI6qnpj45Ug84kL+6YIM8CqUxJyycF -7bqsBRULGvwfWyRMyovElat7NvqoejaLm4f+fkmyKuVTHy3q3ldhB.WtQY6Z -x0BSOeSpTqA+FW+Yy3SyybH3sFy8p0RVCmaMpTyX6HdDZ2JsPbfSogbBMueH -JLd6RMBdfRMzPjZvimuWIK2XgFA.ZmtfKoh0Sm88qc6OF4bDQ3P6kEtF6xej -.OkjD4H5OllyS+.3FlhY0so4xRlWqyrXErQpt+2rsnXgQNZHZgmMVzEofW7T -S4zORQtgIdDbRHrObRzSMNofUVZVcbKbhQZrSOo934TqRHIN2ncr7BF8TKR1 -tHDqL.PejLRRPKMR.pKFAkbtDa+UOvsYsIFH0DYsTCjqZ66T1CmGeDILLpSm -myk0SdkOKh5LUr4GbWwRYdW7fm.BvDmzHnSdH3biGpSbxxDNJoGDAD1ChH7L -I0DaloOTBLvkO7zPs5HJnKNoGAXbol5eytUhfyiSfnjE1uAq+Fp0a+wygGwR -q3ZI8.psJpkpJnyPzwmXBj7Sh.+bNvVZxlcKAm0OYHIxcIjzEKdRChgO5UMf -LkMPNN0MfiS7Ev6TYQct.F5IWcCZ4504rGsiVswGWWSYyma01QcZgmL+f+sf -oU18Hn6o6dXkMkFF14TL9rIAWE+6wvGV.p.TPqz3HK5L+VxYxl4UmBKEjr.B -6zinuKI3C+D2Y7azIM6N7QL6t+jQyZxymK1ToAKqVsxjlGyjz2c1kTK3180h -kJEYkacWpv6lyp2VJTjWK47wHA6fyBOWxH9pUf6jUtZkLpNKW.9EeUBH3ymY -XSQlaqGrkQMGzp20adYSmIOGjIABo1xZyAWJtCX9tg6+HMuhMCPyx76ao+Us -UxmzUE79H8d2ZB1m1ztbnOa1mGeAq0awyK8a9UqBUc6pZolpzurTK232e5gp -aInVw8QIIcpaiNSJfY4Z+92Cs+Mc+mgg2cEsvGlLY6V+1kMuioxnB5VM+fsY -9vSu4WI1PMBGXye6KXvNuzmZTh7U9h5j6vvASdngPdgOFxycNL6ia1axUMmT -JIzebXcQCn3SKMf+4QCMmOZung+6xBCPLfwO8ngcEI52YJ1y7mx3CN9xKUYU -bg7Y1yXjlKW6SrZnguQdsSfOSSDItqv2jwJFjavc1vO7OigyBr2+gDYorRk1 -HXZpVFfu2FxXkZtfp4RQqNkX5y2sya3YYL2iavWAOaizH+pw.Ibg8f1I9h3Z -2B79sNeOHvBOtfEalWsvyu0KMf015.AaROvZ7vv5AhnndfHLbTgjcCK1KlHv -gOk5B26OqrXjcJ005.QqCHn8fVTxnxfj93SfQiJlv8YV0VT9fVUwOOhSV3uD -eeqCUClbBPa.j3vWDoMZssNTzRNEnE6gYPXazZaMF921syaLWyAeBXvCESA8 -ASi6Zyw8.RQi65J8ZsNx3ho93OhGWENtWpowepae4YhCFeLErOLENtXJrOSc -iadi39rf4hwc8xdhHz3gn3dBI7iDRlFe8huAfIZhq ------------end_max5_patcher----------- - - - */ diff --git a/build/linux/work/examples/05.Control/Arrays/Arrays.ino b/build/linux/work/examples/05.Control/Arrays/Arrays.ino deleted file mode 100644 index f5154770c..000000000 --- a/build/linux/work/examples/05.Control/Arrays/Arrays.ino +++ /dev/null @@ -1,57 +0,0 @@ -/* - Arrays - - Demonstrates the use of an array to hold pin numbers - in order to iterate over the pins in a sequence. - Lights multiple LEDs in sequence, then in reverse. - - Unlike the For Loop tutorial, where the pins have to be - contiguous, here the pins can be in any random order. - - The circuit: - * LEDs from pins 2 through 7 to ground - - created 2006 - by David A. Mellis - modified 30 Aug 2011 - by Tom Igoe - -This example code is in the public domain. - - http://www.arduino.cc/en/Tutorial/Array - */ - -int timer = 100; // The higher the number, the slower the timing. -int ledPins[] = { - 2, 7, 4, 6, 5, 3 }; // an array of pin numbers to which LEDs are attached -int pinCount = 6; // the number of pins (i.e. the length of the array) - -void setup() { - int thisPin; - // the array elements are numbered from 0 to (pinCount - 1). - // use a for loop to initialize each pin as an output: - for (int thisPin = 0; thisPin < pinCount; thisPin++) { - pinMode(ledPins[thisPin], OUTPUT); - } -} - -void loop() { - // loop from the lowest pin to the highest: - for (int thisPin = 0; thisPin < pinCount; thisPin++) { - // turn the pin on: - digitalWrite(ledPins[thisPin], HIGH); - delay(timer); - // turn the pin off: - digitalWrite(ledPins[thisPin], LOW); - - } - - // loop from the highest pin to the lowest: - for (int thisPin = pinCount - 1; thisPin >= 0; thisPin--) { - // turn the pin on: - digitalWrite(ledPins[thisPin], HIGH); - delay(timer); - // turn the pin off: - digitalWrite(ledPins[thisPin], LOW); - } -} diff --git a/build/linux/work/examples/05.Control/ForLoopIteration/ForLoopIteration.ino b/build/linux/work/examples/05.Control/ForLoopIteration/ForLoopIteration.ino deleted file mode 100644 index d9ce32b8f..000000000 --- a/build/linux/work/examples/05.Control/ForLoopIteration/ForLoopIteration.ino +++ /dev/null @@ -1,47 +0,0 @@ -/* - For Loop Iteration - - Demonstrates the use of a for() loop. - Lights multiple LEDs in sequence, then in reverse. - - The circuit: - * LEDs from pins 2 through 7 to ground - - created 2006 - by David A. Mellis - modified 30 Aug 2011 - by Tom Igoe - -This example code is in the public domain. - - http://www.arduino.cc/en/Tutorial/ForLoop - */ - -int timer = 100; // The higher the number, the slower the timing. - -void setup() { - // use a for loop to initialize each pin as an output: - for (int thisPin = 2; thisPin < 8; thisPin++) { - pinMode(thisPin, OUTPUT); - } -} - -void loop() { - // loop from the lowest pin to the highest: - for (int thisPin = 2; thisPin < 8; thisPin++) { - // turn the pin on: - digitalWrite(thisPin, HIGH); - delay(timer); - // turn the pin off: - digitalWrite(thisPin, LOW); - } - - // loop from the highest pin to the lowest: - for (int thisPin = 7; thisPin >= 2; thisPin--) { - // turn the pin on: - digitalWrite(thisPin, HIGH); - delay(timer); - // turn the pin off: - digitalWrite(thisPin, LOW); - } -} diff --git a/build/linux/work/examples/05.Control/IfStatementConditional/IfStatementConditional.ino b/build/linux/work/examples/05.Control/IfStatementConditional/IfStatementConditional.ino deleted file mode 100644 index 8346f2cbb..000000000 --- a/build/linux/work/examples/05.Control/IfStatementConditional/IfStatementConditional.ino +++ /dev/null @@ -1,56 +0,0 @@ -/* - Conditionals - If statement - - This example demonstrates the use of if() statements. - It reads the state of a potentiometer (an analog input) and turns on an LED - only if the LED goes above a certain threshold level. It prints the analog value - regardless of the level. - - The circuit: - * potentiometer connected to analog pin 0. - Center pin of the potentiometer goes to the analog pin. - side pins of the potentiometer go to +5V and ground - * LED connected from digital pin 13 to ground - - * Note: On most Arduino boards, there is already an LED on the board - connected to pin 13, so you don't need any extra components for this example. - - created 17 Jan 2009 - modified 30 Aug 2011 - by Tom Igoe - -This example code is in the public domain. - -http://arduino.cc/en/Tutorial/IfStatement - - */ - -// These constants won't change: -const int analogPin = A0; // pin that the sensor is attached to -const int ledPin = 13; // pin that the LED is attached to -const int threshold = 400; // an arbitrary threshold level that's in the range of the analog input - -void setup() { - // initialize the LED pin as an output: - pinMode(ledPin, OUTPUT); - // initialize serial communications: - Serial.begin(9600); -} - -void loop() { - // read the value of the potentiometer: - int analogValue = analogRead(analogPin); - - // if the analog value is high enough, turn on the LED: - if (analogValue > threshold) { - digitalWrite(ledPin, HIGH); - } - else { - digitalWrite(ledPin,LOW); - } - - // print the analog value: - Serial.println(analogValue); - -} - diff --git a/build/linux/work/examples/05.Control/WhileStatementConditional/WhileStatementConditional.ino b/build/linux/work/examples/05.Control/WhileStatementConditional/WhileStatementConditional.ino deleted file mode 100644 index 9cffeef22..000000000 --- a/build/linux/work/examples/05.Control/WhileStatementConditional/WhileStatementConditional.ino +++ /dev/null @@ -1,88 +0,0 @@ -/* - Conditionals - while statement - - This example demonstrates the use of while() statements. - - While the pushbutton is pressed, the sketch runs the calibration routine. - The sensor readings during the while loop define the minimum and maximum - of expected values from the photo resistor. - - This is a variation on the calibrate example. - - The circuit: - * photo resistor connected from +5V to analog in pin 0 - * 10K resistor connected from ground to analog in pin 0 - * LED connected from digital pin 9 to ground through 220 ohm resistor - * pushbutton attached from pin 2 to +5V - * 10K resistor attached from pin 2 to ground - - created 17 Jan 2009 - modified 30 Aug 2011 - by Tom Igoe - - This example code is in the public domain. - - http://arduino.cc/en/Tutorial/WhileLoop - - */ - - -// These constants won't change: -const int sensorPin = A2; // pin that the sensor is attached to -const int ledPin = 9; // pin that the LED is attached to -const int indicatorLedPin = 13; // pin that the built-in LED is attached to -const int buttonPin = 2; // pin that the button is attached to - - -// These variables will change: -int sensorMin = 1023; // minimum sensor value -int sensorMax = 0; // maximum sensor value -int sensorValue = 0; // the sensor value - - -void setup() { - // set the LED pins as outputs and the switch pin as input: - pinMode(indicatorLedPin, OUTPUT); - pinMode (ledPin, OUTPUT); - pinMode (buttonPin, INPUT); -} - -void loop() { - // while the button is pressed, take calibration readings: - while (digitalRead(buttonPin) == HIGH) { - calibrate(); - } - // signal the end of the calibration period - digitalWrite(indicatorLedPin, LOW); - - // read the sensor: - sensorValue = analogRead(sensorPin); - - // apply the calibration to the sensor reading - sensorValue = map(sensorValue, sensorMin, sensorMax, 0, 255); - - // in case the sensor value is outside the range seen during calibration - sensorValue = constrain(sensorValue, 0, 255); - - // fade the LED using the calibrated value: - analogWrite(ledPin, sensorValue); -} - -void calibrate() { - // turn on the indicator LED to indicate that calibration is happening: - digitalWrite(indicatorLedPin, HIGH); - // read the sensor: - sensorValue = analogRead(sensorPin); - - // record the maximum sensor value - if (sensorValue > sensorMax) { - sensorMax = sensorValue; - } - - // record the minimum sensor value - if (sensorValue < sensorMin) { - sensorMin = sensorValue; - } -} - - diff --git a/build/linux/work/examples/05.Control/switchCase/switchCase.ino b/build/linux/work/examples/05.Control/switchCase/switchCase.ino deleted file mode 100644 index 87eb3f340..000000000 --- a/build/linux/work/examples/05.Control/switchCase/switchCase.ino +++ /dev/null @@ -1,62 +0,0 @@ -/* - Switch statement - - Demonstrates the use of a switch statement. The switch - statement allows you to choose from among a set of discrete values - of a variable. It's like a series of if statements. - - To see this sketch in action, but the board and sensor in a well-lit - room, open the serial monitor, and and move your hand gradually - down over the sensor. - - The circuit: - * photoresistor from analog in 0 to +5V - * 10K resistor from analog in 0 to ground - - created 1 Jul 2009 - modified 30 Aug 2011 - by Tom Igoe - - This example code is in the public domain. - - http://www.arduino.cc/en/Tutorial/SwitchCase - */ - -// these constants won't change: -const int sensorMin = 0; // sensor minimum, discovered through experiment -const int sensorMax = 600; // sensor maximum, discovered through experiment - -void setup() { - // initialize serial communication: - Serial.begin(9600); -} - -void loop() { - // read the sensor: - int sensorReading = analogRead(A0); - // map the sensor range to a range of four options: - int range = map(sensorReading, sensorMin, sensorMax, 0, 3); - - // do something different depending on the - // range value: - switch (range) { - case 0: // your hand is on the sensor - Serial.println("dark"); - break; - case 1: // your hand is close to the sensor - Serial.println("dim"); - break; - case 2: // your hand is a few inches from the sensor - Serial.println("medium"); - break; - case 3: // your hand is nowhere near the sensor - Serial.println("bright"); - break; - } - -} - - - - - diff --git a/build/linux/work/examples/05.Control/switchCase2/switchCase2.ino b/build/linux/work/examples/05.Control/switchCase2/switchCase2.ino deleted file mode 100644 index b6d78865a..000000000 --- a/build/linux/work/examples/05.Control/switchCase2/switchCase2.ino +++ /dev/null @@ -1,66 +0,0 @@ -/* - Switch statement with serial input - - Demonstrates the use of a switch statement. The switch - statement allows you to choose from among a set of discrete values - of a variable. It's like a series of if statements. - - To see this sketch in action, open the Serial monitor and send any character. - The characters a, b, c, d, and e, will turn on LEDs. Any other character will turn - the LEDs off. - - The circuit: - * 5 LEDs attached to digital pins 2 through 6 through 220-ohm resistors - - created 1 Jul 2009 - by Tom Igoe - -This example code is in the public domain. - - http://www.arduino.cc/en/Tutorial/SwitchCase2 - */ - -void setup() { - // initialize serial communication: - Serial.begin(9600); - // initialize the LED pins: - for (int thisPin = 2; thisPin < 7; thisPin++) { - pinMode(thisPin, OUTPUT); - } -} - -void loop() { - // read the sensor: - if (Serial.available() > 0) { - int inByte = Serial.read(); - // do something different depending on the character received. - // The switch statement expects single number values for each case; - // in this exmaple, though, you're using single quotes to tell - // the controller to get the ASCII value for the character. For - // example 'a' = 97, 'b' = 98, and so forth: - - switch (inByte) { - case 'a': - digitalWrite(2, HIGH); - break; - case 'b': - digitalWrite(3, HIGH); - break; - case 'c': - digitalWrite(4, HIGH); - break; - case 'd': - digitalWrite(5, HIGH); - break; - case 'e': - digitalWrite(6, HIGH); - break; - default: - // turn all the LEDs off: - for (int thisPin = 2; thisPin < 7; thisPin++) { - digitalWrite(thisPin, LOW); - } - } - } -} - diff --git a/build/linux/work/examples/06.Sensors/ADXL3xx/ADXL3xx.ino b/build/linux/work/examples/06.Sensors/ADXL3xx/ADXL3xx.ino deleted file mode 100644 index a55cc016a..000000000 --- a/build/linux/work/examples/06.Sensors/ADXL3xx/ADXL3xx.ino +++ /dev/null @@ -1,64 +0,0 @@ - -/* - ADXL3xx - - Reads an Analog Devices ADXL3xx accelerometer and communicates the - acceleration to the computer. The pins used are designed to be easily - compatible with the breakout boards from Sparkfun, available from: - http://www.sparkfun.com/commerce/categories.php?c=80 - - http://www.arduino.cc/en/Tutorial/ADXL3xx - - The circuit: - analog 0: accelerometer self test - analog 1: z-axis - analog 2: y-axis - analog 3: x-axis - analog 4: ground - analog 5: vcc - - created 2 Jul 2008 - by David A. Mellis - modified 30 Aug 2011 - by Tom Igoe - - This example code is in the public domain. - -*/ - -// these constants describe the pins. They won't change: -const int groundpin = 18; // analog input pin 4 -- ground -const int powerpin = 19; // analog input pin 5 -- voltage -const int xpin = A3; // x-axis of the accelerometer -const int ypin = A2; // y-axis -const int zpin = A1; // z-axis (only on 3-axis models) - -void setup() -{ - // initialize the serial communications: - Serial.begin(9600); - - // Provide ground and power by using the analog inputs as normal - // digital pins. This makes it possible to directly connect the - // breakout board to the Arduino. If you use the normal 5V and - // GND pins on the Arduino, you can remove these lines. - pinMode(groundpin, OUTPUT); - pinMode(powerpin, OUTPUT); - digitalWrite(groundpin, LOW); - digitalWrite(powerpin, HIGH); -} - -void loop() -{ - // print the sensor values: - Serial.print(analogRead(xpin)); - // print a tab between values: - Serial.print("\t"); - Serial.print(analogRead(ypin)); - // print a tab between values: - Serial.print("\t"); - Serial.print(analogRead(zpin)); - Serial.println(); - // delay before next reading: - delay(100); -} diff --git a/build/linux/work/examples/06.Sensors/Knock/Knock.ino b/build/linux/work/examples/06.Sensors/Knock/Knock.ino deleted file mode 100644 index 6f8c2c55a..000000000 --- a/build/linux/work/examples/06.Sensors/Knock/Knock.ino +++ /dev/null @@ -1,55 +0,0 @@ -/* Knock Sensor - - This sketch reads a piezo element to detect a knocking sound. - It reads an analog pin and compares the result to a set threshold. - If the result is greater than the threshold, it writes - "knock" to the serial port, and toggles the LED on pin 13. - - The circuit: - * + connection of the piezo attached to analog in 0 - * - connection of the piezo attached to ground - * 1-megohm resistor attached from analog in 0 to ground - - http://www.arduino.cc/en/Tutorial/Knock - - created 25 Mar 2007 - by David Cuartielles - modified 30 Aug 2011 - by Tom Igoe - - This example code is in the public domain. - - */ - - -// these constants won't change: -const int ledPin = 13; // led connected to digital pin 13 -const int knockSensor = A0; // the piezo is connected to analog pin 0 -const int threshold = 100; // threshold value to decide when the detected sound is a knock or not - - -// these variables will change: -int sensorReading = 0; // variable to store the value read from the sensor pin -int ledState = LOW; // variable used to store the last LED status, to toggle the light - -void setup() { - pinMode(ledPin, OUTPUT); // declare the ledPin as as OUTPUT - Serial.begin(9600); // use the serial port -} - -void loop() { - // read the sensor and store it in the variable sensorReading: - sensorReading = analogRead(knockSensor); - - // if the sensor reading is greater than the threshold: - if (sensorReading >= threshold) { - // toggle the status of the ledPin: - ledState = !ledState; - // update the LED pin itself: - digitalWrite(ledPin, ledState); - // send the string "Knock!" back to the computer, followed by newline - Serial.println("Knock!"); - } - delay(100); // delay to avoid overloading the serial port buffer -} - diff --git a/build/linux/work/examples/06.Sensors/Memsic2125/Memsic2125.ino b/build/linux/work/examples/06.Sensors/Memsic2125/Memsic2125.ino deleted file mode 100644 index 974ccb52f..000000000 --- a/build/linux/work/examples/06.Sensors/Memsic2125/Memsic2125.ino +++ /dev/null @@ -1,63 +0,0 @@ -/* - Memsic2125 - - Read the Memsic 2125 two-axis accelerometer. Converts the - pulses output by the 2125 into milli-g's (1/1000 of earth's - gravity) and prints them over the serial connection to the - computer. - - The circuit: - * X output of accelerometer to digital pin 2 - * Y output of accelerometer to digital pin 3 - * +V of accelerometer to +5V - * GND of accelerometer to ground - - http://www.arduino.cc/en/Tutorial/Memsic2125 - - created 6 Nov 2008 - by David A. Mellis - modified 30 Aug 2011 - by Tom Igoe - - This example code is in the public domain. - - */ - -// these constants won't change: -const int xPin = 2; // X output of the accelerometer -const int yPin = 3; // Y output of the accelerometer - -void setup() { - // initialize serial communications: - Serial.begin(9600); - // initialize the pins connected to the accelerometer - // as inputs: - pinMode(xPin, INPUT); - pinMode(yPin, INPUT); -} - -void loop() { - // variables to read the pulse widths: - int pulseX, pulseY; - // variables to contain the resulting accelerations - int accelerationX, accelerationY; - - // read pulse from x- and y-axes: - pulseX = pulseIn(xPin,HIGH); - pulseY = pulseIn(yPin,HIGH); - - // convert the pulse width into acceleration - // accelerationX and accelerationY are in milli-g's: - // earth's gravity is 1000 milli-g's, or 1g. - accelerationX = ((pulseX / 10) - 500) * 8; - accelerationY = ((pulseY / 10) - 500) * 8; - - // print the acceleration - Serial.print(accelerationX); - // print a tab character: - Serial.print("\t"); - Serial.print(accelerationY); - Serial.println(); - - delay(100); -} diff --git a/build/linux/work/examples/06.Sensors/Ping/Ping.ino b/build/linux/work/examples/06.Sensors/Ping/Ping.ino deleted file mode 100644 index 5de46d603..000000000 --- a/build/linux/work/examples/06.Sensors/Ping/Ping.ino +++ /dev/null @@ -1,84 +0,0 @@ -/* Ping))) Sensor - - This sketch reads a PING))) ultrasonic rangefinder and returns the - distance to the closest object in range. To do this, it sends a pulse - to the sensor to initiate a reading, then listens for a pulse - to return. The length of the returning pulse is proportional to - the distance of the object from the sensor. - - The circuit: - * +V connection of the PING))) attached to +5V - * GND connection of the PING))) attached to ground - * SIG connection of the PING))) attached to digital pin 7 - - http://www.arduino.cc/en/Tutorial/Ping - - created 3 Nov 2008 - by David A. Mellis - modified 30 Aug 2011 - by Tom Igoe - - This example code is in the public domain. - - */ - -// this constant won't change. It's the pin number -// of the sensor's output: -const int pingPin = 7; - -void setup() { - // initialize serial communication: - Serial.begin(9600); -} - -void loop() -{ - // establish variables for duration of the ping, - // and the distance result in inches and centimeters: - long duration, inches, cm; - - // The PING))) is triggered by a HIGH pulse of 2 or more microseconds. - // Give a short LOW pulse beforehand to ensure a clean HIGH pulse: - pinMode(pingPin, OUTPUT); - digitalWrite(pingPin, LOW); - delayMicroseconds(2); - digitalWrite(pingPin, HIGH); - delayMicroseconds(5); - digitalWrite(pingPin, LOW); - - // The same pin is used to read the signal from the PING))): a HIGH - // pulse whose duration is the time (in microseconds) from the sending - // of the ping to the reception of its echo off of an object. - pinMode(pingPin, INPUT); - duration = pulseIn(pingPin, HIGH); - - // convert the time into a distance - inches = microsecondsToInches(duration); - cm = microsecondsToCentimeters(duration); - - Serial.print(inches); - Serial.print("in, "); - Serial.print(cm); - Serial.print("cm"); - Serial.println(); - - delay(100); -} - -long microsecondsToInches(long microseconds) -{ - // According to Parallax's datasheet for the PING))), there are - // 73.746 microseconds per inch (i.e. sound travels at 1130 feet per - // second). This gives the distance travelled by the ping, outbound - // and return, so we divide by 2 to get the distance of the obstacle. - // See: http://www.parallax.com/dl/docs/prod/acc/28015-PING-v1.3.pdf - return microseconds / 74 / 2; -} - -long microsecondsToCentimeters(long microseconds) -{ - // The speed of sound is 340 m/s or 29 microseconds per centimeter. - // The ping travels out and back, so to find the distance of the - // object we take half of the distance travelled. - return microseconds / 29 / 2; -} diff --git a/build/linux/work/examples/07.Display/RowColumnScanning/RowColumnScanning.ino b/build/linux/work/examples/07.Display/RowColumnScanning/RowColumnScanning.ino deleted file mode 100644 index 6be347295..000000000 --- a/build/linux/work/examples/07.Display/RowColumnScanning/RowColumnScanning.ino +++ /dev/null @@ -1,114 +0,0 @@ -/* - Row-Column Scanning an 8x8 LED matrix with X-Y input - - This example controls an 8x8 LED matrix using two analog inputs - - created 27 May 2009 - modified 30 Aug 2011 - by Tom Igoe - - This example works for the Lumex LDM-24488NI Matrix. See - http://sigma.octopart.com/140413/datasheet/Lumex-LDM-24488NI.pdf - for the pin connections - - For other LED cathode column matrixes, you should only need to change - the pin numbers in the row[] and column[] arrays - - rows are the anodes - cols are the cathodes - --------- - - Pin numbers: - Matrix: - * Digital pins 2 through 13, - * analog pins 2 through 5 used as digital 16 through 19 - Potentiometers: - * center pins are attached to analog pins 0 and 1, respectively - * side pins attached to +5V and ground, respectively. - - This example code is in the public domain. - - http://www.arduino.cc/en/Tutorial/RowColumnScanning - - see also http://www.tigoe.net/pcomp/code/category/arduinowiring/514 for more - */ - - -// 2-dimensional array of row pin numbers: -const int row[8] = { - 2,7,19,5,13,18,12,16 }; - -// 2-dimensional array of column pin numbers: -const int col[8] = { - 6,11,10,3,17,4,8,9 }; - -// 2-dimensional array of pixels: -int pixels[8][8]; - -// cursor position: -int x = 5; -int y = 5; - -void setup() { - Serial.begin(9600); - // initialize the I/O pins as outputs: - - // iterate over the pins: - for (int thisPin = 0; thisPin < 8; thisPin++) { - // initialize the output pins: - pinMode(col[thisPin], OUTPUT); - pinMode(row[thisPin], OUTPUT); - // take the col pins (i.e. the cathodes) high to ensure that - // the LEDS are off: - digitalWrite(col[thisPin], HIGH); - } - - // initialize the pixel matrix: - for (int x = 0; x < 8; x++) { - for (int y = 0; y < 8; y++) { - pixels[x][y] = HIGH; - } - } -} - -void loop() { - // read input: - readSensors(); - - // draw the screen: - refreshScreen(); -} - -void readSensors() { - // turn off the last position: - pixels[x][y] = HIGH; - // read the sensors for X and Y values: - x = 7 - map(analogRead(A0), 0, 1023, 0, 7); - y = map(analogRead(A1), 0, 1023, 0, 7); - // set the new pixel position low so that the LED will turn on - // in the next screen refresh: - pixels[x][y] = LOW; - -} - -void refreshScreen() { - // iterate over the rows (anodes): - for (int thisRow = 0; thisRow < 8; thisRow++) { - // take the row pin (anode) high: - digitalWrite(row[thisRow], HIGH); - // iterate over the cols (cathodes): - for (int thisCol = 0; thisCol < 8; thisCol++) { - // get the state of the current pixel; - int thisPixel = pixels[thisRow][thisCol]; - // when the row is HIGH and the col is LOW, - // the LED where they meet turns on: - digitalWrite(col[thisCol], thisPixel); - // turn the pixel off: - if (thisPixel == LOW) { - digitalWrite(col[thisCol], HIGH); - } - } - // take the row pin low to turn off the whole row: - digitalWrite(row[thisRow], LOW); - } -} diff --git a/build/linux/work/examples/07.Display/barGraph/barGraph.ino b/build/linux/work/examples/07.Display/barGraph/barGraph.ino deleted file mode 100644 index 646cd4744..000000000 --- a/build/linux/work/examples/07.Display/barGraph/barGraph.ino +++ /dev/null @@ -1,60 +0,0 @@ -/* - LED bar graph - - Turns on a series of LEDs based on the value of an analog sensor. - This is a simple way to make a bar graph display. Though this graph - uses 10 LEDs, you can use any number by changing the LED count - and the pins in the array. - - This method can be used to control any series of digital outputs that - depends on an analog input. - - The circuit: - * LEDs from pins 2 through 11 to ground - - created 4 Sep 2010 - by Tom Igoe - - This example code is in the public domain. - - http://www.arduino.cc/en/Tutorial/BarGraph - */ - - -// these constants won't change: -const int analogPin = A0; // the pin that the potentiometer is attached to -const int ledCount = 10; // the number of LEDs in the bar graph - -int ledPins[] = { - 2, 3, 4, 5, 6, 7,8,9,10,11 }; // an array of pin numbers to which LEDs are attached - - -void setup() { - // loop over the pin array and set them all to output: - for (int thisLed = 0; thisLed < ledCount; thisLed++) { - pinMode(ledPins[thisLed], OUTPUT); - } -} - -void loop() { - // read the potentiometer: - int sensorReading = analogRead(analogPin); - // map the result to a range from 0 to the number of LEDs: - int ledLevel = map(sensorReading, 0, 1023, 0, ledCount); - - // loop over the LED array: - for (int thisLed = 0; thisLed < ledCount; thisLed++) { - // if the array element's index is less than ledLevel, - // turn the pin for this element on: - if (thisLed < ledLevel) { - digitalWrite(ledPins[thisLed], HIGH); - } - // turn off all pins higher than the ledLevel: - else { - digitalWrite(ledPins[thisLed], LOW); - } - } -} - - - diff --git a/build/linux/work/examples/08.Strings/CharacterAnalysis/.CharacterAnalysis.ino.swp b/build/linux/work/examples/08.Strings/CharacterAnalysis/.CharacterAnalysis.ino.swp deleted file mode 100644 index 0f8c4f40caf4cb86c0bf18b9be6b0700fca63308..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12288 zcmeI2O>7%Q6vw9^(E=@?f`o(wdUX%6tHySdh$cow3IT$p&{nu9suUr{yW@D2_0F<0 zYsXZD3m3R>3Ydg^&<;#8;~V5u6Yo7bGqS4n_QDcOB!zQRRpWVl4gQ&Ft*k zH@}^Et0>c~UaUV$r^~YppZgel=bJ0%-hbi&_UE09wS+Hh^Q}G&uPwRfNv^rpa_`=+ z*npLFX)3cbt8=*D8_z`>!J_K)rKG*~=fCca{`28^YfE(Z{cnfR*0qTIjL*TEw8T%Go10R4lz-yod z=0F)71wY)y*!SQQunA)D94LX~;C8TueGk{cRq!Tw9dy7Ma2h-aem%t4&){RQ0R-^D z9C!r$2A5ml2DlEcfv>=q;0y3Mu)aS9?&AzN1I~am;0*k02Cgt73sFPFk_Y7o8|q9D z7E6zfYb`9xuAq(}9xBroF*W-})C%J}=dG0rao;DcaG8#{XD{}N>kVqDcr*}R)c9oi z?8>Mh&6FliT^>lE+Smr@3r}`<;7e>2q@pZ~GF54s7EYqqG(CNi5P#7gl?EBg7W(OD zhSxr6uPvIk)OHJDsYI7=ok9{t7`ex_7=}gERolFT)(OM$+=@5Y!#EPPVU0}~F-k(u zB-}_9j>I}|+b4}>=L2sBqhmckXq_-xpnBuft=Q&$sY|D;O^>$qk!f=~Q!qoR*Oo@4 zlWs)Ba?GRlgsF21lMdF1N9lYUiMO9w#K}{kiB&Mnd?e;lc6P!n_ZaZ=+a4y2x7b*! z*GKYN)Si?RM&Uu!=1pOwHyX+|?MjDTZ3N~m=hcmgKN?vG_|bc z>?nTQ^bpZnTF7^_6<`ll9P#Wc00%zRr-Fctz>hx0C%Pi;BW2vEj$#=SZ>q$Q zG}&nFShEO72+P1e2;3R-7i+nAEW2BYtUYwKL&rK1-Ui`7g+ZS}fi2=bj&V}Zicles zeT3Q0zA4saSX_9tT21pulyi{?aaa4E!{Y07l2CeSmBecW`S&NB($ z#WYhrHN(imqcpZ{fzGO~ZLHc08@nXi!RifRyf*dZKYb7M;)YMSuSRK=4 gfF1I7bTKz7)@h1l-+$>Adbr5;&<}eMtDIne13`Q4=>Px# diff --git a/build/linux/work/examples/08.Strings/CharacterAnalysis/CharacterAnalysis.ino b/build/linux/work/examples/08.Strings/CharacterAnalysis/CharacterAnalysis.ino deleted file mode 100644 index 414d4628f..000000000 --- a/build/linux/work/examples/08.Strings/CharacterAnalysis/CharacterAnalysis.ino +++ /dev/null @@ -1,84 +0,0 @@ -/* - Character analysis operators - - Examples using the character analysis operators. - Send any byte and the sketch will tell you about it. - - created 29 Nov 2010 - modified 2 Apr 2012 - by Tom Igoe - - This example code is in the public domain. - */ - -void setup() { - // Open serial communications and wait for port to open: - Serial.begin(9600); - // this check is only needed on the Leonardo: - while (!Serial) { - ; // wait for serial port to connect. Needed fo Leonardo only - } - - // send an intro: - Serial.println("send any byte and I'll tell you everything I can about it"); - Serial.println(); -} - -void loop() { - // get any incoming bytes: - if (Serial.available() > 0) { - int thisChar = Serial.read(); - - // say what was sent: - Serial.print("You sent me: \'"); - Serial.write(thisChar); - Serial.print("\' ASCII Value: "); - Serial.println(thisChar); - - // analyze what was sent: - if(isAlphaNumeric(thisChar)) { - Serial.println("it's alphanumeric"); - } - if(isAlpha(thisChar)) { - Serial.println("it's alphabetic"); - } - if(isAscii(thisChar)) { - Serial.println("it's ASCII"); - } - if(isWhitespace(thisChar)) { - Serial.println("it's whitespace"); - } - if(isControl(thisChar)) { - Serial.println("it's a control character"); - } - if(isDigit(thisChar)) { - Serial.println("it's a numeric digit"); - } - if(isGraph(thisChar)) { - Serial.println("it's a printable character that's not whitespace"); - } - if(isLowerCase(thisChar)) { - Serial.println("it's lower case"); - } - if(isPrintable(thisChar)) { - Serial.println("it's printable"); - } - if(isPunct(thisChar)) { - Serial.println("it's punctuation"); - } - if(isSpace(thisChar)) { - Serial.println("it's a space character"); - } - if(isUpperCase(thisChar)) { - Serial.println("it's upper case"); - } - if (isHexadecimalDigit(thisChar)) { - Serial.println("it's a valid hexadecimaldigit (i.e. 0 - 9, a - F, or A - F)"); - } - - // add some space and ask for another byte: - Serial.println(); - Serial.println("Give me another byte:"); - Serial.println(); - } -} diff --git a/build/linux/work/examples/08.Strings/StringAdditionOperator/StringAdditionOperator.ino b/build/linux/work/examples/08.Strings/StringAdditionOperator/StringAdditionOperator.ino deleted file mode 100644 index a1a79e6aa..000000000 --- a/build/linux/work/examples/08.Strings/StringAdditionOperator/StringAdditionOperator.ino +++ /dev/null @@ -1,68 +0,0 @@ -/* - Adding Strings together - - Examples of how to add strings together - You can also add several different data types to string, as shown here: - - created 27 July 2010 - modified 2 Apr 2012 - by Tom Igoe - - http://arduino.cc/en/Tutorial/StringAdditionOperator - - This example code is in the public domain. - */ - -// declare three strings: -String stringOne, stringTwo, stringThree; - -void setup() { - // initialize serial and wait for port to open: - Serial.begin(9600); - // this check is only needed on the Leonardo: - while (!Serial) { - ; // wait for serial port to connect. Needed fo Leonardo only - } - - stringOne = String("stringThree = "); - stringTwo = String("this string"); - stringThree = String (); - Serial.println("\n\nAdding strings together (concatenation):"); - Serial.println(); -} - -void loop() { - // adding a constant integer to a string: - stringThree = stringOne + 123; - Serial.println(stringThree); // prints "stringThree = 123" - - // adding a constant long interger to a string: - stringThree = stringOne + 123456789; - Serial.println(stringThree); // prints " You added 123456789" - - // adding a constant character to a string: - stringThree = stringOne + 'A'; - Serial.println(stringThree); // prints "You added A" - - // adding a constant string to a string: - stringThree = stringOne + "abc"; - Serial.println(stringThree); // prints "You added abc" - - stringThree = stringOne + stringTwo; - Serial.println(stringThree); // prints "You added this string" - - // adding a variable integer to a string: - int sensorValue = analogRead(A0); - stringOne = "Sensor value: "; - stringThree = stringOne + sensorValue; - Serial.println(stringThree); // prints "Sensor Value: 401" or whatever value analogRead(A0) has - - // adding a variable long integer to a string: - long currentTime = millis(); - stringOne="millis() value: "; - stringThree = stringOne + millis(); - Serial.println(stringThree); // prints "The millis: 345345" or whatever value currentTime has - - // do nothing while true: - while(true); -} diff --git a/build/linux/work/examples/08.Strings/StringAppendOperator/StringAppendOperator.ino b/build/linux/work/examples/08.Strings/StringAppendOperator/StringAppendOperator.ino deleted file mode 100644 index 1776c06f2..000000000 --- a/build/linux/work/examples/08.Strings/StringAppendOperator/StringAppendOperator.ino +++ /dev/null @@ -1,70 +0,0 @@ -/* - Appending to Strings using the += operator and concat() - - Examples of how to append different data types to strings - - created 27 July 2010 - modified 2 Apr 2012 - by Tom Igoe - - http://arduino.cc/en/Tutorial/StringAppendOperator - - This example code is in the public domain. - */ -String stringOne, stringTwo; - -void setup() { - // Open serial communications and wait for port to open: - Serial.begin(9600); - // this check is only needed on the Leonardo: - while (!Serial) ; - ; - - stringOne = String("Sensor "); - stringTwo = String("value"); - Serial.println("\n\nAppending to a string:"); -} - -void loop() { - Serial.println(stringOne); // prints "Sensor " - - // adding a string to a string: - stringOne += stringTwo; - Serial.println(stringOne); // prints "Sensor value" - - // adding a constant string to a string: - stringOne += " for input "; - Serial.println(stringOne); // prints "Sensor value for input" - - // adding a constant character to a string: - stringOne += 'A'; - Serial.println(stringOne); // prints "Sensor value for input A" - - // adding a constant integer to a string: - stringOne += 0; - Serial.println(stringOne); // prints "Sensor value for input A0" - - // adding a constant string to a string: - stringOne += ": "; - Serial.println(stringOne); // prints "Sensor value for input" - - // adding a variable integer to a string: - stringOne += analogRead(A0); - Serial.println(stringOne); // prints "Sensor value for input A0: 456" or whatever analogRead(A0) is - - Serial.println("\n\nchanging the Strings' values"); - stringOne = "A long integer: "; - stringTwo = "The millis(): "; - - // adding a constant long integer to a string: - stringOne += 123456789; - Serial.println(stringOne); // prints "A long integer: 123456789" - - // using concat() to add a long variable to a string: - stringTwo.concat(millis()); - Serial.println(stringTwo); // prints "The millis(): 43534" or whatever the value of the millis() is - - // do nothing while true: - while(true); -} - diff --git a/build/linux/work/examples/08.Strings/StringCaseChanges/StringCaseChanges.ino b/build/linux/work/examples/08.Strings/StringCaseChanges/StringCaseChanges.ino deleted file mode 100644 index cdccb53c4..000000000 --- a/build/linux/work/examples/08.Strings/StringCaseChanges/StringCaseChanges.ino +++ /dev/null @@ -1,41 +0,0 @@ -/* - String Case changes - - Examples of how to change the case of a string - - created 27 July 2010 - modified 2 Apr 2012 - by Tom Igoe - - http://arduino.cc/en/Tutorial/StringCaseChanges - - This example code is in the public domain. - */ - -void setup() { - // Open serial communications and wait for port to open: - Serial.begin(9600); - // this check is only needed on the Leonardo: - while (!Serial) ; - ; - - Serial.println("\n\nString case changes:"); -} - -void loop() { - // toUpperCase() changes all letters to upper case: - String stringOne = ""; - Serial.println(stringOne); - stringOne.toUpperCase(); - Serial.println(stringOne); - - // toLowerCase() changes all letters to lower case: - String stringTwo = ""; - Serial.println(stringTwo); - stringTwo.toLowerCase(); - Serial.println(stringTwo); - - - // do nothing while true: - while(true); -} diff --git a/build/linux/work/examples/08.Strings/StringCharacters/StringCharacters.ino b/build/linux/work/examples/08.Strings/StringCharacters/StringCharacters.ino deleted file mode 100644 index d7d27e7bc..000000000 --- a/build/linux/work/examples/08.Strings/StringCharacters/StringCharacters.ino +++ /dev/null @@ -1,44 +0,0 @@ -/* - String charAt() and setCharAt() - - Examples of how to get and set characters of a String - - created 27 July 2010 - modified 2 Apr 2012 - by Tom Igoe - - http://arduino.cc/en/Tutorial/StringCharacters - - This example code is in the public domain. - */ - -void setup() { - // Open serial communications and wait for port to open: - Serial.begin(9600); - // this check is only needed on the Leonardo: - while (!Serial) ; - ; - - Serial.println("\n\nString charAt() and setCharAt():"); -} - -void loop() { - // make a string to report a sensor reading: - String reportString = "SensorReading: 456"; - Serial.println(reportString); - - // the reading's most significant digit is at position 15 in the reportString: - char mostSignificantDigit = reportString.charAt(15); - Serial.println("Most significant digit of the sensor reading is: " + mostSignificantDigit); - - // add blank space: - Serial.println(); - - // you can alo set the character of a string. Change the : to a = character - reportString.setCharAt(13, '='); - Serial.println(reportString); - - // do nothing while true: - while(true); -} - diff --git a/build/linux/work/examples/08.Strings/StringComparisonOperators/StringComparisonOperators.ino b/build/linux/work/examples/08.Strings/StringComparisonOperators/StringComparisonOperators.ino deleted file mode 100644 index 742a6ad94..000000000 --- a/build/linux/work/examples/08.Strings/StringComparisonOperators/StringComparisonOperators.ino +++ /dev/null @@ -1,129 +0,0 @@ -/* - Comparing Strings - - Examples of how to compare strings using the comparison operators - - created 27 July 2010 - modified 2 Apr 2012 - by Tom Igoe - - http://arduino.cc/en/Tutorial/StringComparisonOperators - - This example code is in the public domain. - */ - -String stringOne, stringTwo; - -void setup() { - // Open serial communications and wait for port to open: - Serial.begin(9600); - // this check is only needed on the Leonardo: - while (!Serial) ; - ; - - stringOne = String("this"); - stringTwo = String("that"); - Serial.println("\n\nComparing Strings:"); - -} - -void loop() { - // two strings equal: - if (stringOne == "this") { - Serial.println("StringOne == \"this\""); - } - // two strings not equal: - if (stringOne != stringTwo) { - Serial.println(stringOne + " =! " + stringTwo); - } - - // two strings not equal (case sensitivity matters): - stringOne = "This"; - stringTwo = "this"; - if (stringOne != stringTwo) { - Serial.println(stringOne + " =! " + stringTwo); - } - // you can also use equals() to see if two strings are the same: - if (stringOne.equals(stringTwo)) { - Serial.println(stringOne + " equals " + stringTwo); - } - else { - Serial.println(stringOne + " does not equal " + stringTwo); - } - - // or perhaps you want to ignore case: - if (stringOne.equalsIgnoreCase(stringTwo)) { - Serial.println(stringOne + " equals (ignoring case) " + stringTwo); - } - else { - Serial.println(stringOne + " does not equal (ignoring case) " + stringTwo); - } - - // a numeric string compared to the number it represents: - stringOne = "1"; - int numberOne = 1; - if (stringOne.toInt() == numberOne) { - Serial.println(stringOne + " = " + numberOne); - } - - - - // two numeric strings compared: - stringOne = "2"; - stringTwo = "1"; - if (stringOne >= stringTwo) { - Serial.println(stringOne + " >= " + stringTwo); - } - - // comparison operators can be used to compare strings for alphabetic sorting too: - stringOne = String("Brown"); - if (stringOne < "Charles") { - Serial.println(stringOne + " < Charles"); - } - - if (stringOne > "Adams") { - Serial.println(stringOne + " > Adams"); - } - - if (stringOne <= "Browne") { - Serial.println(stringOne + " <= Browne"); - } - - - if (stringOne >= "Brow") { - Serial.println(stringOne + " >= Brow"); - } - - // the compareTo() operator also allows you to compare strings - // it evaluates on the first character that's different. - // if the first character of the string you're comparing to - // comes first in alphanumeric order, then compareTo() is greater than 0: - stringOne = "Cucumber"; - stringTwo = "Cucuracha"; - if (stringOne.compareTo(stringTwo) < 0 ) { - Serial.println(stringOne + " comes before " + stringTwo); - } - else { - Serial.println(stringOne + " comes after " + stringTwo); - } - - delay(10000); // because the next part is a loop: - - // compareTo() is handy when you've got strings with numbers in them too: - - while (true) { - stringOne = "Sensor: "; - stringTwo= "Sensor: "; - - stringOne += analogRead(A0); - stringTwo += analogRead(A5); - - if (stringOne.compareTo(stringTwo) < 0 ) { - Serial.println(stringOne + " comes before " + stringTwo); - } - else { - Serial.println(stringOne + " comes after " + stringTwo); - - } - } -} diff --git a/build/linux/work/examples/08.Strings/StringConstructors/StringConstructors.ino b/build/linux/work/examples/08.Strings/StringConstructors/StringConstructors.ino deleted file mode 100644 index aa67c5aa2..000000000 --- a/build/linux/work/examples/08.Strings/StringConstructors/StringConstructors.ino +++ /dev/null @@ -1,70 +0,0 @@ -/* - String constructors - - Examples of how to create strings from other data types - - created 27 July 2010 - modified 30 Aug 2011 - by Tom Igoe - - http://arduino.cc/en/Tutorial/StringConstructors - - This example code is in the public domain. - */ - -void setup() { - // Open serial communications and wait for port to open: - Serial.begin(9600); - // this check is only needed on the Leonardo: - while (!Serial) ; - ; - - Serial.println("\n\nString Constructors:"); -} - -void loop() { - // using a constant String: - String stringOne = "Hello String"; - Serial.println(stringOne); // prints "Hello String" - - // converting a constant char into a String: - stringOne = String('a'); - Serial.println(stringOne); // prints "a" - - // converting a constant string into a String object: - String stringTwo = String("This is a string"); - Serial.println(stringTwo); // prints "This is a string" - - // concatenating two strings: - stringOne = String(stringTwo + " with more"); - // prints "This is a string with more": - Serial.println(stringOne); - - // using a constant integer: - stringOne = String(13); - Serial.println(stringOne); // prints "13" - - // using an int and a base: - stringOne = String(analogRead(A0), DEC); - // prints "453" or whatever the value of analogRead(A0) is - Serial.println(stringOne); - - // using an int and a base (hexadecimal): - stringOne = String(45, HEX); - // prints "2d", which is the hexadecimal version of decimal 45: - Serial.println(stringOne); - - // using an int and a base (binary) - stringOne = String(255, BIN); - // prints "11111111" which is the binary value of 255 - Serial.println(stringOne); - - // using a long and a base: - stringOne = String(millis(), DEC); - // prints "123456" or whatever the value of millis() is: - Serial.println(stringOne); - - // do nothing while true: - while(true); - -} diff --git a/build/linux/work/examples/08.Strings/StringIndexOf/StringIndexOf.ino b/build/linux/work/examples/08.Strings/StringIndexOf/StringIndexOf.ino deleted file mode 100644 index 76d0d1bf6..000000000 --- a/build/linux/work/examples/08.Strings/StringIndexOf/StringIndexOf.ino +++ /dev/null @@ -1,65 +0,0 @@ -/* - String indexOf() and lastIndexOf() functions - - Examples of how to evaluate, look for, and replace characters in a String - - created 27 July 2010 - modified 2 Apr 2012 - by Tom Igoe - - http://arduino.cc/en/Tutorial/StringIndexOf - - This example code is in the public domain. - */ - -void setup() { - // Open serial communications and wait for port to open: - Serial.begin(9600); - // this check is only needed on the Leonardo: - while (!Serial) ; - ; - - Serial.println("\n\nString indexOf() and lastIndexOf() functions:"); - -} - -void loop() { - // indexOf() returns the position (i.e. index) of a particular character - // in a string. For example, if you were parsing HTML tags, you could use it: - String stringOne = ""; - int firstClosingBracket = stringOne.indexOf('>'); - Serial.println("The index of > in the string " + stringOne + " is " + firstClosingBracket); - - stringOne = ""; - int secondOpeningBracket = firstClosingBracket + 1; - int secondClosingBracket = stringOne.indexOf('>', secondOpeningBracket ); - Serial.println("The index of the second > in the string " + stringOne + " is " + secondClosingBracket); - - // you can also use indexOf() to search for Strings: - stringOne = ""; - int bodyTag = stringOne.indexOf(""); - Serial.println("The index of the body tag in the string " + stringOne + " is " + bodyTag); - - stringOne = "
  • item
  • item
  • item
"; - int firstListItem = stringOne.indexOf("
  • "); - int secondListItem = stringOne.indexOf("item", firstListItem + 1 ); - Serial.println("The index of the second list item in the string " + stringOne + " is " + secondClosingBracket); - - // lastIndexOf() gives you the last occurrence of a character or string: - int lastOpeningBracket = stringOne.lastIndexOf('<'); - Serial.println("The index of the last < in the string " + stringOne + " is " + lastOpeningBracket); - - int lastListItem = stringOne.lastIndexOf("
  • "); - Serial.println("The index of the last list item in the string " + stringOne + " is " + lastListItem); - - - // lastIndexOf() can also search for a string: - stringOne = "

    Lorem ipsum dolor sit amet

    Ipsem

    Quod

    "; - int lastParagraph = stringOne.lastIndexOf(" 0) { - char inChar = Serial.read(); - txtMsg += inChar; - } - - // print the message and a notice if it's changed: - if (txtMsg.length() != lastStringLength) { - Serial.println(txtMsg); - Serial.println(txtMsg.length()); - // if the String's longer than 140 characters, complain: - if (txtMsg.length() < 140) { - Serial.println("That's a perfectly acceptable text message"); - } - else { - Serial.println("That's too long for a text message."); - } - // note the length for next time through the loop: - lastStringLength = txtMsg.length(); - } -} diff --git a/build/linux/work/examples/08.Strings/StringLengthTrim/StringLengthTrim.ino b/build/linux/work/examples/08.Strings/StringLengthTrim/StringLengthTrim.ino deleted file mode 100644 index 42ffb5a0d..000000000 --- a/build/linux/work/examples/08.Strings/StringLengthTrim/StringLengthTrim.ino +++ /dev/null @@ -1,40 +0,0 @@ -/* - String length() and trim() - - Examples of how to use length() and trim() in a String - - created 27 July 2010 - modified 2 Apr 2012 - by Tom Igoe - - http://arduino.cc/en/Tutorial/StringLengthTrim - - This example code is in the public domain. - */ - -void setup() { - // Open serial communications and wait for port to open: - Serial.begin(9600); - // this check is only needed on the Leonardo: - while (!Serial) ; - ; - - Serial.println("\n\nString length() and trim():"); -} - -void loop() { - // here's a String with empty spaces at the end (called white space): - String stringOne = "Hello! "; - Serial.print(stringOne); - Serial.print("<--- end of string. Length: "); - Serial.println(stringOne.length()); - - // trim the white space off the string: - stringOne.trim(); - Serial.print(stringOne); - Serial.print("<--- end of trimmed string. Length: "); - Serial.println(stringOne.length()); - - // do nothing while true: - while(true); -} diff --git a/build/linux/work/examples/08.Strings/StringReplace/.swp b/build/linux/work/examples/08.Strings/StringReplace/.swp deleted file mode 100644 index 45798ea67a7e7739e1c5d514214219f8a1ad3ecf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12288 zcmeI%F>b;z7>3~=HYN~ofKYavl1g;$)&U`b(y5C{Tw*Cj5e^bd=~Xxjx8N|Xny6$% zFq7Ak^~;WB`+K&?OaJY4>P<$06s;q2IDO5IFMWCMiF}yYl+)MRB1)`|BCDNt&R$-< zFE>;xo2y_PKB?u_rm=E~-k4aKo&L;H 0) { - int inChar = Serial.read(); - if (isDigit(inChar)) { - // convert the incoming byte to a char - // and add it to the string: - inString += (char)inChar; - } - // if you get a newline, print the string, - // then the string's value: - if (inChar == '\n') { - Serial.print("Value:"); - Serial.println(inString.toInt()); - Serial.print("String: "); - Serial.println(inString); - // clear the string for new input: - inString = ""; - } - } -} - diff --git a/build/linux/work/examples/08.Strings/StringToIntRGB/StringToIntRGB.ino b/build/linux/work/examples/08.Strings/StringToIntRGB/StringToIntRGB.ino deleted file mode 100644 index 289209877..000000000 --- a/build/linux/work/examples/08.Strings/StringToIntRGB/StringToIntRGB.ino +++ /dev/null @@ -1,235 +0,0 @@ -/* - Serial RGB controller - - Reads a serial input string looking for three comma-separated - integers with a newline at the end. Values should be between - 0 and 255. The sketch uses those values to set the color - of an RGB LED attached to pins 9 - 11. - - The circuit: - * Common-anode RGB LED cathodes attached to pins 9 - 11 - * LED anode connected to pin 13 - - To turn on any given channel, set the pin LOW. - To turn off, set the pin HIGH. The higher the analogWrite level, - the lower the brightness. - - created 29 Nov 2010 - by Tom Igoe - - This example code is in the public domain. - */ - -String inString = ""; // string to hold input -int currentColor = 0; -int red, green, blue = 0; - -void setup() { - // Open serial communications and wait for port to open: - Serial.begin(9600); - // this check is only needed on the Leonardo: - while (!Serial) ; - ; - - Serial.println("\n\nString toInt() RGB:"); - // set LED cathode pins as outputs: - pinMode(9, OUTPUT); - pinMode(10, OUTPUT); - pinMode(11, OUTPUT); - // turn on pin 13 to power the LEDs: - pinMode(13, OUTPUT); - digitalWrite(13, HIGH); -} - -void loop() { - int inChar; - - // Read serial input: - if (Serial.available() > 0) { - inChar = Serial.read(); - } - - if (isDigit(inChar)) { - // convert the incoming byte to a char - // and add it to the string: - inString += (char)inChar; - } - - // if you get a comma, convert to a number, - // set the appropriate color, and increment - // the color counter: - if (inChar == ',') { - // do something different for each value of currentColor: - switch (currentColor) { - case 0: // 0 = red - red = inString.toInt(); - // clear the string for new input: - inString = ""; - break; - case 1: // 1 = green: - green = inString.toInt(); - // clear the string for new input: - inString = ""; - break; - } - currentColor++; - } - // if you get a newline, you know you've got - // the last color, i.e. blue: - if (inChar == '\n') { - blue = inString.toInt(); - - // set the levels of the LED. - // subtract value from 255 because a higher - // analogWrite level means a dimmer LED, since - // you're raising the level on the anode: - analogWrite(11, 255 - red); - analogWrite(9, 255 - green); - analogWrite(10, 255 - blue); - - // print the colors: - Serial.print("Red: "); - Serial.print(red); - Serial.print(", Green: "); - Serial.print(green); - Serial.print(", Blue: "); - Serial.println(blue); - - // clear the string for new input: - inString = ""; - // reset the color counter: - currentColor = 0; - - } - -} - - -/* -Here's a Processing sketch that will draw a color wheel and send a serial - string with the color you click on: - - // Subtractive Color Wheel with Serial - // Based on a Processing example by Ira Greenberg. - // Serial output added by Tom Igoe - // - // The primaries are red, yellow, and blue. The secondaries are green, - // purple, and orange. The tertiaries are yellow-orange, red-orange, - // red-purple, blue-purple, blue-green, and yellow-green. - // - // Create a shade or tint of the subtractive color wheel using - // SHADE or TINT parameters. - - // Updated 29 November 2010. - - - - import processing.serial.*; - - int segs = 12; - int steps = 6; - float rotAdjust = TWO_PI / segs / 2; - float radius; - float segWidth; - float interval = TWO_PI / segs; - - Serial myPort; - - void setup() { - size(200, 200); - background(127); - smooth(); - ellipseMode(RADIUS); - noStroke(); - // make the diameter 90% of the sketch area - radius = min(width, height) * 0.45; - segWidth = radius / steps; - - // swap which line is commented out to draw the other version - // drawTintWheel(); - drawShadeWheel(); - // open the first serial port in your computer's list - myPort = new Serial(this, Serial.list()[0], 9600); - } - - - void drawShadeWheel() { - for (int j = 0; j < steps; j++) { - color[] cols = { - color(255-(255/steps)*j, 255-(255/steps)*j, 0), - color(255-(255/steps)*j, (255/1.5)-((255/1.5)/steps)*j, 0), - color(255-(255/steps)*j, (255/2)-((255/2)/steps)*j, 0), - color(255-(255/steps)*j, (255/2.5)-((255/2.5)/steps)*j, 0), - color(255-(255/steps)*j, 0, 0), - color(255-(255/steps)*j, 0, (255/2)-((255/2)/steps)*j), - color(255-(255/steps)*j, 0, 255-(255/steps)*j), - color((255/2)-((255/2)/steps)*j, 0, 255-(255/steps)*j), - color(0, 0, 255-(255/steps)*j), - color(0, 255-(255/steps)*j, (255/2.5)-((255/2.5)/steps)*j), - color(0, 255-(255/steps)*j, 0), - color((255/2)-((255/2)/steps)*j, 255-(255/steps)*j, 0) - }; - for (int i = 0; i < segs; i++) { - fill(cols[i]); - arc(width/2, height/2, radius, radius, - interval*i+rotAdjust, interval*(i+1)+rotAdjust); - } - radius -= segWidth; - } - } - - - void drawTintWheel() { - for (int j = 0; j < steps; j++) { - color[] cols = { - color((255/steps)*j, (255/steps)*j, 0), - color((255/steps)*j, ((255/1.5)/steps)*j, 0), - color((255/steps)*j, ((255/2)/steps)*j, 0), - color((255/steps)*j, ((255/2.5)/steps)*j, 0), - color((255/steps)*j, 0, 0), - color((255/steps)*j, 0, ((255/2)/steps)*j), - color((255/steps)*j, 0, (255/steps)*j), - color(((255/2)/steps)*j, 0, (255/steps)*j), - color(0, 0, (255/steps)*j), - color(0, (255/steps)*j, ((255/2.5)/steps)*j), - color(0, (255/steps)*j, 0), - color(((255/2)/steps)*j, (255/steps)*j, 0) - }; - for (int i = 0; i < segs; i++) { - fill(cols[i]); - arc(width/2, height/2, radius, radius, - interval*i+rotAdjust, interval*(i+1)+rotAdjust); - } - radius -= segWidth; - } - } - - void draw() { - // nothing happens here - } - - void mouseReleased() { - // get the color of the mouse position's pixel: - color targetColor = get(mouseX, mouseY); - // get the component values: - int r = int(red(targetColor)); - int g = int(green(targetColor)); - int b = int(blue(targetColor)); - // make a comma-separated string: - String colorString = r + "," + g + "," + b + "\n"; - // send it out the serial port: - myPort.write(colorString ); - } - - - */ - - - - - - - - - - diff --git a/build/linux/work/examples/09. USB (Leonardo only)/Keyboard/KeyboardLogout/KeyboardLogout.ino b/build/linux/work/examples/09. USB (Leonardo only)/Keyboard/KeyboardLogout/KeyboardLogout.ino deleted file mode 100644 index adb502a34..000000000 --- a/build/linux/work/examples/09. USB (Leonardo only)/Keyboard/KeyboardLogout/KeyboardLogout.ino +++ /dev/null @@ -1,95 +0,0 @@ -/* - Keyboard logout - - This sketch demonstrates the Keyboard library. - - When you connect pin 2 to ground, it performs a logout. - It uses keyboard combinations to do this, as follows: - - On Windows, CTRL-ALT-DEL followed by ALT-l - On Ubuntu, CTRL-ALT-DEL, and ENTER - On OSX, CMD-SHIFT-q - - To wake: Spacebar. - - Circuit: - * Arduino Leonardo - * wire to connect D2 to ground. - - created 6 Mar 2012 - modified 27 Mar 2012 - by Tom Igoe - - This example is in the public domain - - http://www.arduino.cc/en/Tutorial/KeyboardLogout - */ - -#define OSX 0 -#define WINDOWS 1 -#define UBUNTU 2 - -// change this to match your platform: -int platform = OSX; - -void setup() { - // make pin 2 an input and turn on the - // pullup resistor so it goes high unless - // connected to ground: - pinMode(2, INPUT_PULLUP); - Keyboard.begin(); -} - -void loop() { - while (digitalRead(2) == HIGH) { - // do nothing until pin 2 goes low - delay(500); - } - delay(1000); - - switch (platform) { - case OSX: - Keyboard.press(KEY_LEFT_GUI); - // Shift-Q logs out: - Keyboard.press(KEY_LEFT_SHIFT); - Keyboard.press('Q'); - delay(100); - Keyboard.releaseAll(); - // enter: - Keyboard.write(KEY_RETURN); - break; - case WINDOWS: - // CTRL-ALT-DEL: - Keyboard.press(KEY_LEFT_CTRL); - Keyboard.press(KEY_LEFT_ALT); - Keyboard.press(KEY_DELETE); - delay(100); - Keyboard.releaseAll(); - //ALT-s: - delay(2000); - Keyboard.press(KEY_LEFT_ALT); - Keyboard.press('l'); - Keyboard.releaseAll(); - break; - case UBUNTU: - // CTRL-ALT-DEL: - Keyboard.press(KEY_LEFT_CTRL); - Keyboard.press(KEY_LEFT_ALT); - Keyboard.press(KEY_DELETE); - delay(1000); - Keyboard.releaseAll(); - // Enter to confirm logout: - Keyboard.write(KEY_RETURN); - break; - } -// do nothing: - while(true); -} - - - - - - - - diff --git a/build/linux/work/examples/09. USB (Leonardo only)/Keyboard/KeyboardMessage/KeyboardMessage.ino b/build/linux/work/examples/09. USB (Leonardo only)/Keyboard/KeyboardMessage/KeyboardMessage.ino deleted file mode 100644 index 6b226b558..000000000 --- a/build/linux/work/examples/09. USB (Leonardo only)/Keyboard/KeyboardMessage/KeyboardMessage.ino +++ /dev/null @@ -1,47 +0,0 @@ -/* - Keyboard Button test - - Sends a text string when a button is pressed. - - The circuit: - * pushbutton attached from pin 2 to +5V - * 10-kilohm resistor attached from pin 4 to ground - - created 24 Oct 2011 - modified 27 Mar 2012 - by Tom Igoe - - This example code is in the public domain. - - http://www.arduino.cc/en/Tutorial/KeyboardButton - */ - -const int buttonPin = 2; // input pin for pushbutton -int previousButtonState = HIGH; // for checking the state of a pushButton -int counter = 0; // button push counter - -void setup() { - // make the pushButton pin an input: - pinMode(buttonPin, INPUT); - // initialize control over the keyboard: - Keyboard.begin(); -} - -void loop() { - // read the pushbutton: - int buttonState = digitalRead(buttonPin); - // if the button state has changed, - if ((buttonState != previousButtonState) - // and it's currently pressed: - && (buttonState == HIGH)) { - // increment the button counter - counter++; - // type out a message - Keyboard.print("You pressed the button "); - Keyboard.print(counter); - Keyboard.println(" times."); - } - // save the current button state for comparison next time: - previousButtonState = buttonState; -} - diff --git a/build/linux/work/examples/09. USB (Leonardo only)/Keyboard/KeyboardReprogram/KeyboardReprogram.ino b/build/linux/work/examples/09. USB (Leonardo only)/Keyboard/KeyboardReprogram/KeyboardReprogram.ino deleted file mode 100644 index 07529bf90..000000000 --- a/build/linux/work/examples/09. USB (Leonardo only)/Keyboard/KeyboardReprogram/KeyboardReprogram.ino +++ /dev/null @@ -1,95 +0,0 @@ -/* - Arduino Programs Blink - - This sketch demonstrates the Keyboard library. - - When you connect pin 2 to ground, it creates a new - window with a key combination (CTRL-N), - then types in the Blink sketch, then auto-formats the text - using another key combination (CTRL-T), then - uploads the sketch to the currently selected Arduino using - a final key combination (CTRL-U). - - Circuit: - * Arduino Leonardo - * wire to connect D2 to ground. - - created 5 Mar 2012 - modified 29 Mar 2012 - by Tom Igoe - - This example is in the public domain - - http://www.arduino.cc/en/Tutorial/KeyboardReprogram - */ - -// use this option for OSX. -// Comment it out if using Windows or Linux: -char ctrlKey = KEY_LEFT_GUI; -// use this option for Windows and Linux. -// leave commented out if using OSX: -// char ctrlKey = KEY_LEFT_CTRL; - - -void setup() { - // make pin 2 an input and turn on the - // pullup resistor so it goes high unless - // connected to ground: - pinMode(2, INPUT_PULLUP); - // initialize control over the keyboard: - Keyboard.begin(); -} - -void loop() { - while (digitalRead(2) == HIGH) { - // do nothing until pin 2 goes low - delay(500); - } - delay(1000); - // new document: - Keyboard.press(ctrlKey); - Keyboard.press('n'); - delay(100); - Keyboard.releaseAll(); - // wait for new window to open: - delay(1000); - - // Type out "blink": - Keyboard.println("void setup() {"); - Keyboard.println("pinMode(13, OUTPUT);"); - Keyboard.println("}"); - Keyboard.println(); - Keyboard.println("void loop() {"); - Keyboard.println("digitalWrite(13, HIGH);"); - Keyboard.print("delay(3000);"); - // 3000 ms is too long. Delete it: - for (int keystrokes=0; keystrokes < 6; keystrokes++) { - delay(500); - Keyboard.write(KEY_BACKSPACE); - } - // make it 1000 instead: - Keyboard.println("1000);"); - Keyboard.println("digitalWrite(13, LOW);"); - Keyboard.println("delay(1000);"); - Keyboard.println("}"); - // tidy up: - Keyboard.press(ctrlKey); - Keyboard.press('t'); - delay(100); - Keyboard.releaseAll(); - delay(3000); - // upload code: - Keyboard.press(ctrlKey); - Keyboard.press('u'); - delay(100); - Keyboard.releaseAll(); - - // wait for the sweet oblivion of reprogramming: - while(true); -} - - - - - - diff --git a/build/linux/work/examples/09. USB (Leonardo only)/Keyboard/KeyboardSerial/KeyboardSerial.ino b/build/linux/work/examples/09. USB (Leonardo only)/Keyboard/KeyboardSerial/KeyboardSerial.ino deleted file mode 100644 index 7ee7f7ad7..000000000 --- a/build/linux/work/examples/09. USB (Leonardo only)/Keyboard/KeyboardSerial/KeyboardSerial.ino +++ /dev/null @@ -1,36 +0,0 @@ -/* - Keyboard test - - Reads a byte from the serial port, sends a keystroke back. - The sent keystroke is one higher than what's received, e.g. - if you send a, you get b, send A you get B, and so forth. - - The circuit: - * none - - created 21 Oct 2011 - modified 27 Mar 2012 - by Tom Igoe - -This example code is in the public domain. - - http://www.arduino.cc/en/Tutorial/KeyboardSerial - */ - -void setup() { - // open the serial port: -Serial.begin(9600); - // initialize control over the keyboard: - Keyboard.begin(); -} - -void loop() { - // check for incoming serial data: - if (Serial.available() > 0) { - // read incoming serial data: - char inChar = Serial.read(); - // Type the next ASCII value from what you received: - Keyboard.write(inChar+1); - } -} - diff --git a/build/linux/work/examples/09. USB (Leonardo only)/KeyboardAndMouseControl/KeyboardAndMouseControl.ino b/build/linux/work/examples/09. USB (Leonardo only)/KeyboardAndMouseControl/KeyboardAndMouseControl.ino deleted file mode 100644 index bdd722ca2..000000000 --- a/build/linux/work/examples/09. USB (Leonardo only)/KeyboardAndMouseControl/KeyboardAndMouseControl.ino +++ /dev/null @@ -1,94 +0,0 @@ - -/* - KeyboardAndMouseControl - - Controls the mouse from five pushbuttons on an Arduino Leonardo. - - Hardware: - * 5 pushbuttons attached to D2, D3, D4, D5, D6 - - - The mouse movement is always relative. This sketch reads - four pushbuttons, and uses them to set the movement of the mouse. - - WARNING: When you use the Mouse.move() command, the Arduino takes - over your mouse! Make sure you have control before you use the mouse commands. - - created 15 Mar 2012 - modified 27 Mar 2012 - by Tom Igoe - - this code is in the public domain - - */ - -// set pin numbers for the five buttons: - -// set pin numbers for the five buttons: -const int upButton = 2; -const int downButton = 3; -const int leftButton = 4; -const int rightButton = 5; -const int mouseButton = 6; - -void setup() { // initialize the buttons' inputs: - pinMode(upButton, INPUT); - pinMode(downButton, INPUT); - pinMode(leftButton, INPUT); - pinMode(rightButton, INPUT); - pinMode(mouseButton, INPUT); - - Serial.begin(9600); - // initialize mouse control: - Mouse.begin(); - Keyboard.begin(); -} - -void loop() { - // use serial input to control the mouse: - if (Serial.available() > 0) { - char inChar = Serial.read(); - - switch (inChar) { - case 'u': - // move mouse up - Mouse.move(0, -40); - break; - case 'd': - // move mouse down - Mouse.move(0, 40); - break; - case 'l': - // move mouse left - Mouse.move(-40, 0); - break; - case 'r': - // move mouse right - Mouse.move(40, 0); - break; - case 'm': - // move mouse right - Mouse.click(MOUSE_LEFT); - break; - } - } - - // use the pushbuttons to control the keyboard: - if (digitalRead(upButton) == HIGH) { - Keyboard.write('u'); - } - if (digitalRead(downButton) == HIGH) { - Keyboard.write('d'); - } - if (digitalRead(leftButton) == HIGH) { - Keyboard.write('l'); - } - if (digitalRead(rightButton) == HIGH) { - Keyboard.write('r'); - } - if (digitalRead(mouseButton) == HIGH) { - Keyboard.write('m'); - } - -} - diff --git a/build/linux/work/examples/09. USB (Leonardo only)/Mouse/ButtonMouseControl/ButtonMouseControl.ino b/build/linux/work/examples/09. USB (Leonardo only)/Mouse/ButtonMouseControl/ButtonMouseControl.ino deleted file mode 100644 index 6dcaf5cdd..000000000 --- a/build/linux/work/examples/09. USB (Leonardo only)/Mouse/ButtonMouseControl/ButtonMouseControl.ino +++ /dev/null @@ -1,81 +0,0 @@ - -/* - ButtonMouseControl - - Controls the mouse from five pushbuttons on an Arduino Leonardo. - - Hardware: - * 5 pushbuttons attached to D2, D3, D4, D5, D6 - - - The mouse movement is always relative. This sketch reads - four pushbuttons, and uses them to set the movement of the mouse. - - WARNING: When you use the Mouse.move() command, the Arduino takes - over your mouse! Make sure you have control before you use the mouse commands. - - created 15 Mar 2012 - modified 27 Mar 2012 - by Tom Igoe - - this code is in the public domain - - */ - -// set pin numbers for the five buttons: -const int upButton = 2; -const int downButton = 3; -const int leftButton = 4; -const int rightButton = 5; -const int mouseButton = 6; - -int range = 5; // output range of X or Y movement; affects movement speed -int responseDelay = 10; // response delay of the mouse, in ms - - -void setup() { - // initialize the buttons' inputs: - pinMode(upButton, INPUT); - pinMode(downButton, INPUT); - pinMode(leftButton, INPUT); - pinMode(rightButton, INPUT); - pinMode(mouseButton, INPUT); - // initialize mouse control: - Mouse.begin(); -} - -void loop() { - // read the buttons: - int upState = digitalRead(upButton); - int downState = digitalRead(downButton); - int rightState = digitalRead(rightButton); - int leftState = digitalRead(leftButton); - int clickState = digitalRead(mouseButton); - - // calculate the movement distance based on the button states: - int xDistance = (leftState - rightState)*range; - int yDistance = (upState - downState)*range; - - // if X or Y is non-zero, move: - if ((xDistance != 0) || (yDistance != 0)) { - Mouse.move(xDistance, yDistance, 0); - } - - // if the mouse button is pressed: - if (clickState == HIGH) { - // if the mouse is not pressed, press it: - if (!Mouse.isPressed(MOUSE_LEFT)) { - Mouse.press(MOUSE_LEFT); - } - } - // else the mouse button is not pressed: - else { - // if the mouse is pressed, release it: - if (Mouse.isPressed(MOUSE_LEFT)) { - Mouse.release(MOUSE_LEFT); - } - } - - // a delay so the mouse doesn't move too fast: - delay(responseDelay); -} diff --git a/build/linux/work/examples/09. USB (Leonardo only)/Mouse/JoystickMouseControl/JoystickMouseControl.ino b/build/linux/work/examples/09. USB (Leonardo only)/Mouse/JoystickMouseControl/JoystickMouseControl.ino deleted file mode 100644 index 5f69c707b..000000000 --- a/build/linux/work/examples/09. USB (Leonardo only)/Mouse/JoystickMouseControl/JoystickMouseControl.ino +++ /dev/null @@ -1,121 +0,0 @@ -/* - JoystickMouseControl - - Controls the mouse from a joystick on an Arduino Leonardo. - Uses a pushbutton to turn on and off mouse control, and - a second pushbutton to click the left mouse button - - Hardware: - * 2-axis joystick connected to pins A0 and A1 - * pushbuttons connected to pin D2 and D3 - - The mouse movement is always relative. This sketch reads - two analog inputs that range from 0 to 1023 (or less on either end) - and translates them into ranges of -6 to 6. - The sketch assumes that the joystick resting values are around the - middle of the range, but that they vary within a threshold. - - WARNING: When you use the Mouse.move() command, the Arduino takes - over your mouse! Make sure you have control before you use the command. - This sketch includes a pushbutton to toggle the mouse control state, so - you can turn on and off mouse control. - - created 15 Sept 2011 - updated 28 Mar 2012 - by Tom Igoe - - this code is in the public domain - - */ - -// set pin numbers for switch, joystick axes, and LED: -const int switchPin = 2; // switch to turn on and off mouse control -const int mouseButton = 3; // input pin for the mouse pushButton -const int xAxis = A0; // joystick X axis -const int yAxis = A1; // joystick Y axis -const int ledPin = 5; // Mouse control LED - -// parameters for reading the joystick: -int range = 12; // output range of X or Y movement -int responseDelay = 5; // response delay of the mouse, in ms -int threshold = range/4; // resting threshold -int center = range/2; // resting position value - -boolean mouseIsActive = false; // whether or not to control the mouse -int lastSwitchState = LOW; // previous switch state - -void setup() { - pinMode(switchPin, INPUT); // the switch pin - pinMode(ledPin, OUTPUT); // the LED pin - // take control of the mouse: - Mouse.begin(); -} - -void loop() { - // read the switch: - int switchState = digitalRead(switchPin); - // if it's changed and it's high, toggle the mouse state: - if (switchState != lastSwitchState) { - if (switchState == HIGH) { - mouseIsActive = !mouseIsActive; - // turn on LED to indicate mouse state: - digitalWrite(ledPin, mouseIsActive); - } - } - // save switch state for next comparison: - lastSwitchState = switchState; - - // read and scale the two axes: - int xReading = readAxis(A0); - int yReading = readAxis(A1); - - // if the mouse control state is active, move the mouse: - if (mouseIsActive) { - Mouse.move(xReading, yReading, 0); - } - - // read the mouse button and click or not click: - // if the mouse button is pressed: - if (digitalRead(mouseButton) == HIGH) { - // if the mouse is not pressed, press it: - if (!Mouse.isPressed(MOUSE_LEFT)) { - Mouse.press(MOUSE_LEFT); - } - } - // else the mouse button is not pressed: - else { - // if the mouse is pressed, release it: - if (Mouse.isPressed(MOUSE_LEFT)) { - Mouse.release(MOUSE_LEFT); - } - } - - delay(responseDelay); -} - -/* - reads an axis (0 or 1 for x or y) and scales the - analog input range to a range from 0 to - */ - -int readAxis(int thisAxis) { - // read the analog input: - int reading = analogRead(thisAxis); - - // map the reading from the analog input range to the output range: - reading = map(reading, 0, 1023, 0, range); - - // if the output reading is outside from the - // rest position threshold, use it: - int distance = reading - center; - - if (abs(distance) < threshold) { - distance = 0; - } - - // return the distance for this axis: - return distance; -} - - - diff --git a/build/linux/work/examples/ArduinoISP/ArduinoISP.ino b/build/linux/work/examples/ArduinoISP/ArduinoISP.ino deleted file mode 100644 index 9ed0bc7df..000000000 --- a/build/linux/work/examples/ArduinoISP/ArduinoISP.ino +++ /dev/null @@ -1,554 +0,0 @@ -// ArduinoISP version 04m3 -// Copyright (c) 2008-2011 Randall Bohn -// If you require a license, see -// http://www.opensource.org/licenses/bsd-license.php -// -// This sketch turns the Arduino into a AVRISP -// using the following arduino pins: -// -// pin name: not-mega: mega(1280 and 2560) -// slave reset: 10: 53 -// MOSI: 11: 51 -// MISO: 12: 50 -// SCK: 13: 52 -// -// Put an LED (with resistor) on the following pins: -// 9: Heartbeat - shows the programmer is running -// 8: Error - Lights up if something goes wrong (use red if that makes sense) -// 7: Programming - In communication with the slave -// -// 23 July 2011 Randall Bohn -// -Address Arduino issue 509 :: Portability of ArduinoISP -// http://code.google.com/p/arduino/issues/detail?id=509 -// -// October 2010 by Randall Bohn -// - Write to EEPROM > 256 bytes -// - Better use of LEDs: -// -- Flash LED_PMODE on each flash commit -// -- Flash LED_PMODE while writing EEPROM (both give visual feedback of writing progress) -// - Light LED_ERR whenever we hit a STK_NOSYNC. Turn it off when back in sync. -// - Use pins_arduino.h (should also work on Arduino Mega) -// -// October 2009 by David A. Mellis -// - Added support for the read signature command -// -// February 2009 by Randall Bohn -// - Added support for writing to EEPROM (what took so long?) -// Windows users should consider WinAVR's avrdude instead of the -// avrdude included with Arduino software. -// -// January 2008 by Randall Bohn -// - Thanks to Amplificar for helping me with the STK500 protocol -// - The AVRISP/STK500 (mk I) protocol is used in the arduino bootloader -// - The SPI functions herein were developed for the AVR910_ARD programmer -// - More information at http://code.google.com/p/mega-isp - -#include "pins_arduino.h" -#define RESET SS - -#define LED_HB 9 -#define LED_ERR 8 -#define LED_PMODE 7 -#define PROG_FLICKER true - -#define HWVER 2 -#define SWMAJ 1 -#define SWMIN 18 - -// STK Definitions -#define STK_OK 0x10 -#define STK_FAILED 0x11 -#define STK_UNKNOWN 0x12 -#define STK_INSYNC 0x14 -#define STK_NOSYNC 0x15 -#define CRC_EOP 0x20 //ok it is a space... - -void pulse(int pin, int times); - -void setup() { - Serial.begin(19200); - pinMode(LED_PMODE, OUTPUT); - pulse(LED_PMODE, 2); - pinMode(LED_ERR, OUTPUT); - pulse(LED_ERR, 2); - pinMode(LED_HB, OUTPUT); - pulse(LED_HB, 2); -} - -int error=0; -int pmode=0; -// address for reading and writing, set by 'U' command -int here; -uint8_t buff[256]; // global block storage - -#define beget16(addr) (*addr * 256 + *(addr+1) ) -typedef struct param { - uint8_t devicecode; - uint8_t revision; - uint8_t progtype; - uint8_t parmode; - uint8_t polling; - uint8_t selftimed; - uint8_t lockbytes; - uint8_t fusebytes; - int flashpoll; - int eeprompoll; - int pagesize; - int eepromsize; - int flashsize; -} -parameter; - -parameter param; - -// this provides a heartbeat on pin 9, so you can tell the software is running. -uint8_t hbval=128; -int8_t hbdelta=8; -void heartbeat() { - if (hbval > 192) hbdelta = -hbdelta; - if (hbval < 32) hbdelta = -hbdelta; - hbval += hbdelta; - analogWrite(LED_HB, hbval); - delay(20); -} - - -void loop(void) { - // is pmode active? - if (pmode) digitalWrite(LED_PMODE, HIGH); - else digitalWrite(LED_PMODE, LOW); - // is there an error? - if (error) digitalWrite(LED_ERR, HIGH); - else digitalWrite(LED_ERR, LOW); - - // light the heartbeat LED - heartbeat(); - if (Serial.available()) { - avrisp(); - } -} - -uint8_t getch() { - while(!Serial.available()); - return Serial.read(); -} -void fill(int n) { - for (int x = 0; x < n; x++) { - buff[x] = getch(); - } -} - -#define PTIME 30 -void pulse(int pin, int times) { - do { - digitalWrite(pin, HIGH); - delay(PTIME); - digitalWrite(pin, LOW); - delay(PTIME); - } - while (times--); -} - -void prog_lamp(int state) { - if (PROG_FLICKER) - digitalWrite(LED_PMODE, state); -} - -void spi_init() { - uint8_t x; - SPCR = 0x53; - x=SPSR; - x=SPDR; -} - -void spi_wait() { - do { - } - while (!(SPSR & (1 << SPIF))); -} - -uint8_t spi_send(uint8_t b) { - uint8_t reply; - SPDR=b; - spi_wait(); - reply = SPDR; - return reply; -} - -uint8_t spi_transaction(uint8_t a, uint8_t b, uint8_t c, uint8_t d) { - uint8_t n; - spi_send(a); - n=spi_send(b); - //if (n != a) error = -1; - n=spi_send(c); - return spi_send(d); -} - -void empty_reply() { - if (CRC_EOP == getch()) { - Serial.print((char)STK_INSYNC); - Serial.print((char)STK_OK); - } - else { - error++; - Serial.print((char)STK_NOSYNC); - } -} - -void breply(uint8_t b) { - if (CRC_EOP == getch()) { - Serial.print((char)STK_INSYNC); - Serial.print((char)b); - Serial.print((char)STK_OK); - } - else { - error++; - Serial.print((char)STK_NOSYNC); - } -} - -void get_version(uint8_t c) { - switch(c) { - case 0x80: - breply(HWVER); - break; - case 0x81: - breply(SWMAJ); - break; - case 0x82: - breply(SWMIN); - break; - case 0x93: - breply('S'); // serial programmer - break; - default: - breply(0); - } -} - -void set_parameters() { - // call this after reading paramter packet into buff[] - param.devicecode = buff[0]; - param.revision = buff[1]; - param.progtype = buff[2]; - param.parmode = buff[3]; - param.polling = buff[4]; - param.selftimed = buff[5]; - param.lockbytes = buff[6]; - param.fusebytes = buff[7]; - param.flashpoll = buff[8]; - // ignore buff[9] (= buff[8]) - // following are 16 bits (big endian) - param.eeprompoll = beget16(&buff[10]); - param.pagesize = beget16(&buff[12]); - param.eepromsize = beget16(&buff[14]); - - // 32 bits flashsize (big endian) - param.flashsize = buff[16] * 0x01000000 - + buff[17] * 0x00010000 - + buff[18] * 0x00000100 - + buff[19]; - -} - -void start_pmode() { - spi_init(); - // following delays may not work on all targets... - pinMode(RESET, OUTPUT); - digitalWrite(RESET, HIGH); - pinMode(SCK, OUTPUT); - digitalWrite(SCK, LOW); - delay(50); - digitalWrite(RESET, LOW); - delay(50); - pinMode(MISO, INPUT); - pinMode(MOSI, OUTPUT); - spi_transaction(0xAC, 0x53, 0x00, 0x00); - pmode = 1; -} - -void end_pmode() { - pinMode(MISO, INPUT); - pinMode(MOSI, INPUT); - pinMode(SCK, INPUT); - pinMode(RESET, INPUT); - pmode = 0; -} - -void universal() { - int w; - uint8_t ch; - - fill(4); - ch = spi_transaction(buff[0], buff[1], buff[2], buff[3]); - breply(ch); -} - -void flash(uint8_t hilo, int addr, uint8_t data) { - spi_transaction(0x40+8*hilo, - addr>>8 & 0xFF, - addr & 0xFF, - data); -} -void commit(int addr) { - if (PROG_FLICKER) prog_lamp(LOW); - spi_transaction(0x4C, (addr >> 8) & 0xFF, addr & 0xFF, 0); - if (PROG_FLICKER) { - delay(PTIME); - prog_lamp(HIGH); - } -} - -//#define _current_page(x) (here & 0xFFFFE0) -int current_page(int addr) { - if (param.pagesize == 32) return here & 0xFFFFFFF0; - if (param.pagesize == 64) return here & 0xFFFFFFE0; - if (param.pagesize == 128) return here & 0xFFFFFFC0; - if (param.pagesize == 256) return here & 0xFFFFFF80; - return here; -} - - -void write_flash(int length) { - fill(length); - if (CRC_EOP == getch()) { - Serial.print((char) STK_INSYNC); - Serial.print((char) write_flash_pages(length)); - } - else { - error++; - Serial.print((char) STK_NOSYNC); - } -} - -uint8_t write_flash_pages(int length) { - int x = 0; - int page = current_page(here); - while (x < length) { - if (page != current_page(here)) { - commit(page); - page = current_page(here); - } - flash(LOW, here, buff[x++]); - flash(HIGH, here, buff[x++]); - here++; - } - - commit(page); - - return STK_OK; -} - -#define EECHUNK (32) -uint8_t write_eeprom(int length) { - // here is a word address, get the byte address - int start = here * 2; - int remaining = length; - if (length > param.eepromsize) { - error++; - return STK_FAILED; - } - while (remaining > EECHUNK) { - write_eeprom_chunk(start, EECHUNK); - start += EECHUNK; - remaining -= EECHUNK; - } - write_eeprom_chunk(start, remaining); - return STK_OK; -} -// write (length) bytes, (start) is a byte address -uint8_t write_eeprom_chunk(int start, int length) { - // this writes byte-by-byte, - // page writing may be faster (4 bytes at a time) - fill(length); - prog_lamp(LOW); - for (int x = 0; x < length; x++) { - int addr = start+x; - spi_transaction(0xC0, (addr>>8) & 0xFF, addr & 0xFF, buff[x]); - delay(45); - } - prog_lamp(HIGH); - return STK_OK; -} - -void program_page() { - char result = (char) STK_FAILED; - int length = 256 * getch(); - length += getch(); - char memtype = getch(); - // flash memory @here, (length) bytes - if (memtype == 'F') { - write_flash(length); - return; - } - if (memtype == 'E') { - result = (char)write_eeprom(length); - if (CRC_EOP == getch()) { - Serial.print((char) STK_INSYNC); - Serial.print(result); - } - else { - error++; - Serial.print((char) STK_NOSYNC); - } - return; - } - Serial.print((char)STK_FAILED); - return; -} - -uint8_t flash_read(uint8_t hilo, int addr) { - return spi_transaction(0x20 + hilo * 8, - (addr >> 8) & 0xFF, - addr & 0xFF, - 0); -} - -char flash_read_page(int length) { - for (int x = 0; x < length; x+=2) { - uint8_t low = flash_read(LOW, here); - Serial.print((char) low); - uint8_t high = flash_read(HIGH, here); - Serial.print((char) high); - here++; - } - return STK_OK; -} - -char eeprom_read_page(int length) { - // here again we have a word address - int start = here * 2; - for (int x = 0; x < length; x++) { - int addr = start + x; - uint8_t ee = spi_transaction(0xA0, (addr >> 8) & 0xFF, addr & 0xFF, 0xFF); - Serial.print((char) ee); - } - return STK_OK; -} - -void read_page() { - char result = (char)STK_FAILED; - int length = 256 * getch(); - length += getch(); - char memtype = getch(); - if (CRC_EOP != getch()) { - error++; - Serial.print((char) STK_NOSYNC); - return; - } - Serial.print((char) STK_INSYNC); - if (memtype == 'F') result = flash_read_page(length); - if (memtype == 'E') result = eeprom_read_page(length); - Serial.print(result); - return; -} - -void read_signature() { - if (CRC_EOP != getch()) { - error++; - Serial.print((char) STK_NOSYNC); - return; - } - Serial.print((char) STK_INSYNC); - uint8_t high = spi_transaction(0x30, 0x00, 0x00, 0x00); - Serial.print((char) high); - uint8_t middle = spi_transaction(0x30, 0x00, 0x01, 0x00); - Serial.print((char) middle); - uint8_t low = spi_transaction(0x30, 0x00, 0x02, 0x00); - Serial.print((char) low); - Serial.print((char) STK_OK); -} -////////////////////////////////////////// -////////////////////////////////////////// - - -//////////////////////////////////// -//////////////////////////////////// -int avrisp() { - uint8_t data, low, high; - uint8_t ch = getch(); - switch (ch) { - case '0': // signon - error = 0; - empty_reply(); - break; - case '1': - if (getch() == CRC_EOP) { - Serial.print((char) STK_INSYNC); - Serial.print("AVR ISP"); - Serial.print((char) STK_OK); - } - break; - case 'A': - get_version(getch()); - break; - case 'B': - fill(20); - set_parameters(); - empty_reply(); - break; - case 'E': // extended parameters - ignore for now - fill(5); - empty_reply(); - break; - - case 'P': - start_pmode(); - empty_reply(); - break; - case 'U': // set address (word) - here = getch(); - here += 256 * getch(); - empty_reply(); - break; - - case 0x60: //STK_PROG_FLASH - low = getch(); - high = getch(); - empty_reply(); - break; - case 0x61: //STK_PROG_DATA - data = getch(); - empty_reply(); - break; - - case 0x64: //STK_PROG_PAGE - program_page(); - break; - - case 0x74: //STK_READ_PAGE 't' - read_page(); - break; - - case 'V': //0x56 - universal(); - break; - case 'Q': //0x51 - error=0; - end_pmode(); - empty_reply(); - break; - - case 0x75: //STK_READ_SIGN 'u' - read_signature(); - break; - - // expecting a command, not CRC_EOP - // this is how we can get back in sync - case CRC_EOP: - error++; - Serial.print((char) STK_NOSYNC); - break; - - // anything else we will return STK_UNKNOWN - default: - error++; - if (CRC_EOP == getch()) - Serial.print((char)STK_UNKNOWN); - else - Serial.print((char)STK_NOSYNC); - } -} - - - diff --git a/build/linux/work/hardware/arduino/boards.txt b/build/linux/work/hardware/arduino/boards.txt deleted file mode 100644 index 710ae275d..000000000 --- a/build/linux/work/hardware/arduino/boards.txt +++ /dev/null @@ -1,477 +0,0 @@ -# See: http://code.google.com/p/arduino/wiki/Platforms - -############################################################## - -uno.name=Arduino Uno -uno.upload.protocol=arduino -uno.upload.maximum_size=32256 -uno.upload.speed=115200 -uno.bootloader.low_fuses=0xff -uno.bootloader.high_fuses=0xde -uno.bootloader.extended_fuses=0x05 -uno.bootloader.path=optiboot -uno.bootloader.file=optiboot_atmega328.hex -uno.bootloader.unlock_bits=0x3F -uno.bootloader.lock_bits=0x0F -uno.build.mcu=atmega328p -uno.build.f_cpu=16000000L -uno.build.core=arduino -uno.build.variant=standard - -############################################################## - -atmega328.name=Arduino Duemilanove w/ ATmega328 - -atmega328.upload.protocol=arduino -atmega328.upload.maximum_size=30720 -atmega328.upload.speed=57600 - -atmega328.bootloader.low_fuses=0xFF -atmega328.bootloader.high_fuses=0xDA -atmega328.bootloader.extended_fuses=0x05 -atmega328.bootloader.path=atmega -atmega328.bootloader.file=ATmegaBOOT_168_atmega328.hex -atmega328.bootloader.unlock_bits=0x3F -atmega328.bootloader.lock_bits=0x0F - -atmega328.build.mcu=atmega328p -atmega328.build.f_cpu=16000000L -atmega328.build.core=arduino -atmega328.build.variant=standard - -############################################################## - -diecimila.name=Arduino Diecimila or Duemilanove w/ ATmega168 - -diecimila.upload.protocol=arduino -diecimila.upload.maximum_size=14336 -diecimila.upload.speed=19200 - -diecimila.bootloader.low_fuses=0xff -diecimila.bootloader.high_fuses=0xdd -diecimila.bootloader.extended_fuses=0x00 -diecimila.bootloader.path=atmega -diecimila.bootloader.file=ATmegaBOOT_168_diecimila.hex -diecimila.bootloader.unlock_bits=0x3F -diecimila.bootloader.lock_bits=0x0F - -diecimila.build.mcu=atmega168 -diecimila.build.f_cpu=16000000L -diecimila.build.core=arduino -diecimila.build.variant=standard - -############################################################## - -nano328.name=Arduino Nano w/ ATmega328 - -nano328.upload.protocol=arduino -nano328.upload.maximum_size=30720 -nano328.upload.speed=57600 - -nano328.bootloader.low_fuses=0xFF -nano328.bootloader.high_fuses=0xDA -nano328.bootloader.extended_fuses=0x05 -nano328.bootloader.path=atmega -nano328.bootloader.file=ATmegaBOOT_168_atmega328.hex -nano328.bootloader.unlock_bits=0x3F -nano328.bootloader.lock_bits=0x0F - -nano328.build.mcu=atmega328p -nano328.build.f_cpu=16000000L -nano328.build.core=arduino -nano328.build.variant=eightanaloginputs - -############################################################## - -nano.name=Arduino Nano w/ ATmega168 - -nano.upload.protocol=arduino -nano.upload.maximum_size=14336 -nano.upload.speed=19200 - -nano.bootloader.low_fuses=0xff -nano.bootloader.high_fuses=0xdd -nano.bootloader.extended_fuses=0x00 -nano.bootloader.path=atmega -nano.bootloader.file=ATmegaBOOT_168_diecimila.hex -nano.bootloader.unlock_bits=0x3F -nano.bootloader.lock_bits=0x0F - -nano.build.mcu=atmega168 -nano.build.f_cpu=16000000L -nano.build.core=arduino -nano.build.variant=eightanaloginputs - -############################################################## - -mega2560.name=Arduino Mega 2560 or Mega ADK - -mega2560.upload.protocol=stk500v2 -mega2560.upload.maximum_size=258048 -mega2560.upload.speed=115200 - -mega2560.bootloader.low_fuses=0xFF -mega2560.bootloader.high_fuses=0xD8 -mega2560.bootloader.extended_fuses=0xFD -mega2560.bootloader.path=stk500v2 -mega2560.bootloader.file=stk500boot_v2_mega2560.hex -mega2560.bootloader.unlock_bits=0x3F -mega2560.bootloader.lock_bits=0x0F - -mega2560.build.mcu=atmega2560 -mega2560.build.f_cpu=16000000L -mega2560.build.core=arduino -mega2560.build.variant=mega - -############################################################## - -mega.name=Arduino Mega (ATmega1280) - -mega.upload.protocol=arduino -mega.upload.maximum_size=126976 -mega.upload.speed=57600 - -mega.bootloader.low_fuses=0xFF -mega.bootloader.high_fuses=0xDA -mega.bootloader.extended_fuses=0xF5 -mega.bootloader.path=atmega -mega.bootloader.file=ATmegaBOOT_168_atmega1280.hex -mega.bootloader.unlock_bits=0x3F -mega.bootloader.lock_bits=0x0F - -mega.build.mcu=atmega1280 -mega.build.f_cpu=16000000L -mega.build.core=arduino -mega.build.variant=mega - -############################################################## - -leonardo.name=Arduino Leonardo -leonardo.upload.protocol=avr109 -leonardo.upload.maximum_size=28672 -leonardo.upload.speed=57600 -leonardo.upload.disable_flushing=true -leonardo.bootloader.low_fuses=0xff -leonardo.bootloader.high_fuses=0xd8 -leonardo.bootloader.extended_fuses=0xcb -leonardo.bootloader.path=caterina -leonardo.bootloader.file=Caterina.hex -leonardo.bootloader.unlock_bits=0x3F -leonardo.bootloader.lock_bits=0x2F -leonardo.build.mcu=atmega32u4 -leonardo.build.f_cpu=16000000L -leonardo.build.core=arduino -leonardo.build.variant=leonardo - -############################################################## - -#micro.name=Arduino Micro -#micro.upload.protocol=arduino -#micro.upload.maximum_size=30720 -#micro.upload.speed=1200 -#micro.bootloader.low_fuses=0xde -#micro.bootloader.high_fuses=0xda -#micro.bootloader.extended_fuses=0xcb -#micro.bootloader.path=caterina -#micro.bootloader.file=Caterina-Micro.hex -#micro.bootloader.unlock_bits=0x3F -#micro.bootloader.lock_bits=0x2F -#micro.build.mcu=atmega32u4 -#micro.build.f_cpu=16000000L -#micro.build.core=arduino -#micro.build.variant=micro - -############################################################## - -mini328.name=Arduino Mini w/ ATmega328 - -mini328.upload.protocol=arduino -mini328.upload.maximum_size=28672 -mini328.upload.speed=115200 - -mini328.bootloader.low_fuses=0xff -mini328.bootloader.high_fuses=0xd8 -mini328.bootloader.extended_fuses=0x05 -mini328.bootloader.path=optiboot -mini328.bootloader.file=optiboot_atmega328-Mini.hex -mini328.bootloader.unlock_bits=0x3F -mini328.bootloader.lock_bits=0x0F - -mini328.build.mcu=atmega328p -mini328.build.f_cpu=16000000L -mini328.build.core=arduino -mini328.build.variant=eightanaloginputs - -############################################################## - -mini.name=Arduino Mini w/ ATmega168 - -mini.upload.protocol=arduino -mini.upload.maximum_size=14336 -mini.upload.speed=19200 - -mini.bootloader.low_fuses=0xff -mini.bootloader.high_fuses=0xdd -mini.bootloader.extended_fuses=0x00 -mini.bootloader.path=atmega -mini.bootloader.file=ATmegaBOOT_168_ng.hex -mini.bootloader.unlock_bits=0x3F -mini.bootloader.lock_bits=0x0F - -mini.build.mcu=atmega168 -mini.build.f_cpu=16000000L -mini.build.core=arduino -mini.build.variant=eightanaloginputs - -############################################################## - -ethernet.name=Arduino Ethernet - -ethernet.upload.protocol=arduino -ethernet.upload.maximum_size=32256 -ethernet.upload.speed=115200 - -ethernet.bootloader.low_fuses=0xff -ethernet.bootloader.high_fuses=0xde -ethernet.bootloader.extended_fuses=0x05 -ethernet.bootloader.path=optiboot -ethernet.bootloader.file=optiboot_atmega328.hex -ethernet.bootloader.unlock_bits=0x3F -ethernet.bootloader.lock_bits=0x0F - -ethernet.build.variant=standard -ethernet.build.mcu=atmega328p -ethernet.build.f_cpu=16000000L -ethernet.build.core=arduino - -############################################################## - -fio.name=Arduino Fio - -fio.upload.protocol=arduino -fio.upload.maximum_size=30720 -fio.upload.speed=57600 - -fio.bootloader.low_fuses=0xFF -fio.bootloader.high_fuses=0xDA -fio.bootloader.extended_fuses=0x05 -fio.bootloader.path=arduino:atmega -fio.bootloader.file=ATmegaBOOT_168_atmega328_pro_8MHz.hex -fio.bootloader.unlock_bits=0x3F -fio.bootloader.lock_bits=0x0F - -fio.build.mcu=atmega328p -fio.build.f_cpu=8000000L -fio.build.core=arduino -fio.build.variant=eightanaloginputs - -############################################################## - -bt328.name=Arduino BT w/ ATmega328 - -bt328.upload.protocol=arduino -bt328.upload.maximum_size=28672 -bt328.upload.speed=19200 -bt328.upload.disable_flushing=true - -bt328.bootloader.low_fuses=0xff -bt328.bootloader.high_fuses=0xd8 -bt328.bootloader.extended_fuses=0x05 -bt328.bootloader.path=bt -bt328.bootloader.file=ATmegaBOOT_168_atmega328_bt.hex -bt328.bootloader.unlock_bits=0x3F -bt328.bootloader.lock_bits=0x0F - -bt328.build.mcu=atmega328p -bt328.build.f_cpu=16000000L -bt328.build.core=arduino -bt328.build.variant=eightanaloginputs - -############################################################## - -bt.name=Arduino BT w/ ATmega168 - -bt.upload.protocol=arduino -bt.upload.maximum_size=14336 -bt.upload.speed=19200 -bt.upload.disable_flushing=true - -bt.bootloader.low_fuses=0xff -bt.bootloader.high_fuses=0xdd -bt.bootloader.extended_fuses=0x00 -bt.bootloader.path=bt -bt.bootloader.file=ATmegaBOOT_168.hex -bt.bootloader.unlock_bits=0x3F -bt.bootloader.lock_bits=0x0F - -bt.build.mcu=atmega168 -bt.build.f_cpu=16000000L -bt.build.core=arduino -bt.build.variant=eightanaloginputs - -############################################################## - -lilypad328.name=LilyPad Arduino w/ ATmega328 - -lilypad328.upload.protocol=arduino -lilypad328.upload.maximum_size=30720 -lilypad328.upload.speed=57600 - -lilypad328.bootloader.low_fuses=0xFF -lilypad328.bootloader.high_fuses=0xDA -lilypad328.bootloader.extended_fuses=0x05 -lilypad328.bootloader.path=atmega -lilypad328.bootloader.file=ATmegaBOOT_168_atmega328_pro_8MHz.hex -lilypad328.bootloader.unlock_bits=0x3F -lilypad328.bootloader.lock_bits=0x0F - -lilypad328.build.mcu=atmega328p -lilypad328.build.f_cpu=8000000L -lilypad328.build.core=arduino -lilypad328.build.variant=standard - -############################################################## - -lilypad.name=LilyPad Arduino w/ ATmega168 - -lilypad.upload.protocol=arduino -lilypad.upload.maximum_size=14336 -lilypad.upload.speed=19200 - -lilypad.bootloader.low_fuses=0xe2 -lilypad.bootloader.high_fuses=0xdd -lilypad.bootloader.extended_fuses=0x00 -lilypad.bootloader.path=lilypad -lilypad.bootloader.file=LilyPadBOOT_168.hex -lilypad.bootloader.unlock_bits=0x3F -lilypad.bootloader.lock_bits=0x0F - -lilypad.build.mcu=atmega168 -lilypad.build.f_cpu=8000000L -lilypad.build.core=arduino -lilypad.build.variant=standard - -############################################################## - -pro5v328.name=Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega328 - -pro5v328.upload.protocol=arduino -pro5v328.upload.maximum_size=30720 -pro5v328.upload.speed=57600 - -pro5v328.bootloader.low_fuses=0xFF -pro5v328.bootloader.high_fuses=0xDA -pro5v328.bootloader.extended_fuses=0x05 -pro5v328.bootloader.path=atmega -pro5v328.bootloader.file=ATmegaBOOT_168_atmega328.hex -pro5v328.bootloader.unlock_bits=0x3F -pro5v328.bootloader.lock_bits=0x0F - -pro5v328.build.mcu=atmega328p -pro5v328.build.f_cpu=16000000L -pro5v328.build.core=arduino -pro5v328.build.variant=standard - -############################################################## - -pro5v.name=Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega168 - -pro5v.upload.protocol=arduino -pro5v.upload.maximum_size=14336 -pro5v.upload.speed=19200 - -pro5v.bootloader.low_fuses=0xff -pro5v.bootloader.high_fuses=0xdd -pro5v.bootloader.extended_fuses=0x00 -pro5v.bootloader.path=atmega -pro5v.bootloader.file=ATmegaBOOT_168_diecimila.hex -pro5v.bootloader.unlock_bits=0x3F -pro5v.bootloader.lock_bits=0x0F - -pro5v.build.mcu=atmega168 -pro5v.build.f_cpu=16000000L -pro5v.build.core=arduino -pro5v.build.variant=standard - -############################################################## - -pro328.name=Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega328 - -pro328.upload.protocol=arduino -pro328.upload.maximum_size=30720 -pro328.upload.speed=57600 - -pro328.bootloader.low_fuses=0xFF -pro328.bootloader.high_fuses=0xDA -pro328.bootloader.extended_fuses=0x05 -pro328.bootloader.path=atmega -pro328.bootloader.file=ATmegaBOOT_168_atmega328_pro_8MHz.hex -pro328.bootloader.unlock_bits=0x3F -pro328.bootloader.lock_bits=0x0F - -pro328.build.mcu=atmega328p -pro328.build.f_cpu=8000000L -pro328.build.core=arduino -pro328.build.variant=standard - -############################################################## - -pro.name=Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega168 - -pro.upload.protocol=arduino -pro.upload.maximum_size=14336 -pro.upload.speed=19200 - -pro.bootloader.low_fuses=0xc6 -pro.bootloader.high_fuses=0xdd -pro.bootloader.extended_fuses=0x00 -pro.bootloader.path=atmega -pro.bootloader.file=ATmegaBOOT_168_pro_8MHz.hex -pro.bootloader.unlock_bits=0x3F -pro.bootloader.lock_bits=0x0F - -pro.build.mcu=atmega168 -pro.build.f_cpu=8000000L -pro.build.core=arduino -pro.build.variant=standard - -############################################################## - -atmega168.name=Arduino NG or older w/ ATmega168 - -atmega168.upload.protocol=arduino -atmega168.upload.maximum_size=14336 -atmega168.upload.speed=19200 - -atmega168.bootloader.low_fuses=0xff -atmega168.bootloader.high_fuses=0xdd -atmega168.bootloader.extended_fuses=0x00 -atmega168.bootloader.path=atmega -atmega168.bootloader.file=ATmegaBOOT_168_ng.hex -atmega168.bootloader.unlock_bits=0x3F -atmega168.bootloader.lock_bits=0x0F - -atmega168.build.mcu=atmega168 -atmega168.build.f_cpu=16000000L -atmega168.build.core=arduino -atmega168.build.variant=standard - -############################################################## - -atmega8.name=Arduino NG or older w/ ATmega8 - -atmega8.upload.protocol=arduino -atmega8.upload.maximum_size=7168 -atmega8.upload.speed=19200 - -atmega8.bootloader.low_fuses=0xdf -atmega8.bootloader.high_fuses=0xca -atmega8.bootloader.path=atmega8 -atmega8.bootloader.file=ATmegaBOOT.hex -atmega8.bootloader.unlock_bits=0x3F -atmega8.bootloader.lock_bits=0x0F - -atmega8.build.mcu=atmega8 -atmega8.build.f_cpu=16000000L -atmega8.build.core=arduino -atmega8.build.variant=standard diff --git a/build/linux/work/hardware/arduino/bootloaders/atmega/ATmegaBOOT_168.c b/build/linux/work/hardware/arduino/bootloaders/atmega/ATmegaBOOT_168.c deleted file mode 100644 index 2b9fefa26..000000000 --- a/build/linux/work/hardware/arduino/bootloaders/atmega/ATmegaBOOT_168.c +++ /dev/null @@ -1,1054 +0,0 @@ -/**********************************************************/ -/* Serial Bootloader for Atmel megaAVR Controllers */ -/* */ -/* tested with ATmega8, ATmega128 and ATmega168 */ -/* should work with other mega's, see code for details */ -/* */ -/* ATmegaBOOT.c */ -/* */ -/* */ -/* 20090308: integrated Mega changes into main bootloader */ -/* source by D. Mellis */ -/* 20080930: hacked for Arduino Mega (with the 1280 */ -/* processor, backwards compatible) */ -/* by D. Cuartielles */ -/* 20070626: hacked for Arduino Diecimila (which auto- */ -/* resets when a USB connection is made to it) */ -/* by D. Mellis */ -/* 20060802: hacked for Arduino by D. Cuartielles */ -/* based on a previous hack by D. Mellis */ -/* and D. Cuartielles */ -/* */ -/* Monitor and debug functions were added to the original */ -/* code by Dr. Erik Lins, chip45.com. (See below) */ -/* */ -/* Thanks to Karl Pitrich for fixing a bootloader pin */ -/* problem and more informative LED blinking! */ -/* */ -/* For the latest version see: */ -/* http://www.chip45.com/ */ -/* */ -/* ------------------------------------------------------ */ -/* */ -/* based on stk500boot.c */ -/* Copyright (c) 2003, Jason P. Kyle */ -/* All rights reserved. */ -/* see avr1.org for original file and information */ -/* */ -/* 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 2 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, write */ -/* to the Free Software Foundation, Inc., */ -/* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -/* */ -/* Licence can be viewed at */ -/* http://www.fsf.org/licenses/gpl.txt */ -/* */ -/* Target = Atmel AVR m128,m64,m32,m16,m8,m162,m163,m169, */ -/* m8515,m8535. ATmega161 has a very small boot block so */ -/* isn't supported. */ -/* */ -/* Tested with m168 */ -/**********************************************************/ - -/* $Id$ */ - - -/* some includes */ -#include -#include -#include -#include -#include -#include - -/* the current avr-libc eeprom functions do not support the ATmega168 */ -/* own eeprom write/read functions are used instead */ -#if !defined(__AVR_ATmega168__) || !defined(__AVR_ATmega328P__) -#include -#endif - -/* Use the F_CPU defined in Makefile */ - -/* 20060803: hacked by DojoCorp */ -/* 20070626: hacked by David A. Mellis to decrease waiting time for auto-reset */ -/* set the waiting time for the bootloader */ -/* get this from the Makefile instead */ -/* #define MAX_TIME_COUNT (F_CPU>>4) */ - -/* 20070707: hacked by David A. Mellis - after this many errors give up and launch application */ -#define MAX_ERROR_COUNT 5 - -/* set the UART baud rate */ -/* 20060803: hacked by DojoCorp */ -//#define BAUD_RATE 115200 -#ifndef BAUD_RATE -#define BAUD_RATE 19200 -#endif - - -/* SW_MAJOR and MINOR needs to be updated from time to time to avoid warning message from AVR Studio */ -/* never allow AVR Studio to do an update !!!! */ -#define HW_VER 0x02 -#define SW_MAJOR 0x01 -#define SW_MINOR 0x10 - - -/* Adjust to suit whatever pin your hardware uses to enter the bootloader */ -/* ATmega128 has two UARTS so two pins are used to enter bootloader and select UART */ -/* ATmega1280 has four UARTS, but for Arduino Mega, we will only use RXD0 to get code */ -/* BL0... means UART0, BL1... means UART1 */ -#ifdef __AVR_ATmega128__ -#define BL_DDR DDRF -#define BL_PORT PORTF -#define BL_PIN PINF -#define BL0 PINF7 -#define BL1 PINF6 -#elif defined __AVR_ATmega1280__ -/* we just don't do anything for the MEGA and enter bootloader on reset anyway*/ -#else -/* other ATmegas have only one UART, so only one pin is defined to enter bootloader */ -#define BL_DDR DDRD -#define BL_PORT PORTD -#define BL_PIN PIND -#define BL PIND6 -#endif - - -/* onboard LED is used to indicate, that the bootloader was entered (3x flashing) */ -/* if monitor functions are included, LED goes on after monitor was entered */ -#if defined __AVR_ATmega128__ || defined __AVR_ATmega1280__ -/* Onboard LED is connected to pin PB7 (e.g. Crumb128, PROBOmega128, Savvy128, Arduino Mega) */ -#define LED_DDR DDRB -#define LED_PORT PORTB -#define LED_PIN PINB -#define LED PINB7 -#else -/* Onboard LED is connected to pin PB5 in Arduino NG, Diecimila, and Duomilanuove */ -/* other boards like e.g. Crumb8, Crumb168 are using PB2 */ -#define LED_DDR DDRB -#define LED_PORT PORTB -#define LED_PIN PINB -#define LED PINB5 -#endif - - -/* monitor functions will only be compiled when using ATmega128, due to bootblock size constraints */ -#if defined(__AVR_ATmega128__) || defined(__AVR_ATmega1280__) -#define MONITOR 1 -#endif - - -/* define various device id's */ -/* manufacturer byte is always the same */ -#define SIG1 0x1E // Yep, Atmel is the only manufacturer of AVR micros. Single source :( - -#if defined __AVR_ATmega1280__ -#define SIG2 0x97 -#define SIG3 0x03 -#define PAGE_SIZE 0x80U //128 words - -#elif defined __AVR_ATmega1281__ -#define SIG2 0x97 -#define SIG3 0x04 -#define PAGE_SIZE 0x80U //128 words - -#elif defined __AVR_ATmega128__ -#define SIG2 0x97 -#define SIG3 0x02 -#define PAGE_SIZE 0x80U //128 words - -#elif defined __AVR_ATmega64__ -#define SIG2 0x96 -#define SIG3 0x02 -#define PAGE_SIZE 0x80U //128 words - -#elif defined __AVR_ATmega32__ -#define SIG2 0x95 -#define SIG3 0x02 -#define PAGE_SIZE 0x40U //64 words - -#elif defined __AVR_ATmega16__ -#define SIG2 0x94 -#define SIG3 0x03 -#define PAGE_SIZE 0x40U //64 words - -#elif defined __AVR_ATmega8__ -#define SIG2 0x93 -#define SIG3 0x07 -#define PAGE_SIZE 0x20U //32 words - -#elif defined __AVR_ATmega88__ -#define SIG2 0x93 -#define SIG3 0x0a -#define PAGE_SIZE 0x20U //32 words - -#elif defined __AVR_ATmega168__ -#define SIG2 0x94 -#define SIG3 0x06 -#define PAGE_SIZE 0x40U //64 words - -#elif defined __AVR_ATmega328P__ -#define SIG2 0x95 -#define SIG3 0x0F -#define PAGE_SIZE 0x40U //64 words - -#elif defined __AVR_ATmega162__ -#define SIG2 0x94 -#define SIG3 0x04 -#define PAGE_SIZE 0x40U //64 words - -#elif defined __AVR_ATmega163__ -#define SIG2 0x94 -#define SIG3 0x02 -#define PAGE_SIZE 0x40U //64 words - -#elif defined __AVR_ATmega169__ -#define SIG2 0x94 -#define SIG3 0x05 -#define PAGE_SIZE 0x40U //64 words - -#elif defined __AVR_ATmega8515__ -#define SIG2 0x93 -#define SIG3 0x06 -#define PAGE_SIZE 0x20U //32 words - -#elif defined __AVR_ATmega8535__ -#define SIG2 0x93 -#define SIG3 0x08 -#define PAGE_SIZE 0x20U //32 words -#endif - - -/* function prototypes */ -void putch(char); -char getch(void); -void getNch(uint8_t); -void byte_response(uint8_t); -void nothing_response(void); -char gethex(void); -void puthex(char); -void flash_led(uint8_t); - -/* some variables */ -union address_union { - uint16_t word; - uint8_t byte[2]; -} address; - -union length_union { - uint16_t word; - uint8_t byte[2]; -} length; - -struct flags_struct { - unsigned eeprom : 1; - unsigned rampz : 1; -} flags; - -uint8_t buff[256]; -uint8_t address_high; - -uint8_t pagesz=0x80; - -uint8_t i; -uint8_t bootuart = 0; - -uint8_t error_count = 0; - -void (*app_start)(void) = 0x0000; - - -/* main program starts here */ -int main(void) -{ - uint8_t ch,ch2; - uint16_t w; - -#ifdef WATCHDOG_MODS - ch = MCUSR; - MCUSR = 0; - - WDTCSR |= _BV(WDCE) | _BV(WDE); - WDTCSR = 0; - - // Check if the WDT was used to reset, in which case we dont bootload and skip straight to the code. woot. - if (! (ch & _BV(EXTRF))) // if its a not an external reset... - app_start(); // skip bootloader -#else - asm volatile("nop\n\t"); -#endif - - /* set pin direction for bootloader pin and enable pullup */ - /* for ATmega128, two pins need to be initialized */ -#ifdef __AVR_ATmega128__ - BL_DDR &= ~_BV(BL0); - BL_DDR &= ~_BV(BL1); - BL_PORT |= _BV(BL0); - BL_PORT |= _BV(BL1); -#else - /* We run the bootloader regardless of the state of this pin. Thus, don't - put it in a different state than the other pins. --DAM, 070709 - This also applies to Arduino Mega -- DC, 080930 - BL_DDR &= ~_BV(BL); - BL_PORT |= _BV(BL); - */ -#endif - - -#ifdef __AVR_ATmega128__ - /* check which UART should be used for booting */ - if(bit_is_clear(BL_PIN, BL0)) { - bootuart = 1; - } - else if(bit_is_clear(BL_PIN, BL1)) { - bootuart = 2; - } -#endif - -#if defined __AVR_ATmega1280__ - /* the mega1280 chip has four serial ports ... we could eventually use any of them, or not? */ - /* however, we don't wanna confuse people, to avoid making a mess, we will stick to RXD0, TXD0 */ - bootuart = 1; -#endif - - /* check if flash is programmed already, if not start bootloader anyway */ - if(pgm_read_byte_near(0x0000) != 0xFF) { - -#ifdef __AVR_ATmega128__ - /* no UART was selected, start application */ - if(!bootuart) { - app_start(); - } -#else - /* check if bootloader pin is set low */ - /* we don't start this part neither for the m8, nor m168 */ - //if(bit_is_set(BL_PIN, BL)) { - // app_start(); - // } -#endif - } - -#ifdef __AVR_ATmega128__ - /* no bootuart was selected, default to uart 0 */ - if(!bootuart) { - bootuart = 1; - } -#endif - - - /* initialize UART(s) depending on CPU defined */ -#if defined(__AVR_ATmega128__) || defined(__AVR_ATmega1280__) - if(bootuart == 1) { - UBRR0L = (uint8_t)(F_CPU/(BAUD_RATE*16L)-1); - UBRR0H = (F_CPU/(BAUD_RATE*16L)-1) >> 8; - UCSR0A = 0x00; - UCSR0C = 0x06; - UCSR0B = _BV(TXEN0)|_BV(RXEN0); - } - if(bootuart == 2) { - UBRR1L = (uint8_t)(F_CPU/(BAUD_RATE*16L)-1); - UBRR1H = (F_CPU/(BAUD_RATE*16L)-1) >> 8; - UCSR1A = 0x00; - UCSR1C = 0x06; - UCSR1B = _BV(TXEN1)|_BV(RXEN1); - } -#elif defined __AVR_ATmega163__ - UBRR = (uint8_t)(F_CPU/(BAUD_RATE*16L)-1); - UBRRHI = (F_CPU/(BAUD_RATE*16L)-1) >> 8; - UCSRA = 0x00; - UCSRB = _BV(TXEN)|_BV(RXEN); -#elif defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) - -#ifdef DOUBLE_SPEED - UCSR0A = (1<> 8; -#else - UBRR0L = (uint8_t)(F_CPU/(BAUD_RATE*16L)-1); - UBRR0H = (F_CPU/(BAUD_RATE*16L)-1) >> 8; -#endif - - UCSR0B = (1<>8; // set baud rate - UBRRL = (((F_CPU/BAUD_RATE)/16)-1); - UCSRB = (1<> 8; - UCSRA = 0x00; - UCSRC = 0x06; - UCSRB = _BV(TXEN)|_BV(RXEN); -#endif - -#if defined __AVR_ATmega1280__ - /* Enable internal pull-up resistor on pin D0 (RX), in order - to supress line noise that prevents the bootloader from - timing out (DAM: 20070509) */ - /* feature added to the Arduino Mega --DC: 080930 */ - DDRE &= ~_BV(PINE0); - PORTE |= _BV(PINE0); -#endif - - - /* set LED pin as output */ - LED_DDR |= _BV(LED); - - - /* flash onboard LED to signal entering of bootloader */ -#if defined(__AVR_ATmega128__) || defined(__AVR_ATmega1280__) - // 4x for UART0, 5x for UART1 - flash_led(NUM_LED_FLASHES + bootuart); -#else - flash_led(NUM_LED_FLASHES); -#endif - - /* 20050803: by DojoCorp, this is one of the parts provoking the - system to stop listening, cancelled from the original */ - //putch('\0'); - - /* forever loop */ - for (;;) { - - /* get character from UART */ - ch = getch(); - - /* A bunch of if...else if... gives smaller code than switch...case ! */ - - /* Hello is anyone home ? */ - if(ch=='0') { - nothing_response(); - } - - - /* Request programmer ID */ - /* Not using PROGMEM string due to boot block in m128 being beyond 64kB boundry */ - /* Would need to selectively manipulate RAMPZ, and it's only 9 characters anyway so who cares. */ - else if(ch=='1') { - if (getch() == ' ') { - putch(0x14); - putch('A'); - putch('V'); - putch('R'); - putch(' '); - putch('I'); - putch('S'); - putch('P'); - putch(0x10); - } else { - if (++error_count == MAX_ERROR_COUNT) - app_start(); - } - } - - - /* AVR ISP/STK500 board commands DON'T CARE so default nothing_response */ - else if(ch=='@') { - ch2 = getch(); - if (ch2>0x85) getch(); - nothing_response(); - } - - - /* AVR ISP/STK500 board requests */ - else if(ch=='A') { - ch2 = getch(); - if(ch2==0x80) byte_response(HW_VER); // Hardware version - else if(ch2==0x81) byte_response(SW_MAJOR); // Software major version - else if(ch2==0x82) byte_response(SW_MINOR); // Software minor version - else if(ch2==0x98) byte_response(0x03); // Unknown but seems to be required by avr studio 3.56 - else byte_response(0x00); // Covers various unnecessary responses we don't care about - } - - - /* Device Parameters DON'T CARE, DEVICE IS FIXED */ - else if(ch=='B') { - getNch(20); - nothing_response(); - } - - - /* Parallel programming stuff DON'T CARE */ - else if(ch=='E') { - getNch(5); - nothing_response(); - } - - - /* P: Enter programming mode */ - /* R: Erase device, don't care as we will erase one page at a time anyway. */ - else if(ch=='P' || ch=='R') { - nothing_response(); - } - - - /* Leave programming mode */ - else if(ch=='Q') { - nothing_response(); -#ifdef WATCHDOG_MODS - // autoreset via watchdog (sneaky!) - WDTCSR = _BV(WDE); - while (1); // 16 ms -#endif - } - - - /* Set address, little endian. EEPROM in bytes, FLASH in words */ - /* Perhaps extra address bytes may be added in future to support > 128kB FLASH. */ - /* This might explain why little endian was used here, big endian used everywhere else. */ - else if(ch=='U') { - address.byte[0] = getch(); - address.byte[1] = getch(); - nothing_response(); - } - - - /* Universal SPI programming command, disabled. Would be used for fuses and lock bits. */ - else if(ch=='V') { - if (getch() == 0x30) { - getch(); - ch = getch(); - getch(); - if (ch == 0) { - byte_response(SIG1); - } else if (ch == 1) { - byte_response(SIG2); - } else { - byte_response(SIG3); - } - } else { - getNch(3); - byte_response(0x00); - } - } - - - /* Write memory, length is big endian and is in bytes */ - else if(ch=='d') { - length.byte[1] = getch(); - length.byte[0] = getch(); - flags.eeprom = 0; - if (getch() == 'E') flags.eeprom = 1; - for (w=0;w127) address_high = 0x01; //Only possible with m128, m256 will need 3rd address byte. FIXME - else address_high = 0x00; -#if defined(__AVR_ATmega128__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1281__) - RAMPZ = address_high; -#endif - address.word = address.word << 1; //address * 2 -> byte location - /* if ((length.byte[0] & 0x01) == 0x01) length.word++; //Even up an odd number of bytes */ - if ((length.byte[0] & 0x01)) length.word++; //Even up an odd number of bytes - cli(); //Disable interrupts, just to be sure -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1281__) - while(bit_is_set(EECR,EEPE)); //Wait for previous EEPROM writes to complete -#else - while(bit_is_set(EECR,EEWE)); //Wait for previous EEPROM writes to complete -#endif - asm volatile( - "clr r17 \n\t" //page_word_count - "lds r30,address \n\t" //Address of FLASH location (in bytes) - "lds r31,address+1 \n\t" - "ldi r28,lo8(buff) \n\t" //Start of buffer array in RAM - "ldi r29,hi8(buff) \n\t" - "lds r24,length \n\t" //Length of data to be written (in bytes) - "lds r25,length+1 \n\t" - "length_loop: \n\t" //Main loop, repeat for number of words in block - "cpi r17,0x00 \n\t" //If page_word_count=0 then erase page - "brne no_page_erase \n\t" - "wait_spm1: \n\t" - "lds r16,%0 \n\t" //Wait for previous spm to complete - "andi r16,1 \n\t" - "cpi r16,1 \n\t" - "breq wait_spm1 \n\t" - "ldi r16,0x03 \n\t" //Erase page pointed to by Z - "sts %0,r16 \n\t" - "spm \n\t" -#ifdef __AVR_ATmega163__ - ".word 0xFFFF \n\t" - "nop \n\t" -#endif - "wait_spm2: \n\t" - "lds r16,%0 \n\t" //Wait for previous spm to complete - "andi r16,1 \n\t" - "cpi r16,1 \n\t" - "breq wait_spm2 \n\t" - - "ldi r16,0x11 \n\t" //Re-enable RWW section - "sts %0,r16 \n\t" - "spm \n\t" -#ifdef __AVR_ATmega163__ - ".word 0xFFFF \n\t" - "nop \n\t" -#endif - "no_page_erase: \n\t" - "ld r0,Y+ \n\t" //Write 2 bytes into page buffer - "ld r1,Y+ \n\t" - - "wait_spm3: \n\t" - "lds r16,%0 \n\t" //Wait for previous spm to complete - "andi r16,1 \n\t" - "cpi r16,1 \n\t" - "breq wait_spm3 \n\t" - "ldi r16,0x01 \n\t" //Load r0,r1 into FLASH page buffer - "sts %0,r16 \n\t" - "spm \n\t" - - "inc r17 \n\t" //page_word_count++ - "cpi r17,%1 \n\t" - "brlo same_page \n\t" //Still same page in FLASH - "write_page: \n\t" - "clr r17 \n\t" //New page, write current one first - "wait_spm4: \n\t" - "lds r16,%0 \n\t" //Wait for previous spm to complete - "andi r16,1 \n\t" - "cpi r16,1 \n\t" - "breq wait_spm4 \n\t" -#ifdef __AVR_ATmega163__ - "andi r30,0x80 \n\t" // m163 requires Z6:Z1 to be zero during page write -#endif - "ldi r16,0x05 \n\t" //Write page pointed to by Z - "sts %0,r16 \n\t" - "spm \n\t" -#ifdef __AVR_ATmega163__ - ".word 0xFFFF \n\t" - "nop \n\t" - "ori r30,0x7E \n\t" // recover Z6:Z1 state after page write (had to be zero during write) -#endif - "wait_spm5: \n\t" - "lds r16,%0 \n\t" //Wait for previous spm to complete - "andi r16,1 \n\t" - "cpi r16,1 \n\t" - "breq wait_spm5 \n\t" - "ldi r16,0x11 \n\t" //Re-enable RWW section - "sts %0,r16 \n\t" - "spm \n\t" -#ifdef __AVR_ATmega163__ - ".word 0xFFFF \n\t" - "nop \n\t" -#endif - "same_page: \n\t" - "adiw r30,2 \n\t" //Next word in FLASH - "sbiw r24,2 \n\t" //length-2 - "breq final_write \n\t" //Finished - "rjmp length_loop \n\t" - "final_write: \n\t" - "cpi r17,0 \n\t" - "breq block_done \n\t" - "adiw r24,2 \n\t" //length+2, fool above check on length after short page write - "rjmp write_page \n\t" - "block_done: \n\t" - "clr __zero_reg__ \n\t" //restore zero register -#if defined __AVR_ATmega168__ || __AVR_ATmega328P__ || __AVR_ATmega128__ || __AVR_ATmega1280__ || __AVR_ATmega1281__ - : "=m" (SPMCSR) : "M" (PAGE_SIZE) : "r0","r16","r17","r24","r25","r28","r29","r30","r31" -#else - : "=m" (SPMCR) : "M" (PAGE_SIZE) : "r0","r16","r17","r24","r25","r28","r29","r30","r31" -#endif - ); - /* Should really add a wait for RWW section to be enabled, don't actually need it since we never */ - /* exit the bootloader without a power cycle anyhow */ - } - putch(0x14); - putch(0x10); - } else { - if (++error_count == MAX_ERROR_COUNT) - app_start(); - } - } - - - /* Read memory block mode, length is big endian. */ - else if(ch=='t') { - length.byte[1] = getch(); - length.byte[0] = getch(); -#if defined(__AVR_ATmega128__) || defined(__AVR_ATmega1280__) - if (address.word>0x7FFF) flags.rampz = 1; // No go with m256, FIXME - else flags.rampz = 0; -#endif - address.word = address.word << 1; // address * 2 -> byte location - if (getch() == 'E') flags.eeprom = 1; - else flags.eeprom = 0; - if (getch() == ' ') { // Command terminator - putch(0x14); - for (w=0;w < length.word;w++) { // Can handle odd and even lengths okay - if (flags.eeprom) { // Byte access EEPROM read -#if defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) - while(EECR & (1<= 'a') { - return (a - 'a' + 0x0a); - } else if(a >= '0') { - return(a - '0'); - } - return a; -} - - -char gethex(void) { - return (gethexnib() << 4) + gethexnib(); -} - - -void puthex(char ch) { - char ah; - - ah = ch >> 4; - if(ah >= 0x0a) { - ah = ah - 0x0a + 'a'; - } else { - ah += '0'; - } - - ch &= 0x0f; - if(ch >= 0x0a) { - ch = ch - 0x0a + 'a'; - } else { - ch += '0'; - } - - putch(ah); - putch(ch); -} - - -void putch(char ch) -{ -#if defined(__AVR_ATmega128__) || defined(__AVR_ATmega1280__) - if(bootuart == 1) { - while (!(UCSR0A & _BV(UDRE0))); - UDR0 = ch; - } - else if (bootuart == 2) { - while (!(UCSR1A & _BV(UDRE1))); - UDR1 = ch; - } -#elif defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) - while (!(UCSR0A & _BV(UDRE0))); - UDR0 = ch; -#else - /* m8,16,32,169,8515,8535,163 */ - while (!(UCSRA & _BV(UDRE))); - UDR = ch; -#endif -} - - -char getch(void) -{ -#if defined(__AVR_ATmega128__) || defined(__AVR_ATmega1280__) - uint32_t count = 0; - if(bootuart == 1) { - while(!(UCSR0A & _BV(RXC0))) { - /* 20060803 DojoCorp:: Addon coming from the previous Bootloader*/ - /* HACKME:: here is a good place to count times*/ - count++; - if (count > MAX_TIME_COUNT) - app_start(); - } - - return UDR0; - } - else if(bootuart == 2) { - while(!(UCSR1A & _BV(RXC1))) { - /* 20060803 DojoCorp:: Addon coming from the previous Bootloader*/ - /* HACKME:: here is a good place to count times*/ - count++; - if (count > MAX_TIME_COUNT) - app_start(); - } - - return UDR1; - } - return 0; -#elif defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) - uint32_t count = 0; - while(!(UCSR0A & _BV(RXC0))){ - /* 20060803 DojoCorp:: Addon coming from the previous Bootloader*/ - /* HACKME:: here is a good place to count times*/ - count++; - if (count > MAX_TIME_COUNT) - app_start(); - } - return UDR0; -#else - /* m8,16,32,169,8515,8535,163 */ - uint32_t count = 0; - while(!(UCSRA & _BV(RXC))){ - /* 20060803 DojoCorp:: Addon coming from the previous Bootloader*/ - /* HACKME:: here is a good place to count times*/ - count++; - if (count > MAX_TIME_COUNT) - app_start(); - } - return UDR; -#endif -} - - -void getNch(uint8_t count) -{ - while(count--) { -#if defined(__AVR_ATmega128__) || defined(__AVR_ATmega1280__) - if(bootuart == 1) { - while(!(UCSR0A & _BV(RXC0))); - UDR0; - } - else if(bootuart == 2) { - while(!(UCSR1A & _BV(RXC1))); - UDR1; - } -#elif defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) - getch(); -#else - /* m8,16,32,169,8515,8535,163 */ - /* 20060803 DojoCorp:: Addon coming from the previous Bootloader*/ - //while(!(UCSRA & _BV(RXC))); - //UDR; - getch(); // need to handle time out -#endif - } -} - - -void byte_response(uint8_t val) -{ - if (getch() == ' ') { - putch(0x14); - putch(val); - putch(0x10); - } else { - if (++error_count == MAX_ERROR_COUNT) - app_start(); - } -} - - -void nothing_response(void) -{ - if (getch() == ' ') { - putch(0x14); - putch(0x10); - } else { - if (++error_count == MAX_ERROR_COUNT) - app_start(); - } -} - -void flash_led(uint8_t count) -{ - while (count--) { - LED_PORT |= _BV(LED); - _delay_ms(100); - LED_PORT &= ~_BV(LED); - _delay_ms(100); - } -} - - -/* end of file ATmegaBOOT.c */ diff --git a/build/linux/work/hardware/arduino/bootloaders/atmega/ATmegaBOOT_168_atmega1280.hex b/build/linux/work/hardware/arduino/bootloaders/atmega/ATmegaBOOT_168_atmega1280.hex deleted file mode 100644 index f16e877f8..000000000 --- a/build/linux/work/hardware/arduino/bootloaders/atmega/ATmegaBOOT_168_atmega1280.hex +++ /dev/null @@ -1,245 +0,0 @@ -:020000021000EC -:10F000000C9472F80C9492F80C9492F80C9492F878 -:10F010000C9492F80C9492F80C9492F80C9492F848 -:10F020000C9492F80C9492F80C9492F80C9492F838 -:10F030000C9492F80C9492F80C9492F80C9492F828 -:10F040000C9492F80C9492F80C9492F80C9492F818 -:10F050000C9492F80C9492F80C9492F80C9492F808 -:10F060000C9492F80C9492F80C9492F80C9492F8F8 -:10F070000C9492F80C9492F80C9492F80C9492F8E8 -:10F080000C9492F80C9492F80C9492F80C9492F8D8 -:10F090000C9492F80C9492F80C9492F80C9492F8C8 -:10F0A0000C9492F80C9492F80C9492F80C9492F8B8 -:10F0B0000C9492F80C9492F80C9492F80C9492F8A8 -:10F0C0000C9492F80C9492F80C9492F80C9492F898 -:10F0D0000C9492F80C9492F80C9492F80C9492F888 -:10F0E0000C9492F811241FBECFEFD1E2DEBFCDBF4A -:10F0F00012E0A0E0B2E0EEEDFEEF01E00BBF02C0D7 -:10F1000007900D92A833B107D9F71BBE13E0A8E30F -:10F11000B2E001C01D92A334B107E1F70E9412FAD8 -:10F120000C946DFF0C9400F8982F959595959595F6 -:10F130009595905D8F708A301CF1282F295A809107 -:10F140003802813019F0823071F008958091C0004A -:10F1500085FFFCCF9093C6008091C00085FFFCCF57 -:10F160002093C60008958091C80085FFFCCF90933E -:10F17000CE008091C80085FFFCCF2093CE0008957B -:10F18000282F205DDCCF982F80913802813019F034 -:10F19000823041F008958091C00085FFFCCF9093AC -:10F1A000C60008958091C80085FFFCCF9093CE00E3 -:10F1B0000895EF92FF920F931F9380913802813050 -:10F1C00069F1823031F080E01F910F91FF90EF9054 -:10F1D0000895EE24FF2487018091C80087FD17C0A1 -:10F1E0000894E11CF11C011D111D81E4E81682E464 -:10F1F000F8068FE0080780E0180770F3E0913A0204 -:10F20000F0913B0209958091C80087FFE9CF80917A -:10F21000CE001F910F91FF90EF900895EE24FF24F0 -:10F2200087018091C00087FD17C00894E11CF11C84 -:10F23000011D111D81E4E81682E4F8068FE008073D -:10F2400080E0180770F3E0913A02F0913B020995D3 -:10F250008091C00087FFE9CF8091C6001F910F9178 -:10F26000FF90EF9008950E94D9F8982F809138026E -:10F27000813049F0823091F091366CF490330CF08B -:10F280009053892F08958091C00085FFFCCF909303 -:10F29000C60091369CF39755892F08958091C80038 -:10F2A00085FFFCCF9093CE00E7CF1F930E9433F9E8 -:10F2B000182F0E9433F91295107F810F1F91089526 -:10F2C000982F20913802992339F0213031F02230E3 -:10F2D00061F091509923C9F708958091C00087FF8C -:10F2E000FCCF8091C6009150F5CF8091C80087FF78 -:10F2F000FCCF8091CE009150EDCF1F93182F0E942C -:10F30000D9F8803249F0809139028F5F80933902B9 -:10F31000853091F11F910895809138028130B9F0C4 -:10F320008230C1F78091C80085FFFCCF84E18093D3 -:10F33000CE008091C80085FFFCCF1093CE00809155 -:10F34000C80085FFFCCF80E18093CE00E3CF8091A1 -:10F35000C00085FFFCCF84E18093C6008091C0008F -:10F3600085FFFCCF1093C6008091C00085FFFCCFC5 -:10F3700080E18093C600CECFE0913A02F0913B024B -:10F3800009951F9108950E94D9F8803241F080912B -:10F3900039028F5F80933902853029F10895809179 -:10F3A0003802813089F08230C9F78091C80085FF2A -:10F3B000FCCF84E18093CE008091C80085FFFCCF14 -:10F3C00080E18093CE0008958091C00085FFFCCF3E -:10F3D00084E18093C6008091C00085FFFCCF80E16E -:10F3E0008093C6000895E0913A02F0913B0209959E -:10F3F000089540E951E08823A1F02F9A28EE33E0E8 -:10F40000FA013197F1F721503040D1F72F9828EECB -:10F4100033E0FA013197F1F721503040D1F78150B4 -:10F4200061F708952F923F924F925F926F927F9271 -:10F430008F929F92AF92BF92CF92DF92EF92FF9204 -:10F440000F931F93CF93DF93000081E080933802E6 -:10F4500080E18093C4001092C5001092C00086E045 -:10F460008093C20088E18093C1006898709A279ABF -:10F4700081E00E94F9F9E4E1EE2E7EE1D72E67E902 -:10F48000C62E53E0B52E40E1A42E9924939431E486 -:10F49000832E26E5722E92E5692E80E2582E09E42D -:10F4A000402E13E5312EB0E52B2E0E94D9F8803383 -:10F4B000C9F1813309F452C0803409F4C8C08134E1 -:10F4C00009F4EAC0823489F1853409F4CAC0803570 -:10F4D00049F1823539F1813529F1853509F4ECC0DE -:10F4E000863509F409C1843609F428C1843709F442 -:10F4F000ABC1853709F473C2863709F4D9C08132AC -:10F5000009F4B7C2809139028F5F80933902853048 -:10F5100061F6E0913A02F0913B0209950E94D9F818 -:10F52000803339F60E94C3F9C0CF2091380293E1AD -:10F5300005C0223061F09923A9F391502130C9F719 -:10F540008091C00087FFFCCF8091C600F4CF8091EE -:10F55000C80087FFFCCF8091CE00EDCF0E94D9F884 -:10F56000803281F6809138028130D1F1823009F009 -:10F570009CCF8091C80085FFFCCFE092CE008091A7 -:10F58000C80085FFFCCF8092CE008091C80085FF27 -:10F59000FCCF7092CE008091C80085FFFCCF6092B6 -:10F5A000CE008091C80085FFFCCF5092CE008091A4 -:10F5B000C80085FFFCCF4092CE008091C80085FF37 -:10F5C000FCCF3092CE008091C80085FFFCCF209206 -:10F5D000CE008091C80085FFFCCFA092CE0065CF01 -:10F5E0008091C00085FFFCCFE092C6008091C000F2 -:10F5F00085FFFCCF8092C6008091C00085FFFCCFC4 -:10F600007092C6008091C00085FFFCCF6092C6005A -:10F610008091C00085FFFCCF5092C6008091C00051 -:10F6200085FFFCCF4092C6008091C00085FFFCCFD3 -:10F630003092C6008091C00085FFFCCF2092C600AA -:10F640008091C00085FFFCCFA092C6002ECF0E9403 -:10F65000D9F8863808F466CF0E94D9F80E94C3F919 -:10F6600024CF2091380294E0213041F0223069F01B -:10F67000992309F457CF91502130C1F78091C000F0 -:10F6800087FFFCCF8091C600F3CF8091C80087FF31 -:10F69000FCCF8091CE00ECCF0E94D9F8803841F1A8 -:10F6A000813809F447C0823809F4CAC08839E1F0CA -:10F6B00080E00E947DF9F9CE0E94D9F880933C0247 -:10F6C0000E94D9F880933D020E94C3F9EECE0E94B9 -:10F6D000D9F80E94D9F8182F0E94D9F8112309F4FB -:10F6E0007EC2113009F40AC283E00E947DF9DDCEAA -:10F6F00082E00E947DF9D9CE0E94D9F8803339F397 -:10F700002091380292E0213039F0223061F09923C3 -:10F7100079F291502130C9F78091C00087FFFCCF6A -:10F720008091C600F4CF8091C80087FFFCCF809104 -:10F73000CE00EDCF81E00E947DF9B7CE0E94D9F8CE -:10F7400080933F030E94D9F880933E038091420347 -:10F750008E7F809342030E94D9F8853409F4B3C1A7 -:10F7600080913E0390913F03892B89F000E010E0E7 -:10F770000E94D9F8F801E25CFD4F80830F5F1F4FB4 -:10F7800080913E0390913F030817190788F30E9468 -:10F79000D9F8803209F0B6CE8091420380FFB2C121 -:10F7A00040913C0250913D02440F551F50933D0241 -:10F7B00040933C0260913E0370913F0361157105D7 -:10F7C000F1F080E090E09A01280F391FFC01E25C23 -:10F7D000FD4FE081F999FECF1FBA32BD21BDE0BDDA -:10F7E0000FB6F894FA9AF99A0FBE01968617970702 -:10F7F00050F3460F571F50933D0240933C028091B7 -:10F800003802813081F0823009F04FCE8091C800FB -:10F8100085FFFCCFE092CE008091C80085FFFCCF31 -:10F82000A092CE0042CE8091C00085FFFCCFE09236 -:10F83000C6008091C00085FFFCCFA092C60035CEE7 -:10F8400080E10E947DF931CE0E94D9F880933F0378 -:10F850000E94D9F880933E0320913C0230913D02F2 -:10F8600037FD46C1809142038D7F80934203220F72 -:10F87000331F30933D0220933C020E94D9F8853417 -:10F8800009F430C1809142038E7F809342030E942D -:10F89000D9F8803209F009CE60913802613009F45C -:10F8A0006FC0623009F473C000913E0310913F03B2 -:10F8B0000115110509F440C080914203782F717041 -:10F8C000F82EF69481E0F82240913C0250913D02DE -:10F8D00020E030E013C0FF2009F060C0FA019491ED -:10F8E000613009F43BC0623009F441C0CA0101969D -:10F8F0002F5F3F4FAC0120173107D0F4772359F326 -:10F90000F999FECF52BD41BDF89A90B56130F9F03A -:10F91000623061F78091C80085FFFCCF9093CE00E4 -:10F92000CA0101962F5F3F4FAC012017310730F31A -:10F9300090933D0280933C02613009F4CAC062306A -:10F9400009F0B3CD8091C80085FFFCCF46CE8091F1 -:10F95000C00085FFFCCF9093C600C8CF8091C00047 -:10F9600085FDF9CF8091C00085FFF8CFF4CF80915D -:10F97000C80085FDD3CF8091C80085FFF8CFCECFDA -:10F980008091C00085FFFCCFE092C6008DCF8091B2 -:10F99000C80085FFFCCFE092CE0086CFCA01A0E070 -:10F9A000B0E080509040AF4FBF4FABBFFC0197918C -:10F9B000613061F0623009F099CF8091C80085FD17 -:10F9C000ADCF8091C80085FFF8CFA8CF8091C0004F -:10F9D00085FDC1CF8091C00085FFF8CFBCCF0E94CC -:10F9E000D9F8803209F08ECD80913802813011F142 -:10F9F000823009F05ACD8091C80085FFFCCFE0929B -:10FA0000CE008091C80085FFFCCFD092CE008091BF -:10FA1000C80085FFFCCFC092CE008091C80085FF52 -:10FA2000FCCFB092CE008091C80085FFFCCFA092A1 -:10FA3000CE003BCD8091C00085FFFCCFE092C60098 -:10FA40008091C00085FFFCCFD092C6008091C0009D -:10FA500085FFFCCFC092C6008091C00085FFFCCF1F -:10FA6000B092C6008091C00085FFFCCFA092C60076 -:10FA70001CCD0E94D9F8813209F017CD0E94D9F827 -:10FA8000813209F012CD279A2F98109240032091CD -:10FA90003802E1E491E00EC0223009F4A4C0909352 -:10FAA0004003E92FF0E0E050FE4FE0819F5FEE233E -:10FAB00009F4A0C0213081F78091C00085FFFCCF00 -:10FAC000E093C600ECCF80914203816080934203B3 -:10FAD00047CE8091C00085FDB7CD8091C00085FFE5 -:10FAE000F8CFB2CD80914203816080934203CFCEA4 -:10FAF00080914203826080934203B9CE87E90E94DD -:10FB00007DF9D3CC80913D028823880F880B892111 -:10FB1000809341038BBF80913C0290913D02880FFE -:10FB2000991F90933D0280933C0280913E0380FF99 -:10FB300009C080913E0390913F03019690933F034B -:10FB400080933E03F894F999FECF1127E0913C028F -:10FB5000F0913D02CEE3D2E080913E0390913F03CD -:10FB6000103091F40091570001700130D9F303E097 -:10FB700000935700E8950091570001700130D9F3C8 -:10FB800001E100935700E895099019900091570002 -:10FB900001700130D9F301E000935700E895139507 -:10FBA000103898F011270091570001700130D9F3F7 -:10FBB00005E000935700E89500915700017001306F -:10FBC000D9F301E100935700E8953296029709F0C6 -:10FBD000C7CF103011F00296E5CF112410CE8EE180 -:10FBE0000E947DF962CC8091C80085FFFCCFE09334 -:10FBF000CE0055CF7AE0B72E6DE0A62E5AE3952EB3 -:10FC000040E2842E3DE3732E90E3692E81E3582E6B -:10FC1000213009F442C0223009F45FC00E94D9F8B3 -:10FC2000982F20913802213089F1223009F44EC0FA -:10FC3000943709F46BC0923709F405C1973709F47A -:10FC40007BC0953799F0923609F4BDC09A3601F71A -:10FC5000E0913A02F0913B02099520913802D8CF09 -:10FC60008091C00085FFFCCF9093C6000E94D9F818 -:10FC7000982F80913802813099F38230B9F78091C2 -:10FC8000C80085FFFCCF9093CE00F0CF8091C000DC -:10FC900085FFFCCF9093C600CBCF8091C00085FF3D -:10FCA000FCCFB092C6008091C00085FFFCCFA0922F -:10FCB000C6008091C00085FFFCCF9092C600809165 -:10FCC000C00085FFFCCF8092C600A8CF8091C800FD -:10FCD00085FFFCCF9093CE00ABCF8091C80085FF0D -:10FCE000FCCFB092CE008091C80085FFFCCFA092DF -:10FCF000CE008091C80085FFFCCF9092CE0080910D -:10FD0000C80085FFFCCF8092CE0088CF1F9947C0E6 -:10FD10002F9A213051F0223009F07ACF8091C8001B -:10FD200085FFFCCF6092CE0073CF8091C00085FF2D -:10FD3000FCCF6092C6006CCF0E94D9F8982F8091BA -:10FD400038028130F1F0823009F4ABC00E9455F9DD -:10FD5000082F0E9455F9182F0E94D9F8982F8091EA -:10FD600038028130A9F0823009F4A2C00E9455F90E -:10FD7000D02ECC24F601E10FF11D808320913802B2 -:10FD800047CF8091C00085FFFCCF9093C600DECFA7 -:10FD90008091C00085FFFCCF9093C600E7CF2F98DD -:10FDA000213051F0223009F033CF8091C80085FF17 -:10FDB000FCCF5092CE002CCF8091C00085FFFCCFAD -:10FDC0005092C60025CF213041F1223081F080E8E9 -:10FDD00085BF109274001092750080E091E1FC01E3 -:10FDE000819180E091E13097D1F3CF01F8CF8091FC -:10FDF000C80085FFFCCF82E68093CE008091C800CA -:10FE000085FFFCCF85E78093CE008091C80085FFF9 -:10FE1000FCCF83E78093CE00DACF8091C00085FFCE -:10FE2000FCCF82E68093C6008091C00085FFFCCFA6 -:10FE300085E78093C6008091C00085FFFCCF83E7F3 -:10FE40008093C600C4CF0E94D9F8982F80913802C1 -:10FE50008130C9F08230D1F10E9455F9182F0E94EB -:10FE600055F9982F809138028130A1F0823039F114 -:10FE7000F12EEE24F701E90FF11D80810E9494F824 -:10FE800020913802C5CE8091C00085FFFCCF9093B1 -:10FE9000C600E2CF8091C00085FFFCCF7092C60003 -:10FEA000E7CF8091C80085FFFCCF9093CE004ECF66 -:10FEB0008091C80085FFFCCF9093CE0057CF8091F2 -:10FEC000C80085FFFCCF7092CE00D2CF8091C800D1 -:0EFED00085FFFCCF9093CE00BFCFF894FFCFFC -:10FEDE0041546D656761424F4F54202F204172642B -:10FEEE0075696E6F204D656761202D20284329208E -:10FEFE0041726475696E6F204C4C43202D20303951 -:08FF0E00303933300A0D008088 -:040000031000F000F9 -:00000001FF diff --git a/build/linux/work/hardware/arduino/bootloaders/atmega/ATmegaBOOT_168_atmega328.hex b/build/linux/work/hardware/arduino/bootloaders/atmega/ATmegaBOOT_168_atmega328.hex deleted file mode 100644 index 43a8b30e0..000000000 --- a/build/linux/work/hardware/arduino/bootloaders/atmega/ATmegaBOOT_168_atmega328.hex +++ /dev/null @@ -1,125 +0,0 @@ -:107800000C94343C0C94513C0C94513C0C94513CE1 -:107810000C94513C0C94513C0C94513C0C94513CB4 -:107820000C94513C0C94513C0C94513C0C94513CA4 -:107830000C94513C0C94513C0C94513C0C94513C94 -:107840000C94513C0C94513C0C94513C0C94513C84 -:107850000C94513C0C94513C0C94513C0C94513C74 -:107860000C94513C0C94513C11241FBECFEFD8E036 -:10787000DEBFCDBF11E0A0E0B1E0ECE9FFE702C060 -:1078800005900D92A230B107D9F712E0A2E0B1E065 -:1078900001C01D92AD30B107E1F70E942D3D0C945F -:1078A000CC3F0C94003C982F959595959595959582 -:1078B000905D8F708A307CF0282F295A8091C0000B -:1078C00085FFFCCF9093C6008091C00085FFFCCF60 -:1078D0002093C6000895282F205DF0CF982F809127 -:1078E000C00085FFFCCF9093C6000895EF92FF92F1 -:1078F0000F931F93EE24FF2487018091C00087FD22 -:1079000017C00894E11CF11C011D111D81E4E8164B -:1079100082E4F8068FE0080780E0180770F3E09132 -:107920000401F091050109958091C00087FFE9CF1E -:107930008091C6001F910F91FF90EF9008950E94D3 -:10794000763C982F8091C00085FFFCCF9093C600B5 -:1079500091362CF490330CF09053892F089597555D -:10796000892F08951F930E949F3C182F0E949F3CCF -:107970001295107F810F1F9108951F93182F882350 -:1079800021F00E94763C1150E1F71F9108951F935A -:10799000182F0E94763C803249F0809103018F5F5E -:1079A000809303018530C1F01F9108958091C0003C -:1079B00085FFFCCF84E18093C6008091C00085FFE5 -:1079C000FCCF1093C6008091C00085FFFCCF80E102 -:1079D0008093C6001F910895E0910401F091050184 -:1079E00009951F9108950E94763C803241F0809164 -:1079F00003018F5F80930301853081F008958091AA -:107A0000C00085FFFCCF84E18093C6008091C00058 -:107A100085FFFCCF80E18093C6000895E0910401CA -:107A2000F09105010995089540E951E08823A1F0FE -:107A30002D9A28EE33E0FA013197F1F721503040CA -:107A4000D1F72D9828EE33E0FA013197F1F7215064 -:107A50003040D1F7815061F708953F924F925F9285 -:107A60006F927F928F929F92AF92BF92CF92DF924E -:107A7000EF92FF920F931F93CF93DF93000080E16B -:107A80008093C4001092C50088E18093C10086E015 -:107A90008093C2005098589A259A81E00E94143D24 -:107AA00024E1F22E9EE1E92E85E9D82E0FE0C02ECA -:107AB00010E1B12EAA24A394B1E49B2EA6E58A2E50 -:107AC000F2E57F2EE0E26E2E79E4572E63E5462E36 -:107AD00050E5352E0E94763C8033B1F18133B9F107 -:107AE000803409F46FC0813409F476C0823409F41B -:107AF00085C0853409F488C0803531F1823521F1A3 -:107B0000813511F1853509F485C0863509F48DC0BC -:107B1000843609F496C0843709F403C1853709F423 -:107B200072C1863709F466C0809103018F5F80932C -:107B30000301853079F6E0910401F0910501099582 -:107B40000E94763C803351F60E94F33CC3CF0E94E2 -:107B5000763C803249F78091C00085FFFCCFF092DF -:107B6000C6008091C00085FFFCCF9092C600809136 -:107B7000C00085FFFCCF8092C6008091C00085FFC9 -:107B8000FCCF7092C6008091C00085FFFCCF609250 -:107B9000C6008091C00085FFFCCF5092C600809146 -:107BA000C00085FFFCCF4092C6008091C00085FFD9 -:107BB000FCCF3092C6008091C00085FFFCCFB09210 -:107BC000C60088CF0E94763C863808F4BDCF0E945C -:107BD000763C0E94F33C7ECF0E94763C803809F4CC -:107BE0009CC0813809F40BC1823809F43CC1883942 -:107BF00009F48FC080E00E94C73C6CCF84E10E94F2 -:107C0000BD3C0E94F33C66CF85E00E94BD3C0E94D3 -:107C1000F33C60CF0E94763C809306010E94763C44 -:107C2000809307010E94F33C55CF0E94763C80333D -:107C300009F41DC183E00E94BD3C80E00E94C73C66 -:107C400049CF0E94763C809309020E94763C809343 -:107C5000080280910C028E7F80930C020E94763C79 -:107C6000853409F415C18091080290910902892B8D -:107C700089F000E010E00E94763CF801E85FFE4FDA -:107C800080830F5F1F4F80910802909109020817AF -:107C9000190788F30E94763C803209F045CF809125 -:107CA0000C0280FF01C16091060170910701660F0F -:107CB000771F7093070160930601A0910802B091AD -:107CC00009021097C9F0E8E0F1E09B01AD014E0F09 -:107CD0005F1FF999FECF32BD21BD819180BDFA9A17 -:107CE000F99A2F5F3F4FE417F50799F76A0F7B1F4B -:107CF00070930701609306018091C00085FFFCCF5F -:107D0000F092C6008091C00085FFFCCFB092C60003 -:107D1000E1CE83E00E94C73CDDCE82E00E94C73CFA -:107D2000D9CE0E94763C809309020E94763C8093D3 -:107D300008028091060190910701880F991F909386 -:107D40000701809306010E94763C853409F4A6C0A1 -:107D500080910C028E7F80930C020E94763C8032D0 -:107D600009F0B8CE8091C00085FFFCCFF092C6002C -:107D7000609108027091090261157105B9F140E046 -:107D800050E080910C02A82FA170B82FB27011C0E2 -:107D9000BB2309F45CC0E0910601F0910701319624 -:107DA000F0930701E09306014F5F5F4F46175707B7 -:107DB000E8F4AA2369F3F999FECF209106013091E6 -:107DC000070132BD21BDF89A90B58091C00085FFB2 -:107DD000FCCF9093C6002F5F3F4F30930701209355 -:107DE00006014F5F5F4F4617570718F38091C00099 -:107DF00085FDE5CE8091C00085FFF8CFE0CE81E023 -:107E00000E94C73C67CE0E94763C803209F08CCE3F -:107E10008091C00085FFFCCFF092C6008091C00029 -:107E200085FFFCCFE092C6008091C00085FFFCCFAB -:107E3000D092C6008091C00085FFFCCFC092C600E2 -:107E40008091C00085FFFCCFB092C60043CEE09188 -:107E50000601F091070194918091C00085FFFCCF4D -:107E60009093C6009CCF80E10E94C73C33CE0E9415 -:107E7000763C0E94763C182F0E94763C112309F430 -:107E800083C0113009F484C08FE00E94C73C22CE29 -:107E900080910C02816080930C02E5CE80910C02EF -:107EA000816080930C0259CF809107018823880F4D -:107EB000880B8A2180930B02809106019091070123 -:107EC000880F991F90930701809306018091080203 -:107ED00080FF09C080910802909109020196909359 -:107EE000090280930802F894F999FECF1127E091D6 -:107EF0000601F0910701C8E0D1E08091080290915D -:107F00000902103091F40091570001700130D9F34B -:107F100003E000935700E89500915700017001308D -:107F2000D9F301E100935700E89509901990009169 -:107F3000570001700130D9F301E000935700E89534 -:107F40001395103498F011270091570001700130FB -:107F5000D9F305E000935700E895009157000170B0 -:107F60000130D9F301E100935700E895329602976A -:107F700009F0C7CF103011F00296E5CF112480919F -:107F8000C00085FFB9CEBCCE8EE10E94C73CA2CD19 -:0C7F900085E90E94C73C9ECDF894FFCF0D -:027F9C00800063 -:040000030000780081 -:00000001FF diff --git a/build/linux/work/hardware/arduino/bootloaders/atmega/ATmegaBOOT_168_atmega328_pro_8MHz.hex b/build/linux/work/hardware/arduino/bootloaders/atmega/ATmegaBOOT_168_atmega328_pro_8MHz.hex deleted file mode 100644 index 9753e2e83..000000000 --- a/build/linux/work/hardware/arduino/bootloaders/atmega/ATmegaBOOT_168_atmega328_pro_8MHz.hex +++ /dev/null @@ -1,124 +0,0 @@ -: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/build/linux/work/hardware/arduino/bootloaders/atmega/ATmegaBOOT_168_diecimila.hex b/build/linux/work/hardware/arduino/bootloaders/atmega/ATmegaBOOT_168_diecimila.hex deleted file mode 100644 index feac9d259..000000000 --- a/build/linux/work/hardware/arduino/bootloaders/atmega/ATmegaBOOT_168_diecimila.hex +++ /dev/null @@ -1,126 +0,0 @@ -:103800000C94341C0C94511C0C94511C0C94511CA1 -:103810000C94511C0C94511C0C94511C0C94511C74 -:103820000C94511C0C94511C0C94511C0C94511C64 -:103830000C94511C0C94511C0C94511C0C94511C54 -:103840000C94511C0C94511C0C94511C0C94511C44 -:103850000C94511C0C94511C0C94511C0C94511C34 -:103860000C94511C0C94511C11241FBECFEFD4E0BA -:10387000DEBFCDBF11E0A0E0B1E0E4EAFFE302C0AB -:1038800005900D92A230B107D9F712E0A2E0B1E0A5 -:1038900001C01D92AD30B107E1F70E94361D0C94B6 -:1038A000D01F0C94001C982F9595959595959595FE -:1038B000905D8F708A307CF0282F295A8091C0004B -:1038C00085FFFCCF9093C6008091C00085FFFCCFA0 -:1038D0002093C6000895282F205DF0CF982F809167 -:1038E000C00085FFFCCF9093C6000895EF92FF9231 -:1038F0000F931F93EE24FF2487018091C00087FD62 -:1039000017C00894E11CF11C011D111D81E4E8168B -:1039100082E4F8068FE0080780E0180770F3E09172 -:103920000401F091050109958091C00087FFE9CF5E -:103930008091C6001F910F91FF90EF9008950E9413 -:10394000761C982F8091C00085FFFCCF9093C60015 -:1039500091362CF490330CF09053892F089597559D -:10396000892F08951F930E949F1C182F0E949F1C4F -:103970001295107F810F1F910895882351F0982F81 -:1039800091508091C00087FFFCCF8091C6009923A1 -:10399000B9F708951F93182F0E94761C803249F0C2 -:1039A000809103018F5F809303018530C1F01F91E7 -:1039B00008958091C00085FFFCCF84E18093C6000C -:1039C0008091C00085FFFCCF1093C6008091C0009D -:1039D00085FFFCCF80E18093C6001F910895E091A0 -:1039E0000401F091050109951F9108950E94761C2C -:1039F000803241F0809103018F5F80930301853015 -:103A000081F008958091C00085FFFCCF84E1809310 -:103A1000C6008091C00085FFFCCF80E18093C60086 -:103A20000895E0910401F09105010995089510921F -:103A30000A028823D1F090E040E951E02D9A28EE67 -:103A400033E0FA013197F1F721503040D1F72D984A -:103A500028EE33E0FA013197F1F721503040D1F7E9 -:103A60009F5F981758F380930A0208953F924F92F0 -:103A70005F926F927F928F929F92AF92BF92CF92FE -:103A8000DF92EF92FF920F931F93CF93DF9300008B -:103A900083E38093C4001092C50088E18093C10045 -:103AA00086E08093C2005098589A259A81E00E943F -:103AB000171D44E1F42E3EE1E32E24E9D22E96E0D8 -:103AC000C92E80E1B82EAA24A39401E4902E16E515 -:103AD000812EB2E57B2EA0E26A2EF9E45F2EE3E5AB -:103AE0004E2E70E5372E0E94761C8033B1F1813363 -:103AF00009F441C0803409F479C0813409F48CC0E0 -:103B0000823471F1853409F47BC0803531F182351E -:103B100021F1813511F1853509F48DC0863509F41F -:103B20009DC0843609F4AEC0843709F41BC18537C3 -:103B300009F485C1863709F47AC0809103018F5F4B -:103B400080930301853079F6E0910401F09105013D -:103B500009950E94761C803351F60E94F61CC3CF53 -:103B600093E18091C00087FFFCCF8091C60099232C -:103B7000A1F39150F6CF0E94761C8032F1F680912D -:103B8000C00085FFFCCFF092C6008091C00085FF89 -:103B9000FCCF9092C6008091C00085FFFCCF809240 -:103BA000C6008091C00085FFFCCF7092C600809156 -:103BB000C00085FFFCCF6092C6008091C00085FFE9 -:103BC000FCCF5092C6008091C00085FFFCCF409290 -:103BD000C6008091C00085FFFCCF3092C600809166 -:103BE000C00085FFFCCFB092C6007DCF0E94761C3E -:103BF000863808F4B2CF0E94761C0E94F61C73CF60 -:103C000094E08091C00087FFFCCF8091C60099238B -:103C100009F4A3CF9150F5CF0E94761C8038D1F0E3 -:103C2000813861F1823809F499C0883979F080E0EF -:103C30000E94CA1C58CF0E94761C809306010E94E5 -:103C4000761C809307010E94F61C4DCF83E00E94F2 -:103C5000CA1C49CF82E00E94CA1C45CF0E94761C34 -:103C6000803309F486C192E08091C00087FFFCCFC9 -:103C70008091C6009923D9F29150F6CF81E00E943D -:103C8000CA1C31CF0E94761C809309020E94761CC8 -:103C90008093080280910C028E7F80930C020E9418 -:103CA000761C853429F480910C02816080930C028B -:103CB0008091080290910902892B89F000E010E0C0 -:103CC0000E94761CF801E85FFE4F80830F5F1F4F54 -:103CD00080910802909109020817190788F30E9441 -:103CE000761C803209F029CF80910C0280FFD1C070 -:103CF0004091060150910701440F551F5093070151 -:103D000040930601A0910802B09109021097C9F0F2 -:103D1000E8E0F1E09A01BD016E0F7F1FF999FECF37 -:103D200032BD21BD819180BDFA9AF99A2F5F3F4F34 -:103D3000E617F70799F74A0F5B1F50930701409367 -:103D400006018091C00085FFFCCFF092C6008091F3 -:103D5000C00085FFFCCFB092C600C5CE80E10E94B6 -:103D6000CA1CC1CE0E94761C809309020E94761C58 -:103D7000809308028091060190910701880F991F96 -:103D800090930701809306010E94761C853409F404 -:103D90007AC080910C028E7F80930C020E94761C68 -:103DA000803209F0A0CE8091C00085FFFCCFF09258 -:103DB000C600A0910802B09109021097B9F1809154 -:103DC0000C02182F1170082F0270E0910601F0917B -:103DD00007019F012F5F3F4FB90140E050E01123E1 -:103DE000B1F4002339F494918091C00085FFFCCF99 -:103DF0009093C6004F5F5F4FCB010196F9014A17C0 -:103E00005B0780F4BC012F5F3F4F112351F3F999F9 -:103E1000FECFF2BDE1BDF89A90B58091C00085FF5C -:103E2000FCCFE6CF70930701609306018091C0003C -:103E300085FDD9CE8091C00085FFF8CFD4CE0E94F9 -:103E4000761C803209F079CE8091C00085FFFCCFCE -:103E5000F092C6008091C00085FFFCCFE092C600C2 -:103E60008091C00085FFFCCFD092C6008091C00039 -:103E700085FFFCCFC092C6008091C00085FFFCCFBB -:103E8000B092C60030CE80910C02816080930C020B -:103E900085CF809107018823880F880B8A21809322 -:103EA0000B028091060190910701880F991F909352 -:103EB0000701809306018091080280FF09C080916C -:103EC00008029091090201969093090280930802DA -:103ED000F894F999FECF1127E0910601F0910701BE -:103EE000C8E0D1E08091080290910902103091F46D -:103EF0000091570001700130D9F303E0009357009F -:103F0000E8950091570001700130D9F301E1009369 -:103F10005700E89509901990009157000170013001 -:103F2000D9F301E000935700E8951395103498F009 -:103F300011270091570001700130D9F305E000937B -:103F40005700E8950091570001700130D9F301E165 -:103F500000935700E8953296029709F0C7CF1030CA -:103F600011F00296E5CF11248091C00085FFE9CEC3 -:103F7000ECCE0E94761C0E94761C182F0E94761CA4 -:103F8000112351F0113021F086E00E94CA1CABCD04 -:103F900084E90E94CA1CA7CD8EE10E94CA1CA3CD51 -:043FA000F894FFCFC3 -:023FA40080009B -:0400000300003800C1 -:00000001FF diff --git a/build/linux/work/hardware/arduino/bootloaders/atmega/ATmegaBOOT_168_ng.hex b/build/linux/work/hardware/arduino/bootloaders/atmega/ATmegaBOOT_168_ng.hex deleted file mode 100644 index 387091e7d..000000000 --- a/build/linux/work/hardware/arduino/bootloaders/atmega/ATmegaBOOT_168_ng.hex +++ /dev/null @@ -1,110 +0,0 @@ -:103800000C94341C0C94511C0C94511C0C94511CA1 -:103810000C94511C0C94511C0C94511C0C94511C74 -:103820000C94511C0C94511C0C94511C0C94511C64 -:103830000C94511C0C94511C0C94511C0C94511C54 -:103840000C94511C0C94511C0C94511C0C94511C44 -:103850000C94511C0C94511C0C94511C0C94511C34 -:103860000C94511C0C94511C11241FBECFEFD4E0BA -:10387000DEBFCDBF11E0A0E0B1E0E4EAFEE302C0AC -:1038800005900D92A230B107D9F712E0A2E0B1E0A5 -:1038900001C01D92AD30B107E1F70E94ED1C0C9400 -:1038A000511F0C94001C482F10920A0280E08417CC -:1038B000E0F4582F2D9A28EE33E080E991E001974B -:1038C000F1F721503040C9F72D9828EE33E080E918 -:1038D00091E00197F1F721503040C9F7852F8F5FB4 -:1038E000582F841738F380930A020895EF92FF92BD -:1038F0000F931F93EE24FF2487018091C00087FD62 -:1039000017C00894E11CF11C011D111D81E0E8168F -:1039100082E1F8068AE7080780E0180770F3E09173 -:103920000201F091030109958091C00087FFE9CF62 -:103930008091C600992787FD90951F910F91FF9068 -:10394000EF900895982F8091C00085FFFCCF909351 -:10395000C60008950E94761C803271F080910401A7 -:103960008F5F80930401853009F00895E091020192 -:10397000F09103010995089584E10E94A21C80E161 -:103980000E94A21C0895CF93C82F0E94761C8032FB -:1039900041F0809104018F5F80930401853081F4B0 -:1039A0000AC084E10E94A21C8C2F0E94A21C80E10C -:1039B0000E94A21C05C0E0910201F091030109954B -:1039C000CF910895CF93C82FC150CF3F21F00E94CF -:1039D000761CC150E0F7CF910895CFEFD4E0DEBF61 -:1039E000CDBF000083E38093C4001092C50088E13E -:1039F0008093C10086E08093C2005098589A259A1F -:103A000083E00E94531C0E94761C8033B1F1813305 -:103A1000B9F1803409F455C0813409F45BC08234B3 -:103A200009F46DC0853409F470C0803531F18235F8 -:103A300021F1813511F1853509F46BC0863509F422 -:103A400073C0843609F47AC0843709F4CEC0853750 -:103A500009F429C1863709F44AC0809104018F5FB7 -:103A600080930401853079F6E0910201F091030121 -:103A700009950E94761C803351F60E94AA1CC3CF80 -:103A80000E94761CC82F803241F784E10E94A21C5C -:103A900081E40E94A21C86E50E94A21C82E50E948D -:103AA000A21C8C2F0E94A21C89E40E94A21C83E508 -:103AB0000E94A21C80E50E94A21C80E10E94A21C20 -:103AC000A2CF0E94761C8638C0F20E94761C0E940B -:103AD000AA1C99CF0E94761C803809F486C18138CF -:103AE00009F487C1823809F488C1883921F080E05F -:103AF0000E94C31C88CF83E00E94C31C84CF84E152 -:103B00000E94E21C0E94AA1C7ECF85E00E94E21C5B -:103B1000F9CF0E94761C809306010E94761C809348 -:103B200007010E94AA1C6FCF0E94761C803309F403 -:103B3000CAC083E00E94E21C80E0DACF0E94761CBB -:103B4000809309020E94761C8093080280910C02E7 -:103B50008E7F80930C020E94761C853409F4C4C0C9 -:103B600000E010E0809108029091090218161906F1 -:103B700070F4C8E0D1E00E94761C89930F5F1F4F5C -:103B8000809108029091090208171907A0F30E947A -:103B9000761C803209F061CF80910C0280FFAEC0AC -:103BA000E0910601F0910701EE0FFF1F00E010E029 -:103BB00020910802309109021216130680F4A8E041 -:103BC000B1E0F999FECFF2BDE1BD8D9180BDFA9AC9 -:103BD000F99A31960F5F1F4F0217130790F3F09376 -:103BE0000701E093060184E166CF0E94761C809372 -:103BF00009020E94761C8093080280910601909130 -:103C00000701880F991F90930701809306010E9476 -:103C1000761C853409F46EC080910C028E7F8093EF -:103C20000C020E94761C803209F0EDCE84E10E94E5 -:103C3000A21C00E010E02091080230910902121647 -:103C4000130608F03ACFE0910601F0910701809148 -:103C50000C0280FF1FC0F999FECFF2BDE1BDF89ABA -:103C600080B50E94A21CE0910601F09107013196F7 -:103C7000F0930701E09306012091080230910902B8 -:103C80000F5F1F4F0217130708F017CF80910C0228 -:103C900080FDE1CF869580FFB4C03196F093070197 -:103CA000E0930601EDCF0E94761C803209F0D5CE5C -:103CB00084E10E94A21C8EE10E94A21C84E90E9461 -:103CC000A21C86E0F8CE0E94761C0E94761CC82FAB -:103CD0000E94761CCC2309F47CC0C13009F47DC05D -:103CE00086E00E94C31C8FCE80910C02816080937D -:103CF0000C0236CF80910C02816091CF8091070138 -:103D000087FD6FC010920B02809106019091070110 -:103D1000880F991F909307018093060180910802F4 -:103D200080FF09C08091080290910902019690934A -:103D3000090280930802F894F999FECF1127E091C7 -:103D40000601F0910701C8E0D1E08091080290914E -:103D50000902103091F40091570001700130D9F33D -:103D600003E000935700E89500915700017001307F -:103D7000D9F301E100935700E8950990199000915B -:103D8000570001700130D9F301E000935700E89526 -:103D90001395103498F011270091570001700130ED -:103DA000D9F305E000935700E895009157000170A2 -:103DB0000130D9F301E100935700E895329602975C -:103DC00009F0C7CF103011F00296E5CF112484E13D -:103DD00072CE8EE10E94C31C16CE84E90E94C31CE1 -:103DE00012CE81E080930B028FCF82E00E94C31C31 -:103DF0000ACE81E00E94C31C06CE80E10E94C31C53 -:103E000002CE84910E94A21C2091080230910902E6 -:103E1000E0910601F091070140CFCF930E94761CFC -:103E2000C82F0E94A21CC13614F0C75503C0C0336E -:103E30000CF0C0538C2F992787FD9095CF91089552 -:103E40000F931F930E940D1F082F112707FD109538 -:103E500002951295107F1027007F10270E940D1FDA -:103E6000800F992787FD90951F910F910895CF930B -:103E7000C82F85958595859585958A3034F0895A22 -:103E8000CF70CA3034F0C95A05C0805DCF70CA30D7 -:103E9000D4F7C05D0E94A21C8C2F0E94A21CCF915F -:043EA0000895FFCFB3 -:023EA40080009C -:0400000300003800C1 -:00000001FF diff --git a/build/linux/work/hardware/arduino/bootloaders/atmega/ATmegaBOOT_168_pro_8MHz.hex b/build/linux/work/hardware/arduino/bootloaders/atmega/ATmegaBOOT_168_pro_8MHz.hex deleted file mode 100644 index 994e47899..000000000 --- a/build/linux/work/hardware/arduino/bootloaders/atmega/ATmegaBOOT_168_pro_8MHz.hex +++ /dev/null @@ -1,126 +0,0 @@ -:103800000C94341C0C94511C0C94511C0C94511CA1 -:103810000C94511C0C94511C0C94511C0C94511C74 -:103820000C94511C0C94511C0C94511C0C94511C64 -:103830000C94511C0C94511C0C94511C0C94511C54 -:103840000C94511C0C94511C0C94511C0C94511C44 -:103850000C94511C0C94511C0C94511C0C94511C34 -:103860000C94511C0C94511C11241FBECFEFD4E0BA -:10387000DEBFCDBF11E0A0E0B1E0EEEAFFE302C0A1 -:1038800005900D92A230B107D9F712E0A2E0B1E0A5 -:1038900001C01D92AD30B107E1F70E94331D0C94B9 -:1038A000D51F0C94001C982F9595959595959595F9 -:1038B000905D8F708A307CF0282F295A8091C0004B -:1038C00085FFFCCF9093C6008091C00085FFFCCFA0 -:1038D0002093C6000895282F205DF0CF982F809167 -:1038E000C00085FFFCCF9093C6000895EF92FF9231 -:1038F0000F931F93EE24FF2487018091C00087FD62 -:1039000017C00894E11CF11C011D111D81E2E8168D -:1039100081EAF80687E0080780E0180770F3E09175 -:103920000401F091050109958091C00087FFE9CF5E -:103930008091C6001F910F91FF90EF9008950E9413 -:10394000761C982F8091C00085FFFCCF9093C60015 -:1039500091362CF490330CF09053892F089597559D -:10396000892F08951F930E949F1C182F0E949F1C4F -:103970001295107F810F1F9108951F93182F882390 -:1039800021F00E94761C1150E1F71F9108951F93BA -:10399000182F0E94761C803249F0809103018F5FBE -:1039A000809303018530C1F01F9108958091C0007C -:1039B00085FFFCCF84E18093C6008091C00085FF25 -:1039C000FCCF1093C6008091C00085FFFCCF80E142 -:1039D0008093C6001F910895E0910401F0910501C4 -:1039E00009951F9108950E94761C803241F08091C4 -:1039F00003018F5F80930301853081F008958091EA -:103A0000C00085FFFCCF84E18093C6008091C00098 -:103A100085FFFCCF80E18093C6000895E09104010A -:103A2000F09105010995089510920A028823D1F0BA -:103A300090E048EC50E02D9A28EE33E0FA013197FF -:103A4000F1F721503040D1F72D9828EE33E0FA01FC -:103A50003197F1F721503040D1F79F5F981758F315 -:103A600080930A0208953F924F925F926F927F92E5 -:103A70008F929F92AF92BF92CF92DF92EF92FF927E -:103A80000F931F93CF93DF9394B714BE8091600080 -:103A90008861809360001092600091FF0CC289E100 -:103AA0008093C4001092C50088E18093C10086E035 -:103AB0008093C2005098589A259A81E00E94141D64 -:103AC00044E1F42E3EE1E32E24E9D22E96E0C92E05 -:103AD00080E1B82EAA24A39401E4902E16E5812E4D -:103AE000B2E57B2EA0E26A2EF9E45F2EE3E54E2ECE -:103AF00070E5372E0E94761C8033B9F18133C1F115 -:103B0000803409F470C0813409F477C0823409F438 -:103B100086C0853409F489C0803539F1823529F1B0 -:103B2000813509F4AFC1853509F485C0863509F4BE -:103B30008DC0843609F435C1843709F4C1C0853796 -:103B400009F490C0863709F466C0809103018F5F45 -:103B500080930301853071F6E0910401F091050135 -:103B600009950E94761C803349F60E94F31CC2CF4F -:103B70000E94761C803249F78091C00085FFFCCFFF -:103B8000F092C6008091C00085FFFCCF9092C600E5 -:103B90008091C00085FFFCCF8092C6008091C0005C -:103BA00085FFFCCF7092C6008091C00085FFFCCFDE -:103BB0006092C6008091C00085FFFCCF5092C60085 -:103BC0008091C00085FFFCCF4092C6008091C0006C -:103BD00085FFFCCF3092C6008091C00085FFFCCFEE -:103BE000B092C60087CF0E94761C863808F4BDCFFD -:103BF0000E94761C0E94F31C7DCF0E94761C8038A8 -:103C000009F45AC0813809F453C0823809F440C11C -:103C1000883909F449C080E00E94C71C6BCF84E159 -:103C20000E94BD1C0E94F31C65CF85E00E94BD1C54 -:103C30000E94F31C5FCF0E94761C809306010E94B5 -:103C4000761C809307010E94F31C54CF0E94761CBF -:103C5000803309F421C183E00E94BD1C80E00E94F2 -:103C6000C71C48CF0E94761C803209F06ECF80912D -:103C7000C00085FFFCCFF092C6008091C00085FF98 -:103C8000FCCFE092C6008091C00085FFFCCFD092AF -:103C9000C6008091C00085FFFCCFC092C600809115 -:103CA000C00085FFFCCF9CCF83E00E94C71C22CFC1 -:103CB00081E00E94C71C1ECF82E00E94C71C1ACF61 -:103CC0000E94761C809309020E94761C8093080251 -:103CD0008091060190910701880F991F9093070129 -:103CE000809306010E94761C853409F4C5C080913A -:103CF0000C028E7F80930C020E94761C803209F0A9 -:103D0000F9CE8091C00085FFFCCFF092C600609193 -:103D10000802709109026115710591F140E050E0CF -:103D200080910C02A82FA170B82FB27010C0BB23D5 -:103D300061F1E0910601F09107013196F0930701DE -:103D4000E09306014F5F5F4F46175707C8F4AA2359 -:103D500071F3F999FECF209106013091070132BD30 -:103D600021BDF89A90B58091C00085FFFCCF90935B -:103D7000C6002F5F3F4F3093070120930601E2CF2B -:103D80008091C00085FFFCCF2BCFE0910601F09120 -:103D9000070194918091C00085FFFCCF9093C600ED -:103DA000CCCF0E94761C809309020E94761C8093DF -:103DB000080280910C028E7F80930C020E94761C78 -:103DC000853429F480910C02816080930C028091EB -:103DD000080290910902892B89F000E010E00E940E -:103DE000761CF801E85FFE4F80830F5F1F4F8091C4 -:103DF0000802909109020817190788F30E94761C9F -:103E0000803209F0A2CE80910C0280FF62C0409106 -:103E1000060150910701440F551F5093070140932D -:103E20000601609108027091090261157105C9F0DF -:103E3000E8E0F1E09A01DB01AE0FBF1FF999FECF78 -:103E400032BD21BD819180BDFA9AF99A2F5F3F4F13 -:103E5000EA17FB0799F7460F571F50930701409346 -:103E600006018091C00085FFFCCFF092C6008091D2 -:103E7000C00085FFFCCFB4CE80910C02816080939E -:103E80000C023ACF0E94F31C88E080936000FFCFC1 -:103E900080E10E94C71C2ECE0E94761C0E94761CD8 -:103EA000182F0E94761C112381F0113051F086E00A -:103EB0000E94C71C1FCEE0910401F09105010995F5 -:103EC000EECD84E90E94C71C15CE8EE10E94C71C6E -:103ED00011CE809107018823880F880B8A21809357 -:103EE0000B028091060190910701880F991F909312 -:103EF0000701809306018091080280FF09C080912C -:103F00000802909109020196909309028093080299 -:103F1000F894F999FECF1127E0910601F09107017D -:103F2000C8E0D1E08091080290910902103091F42C -:103F30000091570001700130D9F303E0009357005E -:103F4000E8950091570001700130D9F301E1009329 -:103F50005700E895099019900091570001700130C1 -:103F6000D9F301E000935700E8951395103498F0C9 -:103F700011270091570001700130D9F305E000933B -:103F80005700E8950091570001700130D9F301E125 -:103F900000935700E8953296029709F0C7CF10308A -:0E3FA00011F00296E5CF11245CCFF894FFCF0C -:023FAE00800091 -:0400000300003800C1 -:00000001FF diff --git a/build/linux/work/hardware/arduino/bootloaders/atmega/Makefile b/build/linux/work/hardware/arduino/bootloaders/atmega/Makefile deleted file mode 100644 index 0fd54db7f..000000000 --- a/build/linux/work/hardware/arduino/bootloaders/atmega/Makefile +++ /dev/null @@ -1,224 +0,0 @@ -# Makefile for ATmegaBOOT -# E.Lins, 18.7.2005 -# $Id$ -# -# Instructions -# -# To make bootloader .hex file: -# make diecimila -# make lilypad -# make ng -# etc... -# -# To burn bootloader .hex file: -# make diecimila_isp -# make lilypad_isp -# make ng_isp -# etc... - -# program name should not be changed... -PROGRAM = ATmegaBOOT_168 - -# enter the parameters for the avrdude isp tool -ISPTOOL = stk500v2 -ISPPORT = usb -ISPSPEED = -b 115200 - -MCU_TARGET = atmega168 -LDSECTION = --section-start=.text=0x3800 - -# the efuse should really be 0xf8; since, however, only the lower -# three bits of that byte are used on the atmega168, avrdude gets -# confused if you specify 1's for the higher bits, see: -# http://tinker.it/now/2007/02/24/the-tale-of-avrdude-atmega168-and-extended-bits-fuses/ -# -# similarly, the lock bits should be 0xff instead of 0x3f (to -# unlock the bootloader section) and 0xcf instead of 0x0f (to -# lock it), but since the high two bits of the lock byte are -# unused, avrdude would get confused. - -ISPFUSES = avrdude -c $(ISPTOOL) -p $(MCU_TARGET) -P $(ISPPORT) $(ISPSPEED) \ --e -u -U lock:w:0x3f:m -U efuse:w:0x$(EFUSE):m -U hfuse:w:0x$(HFUSE):m -U lfuse:w:0x$(LFUSE):m -ISPFLASH = avrdude -c $(ISPTOOL) -p $(MCU_TARGET) -P $(ISPPORT) $(ISPSPEED) \ --U flash:w:$(PROGRAM)_$(TARGET).hex -U lock:w:0x0f:m - -STK500 = "C:\Program Files\Atmel\AVR Tools\STK500\Stk500.exe" -STK500-1 = $(STK500) -e -d$(MCU_TARGET) -pf -vf -if$(PROGRAM)_$(TARGET).hex \ --lFF -LFF -f$(HFUSE)$(LFUSE) -EF8 -ms -q -cUSB -I200kHz -s -wt -STK500-2 = $(STK500) -d$(MCU_TARGET) -ms -q -lCF -LCF -cUSB -I200kHz -s -wt - - -OBJ = $(PROGRAM).o -OPTIMIZE = -O2 - -DEFS = -LIBS = - -CC = avr-gcc - -# Override is only needed by avr-lib build system. - -override CFLAGS = -g -Wall $(OPTIMIZE) -mmcu=$(MCU_TARGET) -DF_CPU=$(AVR_FREQ) $(DEFS) -override LDFLAGS = -Wl,$(LDSECTION) -#override LDFLAGS = -Wl,-Map,$(PROGRAM).map,$(LDSECTION) - -OBJCOPY = avr-objcopy -OBJDUMP = avr-objdump - -all: - -lilypad: TARGET = lilypad -lilypad: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>1' '-DNUM_LED_FLASHES=3' -lilypad: AVR_FREQ = 8000000L -lilypad: $(PROGRAM)_lilypad.hex - -lilypad_isp: lilypad -lilypad_isp: TARGET = lilypad -lilypad_isp: HFUSE = DD -lilypad_isp: LFUSE = E2 -lilypad_isp: EFUSE = 00 -lilypad_isp: isp - -lilypad_resonator: TARGET = lilypad_resonator -lilypad_resonator: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=3' -lilypad_resonator: AVR_FREQ = 8000000L -lilypad_resonator: $(PROGRAM)_lilypad_resonator.hex - -lilypad_resonator_isp: lilypad_resonator -lilypad_resonator_isp: TARGET = lilypad_resonator -lilypad_resonator_isp: HFUSE = DD -lilypad_resonator_isp: LFUSE = C6 -lilypad_resonator_isp: EFUSE = 00 -lilypad_resonator_isp: isp - -pro8: TARGET = pro_8MHz -pro8: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=1' '-DWATCHDOG_MODS' -pro8: AVR_FREQ = 8000000L -pro8: $(PROGRAM)_pro_8MHz.hex - -pro8_isp: pro8 -pro8_isp: TARGET = pro_8MHz -pro8_isp: HFUSE = DD -pro8_isp: LFUSE = C6 -pro8_isp: EFUSE = 00 -pro8_isp: isp - -pro16: TARGET = pro_16MHz -pro16: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=1' '-DWATCHDOG_MODS' -pro16: AVR_FREQ = 16000000L -pro16: $(PROGRAM)_pro_16MHz.hex - -pro16_isp: pro16 -pro16_isp: TARGET = pro_16MHz -pro16_isp: HFUSE = DD -pro16_isp: LFUSE = C6 -pro16_isp: EFUSE = 00 -pro16_isp: isp - -pro20: TARGET = pro_20mhz -pro20: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=1' '-DWATCHDOG_MODS' -pro20: AVR_FREQ = 20000000L -pro20: $(PROGRAM)_pro_20mhz.hex - -pro20_isp: pro20 -pro20_isp: TARGET = pro_20mhz -pro20_isp: HFUSE = DD -pro20_isp: LFUSE = C6 -pro20_isp: EFUSE = 00 -pro20_isp: isp - -diecimila: TARGET = diecimila -diecimila: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=1' -diecimila: AVR_FREQ = 16000000L -diecimila: $(PROGRAM)_diecimila.hex - -diecimila_isp: diecimila -diecimila_isp: TARGET = diecimila -diecimila_isp: HFUSE = DD -diecimila_isp: LFUSE = FF -diecimila_isp: EFUSE = 00 -diecimila_isp: isp - -ng: TARGET = ng -ng: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>1' '-DNUM_LED_FLASHES=3' -ng: AVR_FREQ = 16000000L -ng: $(PROGRAM)_ng.hex - -ng_isp: ng -ng_isp: TARGET = ng -ng_isp: HFUSE = DD -ng_isp: LFUSE = FF -ng_isp: EFUSE = 00 -ng_isp: isp - -atmega328: TARGET = atmega328 -atmega328: MCU_TARGET = atmega328p -atmega328: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=1' -DBAUD_RATE=57600 -atmega328: AVR_FREQ = 16000000L -atmega328: LDSECTION = --section-start=.text=0x7800 -atmega328: $(PROGRAM)_atmega328.hex - -atmega328_isp: atmega328 -atmega328_isp: TARGET = atmega328 -atmega328_isp: MCU_TARGET = atmega328p -atmega328_isp: HFUSE = DA -atmega328_isp: LFUSE = FF -atmega328_isp: EFUSE = 05 -atmega328_isp: isp - -atmega328_pro8: TARGET = atmega328_pro_8MHz -atmega328_pro8: MCU_TARGET = atmega328p -atmega328_pro8: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=1' -DBAUD_RATE=57600 -DDOUBLE_SPEED -atmega328_pro8: AVR_FREQ = 8000000L -atmega328_pro8: LDSECTION = --section-start=.text=0x7800 -atmega328_pro8: $(PROGRAM)_atmega328_pro_8MHz.hex - -atmega328_pro8_isp: atmega328_pro8 -atmega328_pro8_isp: TARGET = atmega328_pro_8MHz -atmega328_pro8_isp: MCU_TARGET = atmega328p -atmega328_pro8_isp: HFUSE = DA -atmega328_pro8_isp: LFUSE = FF -atmega328_pro8_isp: EFUSE = 05 -atmega328_pro8_isp: isp - -mega: TARGET = atmega1280 -mega: MCU_TARGET = atmega1280 -mega: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=0' -DBAUD_RATE=57600 -mega: AVR_FREQ = 16000000L -mega: LDSECTION = --section-start=.text=0x1F000 -mega: $(PROGRAM)_atmega1280.hex - -mega_isp: mega -mega_isp: TARGET = atmega1280 -mega_isp: MCU_TARGET = atmega1280 -mega_isp: HFUSE = DA -mega_isp: LFUSE = FF -mega_isp: EFUSE = F5 -mega_isp: isp - -isp: $(TARGET) - $(ISPFUSES) - $(ISPFLASH) - -isp-stk500: $(PROGRAM)_$(TARGET).hex - $(STK500-1) - $(STK500-2) - -%.elf: $(OBJ) - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS) - -clean: - rm -rf *.o *.elf *.lst *.map *.sym *.lss *.eep *.srec *.bin *.hex - -%.lst: %.elf - $(OBJDUMP) -h -S $< > $@ - -%.hex: %.elf - $(OBJCOPY) -j .text -j .data -O ihex $< $@ - -%.srec: %.elf - $(OBJCOPY) -j .text -j .data -O srec $< $@ - -%.bin: %.elf - $(OBJCOPY) -j .text -j .data -O binary $< $@ - diff --git a/build/linux/work/hardware/arduino/bootloaders/atmega8/ATmegaBOOT.c b/build/linux/work/hardware/arduino/bootloaders/atmega8/ATmegaBOOT.c deleted file mode 100644 index 17977e676..000000000 --- a/build/linux/work/hardware/arduino/bootloaders/atmega8/ATmegaBOOT.c +++ /dev/null @@ -1,507 +0,0 @@ -/**********************************************************/ -/* Serial Bootloader for Atmel mega8 AVR Controller */ -/* */ -/* ATmegaBOOT.c */ -/* */ -/* Copyright (c) 2003, Jason P. Kyle */ -/* */ -/* Hacked by DojoCorp - ZGZ - MMX - IVR */ -/* Hacked by David A. Mellis */ -/* */ -/* 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 2 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, write */ -/* to the Free Software Foundation, Inc., */ -/* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -/* */ -/* Licence can be viewed at */ -/* http://www.fsf.org/licenses/gpl.txt */ -/* */ -/* Target = Atmel AVR m8 */ -/**********************************************************/ - -#include -#include -#include -#include -#include -#include - -//#define F_CPU 16000000 - -/* We, Malmoitians, like slow interaction - * therefore the slow baud rate ;-) - */ -//#define BAUD_RATE 9600 - -/* 6.000.000 is more or less 8 seconds at the - * speed configured here - */ -//#define MAX_TIME_COUNT 6000000 -#define MAX_TIME_COUNT (F_CPU>>1) -///#define MAX_TIME_COUNT_MORATORY 1600000 - -/* SW_MAJOR and MINOR needs to be updated from time to time to avoid warning message from AVR Studio */ -#define HW_VER 0x02 -#define SW_MAJOR 0x01 -#define SW_MINOR 0x12 - -// AVR-GCC compiler compatibility -// avr-gcc compiler v3.1.x and older doesn't support outb() and inb() -// if necessary, convert outb and inb to outp and inp -#ifndef outb - #define outb(sfr,val) (_SFR_BYTE(sfr) = (val)) -#endif -#ifndef inb - #define inb(sfr) _SFR_BYTE(sfr) -#endif - -/* defines for future compatibility */ -#ifndef cbi - #define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit)) -#endif -#ifndef sbi - #define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit)) -#endif - -/* Adjust to suit whatever pin your hardware uses to enter the bootloader */ -#define eeprom_rb(addr) eeprom_read_byte ((uint8_t *)(addr)) -#define eeprom_rw(addr) eeprom_read_word ((uint16_t *)(addr)) -#define eeprom_wb(addr, val) eeprom_write_byte ((uint8_t *)(addr), (uint8_t)(val)) - -/* Onboard LED is connected to pin PB5 */ -#define LED_DDR DDRB -#define LED_PORT PORTB -#define LED_PIN PINB -#define LED PINB5 - - -#define SIG1 0x1E // Yep, Atmel is the only manufacturer of AVR micros. Single source :( -#define SIG2 0x93 -#define SIG3 0x07 -#define PAGE_SIZE 0x20U //32 words - - -void putch(char); -char getch(void); -void getNch(uint8_t); -void byte_response(uint8_t); -void nothing_response(void); - -union address_union { - uint16_t word; - uint8_t byte[2]; -} address; - -union length_union { - uint16_t word; - uint8_t byte[2]; -} length; - -struct flags_struct { - unsigned eeprom : 1; - unsigned rampz : 1; -} flags; - -uint8_t buff[256]; -//uint8_t address_high; - -uint8_t pagesz=0x80; - -uint8_t i; -//uint8_t bootuart0=0,bootuart1=0; - - -void (*app_start)(void) = 0x0000; - -int main(void) -{ - uint8_t ch,ch2; - uint16_t w; - - //cbi(BL_DDR,BL); - //sbi(BL_PORT,BL); - - asm volatile("nop\n\t"); - - /* check if flash is programmed already, if not start bootloader anyway */ - //if(pgm_read_byte_near(0x0000) != 0xFF) { - - /* check if bootloader pin is set low */ - //if(bit_is_set(BL_PIN,BL)) app_start(); - //} - - /* initialize UART(s) depending on CPU defined */ - /* m8 */ - UBRRH = (((F_CPU/BAUD_RATE)/16)-1)>>8; // set baud rate - UBRRL = (((F_CPU/BAUD_RATE)/16)-1); - UCSRB = (1<> 8; - //UCSRA = 0x00; - //UCSRC = 0x86; - //UCSRB = _BV(TXEN)|_BV(RXEN); - - - /* this was giving uisp problems, so I removed it; without it, the boot - works on with uisp and avrdude on the mac (at least). */ - //putch('\0'); - - //uint32_t l; - //uint32_t time_count; - //time_count=0; - - /* set LED pin as output */ - sbi(LED_DDR,LED); - for (i = 0; i < 16; i++) { - outb(LED_PORT, inb(LED_PORT) ^ _BV(LED)); - _delay_loop_2(0); - } - - //for (l=0; l<40000000; l++) - //outb(LED_PORT, inb(LED_PORT) ^= _BV(LED)); - - /* flash onboard LED three times to signal entering of bootloader */ - //for(i=0; i<3; ++i) { - //for(l=0; l<40000000; ++l); - //sbi(LED_PORT,LED); - //for(l=0; l<40000000; ++l); - //cbi(LED_PORT,LED); - //} - - /* see comment at previous call to putch() */ - //putch('\0'); // this line is needed for the synchronization of the programmer - - /* forever */ - for (;;) { - //if((inb(UCSRA) & _BV(RXC))){ - /* get character from UART */ - ch = getch(); - - /* A bunch of if...else if... gives smaller code than switch...case ! */ - - /* Hello is anyone home ? */ - if(ch=='0') { - nothing_response(); - } - - /* Request programmer ID */ - /* Not using PROGMEM string due to boot block in m128 being beyond 64kB boundry */ - /* Would need to selectively manipulate RAMPZ, and it's only 9 characters anyway so who cares. */ - else if(ch=='1') { - if (getch() == ' ') { - putch(0x14); - putch('A'); - putch('V'); - putch('R'); - putch(' '); - putch('I'); - putch('S'); - putch('P'); - putch(0x10); - } - } - - /* AVR ISP/STK500 board commands DON'T CARE so default nothing_response */ - else if(ch=='@') { - ch2 = getch(); - if (ch2>0x85) getch(); - nothing_response(); - } - - /* AVR ISP/STK500 board requests */ - else if(ch=='A') { - ch2 = getch(); - if(ch2==0x80) byte_response(HW_VER); // Hardware version - else if(ch2==0x81) byte_response(SW_MAJOR); // Software major version - else if(ch2==0x82) byte_response(SW_MINOR); // Software minor version - //else if(ch2==0x98) byte_response(0x03); // Unknown but seems to be required by avr studio 3.56 - else byte_response(0x00); // Covers various unnecessary responses we don't care about - } - - /* Device Parameters DON'T CARE, DEVICE IS FIXED */ - else if(ch=='B') { - getNch(20); - nothing_response(); - } - - /* Parallel programming stuff DON'T CARE */ - else if(ch=='E') { - getNch(5); - nothing_response(); - } - - /* Enter programming mode */ - else if(ch=='P') { - nothing_response(); - // FIXME: modified only here by DojoCorp, Mumbai, India, 20050626 - //time_count=0; // exted the delay once entered prog.mode - } - - /* Leave programming mode */ - else if(ch=='Q') { - nothing_response(); - //time_count=MAX_TIME_COUNT_MORATORY; // once the programming is done, - // we should start the application - // but uisp has problems with this, - // therefore we just change the times - // and give the programmer 1 sec to react - } - - /* Erase device, don't care as we will erase one page at a time anyway. */ - else if(ch=='R') { - nothing_response(); - } - - /* Set address, little endian. EEPROM in bytes, FLASH in words */ - /* Perhaps extra address bytes may be added in future to support > 128kB FLASH. */ - /* This might explain why little endian was used here, big endian used everywhere else. */ - else if(ch=='U') { - address.byte[0] = getch(); - address.byte[1] = getch(); - nothing_response(); - } - - /* Universal SPI programming command, disabled. Would be used for fuses and lock bits. */ - else if(ch=='V') { - getNch(4); - byte_response(0x00); - } - - /* Write memory, length is big endian and is in bytes */ - else if(ch=='d') { - length.byte[1] = getch(); - length.byte[0] = getch(); - flags.eeprom = 0; - if (getch() == 'E') flags.eeprom = 1; - for (w=0;w127) address_high = 0x01; //Only possible with m128, m256 will need 3rd address byte. FIXME - //else address_high = 0x00; - - //address.word = address.word << 1; //address * 2 -> byte location - //if ((length.byte[0] & 0x01)) length.word++; //Even up an odd number of bytes - cli(); //Disable interrupts, just to be sure - while(bit_is_set(EECR,EEWE)); //Wait for previous EEPROM writes to complete - asm volatile( - "clr r17 \n\t" //page_word_count - "lds r30,address \n\t" //Address of FLASH location (in words) - "lds r31,address+1 \n\t" - "lsl r30 \n\t" //address * 2 -> byte location - "rol r31 \n\t" - "ldi r28,lo8(buff) \n\t" //Start of buffer array in RAM - "ldi r29,hi8(buff) \n\t" - "lds r24,length \n\t" //Length of data to be written (in bytes) - "lds r25,length+1 \n\t" - "sbrs r24,0 \n\t" //Even up an odd number of bytes - "rjmp length_loop \n\t" - "adiw r24,1 \n\t" - "length_loop: \n\t" //Main loop, repeat for number of words in block - "cpi r17,0x00 \n\t" //If page_word_count=0 then erase page - "brne no_page_erase \n\t" - "rcall wait_spm \n\t" -// "wait_spm1: \n\t" -// "lds r16,%0 \n\t" //Wait for previous spm to complete -// "andi r16,1 \n\t" -// "cpi r16,1 \n\t" -// "breq wait_spm1 \n\t" - "ldi r16,0x03 \n\t" //Erase page pointed to by Z - "sts %0,r16 \n\t" - "spm \n\t" - "rcall wait_spm \n\t" -// "wait_spm2: \n\t" -// "lds r16,%0 \n\t" //Wait for previous spm to complete -// "andi r16,1 \n\t" -// "cpi r16,1 \n\t" -// "breq wait_spm2 \n\t" - "ldi r16,0x11 \n\t" //Re-enable RWW section - "sts %0,r16 \n\t" - "spm \n\t" - "no_page_erase: \n\t" - "ld r0,Y+ \n\t" //Write 2 bytes into page buffer - "ld r1,Y+ \n\t" - - "rcall wait_spm \n\t" -// "wait_spm3: \n\t" -// "lds r16,%0 \n\t" //Wait for previous spm to complete -// "andi r16,1 \n\t" -// "cpi r16,1 \n\t" -// "breq wait_spm3 \n\t" - "ldi r16,0x01 \n\t" //Load r0,r1 into FLASH page buffer - "sts %0,r16 \n\t" - "spm \n\t" - - "inc r17 \n\t" //page_word_count++ - "cpi r17,%1 \n\t" - "brlo same_page \n\t" //Still same page in FLASH - "write_page: \n\t" - "clr r17 \n\t" //New page, write current one first - "rcall wait_spm \n\t" -// "wait_spm4: \n\t" -// "lds r16,%0 \n\t" //Wait for previous spm to complete -// "andi r16,1 \n\t" -// "cpi r16,1 \n\t" -// "breq wait_spm4 \n\t" - "ldi r16,0x05 \n\t" //Write page pointed to by Z - "sts %0,r16 \n\t" - "spm \n\t" - "rcall wait_spm \n\t" -// "wait_spm5: \n\t" -// "lds r16,%0 \n\t" //Wait for previous spm to complete -// "andi r16,1 \n\t" -// "cpi r16,1 \n\t" -// "breq wait_spm5 \n\t" - "ldi r16,0x11 \n\t" //Re-enable RWW section - "sts %0,r16 \n\t" - "spm \n\t" - "same_page: \n\t" - "adiw r30,2 \n\t" //Next word in FLASH - "sbiw r24,2 \n\t" //length-2 - "breq final_write \n\t" //Finished - "rjmp length_loop \n\t" - - "wait_spm: \n\t" - "lds r16,%0 \n\t" //Wait for previous spm to complete - "andi r16,1 \n\t" - "cpi r16,1 \n\t" - "breq wait_spm \n\t" - "ret \n\t" - - "final_write: \n\t" - "cpi r17,0 \n\t" - "breq block_done \n\t" - "adiw r24,2 \n\t" //length+2, fool above check on length after short page write - "rjmp write_page \n\t" - "block_done: \n\t" - "clr __zero_reg__ \n\t" //restore zero register - : "=m" (SPMCR) : "M" (PAGE_SIZE) : "r0","r16","r17","r24","r25","r28","r29","r30","r31"); - - /* Should really add a wait for RWW section to be enabled, don't actually need it since we never */ - /* exit the bootloader without a power cycle anyhow */ - } - putch(0x14); - putch(0x10); - } - } - - /* Read memory block mode, length is big endian. */ - else if(ch=='t') { - length.byte[1] = getch(); - length.byte[0] = getch(); - if (getch() == 'E') flags.eeprom = 1; - else { - flags.eeprom = 0; - address.word = address.word << 1; // address * 2 -> byte location - } - if (getch() == ' ') { // Command terminator - putch(0x14); - for (w=0;w < length.word;w++) { // Can handle odd and even lengths okay - if (flags.eeprom) { // Byte access EEPROM read - putch(eeprom_rb(address.word)); - address.word++; - } else { - if (!flags.rampz) putch(pgm_read_byte_near(address.word)); - address.word++; - } - } - putch(0x10); - } - } - - /* Get device signature bytes */ - else if(ch=='u') { - if (getch() == ' ') { - putch(0x14); - putch(SIG1); - putch(SIG2); - putch(SIG3); - putch(0x10); - } - } - - /* Read oscillator calibration byte */ - else if(ch=='v') { - byte_response(0x00); - } -// } else { -// time_count++; -// if (time_count>=MAX_TIME_COUNT) { -// app_start(); -// } -// } - } /* end of forever loop */ -} - -void putch(char ch) -{ - /* m8 */ - while (!(inb(UCSRA) & _BV(UDRE))); - outb(UDR,ch); -} - -char getch(void) -{ - /* m8 */ - uint32_t count = 0; - while(!(inb(UCSRA) & _BV(RXC))) { - /* HACKME:: here is a good place to count times*/ - count++; - if (count > MAX_TIME_COUNT) - app_start(); - } - return (inb(UDR)); -} - -void getNch(uint8_t count) -{ - uint8_t i; - for(i=0;i $@ - -size: $(PROGRAM).hex - $(SIZE) $^ - -# Rules for building the .text rom images - -text: hex bin srec - -hex: $(PROGRAM).hex -bin: $(PROGRAM).bin -srec: $(PROGRAM).srec - -%.hex: %.elf - $(OBJCOPY) -j .text -j .data -O ihex $< $@ - -%.srec: %.elf - $(OBJCOPY) -j .text -j .data -O srec $< $@ - -%.bin: %.elf - $(OBJCOPY) -j .text -j .data -O binary $< $@ diff --git a/build/linux/work/hardware/arduino/bootloaders/bt/ATmegaBOOT_168.c b/build/linux/work/hardware/arduino/bootloaders/bt/ATmegaBOOT_168.c deleted file mode 100644 index c73eefa14..000000000 --- a/build/linux/work/hardware/arduino/bootloaders/bt/ATmegaBOOT_168.c +++ /dev/null @@ -1,1038 +0,0 @@ -/**********************************************************/ -/* Serial Bootloader for Atmel megaAVR Controllers */ -/* */ -/* tested with ATmega8, ATmega128 and ATmega168 */ -/* should work with other mega's, see code for details */ -/* */ -/* ATmegaBOOT.c */ -/* */ -/* build: 050815 */ -/* date : 15.08.2005 */ -/* */ -/* 20060802: hacked for Arduino by D. Cuartielles */ -/* based on a previous hack by D. Mellis */ -/* and D. Cuartielles */ -/* */ -/* Monitor and debug functions were added to the original */ -/* code by Dr. Erik Lins, chip45.com. (See below) */ -/* */ -/* Thanks to Karl Pitrich for fixing a bootloader pin */ -/* problem and more informative LED blinking! */ -/* */ -/* For the latest version see: */ -/* http://www.chip45.com/ */ -/* */ -/* ------------------------------------------------------ */ -/* */ -/* based on stk500boot.c */ -/* Copyright (c) 2003, Jason P. Kyle */ -/* All rights reserved. */ -/* see avr1.org for original file and information */ -/* */ -/* 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 2 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, write */ -/* to the Free Software Foundation, Inc., */ -/* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -/* */ -/* Licence can be viewed at */ -/* http://www.fsf.org/licenses/gpl.txt */ -/* */ -/* Target = Atmel AVR m128,m64,m32,m16,m8,m162,m163,m169, */ -/* m8515,m8535. ATmega161 has a very small boot block so */ -/* isn't supported. */ -/* */ -/* Tested with m128,m8,m163 - feel free to let me know */ -/* how/if it works for you. */ -/* */ -/**********************************************************/ - - -/* some includes */ -#include -#include -#include -#include -#include - - -#define set_output(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit)) -#define set_input(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit)) - - -#define high(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit)) -#define low(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit)) - - - - -/* the current avr-libc eeprom functions do not support the ATmega168 */ -/* own eeprom write/read functions are used instead */ -#if !defined(__AVR_ATmega168__) || !defined(__AVR_ATmega328P__) -#include -#endif - -/* define F_CPU according to AVR_FREQ set in Makefile */ -/* Is there a better way to pass such a parameter from Makefile to source code ? */ - -#define F_CPU 16000000L - -#include - - -/* 20060803: hacked by DojoCorp */ -/* set the waiting time for the bootloader */ -#define MAX_TIME_COUNT (F_CPU>>1) - -/* set the UART baud rate */ -/* 20060803: hacked by DojoCorp */ -#define BAUD_RATE 115200 - - -/* SW_MAJOR and MINOR needs to be updated from time to time to avoid warning message from AVR Studio */ -/* never allow AVR Studio to do an update !!!! */ -#define HW_VER 0x02 -#define SW_MAJOR 0x01 -#define SW_MINOR 0x0f - - -/* Adjust to suit whatever pin your hardware uses to enter the bootloader */ -/* ATmega128 has two UARTS so two pins are used to enter bootloader and select UART */ -/* BL0... means UART0, BL1... means UART1 */ -#ifdef __AVR_ATmega128__ -#define BL_DDR DDRF -#define BL_PORT PORTF -#define BL_PIN PINF -#define BL0 PINF7 -#define BL1 PINF6 -#else -/* other ATmegas have only one UART, so only one pin is defined to enter bootloader */ -#define BL_DDR DDRD -#define BL_PORT PORTD -#define BL_PIN PIND -#define BL PIND6 -#endif - - -/* onboard LED is used to indicate, that the bootloader was entered (3x flashing) */ -/* if monitor functions are included, LED goes on after monitor was entered */ -#ifdef __AVR_ATmega128__ -/* Onboard LED is connected to pin PB7 (e.g. Crumb128, PROBOmega128, Savvy128) */ -#define LED_DDR DDRB -#define LED_PORT PORTB -#define LED_PIN PINB -#define LED PINB7 -#else -/* Onboard LED is connected to pin PB2 (e.g. Crumb8, Crumb168) */ -#define LED_DDR DDRB -#define LED_PORT PORTB -#define LED_PIN PINB -/* 20060803: hacked by DojoCorp, LED pin is B5 in Arduino */ -/* #define LED PINB2 */ -#define LED PINB5 -#endif - - -/* monitor functions will only be compiled when using ATmega128, due to bootblock size constraints */ -#ifdef __AVR_ATmega128__ -#define MONITOR -#endif - - -/* define various device id's */ -/* manufacturer byte is always the same */ -#define SIG1 0x1E // Yep, Atmel is the only manufacturer of AVR micros. Single source :( - -#if defined __AVR_ATmega128__ -#define SIG2 0x97 -#define SIG3 0x02 -#define PAGE_SIZE 0x80U //128 words - -#elif defined __AVR_ATmega64__ -#define SIG2 0x96 -#define SIG3 0x02 -#define PAGE_SIZE 0x80U //128 words - -#elif defined __AVR_ATmega32__ -#define SIG2 0x95 -#define SIG3 0x02 -#define PAGE_SIZE 0x40U //64 words - -#elif defined __AVR_ATmega16__ -#define SIG2 0x94 -#define SIG3 0x03 -#define PAGE_SIZE 0x40U //64 words - -#elif defined __AVR_ATmega8__ -#define SIG2 0x93 -#define SIG3 0x07 -#define PAGE_SIZE 0x20U //32 words - -#elif defined __AVR_ATmega88__ -#define SIG2 0x93 -#define SIG3 0x0a -#define PAGE_SIZE 0x20U //32 words - -#elif defined __AVR_ATmega168__ -#define SIG2 0x94 -#define SIG3 0x06 -#define PAGE_SIZE 0x40U //64 words - -#elif defined __AVR_ATmega328P__ -#define SIG2 0x95 -#define SIG3 0x0F -#define PAGE_SIZE 0x40U //64 words - -#elif defined __AVR_ATmega162__ -#define SIG2 0x94 -#define SIG3 0x04 -#define PAGE_SIZE 0x40U //64 words - -#elif defined __AVR_ATmega163__ -#define SIG2 0x94 -#define SIG3 0x02 -#define PAGE_SIZE 0x40U //64 words - -#elif defined __AVR_ATmega169__ -#define SIG2 0x94 -#define SIG3 0x05 -#define PAGE_SIZE 0x40U //64 words - -#elif defined __AVR_ATmega8515__ -#define SIG2 0x93 -#define SIG3 0x06 -#define PAGE_SIZE 0x20U //32 words - -#elif defined __AVR_ATmega8535__ -#define SIG2 0x93 -#define SIG3 0x08 -#define PAGE_SIZE 0x20U //32 words -#endif - - -/* function prototypes */ -void putch(char); -char getch(void); -void getNch(uint8_t); -void byte_response(uint8_t); -void nothing_response(void); -char gethex(void); -void puthex(char); -void flash_led(uint8_t); - -/* some variables */ -union address_union { - uint16_t word; - uint8_t byte[2]; -} address; - -union length_union { - uint16_t word; - uint8_t byte[2]; -} length; - -struct flags_struct { - unsigned eeprom : 1; - unsigned rampz : 1; -} flags; - -uint8_t buff[256]; -uint8_t address_high; - -uint8_t pagesz=0x80; - -uint8_t i; -uint8_t bootuart = 0; - -void (*app_start)(void) = 0x0000; - - -/* main program starts here */ -int main(void) -{ - uint8_t ch,ch2; - uint16_t w; - - asm volatile("nop\n\t"); - - /* set pin direction for bootloader pin and enable pullup */ - /* for ATmega128, two pins need to be initialized */ -#ifdef __AVR_ATmega128__ - BL_DDR &= ~_BV(BL0); - BL_DDR &= ~_BV(BL1); - BL_PORT |= _BV(BL0); - BL_PORT |= _BV(BL1); -#else - BL_DDR &= ~_BV(BL); - BL_PORT |= _BV(BL); -#endif - - -#ifdef __AVR_ATmega128__ - /* check which UART should be used for booting */ - if(bit_is_clear(BL_PIN, BL0)) { - bootuart = 1; - } - else if(bit_is_clear(BL_PIN, BL1)) { - bootuart = 2; - } -#endif - - /* check if flash is programmed already, if not start bootloader anyway */ - if(pgm_read_byte_near(0x0000) != 0xFF) { - -#ifdef __AVR_ATmega128__ - /* no UART was selected, start application */ - if(!bootuart) { - app_start(); - } -#else - /* check if bootloader pin is set low */ - /* we don't start this part neither for the m8, nor m168 */ - //if(bit_is_set(BL_PIN, BL)) { - // app_start(); - // } -#endif - } - -#ifdef __AVR_ATmega128__ - /* no bootuart was selected, default to uart 0 */ - if(!bootuart) { - bootuart = 1; - } -#endif - - - /* initialize UART(s) depending on CPU defined */ -#ifdef __AVR_ATmega128__ - if(bootuart == 1) { - UBRR0L = (uint8_t)(F_CPU/(BAUD_RATE*16L)-1); - UBRR0H = (F_CPU/(BAUD_RATE*16L)-1) >> 8; - UCSR0A = 0x00; - UCSR0C = 0x06; - UCSR0B = _BV(TXEN0)|_BV(RXEN0); - } - if(bootuart == 2) { - UBRR1L = (uint8_t)(F_CPU/(BAUD_RATE*16L)-1); - UBRR1H = (F_CPU/(BAUD_RATE*16L)-1) >> 8; - UCSR1A = 0x00; - UCSR1C = 0x06; - UCSR1B = _BV(TXEN1)|_BV(RXEN1); - } -#elif defined __AVR_ATmega163__ - UBRR = (uint8_t)(F_CPU/(BAUD_RATE*16L)-1); - UBRRHI = (F_CPU/(BAUD_RATE*16L)-1) >> 8; - UCSRA = 0x00; - UCSRB = _BV(TXEN)|_BV(RXEN); -#elif defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) - - UBRR0H = ((F_CPU / 16 + BAUD_RATE / 2) / BAUD_RATE - 1) >> 8; - UBRR0L = ((F_CPU / 16 + BAUD_RATE / 2) / BAUD_RATE - 1); - - - //UBRR0L = (uint8_t)(F_CPU/(BAUD_RATE*16L)-1); - //UBRR0H = (F_CPU/(BAUD_RATE*16L)-1) >> 8; - UCSR0B = (1<>8; // set baud rate - UBRRL = (((F_CPU/BAUD_RATE)/16)-1); - UCSRB = (1<> 8; - UCSRA = 0x00; - UCSRC = 0x06; - UCSRB = _BV(TXEN)|_BV(RXEN); -#endif - - /* set LED pin as output */ - LED_DDR |= _BV(LED); - - - - set_output(DDRD,PIND7); - high(PORTD,PD7); - for (i = 0; i < 16; i++) { - - _delay_loop_2(0); - } - - - low(PORTD,PD7); - - - /* flash onboard LED to signal entering of bootloader */ -#ifdef __AVR_ATmega128__ - // 4x for UART0, 5x for UART1 - flash_led(3 + bootuart); -#else - flash_led(3); -#endif - - /* 20050803: by DojoCorp, this is one of the parts provoking the - system to stop listening, cancelled from the original */ - //putch('\0'); - - - //message("SET BT PAGEMODE 3 2000 1"); -putch('S'); -putch('E'); -putch('T'); -putch(' '); -putch('B'); -putch('T'); -putch(' '); -putch('P'); -putch('A'); -putch('G'); -putch('E'); -putch('M'); -putch('O'); -putch('D'); -putch('E'); -putch(' '); -putch('3'); -putch(' '); -putch('2'); -putch('0'); -putch('0'); -putch('0'); -putch(' '); -putch('1'); -putch(0x0D); - - - //put_s("SET BT ROLE 0 f 7d00"); - putch('S'); - putch('E'); - putch('T'); - putch(' '); - putch('B'); - putch('T'); - putch(' '); - putch('R'); - putch('O'); - putch('L'); - putch('E'); - putch(' '); - putch('0'); - putch(' '); - putch('f'); - putch(' '); - putch('7'); - putch('d'); - putch('0'); - putch('0'); - putch(0x0D); - - - - - - - /* forever loop */ - for (;;) { - - /* get character from UART */ - ch = getch(); - - /* A bunch of if...else if... gives smaller code than switch...case ! */ - - /* Hello is anyone home ? */ - if(ch=='0') { - nothing_response(); - } - - - /* Request programmer ID */ - /* Not using PROGMEM string due to boot block in m128 being beyond 64kB boundry */ - /* Would need to selectively manipulate RAMPZ, and it's only 9 characters anyway so who cares. */ - else if(ch=='1') { - if (getch() == ' ') { - putch(0x14); - putch('A'); - putch('V'); - putch('R'); - putch(' '); - putch('I'); - putch('S'); - putch('P'); - putch(0x10); - } - } - - - /* AVR ISP/STK500 board commands DON'T CARE so default nothing_response */ - else if(ch=='@') { - ch2 = getch(); - if (ch2>0x85) getch(); - nothing_response(); - } - - - /* AVR ISP/STK500 board requests */ - else if(ch=='A') { - ch2 = getch(); - if(ch2==0x80) byte_response(HW_VER); // Hardware version - else if(ch2==0x81) byte_response(SW_MAJOR); // Software major version - else if(ch2==0x82) byte_response(SW_MINOR); // Software minor version - else if(ch2==0x98) byte_response(0x03); // Unknown but seems to be required by avr studio 3.56 - else byte_response(0x00); // Covers various unnecessary responses we don't care about - } - - - /* Device Parameters DON'T CARE, DEVICE IS FIXED */ - else if(ch=='B') { - getNch(20); - nothing_response(); - } - - - /* Parallel programming stuff DON'T CARE */ - else if(ch=='E') { - getNch(5); - nothing_response(); - } - - - /* Enter programming mode */ - else if(ch=='P') { - nothing_response(); - } - - - /* Leave programming mode */ - else if(ch=='Q') { - nothing_response(); - } - - - /* Erase device, don't care as we will erase one page at a time anyway. */ - else if(ch=='R') { - nothing_response(); - } - - - /* Set address, little endian. EEPROM in bytes, FLASH in words */ - /* Perhaps extra address bytes may be added in future to support > 128kB FLASH. */ - /* This might explain why little endian was used here, big endian used everywhere else. */ - else if(ch=='U') { - address.byte[0] = getch(); - address.byte[1] = getch(); - nothing_response(); - } - - - /* Universal SPI programming command, disabled. Would be used for fuses and lock bits. */ - else if(ch=='V') { - getNch(4); - byte_response(0x00); - } - - - /* Write memory, length is big endian and is in bytes */ - else if(ch=='d') { - length.byte[1] = getch(); - length.byte[0] = getch(); - flags.eeprom = 0; - if (getch() == 'E') flags.eeprom = 1; - for (w=0;w127) address_high = 0x01; //Only possible with m128, m256 will need 3rd address byte. FIXME - else address_high = 0x00; -#ifdef __AVR_ATmega128__ - RAMPZ = address_high; -#endif - address.word = address.word << 1; //address * 2 -> byte location - /* if ((length.byte[0] & 0x01) == 0x01) length.word++; //Even up an odd number of bytes */ - if ((length.byte[0] & 0x01)) length.word++; //Even up an odd number of bytes - cli(); //Disable interrupts, just to be sure - // HACKME: EEPE used to be EEWE - while(bit_is_set(EECR,EEPE)); //Wait for previous EEPROM writes to complete - asm volatile( - "clr r17 \n\t" //page_word_count - "lds r30,address \n\t" //Address of FLASH location (in bytes) - "lds r31,address+1 \n\t" - "ldi r28,lo8(buff) \n\t" //Start of buffer array in RAM - "ldi r29,hi8(buff) \n\t" - "lds r24,length \n\t" //Length of data to be written (in bytes) - "lds r25,length+1 \n\t" - "length_loop: \n\t" //Main loop, repeat for number of words in block - "cpi r17,0x00 \n\t" //If page_word_count=0 then erase page - "brne no_page_erase \n\t" - "wait_spm1: \n\t" - "lds r16,%0 \n\t" //Wait for previous spm to complete - "andi r16,1 \n\t" - "cpi r16,1 \n\t" - "breq wait_spm1 \n\t" - "ldi r16,0x03 \n\t" //Erase page pointed to by Z - "sts %0,r16 \n\t" - "spm \n\t" -#ifdef __AVR_ATmega163__ - ".word 0xFFFF \n\t" - "nop \n\t" -#endif - "wait_spm2: \n\t" - "lds r16,%0 \n\t" //Wait for previous spm to complete - "andi r16,1 \n\t" - "cpi r16,1 \n\t" - "breq wait_spm2 \n\t" - - "ldi r16,0x11 \n\t" //Re-enable RWW section - "sts %0,r16 \n\t" - "spm \n\t" -#ifdef __AVR_ATmega163__ - ".word 0xFFFF \n\t" - "nop \n\t" -#endif - "no_page_erase: \n\t" - "ld r0,Y+ \n\t" //Write 2 bytes into page buffer - "ld r1,Y+ \n\t" - - "wait_spm3: \n\t" - "lds r16,%0 \n\t" //Wait for previous spm to complete - "andi r16,1 \n\t" - "cpi r16,1 \n\t" - "breq wait_spm3 \n\t" - "ldi r16,0x01 \n\t" //Load r0,r1 into FLASH page buffer - "sts %0,r16 \n\t" - "spm \n\t" - - "inc r17 \n\t" //page_word_count++ - "cpi r17,%1 \n\t" - "brlo same_page \n\t" //Still same page in FLASH - "write_page: \n\t" - "clr r17 \n\t" //New page, write current one first - "wait_spm4: \n\t" - "lds r16,%0 \n\t" //Wait for previous spm to complete - "andi r16,1 \n\t" - "cpi r16,1 \n\t" - "breq wait_spm4 \n\t" -#ifdef __AVR_ATmega163__ - "andi r30,0x80 \n\t" // m163 requires Z6:Z1 to be zero during page write -#endif - "ldi r16,0x05 \n\t" //Write page pointed to by Z - "sts %0,r16 \n\t" - "spm \n\t" -#ifdef __AVR_ATmega163__ - ".word 0xFFFF \n\t" - "nop \n\t" - "ori r30,0x7E \n\t" // recover Z6:Z1 state after page write (had to be zero during write) -#endif - "wait_spm5: \n\t" - "lds r16,%0 \n\t" //Wait for previous spm to complete - "andi r16,1 \n\t" - "cpi r16,1 \n\t" - "breq wait_spm5 \n\t" - "ldi r16,0x11 \n\t" //Re-enable RWW section - "sts %0,r16 \n\t" - "spm \n\t" -#ifdef __AVR_ATmega163__ - ".word 0xFFFF \n\t" - "nop \n\t" -#endif - "same_page: \n\t" - "adiw r30,2 \n\t" //Next word in FLASH - "sbiw r24,2 \n\t" //length-2 - "breq final_write \n\t" //Finished - "rjmp length_loop \n\t" - "final_write: \n\t" - "cpi r17,0 \n\t" - "breq block_done \n\t" - "adiw r24,2 \n\t" //length+2, fool above check on length after short page write - "rjmp write_page \n\t" - "block_done: \n\t" - "clr __zero_reg__ \n\t" //restore zero register -#if defined __AVR_ATmega168__ || __AVR_ATmega328P__ - : "=m" (SPMCSR) : "M" (PAGE_SIZE) : "r0","r16","r17","r24","r25","r28","r29","r30","r31" -#else - : "=m" (SPMCR) : "M" (PAGE_SIZE) : "r0","r16","r17","r24","r25","r28","r29","r30","r31" -#endif - ); - /* Should really add a wait for RWW section to be enabled, don't actually need it since we never */ - /* exit the bootloader without a power cycle anyhow */ - } - putch(0x14); - putch(0x10); - } - } - - - /* Read memory block mode, length is big endian. */ - else if(ch=='t') { - length.byte[1] = getch(); - length.byte[0] = getch(); -#if defined __AVR_ATmega128__ - if (address.word>0x7FFF) flags.rampz = 1; // No go with m256, FIXME - else flags.rampz = 0; -#endif - if (getch() == 'E') flags.eeprom = 1; - else { - flags.eeprom = 0; - address.word = address.word << 1; // address * 2 -> byte location - } - if (getch() == ' ') { // Command terminator - putch(0x14); - for (w=0;w < length.word;w++) { // Can handle odd and even lengths okay - if (flags.eeprom) { // Byte access EEPROM read -#if defined __AVR_ATmega168__ || __AVR_ATmega328P__ - while(EECR & (1<= 'a') { - ah = ah - 'a' + 0x0a; - } else if(ah >= '0') { - ah -= '0'; - } - if(al >= 'a') { - al = al - 'a' + 0x0a; - } else if(al >= '0') { - al -= '0'; - } - return (ah << 4) + al; -} - - -void puthex(char ch) { - char ah,al; - - ah = (ch & 0xf0) >> 4; - if(ah >= 0x0a) { - ah = ah - 0x0a + 'a'; - } else { - ah += '0'; - } - al = (ch & 0x0f); - if(al >= 0x0a) { - al = al - 0x0a + 'a'; - } else { - al += '0'; - } - putch(ah); - putch(al); -} - - -void putch(char ch) -{ -#ifdef __AVR_ATmega128__ - if(bootuart == 1) { - while (!(UCSR0A & _BV(UDRE0))); - UDR0 = ch; - } - else if (bootuart == 2) { - while (!(UCSR1A & _BV(UDRE1))); - UDR1 = ch; - } -#elif defined (__AVR_ATmega168__) || defined(__AVR_ATmega328P__) - while (!(UCSR0A & _BV(UDRE0))); - UDR0 = ch; -#else - /* m8,16,32,169,8515,8535,163 */ - while (!(UCSRA & _BV(UDRE))); - UDR = ch; -#endif -} - - -char getch(void) -{ -#ifdef __AVR_ATmega128__ - if(bootuart == 1) { - while(!(UCSR0A & _BV(RXC0))); - return UDR0; - } - else if(bootuart == 2) { - while(!(UCSR1A & _BV(RXC1))); - return UDR1; - } - return 0; -#elif defined (__AVR_ATmega168__) || defined(__AVR_ATmega328P__) - uint32_t count = 0; - while(!(UCSR0A & _BV(RXC0))){ - /* 20060803 DojoCorp:: Addon coming from the previous Bootloader*/ - /* HACKME:: here is a good place to count times*/ - count++; - if (count > MAX_TIME_COUNT) - app_start(); - } - return UDR0; -#else - /* m8,16,32,169,8515,8535,163 */ - uint32_t count = 0; - while(!(UCSRA & _BV(RXC))){ - /* 20060803 DojoCorp:: Addon coming from the previous Bootloader*/ - /* HACKME:: here is a good place to count times*/ - count++; - if (count > MAX_TIME_COUNT) - app_start(); - } - return UDR; -#endif -} - - -void getNch(uint8_t count) -{ - uint8_t i; - for(i=0;i $@ - -%.hex: %.elf - $(OBJCOPY) -j .text -j .data -O ihex $< $@ - -%.srec: %.elf - $(OBJCOPY) -j .text -j .data -O srec $< $@ - -%.bin: %.elf - $(OBJCOPY) -j .text -j .data -O binary $< $@ - diff --git a/build/linux/work/hardware/arduino/bootloaders/caterina/Caterina.c b/build/linux/work/hardware/arduino/bootloaders/caterina/Caterina.c deleted file mode 100644 index 0cb9590d5..000000000 --- a/build/linux/work/hardware/arduino/bootloaders/caterina/Caterina.c +++ /dev/null @@ -1,710 +0,0 @@ -/* - LUFA Library - Copyright (C) Dean Camera, 2011. - - dean [at] fourwalledcubicle [dot] com - www.lufa-lib.org -*/ - -/* - Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com) - - Permission to use, copy, modify, distribute, and sell this - software and its documentation for any purpose is hereby granted - without fee, provided that the above copyright notice appear in - all copies and that both that the copyright notice and this - permission notice and warranty disclaimer appear in supporting - documentation, and that the name of the author not be used in - advertising or publicity pertaining to distribution of the - software without specific, written prior permission. - - The author disclaim all warranties with regard to this - software, including all implied warranties of merchantability - and fitness. In no event shall the author be liable for any - special, indirect or consequential damages or any damages - whatsoever resulting from loss of use, data or profits, whether - in an action of contract, negligence or other tortious action, - arising out of or in connection with the use or performance of - this software. -*/ - -/** \file - * - * Main source file for the CDC class bootloader. This file contains the complete bootloader logic. - */ - -#define INCLUDE_FROM_CATERINA_C -#include "Caterina.h" - -/** Contains the current baud rate and other settings of the first virtual serial port. This must be retained as some - * operating systems will not open the port unless the settings can be set successfully. - */ -static CDC_LineEncoding_t LineEncoding = { .BaudRateBPS = 0, - .CharFormat = CDC_LINEENCODING_OneStopBit, - .ParityType = CDC_PARITY_None, - .DataBits = 8 }; - -/** Current address counter. This stores the current address of the FLASH or EEPROM as set by the host, - * and is used when reading or writing to the AVRs memory (either FLASH or EEPROM depending on the issued - * command.) - */ -static uint32_t CurrAddress; - -/** Flag to indicate if the bootloader should be running, or should exit and allow the application code to run - * via a watchdog reset. When cleared the bootloader will exit, starting the watchdog and entering an infinite - * loop until the AVR restarts and the application runs. - */ -static bool RunBootloader = true; - -/* 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 */ -#define TIMEOUT_PERIOD 8000 -uint16_t Timeout = 0; - -uint16_t bootKey = 0x7777; -volatile uint16_t *const bootKeyPtr = (volatile uint16_t *)0x0A00; - -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; - - 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(); - - /* Check the reason for the reset and act accordingly */ - uint8_t mcusr_state = MCUSR; // store the initial state of the Status register - MCUSR = 0; // clear all reset flags - // After a power-on reset skip the bootloader and jump straight to sketch - // if one exists. - if (mcusr_state & (1< TIMEOUT_PERIOD) - RunBootloader = false; - - LEDPulse(); - } - - /* Disconnect from the host - USB interface will be reset later along with the AVR */ - USB_Detach(); - - /* Jump to beginning of application space to run the sketch - do not reset */ - StartSketch(); -} - -/** Configures all hardware required for the bootloader. */ -void SetupHardware(void) -{ - /* Disable watchdog if enabled by bootloader/fuses */ - MCUSR &= ~(1 << WDRF); - wdt_disable(); - - /* Disable clock division */ - clock_prescale_set(clock_div_1); - - /* 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. - * With 16 MHz clock and 1/64 prescaler, timer 1 is clocked at 250 kHz - * Our chosen compare match generates an interrupt every 1 ms. - * This interrupt is disabled selectively when doing memory reading, erasing, - * or writing since SPM has tight timing requirements. - */ - OCR1AH = 0; - OCR1AL = 250; - TIMSK1 = (1 << OCIE1A); // enable timer 1 output compare A match interrupt - TCCR1B = ((1 << CS11) | (1 << CS10)); // 1/64 prescaler on timer 1 input - - /* 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(); - - if (pgm_read_word(0) != 0xFFFF) - 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. - */ -void EVENT_USB_Device_ConfigurationChanged(void) -{ - /* Setup CDC Notification, Rx and Tx Endpoints */ - Endpoint_ConfigureEndpoint(CDC_NOTIFICATION_EPNUM, EP_TYPE_INTERRUPT, - ENDPOINT_DIR_IN, CDC_NOTIFICATION_EPSIZE, - ENDPOINT_BANK_SINGLE); - - Endpoint_ConfigureEndpoint(CDC_TX_EPNUM, EP_TYPE_BULK, - ENDPOINT_DIR_IN, CDC_TXRX_EPSIZE, - ENDPOINT_BANK_SINGLE); - - Endpoint_ConfigureEndpoint(CDC_RX_EPNUM, EP_TYPE_BULK, - ENDPOINT_DIR_OUT, CDC_TXRX_EPSIZE, - ENDPOINT_BANK_SINGLE); -} - -/** Event handler for the USB_ControlRequest event. This is used to catch and process control requests sent to - * the device from the USB host before passing along unhandled control requests to the library for processing - * internally. - */ -void EVENT_USB_Device_ControlRequest(void) -{ - /* Ignore any requests that aren't directed to the CDC interface */ - if ((USB_ControlRequest.bmRequestType & (CONTROL_REQTYPE_TYPE | CONTROL_REQTYPE_RECIPIENT)) != - (REQTYPE_CLASS | REQREC_INTERFACE)) - { - return; - } - - /* Process CDC specific control requests */ - switch (USB_ControlRequest.bRequest) - { - case CDC_REQ_GetLineEncoding: - if (USB_ControlRequest.bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_CLASS | REQREC_INTERFACE)) - { - Endpoint_ClearSETUP(); - - /* Write the line coding data to the control endpoint */ - Endpoint_Write_Control_Stream_LE(&LineEncoding, sizeof(CDC_LineEncoding_t)); - Endpoint_ClearOUT(); - } - - break; - case CDC_REQ_SetLineEncoding: - if (USB_ControlRequest.bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE)) - { - Endpoint_ClearSETUP(); - - /* Read the line coding data in from the host into the global struct */ - Endpoint_Read_Control_Stream_LE(&LineEncoding, sizeof(CDC_LineEncoding_t)); - Endpoint_ClearIN(); - } - - break; - } -} - -#if !defined(NO_BLOCK_SUPPORT) -/** Reads or writes a block of EEPROM or FLASH memory to or from the appropriate CDC data endpoint, depending - * on the AVR910 protocol command issued. - * - * \param[in] Command Single character AVR910 protocol command indicating what memory operation to perform - */ -static void ReadWriteMemoryBlock(const uint8_t Command) -{ - uint16_t BlockSize; - char MemoryType; - - bool HighByte = false; - uint8_t LowByte = 0; - - BlockSize = (FetchNextCommandByte() << 8); - BlockSize |= FetchNextCommandByte(); - - MemoryType = FetchNextCommandByte(); - - if ((MemoryType != 'E') && (MemoryType != 'F')) - { - /* Send error byte back to the host */ - WriteNextResponseByte('?'); - - return; - } - - /* Disable timer 1 interrupt - can't afford to process nonessential interrupts - * while doing SPM tasks */ - TIMSK1 = 0; - - /* Check if command is to read memory */ - if (Command == 'g') - { - /* Re-enable RWW section */ - boot_rww_enable(); - - while (BlockSize--) - { - if (MemoryType == 'F') - { - /* Read the next FLASH byte from the current FLASH page */ - #if (FLASHEND > 0xFFFF) - WriteNextResponseByte(pgm_read_byte_far(CurrAddress | HighByte)); - #else - WriteNextResponseByte(pgm_read_byte(CurrAddress | HighByte)); - #endif - - /* If both bytes in current word have been read, increment the address counter */ - if (HighByte) - CurrAddress += 2; - - HighByte = !HighByte; - } - else - { - /* Read the next EEPROM byte into the endpoint */ - WriteNextResponseByte(eeprom_read_byte((uint8_t*)(intptr_t)(CurrAddress >> 1))); - - /* Increment the address counter after use */ - CurrAddress += 2; - } - } - } - else - { - uint32_t PageStartAddress = CurrAddress; - - if (MemoryType == 'F') - { - boot_page_erase(PageStartAddress); - boot_spm_busy_wait(); - } - - while (BlockSize--) - { - if (MemoryType == 'F') - { - /* If both bytes in current word have been written, increment the address counter */ - if (HighByte) - { - /* Write the next FLASH word to the current FLASH page */ - boot_page_fill(CurrAddress, ((FetchNextCommandByte() << 8) | LowByte)); - - /* Increment the address counter after use */ - CurrAddress += 2; - } - else - { - LowByte = FetchNextCommandByte(); - } - - HighByte = !HighByte; - } - else - { - /* Write the next EEPROM byte from the endpoint */ - eeprom_write_byte((uint8_t*)((intptr_t)(CurrAddress >> 1)), FetchNextCommandByte()); - - /* Increment the address counter after use */ - CurrAddress += 2; - } - } - - /* If in FLASH programming mode, commit the page after writing */ - if (MemoryType == 'F') - { - /* Commit the flash page to memory */ - boot_page_write(PageStartAddress); - - /* Wait until write operation has completed */ - boot_spm_busy_wait(); - } - - /* Send response byte back to the host */ - WriteNextResponseByte('\r'); - } - - /* Re-enable timer 1 interrupt disabled earlier in this routine */ - TIMSK1 = (1 << OCIE1A); -} -#endif - -/** Retrieves the next byte from the host in the CDC data OUT endpoint, and clears the endpoint bank if needed - * to allow reception of the next data packet from the host. - * - * \return Next received byte from the host in the CDC data OUT endpoint - */ -static uint8_t FetchNextCommandByte(void) -{ - /* Select the OUT endpoint so that the next data byte can be read */ - Endpoint_SelectEndpoint(CDC_RX_EPNUM); - - /* If OUT endpoint empty, clear it and wait for the next packet from the host */ - while (!(Endpoint_IsReadWriteAllowed())) - { - Endpoint_ClearOUT(); - - while (!(Endpoint_IsOUTReceived())) - { - if (USB_DeviceState == DEVICE_STATE_Unattached) - return 0; - } - } - - /* Fetch the next byte from the OUT endpoint */ - return Endpoint_Read_8(); -} - -/** Writes the next response byte to the CDC data IN endpoint, and sends the endpoint back if needed to free up the - * bank when full ready for the next byte in the packet to the host. - * - * \param[in] Response Next response byte to send to the host - */ -static void WriteNextResponseByte(const uint8_t Response) -{ - /* Select the IN endpoint so that the next data byte can be written */ - Endpoint_SelectEndpoint(CDC_TX_EPNUM); - - /* If IN endpoint full, clear it and wait until ready for the next packet to the host */ - if (!(Endpoint_IsReadWriteAllowed())) - { - Endpoint_ClearIN(); - - while (!(Endpoint_IsINReady())) - { - if (USB_DeviceState == DEVICE_STATE_Unattached) - return; - } - } - - /* 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 -#define STK_INSYNC 0x14 // ' ' -#define CRC_EOP 0x20 // 'SPACE' -#define STK_GET_SYNC 0x30 // '0' - -#define STK_GET_PARAMETER 0x41 // 'A' -#define STK_SET_DEVICE 0x42 // 'B' -#define STK_SET_DEVICE_EXT 0x45 // 'E' -#define STK_LOAD_ADDRESS 0x55 // 'U' -#define STK_UNIVERSAL 0x56 // 'V' -#define STK_PROG_PAGE 0x64 // 'd' -#define STK_READ_PAGE 0x74 // 't' -#define STK_READ_SIGN 0x75 // 'u' - -/** Task to read in AVR910 commands from the CDC data OUT endpoint, process them, perform the required actions - * and send the appropriate response back to the host. - */ -void CDC_Task(void) -{ - /* Select the OUT endpoint */ - Endpoint_SelectEndpoint(CDC_RX_EPNUM); - - /* 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 (Command == 'E') - { - /* We nearly run out the bootloader timeout clock, - * leaving just a few hundred milliseconds so the - * bootloder has time to respond and service any - * subsequent requests */ - Timeout = TIMEOUT_PERIOD - 500; - - /* Re-enable RWW section - must be done here in case - * user has disabled verification on upload. */ - boot_rww_enable_safe(); - - // Send confirmation byte back to the host - WriteNextResponseByte('\r'); - } - else if (Command == 'T') - { - FetchNextCommandByte(); - - // Send confirmation byte back to the host - WriteNextResponseByte('\r'); - } - else if ((Command == 'L') || (Command == 'P')) - { - // Send confirmation byte back to the host - WriteNextResponseByte('\r'); - } - else if (Command == 't') - { - // Return ATMEGA128 part code - this is only to allow AVRProg to use the bootloader - WriteNextResponseByte(0x44); - WriteNextResponseByte(0x00); - } - else if (Command == 'a') - { - // Indicate auto-address increment is supported - WriteNextResponseByte('Y'); - } - else if (Command == 'A') - { - // Set the current address to that given by the host - CurrAddress = (FetchNextCommandByte() << 9); - CurrAddress |= (FetchNextCommandByte() << 1); - - // Send confirmation byte back to the host - WriteNextResponseByte('\r'); - } - else if (Command == 'p') - { - // Indicate serial programmer back to the host - WriteNextResponseByte('S'); - } - else if (Command == 'S') - { - // Write the 7-byte software identifier to the endpoint - for (uint8_t CurrByte = 0; CurrByte < 7; CurrByte++) - WriteNextResponseByte(SOFTWARE_IDENTIFIER[CurrByte]); - } - else if (Command == 'V') - { - WriteNextResponseByte('0' + BOOTLOADER_VERSION_MAJOR); - WriteNextResponseByte('0' + BOOTLOADER_VERSION_MINOR); - } - else if (Command == 's') - { - WriteNextResponseByte(AVR_SIGNATURE_3); - WriteNextResponseByte(AVR_SIGNATURE_2); - WriteNextResponseByte(AVR_SIGNATURE_1); - } - else if (Command == 'e') - { - // Clear the application section of flash - for (uint32_t CurrFlashAddress = 0; CurrFlashAddress < BOOT_START_ADDR; CurrFlashAddress += SPM_PAGESIZE) - { - boot_page_erase(CurrFlashAddress); - boot_spm_busy_wait(); - boot_page_write(CurrFlashAddress); - boot_spm_busy_wait(); - } - - // Send confirmation byte back to the host - WriteNextResponseByte('\r'); - } - #if !defined(NO_LOCK_BYTE_WRITE_SUPPORT) - else if (Command == 'l') - { - // Set the lock bits to those given by the host - boot_lock_bits_set(FetchNextCommandByte()); - - // Send confirmation byte back to the host - WriteNextResponseByte('\r'); - } - #endif - else if (Command == 'r') - { - WriteNextResponseByte(boot_lock_fuse_bits_get(GET_LOCK_BITS)); - } - else if (Command == 'F') - { - WriteNextResponseByte(boot_lock_fuse_bits_get(GET_LOW_FUSE_BITS)); - } - else if (Command == 'N') - { - WriteNextResponseByte(boot_lock_fuse_bits_get(GET_HIGH_FUSE_BITS)); - } - else if (Command == 'Q') - { - WriteNextResponseByte(boot_lock_fuse_bits_get(GET_EXTENDED_FUSE_BITS)); - } - #if !defined(NO_BLOCK_SUPPORT) - else if (Command == 'b') - { - WriteNextResponseByte('Y'); - - // Send block size to the host - WriteNextResponseByte(SPM_PAGESIZE >> 8); - WriteNextResponseByte(SPM_PAGESIZE & 0xFF); - } - else if ((Command == 'B') || (Command == 'g')) - { - // Keep resetting the timeout counter if we're receiving self-programming instructions - Timeout = 0; - // Delegate the block write/read to a separate function for clarity - ReadWriteMemoryBlock(Command); - } - #endif - #if !defined(NO_FLASH_BYTE_SUPPORT) - else if (Command == 'C') - { - // Write the high byte to the current flash page - boot_page_fill(CurrAddress, FetchNextCommandByte()); - - // Send confirmation byte back to the host - WriteNextResponseByte('\r'); - } - else if (Command == 'c') - { - // Write the low byte to the current flash page - boot_page_fill(CurrAddress | 0x01, FetchNextCommandByte()); - - // Increment the address - CurrAddress += 2; - - // Send confirmation byte back to the host - WriteNextResponseByte('\r'); - } - else if (Command == 'm') - { - // Commit the flash page to memory - boot_page_write(CurrAddress); - - // Wait until write operation has completed - boot_spm_busy_wait(); - - // Send confirmation byte back to the host - WriteNextResponseByte('\r'); - } - else if (Command == 'R') - { - #if (FLASHEND > 0xFFFF) - uint16_t ProgramWord = pgm_read_word_far(CurrAddress); - #else - uint16_t ProgramWord = pgm_read_word(CurrAddress); - #endif - - WriteNextResponseByte(ProgramWord >> 8); - WriteNextResponseByte(ProgramWord & 0xFF); - } - #endif - #if !defined(NO_EEPROM_BYTE_SUPPORT) - else if (Command == 'D') - { - // Read the byte from the endpoint and write it to the EEPROM - eeprom_write_byte((uint8_t*)((intptr_t)(CurrAddress >> 1)), FetchNextCommandByte()); - - // Increment the address after use - CurrAddress += 2; - - // Send confirmation byte back to the host - WriteNextResponseByte('\r'); - } - else if (Command == 'd') - { - // Read the EEPROM byte and write it to the endpoint - WriteNextResponseByte(eeprom_read_byte((uint8_t*)((intptr_t)(CurrAddress >> 1)))); - - // Increment the address after use - CurrAddress += 2; - } - #endif - else if (Command != 27) - { - // Unknown (non-sync) command, return fail code - WriteNextResponseByte('?'); - } - - - /* Select the IN endpoint */ - Endpoint_SelectEndpoint(CDC_TX_EPNUM); - - /* Remember if the endpoint is completely full before clearing it */ - bool IsEndpointFull = !(Endpoint_IsReadWriteAllowed()); - - /* Send the endpoint data to the host */ - Endpoint_ClearIN(); - - /* If a full endpoint's worth of data was sent, we need to send an empty packet afterwards to signal end of transfer */ - if (IsEndpointFull) - { - while (!(Endpoint_IsINReady())) - { - if (USB_DeviceState == DEVICE_STATE_Unattached) - return; - } - - Endpoint_ClearIN(); - } - - /* Wait until the data has been sent to the host */ - while (!(Endpoint_IsINReady())) - { - if (USB_DeviceState == DEVICE_STATE_Unattached) - return; - } - - /* Select the OUT endpoint */ - Endpoint_SelectEndpoint(CDC_RX_EPNUM); - - /* Acknowledge the command from the host */ - Endpoint_ClearOUT(); -} - diff --git a/build/linux/work/hardware/arduino/bootloaders/caterina/Caterina.h b/build/linux/work/hardware/arduino/bootloaders/caterina/Caterina.h deleted file mode 100644 index f8251d483..000000000 --- a/build/linux/work/hardware/arduino/bootloaders/caterina/Caterina.h +++ /dev/null @@ -1,99 +0,0 @@ -/* - LUFA Library - Copyright (C) Dean Camera, 2011. - - dean [at] fourwalledcubicle [dot] com - www.lufa-lib.org -*/ - -/* - Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com) - - Permission to use, copy, modify, distribute, and sell this - software and its documentation for any purpose is hereby granted - without fee, provided that the above copyright notice appear in - all copies and that both that the copyright notice and this - permission notice and warranty disclaimer appear in supporting - documentation, and that the name of the author not be used in - advertising or publicity pertaining to distribution of the - software without specific, written prior permission. - - The author disclaim all warranties with regard to this - software, including all implied warranties of merchantability - and fitness. In no event shall the author be liable for any - special, indirect or consequential damages or any damages - whatsoever resulting from loss of use, data or profits, whether - in an action of contract, negligence or other tortious action, - arising out of or in connection with the use or performance of - this software. -*/ - -/** \file - * - * Header file for BootloaderCDC.c. - */ - -#ifndef _CDC_H_ -#define _CDC_H_ - - /* Includes: */ - #include - #include - #include - #include - #include - #include - #include - - #include "Descriptors.h" - - #include - /* Macros: */ - /** Version major of the CDC bootloader. */ - #define BOOTLOADER_VERSION_MAJOR 0x01 - - /** Version minor of the CDC bootloader. */ - #define BOOTLOADER_VERSION_MINOR 0x00 - - /** Hardware version major of the CDC bootloader. */ - #define BOOTLOADER_HWVERSION_MAJOR 0x01 - - /** Hardware version minor of the CDC bootloader. */ - #define BOOTLOADER_HWVERSION_MINOR 0x00 - - /** Eight character bootloader firmware identifier reported to the host when requested */ - #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); - - void CDC_Task(void); - void SetupHardware(void); - - void EVENT_USB_Device_ConfigurationChanged(void); - - #if defined(INCLUDE_FROM_CATERINA_C) || defined(__DOXYGEN__) - #if !defined(NO_BLOCK_SUPPORT) - static void ReadWriteMemoryBlock(const uint8_t Command); - #endif - static uint8_t FetchNextCommandByte(void); - static void WriteNextResponseByte(const uint8_t Response); - #endif - -#endif - diff --git a/build/linux/work/hardware/arduino/bootloaders/caterina/Caterina.hex b/build/linux/work/hardware/arduino/bootloaders/caterina/Caterina.hex deleted file mode 100644 index b3e1ed6af..000000000 --- a/build/linux/work/hardware/arduino/bootloaders/caterina/Caterina.hex +++ /dev/null @@ -1,256 +0,0 @@ -:1070000055C000006EC000006CC000006AC00000E7 -:1070100068C0000066C0000064C0000062C00000DC -:1070200060C000005EC00000F1C400005AC0000053 -:1070300058C0000056C0000054C0000052C00000FC -:1070400050C0000078C000004CC000004AC00000E2 -:1070500048C0000046C0000044C0000042C000001C -:1070600040C000003EC000003CC000003AC000002C -:1070700038C0000036C0000034C0000032C000003C -:1070800030C000002EC000002CC000002AC000004C -:1070900028C0000026C0000024C0000022C000005C -:1070A00020C000001EC000001CC0000011241FBE34 -:1070B000CFEFDAE0DEBFCDBF11E0A0E0B1E0E0E36A -:1070C000FFE702C005900D92A83AB107D9F711E089 -:1070D000A8EAB1E001C01D92AE3BB107E1F78FD342 -:1070E00025C78ECFF89410926F00109281001092F5 -:1070F00085001092840081E085BF15BE47985D9A97 -:10710000289A0C94000008952091B2013091B301A7 -:107110002F5F3F4F3093B3012093B201932F37FF7E -:1071200003C08EEF831B982F990F921710F4479886 -:107130000895479A08951F920F920FB60F92112447 -:107140002F938F939F93EF93FF931092850010924C -:1071500084008091A8019091A901009741F00197C6 -:107160009093A9018093A801892B09F45D9A8091DD -:10717000AA019091AB01009741F001979093AB0168 -:107180008093AA01892B09F4289AE0E0F0E0859128 -:1071900094918F5F9F4F49F08091AC019091AD0128 -:1071A00001969093AD018093AC01FF91EF919F9177 -:1071B0008F912F910F900FBE0F901F90189584E024 -:1071C0008093E9000DC08091E8008B778093E80000 -:1071D00003C08EB3882351F08091E80082FFF9CF7D -:1071E0008091E80085FFEFCF8091F1000895982FFE -:1071F00083E08093E9008091E80085FD0DC08091D7 -:10720000E8008E778093E80003C08EB3882369F08E -:107210008091E80080FFF9CF9093F1005D9884E6BB -:1072200090E09093A9018093A80108954F925F92F6 -:107230006F927F928F929F92AF92BF92CF92DF9286 -:10724000EF92FF920F931F93CF93DF9384E080938D -:10725000E9008091E80082FF57C2289884E690E018 -:107260009093AB018093AA01AADF182F853481F493 -:107270008CE49DE19093AD018093AC0107B600FCD6 -:10728000FDCFF999FECF81E180935700E89503C0C7 -:10729000843519F494DF8DE00DC28C34E1F3803530 -:1072A000D1F3843721F484E4A2DF80E003C2813685 -:1072B00011F489E5FFC18134B1F481DF182F7FDF3C -:1072C00090E0880F991FAA2797FDA095BA2F312F1C -:1072D000330F20E0442737FD4095542F822B932B0A -:1072E000A42BB52BB8C1803711F483E5E3C18335F6 -:1072F00049F4C0E0D1E089917ADF21E0C730D207BC -:10730000D1F7D9C1863521F481E371DF80E3D2C1A1 -:10731000833731F487E86BDF85E969DF8EE1CAC125 -:107320008536B9F4E0E0F0E093E085E09093570013 -:10733000E89507B600FCFDCF80935700E89507B6A7 -:1073400000FCFDCFE058FF4FA0E7E030FA0771F7EF -:10735000A2CF823739F4E1E0F0E089E08093570072 -:107360008491A8C1863439F4E0E0F0E089E08093AC -:10737000570084919FC18E3439F4E3E0F0E089E056 -:1073800080935700849196C1813539F4E2E0F0E0B2 -:1073900089E08093570084918DC1823631F489E56C -:1073A00026DF80E024DF80E885C1823419F087364B -:1073B00009F0E5C01092AD011092AC0100DF082F7A -:1073C000FEDEF82EFCDE682E8554823008F071C196 -:1073D000902F80E0CF2DD0E0C82BD92B10926F00DA -:1073E000173609F04BC081E180935700E895DD2402 -:1073F000CC24C3943FC0E090AE01F090AF01009167 -:10740000B0011091B101B6E46B16D9F4ED2DF0E0A6 -:10741000EE29FF29E4918E2FEADEDD2081F082E063 -:1074200090E0A0E0B0E0E80EF91E0A1F1B1FE092FA -:10743000AE01F092AF010093B0011093B101DC24D2 -:1074400018C0D801C701B695A7959795879558D5C7 -:10745000CEDE82E090E0A0E0B0E0E80EF91E0A1F68 -:107460001B1FE092AE01F092AF010093B0011093A8 -:10747000B1012197209709F0BECF7DC08090AE0169 -:107480009090AF01A090B001B090B10196E4691660 -:1074900009F05DC083E0F40180935700E89507B6DA -:1074A00000FCFDCF54C0F6E46F1661F5772031F192 -:1074B000E090AE01F090AF010091B0011091B101E8 -:1074C0007EDED82ECC24852D90E08C299D29F701D5 -:1074D0000C0140925700E895112482E090E0A0E072 -:1074E000B0E0E80EF91E0A1F1B1FE092AE01F092F9 -:1074F000AF010093B0011093B10102C060DE582EBD -:10750000742423C0E090AE01F090AF010091B0016F -:107510001091B10116950795F794E79450DE682F06 -:10752000C701F6D48091AE019091AF01A091B00156 -:10753000B091B1010296A11DB11D8093AE0190934F -:10754000AF01A093B001B093B101219704C05524BD -:10755000772444244394209709F0A5CF96E4691634 -:1075600041F485E0F40180935700E89507B600FCEC -:10757000FDCF8DE03CDE82E080936F009CC08334C1 -:1075800071F40091AE011091AF0119DE90E021E09D -:10759000F8010C0120935700E89511247CCE833626 -:1075A00019F5E090AE01F090AF010091B00110919B -:1075B000B10105DEF701E16090E021E00C012093CC -:1075C0005700E895112482E090E0A0E0B0E0E80EDA -:1075D000F91E0A1F1B1FE092AE01F092AF0100934B -:1075E000B0011093B10157CE8D3661F4E091AE0138 -:1075F000F091AF0185E080935700E89507B600FC55 -:10760000FDCF49CE823551F4E091AE01F091AF014A -:1076100005911491812FEBDD802F4CC0843421F52E -:10762000E090AE01F090AF010091B0011091B10176 -:1076300016950795F794E794C2DD682FC70168D4C3 -:107640008091AE019091AF01A091B001B091B101D4 -:107650000296A11DB11D8093AE019093AF01A0933E -:10766000B001B093B10117CE843609F5E090AE01B8 -:10767000F090AF010091B0011091B101D801C701A4 -:10768000B695A795979587953BD4B1DD82E090E0BC -:10769000A0E0B0E0E80EF91E0A1F1B1FE092AE0149 -:1076A000F092AF010093B0011093B10104C08B318F -:1076B00011F08FE39CDD83E08093E9009091E80076 -:1076C0008091E8008E778093E80095FF04C010C099 -:1076D0008EB38823C9F08091E80080FFF9CF8091B4 -:1076E000E8008E778093E80003C08EB3882361F0B2 -:1076F0008091E80080FFF9CF84E08093E9008091D9 -:10770000E8008B778093E800DF91CF911F910F9174 -:10771000FF90EF90DF90CF90BF90AF909F908F90B1 -:107720007F906F905F904F9008959091B601892F50 -:107730008F77813249F58091B7018032A1F0813293 -:1077400019F5913A09F58091E800877F8093E80068 -:107750008DE091E067E070E00AD28091E8008B77DD -:107760008093E8000895913279F48091E800877F52 -:107770008093E8008DE091E067E070E05CD280915A -:10778000E8008E778093E800089582E061EC42E0A3 -:10779000B4D083E061E842E1B0D084E060E842E147 -:1077A000ACC084B7877F84BF88E10FB6F89480931C -:1077B0006000109260000FBE20E880E090E00FB6FD -:1077C000F89420936100809361000FBE81E085BF33 -:1077D00092E095BF3F9A209A559AE1E6F0E0208327 -:1077E000108247985D9A289A109289008AEF8093B8 -:1077F000880090936F0083E080938100EFC01F9317 -:1078000088E10FB6F89480936000109260000FBE7C -:1078100084B714BE182F10FF08C0E0E0F0E0859197 -:1078200094918F5F9F4F09F05DDC2091000A3091A9 -:10783000010A1092010A1092000A13FF0FC08091F2 -:10784000090190910A012817390741F0E0E0F0E0C2 -:10785000859194918F5F9F4F09F044DCA2DF78946B -:107860001092AD011092AC010CC0E0DC37D38091D6 -:10787000AC019091AD0181549F4110F01092140120 -:1078800043DC80911401882381F78091E0008160BE -:107890008093E00027DC80E090E01F910895FA01DA -:1078A000923049F0933061F09130F9F485E191E044 -:1078B00022E130E01EC087E291E02EE330E019C003 -:1078C000882329F485E691E024E030E012C081307D -:1078D00029F489E691E022E230E00BC0823029F4FD -:1078E0008DE891E028E130E004C080E090E020E005 -:1078F00030E091838083C90108958093E9008091ED -:10790000EB0081608093EB001092ED006093EC003F -:107910004093ED008091EE00881F8827881F08950E -:107920008091B60188238CF403C08EB38823B1F014 -:107930008091E80082FFF9CF8091E8008B778093F7 -:10794000E80008958EB3882349F08091E80080FF15 -:10795000F9CF8091E8008E778093E8000895EF9248 -:10796000FF920F931F9345D04CD008ED10E0F80123 -:1079700080818F77808380818068808380818F7D04 -:10798000808319BC1EBA1092B40180EEE82EF12C4F -:10799000F70180818B7F8083F80180818160808303 -:1079A00080E060E042E0A9DFE1EEF0E080818E7FE0 -:1079B0008083E2EEF0E08081816080838081886056 -:1079C0008083F70180818E7F8083F80180818061D0 -:1079D00080831F910F91FF90EF900895E7EDF0E005 -:1079E0008081816080838AE482BF81E08093B501D9 -:1079F000B6CFE8EDF0E080818E7F80831092E200C8 -:107A000008951092DA001092E10008951F920F92EB -:107A10000FB60F9211242F933F934F935F936F9361 -:107A20007F938F939F93AF93BF93EF93FF93809137 -:107A3000DA0080FF1BC08091D80080FF17C08091C2 -:107A4000DA008E7F8093DA008091D90080FF0BC02E -:107A500080E189BD82E189BD09B400FEFDCF81E0EE -:107A60008EBB3BD203C019BC1EBA37D28091E10055 -:107A700080FF17C08091E20080FF13C08091E20078 -:107A80008E7F8093E2008091E20080618093E2002B -:107A90008091D80080628093D80019BC85E08EBBAD -:107AA0001CD28091E10084FF2CC08091E20084FF11 -:107AB00028C080E189BD82E189BD09B400FEFDCF07 -:107AC0008091D8008F7D8093D8008091E1008F7ED7 -:107AD0008093E1008091E2008F7E8093E2008091AC -:107AE000E20081608093E2008091B401882331F448 -:107AF0008091E30087FD02C081E001C084E08EBB7D -:107B0000ECD18091E10083FF21C08091E20083FFEE -:107B10001DC08091E100877F8093E10082E08EBBF1 -:107B20001092B4018091E1008E7F8093E1008091FA -:107B3000E2008E7F8093E2008091E200806180937A -:107B4000E20080E060E042E0D8DEC7D1FF91EF9133 -:107B5000BF91AF919F918F917F916F915F914F9165 -:107B60003F912F910F900FBE0F901F9018959C0181 -:107B70004091BC015091BD014617570718F4F90117 -:107B800090E044C06115710511F0AB01F8CF809110 -:107B9000E8008E778093E80040E050E0F0CF8EB3AD -:107BA000882309F444C0853009F443C08091E8007B -:107BB00083FF02C081E008958091E80082FD31C01A -:107BC0008091E80080FF22C08091F3009091F20044 -:107BD000782F60E0292F30E0262B372B07C08191CA -:107BE0008093F100415050402F5F3F4F41155105A8 -:107BF00019F02830310598F390E02830310509F468 -:107C000091E08091E8008E778093E800411551055E -:107C100031F6992321F605C08EB3882341F08530D3 -:107C200041F08091E80082FFF7CF80E0089582E084 -:107C3000089583E008959C016115710529F48091F0 -:107C4000E8008B778093E800F90126C08EB3882383 -:107C500091F1853091F18091E80083FF02C081E0CD -:107C600008958091E80082FFF1CF06C08091F10075 -:107C700081936150704059F02091F3008091F2009F -:107C8000322F20E090E0822B932B892B79F7809183 -:107C9000E8008B778093E80061157105B9F605C09F -:107CA0008EB3882341F0853041F08091E80080FF59 -:107CB000F7CF80E0089582E0089583E008950F9360 -:107CC0001F93DF93CF9300D0CDB7DEB7E6EBF1E0A3 -:107CD0008091F100819381E0EE3BF807C9F725DD43 -:107CE0008091E80083FFE4C08091B6019091B701D4 -:107CF000953009F46DC0963040F4913081F19130A7 -:107D000070F0933009F0D4C02AC0983009F4A3C0B1 -:107D1000993009F4B2C0963009F0CAC07CC08038EE -:107D200009F4C6C0823809F0C3C08091BA018770D7 -:107D30008093E9008091EB001092E9002091E80027 -:107D4000277F2093E80090E025E0969587952A9577 -:107D5000E1F781708093F1001092F10087C08823D1 -:107D600019F0823009F0A4C08F71823009F0A0C0F0 -:107D70008091B801882331F52091BA01277009F468 -:107D800097C02093E9008091EB0080FF1BC09330E7 -:107D900021F48091EB00806213C08091EB00806140 -:107DA0008093EB0081E090E002C0880F991F2A9534 -:107DB000E2F78093EA001092EA008091EB0088607D -:107DC0008093EB001092E9008091E800877F51C01A -:107DD000882309F06DC01091B8011F770FB7F89490 -:107DE0008091E800877F8093E8009ADD8091E80029 -:107DF00080FFFCCF8091E3008078812B8093E300AB -:107E000080688093E300112311F482E001C083E0D5 -:107E10008EBB0FBF4DC08058823008F049C08091A2 -:107E2000B8019091B9016091BA01AE014F5F5F4F07 -:107E300036DDBC01009709F43BC08091E800877FE4 -:107E40008093E80089819A8192DE8091E8008B77A7 -:107E50008093E8002DC0803859F58091E800877F35 -:107E60008093E8008091B4018093F1008091E80054 -:107E70008E778093E80054DD1BC08823C9F490916D -:107E8000B8019230A8F48091E800877F8093E800E1 -:107E90009093B40145DD8091B401882331F4809141 -:107EA000E30087FD02C081E001C084E08EBB6DDC91 -:107EB0008091E80083FF0AC08091EB00806280938C -:107EC000EB008091E800877F8093E8000F900F908F -:107ED000CF91DF911F910F91089508951F938EB355 -:107EE000882361F01091E9001092E9008091E80088 -:107EF00083FF01C0E4DE17701093E9001F9108951D -:107F0000F999FECF92BD81BDF89A992780B5089561 -:107F1000262FF999FECF1FBA92BD81BD20BD0FB6A5 -:107F2000F894FA9AF99A0FBE01960895F894FFCF43 -:107F30004341544552494E41007777000A00000002 -:107F40000000000801120110010200000841230195 -:107F50000701000201000109023E00020100803217 -:107F6000090400000102020100052400100104249C -:107F700002040524060001070582030800FF090426 -:107F80000100020A000000070504021000010705B5 -:107F900083021000010403090422034100720064FB -:107FA00000750069006E006F0020004C0065006FD6 -:107FB000006E006100720064006F00000018034151 -:107FC0000072006400750069006E006F0020004CB4 -:087FD000004C0043000000001A -:040000030000700089 -:00000001FF diff --git a/build/linux/work/hardware/arduino/bootloaders/caterina/Descriptors.c b/build/linux/work/hardware/arduino/bootloaders/caterina/Descriptors.c deleted file mode 100644 index f1756e228..000000000 --- a/build/linux/work/hardware/arduino/bootloaders/caterina/Descriptors.c +++ /dev/null @@ -1,265 +0,0 @@ -/* - LUFA Library - Copyright (C) Dean Camera, 2011. - - dean [at] fourwalledcubicle [dot] com - www.lufa-lib.org -*/ - -/* - Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com) - - Permission to use, copy, modify, distribute, and sell this - software and its documentation for any purpose is hereby granted - without fee, provided that the above copyright notice appear in - all copies and that both that the copyright notice and this - permission notice and warranty disclaimer appear in supporting - documentation, and that the name of the author not be used in - advertising or publicity pertaining to distribution of the - software without specific, written prior permission. - - The author disclaim all warranties with regard to this - software, including all implied warranties of merchantability - and fitness. In no event shall the author be liable for any - special, indirect or consequential damages or any damages - whatsoever resulting from loss of use, data or profits, whether - in an action of contract, negligence or other tortious action, - arising out of or in connection with the use or performance of - this software. -*/ - -/** \file - * - * USB Device Descriptors, for library use when in USB device mode. Descriptors are special - * computer-readable structures which the host requests upon device enumeration, to determine - * the device's capabilities and functions. - */ - -#include "Descriptors.h" - -/** Device descriptor structure. This descriptor, located in SRAM memory, describes the overall - * device characteristics, including the supported USB version, control endpoint size and the - * number of device configurations. The descriptor is read out by the USB host when the enumeration - * process begins. - */ -const USB_Descriptor_Device_t DeviceDescriptor = -{ - .Header = {.Size = sizeof(USB_Descriptor_Device_t), .Type = DTYPE_Device}, - - .USBSpecification = VERSION_BCD(01.10), - .Class = CDC_CSCP_CDCClass, - .SubClass = CDC_CSCP_NoSpecificSubclass, - .Protocol = CDC_CSCP_NoSpecificProtocol, - - .Endpoint0Size = FIXED_CONTROL_ENDPOINT_SIZE, - - .VendorID = 0x2341, - .ProductID = 0x0701, - .ReleaseNumber = VERSION_BCD(00.01), - - .ManufacturerStrIndex = 0x02, - .ProductStrIndex = 0x01, - .SerialNumStrIndex = NO_DESCRIPTOR, - - .NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS -}; - -/** Configuration descriptor structure. This descriptor, located in SRAM memory, describes the usage - * of the device in one of its supported configurations, including information about any device interfaces - * and endpoints. The descriptor is read out by the USB host during the enumeration process when selecting - * a configuration so that the host may correctly communicate with the USB device. - */ -const USB_Descriptor_Configuration_t ConfigurationDescriptor = -{ - .Config = - { - .Header = {.Size = sizeof(USB_Descriptor_Configuration_Header_t), .Type = DTYPE_Configuration}, - - .TotalConfigurationSize = sizeof(USB_Descriptor_Configuration_t), - .TotalInterfaces = 2, - - .ConfigurationNumber = 1, - .ConfigurationStrIndex = NO_DESCRIPTOR, - - .ConfigAttributes = USB_CONFIG_ATTR_BUSPOWERED, - - .MaxPowerConsumption = USB_CONFIG_POWER_MA(100) - }, - - .CDC_CCI_Interface = - { - .Header = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface}, - - .InterfaceNumber = 0, - .AlternateSetting = 0, - - .TotalEndpoints = 1, - - .Class = CDC_CSCP_CDCClass, - .SubClass = CDC_CSCP_ACMSubclass, - .Protocol = CDC_CSCP_ATCommandProtocol, - - .InterfaceStrIndex = NO_DESCRIPTOR - }, - - .CDC_Functional_Header = - { - .Header = {.Size = sizeof(USB_CDC_Descriptor_FunctionalHeader_t), .Type = DTYPE_CSInterface}, - .Subtype = 0x00, - - .CDCSpecification = VERSION_BCD(01.10), - }, - - .CDC_Functional_ACM = - { - .Header = {.Size = sizeof(USB_CDC_Descriptor_FunctionalACM_t), .Type = DTYPE_CSInterface}, - .Subtype = 0x02, - - .Capabilities = 0x04, - }, - - .CDC_Functional_Union = - { - .Header = {.Size = sizeof(USB_CDC_Descriptor_FunctionalUnion_t), .Type = DTYPE_CSInterface}, - .Subtype = 0x06, - - .MasterInterfaceNumber = 0, - .SlaveInterfaceNumber = 1, - }, - - .CDC_NotificationEndpoint = - { - .Header = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint}, - - .EndpointAddress = (ENDPOINT_DIR_IN | CDC_NOTIFICATION_EPNUM), - .Attributes = (EP_TYPE_INTERRUPT | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA), - .EndpointSize = CDC_NOTIFICATION_EPSIZE, - .PollingIntervalMS = 0xFF - }, - - .CDC_DCI_Interface = - { - .Header = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface}, - - .InterfaceNumber = 1, - .AlternateSetting = 0, - - .TotalEndpoints = 2, - - .Class = CDC_CSCP_CDCDataClass, - .SubClass = CDC_CSCP_NoDataSubclass, - .Protocol = CDC_CSCP_NoDataProtocol, - - .InterfaceStrIndex = NO_DESCRIPTOR - }, - - .CDC_DataOutEndpoint = - { - .Header = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint}, - - .EndpointAddress = (ENDPOINT_DIR_OUT | CDC_RX_EPNUM), - .Attributes = (EP_TYPE_BULK | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA), - .EndpointSize = CDC_TXRX_EPSIZE, - .PollingIntervalMS = 0x01 - }, - - .CDC_DataInEndpoint = - { - .Header = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint}, - - .EndpointAddress = (ENDPOINT_DIR_IN | CDC_TX_EPNUM), - .Attributes = (EP_TYPE_BULK | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA), - .EndpointSize = CDC_TXRX_EPSIZE, - .PollingIntervalMS = 0x01 - } -}; - -/** Language descriptor structure. This descriptor, located in SRAM memory, is returned when the host requests - * the string descriptor with index 0 (the first index). It is actually an array of 16-bit integers, which indicate - * via the language ID table available at USB.org what languages the device supports for its string descriptors. - */ -const USB_Descriptor_String_t LanguageString = -{ - .Header = {.Size = USB_STRING_LEN(1), .Type = DTYPE_String}, - - .UnicodeString = {LANGUAGE_ID_ENG} -}; - -/** Product descriptor string. This is a Unicode string containing the product's details in human readable form, - * and is read out upon request by the host when the appropriate string ID is requested, listed in the Device - * Descriptor. - */ -const USB_Descriptor_String_t ProductString = -{ - .Header = {.Size = USB_STRING_LEN(16), .Type = DTYPE_String}, - - .UnicodeString = L"Arduino Leonardo" -}; -/* -const USB_Descriptor_String_t SerialNumString = -{ - .Header = {.Size = USB_STRING_LEN(12), .Type = DTYPE_String}, - - .UnicodeString = L"000000001452" -}; -*/ -const USB_Descriptor_String_t ManufNameString = -{ - .Header = {.Size = USB_STRING_LEN(11), .Type = DTYPE_String}, - - .UnicodeString = L"Arduino LLC" -}; - -/** This function is called by the library when in device mode, and must be overridden (see LUFA library "USB Descriptors" - * documentation) by the application code so that the address and size of a requested descriptor can be given - * to the USB library. When the device receives a Get Descriptor request on the control endpoint, this function - * is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the - * USB host. - */ -uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, - const uint8_t wIndex, - const void** const DescriptorAddress) -{ - const uint8_t DescriptorType = (wValue >> 8); - const uint8_t DescriptorNumber = (wValue & 0xFF); - - const void* Address = NULL; - uint16_t Size = NO_DESCRIPTOR; - - switch (DescriptorType) - { - case DTYPE_Device: - Address = &DeviceDescriptor; - Size = sizeof(USB_Descriptor_Device_t); - break; - case DTYPE_Configuration: - Address = &ConfigurationDescriptor; - Size = sizeof(USB_Descriptor_Configuration_t); - break; - case DTYPE_String: - if (!(DescriptorNumber)) - { - Address = &LanguageString; - Size = LanguageString.Header.Size; - } - else if (DescriptorNumber == DeviceDescriptor.ProductStrIndex) - { - Address = &ProductString; - Size = ProductString.Header.Size; -// } else if (DescriptorNumber == DeviceDescriptor.SerialNumStrIndex) -// { -// Address = &SerialNumString; -// Size = SerialNumString.Header.Size; - } else if (DescriptorNumber == DeviceDescriptor.ManufacturerStrIndex) - { - Address = &ManufNameString; - Size = ManufNameString.Header.Size; - } - - break; - } - - *DescriptorAddress = Address; - return Size; -} - diff --git a/build/linux/work/hardware/arduino/bootloaders/caterina/Descriptors.h b/build/linux/work/hardware/arduino/bootloaders/caterina/Descriptors.h deleted file mode 100644 index 94091aef0..000000000 --- a/build/linux/work/hardware/arduino/bootloaders/caterina/Descriptors.h +++ /dev/null @@ -1,139 +0,0 @@ -/* - LUFA Library - Copyright (C) Dean Camera, 2011. - - dean [at] fourwalledcubicle [dot] com - www.lufa-lib.org -*/ - -/* - Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com) - - Permission to use, copy, modify, distribute, and sell this - software and its documentation for any purpose is hereby granted - without fee, provided that the above copyright notice appear in - all copies and that both that the copyright notice and this - permission notice and warranty disclaimer appear in supporting - documentation, and that the name of the author not be used in - advertising or publicity pertaining to distribution of the - software without specific, written prior permission. - - The author disclaim all warranties with regard to this - software, including all implied warranties of merchantability - and fitness. In no event shall the author be liable for any - special, indirect or consequential damages or any damages - whatsoever resulting from loss of use, data or profits, whether - in an action of contract, negligence or other tortious action, - arising out of or in connection with the use or performance of - this software. -*/ - -/** \file - * - * Header file for Descriptors.c. - */ - -#ifndef _DESCRIPTORS_H_ -#define _DESCRIPTORS_H_ - - /* Includes: */ - #include - - /* Macros: */ - #if defined(__AVR_AT90USB1287__) - #define AVR_SIGNATURE_1 0x1E - #define AVR_SIGNATURE_2 0x97 - #define AVR_SIGNATURE_3 0x82 - #elif defined(__AVR_AT90USB647__) - #define AVR_SIGNATURE_1 0x1E - #define AVR_SIGNATURE_2 0x96 - #define AVR_SIGNATURE_3 0x82 - #elif defined(__AVR_AT90USB1286__) - #define AVR_SIGNATURE_1 0x1E - #define AVR_SIGNATURE_2 0x97 - #define AVR_SIGNATURE_3 0x82 - #elif defined(__AVR_AT90USB646__) - #define AVR_SIGNATURE_1 0x1E - #define AVR_SIGNATURE_2 0x96 - #define AVR_SIGNATURE_3 0x82 - #elif defined(__AVR_ATmega32U6__) - #define AVR_SIGNATURE_1 0x1E - #define AVR_SIGNATURE_2 0x95 - #define AVR_SIGNATURE_3 0x88 - #elif defined(__AVR_ATmega32U4__) - #define AVR_SIGNATURE_1 0x1E - #define AVR_SIGNATURE_2 0x95 - #define AVR_SIGNATURE_3 0x87 - #elif defined(__AVR_ATmega16U4__) - #define AVR_SIGNATURE_1 0x1E - #define AVR_SIGNATURE_2 0x94 - #define AVR_SIGNATURE_3 0x88 - #elif defined(__AVR_ATmega32U2__) - #define AVR_SIGNATURE_1 0x1E - #define AVR_SIGNATURE_2 0x95 - #define AVR_SIGNATURE_3 0x8A - #elif defined(__AVR_ATmega16U2__) - #define AVR_SIGNATURE_1 0x1E - #define AVR_SIGNATURE_2 0x94 - #define AVR_SIGNATURE_3 0x89 - #elif defined(__AVR_AT90USB162__) - #define AVR_SIGNATURE_1 0x1E - #define AVR_SIGNATURE_2 0x94 - #define AVR_SIGNATURE_3 0x82 - #elif defined(__AVR_ATmega8U2__) - #define AVR_SIGNATURE_1 0x1E - #define AVR_SIGNATURE_2 0x93 - #define AVR_SIGNATURE_3 0x89 - #elif defined(__AVR_AT90USB82__) - #define AVR_SIGNATURE_1 0x1E - #define AVR_SIGNATURE_2 0x94 - #define AVR_SIGNATURE_3 0x82 - #else - #error The selected AVR part is not currently supported by this bootloader. - #endif - - /** Endpoint number for the CDC control interface event notification endpoint. */ - #define CDC_NOTIFICATION_EPNUM 2 - - /** Endpoint number for the CDC data interface TX (data IN) endpoint. */ - #define CDC_TX_EPNUM 3 - - /** Endpoint number for the CDC data interface RX (data OUT) endpoint. */ - #define CDC_RX_EPNUM 4 - - /** Size of the CDC data interface TX and RX data endpoint banks, in bytes. */ - #define CDC_TXRX_EPSIZE 16 - - /** Size of the CDC control interface notification endpoint bank, in bytes. */ - #define CDC_NOTIFICATION_EPSIZE 8 - - /* Type Defines: */ - /** Type define for the device configuration descriptor structure. This must be defined in the - * application code, as the configuration descriptor contains several sub-descriptors which - * vary between devices, and which describe the device's usage to the host. - */ - typedef struct - { - USB_Descriptor_Configuration_Header_t Config; - - // CDC Control Interface - USB_Descriptor_Interface_t CDC_CCI_Interface; - USB_CDC_Descriptor_FunctionalHeader_t CDC_Functional_Header; - USB_CDC_Descriptor_FunctionalACM_t CDC_Functional_ACM; - USB_CDC_Descriptor_FunctionalUnion_t CDC_Functional_Union; - USB_Descriptor_Endpoint_t CDC_NotificationEndpoint; - - // CDC Data Interface - USB_Descriptor_Interface_t CDC_DCI_Interface; - USB_Descriptor_Endpoint_t CDC_DataOutEndpoint; - USB_Descriptor_Endpoint_t CDC_DataInEndpoint; - } USB_Descriptor_Configuration_t; - - /* Function Prototypes: */ - uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, - const uint8_t wIndex, - const void** const DescriptorAddress) - ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3); - -#endif - diff --git a/build/linux/work/hardware/arduino/bootloaders/caterina/Makefile b/build/linux/work/hardware/arduino/bootloaders/caterina/Makefile deleted file mode 100644 index ef583bc62..000000000 --- a/build/linux/work/hardware/arduino/bootloaders/caterina/Makefile +++ /dev/null @@ -1,717 +0,0 @@ -# Hey Emacs, this is a -*- makefile -*- -#---------------------------------------------------------------------------- -# WinAVR Makefile Template written by Eric B. Weddington, Jrg Wunsch, et al. -# >> Modified for use with the LUFA project. << -# -# Released to the Public Domain -# -# Additional material for this makefile was written by: -# Peter Fleury -# Tim Henigan -# Colin O'Flynn -# Reiner Patommel -# Markus Pfaff -# Sander Pool -# Frederik Rouleau -# Carlos Lamas -# Dean Camera -# Opendous Inc. -# Denver Gingerich -# -#---------------------------------------------------------------------------- -# On command line: -# -# make all = Make software. -# -# make clean = Clean out built project files. -# -# make coff = Convert ELF to AVR COFF. -# -# make extcoff = Convert ELF to AVR Extended COFF. -# -# make program = Download the hex file to the device, using avrdude. -# Please customize the avrdude settings below first! -# -# make doxygen = Generate DoxyGen documentation for the project (must have -# DoxyGen installed) -# -# make debug = Start either simulavr or avarice as specified for debugging, -# with avr-gdb or avr-insight as the front end for debugging. -# -# make filename.s = Just compile filename.c into the assembler code only. -# -# make filename.i = Create a preprocessed source file for use in submitting -# bug reports to the GCC project. -# -# To rebuild project do "make clean" then "make all". -#---------------------------------------------------------------------------- - - -# MCU name -MCU = atmega32u4 - - -# Target architecture (see library "Board Types" documentation). -ARCH = AVR8 - - -# Target board (see library "Board Types" documentation, NONE for projects not requiring -# LUFA board drivers). If USER is selected, put custom board drivers in a directory called -# "Board" inside the application directory. -BOARD = USER - - -# Processor frequency. -# This will define a symbol, F_CPU, in all source code files equal to the -# processor frequency in Hz. You can then use this symbol in your source code to -# calculate timings. Do NOT tack on a 'UL' at the end, this will be done -# automatically to create a 32-bit value in your source code. -# -# This will be an integer division of F_USB below, as it is sourced by -# F_USB after it has run through any CPU prescalers. Note that this value -# does not *change* the processor frequency - it should merely be updated to -# reflect the processor speed set externally so that the code can use accurate -# software delays. -F_CPU = 16000000 - - -# Input clock frequency. -# This will define a symbol, F_USB, in all source code files equal to the -# input clock frequency (before any prescaling is performed) in Hz. This value may -# differ from F_CPU if prescaling is used on the latter, and is required as the -# raw input clock is fed directly to the PLL sections of the AVR for high speed -# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' -# at the end, this will be done automatically to create a 32-bit value in your -# source code. -# -# If no clock division is performed on the input clock inside the AVR (via the -# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. -F_USB = $(F_CPU) - - -# Starting byte address of the bootloader, as a byte address - computed via the formula -# BOOT_START = ((FLASH_SIZE_KB - BOOT_SECTION_SIZE_KB) * 1024) -# -# Note that the bootloader size and start address given in AVRStudio is in words and not -# bytes, and so will need to be doubled to obtain the byte address needed by AVR-GCC. -FLASH_SIZE_KB = 32 -BOOT_SECTION_SIZE_KB = 4 -BOOT_START = 0x$(shell echo "obase=16; ($(FLASH_SIZE_KB) - $(BOOT_SECTION_SIZE_KB)) * 1024" | bc) - - -# Output format. (can be srec, ihex, binary) -FORMAT = ihex - - -# Target file name (without extension). -TARGET = Caterina - - -# Object files directory -# To put object files in current directory, use a dot (.), do NOT make -# this an empty or blank macro! -OBJDIR = . - - -# Path to the LUFA library -LUFA_PATH = ../../../../../LUFA-111009 - - -# LUFA library compile-time options and predefined tokens -LUFA_OPTS = -D USB_DEVICE_ONLY -LUFA_OPTS += -D DEVICE_STATE_AS_GPIOR=0 -LUFA_OPTS += -D ORDERED_EP_CONFIG -LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8 -LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1 -LUFA_OPTS += -D USE_RAM_DESCRIPTORS -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)" -LUFA_OPTS += -D NO_INTERNAL_SERIAL -LUFA_OPTS += -D NO_DEVICE_SELF_POWER -LUFA_OPTS += -D NO_DEVICE_REMOTE_WAKEUP -LUFA_OPTS += -D NO_SOF_EVENTS - -#LUFA_OPTS += -D NO_BLOCK_SUPPORT -#LUFA_OPTS += -D NO_EEPROM_BYTE_SUPPORT -#LUFA_OPTS += -D NO_FLASH_BYTE_SUPPORT -LUFA_OPTS += -D NO_LOCK_BYTE_WRITE_SUPPORT - - -# Create the LUFA source path variables by including the LUFA root makefile -include $(LUFA_PATH)/LUFA/makefile - - -# List C source files here. (C dependencies are automatically generated.) -SRC = $(TARGET).c \ - Descriptors.c \ - $(LUFA_SRC_USB) \ - - -# List C++ source files here. (C dependencies are automatically generated.) -CPPSRC = - - -# List Assembler source files here. -# Make them always end in a capital .S. Files ending in a lowercase .s -# will not be considered source files but generated files (assembler -# output from the compiler), and will be deleted upon "make clean"! -# Even though the DOS/Win* filesystem matches both .s and .S the same, -# it will preserve the spelling of the filenames, and gcc itself does -# care about how the name is spelled on its command-line. -ASRC = - - -# Optimization level, can be [0, 1, 2, 3, s]. -# 0 = turn off optimization. s = optimize for size. -# (Note: 3 is not always the best optimization level. See avr-libc FAQ.) -OPT = s - - -# Debugging format. -# Native formats for AVR-GCC's -g are dwarf-2 [default] or stabs. -# AVR Studio 4.10 requires dwarf-2. -# AVR [Extended] COFF format requires stabs, plus an avr-objcopy run. -DEBUG = dwarf-2 - - -# List any extra directories to look for include files here. -# Each directory must be seperated by a space. -# Use forward slashes for directory separators. -# For a directory that has spaces, enclose it in quotes. -EXTRAINCDIRS = $(LUFA_PATH)/ - - -# Compiler flag to set the C Standard level. -# c89 = "ANSI" C -# gnu89 = c89 plus GCC extensions -# c99 = ISO C99 standard (not yet fully implemented) -# gnu99 = c99 plus GCC extensions -CSTANDARD = -std=c99 - - -# Place -D or -U options here for C sources -CDEFS = -DF_CPU=$(F_CPU)UL -CDEFS += -DF_USB=$(F_USB)UL -CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH) -CDEFS += -DBOOT_START_ADDR=$(BOOT_START)UL -CDEFS += $(LUFA_OPTS) - - -# Place -D or -U options here for ASM sources -ADEFS = -DF_CPU=$(F_CPU) -ADEFS += -DF_USB=$(F_USB)UL -ADEFS += -DBOARD=BOARD_$(BOARD) -ADEFS += -DBOOT_START_ADDR=$(BOOT_START)UL -ADEFS += $(LUFA_OPTS) - - -# Place -D or -U options here for C++ sources -CPPDEFS = -DF_CPU=$(F_CPU)UL -CPPDEFS += -DF_USB=$(F_USB)UL -CPPDEFS += -DBOARD=BOARD_$(BOARD) -CPPDEFS += -DBOOT_START_ADDR=$(BOOT_START)UL -CPPDEFS += $(LUFA_OPTS) -#CPPDEFS += -D__STDC_LIMIT_MACROS -#CPPDEFS += -D__STDC_CONSTANT_MACROS - - - -#---------------- Compiler Options C ---------------- -# -g*: generate debugging information -# -O*: optimization level -# -f...: tuning, see GCC manual and avr-libc documentation -# -Wall...: warning level -# -Wa,...: tell GCC to pass this to the assembler. -# -adhlns...: create assembler listing -CFLAGS = -g$(DEBUG) -CFLAGS += $(CDEFS) -CFLAGS += -O$(OPT) -CFLAGS += -funsigned-char -CFLAGS += -funsigned-bitfields -CFLAGS += -ffunction-sections -CFLAGS += -fno-inline-small-functions -CFLAGS += -fpack-struct -CFLAGS += -fshort-enums -CFLAGS += -fno-strict-aliasing -CFLAGS += -Wall -CFLAGS += -Wstrict-prototypes -#CFLAGS += -mshort-calls -#CFLAGS += -fno-unit-at-a-time -#CFLAGS += -Wundef -#CFLAGS += -Wunreachable-code -#CFLAGS += -Wsign-compare -CFLAGS += -Wa,-adhlns=$(<:%.c=$(OBJDIR)/%.lst) -CFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS)) -CFLAGS += $(CSTANDARD) - - -#---------------- Compiler Options C++ ---------------- -# -g*: generate debugging information -# -O*: optimization level -# -f...: tuning, see GCC manual and avr-libc documentation -# -Wall...: warning level -# -Wa,...: tell GCC to pass this to the assembler. -# -adhlns...: create assembler listing -CPPFLAGS = -g$(DEBUG) -CPPFLAGS += $(CPPDEFS) -CPPFLAGS += -O$(OPT) -CPPFLAGS += -funsigned-char -CPPFLAGS += -funsigned-bitfields -CPPFLAGS += -fpack-struct -CPPFLAGS += -fshort-enums -CPPFLAGS += -fno-exceptions -CPPFLAGS += -Wall -CPPFLAGS += -Wundef -#CPPFLAGS += -mshort-calls -#CPPFLAGS += -fno-unit-at-a-time -#CPPFLAGS += -Wstrict-prototypes -#CPPFLAGS += -Wunreachable-code -#CPPFLAGS += -Wsign-compare -CPPFLAGS += -Wa,-adhlns=$(<:%.cpp=$(OBJDIR)/%.lst) -CPPFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS)) -#CPPFLAGS += $(CSTANDARD) - - -#---------------- Assembler Options ---------------- -# -Wa,...: tell GCC to pass this to the assembler. -# -adhlns: create listing -# -gstabs: have the assembler create line number information; note that -# for use in COFF files, additional information about filenames -# and function names needs to be present in the assembler source -# files -- see avr-libc docs [FIXME: not yet described there] -# -listing-cont-lines: Sets the maximum number of continuation lines of hex -# dump that will be displayed for a given single line of source input. -ASFLAGS = $(ADEFS) -Wa,-adhlns=$(<:%.S=$(OBJDIR)/%.lst),-gstabs,--listing-cont-lines=100 - - -#---------------- Library Options ---------------- -# Minimalistic printf version -PRINTF_LIB_MIN = -Wl,-u,vfprintf -lprintf_min - -# Floating point printf version (requires MATH_LIB = -lm below) -PRINTF_LIB_FLOAT = -Wl,-u,vfprintf -lprintf_flt - -# If this is left blank, then it will use the Standard printf version. -PRINTF_LIB = -#PRINTF_LIB = $(PRINTF_LIB_MIN) -#PRINTF_LIB = $(PRINTF_LIB_FLOAT) - - -# Minimalistic scanf version -SCANF_LIB_MIN = -Wl,-u,vfscanf -lscanf_min - -# Floating point + %[ scanf version (requires MATH_LIB = -lm below) -SCANF_LIB_FLOAT = -Wl,-u,vfscanf -lscanf_flt - -# If this is left blank, then it will use the Standard scanf version. -SCANF_LIB = -#SCANF_LIB = $(SCANF_LIB_MIN) -#SCANF_LIB = $(SCANF_LIB_FLOAT) - - -MATH_LIB = -lm - - -# List any extra directories to look for libraries here. -# Each directory must be seperated by a space. -# Use forward slashes for directory separators. -# For a directory that has spaces, enclose it in quotes. -EXTRALIBDIRS = - - - -#---------------- External Memory Options ---------------- - -# 64 KB of external RAM, starting after internal RAM (ATmega128!), -# used for variables (.data/.bss) and heap (malloc()). -#EXTMEMOPTS = -Wl,-Tdata=0x801100,--defsym=__heap_end=0x80ffff - -# 64 KB of external RAM, starting after internal RAM (ATmega128!), -# only used for heap (malloc()). -#EXTMEMOPTS = -Wl,--section-start,.data=0x801100,--defsym=__heap_end=0x80ffff - -EXTMEMOPTS = - - - -#---------------- Linker Options ---------------- -# -Wl,...: tell GCC to pass this to linker. -# -Map: create map file -# --cref: add cross reference to map file -LDFLAGS = -Wl,-Map=$(TARGET).map,--cref -LDFLAGS += -Wl,--section-start=.text=$(BOOT_START) -LDFLAGS += -Wl,--relax -LDFLAGS += -Wl,--gc-sections -LDFLAGS += $(EXTMEMOPTS) -LDFLAGS += $(patsubst %,-L%,$(EXTRALIBDIRS)) -LDFLAGS += $(PRINTF_LIB) $(SCANF_LIB) $(MATH_LIB) -#LDFLAGS += -T linker_script.x - - - -#---------------- Programming Options (avrdude) ---------------- - -# Programming hardware -# Type: avrdude -c ? -# to get a full listing. -# -AVRDUDE_PROGRAMMER = avrispmkII - -# com1 = serial port. Use lpt1 to connect to parallel port. -AVRDUDE_PORT = usb - -AVRDUDE_WRITE_FLASH = -U flash:w:$(TARGET).hex -#AVRDUDE_WRITE_EEPROM = -U eeprom:w:$(TARGET).eep - - -# Uncomment the following if you want avrdude's erase cycle counter. -# Note that this counter needs to be initialized first using -Yn, -# see avrdude manual. -#AVRDUDE_ERASE_COUNTER = -y - -# Uncomment the following if you do /not/ wish a verification to be -# performed after programming the device. -#AVRDUDE_NO_VERIFY = -V - -# Increase verbosity level. Please use this when submitting bug -# reports about avrdude. See -# to submit bug reports. -#AVRDUDE_VERBOSE = -v -v - -AVRDUDE_FLAGS = -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER) -AVRDUDE_FLAGS += $(AVRDUDE_NO_VERIFY) -AVRDUDE_FLAGS += $(AVRDUDE_VERBOSE) -AVRDUDE_FLAGS += $(AVRDUDE_ERASE_COUNTER) - - - -#---------------- Debugging Options ---------------- - -# For simulavr only - target MCU frequency. -DEBUG_MFREQ = $(F_CPU) - -# Set the DEBUG_UI to either gdb or insight. -# DEBUG_UI = gdb -DEBUG_UI = insight - -# Set the debugging back-end to either avarice, simulavr. -DEBUG_BACKEND = avarice -#DEBUG_BACKEND = simulavr - -# GDB Init Filename. -GDBINIT_FILE = __avr_gdbinit - -# When using avarice settings for the JTAG -JTAG_DEV = /dev/com1 - -# Debugging port used to communicate between GDB / avarice / simulavr. -DEBUG_PORT = 4242 - -# Debugging host used to communicate between GDB / avarice / simulavr, normally -# just set to localhost unless doing some sort of crazy debugging when -# avarice is running on a different computer. -DEBUG_HOST = localhost - - - -#============================================================================ - - -# Define programs and commands. -SHELL = sh -CC = avr-gcc -OBJCOPY = avr-objcopy -OBJDUMP = avr-objdump -SIZE = avr-size -AR = avr-ar rcs -NM = avr-nm -AVRDUDE = /Applications/avrdude -C /Applications/avrdude.conf -B 1 -REMOVE = rm -f -REMOVEDIR = rm -rf -COPY = cp -WINSHELL = cmd - - -# Define Messages -# English -MSG_ERRORS_NONE = Errors: none -MSG_BEGIN = -------- begin -------- -MSG_END = -------- end -------- -MSG_SIZE_BEFORE = Size before: -MSG_SIZE_AFTER = Size after: -MSG_COFF = Converting to AVR COFF: -MSG_EXTENDED_COFF = Converting to AVR Extended COFF: -MSG_FLASH = Creating load file for Flash: -MSG_EEPROM = Creating load file for EEPROM: -MSG_EXTENDED_LISTING = Creating Extended Listing: -MSG_SYMBOL_TABLE = Creating Symbol Table: -MSG_LINKING = Linking: -MSG_COMPILING = Compiling C: -MSG_COMPILING_CPP = Compiling C++: -MSG_ASSEMBLING = Assembling: -MSG_CLEANING = Cleaning project: -MSG_CREATING_LIBRARY = Creating library: - - - - -# Define all object files. -OBJ = $(SRC:%.c=$(OBJDIR)/%.o) $(CPPSRC:%.cpp=$(OBJDIR)/%.o) $(ASRC:%.S=$(OBJDIR)/%.o) - -# Define all listing files. -LST = $(SRC:%.c=$(OBJDIR)/%.lst) $(CPPSRC:%.cpp=$(OBJDIR)/%.lst) $(ASRC:%.S=$(OBJDIR)/%.lst) - - -# Compiler flags to generate dependency files. -GENDEPFLAGS = -MMD -MP -MF .dep/$(@F).d - - -# Combine all necessary flags and optional flags. -# Add target processor to flags. -ALL_CFLAGS = -mmcu=$(MCU) -I. $(CFLAGS) $(GENDEPFLAGS) -ALL_CPPFLAGS = -mmcu=$(MCU) -I. -x c++ $(CPPFLAGS) $(GENDEPFLAGS) -ALL_ASFLAGS = -mmcu=$(MCU) -I. -x assembler-with-cpp $(ASFLAGS) - - - - - -# Default target. -all: begin gccversion sizebefore build sizeafter end - -# Change the build target to build a HEX file or a library. -build: elf hex eep lss sym -#build: lib - - -elf: $(TARGET).elf -hex: $(TARGET).hex -eep: $(TARGET).eep -lss: $(TARGET).lss -sym: $(TARGET).sym -LIBNAME=lib$(TARGET).a -lib: $(LIBNAME) - - - -# Eye candy. -# AVR Studio 3.x does not check make's exit code but relies on -# the following magic strings to be generated by the compile job. -begin: - @echo - @echo $(MSG_BEGIN) - -end: - @echo $(MSG_END) - @echo - - -# Display size of file. -HEXSIZE = $(SIZE) --target=$(FORMAT) $(TARGET).hex -ELFSIZE = $(SIZE) $(MCU_FLAG) $(FORMAT_FLAG) $(TARGET).elf -MCU_FLAG = $(shell $(SIZE) --help | grep -- --mcu > /dev/null && echo --mcu=$(MCU) ) -FORMAT_FLAG = $(shell $(SIZE) --help | grep -- --format=.*avr > /dev/null && echo --format=avr ) - - -sizebefore: - @if test -f $(TARGET).elf; then echo; echo $(MSG_SIZE_BEFORE); $(ELFSIZE); \ - 2>/dev/null; echo; fi - -sizeafter: - @if test -f $(TARGET).elf; then echo; echo $(MSG_SIZE_AFTER); $(ELFSIZE); \ - 2>/dev/null; echo; fi - - - -# Display compiler version information. -gccversion : - @$(CC) --version - - -# Program the device. -program: $(TARGET).hex $(TARGET).eep - $(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FLASH) $(AVRDUDE_WRITE_EEPROM) - - -# Generate avr-gdb config/init file which does the following: -# define the reset signal, load the target file, connect to target, and set -# a breakpoint at main(). -gdb-config: - @$(REMOVE) $(GDBINIT_FILE) - @echo define reset >> $(GDBINIT_FILE) - @echo SIGNAL SIGHUP >> $(GDBINIT_FILE) - @echo end >> $(GDBINIT_FILE) - @echo file $(TARGET).elf >> $(GDBINIT_FILE) - @echo target remote $(DEBUG_HOST):$(DEBUG_PORT) >> $(GDBINIT_FILE) -ifeq ($(DEBUG_BACKEND),simulavr) - @echo load >> $(GDBINIT_FILE) -endif - @echo break main >> $(GDBINIT_FILE) - -debug: gdb-config $(TARGET).elf -ifeq ($(DEBUG_BACKEND), avarice) - @echo Starting AVaRICE - Press enter when "waiting to connect" message displays. - @$(WINSHELL) /c start avarice --jtag $(JTAG_DEV) --erase --program --file \ - $(TARGET).elf $(DEBUG_HOST):$(DEBUG_PORT) - @$(WINSHELL) /c pause - -else - @$(WINSHELL) /c start simulavr --gdbserver --device $(MCU) --clock-freq \ - $(DEBUG_MFREQ) --port $(DEBUG_PORT) -endif - @$(WINSHELL) /c start avr-$(DEBUG_UI) --command=$(GDBINIT_FILE) - - - - -# Convert ELF to COFF for use in debugging / simulating in AVR Studio or VMLAB. -COFFCONVERT = $(OBJCOPY) --debugging -COFFCONVERT += --change-section-address .data-0x800000 -COFFCONVERT += --change-section-address .bss-0x800000 -COFFCONVERT += --change-section-address .noinit-0x800000 -COFFCONVERT += --change-section-address .eeprom-0x810000 - - - -coff: $(TARGET).elf - @echo - @echo $(MSG_COFF) $(TARGET).cof - $(COFFCONVERT) -O coff-avr $< $(TARGET).cof - - -extcoff: $(TARGET).elf - @echo - @echo $(MSG_EXTENDED_COFF) $(TARGET).cof - $(COFFCONVERT) -O coff-ext-avr $< $(TARGET).cof - - - -# Create final output files (.hex, .eep) from ELF output file. -%.hex: %.elf - @echo - @echo $(MSG_FLASH) $@ - $(OBJCOPY) -O $(FORMAT) -R .eeprom -R .fuse -R .lock $< $@ - -%.eep: %.elf - @echo - @echo $(MSG_EEPROM) $@ - -$(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" \ - --change-section-lma .eeprom=0 --no-change-warnings -O $(FORMAT) $< $@ || exit 0 - -# Create extended listing file from ELF output file. -%.lss: %.elf - @echo - @echo $(MSG_EXTENDED_LISTING) $@ - $(OBJDUMP) -h -S -z $< > $@ - -# Create a symbol table from ELF output file. -%.sym: %.elf - @echo - @echo $(MSG_SYMBOL_TABLE) $@ - $(NM) -n $< > $@ - - - -# Create library from object files. -.SECONDARY : $(TARGET).a -.PRECIOUS : $(OBJ) -%.a: $(OBJ) - @echo - @echo $(MSG_CREATING_LIBRARY) $@ - $(AR) $@ $(OBJ) - - -# Link: create ELF output file from object files. -.SECONDARY : $(TARGET).elf -.PRECIOUS : $(OBJ) -%.elf: $(OBJ) - @echo - @echo $(MSG_LINKING) $@ - $(CC) $(ALL_CFLAGS) $^ --output $@ $(LDFLAGS) - - -# Compile: create object files from C source files. -$(OBJDIR)/%.o : %.c - @echo - @echo $(MSG_COMPILING) $< - $(CC) -c $(ALL_CFLAGS) $< -o $@ - - -# Compile: create object files from C++ source files. -$(OBJDIR)/%.o : %.cpp - @echo - @echo $(MSG_COMPILING_CPP) $< - $(CC) -c $(ALL_CPPFLAGS) $< -o $@ - - -# Compile: create assembler files from C source files. -%.s : %.c - $(CC) -S $(ALL_CFLAGS) $< -o $@ - - -# Compile: create assembler files from C++ source files. -%.s : %.cpp - $(CC) -S $(ALL_CPPFLAGS) $< -o $@ - - -# Assemble: create object files from assembler source files. -$(OBJDIR)/%.o : %.S - @echo - @echo $(MSG_ASSEMBLING) $< - $(CC) -c $(ALL_ASFLAGS) $< -o $@ - - -# Create preprocessed source for use in sending a bug report. -%.i : %.c - $(CC) -E -mmcu=$(MCU) -I. $(CFLAGS) $< -o $@ - - -# Target: clean project. -clean: begin clean_list end - -clean_list : - @echo - @echo $(MSG_CLEANING) - $(REMOVE) $(TARGET).hex - $(REMOVE) $(TARGET).eep - $(REMOVE) $(TARGET).cof - $(REMOVE) $(TARGET).elf - $(REMOVE) $(TARGET).map - $(REMOVE) $(TARGET).sym - $(REMOVE) $(TARGET).lss - $(REMOVE) $(SRC:%.c=$(OBJDIR)/%.o) $(CPPSRC:%.cpp=$(OBJDIR)/%.o) $(ASRC:%.S=$(OBJDIR)/%.o) - $(REMOVE) $(SRC:%.c=$(OBJDIR)/%.lst) $(CPPSRC:%.cpp=$(OBJDIR)/%.lst) $(ASRC:%.S=$(OBJDIR)/%.lst) - $(REMOVE) $(SRC:.c=.s) - $(REMOVE) $(SRC:.c=.d) - $(REMOVE) $(SRC:.c=.i) - $(REMOVEDIR) .dep - -doxygen: - @echo Generating Project Documentation \($(TARGET)\)... - @doxygen Doxygen.conf - @echo Documentation Generation Complete. - -clean_doxygen: - rm -rf Documentation - -checksource: - @for f in $(SRC) $(CPPSRC) $(ASRC); do \ - if [ -f $$f ]; then \ - echo "Found Source File: $$f" ; \ - else \ - echo "Source File Not Found: $$f" ; \ - fi; done - - -# Create object files directory -$(shell mkdir $(OBJDIR) 2>/dev/null) - - -# Include the dependency files. --include $(shell mkdir .dep 2>/dev/null) $(wildcard .dep/*) - - -# Listing of phony targets. -.PHONY : all begin finish end sizebefore sizeafter gccversion \ -build elf hex eep lss sym coff extcoff doxygen clean \ -clean_list clean_doxygen program debug gdb-config checksource - diff --git a/build/linux/work/hardware/arduino/bootloaders/lilypad/LilyPadBOOT_168.hex b/build/linux/work/hardware/arduino/bootloaders/lilypad/LilyPadBOOT_168.hex deleted file mode 100644 index aea378e96..000000000 --- a/build/linux/work/hardware/arduino/bootloaders/lilypad/LilyPadBOOT_168.hex +++ /dev/null @@ -1,117 +0,0 @@ -:103800000C94341C0C944F1C0C944F1C0C944F1CA7 -:103810000C944F1C0C944F1C0C944F1C0C944F1C7C -:103820000C944F1C0C944F1C0C944F1C0C944F1C6C -:103830000C944F1C0C944F1C0C944F1C0C944F1C5C -:103840000C944F1C0C944F1C0C944F1C0C944F1C4C -:103850000C944F1C0C944F1C0C944F1C0C944F1C3C -:103860000C944F1C0C944F1C11241FBECFEFD4E0BE -:10387000DEBFCDBF11E0A0E0B1E0E8E1FFE302C0B0 -:1038800005900D92A230B107D9F712E0A2E0B1E0A5 -:1038900001C01D92AD30B107E1F70C94311D0C94BD -:1038A000001CCF93DF93CDB7DEB724970FB6F89403 -:1038B000DEBF0FBECDBF382F882309F433E010924E -:1038C0000A02332309F44BC020E02D9A19821A8290 -:1038D0001B821C8289819A81AB81BC8180549F416B -:1038E000A040B040A0F489819A81AB81BC8101964F -:1038F000A11DB11D89839A83AB83BC8389819A8181 -:10390000AB81BC8180549F41A040B04060F32D98B2 -:1039100019821A821B821C8289819A81AB81BC81A7 -:1039200080549F41A040B040A0F489819A81AB812E -:10393000BC810196A11DB11D89839A83AB83BC8391 -:1039400089819A81AB81BC8180549F41A040B04065 -:1039500060F32F5F231708F4B8CF20930A02249650 -:103960000FB6F894DEBF0FBECDBFDF91CF910895A3 -:10397000EF92FF920F931F93EE24FF248701809113 -:10398000C00087FD17C00894E11CF11C011D111D2A -:1039900081E0E81689E0F8068DE3080780E0180763 -:1039A00070F3E0910201F091030109958091C0004C -:1039B00087FFE9CF8091C600992787FD90951F91D9 -:1039C0000F91FF90EF900895982F8091C00085FF90 -:1039D000FCCF9093C60008950E94B81C803271F00D -:1039E000809104018F5F80930401853009F0089570 -:1039F000E0910201F09103010995089584E10E948C -:103A0000E41C80E10E94E41C08951F93182F0E947B -:103A1000B81C803269F0809104018F5F80930401AB -:103A2000853079F4E0910201F0910301099509C014 -:103A300084E10E94E41C812F0E94E41C80E10E942A -:103A4000E41C1F910895282F882351F090E0809165 -:103A5000C00087FFFCCF8091C6009F5F2917B9F790 -:103A60000895CFEFD4E0DEBFCDBF000089E18093A1 -:103A7000C4001092C50088E18093C10086E0809365 -:103A8000C2005098589A259A83E00E94511C0E94C7 -:103A9000B81C8033B1F18133B9F1803409F454C0DA -:103AA000813409F45AC0823409F469C0853409F4B8 -:103AB0006CC0803531F1813521F1823511F18535C8 -:103AC00009F4B2C0863509F4BAC0843609F463C07B -:103AD000843709F4BBC0853709F40EC1863709F471 -:103AE0004AC0809104018F5F80930401853079F68C -:103AF000E0910201F091030109950E94B81C803306 -:103B000051F60E94EC1CC3CF0E94B81C803249F7CA -:103B100084E10E94E41C81E40E94E41C86E50E948A -:103B2000E41C82E50E94E41C80E20E94E41C89E41B -:103B30000E94E41C83E50E94E41C80E50E94E41CD2 -:103B400080E10E94E41CA3CF0E94B81C8638C8F212 -:103B50000E94B81C0E94EC1C9ACF0E94B81C8038AE -:103B600009F4F7C0813809F4F8C0823809F4F9C0C3 -:103B7000883909F4BDC080E00E94051D88CF84E12A -:103B80000E94231D0E94EC1C82CF85E00E94231D11 -:103B90000E94EC1C7CCF0E94B81C809309020E94FA -:103BA000B81C8093080280910C028E7F80930C02D7 -:103BB0000E94B81C853409F4C6C080910802909117 -:103BC0000902892B09F0ADC00E94B81C803209F0AF -:103BD00088CF80910C0280FFC8C08091080290912C -:103BE00009020097D1F02091060130910701E8E029 -:103BF000F1E0AC014E0F5F1FF999FECF32BD21BD40 -:103C0000819180BDFA9AF99A2F5F3F4F4E175F0757 -:103C100099F7309307012093060184E10E94E41C88 -:103C200080E10E94E41C33CF0E94B81C80930601FF -:103C30000E94B81C809307010E94EC1C28CF84E0EE -:103C40000E94231D80E00E94051D21CF0E94B81C08 -:103C5000809309020E94B81C809308020E94B81C3D -:103C6000853409F4F4C080910C028E7F80930C029D -:103C70008091060190910701880F991F9093070189 -:103C8000809306010E94B81C803209F000CF84E1C5 -:103C90000E94E41C2091080230910902211531058F -:103CA00019F1C0E0D0E0E0910601F09107018091A8 -:103CB0000C0280FFC4C0F999FECFF2BDE1BDF89AB5 -:103CC00080B50E94E41CE0910601F0910701319655 -:103CD000F0930701E0930601209108023091090258 -:103CE0002196C217D30718F380E10E94E41CCFCEBF -:103CF00083E00E94051DCBCE0E94B81C803209F0E3 -:103D0000F0CE84E10E94E41C8EE10E94E41C84E970 -:103D10000E94E41C86E00E94E41C80E10E94E41CF6 -:103D2000B6CEC0E0D0E008E011E00E94B81CF80177 -:103D300081938F0121968091080290910902C81702 -:103D4000D90798F341CF80910C02816080930C02D7 -:103D500034CF82E00E94051D9ACE81E00E94051DAD -:103D600096CE80E10E94051D92CE8091070187FDCD -:103D700080C010920B028091060190910701880F7C -:103D8000991F90930701809306018091080280FF9C -:103D900009C080910802909109020196909309024E -:103DA00080930802F894F999FECF1127E09106015B -:103DB000F0910701C8E0D1E08091080290910902DA -:103DC000103091F40091570001700130D9F303E0F5 -:103DD00000935700E8950091570001700130D9F326 -:103DE00001E100935700E895099019900091570060 -:103DF00001700130D9F301E000935700E895139565 -:103E0000103498F011270091570001700130D9F358 -:103E100005E000935700E8950091570001700130CC -:103E2000D9F301E100935700E8953296029709F023 -:103E3000C7CF103011F00296E5CF1124EECE81FFEE -:103E40000CC03196F0930701E093060149CF8091B1 -:103E50000C02816080930C0215CF84910E94E41CB7 -:103E60002091080230910902E0910601F0910701CA -:103E7000E8CF81E080930B027ECF0F931F930E94C7 -:103E8000B81C182F0E94E41C0E94B81C082F0E9426 -:103E9000E41C11362CF0175501363CF0075508C0CC -:103EA0001033D4F310530136CCF700330CF0005329 -:103EB0001295107F100F812F992787FD90951F91E4 -:103EC0000F9108951F93282F992787FD9095807F44 -:103ED00090709595879595958795959587959595E6 -:103EE00087958A304CF0982F995A822F8F708A309C -:103EF0004CF0182F195A08C0982F905D822F8F70A0 -:103F00008A30BCF7182F105D892F0E94E41C812F86 -:083F10000E94E41C1F910895BA -:023F1800800027 -:0400000300003800C1 -:00000001FF diff --git a/build/linux/work/hardware/arduino/bootloaders/lilypad/src/ATmegaBOOT.c b/build/linux/work/hardware/arduino/bootloaders/lilypad/src/ATmegaBOOT.c deleted file mode 100644 index 915bc57f2..000000000 --- a/build/linux/work/hardware/arduino/bootloaders/lilypad/src/ATmegaBOOT.c +++ /dev/null @@ -1,979 +0,0 @@ -/**********************************************************/ -/* Serial Bootloader for Atmel megaAVR Controllers */ -/* */ -/* tested with ATmega8, ATmega128 and ATmega168 */ -/* should work with other mega's, see code for details */ -/* */ -/* ATmegaBOOT.c */ -/* */ -/* 20070626: hacked for Arduino Diecimila (which auto- */ -/* resets when a USB connection is made to it) */ -/* by D. Mellis */ -/* 20060802: hacked for Arduino by D. Cuartielles */ -/* based on a previous hack by D. Mellis */ -/* and D. Cuartielles */ -/* */ -/* Monitor and debug functions were added to the original */ -/* code by Dr. Erik Lins, chip45.com. (See below) */ -/* */ -/* Thanks to Karl Pitrich for fixing a bootloader pin */ -/* problem and more informative LED blinking! */ -/* */ -/* For the latest version see: */ -/* http://www.chip45.com/ */ -/* */ -/* ------------------------------------------------------ */ -/* */ -/* based on stk500boot.c */ -/* Copyright (c) 2003, Jason P. Kyle */ -/* All rights reserved. */ -/* see avr1.org for original file and information */ -/* */ -/* 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 2 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, write */ -/* to the Free Software Foundation, Inc., */ -/* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -/* */ -/* Licence can be viewed at */ -/* http://www.fsf.org/licenses/gpl.txt */ -/* */ -/* Target = Atmel AVR m128,m64,m32,m16,m8,m162,m163,m169, */ -/* m8515,m8535. ATmega161 has a very small boot block so */ -/* isn't supported. */ -/* */ -/* Tested with m168 */ -/**********************************************************/ - -/* $Id$ */ - - -/* some includes */ -#include -#include -#include -#include -#include - - -/* the current avr-libc eeprom functions do not support the ATmega168 */ -/* own eeprom write/read functions are used instead */ -#ifndef __AVR_ATmega168__ -#include -#endif - -/* Use the F_CPU defined in Makefile */ - -/* 20060803: hacked by DojoCorp */ -/* 20070626: hacked by David A. Mellis to decrease waiting time for auto-reset */ -/* set the waiting time for the bootloader */ -/* get this from the Makefile instead */ -/* #define MAX_TIME_COUNT (F_CPU>>4) */ - -/* 20070707: hacked by David A. Mellis - after this many errors give up and launch application */ -#define MAX_ERROR_COUNT 5 - -/* set the UART baud rate */ -/* 20060803: hacked by DojoCorp */ -//#define BAUD_RATE 115200 -#define BAUD_RATE 19200 - - -/* SW_MAJOR and MINOR needs to be updated from time to time to avoid warning message from AVR Studio */ -/* never allow AVR Studio to do an update !!!! */ -#define HW_VER 0x02 -#define SW_MAJOR 0x01 -#define SW_MINOR 0x10 - - -/* Adjust to suit whatever pin your hardware uses to enter the bootloader */ -/* ATmega128 has two UARTS so two pins are used to enter bootloader and select UART */ -/* BL0... means UART0, BL1... means UART1 */ -#ifdef __AVR_ATmega128__ -#define BL_DDR DDRF -#define BL_PORT PORTF -#define BL_PIN PINF -#define BL0 PINF7 -#define BL1 PINF6 -#else -/* other ATmegas have only one UART, so only one pin is defined to enter bootloader */ -#define BL_DDR DDRD -#define BL_PORT PORTD -#define BL_PIN PIND -#define BL PIND6 -#endif - - -/* onboard LED is used to indicate, that the bootloader was entered (3x flashing) */ -/* if monitor functions are included, LED goes on after monitor was entered */ -#ifdef __AVR_ATmega128__ -/* Onboard LED is connected to pin PB7 (e.g. Crumb128, PROBOmega128, Savvy128) */ -#define LED_DDR DDRB -#define LED_PORT PORTB -#define LED_PIN PINB -#define LED PINB7 -#else -/* Onboard LED is connected to pin PB2 (e.g. Crumb8, Crumb168) */ -#define LED_DDR DDRB -#define LED_PORT PORTB -#define LED_PIN PINB -/* 20060803: hacked by DojoCorp, LED pin is B5 in Arduino */ -/* #define LED PINB2 */ -#define LED PINB5 -#endif - - -/* monitor functions will only be compiled when using ATmega128, due to bootblock size constraints */ -#ifdef __AVR_ATmega128__ -#define MONITOR -#endif - - -/* define various device id's */ -/* manufacturer byte is always the same */ -#define SIG1 0x1E // Yep, Atmel is the only manufacturer of AVR micros. Single source :( - -#if defined __AVR_ATmega128__ -#define SIG2 0x97 -#define SIG3 0x02 -#define PAGE_SIZE 0x80U //128 words - -#elif defined __AVR_ATmega64__ -#define SIG2 0x96 -#define SIG3 0x02 -#define PAGE_SIZE 0x80U //128 words - -#elif defined __AVR_ATmega32__ -#define SIG2 0x95 -#define SIG3 0x02 -#define PAGE_SIZE 0x40U //64 words - -#elif defined __AVR_ATmega16__ -#define SIG2 0x94 -#define SIG3 0x03 -#define PAGE_SIZE 0x40U //64 words - -#elif defined __AVR_ATmega8__ -#define SIG2 0x93 -#define SIG3 0x07 -#define PAGE_SIZE 0x20U //32 words - -#elif defined __AVR_ATmega88__ -#define SIG2 0x93 -#define SIG3 0x0a -#define PAGE_SIZE 0x20U //32 words - -#elif defined __AVR_ATmega168__ -#define SIG2 0x94 -#define SIG3 0x06 -#define PAGE_SIZE 0x40U //64 words - -#elif defined __AVR_ATmega162__ -#define SIG2 0x94 -#define SIG3 0x04 -#define PAGE_SIZE 0x40U //64 words - -#elif defined __AVR_ATmega163__ -#define SIG2 0x94 -#define SIG3 0x02 -#define PAGE_SIZE 0x40U //64 words - -#elif defined __AVR_ATmega169__ -#define SIG2 0x94 -#define SIG3 0x05 -#define PAGE_SIZE 0x40U //64 words - -#elif defined __AVR_ATmega8515__ -#define SIG2 0x93 -#define SIG3 0x06 -#define PAGE_SIZE 0x20U //32 words - -#elif defined __AVR_ATmega8535__ -#define SIG2 0x93 -#define SIG3 0x08 -#define PAGE_SIZE 0x20U //32 words -#endif - - -/* function prototypes */ -void putch(char); -char getch(void); -void getNch(uint8_t); -void byte_response(uint8_t); -void nothing_response(void); -char gethex(void); -void puthex(char); -void flash_led(uint8_t); - -/* some variables */ -union address_union { - uint16_t word; - uint8_t byte[2]; -} address; - -union length_union { - uint16_t word; - uint8_t byte[2]; -} length; - -struct flags_struct { - unsigned eeprom : 1; - unsigned rampz : 1; -} flags; - -uint8_t buff[256]; -uint8_t address_high; - -uint8_t pagesz=0x80; - -uint8_t i; -uint8_t bootuart = 0; - -uint8_t error_count = 0; - -void (*app_start)(void) = 0x0000; - - -/* main program starts here */ -int main(void) -{ - uint8_t ch,ch2; - uint16_t w; - - asm volatile("nop\n\t"); - - /* set pin direction for bootloader pin and enable pullup */ - /* for ATmega128, two pins need to be initialized */ -#ifdef __AVR_ATmega128__ - BL_DDR &= ~_BV(BL0); - BL_DDR &= ~_BV(BL1); - BL_PORT |= _BV(BL0); - BL_PORT |= _BV(BL1); -#else - /* We run the bootloader regardless of the state of this pin. Thus, don't - put it in a different state than the other pins. --DAM, 070709 - BL_DDR &= ~_BV(BL); - BL_PORT |= _BV(BL); - */ -#endif - - -#ifdef __AVR_ATmega128__ - /* check which UART should be used for booting */ - if(bit_is_clear(BL_PIN, BL0)) { - bootuart = 1; - } - else if(bit_is_clear(BL_PIN, BL1)) { - bootuart = 2; - } -#endif - - /* check if flash is programmed already, if not start bootloader anyway */ - if(pgm_read_byte_near(0x0000) != 0xFF) { - -#ifdef __AVR_ATmega128__ - /* no UART was selected, start application */ - if(!bootuart) { - app_start(); - } -#else - /* check if bootloader pin is set low */ - /* we don't start this part neither for the m8, nor m168 */ - //if(bit_is_set(BL_PIN, BL)) { - // app_start(); - // } -#endif - } - -#ifdef __AVR_ATmega128__ - /* no bootuart was selected, default to uart 0 */ - if(!bootuart) { - bootuart = 1; - } -#endif - - - /* initialize UART(s) depending on CPU defined */ -#ifdef __AVR_ATmega128__ - if(bootuart == 1) { - UBRR0L = (uint8_t)(F_CPU/(BAUD_RATE*16L)-1); - UBRR0H = (F_CPU/(BAUD_RATE*16L)-1) >> 8; - UCSR0A = 0x00; - UCSR0C = 0x06; - UCSR0B = _BV(TXEN0)|_BV(RXEN0); - } - if(bootuart == 2) { - UBRR1L = (uint8_t)(F_CPU/(BAUD_RATE*16L)-1); - UBRR1H = (F_CPU/(BAUD_RATE*16L)-1) >> 8; - UCSR1A = 0x00; - UCSR1C = 0x06; - UCSR1B = _BV(TXEN1)|_BV(RXEN1); - } -#elif defined __AVR_ATmega163__ - UBRR = (uint8_t)(F_CPU/(BAUD_RATE*16L)-1); - UBRRHI = (F_CPU/(BAUD_RATE*16L)-1) >> 8; - UCSRA = 0x00; - UCSRB = _BV(TXEN)|_BV(RXEN); -#elif defined __AVR_ATmega168__ - UBRR0L = (uint8_t)(F_CPU/(BAUD_RATE*16L)-1); - UBRR0H = (F_CPU/(BAUD_RATE*16L)-1) >> 8; - UCSR0B = (1<>8; // set baud rate - UBRRL = (((F_CPU/BAUD_RATE)/16)-1); - UCSRB = (1<> 8; - UCSRA = 0x00; - UCSRC = 0x06; - UCSRB = _BV(TXEN)|_BV(RXEN); -#endif - - /* set LED pin as output */ - LED_DDR |= _BV(LED); - - - /* flash onboard LED to signal entering of bootloader */ -#ifdef __AVR_ATmega128__ - // 4x for UART0, 5x for UART1 - flash_led(NUM_LED_FLASHES + bootuart); -#else - flash_led(NUM_LED_FLASHES); -#endif - - /* 20050803: by DojoCorp, this is one of the parts provoking the - system to stop listening, cancelled from the original */ - //putch('\0'); - - - /* forever loop */ - for (;;) { - - /* get character from UART */ - ch = getch(); - - /* A bunch of if...else if... gives smaller code than switch...case ! */ - - /* Hello is anyone home ? */ - if(ch=='0') { - nothing_response(); - } - - - /* Request programmer ID */ - /* Not using PROGMEM string due to boot block in m128 being beyond 64kB boundry */ - /* Would need to selectively manipulate RAMPZ, and it's only 9 characters anyway so who cares. */ - else if(ch=='1') { - if (getch() == ' ') { - putch(0x14); - putch('A'); - putch('V'); - putch('R'); - putch(' '); - putch('I'); - putch('S'); - putch('P'); - putch(0x10); - } else { - if (++error_count == MAX_ERROR_COUNT) - app_start(); - } - } - - - /* AVR ISP/STK500 board commands DON'T CARE so default nothing_response */ - else if(ch=='@') { - ch2 = getch(); - if (ch2>0x85) getch(); - nothing_response(); - } - - - /* AVR ISP/STK500 board requests */ - else if(ch=='A') { - ch2 = getch(); - if(ch2==0x80) byte_response(HW_VER); // Hardware version - else if(ch2==0x81) byte_response(SW_MAJOR); // Software major version - else if(ch2==0x82) byte_response(SW_MINOR); // Software minor version - else if(ch2==0x98) byte_response(0x03); // Unknown but seems to be required by avr studio 3.56 - else byte_response(0x00); // Covers various unnecessary responses we don't care about - } - - - /* Device Parameters DON'T CARE, DEVICE IS FIXED */ - else if(ch=='B') { - getNch(20); - nothing_response(); - } - - - /* Parallel programming stuff DON'T CARE */ - else if(ch=='E') { - getNch(5); - nothing_response(); - } - - - /* Enter programming mode */ - else if(ch=='P') { - nothing_response(); - } - - - /* Leave programming mode */ - else if(ch=='Q') { - nothing_response(); - } - - - /* Erase device, don't care as we will erase one page at a time anyway. */ - else if(ch=='R') { - nothing_response(); - } - - - /* Set address, little endian. EEPROM in bytes, FLASH in words */ - /* Perhaps extra address bytes may be added in future to support > 128kB FLASH. */ - /* This might explain why little endian was used here, big endian used everywhere else. */ - else if(ch=='U') { - address.byte[0] = getch(); - address.byte[1] = getch(); - nothing_response(); - } - - - /* Universal SPI programming command, disabled. Would be used for fuses and lock bits. */ - else if(ch=='V') { - getNch(4); - byte_response(0x00); - } - - - /* Write memory, length is big endian and is in bytes */ - else if(ch=='d') { - length.byte[1] = getch(); - length.byte[0] = getch(); - flags.eeprom = 0; - if (getch() == 'E') flags.eeprom = 1; - for (w=0;w127) address_high = 0x01; //Only possible with m128, m256 will need 3rd address byte. FIXME - else address_high = 0x00; -#ifdef __AVR_ATmega128__ - RAMPZ = address_high; -#endif - address.word = address.word << 1; //address * 2 -> byte location - /* if ((length.byte[0] & 0x01) == 0x01) length.word++; //Even up an odd number of bytes */ - if ((length.byte[0] & 0x01)) length.word++; //Even up an odd number of bytes - cli(); //Disable interrupts, just to be sure - // HACKME: EEPE used to be EEWE - while(bit_is_set(EECR,EEPE)); //Wait for previous EEPROM writes to complete - asm volatile( - "clr r17 \n\t" //page_word_count - "lds r30,address \n\t" //Address of FLASH location (in bytes) - "lds r31,address+1 \n\t" - "ldi r28,lo8(buff) \n\t" //Start of buffer array in RAM - "ldi r29,hi8(buff) \n\t" - "lds r24,length \n\t" //Length of data to be written (in bytes) - "lds r25,length+1 \n\t" - "length_loop: \n\t" //Main loop, repeat for number of words in block - "cpi r17,0x00 \n\t" //If page_word_count=0 then erase page - "brne no_page_erase \n\t" - "wait_spm1: \n\t" - "lds r16,%0 \n\t" //Wait for previous spm to complete - "andi r16,1 \n\t" - "cpi r16,1 \n\t" - "breq wait_spm1 \n\t" - "ldi r16,0x03 \n\t" //Erase page pointed to by Z - "sts %0,r16 \n\t" - "spm \n\t" -#ifdef __AVR_ATmega163__ - ".word 0xFFFF \n\t" - "nop \n\t" -#endif - "wait_spm2: \n\t" - "lds r16,%0 \n\t" //Wait for previous spm to complete - "andi r16,1 \n\t" - "cpi r16,1 \n\t" - "breq wait_spm2 \n\t" - - "ldi r16,0x11 \n\t" //Re-enable RWW section - "sts %0,r16 \n\t" - "spm \n\t" -#ifdef __AVR_ATmega163__ - ".word 0xFFFF \n\t" - "nop \n\t" -#endif - "no_page_erase: \n\t" - "ld r0,Y+ \n\t" //Write 2 bytes into page buffer - "ld r1,Y+ \n\t" - - "wait_spm3: \n\t" - "lds r16,%0 \n\t" //Wait for previous spm to complete - "andi r16,1 \n\t" - "cpi r16,1 \n\t" - "breq wait_spm3 \n\t" - "ldi r16,0x01 \n\t" //Load r0,r1 into FLASH page buffer - "sts %0,r16 \n\t" - "spm \n\t" - - "inc r17 \n\t" //page_word_count++ - "cpi r17,%1 \n\t" - "brlo same_page \n\t" //Still same page in FLASH - "write_page: \n\t" - "clr r17 \n\t" //New page, write current one first - "wait_spm4: \n\t" - "lds r16,%0 \n\t" //Wait for previous spm to complete - "andi r16,1 \n\t" - "cpi r16,1 \n\t" - "breq wait_spm4 \n\t" -#ifdef __AVR_ATmega163__ - "andi r30,0x80 \n\t" // m163 requires Z6:Z1 to be zero during page write -#endif - "ldi r16,0x05 \n\t" //Write page pointed to by Z - "sts %0,r16 \n\t" - "spm \n\t" -#ifdef __AVR_ATmega163__ - ".word 0xFFFF \n\t" - "nop \n\t" - "ori r30,0x7E \n\t" // recover Z6:Z1 state after page write (had to be zero during write) -#endif - "wait_spm5: \n\t" - "lds r16,%0 \n\t" //Wait for previous spm to complete - "andi r16,1 \n\t" - "cpi r16,1 \n\t" - "breq wait_spm5 \n\t" - "ldi r16,0x11 \n\t" //Re-enable RWW section - "sts %0,r16 \n\t" - "spm \n\t" -#ifdef __AVR_ATmega163__ - ".word 0xFFFF \n\t" - "nop \n\t" -#endif - "same_page: \n\t" - "adiw r30,2 \n\t" //Next word in FLASH - "sbiw r24,2 \n\t" //length-2 - "breq final_write \n\t" //Finished - "rjmp length_loop \n\t" - "final_write: \n\t" - "cpi r17,0 \n\t" - "breq block_done \n\t" - "adiw r24,2 \n\t" //length+2, fool above check on length after short page write - "rjmp write_page \n\t" - "block_done: \n\t" - "clr __zero_reg__ \n\t" //restore zero register -#if defined __AVR_ATmega168__ - : "=m" (SPMCSR) : "M" (PAGE_SIZE) : "r0","r16","r17","r24","r25","r28","r29","r30","r31" -#else - : "=m" (SPMCR) : "M" (PAGE_SIZE) : "r0","r16","r17","r24","r25","r28","r29","r30","r31" -#endif - ); - /* Should really add a wait for RWW section to be enabled, don't actually need it since we never */ - /* exit the bootloader without a power cycle anyhow */ - } - putch(0x14); - putch(0x10); - } else { - if (++error_count == MAX_ERROR_COUNT) - app_start(); - } - } - - - /* Read memory block mode, length is big endian. */ - else if(ch=='t') { - length.byte[1] = getch(); - length.byte[0] = getch(); -#if defined __AVR_ATmega128__ - if (address.word>0x7FFF) flags.rampz = 1; // No go with m256, FIXME - else flags.rampz = 0; -#endif - if (getch() == 'E') flags.eeprom = 1; - else { - flags.eeprom = 0; - address.word = address.word << 1; // address * 2 -> byte location - } - if (getch() == ' ') { // Command terminator - putch(0x14); - for (w=0;w < length.word;w++) { // Can handle odd and even lengths okay - if (flags.eeprom) { // Byte access EEPROM read -#ifdef __AVR_ATmega168__ - while(EECR & (1<= 'a') { - ah = ah - 'a' + 0x0a; - } else if(ah >= '0') { - ah -= '0'; - } - if(al >= 'a') { - al = al - 'a' + 0x0a; - } else if(al >= '0') { - al -= '0'; - } - return (ah << 4) + al; -} - - -void puthex(char ch) { - char ah,al; - - ah = (ch & 0xf0) >> 4; - if(ah >= 0x0a) { - ah = ah - 0x0a + 'a'; - } else { - ah += '0'; - } - al = (ch & 0x0f); - if(al >= 0x0a) { - al = al - 0x0a + 'a'; - } else { - al += '0'; - } - putch(ah); - putch(al); -} - - -void putch(char ch) -{ -#ifdef __AVR_ATmega128__ - if(bootuart == 1) { - while (!(UCSR0A & _BV(UDRE0))); - UDR0 = ch; - } - else if (bootuart == 2) { - while (!(UCSR1A & _BV(UDRE1))); - UDR1 = ch; - } -#elif defined __AVR_ATmega168__ - while (!(UCSR0A & _BV(UDRE0))); - UDR0 = ch; -#else - /* m8,16,32,169,8515,8535,163 */ - while (!(UCSRA & _BV(UDRE))); - UDR = ch; -#endif -} - - -char getch(void) -{ -#ifdef __AVR_ATmega128__ - if(bootuart == 1) { - while(!(UCSR0A & _BV(RXC0))); - return UDR0; - } - else if(bootuart == 2) { - while(!(UCSR1A & _BV(RXC1))); - return UDR1; - } - return 0; -#elif defined __AVR_ATmega168__ - uint32_t count = 0; - while(!(UCSR0A & _BV(RXC0))){ - /* 20060803 DojoCorp:: Addon coming from the previous Bootloader*/ - /* HACKME:: here is a good place to count times*/ - count++; - if (count > MAX_TIME_COUNT) - app_start(); - } - return UDR0; -#else - /* m8,16,32,169,8515,8535,163 */ - uint32_t count = 0; - while(!(UCSRA & _BV(RXC))){ - /* 20060803 DojoCorp:: Addon coming from the previous Bootloader*/ - /* HACKME:: here is a good place to count times*/ - count++; - if (count > MAX_TIME_COUNT) - app_start(); - } - return UDR; -#endif -} - - -void getNch(uint8_t count) -{ - uint8_t i; - for(i=0;i $@ - -%.srec: %.elf - $(OBJCOPY) -j .text -j .data -O srec $< $@ - -%.bin: %.elf - $(OBJCOPY) -j .text -j .data -O binary $< $@ - -clean: - rm -rf *.o *.elf *.lst *.map *.sym *.lss *.eep *.srec *.bin *.hex - -install: - avrdude -p m168 -c stk500v2 -P /dev/cu.USA19H1b1P1.1 -e -u -U lock:w:0x3f:m -U efuse:w:0x00:m -U hfuse:w:0xdd:m -U lfuse:w:0xe2:m - avrdude -p m168 -c stk500v2 -P /dev/cu.USA19H1b1P1.1 -e -u -U flash:w:ATmegaBOOT_168.hex -U lock:w:0x0f:m diff --git a/build/linux/work/hardware/arduino/bootloaders/optiboot/Makefile b/build/linux/work/hardware/arduino/bootloaders/optiboot/Makefile deleted file mode 100644 index b9f3ed5a4..000000000 --- a/build/linux/work/hardware/arduino/bootloaders/optiboot/Makefile +++ /dev/null @@ -1,451 +0,0 @@ -# Makefile for ATmegaBOOT -# E.Lins, 18.7.2005 -# $Id$ -# -# Instructions -# -# To make bootloader .hex file: -# make diecimila -# make lilypad -# make ng -# etc... -# -# To burn bootloader .hex file: -# make diecimila_isp -# make lilypad_isp -# make ng_isp -# etc... - -# program name should not be changed... -PROGRAM = optiboot - -# The default behavior is to build using tools that are in the users -# current path variables, but we can also build using an installed -# Arduino user IDE setup, or the Arduino source tree. -# Uncomment this next lines to build within the arduino environment, -# using the arduino-included avrgcc toolset (mac and pc) -# ENV ?= arduino -# ENV ?= arduinodev -# OS ?= macosx -# OS ?= windows - - -# enter the parameters for the avrdude isp tool -ISPTOOL = stk500v2 -ISPPORT = usb -ISPSPEED = -b 115200 - -MCU_TARGET = atmega168 -LDSECTIONS = -Wl,--section-start=.text=0x3e00 -Wl,--section-start=.version=0x3ffe - -# Build environments -# Start of some ugly makefile-isms to allow optiboot to be built -# in several different environments. See the README.TXT file for -# details. - -# default -fixpath = $(1) - -ifeq ($(ENV), arduino) -# For Arduino, we assume that we're connected to the optiboot directory -# included with the arduino distribution, which means that the full set -# of avr-tools are "right up there" in standard places. -TOOLROOT = ../../../tools -GCCROOT = $(TOOLROOT)/avr/bin/ -AVRDUDE_CONF = -C$(TOOLROOT)/avr/etc/avrdude.conf - -ifeq ($(OS), windows) -# On windows, SOME of the tool paths will need to have backslashes instead -# of forward slashes (because they use windows cmd.exe for execution instead -# of a unix/mingw shell?) We also have to ensure that a consistent shell -# is used even if a unix shell is installed (ie as part of WINAVR) -fixpath = $(subst /,\,$1) -SHELL = cmd.exe -endif - -else ifeq ($(ENV), arduinodev) -# Arduino IDE source code environment. Use the unpacked compilers created -# by the build (you'll need to do "ant build" first.) -ifeq ($(OS), macosx) -TOOLROOT = ../../../../build/macosx/work/Arduino.app/Contents/Resources/Java/hardware/tools -endif -ifeq ($(OS), windows) -TOOLROOT = ../../../../build/windows/work/hardware/tools -endif - -GCCROOT = $(TOOLROOT)/avr/bin/ -AVRDUDE_CONF = -C$(TOOLROOT)/avr/etc/avrdude.conf - -else -GCCROOT = -AVRDUDE_CONF = -endif -# -# End of build environment code. - - -# the efuse should really be 0xf8; since, however, only the lower -# three bits of that byte are used on the atmega168, avrdude gets -# confused if you specify 1's for the higher bits, see: -# http://tinker.it/now/2007/02/24/the-tale-of-avrdude-atmega168-and-extended-bits-fuses/ -# -# similarly, the lock bits should be 0xff instead of 0x3f (to -# unlock the bootloader section) and 0xcf instead of 0x2f (to -# lock it), but since the high two bits of the lock byte are -# unused, avrdude would get confused. - -ISPFUSES = $(GCCROOT)avrdude $(AVRDUDE_CONF) -c $(ISPTOOL) \ - -p $(MCU_TARGET) -P $(ISPPORT) $(ISPSPEED) \ - -e -u -U lock:w:0x3f:m -U efuse:w:0x$(EFUSE):m \ - -U hfuse:w:0x$(HFUSE):m -U lfuse:w:0x$(LFUSE):m -ISPFLASH = $(GCCROOT)avrdude $(AVRDUDE_CONF) -c $(ISPTOOL) \ - -p $(MCU_TARGET) -P $(ISPPORT) $(ISPSPEED) \ - -U flash:w:$(PROGRAM)_$(TARGET).hex -U lock:w:0x2f:m - -STK500 = "C:\Program Files\Atmel\AVR Tools\STK500\Stk500.exe" -STK500-1 = $(STK500) -e -d$(MCU_TARGET) -pf -vf -if$(PROGRAM)_$(TARGET).hex \ --lFF -LFF -f$(HFUSE)$(LFUSE) -EF8 -ms -q -cUSB -I200kHz -s -wt -STK500-2 = $(STK500) -d$(MCU_TARGET) -ms -q -lCF -LCF -cUSB -I200kHz -s -wt - -OBJ = $(PROGRAM).o -OPTIMIZE = -Os -fno-inline-small-functions -fno-split-wide-types -mshort-calls - -DEFS = -LIBS = - -CC = $(GCCROOT)avr-gcc - -# Override is only needed by avr-lib build system. - -override CFLAGS = -g -Wall $(OPTIMIZE) -mmcu=$(MCU_TARGET) -DF_CPU=$(AVR_FREQ) $(DEFS) -override LDFLAGS = $(LDSECTIONS) -Wl,--relax -Wl,--gc-sections -nostartfiles -nostdlib - -OBJCOPY = $(GCCROOT)avr-objcopy -OBJDUMP = $(call fixpath,$(GCCROOT)avr-objdump) - -SIZE = $(GCCROOT)avr-size - -# Test platforms -# Virtual boot block test -virboot328: TARGET = atmega328 -virboot328: MCU_TARGET = atmega328p -virboot328: CFLAGS += '-DLED_START_FLASHES=3' '-DBAUD_RATE=115200' '-DVIRTUAL_BOOT' -virboot328: AVR_FREQ = 16000000L -virboot328: LDSECTIONS = -Wl,--section-start=.text=0x7e00 -Wl,--section-start=.version=0x7ffe -virboot328: $(PROGRAM)_atmega328.hex -virboot328: $(PROGRAM)_atmega328.lst - -# 20MHz clocked platforms -# -# These are capable of 230400 baud, or 115200 baud on PC (Arduino Avrdude issue) -# - -pro20: TARGET = pro_20mhz -pro20: MCU_TARGET = atmega168 -pro20: CFLAGS += '-DLED_START_FLASHES=3' '-DBAUD_RATE=115200' -pro20: AVR_FREQ = 20000000L -pro20: $(PROGRAM)_pro_20mhz.hex -pro20: $(PROGRAM)_pro_20mhz.lst - -pro20_isp: pro20 -pro20_isp: TARGET = pro_20mhz -# 2.7V brownout -pro20_isp: HFUSE = DD -# Full swing xtal (20MHz) 258CK/14CK+4.1ms -pro20_isp: LFUSE = C6 -# 512 byte boot -pro20_isp: EFUSE = 04 -pro20_isp: isp - -# 16MHz clocked platforms -# -# These are capable of 230400 baud, or 115200 baud on PC (Arduino Avrdude issue) -# - -pro16: TARGET = pro_16MHz -pro16: MCU_TARGET = atmega168 -pro16: CFLAGS += '-DLED_START_FLASHES=3' '-DBAUD_RATE=115200' -pro16: AVR_FREQ = 16000000L -pro16: $(PROGRAM)_pro_16MHz.hex -pro16: $(PROGRAM)_pro_16MHz.lst - -pro16_isp: pro16 -pro16_isp: TARGET = pro_16MHz -# 2.7V brownout -pro16_isp: HFUSE = DD -# Full swing xtal (20MHz) 258CK/14CK+4.1ms -pro16_isp: LFUSE = C6 -# 512 byte boot -pro16_isp: EFUSE = 04 -pro16_isp: isp - -# Diecimila, Duemilanove with m168, and NG use identical bootloaders -# Call it "atmega168" for generality and clarity, keep "diecimila" for -# backward compatibility of makefile -# -atmega168: TARGET = atmega168 -atmega168: MCU_TARGET = atmega168 -atmega168: CFLAGS += '-DLED_START_FLASHES=3' '-DBAUD_RATE=115200' -atmega168: AVR_FREQ = 16000000L -atmega168: $(PROGRAM)_atmega168.hex -atmega168: $(PROGRAM)_atmega168.lst - -atmega168_isp: atmega168 -atmega168_isp: TARGET = atmega168 -# 2.7V brownout -atmega168_isp: HFUSE = DD -# Low power xtal (16MHz) 16KCK/14CK+65ms -atmega168_isp: LFUSE = FF -# 512 byte boot -atmega168_isp: EFUSE = 04 -atmega168_isp: isp - -diecimila: TARGET = diecimila -diecimila: MCU_TARGET = atmega168 -diecimila: CFLAGS += '-DLED_START_FLASHES=3' '-DBAUD_RATE=115200' -diecimila: AVR_FREQ = 16000000L -diecimila: $(PROGRAM)_diecimila.hex -diecimila: $(PROGRAM)_diecimila.lst - -diecimila_isp: diecimila -diecimila_isp: TARGET = diecimila -# 2.7V brownout -diecimila_isp: HFUSE = DD -# Low power xtal (16MHz) 16KCK/14CK+65ms -diecimila_isp: LFUSE = FF -# 512 byte boot -diecimila_isp: EFUSE = 04 -diecimila_isp: isp - -atmega328: TARGET = atmega328 -atmega328: MCU_TARGET = atmega328p -atmega328: CFLAGS += '-DLED_START_FLASHES=3' '-DBAUD_RATE=115200' -atmega328: AVR_FREQ = 16000000L -atmega328: LDSECTIONS = -Wl,--section-start=.text=0x7e00 -Wl,--section-start=.version=0x7ffe -atmega328: $(PROGRAM)_atmega328.hex -atmega328: $(PROGRAM)_atmega328.lst - -atmega328_isp: atmega328 -atmega328_isp: TARGET = atmega328 -atmega328_isp: MCU_TARGET = atmega328p -# 512 byte boot, SPIEN -atmega328_isp: HFUSE = DE -# Low power xtal (16MHz) 16KCK/14CK+65ms -atmega328_isp: LFUSE = FF -# 2.7V brownout -atmega328_isp: EFUSE = 05 -atmega328_isp: isp - -# Sanguino has a minimum boot size of 1024 bytes, so enable extra functions -# -sanguino: TARGET = atmega644p -sanguino: MCU_TARGET = atmega644p -sanguino: CFLAGS += '-DLED_START_FLASHES=3' '-DBAUD_RATE=115200' '-DBIGBOOT' -sanguino: AVR_FREQ = 16000000L -sanguino: LDSECTIONS = -Wl,--section-start=.text=0xfc00 -sanguino: $(PROGRAM)_atmega644p.hex -sanguino: $(PROGRAM)_atmega644p.lst - -sanguino_isp: sanguino -sanguino_isp: TARGET = atmega644p -sanguino_isp: MCU_TARGET = atmega644p -# 1024 byte boot -sanguino_isp: HFUSE = DE -# Low power xtal (16MHz) 16KCK/14CK+65ms -sanguino_isp: LFUSE = FF -# 2.7V brownout -sanguino_isp: EFUSE = 05 -sanguino_isp: isp - -# Mega has a minimum boot size of 1024 bytes, so enable extra functions -#mega: TARGET = atmega1280 -mega: MCU_TARGET = atmega1280 -mega: CFLAGS += '-DLED_START_FLASHES=3' '-DBAUD_RATE=115200' '-DBIGBOOT' -mega: AVR_FREQ = 16000000L -mega: LDSECTIONS = -Wl,--section-start=.text=0x1fc00 -mega: $(PROGRAM)_atmega1280.hex -mega: $(PROGRAM)_atmega1280.lst - -mega_isp: mega -mega_isp: TARGET = atmega1280 -mega_isp: MCU_TARGET = atmega1280 -# 1024 byte boot -mega_isp: HFUSE = DE -# Low power xtal (16MHz) 16KCK/14CK+65ms -mega_isp: LFUSE = FF -# 2.7V brownout -mega_isp: EFUSE = 05 -mega_isp: isp - -# ATmega8 -# -atmega8: TARGET = atmega8 -atmega8: MCU_TARGET = atmega8 -atmega8: CFLAGS += '-DLED_START_FLASHES=3' '-DBAUD_RATE=115200' -atmega8: AVR_FREQ = 16000000L -atmega8: LDSECTIONS = -Wl,--section-start=.text=0x1e00 -Wl,--section-start=.version=0x1ffe -atmega8: $(PROGRAM)_atmega8.hex -atmega8: $(PROGRAM)_atmega8.lst - -atmega8_isp: atmega8 -atmega8_isp: TARGET = atmega8 -atmega8_isp: MCU_TARGET = atmega8 -# SPIEN, CKOPT, Bootsize=512B -atmega8_isp: HFUSE = CC -# 2.7V brownout, Low power xtal (16MHz) 16KCK/14CK+65ms -atmega8_isp: LFUSE = BF -atmega8_isp: isp - -# ATmega88 -# -atmega88: TARGET = atmega88 -atmega88: MCU_TARGET = atmega88 -atmega88: CFLAGS += '-DLED_START_FLASHES=3' '-DBAUD_RATE=115200' -atmega88: AVR_FREQ = 16000000L -atmega88: LDSECTIONS = -Wl,--section-start=.text=0x1e00 -Wl,--section-start=.version=0x1ffe -atmega88: $(PROGRAM)_atmega88.hex -atmega88: $(PROGRAM)_atmega88.lst - -atmega88_isp: atmega88 -atmega88_isp: TARGET = atmega88 -atmega88_isp: MCU_TARGET = atmega88 -# 2.7V brownout -atmega88_isp: HFUSE = DD -# Low power xtal (16MHz) 16KCK/14CK+65ms -atemga88_isp: LFUSE = FF -# 512 byte boot -atmega88_isp: EFUSE = 04 -atmega88_isp: isp - - -# 8MHz clocked platforms -# -# These are capable of 115200 baud -# - -lilypad: TARGET = lilypad -lilypad: MCU_TARGET = atmega168 -lilypad: CFLAGS += '-DLED_START_FLASHES=3' '-DBAUD_RATE=115200' -lilypad: AVR_FREQ = 8000000L -lilypad: $(PROGRAM)_lilypad.hex -lilypad: $(PROGRAM)_lilypad.lst - -lilypad_isp: lilypad -lilypad_isp: TARGET = lilypad -# 2.7V brownout -lilypad_isp: HFUSE = DD -# Internal 8MHz osc (8MHz) Slow rising power -lilypad_isp: LFUSE = E2 -# 512 byte boot -lilypad_isp: EFUSE = 04 -lilypad_isp: isp - -lilypad_resonator: TARGET = lilypad_resonator -lilypad_resonator: MCU_TARGET = atmega168 -lilypad_resonator: CFLAGS += '-DLED_START_FLASHES=3' '-DBAUD_RATE=115200' -lilypad_resonator: AVR_FREQ = 8000000L -lilypad_resonator: $(PROGRAM)_lilypad_resonator.hex -lilypad_resonator: $(PROGRAM)_lilypad_resonator.lst - -lilypad_resonator_isp: lilypad_resonator -lilypad_resonator_isp: TARGET = lilypad_resonator -# 2.7V brownout -lilypad_resonator_isp: HFUSE = DD -# Full swing xtal (20MHz) 258CK/14CK+4.1ms -lilypad_resonator_isp: LFUSE = C6 -# 512 byte boot -lilypad_resonator_isp: EFUSE = 04 -lilypad_resonator_isp: isp - -pro8: TARGET = pro_8MHz -pro8: MCU_TARGET = atmega168 -pro8: CFLAGS += '-DLED_START_FLASHES=3' '-DBAUD_RATE=115200' -pro8: AVR_FREQ = 8000000L -pro8: $(PROGRAM)_pro_8MHz.hex -pro8: $(PROGRAM)_pro_8MHz.lst - -pro8_isp: pro8 -pro8_isp: TARGET = pro_8MHz -# 2.7V brownout -pro8_isp: HFUSE = DD -# Full swing xtal (20MHz) 258CK/14CK+4.1ms -pro8_isp: LFUSE = C6 -# 512 byte boot -pro8_isp: EFUSE = 04 -pro8_isp: isp - -atmega328_pro8: TARGET = atmega328_pro_8MHz -atmega328_pro8: MCU_TARGET = atmega328p -atmega328_pro8: CFLAGS += '-DLED_START_FLASHES=3' '-DBAUD_RATE=115200' -atmega328_pro8: AVR_FREQ = 8000000L -atmega328_pro8: LDSECTIONS = -Wl,--section-start=.text=0x7e00 -Wl,--section-start=.version=0x7ffe -atmega328_pro8: $(PROGRAM)_atmega328_pro_8MHz.hex -atmega328_pro8: $(PROGRAM)_atmega328_pro_8MHz.lst - -atmega328_pro8_isp: atmega328_pro8 -atmega328_pro8_isp: TARGET = atmega328_pro_8MHz -atmega328_pro8_isp: MCU_TARGET = atmega328p -# 512 byte boot, SPIEN -atmega328_pro8_isp: HFUSE = DE -# Low power xtal (16MHz) 16KCK/14CK+65ms -atmega328_pro8_isp: LFUSE = FF -# 2.7V brownout -atmega328_pro8_isp: EFUSE = 05 -atmega328_pro8_isp: isp - -# 1MHz clocked platforms -# -# These are capable of 9600 baud -# - -luminet: TARGET = luminet -luminet: MCU_TARGET = attiny84 -luminet: CFLAGS += '-DLED_START_FLASHES=3' '-DSOFT_UART' '-DBAUD_RATE=9600' -luminet: CFLAGS += '-DVIRTUAL_BOOT_PARTITION' -luminet: AVR_FREQ = 1000000L -luminet: LDSECTIONS = -Wl,--section-start=.text=0x1d00 -Wl,--section-start=.version=0x1efe -luminet: $(PROGRAM)_luminet.hex -luminet: $(PROGRAM)_luminet.lst - -luminet_isp: luminet -luminet_isp: TARGET = luminet -luminet_isp: MCU_TARGET = attiny84 -# Brownout disabled -luminet_isp: HFUSE = DF -# 1MHz internal oscillator, slowly rising power -luminet_isp: LFUSE = 62 -# Self-programming enable -luminet_isp: EFUSE = FE -luminet_isp: isp - -# -# Generic build instructions -# -# - -isp: $(TARGET) - $(ISPFUSES) - $(ISPFLASH) - -isp-stk500: $(PROGRAM)_$(TARGET).hex - $(STK500-1) - $(STK500-2) - -%.elf: $(OBJ) - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS) - $(SIZE) $@ - -clean: - rm -rf *.o *.elf *.lst *.map *.sym *.lss *.eep *.srec *.bin *.hex - -%.lst: %.elf - $(OBJDUMP) -h -S $< > $@ - -%.hex: %.elf - $(OBJCOPY) -j .text -j .data -j .version --set-section-flags .version=alloc,load -O ihex $< $@ - -%.srec: %.elf - $(OBJCOPY) -j .text -j .data -j .version --set-section-flags .version=alloc,load -O srec $< $@ - -%.bin: %.elf - $(OBJCOPY) -j .text -j .data -j .version --set-section-flags .version=alloc,load -O binary $< $@ diff --git a/build/linux/work/hardware/arduino/bootloaders/optiboot/README.TXT b/build/linux/work/hardware/arduino/bootloaders/optiboot/README.TXT deleted file mode 100644 index cd79cd953..000000000 --- a/build/linux/work/hardware/arduino/bootloaders/optiboot/README.TXT +++ /dev/null @@ -1,81 +0,0 @@ -This directory contains the Optiboot small bootloader for AVR -microcontrollers, somewhat modified specifically for the Arduino -environment. - -Optiboot is more fully described here: http://code.google.com/p/optiboot/ -and is the work of Peter Knight (aka Cathedrow), building on work of Jason P -Kyle, Spiff, and Ladyada. Arduino-specific modification are by Bill -Westfield (aka WestfW) - -Arduino-specific issues are tracked as part of the Arduino project -at http://code.google.com/p/arduino - - ------------------------------------------------------------- -Building optiboot for Arduino. - -Production builds of optiboot for Arduino are done on a Mac in "unix mode" -using CrossPack-AVR-20100115. CrossPack tracks WINAVR (for windows), which -is just a package of avr-gcc and related utilities, so similar builds should -work on Windows or Linux systems. - -One of the Arduino-specific changes is modifications to the makefile to -allow building optiboot using only the tools installed as part of the -Arduino environment, or the Arduino source development tree. All three -build procedures should yield identical binaries (.hex files) (although -this may change if compiler versions drift apart between CrossPack and -the Arduino IDE.) - - -Building Optiboot in the Arduino IDE Install. - -Work in the .../hardware/arduino/bootloaders/optiboot/ and use the -"omake " command, which just generates a command that uses -the arduino-included "make" utility with a command like: - make OS=windows ENV=arduino -or make OS=macosx ENV=arduino -On windows, this assumes you're using the windows command shell. If -you're using a cygwin or mingw shell, or have one of those in your -path, the build will probably break due to slash vs backslash issues. -On a Mac, if you have the developer tools installed, you can use the -Apple-supplied version of make. -The makefile uses relative paths ("../../../tools/" and such) to find -the programs it needs, so you need to work in the existing optiboot -directory (or something created at the same "level") for it to work. - - -Building Optiboot in the Arduino Source Development Install. - -In this case, there is no special shell script, and you're assumed to -have "make" installed somewhere in your path. -Build the Arduino source ("ant build") to unpack the tools into the -expected directory. -Work in Arduino/hardware/arduino/bootloaders/optiboot and use - make OS=windows ENV=arduinodev -or make OS=macosx ENV=arduinodev - - -Programming Chips Using the _isp Targets - -The CPU targets have corresponding ISP targets that will actuall -program the bootloader into a chip. "atmega328_isp" for the atmega328, -for example. These will set the fuses and lock bits as appropriate as -well as uploading the bootloader code. - -The makefiles default to using a USB programmer, but you can use -a serial programmer like ArduinoISP by changing the appropriate -variables when you invoke make: - - make ISPTOOL=stk500v1 ISPPORT=/dev/tty.usbserial-A20e1eAN \ - ISPSPEED=-b19200 atmega328_isp - -The "atmega8_isp" target does not currently work, because the mega8 -doesn't have the "extended" fuse that the generic ISP target wants to -pass on to avrdude. You'll need to run avrdude manually. - - -Standard Targets - -I've reduced the pre-built and source-version-controlled targets -(.hex and .lst files included in the git repository) to just the -three basic 16MHz targets: atmega8, atmega16, atmega328. diff --git a/build/linux/work/hardware/arduino/bootloaders/optiboot/boot.h b/build/linux/work/hardware/arduino/bootloaders/optiboot/boot.h deleted file mode 100644 index 2639cd859..000000000 --- a/build/linux/work/hardware/arduino/bootloaders/optiboot/boot.h +++ /dev/null @@ -1,848 +0,0 @@ -/* Modified to use out for SPM access -** Peter Knight, Optiboot project http://optiboot.googlecode.com -** -** Todo: Tidy up -** -** "_short" routines execute 1 cycle faster and use 1 less word of flash -** by using "out" instruction instead of "sts". -** -** Additional elpm variants that trust the value of RAMPZ -*/ - -/* Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007 Eric B. Weddington - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - * Neither the name of the copyright holders nor the names of - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. */ - -/* $Id: boot.h,v 1.27.2.3 2008/09/30 13:58:48 arcanum Exp $ */ - -#ifndef _AVR_BOOT_H_ -#define _AVR_BOOT_H_ 1 - -/** \file */ -/** \defgroup avr_boot : Bootloader Support Utilities - \code - #include - #include - \endcode - - The macros in this module provide a C language interface to the - bootloader support functionality of certain AVR processors. These - macros are designed to work with all sizes of flash memory. - - Global interrupts are not automatically disabled for these macros. It - is left up to the programmer to do this. See the code example below. - Also see the processor datasheet for caveats on having global interrupts - enabled during writing of the Flash. - - \note Not all AVR processors provide bootloader support. See your - processor datasheet to see if it provides bootloader support. - - \todo From email with Marek: On smaller devices (all except ATmega64/128), - __SPM_REG is in the I/O space, accessible with the shorter "in" and "out" - instructions - since the boot loader has a limited size, this could be an - important optimization. - - \par API Usage Example - The following code shows typical usage of the boot API. - - \code - #include - #include - #include - - void boot_program_page (uint32_t page, uint8_t *buf) - { - uint16_t i; - uint8_t sreg; - - // Disable interrupts. - - sreg = SREG; - cli(); - - eeprom_busy_wait (); - - boot_page_erase (page); - boot_spm_busy_wait (); // Wait until the memory is erased. - - for (i=0; i -#include -#include -#include - -/* Check for SPM Control Register in processor. */ -#if defined (SPMCSR) -# define __SPM_REG SPMCSR -#elif defined (SPMCR) -# define __SPM_REG SPMCR -#else -# error AVR processor does not provide bootloader support! -#endif - - -/* Check for SPM Enable bit. */ -#if defined(SPMEN) -# define __SPM_ENABLE SPMEN -#elif defined(SELFPRGEN) -# define __SPM_ENABLE SELFPRGEN -#else -# error Cannot find SPM Enable bit definition! -#endif - -/** \ingroup avr_boot - \def BOOTLOADER_SECTION - - Used to declare a function or variable to be placed into a - new section called .bootloader. This section and its contents - can then be relocated to any address (such as the bootloader - NRWW area) at link-time. */ - -#define BOOTLOADER_SECTION __attribute__ ((section (".bootloader"))) - -/* Create common bit definitions. */ -#ifdef ASB -#define __COMMON_ASB ASB -#else -#define __COMMON_ASB RWWSB -#endif - -#ifdef ASRE -#define __COMMON_ASRE ASRE -#else -#define __COMMON_ASRE RWWSRE -#endif - -/* Define the bit positions of the Boot Lock Bits. */ - -#define BLB12 5 -#define BLB11 4 -#define BLB02 3 -#define BLB01 2 - -/** \ingroup avr_boot - \def boot_spm_interrupt_enable() - Enable the SPM interrupt. */ - -#define boot_spm_interrupt_enable() (__SPM_REG |= (uint8_t)_BV(SPMIE)) - -/** \ingroup avr_boot - \def boot_spm_interrupt_disable() - Disable the SPM interrupt. */ - -#define boot_spm_interrupt_disable() (__SPM_REG &= (uint8_t)~_BV(SPMIE)) - -/** \ingroup avr_boot - \def boot_is_spm_interrupt() - Check if the SPM interrupt is enabled. */ - -#define boot_is_spm_interrupt() (__SPM_REG & (uint8_t)_BV(SPMIE)) - -/** \ingroup avr_boot - \def boot_rww_busy() - Check if the RWW section is busy. */ - -#define boot_rww_busy() (__SPM_REG & (uint8_t)_BV(__COMMON_ASB)) - -/** \ingroup avr_boot - \def boot_spm_busy() - Check if the SPM instruction is busy. */ - -#define boot_spm_busy() (__SPM_REG & (uint8_t)_BV(__SPM_ENABLE)) - -/** \ingroup avr_boot - \def boot_spm_busy_wait() - Wait while the SPM instruction is busy. */ - -#define boot_spm_busy_wait() do{}while(boot_spm_busy()) - -#define __BOOT_PAGE_ERASE (_BV(__SPM_ENABLE) | _BV(PGERS)) -#define __BOOT_PAGE_WRITE (_BV(__SPM_ENABLE) | _BV(PGWRT)) -#define __BOOT_PAGE_FILL _BV(__SPM_ENABLE) -#define __BOOT_RWW_ENABLE (_BV(__SPM_ENABLE) | _BV(__COMMON_ASRE)) -#define __BOOT_LOCK_BITS_SET (_BV(__SPM_ENABLE) | _BV(BLBSET)) - -#define __boot_page_fill_short(address, data) \ -(__extension__({ \ - __asm__ __volatile__ \ - ( \ - "movw r0, %3\n\t" \ - "out %0, %1\n\t" \ - "spm\n\t" \ - "clr r1\n\t" \ - : \ - : "i" (_SFR_IO_ADDR(__SPM_REG)), \ - "r" ((uint8_t)__BOOT_PAGE_FILL), \ - "z" ((uint16_t)address), \ - "r" ((uint16_t)data) \ - : "r0" \ - ); \ -})) - -#define __boot_page_fill_normal(address, data) \ -(__extension__({ \ - __asm__ __volatile__ \ - ( \ - "movw r0, %3\n\t" \ - "sts %0, %1\n\t" \ - "spm\n\t" \ - "clr r1\n\t" \ - : \ - : "i" (_SFR_MEM_ADDR(__SPM_REG)), \ - "r" ((uint8_t)__BOOT_PAGE_FILL), \ - "z" ((uint16_t)address), \ - "r" ((uint16_t)data) \ - : "r0" \ - ); \ -})) - -#define __boot_page_fill_alternate(address, data)\ -(__extension__({ \ - __asm__ __volatile__ \ - ( \ - "movw r0, %3\n\t" \ - "sts %0, %1\n\t" \ - "spm\n\t" \ - ".word 0xffff\n\t" \ - "nop\n\t" \ - "clr r1\n\t" \ - : \ - : "i" (_SFR_MEM_ADDR(__SPM_REG)), \ - "r" ((uint8_t)__BOOT_PAGE_FILL), \ - "z" ((uint16_t)address), \ - "r" ((uint16_t)data) \ - : "r0" \ - ); \ -})) - -#define __boot_page_fill_extended(address, data) \ -(__extension__({ \ - __asm__ __volatile__ \ - ( \ - "movw r0, %4\n\t" \ - "movw r30, %A3\n\t" \ - "sts %1, %C3\n\t" \ - "sts %0, %2\n\t" \ - "spm\n\t" \ - "clr r1\n\t" \ - : \ - : "i" (_SFR_MEM_ADDR(__SPM_REG)), \ - "i" (_SFR_MEM_ADDR(RAMPZ)), \ - "r" ((uint8_t)__BOOT_PAGE_FILL), \ - "r" ((uint32_t)address), \ - "r" ((uint16_t)data) \ - : "r0", "r30", "r31" \ - ); \ -})) - -#define __boot_page_fill_extended_short(address, data) \ -(__extension__({ \ - __asm__ __volatile__ \ - ( \ - "movw r0, %4\n\t" \ - "movw r30, %A3\n\t" \ - "out %1, %C3\n\t" \ - "out %0, %2\n\t" \ - "spm\n\t" \ - "clr r1\n\t" \ - : \ - : "i" (_SFR_IO_ADDR(__SPM_REG)), \ - "i" (_SFR_IO_ADDR(RAMPZ)), \ - "r" ((uint8_t)__BOOT_PAGE_FILL), \ - "r" ((uint32_t)address), \ - "r" ((uint16_t)data) \ - : "r0", "r30", "r31" \ - ); \ -})) - -#define __boot_page_erase_short(address) \ -(__extension__({ \ - __asm__ __volatile__ \ - ( \ - "out %0, %1\n\t" \ - "spm\n\t" \ - : \ - : "i" (_SFR_IO_ADDR(__SPM_REG)), \ - "r" ((uint8_t)__BOOT_PAGE_ERASE), \ - "z" ((uint16_t)address) \ - ); \ -})) - - -#define __boot_page_erase_normal(address) \ -(__extension__({ \ - __asm__ __volatile__ \ - ( \ - "sts %0, %1\n\t" \ - "spm\n\t" \ - : \ - : "i" (_SFR_MEM_ADDR(__SPM_REG)), \ - "r" ((uint8_t)__BOOT_PAGE_ERASE), \ - "z" ((uint16_t)address) \ - ); \ -})) - -#define __boot_page_erase_alternate(address) \ -(__extension__({ \ - __asm__ __volatile__ \ - ( \ - "sts %0, %1\n\t" \ - "spm\n\t" \ - ".word 0xffff\n\t" \ - "nop\n\t" \ - : \ - : "i" (_SFR_MEM_ADDR(__SPM_REG)), \ - "r" ((uint8_t)__BOOT_PAGE_ERASE), \ - "z" ((uint16_t)address) \ - ); \ -})) - -#define __boot_page_erase_extended(address) \ -(__extension__({ \ - __asm__ __volatile__ \ - ( \ - "movw r30, %A3\n\t" \ - "sts %1, %C3\n\t" \ - "sts %0, %2\n\t" \ - "spm\n\t" \ - : \ - : "i" (_SFR_MEM_ADDR(__SPM_REG)), \ - "i" (_SFR_MEM_ADDR(RAMPZ)), \ - "r" ((uint8_t)__BOOT_PAGE_ERASE), \ - "r" ((uint32_t)address) \ - : "r30", "r31" \ - ); \ -})) -#define __boot_page_erase_extended_short(address) \ -(__extension__({ \ - __asm__ __volatile__ \ - ( \ - "movw r30, %A3\n\t" \ - "out %1, %C3\n\t" \ - "out %0, %2\n\t" \ - "spm\n\t" \ - : \ - : "i" (_SFR_IO_ADDR(__SPM_REG)), \ - "i" (_SFR_IO_ADDR(RAMPZ)), \ - "r" ((uint8_t)__BOOT_PAGE_ERASE), \ - "r" ((uint32_t)address) \ - : "r30", "r31" \ - ); \ -})) - -#define __boot_page_write_short(address) \ -(__extension__({ \ - __asm__ __volatile__ \ - ( \ - "out %0, %1\n\t" \ - "spm\n\t" \ - : \ - : "i" (_SFR_IO_ADDR(__SPM_REG)), \ - "r" ((uint8_t)__BOOT_PAGE_WRITE), \ - "z" ((uint16_t)address) \ - ); \ -})) - -#define __boot_page_write_normal(address) \ -(__extension__({ \ - __asm__ __volatile__ \ - ( \ - "sts %0, %1\n\t" \ - "spm\n\t" \ - : \ - : "i" (_SFR_MEM_ADDR(__SPM_REG)), \ - "r" ((uint8_t)__BOOT_PAGE_WRITE), \ - "z" ((uint16_t)address) \ - ); \ -})) - -#define __boot_page_write_alternate(address) \ -(__extension__({ \ - __asm__ __volatile__ \ - ( \ - "sts %0, %1\n\t" \ - "spm\n\t" \ - ".word 0xffff\n\t" \ - "nop\n\t" \ - : \ - : "i" (_SFR_MEM_ADDR(__SPM_REG)), \ - "r" ((uint8_t)__BOOT_PAGE_WRITE), \ - "z" ((uint16_t)address) \ - ); \ -})) - -#define __boot_page_write_extended(address) \ -(__extension__({ \ - __asm__ __volatile__ \ - ( \ - "movw r30, %A3\n\t" \ - "sts %1, %C3\n\t" \ - "sts %0, %2\n\t" \ - "spm\n\t" \ - : \ - : "i" (_SFR_MEM_ADDR(__SPM_REG)), \ - "i" (_SFR_MEM_ADDR(RAMPZ)), \ - "r" ((uint8_t)__BOOT_PAGE_WRITE), \ - "r" ((uint32_t)address) \ - : "r30", "r31" \ - ); \ -})) -#define __boot_page_write_extended_short(address) \ -(__extension__({ \ - __asm__ __volatile__ \ - ( \ - "movw r30, %A3\n\t" \ - "out %1, %C3\n\t" \ - "out %0, %2\n\t" \ - "spm\n\t" \ - : \ - : "i" (_SFR_IO_ADDR(__SPM_REG)), \ - "i" (_SFR_IO_ADDR(RAMPZ)), \ - "r" ((uint8_t)__BOOT_PAGE_WRITE), \ - "r" ((uint32_t)address) \ - : "r30", "r31" \ - ); \ -})) - -#define __boot_rww_enable_short() \ -(__extension__({ \ - __asm__ __volatile__ \ - ( \ - "out %0, %1\n\t" \ - "spm\n\t" \ - : \ - : "i" (_SFR_IO_ADDR(__SPM_REG)), \ - "r" ((uint8_t)__BOOT_RWW_ENABLE) \ - ); \ -})) - -#define __boot_rww_enable() \ -(__extension__({ \ - __asm__ __volatile__ \ - ( \ - "sts %0, %1\n\t" \ - "spm\n\t" \ - : \ - : "i" (_SFR_MEM_ADDR(__SPM_REG)), \ - "r" ((uint8_t)__BOOT_RWW_ENABLE) \ - ); \ -})) - -#define __boot_rww_enable_alternate() \ -(__extension__({ \ - __asm__ __volatile__ \ - ( \ - "sts %0, %1\n\t" \ - "spm\n\t" \ - ".word 0xffff\n\t" \ - "nop\n\t" \ - : \ - : "i" (_SFR_MEM_ADDR(__SPM_REG)), \ - "r" ((uint8_t)__BOOT_RWW_ENABLE) \ - ); \ -})) - -/* From the mega16/mega128 data sheets (maybe others): - - Bits by SPM To set the Boot Loader Lock bits, write the desired data to - R0, write "X0001001" to SPMCR and execute SPM within four clock cycles - after writing SPMCR. The only accessible Lock bits are the Boot Lock bits - that may prevent the Application and Boot Loader section from any - software update by the MCU. - - If bits 5..2 in R0 are cleared (zero), the corresponding Boot Lock bit - will be programmed if an SPM instruction is executed within four cycles - after BLBSET and SPMEN (or SELFPRGEN) are set in SPMCR. The Z-pointer is - don't care during this operation, but for future compatibility it is - recommended to load the Z-pointer with $0001 (same as used for reading the - Lock bits). For future compatibility It is also recommended to set bits 7, - 6, 1, and 0 in R0 to 1 when writing the Lock bits. When programming the - Lock bits the entire Flash can be read during the operation. */ - -#define __boot_lock_bits_set_short(lock_bits) \ -(__extension__({ \ - uint8_t value = (uint8_t)(~(lock_bits)); \ - __asm__ __volatile__ \ - ( \ - "ldi r30, 1\n\t" \ - "ldi r31, 0\n\t" \ - "mov r0, %2\n\t" \ - "out %0, %1\n\t" \ - "spm\n\t" \ - : \ - : "i" (_SFR_IO_ADDR(__SPM_REG)), \ - "r" ((uint8_t)__BOOT_LOCK_BITS_SET), \ - "r" (value) \ - : "r0", "r30", "r31" \ - ); \ -})) - -#define __boot_lock_bits_set(lock_bits) \ -(__extension__({ \ - uint8_t value = (uint8_t)(~(lock_bits)); \ - __asm__ __volatile__ \ - ( \ - "ldi r30, 1\n\t" \ - "ldi r31, 0\n\t" \ - "mov r0, %2\n\t" \ - "sts %0, %1\n\t" \ - "spm\n\t" \ - : \ - : "i" (_SFR_MEM_ADDR(__SPM_REG)), \ - "r" ((uint8_t)__BOOT_LOCK_BITS_SET), \ - "r" (value) \ - : "r0", "r30", "r31" \ - ); \ -})) - -#define __boot_lock_bits_set_alternate(lock_bits) \ -(__extension__({ \ - uint8_t value = (uint8_t)(~(lock_bits)); \ - __asm__ __volatile__ \ - ( \ - "ldi r30, 1\n\t" \ - "ldi r31, 0\n\t" \ - "mov r0, %2\n\t" \ - "sts %0, %1\n\t" \ - "spm\n\t" \ - ".word 0xffff\n\t" \ - "nop\n\t" \ - : \ - : "i" (_SFR_MEM_ADDR(__SPM_REG)), \ - "r" ((uint8_t)__BOOT_LOCK_BITS_SET), \ - "r" (value) \ - : "r0", "r30", "r31" \ - ); \ -})) - -/* - Reading lock and fuse bits: - - Similarly to writing the lock bits above, set BLBSET and SPMEN (or - SELFPRGEN) bits in __SPMREG, and then (within four clock cycles) issue an - LPM instruction. - - Z address: contents: - 0x0000 low fuse bits - 0x0001 lock bits - 0x0002 extended fuse bits - 0x0003 high fuse bits - - Sounds confusing, doesn't it? - - Unlike the macros in pgmspace.h, no need to care for non-enhanced - cores here as these old cores do not provide SPM support anyway. - */ - -/** \ingroup avr_boot - \def GET_LOW_FUSE_BITS - address to read the low fuse bits, using boot_lock_fuse_bits_get - */ -#define GET_LOW_FUSE_BITS (0x0000) -/** \ingroup avr_boot - \def GET_LOCK_BITS - address to read the lock bits, using boot_lock_fuse_bits_get - */ -#define GET_LOCK_BITS (0x0001) -/** \ingroup avr_boot - \def GET_EXTENDED_FUSE_BITS - address to read the extended fuse bits, using boot_lock_fuse_bits_get - */ -#define GET_EXTENDED_FUSE_BITS (0x0002) -/** \ingroup avr_boot - \def GET_HIGH_FUSE_BITS - address to read the high fuse bits, using boot_lock_fuse_bits_get - */ -#define GET_HIGH_FUSE_BITS (0x0003) - -/** \ingroup avr_boot - \def boot_lock_fuse_bits_get(address) - - Read the lock or fuse bits at \c address. - - Parameter \c address can be any of GET_LOW_FUSE_BITS, - GET_LOCK_BITS, GET_EXTENDED_FUSE_BITS, or GET_HIGH_FUSE_BITS. - - \note The lock and fuse bits returned are the physical values, - i.e. a bit returned as 0 means the corresponding fuse or lock bit - is programmed. - */ -#define boot_lock_fuse_bits_get_short(address) \ -(__extension__({ \ - uint8_t __result; \ - __asm__ __volatile__ \ - ( \ - "ldi r30, %3\n\t" \ - "ldi r31, 0\n\t" \ - "out %1, %2\n\t" \ - "lpm %0, Z\n\t" \ - : "=r" (__result) \ - : "i" (_SFR_IO_ADDR(__SPM_REG)), \ - "r" ((uint8_t)__BOOT_LOCK_BITS_SET), \ - "M" (address) \ - : "r0", "r30", "r31" \ - ); \ - __result; \ -})) - -#define boot_lock_fuse_bits_get(address) \ -(__extension__({ \ - uint8_t __result; \ - __asm__ __volatile__ \ - ( \ - "ldi r30, %3\n\t" \ - "ldi r31, 0\n\t" \ - "sts %1, %2\n\t" \ - "lpm %0, Z\n\t" \ - : "=r" (__result) \ - : "i" (_SFR_MEM_ADDR(__SPM_REG)), \ - "r" ((uint8_t)__BOOT_LOCK_BITS_SET), \ - "M" (address) \ - : "r0", "r30", "r31" \ - ); \ - __result; \ -})) - -/** \ingroup avr_boot - \def boot_signature_byte_get(address) - - Read the Signature Row byte at \c address. For some MCU types, - this function can also retrieve the factory-stored oscillator - calibration bytes. - - Parameter \c address can be 0-0x1f as documented by the datasheet. - \note The values are MCU type dependent. -*/ - -#define __BOOT_SIGROW_READ (_BV(__SPM_ENABLE) | _BV(SIGRD)) - -#define boot_signature_byte_get_short(addr) \ -(__extension__({ \ - uint16_t __addr16 = (uint16_t)(addr); \ - uint8_t __result; \ - __asm__ __volatile__ \ - ( \ - "out %1, %2\n\t" \ - "lpm %0, Z" "\n\t" \ - : "=r" (__result) \ - : "i" (_SFR_IO_ADDR(__SPM_REG)), \ - "r" ((uint8_t) __BOOT_SIGROW_READ), \ - "z" (__addr16) \ - ); \ - __result; \ -})) - -#define boot_signature_byte_get(addr) \ -(__extension__({ \ - uint16_t __addr16 = (uint16_t)(addr); \ - uint8_t __result; \ - __asm__ __volatile__ \ - ( \ - "sts %1, %2\n\t" \ - "lpm %0, Z" "\n\t" \ - : "=r" (__result) \ - : "i" (_SFR_MEM_ADDR(__SPM_REG)), \ - "r" ((uint8_t) __BOOT_SIGROW_READ), \ - "z" (__addr16) \ - ); \ - __result; \ -})) - -/** \ingroup avr_boot - \def boot_page_fill(address, data) - - Fill the bootloader temporary page buffer for flash - address with data word. - - \note The address is a byte address. The data is a word. The AVR - writes data to the buffer a word at a time, but addresses the buffer - per byte! So, increment your address by 2 between calls, and send 2 - data bytes in a word format! The LSB of the data is written to the lower - address; the MSB of the data is written to the higher address.*/ - -/** \ingroup avr_boot - \def boot_page_erase(address) - - Erase the flash page that contains address. - - \note address is a byte address in flash, not a word address. */ - -/** \ingroup avr_boot - \def boot_page_write(address) - - Write the bootloader temporary page buffer - to flash page that contains address. - - \note address is a byte address in flash, not a word address. */ - -/** \ingroup avr_boot - \def boot_rww_enable() - - Enable the Read-While-Write memory section. */ - -/** \ingroup avr_boot - \def boot_lock_bits_set(lock_bits) - - Set the bootloader lock bits. - - \param lock_bits A mask of which Boot Loader Lock Bits to set. - - \note In this context, a 'set bit' will be written to a zero value. - Note also that only BLBxx bits can be programmed by this command. - - For example, to disallow the SPM instruction from writing to the Boot - Loader memory section of flash, you would use this macro as such: - - \code - boot_lock_bits_set (_BV (BLB11)); - \endcode - - \note Like any lock bits, the Boot Loader Lock Bits, once set, - cannot be cleared again except by a chip erase which will in turn - also erase the boot loader itself. */ - -/* Normal versions of the macros use 16-bit addresses. - Extended versions of the macros use 32-bit addresses. - Alternate versions of the macros use 16-bit addresses and require special - instruction sequences after LPM. - - FLASHEND is defined in the ioXXXX.h file. - USHRT_MAX is defined in . */ - -#if defined(__AVR_ATmega161__) || defined(__AVR_ATmega163__) \ - || defined(__AVR_ATmega323__) - -/* Alternate: ATmega161/163/323 and 16 bit address */ -#define boot_page_fill(address, data) __boot_page_fill_alternate(address, data) -#define boot_page_erase(address) __boot_page_erase_alternate(address) -#define boot_page_write(address) __boot_page_write_alternate(address) -#define boot_rww_enable() __boot_rww_enable_alternate() -#define boot_lock_bits_set(lock_bits) __boot_lock_bits_set_alternate(lock_bits) - -#elif (FLASHEND > USHRT_MAX) - -/* Extended: >16 bit address */ -#define boot_page_fill(address, data) __boot_page_fill_extended_short(address, data) -#define boot_page_erase(address) __boot_page_erase_extended_short(address) -#define boot_page_write(address) __boot_page_write_extended_short(address) -#define boot_rww_enable() __boot_rww_enable_short() -#define boot_lock_bits_set(lock_bits) __boot_lock_bits_set_short(lock_bits) - -#else - -/* Normal: 16 bit address */ -#define boot_page_fill(address, data) __boot_page_fill_short(address, data) -#define boot_page_erase(address) __boot_page_erase_short(address) -#define boot_page_write(address) __boot_page_write_short(address) -#define boot_rww_enable() __boot_rww_enable_short() -#define boot_lock_bits_set(lock_bits) __boot_lock_bits_set_short(lock_bits) - -#endif - -/** \ingroup avr_boot - - Same as boot_page_fill() except it waits for eeprom and spm operations to - complete before filling the page. */ - -#define boot_page_fill_safe(address, data) \ -do { \ - boot_spm_busy_wait(); \ - eeprom_busy_wait(); \ - boot_page_fill(address, data); \ -} while (0) - -/** \ingroup avr_boot - - Same as boot_page_erase() except it waits for eeprom and spm operations to - complete before erasing the page. */ - -#define boot_page_erase_safe(address) \ -do { \ - boot_spm_busy_wait(); \ - eeprom_busy_wait(); \ - boot_page_erase (address); \ -} while (0) - -/** \ingroup avr_boot - - Same as boot_page_write() except it waits for eeprom and spm operations to - complete before writing the page. */ - -#define boot_page_write_safe(address) \ -do { \ - boot_spm_busy_wait(); \ - eeprom_busy_wait(); \ - boot_page_write (address); \ -} while (0) - -/** \ingroup avr_boot - - Same as boot_rww_enable() except waits for eeprom and spm operations to - complete before enabling the RWW mameory. */ - -#define boot_rww_enable_safe() \ -do { \ - boot_spm_busy_wait(); \ - eeprom_busy_wait(); \ - boot_rww_enable(); \ -} while (0) - -/** \ingroup avr_boot - - Same as boot_lock_bits_set() except waits for eeprom and spm operations to - complete before setting the lock bits. */ - -#define boot_lock_bits_set_safe(lock_bits) \ -do { \ - boot_spm_busy_wait(); \ - eeprom_busy_wait(); \ - boot_lock_bits_set (lock_bits); \ -} while (0) - -#endif /* _AVR_BOOT_H_ */ diff --git a/build/linux/work/hardware/arduino/bootloaders/optiboot/makeall b/build/linux/work/hardware/arduino/bootloaders/optiboot/makeall deleted file mode 100644 index f076bc7f5..000000000 --- a/build/linux/work/hardware/arduino/bootloaders/optiboot/makeall +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/bash -make clean -# -# The "big three" standard bootloaders. -make atmega8 -make atmega168 -make atmega328 -# -# additional buildable platforms of -# somewhat questionable support level -make lilypad -make lilypad_resonator -make pro8 -make pro16 -make pro20 -make atmega328_pro8 -make sanguino -make mega -make atmega88 -make luminet diff --git a/build/linux/work/hardware/arduino/bootloaders/optiboot/omake b/build/linux/work/hardware/arduino/bootloaders/optiboot/omake deleted file mode 100644 index cc7c6bc29..000000000 --- a/build/linux/work/hardware/arduino/bootloaders/optiboot/omake +++ /dev/null @@ -1,2 +0,0 @@ -echo ../../../tools/avr/bin/make OS=macosx ENV=arduino $* -../../../tools/avr/bin/make OS=macosx ENV=arduino $* diff --git a/build/linux/work/hardware/arduino/bootloaders/optiboot/omake.bat b/build/linux/work/hardware/arduino/bootloaders/optiboot/omake.bat deleted file mode 100644 index f6815dacc..000000000 --- a/build/linux/work/hardware/arduino/bootloaders/optiboot/omake.bat +++ /dev/null @@ -1 +0,0 @@ -..\..\..\tools\avr\utils\bin\make OS=windows ENV=arduino %* diff --git a/build/linux/work/hardware/arduino/bootloaders/optiboot/optiboot.c b/build/linux/work/hardware/arduino/bootloaders/optiboot/optiboot.c deleted file mode 100644 index d499d85e8..000000000 --- a/build/linux/work/hardware/arduino/bootloaders/optiboot/optiboot.c +++ /dev/null @@ -1,672 +0,0 @@ -/**********************************************************/ -/* Optiboot bootloader for Arduino */ -/* */ -/* http://optiboot.googlecode.com */ -/* */ -/* Arduino-maintained version : See README.TXT */ -/* http://code.google.com/p/arduino/ */ -/* */ -/* Heavily optimised bootloader that is faster and */ -/* smaller than the Arduino standard bootloader */ -/* */ -/* Enhancements: */ -/* Fits in 512 bytes, saving 1.5K of code space */ -/* Background page erasing speeds up programming */ -/* Higher baud rate speeds up programming */ -/* Written almost entirely in C */ -/* Customisable timeout with accurate timeconstant */ -/* Optional virtual UART. No hardware UART required. */ -/* Optional virtual boot partition for devices without. */ -/* */ -/* What you lose: */ -/* Implements a skeleton STK500 protocol which is */ -/* missing several features including EEPROM */ -/* programming and non-page-aligned writes */ -/* High baud rate breaks compatibility with standard */ -/* Arduino flash settings */ -/* */ -/* Fully supported: */ -/* ATmega168 based devices (Diecimila etc) */ -/* ATmega328P based devices (Duemilanove etc) */ -/* */ -/* Alpha test */ -/* ATmega1280 based devices (Arduino Mega) */ -/* */ -/* Work in progress: */ -/* ATmega644P based devices (Sanguino) */ -/* ATtiny84 based devices (Luminet) */ -/* */ -/* Does not support: */ -/* USB based devices (eg. Teensy) */ -/* */ -/* Assumptions: */ -/* The code makes several assumptions that reduce the */ -/* code size. They are all true after a hardware reset, */ -/* but may not be true if the bootloader is called by */ -/* other means or on other hardware. */ -/* No interrupts can occur */ -/* UART and Timer 1 are set to their reset state */ -/* SP points to RAMEND */ -/* */ -/* Code builds on code, libraries and optimisations from: */ -/* stk500boot.c by Jason P. Kyle */ -/* Arduino bootloader http://arduino.cc */ -/* Spiff's 1K bootloader http://spiffie.org/know/arduino_1k_bootloader/bootloader.shtml */ -/* avr-libc project http://nongnu.org/avr-libc */ -/* Adaboot http://www.ladyada.net/library/arduino/bootloader.html */ -/* AVR305 Atmel Application Note */ -/* */ -/* 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 2 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, write */ -/* to the Free Software Foundation, Inc., */ -/* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -/* */ -/* Licence can be viewed at */ -/* http://www.fsf.org/licenses/gpl.txt */ -/* */ -/**********************************************************/ - - -/**********************************************************/ -/* */ -/* Optional defines: */ -/* */ -/**********************************************************/ -/* */ -/* BIG_BOOT: */ -/* Build a 1k bootloader, not 512 bytes. This turns on */ -/* extra functionality. */ -/* */ -/* BAUD_RATE: */ -/* Set bootloader baud rate. */ -/* */ -/* LUDICROUS_SPEED: */ -/* 230400 baud :-) */ -/* */ -/* SOFT_UART: */ -/* Use AVR305 soft-UART instead of hardware UART. */ -/* */ -/* LED_START_FLASHES: */ -/* Number of LED flashes on bootup. */ -/* */ -/* LED_DATA_FLASH: */ -/* Flash LED when transferring data. For boards without */ -/* TX or RX LEDs, or for people who like blinky lights. */ -/* */ -/* SUPPORT_EEPROM: */ -/* Support reading and writing from EEPROM. This is not */ -/* used by Arduino, so off by default. */ -/* */ -/* TIMEOUT_MS: */ -/* Bootloader timeout period, in milliseconds. */ -/* 500,1000,2000,4000,8000 supported. */ -/* */ -/**********************************************************/ - -/**********************************************************/ -/* Version Numbers! */ -/* */ -/* Arduino Optiboot now includes this Version number in */ -/* the source and object code. */ -/* */ -/* Version 3 was released as zip from the optiboot */ -/* repository and was distributed with Arduino 0022. */ -/* Version 4 starts with the arduino repository commit */ -/* that brought the arduino repository up-to-date with */ -/* the optiboot source tree changes since v3. */ -/* */ -/**********************************************************/ - -/**********************************************************/ -/* Edit History: */ -/* */ -/* 4.4 WestfW: add initialization of address to keep */ -/* the compiler happy. Change SC'ed targets. */ -/* Return the SW version via READ PARAM */ -/* 4.3 WestfW: catch framing errors in getch(), so that */ -/* AVRISP works without HW kludges. */ -/* http://code.google.com/p/arduino/issues/detail?id=368n*/ -/* 4.2 WestfW: reduce code size, fix timeouts, change */ -/* verifySpace to use WDT instead of appstart */ -/* 4.1 WestfW: put version number in binary. */ -/**********************************************************/ - -#define OPTIBOOT_MAJVER 4 -#define OPTIBOOT_MINVER 4 - -#define MAKESTR(a) #a -#define MAKEVER(a, b) MAKESTR(a*256+b) - -asm(" .section .version\n" - "optiboot_version: .word " MAKEVER(OPTIBOOT_MAJVER, OPTIBOOT_MINVER) "\n" - " .section .text\n"); - -#include -#include -#include - -// uses sts instructions, but this version uses out instructions -// This saves cycles and program memory. -#include "boot.h" - - -// We don't use as those routines have interrupt overhead we don't need. - -#include "pin_defs.h" -#include "stk500.h" - -#ifndef LED_START_FLASHES -#define LED_START_FLASHES 0 -#endif - -#ifdef LUDICROUS_SPEED -#define BAUD_RATE 230400L -#endif - -/* set the UART baud rate defaults */ -#ifndef BAUD_RATE -#if F_CPU >= 8000000L -#define BAUD_RATE 115200L // Highest rate Avrdude win32 will support -#elsif F_CPU >= 1000000L -#define BAUD_RATE 9600L // 19200 also supported, but with significant error -#elsif F_CPU >= 128000L -#define BAUD_RATE 4800L // Good for 128kHz internal RC -#else -#define BAUD_RATE 1200L // Good even at 32768Hz -#endif -#endif - -/* Switch in soft UART for hard baud rates */ -#if (F_CPU/BAUD_RATE) > 280 // > 57600 for 16MHz -#ifndef SOFT_UART -#define SOFT_UART -#endif -#endif - -/* Watchdog settings */ -#define WATCHDOG_OFF (0) -#define WATCHDOG_16MS (_BV(WDE)) -#define WATCHDOG_32MS (_BV(WDP0) | _BV(WDE)) -#define WATCHDOG_64MS (_BV(WDP1) | _BV(WDE)) -#define WATCHDOG_125MS (_BV(WDP1) | _BV(WDP0) | _BV(WDE)) -#define WATCHDOG_250MS (_BV(WDP2) | _BV(WDE)) -#define WATCHDOG_500MS (_BV(WDP2) | _BV(WDP0) | _BV(WDE)) -#define WATCHDOG_1S (_BV(WDP2) | _BV(WDP1) | _BV(WDE)) -#define WATCHDOG_2S (_BV(WDP2) | _BV(WDP1) | _BV(WDP0) | _BV(WDE)) -#ifndef __AVR_ATmega8__ -#define WATCHDOG_4S (_BV(WDP3) | _BV(WDE)) -#define WATCHDOG_8S (_BV(WDP3) | _BV(WDP0) | _BV(WDE)) -#endif - -/* Function Prototypes */ -/* The main function is in init9, which removes the interrupt vector table */ -/* we don't need. It is also 'naked', which means the compiler does not */ -/* generate any entry or exit code itself. */ -int main(void) __attribute__ ((naked)) __attribute__ ((section (".init9"))); -void putch(char); -uint8_t getch(void); -static inline void getNch(uint8_t); /* "static inline" is a compiler hint to reduce code size */ -void verifySpace(); -static inline void flash_led(uint8_t); -uint8_t getLen(); -static inline void watchdogReset(); -void watchdogConfig(uint8_t x); -#ifdef SOFT_UART -void uartDelay() __attribute__ ((naked)); -#endif -void appStart() __attribute__ ((naked)); - -#if defined(__AVR_ATmega168__) -#define RAMSTART (0x100) -#define NRWWSTART (0x3800) -#elif defined(__AVR_ATmega328P__) -#define RAMSTART (0x100) -#define NRWWSTART (0x7000) -#elif defined (__AVR_ATmega644P__) -#define RAMSTART (0x100) -#define NRWWSTART (0xE000) -#elif defined(__AVR_ATtiny84__) -#define RAMSTART (0x100) -#define NRWWSTART (0x0000) -#elif defined(__AVR_ATmega1280__) -#define RAMSTART (0x200) -#define NRWWSTART (0xE000) -#elif defined(__AVR_ATmega8__) || defined(__AVR_ATmega88__) -#define RAMSTART (0x100) -#define NRWWSTART (0x1800) -#endif - -/* C zero initialises all global variables. However, that requires */ -/* These definitions are NOT zero initialised, but that doesn't matter */ -/* This allows us to drop the zero init code, saving us memory */ -#define buff ((uint8_t*)(RAMSTART)) -#ifdef VIRTUAL_BOOT_PARTITION -#define rstVect (*(uint16_t*)(RAMSTART+SPM_PAGESIZE*2+4)) -#define wdtVect (*(uint16_t*)(RAMSTART+SPM_PAGESIZE*2+6)) -#endif - -/* main program starts here */ -int main(void) { - uint8_t ch; - - /* - * Making these local and in registers prevents the need for initializing - * them, and also saves space because code no longer stores to memory. - * (initializing address keeps the compiler happy, but isn't really - * necessary, and uses 4 bytes of flash.) - */ - register uint16_t address = 0; - register uint8_t length; - - // After the zero init loop, this is the first code to run. - // - // This code makes the following assumptions: - // No interrupts will execute - // SP points to RAMEND - // r1 contains zero - // - // If not, uncomment the following instructions: - // cli(); - asm volatile ("clr __zero_reg__"); -#ifdef __AVR_ATmega8__ - SP=RAMEND; // This is done by hardware reset -#endif - - // Adaboot no-wait mod - ch = MCUSR; - MCUSR = 0; - if (!(ch & _BV(EXTRF))) appStart(); - -#if LED_START_FLASHES > 0 - // Set up Timer 1 for timeout counter - TCCR1B = _BV(CS12) | _BV(CS10); // div 1024 -#endif -#ifndef SOFT_UART -#ifdef __AVR_ATmega8__ - UCSRA = _BV(U2X); //Double speed mode USART - UCSRB = _BV(RXEN) | _BV(TXEN); // enable Rx & Tx - UCSRC = _BV(URSEL) | _BV(UCSZ1) | _BV(UCSZ0); // config USART; 8N1 - UBRRL = (uint8_t)( (F_CPU + BAUD_RATE * 4L) / (BAUD_RATE * 8L) - 1 ); -#else - UCSR0A = _BV(U2X0); //Double speed mode USART0 - UCSR0B = _BV(RXEN0) | _BV(TXEN0); - UCSR0C = _BV(UCSZ00) | _BV(UCSZ01); - UBRR0L = (uint8_t)( (F_CPU + BAUD_RATE * 4L) / (BAUD_RATE * 8L) - 1 ); -#endif -#endif - - // Set up watchdog to trigger after 500ms - watchdogConfig(WATCHDOG_1S); - - /* Set LED pin as output */ - LED_DDR |= _BV(LED); - -#ifdef SOFT_UART - /* Set TX pin as output */ - UART_DDR |= _BV(UART_TX_BIT); -#endif - -#if LED_START_FLASHES > 0 - /* Flash onboard LED to signal entering of bootloader */ - flash_led(LED_START_FLASHES * 2); -#endif - - /* Forever loop */ - for (;;) { - /* get character from UART */ - ch = getch(); - - if(ch == STK_GET_PARAMETER) { - unsigned char which = getch(); - verifySpace(); - if (which == 0x82) { - /* - * Send optiboot version as "minor SW version" - */ - putch(OPTIBOOT_MINVER); - } else if (which == 0x81) { - putch(OPTIBOOT_MAJVER); - } else { - /* - * GET PARAMETER returns a generic 0x03 reply for - * other parameters - enough to keep Avrdude happy - */ - putch(0x03); - } - } - else if(ch == STK_SET_DEVICE) { - // SET DEVICE is ignored - getNch(20); - } - else if(ch == STK_SET_DEVICE_EXT) { - // SET DEVICE EXT is ignored - getNch(5); - } - else if(ch == STK_LOAD_ADDRESS) { - // LOAD ADDRESS - uint16_t newAddress; - newAddress = getch(); - newAddress = (newAddress & 0xff) | (getch() << 8); -#ifdef RAMPZ - // Transfer top bit to RAMPZ - RAMPZ = (newAddress & 0x8000) ? 1 : 0; -#endif - newAddress += newAddress; // Convert from word address to byte address - address = newAddress; - verifySpace(); - } - else if(ch == STK_UNIVERSAL) { - // UNIVERSAL command is ignored - getNch(4); - putch(0x00); - } - /* Write memory, length is big endian and is in bytes */ - else if(ch == STK_PROG_PAGE) { - // PROGRAM PAGE - we support flash programming only, not EEPROM - uint8_t *bufPtr; - uint16_t addrPtr; - - getch(); /* getlen() */ - length = getch(); - getch(); - - // If we are in RWW section, immediately start page erase - if (address < NRWWSTART) __boot_page_erase_short((uint16_t)(void*)address); - - // While that is going on, read in page contents - bufPtr = buff; - do *bufPtr++ = getch(); - while (--length); - - // If we are in NRWW section, page erase has to be delayed until now. - // Todo: Take RAMPZ into account - if (address >= NRWWSTART) __boot_page_erase_short((uint16_t)(void*)address); - - // Read command terminator, start reply - verifySpace(); - - // If only a partial page is to be programmed, the erase might not be complete. - // So check that here - boot_spm_busy_wait(); - -#ifdef VIRTUAL_BOOT_PARTITION - if ((uint16_t)(void*)address == 0) { - // This is the reset vector page. We need to live-patch the code so the - // bootloader runs. - // - // Move RESET vector to WDT vector - uint16_t vect = buff[0] | (buff[1]<<8); - rstVect = vect; - wdtVect = buff[8] | (buff[9]<<8); - vect -= 4; // Instruction is a relative jump (rjmp), so recalculate. - buff[8] = vect & 0xff; - buff[9] = vect >> 8; - - // Add jump to bootloader at RESET vector - buff[0] = 0x7f; - buff[1] = 0xce; // rjmp 0x1d00 instruction - } -#endif - - // Copy buffer into programming buffer - bufPtr = buff; - addrPtr = (uint16_t)(void*)address; - ch = SPM_PAGESIZE / 2; - do { - uint16_t a; - a = *bufPtr++; - a |= (*bufPtr++) << 8; - __boot_page_fill_short((uint16_t)(void*)addrPtr,a); - addrPtr += 2; - } while (--ch); - - // Write from programming buffer - __boot_page_write_short((uint16_t)(void*)address); - boot_spm_busy_wait(); - -#if defined(RWWSRE) - // Reenable read access to flash - boot_rww_enable(); -#endif - - } - /* Read memory block mode, length is big endian. */ - else if(ch == STK_READ_PAGE) { - // READ PAGE - we only read flash - getch(); /* getlen() */ - length = getch(); - getch(); - - verifySpace(); -#ifdef VIRTUAL_BOOT_PARTITION - do { - // Undo vector patch in bottom page so verify passes - if (address == 0) ch=rstVect & 0xff; - else if (address == 1) ch=rstVect >> 8; - else if (address == 8) ch=wdtVect & 0xff; - else if (address == 9) ch=wdtVect >> 8; - else ch = pgm_read_byte_near(address); - address++; - putch(ch); - } while (--length); -#else -#ifdef __AVR_ATmega1280__ -// do putch(pgm_read_byte_near(address++)); -// while (--length); - do { - uint8_t result; - __asm__ ("elpm %0,Z\n":"=r"(result):"z"(address)); - putch(result); - address++; - } - while (--length); -#else - do putch(pgm_read_byte_near(address++)); - while (--length); -#endif -#endif - } - - /* Get device signature bytes */ - else if(ch == STK_READ_SIGN) { - // READ SIGN - return what Avrdude wants to hear - verifySpace(); - putch(SIGNATURE_0); - putch(SIGNATURE_1); - putch(SIGNATURE_2); - } - else if (ch == 'Q') { - // Adaboot no-wait mod - watchdogConfig(WATCHDOG_16MS); - verifySpace(); - } - else { - // This covers the response to commands like STK_ENTER_PROGMODE - verifySpace(); - } - putch(STK_OK); - } -} - -void putch(char ch) { -#ifndef SOFT_UART - while (!(UCSR0A & _BV(UDRE0))); - UDR0 = ch; -#else - __asm__ __volatile__ ( - " com %[ch]\n" // ones complement, carry set - " sec\n" - "1: brcc 2f\n" - " cbi %[uartPort],%[uartBit]\n" - " rjmp 3f\n" - "2: sbi %[uartPort],%[uartBit]\n" - " nop\n" - "3: rcall uartDelay\n" - " rcall uartDelay\n" - " lsr %[ch]\n" - " dec %[bitcnt]\n" - " brne 1b\n" - : - : - [bitcnt] "d" (10), - [ch] "r" (ch), - [uartPort] "I" (_SFR_IO_ADDR(UART_PORT)), - [uartBit] "I" (UART_TX_BIT) - : - "r25" - ); -#endif -} - -uint8_t getch(void) { - uint8_t ch; - -#ifdef LED_DATA_FLASH -#ifdef __AVR_ATmega8__ - LED_PORT ^= _BV(LED); -#else - LED_PIN |= _BV(LED); -#endif -#endif - -#ifdef SOFT_UART - __asm__ __volatile__ ( - "1: sbic %[uartPin],%[uartBit]\n" // Wait for start edge - " rjmp 1b\n" - " rcall uartDelay\n" // Get to middle of start bit - "2: rcall uartDelay\n" // Wait 1 bit period - " rcall uartDelay\n" // Wait 1 bit period - " clc\n" - " sbic %[uartPin],%[uartBit]\n" - " sec\n" - " dec %[bitCnt]\n" - " breq 3f\n" - " ror %[ch]\n" - " rjmp 2b\n" - "3:\n" - : - [ch] "=r" (ch) - : - [bitCnt] "d" (9), - [uartPin] "I" (_SFR_IO_ADDR(UART_PIN)), - [uartBit] "I" (UART_RX_BIT) - : - "r25" -); -#else - while(!(UCSR0A & _BV(RXC0))) - ; - if (!(UCSR0A & _BV(FE0))) { - /* - * A Framing Error indicates (probably) that something is talking - * to us at the wrong bit rate. Assume that this is because it - * expects to be talking to the application, and DON'T reset the - * watchdog. This should cause the bootloader to abort and run - * the application "soon", if it keeps happening. (Note that we - * don't care that an invalid char is returned...) - */ - watchdogReset(); - } - - ch = UDR0; -#endif - -#ifdef LED_DATA_FLASH -#ifdef __AVR_ATmega8__ - LED_PORT ^= _BV(LED); -#else - LED_PIN |= _BV(LED); -#endif -#endif - - return ch; -} - -#ifdef SOFT_UART -// AVR350 equation: #define UART_B_VALUE (((F_CPU/BAUD_RATE)-23)/6) -// Adding 3 to numerator simulates nearest rounding for more accurate baud rates -#define UART_B_VALUE (((F_CPU/BAUD_RATE)-20)/6) -#if UART_B_VALUE > 255 -#error Baud rate too slow for soft UART -#endif - -void uartDelay() { - __asm__ __volatile__ ( - "ldi r25,%[count]\n" - "1:dec r25\n" - "brne 1b\n" - "ret\n" - ::[count] "M" (UART_B_VALUE) - ); -} -#endif - -void getNch(uint8_t count) { - do getch(); while (--count); - verifySpace(); -} - -void verifySpace() { - if (getch() != CRC_EOP) { - watchdogConfig(WATCHDOG_16MS); // shorten WD timeout - while (1) // and busy-loop so that WD causes - ; // a reset and app start. - } - putch(STK_INSYNC); -} - -#if LED_START_FLASHES > 0 -void flash_led(uint8_t count) { - do { - TCNT1 = -(F_CPU/(1024*16)); - TIFR1 = _BV(TOV1); - while(!(TIFR1 & _BV(TOV1))); -#ifdef __AVR_ATmega8__ - LED_PORT ^= _BV(LED); -#else - LED_PIN |= _BV(LED); -#endif - watchdogReset(); - } while (--count); -} -#endif - -// Watchdog functions. These are only safe with interrupts turned off. -void watchdogReset() { - __asm__ __volatile__ ( - "wdr\n" - ); -} - -void watchdogConfig(uint8_t x) { - WDTCSR = _BV(WDCE) | _BV(WDE); - WDTCSR = x; -} - -void appStart() { - watchdogConfig(WATCHDOG_OFF); - __asm__ __volatile__ ( -#ifdef VIRTUAL_BOOT_PARTITION - // Jump to WDT vector - "ldi r30,4\n" - "clr r31\n" -#else - // Jump to RST vector - "clr r30\n" - "clr r31\n" -#endif - "ijmp\n" - ); -} diff --git a/build/linux/work/hardware/arduino/bootloaders/optiboot/optiboot_atmega168.hex b/build/linux/work/hardware/arduino/bootloaders/optiboot/optiboot_atmega168.hex deleted file mode 100644 index c2f2b5b53..000000000 --- a/build/linux/work/hardware/arduino/bootloaders/optiboot/optiboot_atmega168.hex +++ /dev/null @@ -1,35 +0,0 @@ -:103E0000112484B714BE81FFF0D085E08093810037 -:103E100082E08093C00088E18093C10086E08093B7 -:103E2000C20080E18093C4008EE0C9D0259A86E06C -:103E300020E33CEF91E0309385002093840096BB13 -:103E4000B09BFECF1D9AA8958150A9F7CC24DD2404 -:103E500088248394B5E0AB2EA1E19A2EF3E0BF2E27 -:103E6000A2D0813461F49FD0082FAFD0023811F076 -:103E7000013811F484E001C083E08DD089C0823420 -:103E800011F484E103C0853419F485E0A6D080C024 -:103E9000853579F488D0E82EFF2485D0082F10E0EE -:103EA000102F00270E291F29000F111F8ED0680127 -:103EB0006FC0863521F484E090D080E0DECF843678 -:103EC00009F040C070D06FD0082F6DD080E0C816C8 -:103ED00088E3D80618F4F601B7BEE895C0E0D1E053 -:103EE00062D089930C17E1F7F0E0CF16F8E3DF0614 -:103EF00018F0F601B7BEE89568D007B600FCFDCF14 -:103F0000A601A0E0B1E02C9130E011968C911197C0 -:103F100090E0982F8827822B932B1296FA010C01A0 -:103F200087BEE89511244E5F5F4FF1E0A038BF07D0 -:103F300051F7F601A7BEE89507B600FCFDCF97BE86 -:103F4000E89526C08437B1F42ED02DD0F82E2BD092 -:103F50003CD0F601EF2C8F010F5F1F4F84911BD0D7 -:103F6000EA94F801C1F70894C11CD11CFA94CF0C53 -:103F7000D11C0EC0853739F428D08EE10CD084E9ED -:103F80000AD086E07ACF813511F488E018D01DD0B0 -:103F900080E101D065CF982F8091C00085FFFCCFD4 -:103FA0009093C60008958091C00087FFFCCF809158 -:103FB000C00084FD01C0A8958091C6000895E0E688 -:103FC000F0E098E1908380830895EDDF803219F06E -:103FD00088E0F5DFFFCF84E1DECF1F93182FE3DF0A -:103FE0001150E9F7F2DF1F91089580E0E8DFEE2736 -:043FF000FF2709940A -:023FFE000404B9 -:0400000300003E00BB -:00000001FF diff --git a/build/linux/work/hardware/arduino/bootloaders/optiboot/optiboot_atmega168.lst b/build/linux/work/hardware/arduino/bootloaders/optiboot/optiboot_atmega168.lst deleted file mode 100644 index 06316dbba..000000000 --- a/build/linux/work/hardware/arduino/bootloaders/optiboot/optiboot_atmega168.lst +++ /dev/null @@ -1,598 +0,0 @@ - -optiboot_atmega168.elf: file format elf32-avr - -Sections: -Idx Name Size VMA LMA File off Algn - 0 .text 000001f4 00003e00 00003e00 00000054 2**1 - CONTENTS, ALLOC, LOAD, READONLY, CODE - 1 .version 00000002 00003ffe 00003ffe 00000248 2**0 - CONTENTS, READONLY - 2 .debug_aranges 00000028 00000000 00000000 0000024a 2**0 - CONTENTS, READONLY, DEBUGGING - 3 .debug_pubnames 0000005f 00000000 00000000 00000272 2**0 - CONTENTS, READONLY, DEBUGGING - 4 .debug_info 000002a8 00000000 00000000 000002d1 2**0 - CONTENTS, READONLY, DEBUGGING - 5 .debug_abbrev 00000178 00000000 00000000 00000579 2**0 - CONTENTS, READONLY, DEBUGGING - 6 .debug_line 00000488 00000000 00000000 000006f1 2**0 - CONTENTS, READONLY, DEBUGGING - 7 .debug_frame 00000080 00000000 00000000 00000b7c 2**2 - CONTENTS, READONLY, DEBUGGING - 8 .debug_str 0000014f 00000000 00000000 00000bfc 2**0 - CONTENTS, READONLY, DEBUGGING - 9 .debug_loc 000002d8 00000000 00000000 00000d4b 2**0 - CONTENTS, READONLY, DEBUGGING - 10 .debug_ranges 00000078 00000000 00000000 00001023 2**0 - CONTENTS, READONLY, DEBUGGING - -Disassembly of section .text: - -00003e00
    : -#define rstVect (*(uint16_t*)(RAMSTART+SPM_PAGESIZE*2+4)) -#define wdtVect (*(uint16_t*)(RAMSTART+SPM_PAGESIZE*2+6)) -#endif - -/* main program starts here */ -int main(void) { - 3e00: 11 24 eor r1, r1 -#ifdef __AVR_ATmega8__ - SP=RAMEND; // This is done by hardware reset -#endif - - // Adaboot no-wait mod - ch = MCUSR; - 3e02: 84 b7 in r24, 0x34 ; 52 - MCUSR = 0; - 3e04: 14 be out 0x34, r1 ; 52 - if (!(ch & _BV(EXTRF))) appStart(); - 3e06: 81 ff sbrs r24, 1 - 3e08: f0 d0 rcall .+480 ; 0x3fea - -#if LED_START_FLASHES > 0 - // Set up Timer 1 for timeout counter - TCCR1B = _BV(CS12) | _BV(CS10); // div 1024 - 3e0a: 85 e0 ldi r24, 0x05 ; 5 - 3e0c: 80 93 81 00 sts 0x0081, r24 - UCSRA = _BV(U2X); //Double speed mode USART - UCSRB = _BV(RXEN) | _BV(TXEN); // enable Rx & Tx - UCSRC = _BV(URSEL) | _BV(UCSZ1) | _BV(UCSZ0); // config USART; 8N1 - UBRRL = (uint8_t)( (F_CPU + BAUD_RATE * 4L) / (BAUD_RATE * 8L) - 1 ); -#else - UCSR0A = _BV(U2X0); //Double speed mode USART0 - 3e10: 82 e0 ldi r24, 0x02 ; 2 - 3e12: 80 93 c0 00 sts 0x00C0, r24 - UCSR0B = _BV(RXEN0) | _BV(TXEN0); - 3e16: 88 e1 ldi r24, 0x18 ; 24 - 3e18: 80 93 c1 00 sts 0x00C1, r24 - UCSR0C = _BV(UCSZ00) | _BV(UCSZ01); - 3e1c: 86 e0 ldi r24, 0x06 ; 6 - 3e1e: 80 93 c2 00 sts 0x00C2, r24 - UBRR0L = (uint8_t)( (F_CPU + BAUD_RATE * 4L) / (BAUD_RATE * 8L) - 1 ); - 3e22: 80 e1 ldi r24, 0x10 ; 16 - 3e24: 80 93 c4 00 sts 0x00C4, r24 -#endif -#endif - - // Set up watchdog to trigger after 500ms - watchdogConfig(WATCHDOG_1S); - 3e28: 8e e0 ldi r24, 0x0E ; 14 - 3e2a: c9 d0 rcall .+402 ; 0x3fbe - - /* Set LED pin as output */ - LED_DDR |= _BV(LED); - 3e2c: 25 9a sbi 0x04, 5 ; 4 - 3e2e: 86 e0 ldi r24, 0x06 ; 6 -} - -#if LED_START_FLASHES > 0 -void flash_led(uint8_t count) { - do { - TCNT1 = -(F_CPU/(1024*16)); - 3e30: 20 e3 ldi r18, 0x30 ; 48 - 3e32: 3c ef ldi r19, 0xFC ; 252 - TIFR1 = _BV(TOV1); - 3e34: 91 e0 ldi r25, 0x01 ; 1 -} - -#if LED_START_FLASHES > 0 -void flash_led(uint8_t count) { - do { - TCNT1 = -(F_CPU/(1024*16)); - 3e36: 30 93 85 00 sts 0x0085, r19 - 3e3a: 20 93 84 00 sts 0x0084, r18 - TIFR1 = _BV(TOV1); - 3e3e: 96 bb out 0x16, r25 ; 22 - while(!(TIFR1 & _BV(TOV1))); - 3e40: b0 9b sbis 0x16, 0 ; 22 - 3e42: fe cf rjmp .-4 ; 0x3e40 -#ifdef __AVR_ATmega8__ - LED_PORT ^= _BV(LED); -#else - LED_PIN |= _BV(LED); - 3e44: 1d 9a sbi 0x03, 5 ; 3 -} -#endif - -// Watchdog functions. These are only safe with interrupts turned off. -void watchdogReset() { - __asm__ __volatile__ ( - 3e46: a8 95 wdr - LED_PORT ^= _BV(LED); -#else - LED_PIN |= _BV(LED); -#endif - watchdogReset(); - } while (--count); - 3e48: 81 50 subi r24, 0x01 ; 1 - 3e4a: a9 f7 brne .-22 ; 0x3e36 - 3e4c: cc 24 eor r12, r12 - 3e4e: dd 24 eor r13, r13 - ch = SPM_PAGESIZE / 2; - do { - uint16_t a; - a = *bufPtr++; - a |= (*bufPtr++) << 8; - __boot_page_fill_short((uint16_t)(void*)addrPtr,a); - 3e50: 88 24 eor r8, r8 - 3e52: 83 94 inc r8 - addrPtr += 2; - } while (--ch); - - // Write from programming buffer - __boot_page_write_short((uint16_t)(void*)address); - 3e54: b5 e0 ldi r27, 0x05 ; 5 - 3e56: ab 2e mov r10, r27 - boot_spm_busy_wait(); - -#if defined(RWWSRE) - // Reenable read access to flash - boot_rww_enable(); - 3e58: a1 e1 ldi r26, 0x11 ; 17 - 3e5a: 9a 2e mov r9, r26 - do *bufPtr++ = getch(); - while (--length); - - // If we are in NRWW section, page erase has to be delayed until now. - // Todo: Take RAMPZ into account - if (address >= NRWWSTART) __boot_page_erase_short((uint16_t)(void*)address); - 3e5c: f3 e0 ldi r31, 0x03 ; 3 - 3e5e: bf 2e mov r11, r31 -#endif - - /* Forever loop */ - for (;;) { - /* get character from UART */ - ch = getch(); - 3e60: a2 d0 rcall .+324 ; 0x3fa6 - - if(ch == STK_GET_PARAMETER) { - 3e62: 81 34 cpi r24, 0x41 ; 65 - 3e64: 61 f4 brne .+24 ; 0x3e7e - unsigned char which = getch(); - 3e66: 9f d0 rcall .+318 ; 0x3fa6 - 3e68: 08 2f mov r16, r24 - verifySpace(); - 3e6a: af d0 rcall .+350 ; 0x3fca - if (which == 0x82) { - 3e6c: 02 38 cpi r16, 0x82 ; 130 - 3e6e: 11 f0 breq .+4 ; 0x3e74 - /* - * Send optiboot version as "minor SW version" - */ - putch(OPTIBOOT_MINVER); - } else if (which == 0x81) { - 3e70: 01 38 cpi r16, 0x81 ; 129 - 3e72: 11 f4 brne .+4 ; 0x3e78 - putch(OPTIBOOT_MAJVER); - 3e74: 84 e0 ldi r24, 0x04 ; 4 - 3e76: 01 c0 rjmp .+2 ; 0x3e7a - } else { - /* - * GET PARAMETER returns a generic 0x03 reply for - * other parameters - enough to keep Avrdude happy - */ - putch(0x03); - 3e78: 83 e0 ldi r24, 0x03 ; 3 - 3e7a: 8d d0 rcall .+282 ; 0x3f96 - 3e7c: 89 c0 rjmp .+274 ; 0x3f90 - } - } - else if(ch == STK_SET_DEVICE) { - 3e7e: 82 34 cpi r24, 0x42 ; 66 - 3e80: 11 f4 brne .+4 ; 0x3e86 - // SET DEVICE is ignored - getNch(20); - 3e82: 84 e1 ldi r24, 0x14 ; 20 - 3e84: 03 c0 rjmp .+6 ; 0x3e8c - } - else if(ch == STK_SET_DEVICE_EXT) { - 3e86: 85 34 cpi r24, 0x45 ; 69 - 3e88: 19 f4 brne .+6 ; 0x3e90 - // SET DEVICE EXT is ignored - getNch(5); - 3e8a: 85 e0 ldi r24, 0x05 ; 5 - 3e8c: a6 d0 rcall .+332 ; 0x3fda - 3e8e: 80 c0 rjmp .+256 ; 0x3f90 - } - else if(ch == STK_LOAD_ADDRESS) { - 3e90: 85 35 cpi r24, 0x55 ; 85 - 3e92: 79 f4 brne .+30 ; 0x3eb2 - // LOAD ADDRESS - uint16_t newAddress; - newAddress = getch(); - 3e94: 88 d0 rcall .+272 ; 0x3fa6 - newAddress = (newAddress & 0xff) | (getch() << 8); - 3e96: e8 2e mov r14, r24 - 3e98: ff 24 eor r15, r15 - 3e9a: 85 d0 rcall .+266 ; 0x3fa6 - 3e9c: 08 2f mov r16, r24 - 3e9e: 10 e0 ldi r17, 0x00 ; 0 - 3ea0: 10 2f mov r17, r16 - 3ea2: 00 27 eor r16, r16 - 3ea4: 0e 29 or r16, r14 - 3ea6: 1f 29 or r17, r15 -#ifdef RAMPZ - // Transfer top bit to RAMPZ - RAMPZ = (newAddress & 0x8000) ? 1 : 0; -#endif - newAddress += newAddress; // Convert from word address to byte address - 3ea8: 00 0f add r16, r16 - 3eaa: 11 1f adc r17, r17 - address = newAddress; - verifySpace(); - 3eac: 8e d0 rcall .+284 ; 0x3fca - 3eae: 68 01 movw r12, r16 - 3eb0: 6f c0 rjmp .+222 ; 0x3f90 - } - else if(ch == STK_UNIVERSAL) { - 3eb2: 86 35 cpi r24, 0x56 ; 86 - 3eb4: 21 f4 brne .+8 ; 0x3ebe - // UNIVERSAL command is ignored - getNch(4); - 3eb6: 84 e0 ldi r24, 0x04 ; 4 - 3eb8: 90 d0 rcall .+288 ; 0x3fda - putch(0x00); - 3eba: 80 e0 ldi r24, 0x00 ; 0 - 3ebc: de cf rjmp .-68 ; 0x3e7a - } - /* Write memory, length is big endian and is in bytes */ - else if(ch == STK_PROG_PAGE) { - 3ebe: 84 36 cpi r24, 0x64 ; 100 - 3ec0: 09 f0 breq .+2 ; 0x3ec4 - 3ec2: 40 c0 rjmp .+128 ; 0x3f44 - // PROGRAM PAGE - we support flash programming only, not EEPROM - uint8_t *bufPtr; - uint16_t addrPtr; - - getch(); /* getlen() */ - 3ec4: 70 d0 rcall .+224 ; 0x3fa6 - length = getch(); - 3ec6: 6f d0 rcall .+222 ; 0x3fa6 - 3ec8: 08 2f mov r16, r24 - getch(); - 3eca: 6d d0 rcall .+218 ; 0x3fa6 - - // If we are in RWW section, immediately start page erase - if (address < NRWWSTART) __boot_page_erase_short((uint16_t)(void*)address); - 3ecc: 80 e0 ldi r24, 0x00 ; 0 - 3ece: c8 16 cp r12, r24 - 3ed0: 88 e3 ldi r24, 0x38 ; 56 - 3ed2: d8 06 cpc r13, r24 - 3ed4: 18 f4 brcc .+6 ; 0x3edc - 3ed6: f6 01 movw r30, r12 - 3ed8: b7 be out 0x37, r11 ; 55 - 3eda: e8 95 spm - 3edc: c0 e0 ldi r28, 0x00 ; 0 - 3ede: d1 e0 ldi r29, 0x01 ; 1 - - // While that is going on, read in page contents - bufPtr = buff; - do *bufPtr++ = getch(); - 3ee0: 62 d0 rcall .+196 ; 0x3fa6 - 3ee2: 89 93 st Y+, r24 - while (--length); - 3ee4: 0c 17 cp r16, r28 - 3ee6: e1 f7 brne .-8 ; 0x3ee0 - - // If we are in NRWW section, page erase has to be delayed until now. - // Todo: Take RAMPZ into account - if (address >= NRWWSTART) __boot_page_erase_short((uint16_t)(void*)address); - 3ee8: f0 e0 ldi r31, 0x00 ; 0 - 3eea: cf 16 cp r12, r31 - 3eec: f8 e3 ldi r31, 0x38 ; 56 - 3eee: df 06 cpc r13, r31 - 3ef0: 18 f0 brcs .+6 ; 0x3ef8 - 3ef2: f6 01 movw r30, r12 - 3ef4: b7 be out 0x37, r11 ; 55 - 3ef6: e8 95 spm - - // Read command terminator, start reply - verifySpace(); - 3ef8: 68 d0 rcall .+208 ; 0x3fca - - // If only a partial page is to be programmed, the erase might not be complete. - // So check that here - boot_spm_busy_wait(); - 3efa: 07 b6 in r0, 0x37 ; 55 - 3efc: 00 fc sbrc r0, 0 - 3efe: fd cf rjmp .-6 ; 0x3efa - 3f00: a6 01 movw r20, r12 - 3f02: a0 e0 ldi r26, 0x00 ; 0 - 3f04: b1 e0 ldi r27, 0x01 ; 1 - bufPtr = buff; - addrPtr = (uint16_t)(void*)address; - ch = SPM_PAGESIZE / 2; - do { - uint16_t a; - a = *bufPtr++; - 3f06: 2c 91 ld r18, X - 3f08: 30 e0 ldi r19, 0x00 ; 0 - a |= (*bufPtr++) << 8; - 3f0a: 11 96 adiw r26, 0x01 ; 1 - 3f0c: 8c 91 ld r24, X - 3f0e: 11 97 sbiw r26, 0x01 ; 1 - 3f10: 90 e0 ldi r25, 0x00 ; 0 - 3f12: 98 2f mov r25, r24 - 3f14: 88 27 eor r24, r24 - 3f16: 82 2b or r24, r18 - 3f18: 93 2b or r25, r19 -#define rstVect (*(uint16_t*)(RAMSTART+SPM_PAGESIZE*2+4)) -#define wdtVect (*(uint16_t*)(RAMSTART+SPM_PAGESIZE*2+6)) -#endif - -/* main program starts here */ -int main(void) { - 3f1a: 12 96 adiw r26, 0x02 ; 2 - ch = SPM_PAGESIZE / 2; - do { - uint16_t a; - a = *bufPtr++; - a |= (*bufPtr++) << 8; - __boot_page_fill_short((uint16_t)(void*)addrPtr,a); - 3f1c: fa 01 movw r30, r20 - 3f1e: 0c 01 movw r0, r24 - 3f20: 87 be out 0x37, r8 ; 55 - 3f22: e8 95 spm - 3f24: 11 24 eor r1, r1 - addrPtr += 2; - 3f26: 4e 5f subi r20, 0xFE ; 254 - 3f28: 5f 4f sbci r21, 0xFF ; 255 - } while (--ch); - 3f2a: f1 e0 ldi r31, 0x01 ; 1 - 3f2c: a0 38 cpi r26, 0x80 ; 128 - 3f2e: bf 07 cpc r27, r31 - 3f30: 51 f7 brne .-44 ; 0x3f06 - - // Write from programming buffer - __boot_page_write_short((uint16_t)(void*)address); - 3f32: f6 01 movw r30, r12 - 3f34: a7 be out 0x37, r10 ; 55 - 3f36: e8 95 spm - boot_spm_busy_wait(); - 3f38: 07 b6 in r0, 0x37 ; 55 - 3f3a: 00 fc sbrc r0, 0 - 3f3c: fd cf rjmp .-6 ; 0x3f38 - -#if defined(RWWSRE) - // Reenable read access to flash - boot_rww_enable(); - 3f3e: 97 be out 0x37, r9 ; 55 - 3f40: e8 95 spm - 3f42: 26 c0 rjmp .+76 ; 0x3f90 -#endif - - } - /* Read memory block mode, length is big endian. */ - else if(ch == STK_READ_PAGE) { - 3f44: 84 37 cpi r24, 0x74 ; 116 - 3f46: b1 f4 brne .+44 ; 0x3f74 - // READ PAGE - we only read flash - getch(); /* getlen() */ - 3f48: 2e d0 rcall .+92 ; 0x3fa6 - length = getch(); - 3f4a: 2d d0 rcall .+90 ; 0x3fa6 - 3f4c: f8 2e mov r15, r24 - getch(); - 3f4e: 2b d0 rcall .+86 ; 0x3fa6 - - verifySpace(); - 3f50: 3c d0 rcall .+120 ; 0x3fca - 3f52: f6 01 movw r30, r12 - 3f54: ef 2c mov r14, r15 - putch(result); - address++; - } - while (--length); -#else - do putch(pgm_read_byte_near(address++)); - 3f56: 8f 01 movw r16, r30 - 3f58: 0f 5f subi r16, 0xFF ; 255 - 3f5a: 1f 4f sbci r17, 0xFF ; 255 - 3f5c: 84 91 lpm r24, Z+ - 3f5e: 1b d0 rcall .+54 ; 0x3f96 - while (--length); - 3f60: ea 94 dec r14 - 3f62: f8 01 movw r30, r16 - 3f64: c1 f7 brne .-16 ; 0x3f56 -#define rstVect (*(uint16_t*)(RAMSTART+SPM_PAGESIZE*2+4)) -#define wdtVect (*(uint16_t*)(RAMSTART+SPM_PAGESIZE*2+6)) -#endif - -/* main program starts here */ -int main(void) { - 3f66: 08 94 sec - 3f68: c1 1c adc r12, r1 - 3f6a: d1 1c adc r13, r1 - 3f6c: fa 94 dec r15 - 3f6e: cf 0c add r12, r15 - 3f70: d1 1c adc r13, r1 - 3f72: 0e c0 rjmp .+28 ; 0x3f90 -#endif -#endif - } - - /* Get device signature bytes */ - else if(ch == STK_READ_SIGN) { - 3f74: 85 37 cpi r24, 0x75 ; 117 - 3f76: 39 f4 brne .+14 ; 0x3f86 - // READ SIGN - return what Avrdude wants to hear - verifySpace(); - 3f78: 28 d0 rcall .+80 ; 0x3fca - putch(SIGNATURE_0); - 3f7a: 8e e1 ldi r24, 0x1E ; 30 - 3f7c: 0c d0 rcall .+24 ; 0x3f96 - putch(SIGNATURE_1); - 3f7e: 84 e9 ldi r24, 0x94 ; 148 - 3f80: 0a d0 rcall .+20 ; 0x3f96 - putch(SIGNATURE_2); - 3f82: 86 e0 ldi r24, 0x06 ; 6 - 3f84: 7a cf rjmp .-268 ; 0x3e7a - } - else if (ch == 'Q') { - 3f86: 81 35 cpi r24, 0x51 ; 81 - 3f88: 11 f4 brne .+4 ; 0x3f8e - // Adaboot no-wait mod - watchdogConfig(WATCHDOG_16MS); - 3f8a: 88 e0 ldi r24, 0x08 ; 8 - 3f8c: 18 d0 rcall .+48 ; 0x3fbe - verifySpace(); - } - else { - // This covers the response to commands like STK_ENTER_PROGMODE - verifySpace(); - 3f8e: 1d d0 rcall .+58 ; 0x3fca - } - putch(STK_OK); - 3f90: 80 e1 ldi r24, 0x10 ; 16 - 3f92: 01 d0 rcall .+2 ; 0x3f96 - 3f94: 65 cf rjmp .-310 ; 0x3e60 - -00003f96 : - } -} - -void putch(char ch) { - 3f96: 98 2f mov r25, r24 -#ifndef SOFT_UART - while (!(UCSR0A & _BV(UDRE0))); - 3f98: 80 91 c0 00 lds r24, 0x00C0 - 3f9c: 85 ff sbrs r24, 5 - 3f9e: fc cf rjmp .-8 ; 0x3f98 - UDR0 = ch; - 3fa0: 90 93 c6 00 sts 0x00C6, r25 - [uartBit] "I" (UART_TX_BIT) - : - "r25" - ); -#endif -} - 3fa4: 08 95 ret - -00003fa6 : - [uartBit] "I" (UART_RX_BIT) - : - "r25" -); -#else - while(!(UCSR0A & _BV(RXC0))) - 3fa6: 80 91 c0 00 lds r24, 0x00C0 - 3faa: 87 ff sbrs r24, 7 - 3fac: fc cf rjmp .-8 ; 0x3fa6 - ; - if (!(UCSR0A & _BV(FE0))) { - 3fae: 80 91 c0 00 lds r24, 0x00C0 - 3fb2: 84 fd sbrc r24, 4 - 3fb4: 01 c0 rjmp .+2 ; 0x3fb8 -} -#endif - -// Watchdog functions. These are only safe with interrupts turned off. -void watchdogReset() { - __asm__ __volatile__ ( - 3fb6: a8 95 wdr - * don't care that an invalid char is returned...) - */ - watchdogReset(); - } - - ch = UDR0; - 3fb8: 80 91 c6 00 lds r24, 0x00C6 - LED_PIN |= _BV(LED); -#endif -#endif - - return ch; -} - 3fbc: 08 95 ret - -00003fbe : - "wdr\n" - ); -} - -void watchdogConfig(uint8_t x) { - WDTCSR = _BV(WDCE) | _BV(WDE); - 3fbe: e0 e6 ldi r30, 0x60 ; 96 - 3fc0: f0 e0 ldi r31, 0x00 ; 0 - 3fc2: 98 e1 ldi r25, 0x18 ; 24 - 3fc4: 90 83 st Z, r25 - WDTCSR = x; - 3fc6: 80 83 st Z, r24 -} - 3fc8: 08 95 ret - -00003fca : - do getch(); while (--count); - verifySpace(); -} - -void verifySpace() { - if (getch() != CRC_EOP) { - 3fca: ed df rcall .-38 ; 0x3fa6 - 3fcc: 80 32 cpi r24, 0x20 ; 32 - 3fce: 19 f0 breq .+6 ; 0x3fd6 - watchdogConfig(WATCHDOG_16MS); // shorten WD timeout - 3fd0: 88 e0 ldi r24, 0x08 ; 8 - 3fd2: f5 df rcall .-22 ; 0x3fbe - 3fd4: ff cf rjmp .-2 ; 0x3fd4 - while (1) // and busy-loop so that WD causes - ; // a reset and app start. - } - putch(STK_INSYNC); - 3fd6: 84 e1 ldi r24, 0x14 ; 20 -} - 3fd8: de cf rjmp .-68 ; 0x3f96 - -00003fda : - ::[count] "M" (UART_B_VALUE) - ); -} -#endif - -void getNch(uint8_t count) { - 3fda: 1f 93 push r17 - 3fdc: 18 2f mov r17, r24 - do getch(); while (--count); - 3fde: e3 df rcall .-58 ; 0x3fa6 - 3fe0: 11 50 subi r17, 0x01 ; 1 - 3fe2: e9 f7 brne .-6 ; 0x3fde - verifySpace(); - 3fe4: f2 df rcall .-28 ; 0x3fca -} - 3fe6: 1f 91 pop r17 - 3fe8: 08 95 ret - -00003fea : - WDTCSR = _BV(WDCE) | _BV(WDE); - WDTCSR = x; -} - -void appStart() { - watchdogConfig(WATCHDOG_OFF); - 3fea: 80 e0 ldi r24, 0x00 ; 0 - 3fec: e8 df rcall .-48 ; 0x3fbe - __asm__ __volatile__ ( - 3fee: ee 27 eor r30, r30 - 3ff0: ff 27 eor r31, r31 - 3ff2: 09 94 ijmp diff --git a/build/linux/work/hardware/arduino/bootloaders/optiboot/optiboot_atmega328-Mini.hex b/build/linux/work/hardware/arduino/bootloaders/optiboot/optiboot_atmega328-Mini.hex deleted file mode 100644 index 02266ee8f..000000000 --- a/build/linux/work/hardware/arduino/bootloaders/optiboot/optiboot_atmega328-Mini.hex +++ /dev/null @@ -1,33 +0,0 @@ -:107E000085E08093810082E08093C00088E18093C8 -:107E1000C10086E08093C20080E18093C40084B7F3 -:107E200014BE81FFD0D089E2C8D0259A86E020E335 -:107E30003CEF91E0309385002093840096BBB09B8B -:107E4000FECF1D9AA8958150A9F7DD24D394A5E013 -:107E5000EA2EF1E1FF2EA4D0813421F481E0BED0DE -:107E600083E024C0823411F484E103C0853419F422 -:107E700085E0B4D08AC08535A1F492D0082F10E0F7 -:107E800010930102009300028BD090E0982F882776 -:107E9000802B912B880F991F9093010280930002F1 -:107EA00073C0863529F484E099D080E071D06DC02C -:107EB000843609F043C07CD0E0910002F0910102C9 -:107EC00083E080935700E895C0E0D1E069D08993C2 -:107ED000809102028150809302028823B9F778D002 -:107EE00007B600FCFDCF4091000250910102A0E0D6 -:107EF000B1E02C9130E011968C91119790E0982F81 -:107F00008827822B932B1296FA010C01D0925700EE -:107F1000E89511244E5F5F4FF1E0A038BF0749F7A5 -:107F2000E0910002F0910102E0925700E89507B657 -:107F300000FCFDCFF0925700E89527C08437B9F4D4 -:107F400037D046D0E0910002F09101023196F093D3 -:107F50000102E09300023197E4918E2F19D08091B5 -:107F60000202815080930202882361F70EC0853798 -:107F700039F42ED08EE10CD085E90AD08FE096CF6F -:107F8000813511F488E019D023D080E101D063CF8E -:107F9000982F8091C00085FFFCCF9093C600089574 -:107FA000A8958091C00087FFFCCF8091C6000895FE -:107FB000F7DFF6DF80930202F3CFE0E6F0E098E12E -:107FC00090838083089580E0F8DFEE27FF270994EF -:107FD000E7DF803209F0F7DF84E1DACF1F93182F53 -:0C7FE000DFDF1150E9F7F4DF1F91089576 -:0400000300007E007B -:00000001FF diff --git a/build/linux/work/hardware/arduino/bootloaders/optiboot/optiboot_atmega328.hex b/build/linux/work/hardware/arduino/bootloaders/optiboot/optiboot_atmega328.hex deleted file mode 100644 index a219f0833..000000000 --- a/build/linux/work/hardware/arduino/bootloaders/optiboot/optiboot_atmega328.hex +++ /dev/null @@ -1,35 +0,0 @@ -:107E0000112484B714BE81FFF0D085E080938100F7 -:107E100082E08093C00088E18093C10086E0809377 -:107E2000C20080E18093C4008EE0C9D0259A86E02C -:107E300020E33CEF91E0309385002093840096BBD3 -:107E4000B09BFECF1D9AA8958150A9F7CC24DD24C4 -:107E500088248394B5E0AB2EA1E19A2EF3E0BF2EE7 -:107E6000A2D0813461F49FD0082FAFD0023811F036 -:107E7000013811F484E001C083E08DD089C08234E0 -:107E800011F484E103C0853419F485E0A6D080C0E4 -:107E9000853579F488D0E82EFF2485D0082F10E0AE -:107EA000102F00270E291F29000F111F8ED06801E7 -:107EB0006FC0863521F484E090D080E0DECF843638 -:107EC00009F040C070D06FD0082F6DD080E0C81688 -:107ED00080E7D80618F4F601B7BEE895C0E0D1E017 -:107EE00062D089930C17E1F7F0E0CF16F0E7DF06D8 -:107EF00018F0F601B7BEE89568D007B600FCFDCFD4 -:107F0000A601A0E0B1E02C9130E011968C91119780 -:107F100090E0982F8827822B932B1296FA010C0160 -:107F200087BEE89511244E5F5F4FF1E0A038BF0790 -:107F300051F7F601A7BEE89507B600FCFDCF97BE46 -:107F4000E89526C08437B1F42ED02DD0F82E2BD052 -:107F50003CD0F601EF2C8F010F5F1F4F84911BD097 -:107F6000EA94F801C1F70894C11CD11CFA94CF0C13 -:107F7000D11C0EC0853739F428D08EE10CD085E9AC -:107F80000AD08FE07ACF813511F488E018D01DD067 -:107F900080E101D065CF982F8091C00085FFFCCF94 -:107FA0009093C60008958091C00087FFFCCF809118 -:107FB000C00084FD01C0A8958091C6000895E0E648 -:107FC000F0E098E1908380830895EDDF803219F02E -:107FD00088E0F5DFFFCF84E1DECF1F93182FE3DFCA -:107FE0001150E9F7F2DF1F91089580E0E8DFEE27F6 -:047FF000FF270994CA -:027FFE00040479 -:0400000300007E007B -:00000001FF diff --git a/build/linux/work/hardware/arduino/bootloaders/optiboot/optiboot_atmega328.lst b/build/linux/work/hardware/arduino/bootloaders/optiboot/optiboot_atmega328.lst deleted file mode 100644 index d9dd4cc20..000000000 --- a/build/linux/work/hardware/arduino/bootloaders/optiboot/optiboot_atmega328.lst +++ /dev/null @@ -1,598 +0,0 @@ - -optiboot_atmega328.elf: file format elf32-avr - -Sections: -Idx Name Size VMA LMA File off Algn - 0 .text 000001f4 00007e00 00007e00 00000054 2**1 - CONTENTS, ALLOC, LOAD, READONLY, CODE - 1 .version 00000002 00007ffe 00007ffe 00000248 2**0 - CONTENTS, READONLY - 2 .debug_aranges 00000028 00000000 00000000 0000024a 2**0 - CONTENTS, READONLY, DEBUGGING - 3 .debug_pubnames 0000005f 00000000 00000000 00000272 2**0 - CONTENTS, READONLY, DEBUGGING - 4 .debug_info 000002a8 00000000 00000000 000002d1 2**0 - CONTENTS, READONLY, DEBUGGING - 5 .debug_abbrev 00000178 00000000 00000000 00000579 2**0 - CONTENTS, READONLY, DEBUGGING - 6 .debug_line 00000488 00000000 00000000 000006f1 2**0 - CONTENTS, READONLY, DEBUGGING - 7 .debug_frame 00000080 00000000 00000000 00000b7c 2**2 - CONTENTS, READONLY, DEBUGGING - 8 .debug_str 0000014f 00000000 00000000 00000bfc 2**0 - CONTENTS, READONLY, DEBUGGING - 9 .debug_loc 000002d8 00000000 00000000 00000d4b 2**0 - CONTENTS, READONLY, DEBUGGING - 10 .debug_ranges 00000078 00000000 00000000 00001023 2**0 - CONTENTS, READONLY, DEBUGGING - -Disassembly of section .text: - -00007e00
    : -#define rstVect (*(uint16_t*)(RAMSTART+SPM_PAGESIZE*2+4)) -#define wdtVect (*(uint16_t*)(RAMSTART+SPM_PAGESIZE*2+6)) -#endif - -/* main program starts here */ -int main(void) { - 7e00: 11 24 eor r1, r1 -#ifdef __AVR_ATmega8__ - SP=RAMEND; // This is done by hardware reset -#endif - - // Adaboot no-wait mod - ch = MCUSR; - 7e02: 84 b7 in r24, 0x34 ; 52 - MCUSR = 0; - 7e04: 14 be out 0x34, r1 ; 52 - if (!(ch & _BV(EXTRF))) appStart(); - 7e06: 81 ff sbrs r24, 1 - 7e08: f0 d0 rcall .+480 ; 0x7fea - -#if LED_START_FLASHES > 0 - // Set up Timer 1 for timeout counter - TCCR1B = _BV(CS12) | _BV(CS10); // div 1024 - 7e0a: 85 e0 ldi r24, 0x05 ; 5 - 7e0c: 80 93 81 00 sts 0x0081, r24 - UCSRA = _BV(U2X); //Double speed mode USART - UCSRB = _BV(RXEN) | _BV(TXEN); // enable Rx & Tx - UCSRC = _BV(URSEL) | _BV(UCSZ1) | _BV(UCSZ0); // config USART; 8N1 - UBRRL = (uint8_t)( (F_CPU + BAUD_RATE * 4L) / (BAUD_RATE * 8L) - 1 ); -#else - UCSR0A = _BV(U2X0); //Double speed mode USART0 - 7e10: 82 e0 ldi r24, 0x02 ; 2 - 7e12: 80 93 c0 00 sts 0x00C0, r24 - UCSR0B = _BV(RXEN0) | _BV(TXEN0); - 7e16: 88 e1 ldi r24, 0x18 ; 24 - 7e18: 80 93 c1 00 sts 0x00C1, r24 - UCSR0C = _BV(UCSZ00) | _BV(UCSZ01); - 7e1c: 86 e0 ldi r24, 0x06 ; 6 - 7e1e: 80 93 c2 00 sts 0x00C2, r24 - UBRR0L = (uint8_t)( (F_CPU + BAUD_RATE * 4L) / (BAUD_RATE * 8L) - 1 ); - 7e22: 80 e1 ldi r24, 0x10 ; 16 - 7e24: 80 93 c4 00 sts 0x00C4, r24 -#endif -#endif - - // Set up watchdog to trigger after 500ms - watchdogConfig(WATCHDOG_1S); - 7e28: 8e e0 ldi r24, 0x0E ; 14 - 7e2a: c9 d0 rcall .+402 ; 0x7fbe - - /* Set LED pin as output */ - LED_DDR |= _BV(LED); - 7e2c: 25 9a sbi 0x04, 5 ; 4 - 7e2e: 86 e0 ldi r24, 0x06 ; 6 -} - -#if LED_START_FLASHES > 0 -void flash_led(uint8_t count) { - do { - TCNT1 = -(F_CPU/(1024*16)); - 7e30: 20 e3 ldi r18, 0x30 ; 48 - 7e32: 3c ef ldi r19, 0xFC ; 252 - TIFR1 = _BV(TOV1); - 7e34: 91 e0 ldi r25, 0x01 ; 1 -} - -#if LED_START_FLASHES > 0 -void flash_led(uint8_t count) { - do { - TCNT1 = -(F_CPU/(1024*16)); - 7e36: 30 93 85 00 sts 0x0085, r19 - 7e3a: 20 93 84 00 sts 0x0084, r18 - TIFR1 = _BV(TOV1); - 7e3e: 96 bb out 0x16, r25 ; 22 - while(!(TIFR1 & _BV(TOV1))); - 7e40: b0 9b sbis 0x16, 0 ; 22 - 7e42: fe cf rjmp .-4 ; 0x7e40 -#ifdef __AVR_ATmega8__ - LED_PORT ^= _BV(LED); -#else - LED_PIN |= _BV(LED); - 7e44: 1d 9a sbi 0x03, 5 ; 3 -} -#endif - -// Watchdog functions. These are only safe with interrupts turned off. -void watchdogReset() { - __asm__ __volatile__ ( - 7e46: a8 95 wdr - LED_PORT ^= _BV(LED); -#else - LED_PIN |= _BV(LED); -#endif - watchdogReset(); - } while (--count); - 7e48: 81 50 subi r24, 0x01 ; 1 - 7e4a: a9 f7 brne .-22 ; 0x7e36 - 7e4c: cc 24 eor r12, r12 - 7e4e: dd 24 eor r13, r13 - ch = SPM_PAGESIZE / 2; - do { - uint16_t a; - a = *bufPtr++; - a |= (*bufPtr++) << 8; - __boot_page_fill_short((uint16_t)(void*)addrPtr,a); - 7e50: 88 24 eor r8, r8 - 7e52: 83 94 inc r8 - addrPtr += 2; - } while (--ch); - - // Write from programming buffer - __boot_page_write_short((uint16_t)(void*)address); - 7e54: b5 e0 ldi r27, 0x05 ; 5 - 7e56: ab 2e mov r10, r27 - boot_spm_busy_wait(); - -#if defined(RWWSRE) - // Reenable read access to flash - boot_rww_enable(); - 7e58: a1 e1 ldi r26, 0x11 ; 17 - 7e5a: 9a 2e mov r9, r26 - do *bufPtr++ = getch(); - while (--length); - - // If we are in NRWW section, page erase has to be delayed until now. - // Todo: Take RAMPZ into account - if (address >= NRWWSTART) __boot_page_erase_short((uint16_t)(void*)address); - 7e5c: f3 e0 ldi r31, 0x03 ; 3 - 7e5e: bf 2e mov r11, r31 -#endif - - /* Forever loop */ - for (;;) { - /* get character from UART */ - ch = getch(); - 7e60: a2 d0 rcall .+324 ; 0x7fa6 - - if(ch == STK_GET_PARAMETER) { - 7e62: 81 34 cpi r24, 0x41 ; 65 - 7e64: 61 f4 brne .+24 ; 0x7e7e - unsigned char which = getch(); - 7e66: 9f d0 rcall .+318 ; 0x7fa6 - 7e68: 08 2f mov r16, r24 - verifySpace(); - 7e6a: af d0 rcall .+350 ; 0x7fca - if (which == 0x82) { - 7e6c: 02 38 cpi r16, 0x82 ; 130 - 7e6e: 11 f0 breq .+4 ; 0x7e74 - /* - * Send optiboot version as "minor SW version" - */ - putch(OPTIBOOT_MINVER); - } else if (which == 0x81) { - 7e70: 01 38 cpi r16, 0x81 ; 129 - 7e72: 11 f4 brne .+4 ; 0x7e78 - putch(OPTIBOOT_MAJVER); - 7e74: 84 e0 ldi r24, 0x04 ; 4 - 7e76: 01 c0 rjmp .+2 ; 0x7e7a - } else { - /* - * GET PARAMETER returns a generic 0x03 reply for - * other parameters - enough to keep Avrdude happy - */ - putch(0x03); - 7e78: 83 e0 ldi r24, 0x03 ; 3 - 7e7a: 8d d0 rcall .+282 ; 0x7f96 - 7e7c: 89 c0 rjmp .+274 ; 0x7f90 - } - } - else if(ch == STK_SET_DEVICE) { - 7e7e: 82 34 cpi r24, 0x42 ; 66 - 7e80: 11 f4 brne .+4 ; 0x7e86 - // SET DEVICE is ignored - getNch(20); - 7e82: 84 e1 ldi r24, 0x14 ; 20 - 7e84: 03 c0 rjmp .+6 ; 0x7e8c - } - else if(ch == STK_SET_DEVICE_EXT) { - 7e86: 85 34 cpi r24, 0x45 ; 69 - 7e88: 19 f4 brne .+6 ; 0x7e90 - // SET DEVICE EXT is ignored - getNch(5); - 7e8a: 85 e0 ldi r24, 0x05 ; 5 - 7e8c: a6 d0 rcall .+332 ; 0x7fda - 7e8e: 80 c0 rjmp .+256 ; 0x7f90 - } - else if(ch == STK_LOAD_ADDRESS) { - 7e90: 85 35 cpi r24, 0x55 ; 85 - 7e92: 79 f4 brne .+30 ; 0x7eb2 - // LOAD ADDRESS - uint16_t newAddress; - newAddress = getch(); - 7e94: 88 d0 rcall .+272 ; 0x7fa6 - newAddress = (newAddress & 0xff) | (getch() << 8); - 7e96: e8 2e mov r14, r24 - 7e98: ff 24 eor r15, r15 - 7e9a: 85 d0 rcall .+266 ; 0x7fa6 - 7e9c: 08 2f mov r16, r24 - 7e9e: 10 e0 ldi r17, 0x00 ; 0 - 7ea0: 10 2f mov r17, r16 - 7ea2: 00 27 eor r16, r16 - 7ea4: 0e 29 or r16, r14 - 7ea6: 1f 29 or r17, r15 -#ifdef RAMPZ - // Transfer top bit to RAMPZ - RAMPZ = (newAddress & 0x8000) ? 1 : 0; -#endif - newAddress += newAddress; // Convert from word address to byte address - 7ea8: 00 0f add r16, r16 - 7eaa: 11 1f adc r17, r17 - address = newAddress; - verifySpace(); - 7eac: 8e d0 rcall .+284 ; 0x7fca - 7eae: 68 01 movw r12, r16 - 7eb0: 6f c0 rjmp .+222 ; 0x7f90 - } - else if(ch == STK_UNIVERSAL) { - 7eb2: 86 35 cpi r24, 0x56 ; 86 - 7eb4: 21 f4 brne .+8 ; 0x7ebe - // UNIVERSAL command is ignored - getNch(4); - 7eb6: 84 e0 ldi r24, 0x04 ; 4 - 7eb8: 90 d0 rcall .+288 ; 0x7fda - putch(0x00); - 7eba: 80 e0 ldi r24, 0x00 ; 0 - 7ebc: de cf rjmp .-68 ; 0x7e7a - } - /* Write memory, length is big endian and is in bytes */ - else if(ch == STK_PROG_PAGE) { - 7ebe: 84 36 cpi r24, 0x64 ; 100 - 7ec0: 09 f0 breq .+2 ; 0x7ec4 - 7ec2: 40 c0 rjmp .+128 ; 0x7f44 - // PROGRAM PAGE - we support flash programming only, not EEPROM - uint8_t *bufPtr; - uint16_t addrPtr; - - getch(); /* getlen() */ - 7ec4: 70 d0 rcall .+224 ; 0x7fa6 - length = getch(); - 7ec6: 6f d0 rcall .+222 ; 0x7fa6 - 7ec8: 08 2f mov r16, r24 - getch(); - 7eca: 6d d0 rcall .+218 ; 0x7fa6 - - // If we are in RWW section, immediately start page erase - if (address < NRWWSTART) __boot_page_erase_short((uint16_t)(void*)address); - 7ecc: 80 e0 ldi r24, 0x00 ; 0 - 7ece: c8 16 cp r12, r24 - 7ed0: 80 e7 ldi r24, 0x70 ; 112 - 7ed2: d8 06 cpc r13, r24 - 7ed4: 18 f4 brcc .+6 ; 0x7edc - 7ed6: f6 01 movw r30, r12 - 7ed8: b7 be out 0x37, r11 ; 55 - 7eda: e8 95 spm - 7edc: c0 e0 ldi r28, 0x00 ; 0 - 7ede: d1 e0 ldi r29, 0x01 ; 1 - - // While that is going on, read in page contents - bufPtr = buff; - do *bufPtr++ = getch(); - 7ee0: 62 d0 rcall .+196 ; 0x7fa6 - 7ee2: 89 93 st Y+, r24 - while (--length); - 7ee4: 0c 17 cp r16, r28 - 7ee6: e1 f7 brne .-8 ; 0x7ee0 - - // If we are in NRWW section, page erase has to be delayed until now. - // Todo: Take RAMPZ into account - if (address >= NRWWSTART) __boot_page_erase_short((uint16_t)(void*)address); - 7ee8: f0 e0 ldi r31, 0x00 ; 0 - 7eea: cf 16 cp r12, r31 - 7eec: f0 e7 ldi r31, 0x70 ; 112 - 7eee: df 06 cpc r13, r31 - 7ef0: 18 f0 brcs .+6 ; 0x7ef8 - 7ef2: f6 01 movw r30, r12 - 7ef4: b7 be out 0x37, r11 ; 55 - 7ef6: e8 95 spm - - // Read command terminator, start reply - verifySpace(); - 7ef8: 68 d0 rcall .+208 ; 0x7fca - - // If only a partial page is to be programmed, the erase might not be complete. - // So check that here - boot_spm_busy_wait(); - 7efa: 07 b6 in r0, 0x37 ; 55 - 7efc: 00 fc sbrc r0, 0 - 7efe: fd cf rjmp .-6 ; 0x7efa - 7f00: a6 01 movw r20, r12 - 7f02: a0 e0 ldi r26, 0x00 ; 0 - 7f04: b1 e0 ldi r27, 0x01 ; 1 - bufPtr = buff; - addrPtr = (uint16_t)(void*)address; - ch = SPM_PAGESIZE / 2; - do { - uint16_t a; - a = *bufPtr++; - 7f06: 2c 91 ld r18, X - 7f08: 30 e0 ldi r19, 0x00 ; 0 - a |= (*bufPtr++) << 8; - 7f0a: 11 96 adiw r26, 0x01 ; 1 - 7f0c: 8c 91 ld r24, X - 7f0e: 11 97 sbiw r26, 0x01 ; 1 - 7f10: 90 e0 ldi r25, 0x00 ; 0 - 7f12: 98 2f mov r25, r24 - 7f14: 88 27 eor r24, r24 - 7f16: 82 2b or r24, r18 - 7f18: 93 2b or r25, r19 -#define rstVect (*(uint16_t*)(RAMSTART+SPM_PAGESIZE*2+4)) -#define wdtVect (*(uint16_t*)(RAMSTART+SPM_PAGESIZE*2+6)) -#endif - -/* main program starts here */ -int main(void) { - 7f1a: 12 96 adiw r26, 0x02 ; 2 - ch = SPM_PAGESIZE / 2; - do { - uint16_t a; - a = *bufPtr++; - a |= (*bufPtr++) << 8; - __boot_page_fill_short((uint16_t)(void*)addrPtr,a); - 7f1c: fa 01 movw r30, r20 - 7f1e: 0c 01 movw r0, r24 - 7f20: 87 be out 0x37, r8 ; 55 - 7f22: e8 95 spm - 7f24: 11 24 eor r1, r1 - addrPtr += 2; - 7f26: 4e 5f subi r20, 0xFE ; 254 - 7f28: 5f 4f sbci r21, 0xFF ; 255 - } while (--ch); - 7f2a: f1 e0 ldi r31, 0x01 ; 1 - 7f2c: a0 38 cpi r26, 0x80 ; 128 - 7f2e: bf 07 cpc r27, r31 - 7f30: 51 f7 brne .-44 ; 0x7f06 - - // Write from programming buffer - __boot_page_write_short((uint16_t)(void*)address); - 7f32: f6 01 movw r30, r12 - 7f34: a7 be out 0x37, r10 ; 55 - 7f36: e8 95 spm - boot_spm_busy_wait(); - 7f38: 07 b6 in r0, 0x37 ; 55 - 7f3a: 00 fc sbrc r0, 0 - 7f3c: fd cf rjmp .-6 ; 0x7f38 - -#if defined(RWWSRE) - // Reenable read access to flash - boot_rww_enable(); - 7f3e: 97 be out 0x37, r9 ; 55 - 7f40: e8 95 spm - 7f42: 26 c0 rjmp .+76 ; 0x7f90 -#endif - - } - /* Read memory block mode, length is big endian. */ - else if(ch == STK_READ_PAGE) { - 7f44: 84 37 cpi r24, 0x74 ; 116 - 7f46: b1 f4 brne .+44 ; 0x7f74 - // READ PAGE - we only read flash - getch(); /* getlen() */ - 7f48: 2e d0 rcall .+92 ; 0x7fa6 - length = getch(); - 7f4a: 2d d0 rcall .+90 ; 0x7fa6 - 7f4c: f8 2e mov r15, r24 - getch(); - 7f4e: 2b d0 rcall .+86 ; 0x7fa6 - - verifySpace(); - 7f50: 3c d0 rcall .+120 ; 0x7fca - 7f52: f6 01 movw r30, r12 - 7f54: ef 2c mov r14, r15 - putch(result); - address++; - } - while (--length); -#else - do putch(pgm_read_byte_near(address++)); - 7f56: 8f 01 movw r16, r30 - 7f58: 0f 5f subi r16, 0xFF ; 255 - 7f5a: 1f 4f sbci r17, 0xFF ; 255 - 7f5c: 84 91 lpm r24, Z+ - 7f5e: 1b d0 rcall .+54 ; 0x7f96 - while (--length); - 7f60: ea 94 dec r14 - 7f62: f8 01 movw r30, r16 - 7f64: c1 f7 brne .-16 ; 0x7f56 -#define rstVect (*(uint16_t*)(RAMSTART+SPM_PAGESIZE*2+4)) -#define wdtVect (*(uint16_t*)(RAMSTART+SPM_PAGESIZE*2+6)) -#endif - -/* main program starts here */ -int main(void) { - 7f66: 08 94 sec - 7f68: c1 1c adc r12, r1 - 7f6a: d1 1c adc r13, r1 - 7f6c: fa 94 dec r15 - 7f6e: cf 0c add r12, r15 - 7f70: d1 1c adc r13, r1 - 7f72: 0e c0 rjmp .+28 ; 0x7f90 -#endif -#endif - } - - /* Get device signature bytes */ - else if(ch == STK_READ_SIGN) { - 7f74: 85 37 cpi r24, 0x75 ; 117 - 7f76: 39 f4 brne .+14 ; 0x7f86 - // READ SIGN - return what Avrdude wants to hear - verifySpace(); - 7f78: 28 d0 rcall .+80 ; 0x7fca - putch(SIGNATURE_0); - 7f7a: 8e e1 ldi r24, 0x1E ; 30 - 7f7c: 0c d0 rcall .+24 ; 0x7f96 - putch(SIGNATURE_1); - 7f7e: 85 e9 ldi r24, 0x95 ; 149 - 7f80: 0a d0 rcall .+20 ; 0x7f96 - putch(SIGNATURE_2); - 7f82: 8f e0 ldi r24, 0x0F ; 15 - 7f84: 7a cf rjmp .-268 ; 0x7e7a - } - else if (ch == 'Q') { - 7f86: 81 35 cpi r24, 0x51 ; 81 - 7f88: 11 f4 brne .+4 ; 0x7f8e - // Adaboot no-wait mod - watchdogConfig(WATCHDOG_16MS); - 7f8a: 88 e0 ldi r24, 0x08 ; 8 - 7f8c: 18 d0 rcall .+48 ; 0x7fbe - verifySpace(); - } - else { - // This covers the response to commands like STK_ENTER_PROGMODE - verifySpace(); - 7f8e: 1d d0 rcall .+58 ; 0x7fca - } - putch(STK_OK); - 7f90: 80 e1 ldi r24, 0x10 ; 16 - 7f92: 01 d0 rcall .+2 ; 0x7f96 - 7f94: 65 cf rjmp .-310 ; 0x7e60 - -00007f96 : - } -} - -void putch(char ch) { - 7f96: 98 2f mov r25, r24 -#ifndef SOFT_UART - while (!(UCSR0A & _BV(UDRE0))); - 7f98: 80 91 c0 00 lds r24, 0x00C0 - 7f9c: 85 ff sbrs r24, 5 - 7f9e: fc cf rjmp .-8 ; 0x7f98 - UDR0 = ch; - 7fa0: 90 93 c6 00 sts 0x00C6, r25 - [uartBit] "I" (UART_TX_BIT) - : - "r25" - ); -#endif -} - 7fa4: 08 95 ret - -00007fa6 : - [uartBit] "I" (UART_RX_BIT) - : - "r25" -); -#else - while(!(UCSR0A & _BV(RXC0))) - 7fa6: 80 91 c0 00 lds r24, 0x00C0 - 7faa: 87 ff sbrs r24, 7 - 7fac: fc cf rjmp .-8 ; 0x7fa6 - ; - if (!(UCSR0A & _BV(FE0))) { - 7fae: 80 91 c0 00 lds r24, 0x00C0 - 7fb2: 84 fd sbrc r24, 4 - 7fb4: 01 c0 rjmp .+2 ; 0x7fb8 -} -#endif - -// Watchdog functions. These are only safe with interrupts turned off. -void watchdogReset() { - __asm__ __volatile__ ( - 7fb6: a8 95 wdr - * don't care that an invalid char is returned...) - */ - watchdogReset(); - } - - ch = UDR0; - 7fb8: 80 91 c6 00 lds r24, 0x00C6 - LED_PIN |= _BV(LED); -#endif -#endif - - return ch; -} - 7fbc: 08 95 ret - -00007fbe : - "wdr\n" - ); -} - -void watchdogConfig(uint8_t x) { - WDTCSR = _BV(WDCE) | _BV(WDE); - 7fbe: e0 e6 ldi r30, 0x60 ; 96 - 7fc0: f0 e0 ldi r31, 0x00 ; 0 - 7fc2: 98 e1 ldi r25, 0x18 ; 24 - 7fc4: 90 83 st Z, r25 - WDTCSR = x; - 7fc6: 80 83 st Z, r24 -} - 7fc8: 08 95 ret - -00007fca : - do getch(); while (--count); - verifySpace(); -} - -void verifySpace() { - if (getch() != CRC_EOP) { - 7fca: ed df rcall .-38 ; 0x7fa6 - 7fcc: 80 32 cpi r24, 0x20 ; 32 - 7fce: 19 f0 breq .+6 ; 0x7fd6 - watchdogConfig(WATCHDOG_16MS); // shorten WD timeout - 7fd0: 88 e0 ldi r24, 0x08 ; 8 - 7fd2: f5 df rcall .-22 ; 0x7fbe - 7fd4: ff cf rjmp .-2 ; 0x7fd4 - while (1) // and busy-loop so that WD causes - ; // a reset and app start. - } - putch(STK_INSYNC); - 7fd6: 84 e1 ldi r24, 0x14 ; 20 -} - 7fd8: de cf rjmp .-68 ; 0x7f96 - -00007fda : - ::[count] "M" (UART_B_VALUE) - ); -} -#endif - -void getNch(uint8_t count) { - 7fda: 1f 93 push r17 - 7fdc: 18 2f mov r17, r24 - do getch(); while (--count); - 7fde: e3 df rcall .-58 ; 0x7fa6 - 7fe0: 11 50 subi r17, 0x01 ; 1 - 7fe2: e9 f7 brne .-6 ; 0x7fde - verifySpace(); - 7fe4: f2 df rcall .-28 ; 0x7fca -} - 7fe6: 1f 91 pop r17 - 7fe8: 08 95 ret - -00007fea : - WDTCSR = _BV(WDCE) | _BV(WDE); - WDTCSR = x; -} - -void appStart() { - watchdogConfig(WATCHDOG_OFF); - 7fea: 80 e0 ldi r24, 0x00 ; 0 - 7fec: e8 df rcall .-48 ; 0x7fbe - __asm__ __volatile__ ( - 7fee: ee 27 eor r30, r30 - 7ff0: ff 27 eor r31, r31 - 7ff2: 09 94 ijmp diff --git a/build/linux/work/hardware/arduino/bootloaders/optiboot/optiboot_atmega8.hex b/build/linux/work/hardware/arduino/bootloaders/optiboot/optiboot_atmega8.hex deleted file mode 100644 index b04f27685..000000000 --- a/build/linux/work/hardware/arduino/bootloaders/optiboot/optiboot_atmega8.hex +++ /dev/null @@ -1,33 +0,0 @@ -:101E000011248FE594E09EBF8DBF84B714BE81FF7F -:101E1000E2D085E08EBD82E08BB988E18AB986E8A0 -:101E200080BD80E189B98EE0C2D0BD9A96E020E302 -:101E30003CEF54E040E23DBD2CBD58BF08B602FE69 -:101E4000FDCF88B3842788BBA8959150A1F7CC24F7 -:101E5000DD2488248394B5E0AB2EA1E19A2EF3E033 -:101E6000BF2E9ED0813461F49BD0082FA4D00238BD -:101E700011F0013811F484E001C083E08DD089C0F5 -:101E8000823411F484E103C0853419F485E09BD0D9 -:101E900080C0853579F484D0E82EFF2481D0082FC6 -:101EA00010E0102F00270E291F29000F111F83D0CB -:101EB00068016FC0863521F484E085D080E0DECFF4 -:101EC000843609F040C06CD06BD0082F69D080E018 -:101ED000C81688E1D80618F4F601B7BEE895C0E048 -:101EE000D1E05ED089930C17E1F7F0E0CF16F8E16E -:101EF000DF0618F0F601B7BEE8955DD007B600FC26 -:101F0000FDCFA601A0E0B1E02C9130E011968C91BC -:101F1000119790E0982F8827822B932B1296FA0125 -:101F20000C0187BEE89511244E5F5F4FF1E0A034AD -:101F3000BF0751F7F601A7BEE89507B600FCFDCF35 -:101F400097BEE89526C08437B1F42AD029D0F82E60 -:101F500027D031D0F601EF2C8F010F5F1F4F8491F6 -:101F60001BD0EA94F801C1F70894C11CD11CFA9463 -:101F7000CF0CD11C0EC0853739F41DD08EE10CD0AA -:101F800083E90AD087E07ACF813511F488E00FD059 -:101F900012D080E101D065CF5D9BFECF8CB9089552 -:101FA0005F9BFECF5C9901C0A8958CB1089598E124 -:101FB00091BD81BD0895F4DF803219F088E0F7DF2C -:101FC000FFCF84E1E9CF1F93182FEADF1150E9F723 -:101FD000F2DF1F91089580E0EADFEE27FF270994E2 -:021FFE000404D9 -:0400000300001E00DB -:00000001FF diff --git a/build/linux/work/hardware/arduino/bootloaders/optiboot/optiboot_atmega8.lst b/build/linux/work/hardware/arduino/bootloaders/optiboot/optiboot_atmega8.lst deleted file mode 100644 index d92189582..000000000 --- a/build/linux/work/hardware/arduino/bootloaders/optiboot/optiboot_atmega8.lst +++ /dev/null @@ -1,604 +0,0 @@ - -optiboot_atmega8.elf: file format elf32-avr - -Sections: -Idx Name Size VMA LMA File off Algn - 0 .text 000001e0 00001e00 00001e00 00000054 2**1 - CONTENTS, ALLOC, LOAD, READONLY, CODE - 1 .version 00000002 00001ffe 00001ffe 00000234 2**0 - CONTENTS, READONLY - 2 .debug_aranges 00000028 00000000 00000000 00000236 2**0 - CONTENTS, READONLY, DEBUGGING - 3 .debug_pubnames 0000005f 00000000 00000000 0000025e 2**0 - CONTENTS, READONLY, DEBUGGING - 4 .debug_info 000002a6 00000000 00000000 000002bd 2**0 - CONTENTS, READONLY, DEBUGGING - 5 .debug_abbrev 00000169 00000000 00000000 00000563 2**0 - CONTENTS, READONLY, DEBUGGING - 6 .debug_line 00000498 00000000 00000000 000006cc 2**0 - CONTENTS, READONLY, DEBUGGING - 7 .debug_frame 00000080 00000000 00000000 00000b64 2**2 - CONTENTS, READONLY, DEBUGGING - 8 .debug_str 0000014f 00000000 00000000 00000be4 2**0 - CONTENTS, READONLY, DEBUGGING - 9 .debug_loc 000002ba 00000000 00000000 00000d33 2**0 - CONTENTS, READONLY, DEBUGGING - 10 .debug_ranges 00000078 00000000 00000000 00000fed 2**0 - CONTENTS, READONLY, DEBUGGING - -Disassembly of section .text: - -00001e00
    : -#define rstVect (*(uint16_t*)(RAMSTART+SPM_PAGESIZE*2+4)) -#define wdtVect (*(uint16_t*)(RAMSTART+SPM_PAGESIZE*2+6)) -#endif - -/* main program starts here */ -int main(void) { - 1e00: 11 24 eor r1, r1 - // - // If not, uncomment the following instructions: - // cli(); - asm volatile ("clr __zero_reg__"); -#ifdef __AVR_ATmega8__ - SP=RAMEND; // This is done by hardware reset - 1e02: 8f e5 ldi r24, 0x5F ; 95 - 1e04: 94 e0 ldi r25, 0x04 ; 4 - 1e06: 9e bf out 0x3e, r25 ; 62 - 1e08: 8d bf out 0x3d, r24 ; 61 -#endif - - // Adaboot no-wait mod - ch = MCUSR; - 1e0a: 84 b7 in r24, 0x34 ; 52 - MCUSR = 0; - 1e0c: 14 be out 0x34, r1 ; 52 - if (!(ch & _BV(EXTRF))) appStart(); - 1e0e: 81 ff sbrs r24, 1 - 1e10: e2 d0 rcall .+452 ; 0x1fd6 - -#if LED_START_FLASHES > 0 - // Set up Timer 1 for timeout counter - TCCR1B = _BV(CS12) | _BV(CS10); // div 1024 - 1e12: 85 e0 ldi r24, 0x05 ; 5 - 1e14: 8e bd out 0x2e, r24 ; 46 -#endif -#ifndef SOFT_UART -#ifdef __AVR_ATmega8__ - UCSRA = _BV(U2X); //Double speed mode USART - 1e16: 82 e0 ldi r24, 0x02 ; 2 - 1e18: 8b b9 out 0x0b, r24 ; 11 - UCSRB = _BV(RXEN) | _BV(TXEN); // enable Rx & Tx - 1e1a: 88 e1 ldi r24, 0x18 ; 24 - 1e1c: 8a b9 out 0x0a, r24 ; 10 - UCSRC = _BV(URSEL) | _BV(UCSZ1) | _BV(UCSZ0); // config USART; 8N1 - 1e1e: 86 e8 ldi r24, 0x86 ; 134 - 1e20: 80 bd out 0x20, r24 ; 32 - UBRRL = (uint8_t)( (F_CPU + BAUD_RATE * 4L) / (BAUD_RATE * 8L) - 1 ); - 1e22: 80 e1 ldi r24, 0x10 ; 16 - 1e24: 89 b9 out 0x09, r24 ; 9 - UBRR0L = (uint8_t)( (F_CPU + BAUD_RATE * 4L) / (BAUD_RATE * 8L) - 1 ); -#endif -#endif - - // Set up watchdog to trigger after 500ms - watchdogConfig(WATCHDOG_1S); - 1e26: 8e e0 ldi r24, 0x0E ; 14 - 1e28: c2 d0 rcall .+388 ; 0x1fae - - /* Set LED pin as output */ - LED_DDR |= _BV(LED); - 1e2a: bd 9a sbi 0x17, 5 ; 23 - 1e2c: 96 e0 ldi r25, 0x06 ; 6 -} - -#if LED_START_FLASHES > 0 -void flash_led(uint8_t count) { - do { - TCNT1 = -(F_CPU/(1024*16)); - 1e2e: 20 e3 ldi r18, 0x30 ; 48 - 1e30: 3c ef ldi r19, 0xFC ; 252 - TIFR1 = _BV(TOV1); - 1e32: 54 e0 ldi r21, 0x04 ; 4 - while(!(TIFR1 & _BV(TOV1))); -#ifdef __AVR_ATmega8__ - LED_PORT ^= _BV(LED); - 1e34: 40 e2 ldi r20, 0x20 ; 32 -} - -#if LED_START_FLASHES > 0 -void flash_led(uint8_t count) { - do { - TCNT1 = -(F_CPU/(1024*16)); - 1e36: 3d bd out 0x2d, r19 ; 45 - 1e38: 2c bd out 0x2c, r18 ; 44 - TIFR1 = _BV(TOV1); - 1e3a: 58 bf out 0x38, r21 ; 56 - while(!(TIFR1 & _BV(TOV1))); - 1e3c: 08 b6 in r0, 0x38 ; 56 - 1e3e: 02 fe sbrs r0, 2 - 1e40: fd cf rjmp .-6 ; 0x1e3c -#ifdef __AVR_ATmega8__ - LED_PORT ^= _BV(LED); - 1e42: 88 b3 in r24, 0x18 ; 24 - 1e44: 84 27 eor r24, r20 - 1e46: 88 bb out 0x18, r24 ; 24 -} -#endif - -// Watchdog functions. These are only safe with interrupts turned off. -void watchdogReset() { - __asm__ __volatile__ ( - 1e48: a8 95 wdr - LED_PORT ^= _BV(LED); -#else - LED_PIN |= _BV(LED); -#endif - watchdogReset(); - } while (--count); - 1e4a: 91 50 subi r25, 0x01 ; 1 - 1e4c: a1 f7 brne .-24 ; 0x1e36 - 1e4e: cc 24 eor r12, r12 - 1e50: dd 24 eor r13, r13 - ch = SPM_PAGESIZE / 2; - do { - uint16_t a; - a = *bufPtr++; - a |= (*bufPtr++) << 8; - __boot_page_fill_short((uint16_t)(void*)addrPtr,a); - 1e52: 88 24 eor r8, r8 - 1e54: 83 94 inc r8 - addrPtr += 2; - } while (--ch); - - // Write from programming buffer - __boot_page_write_short((uint16_t)(void*)address); - 1e56: b5 e0 ldi r27, 0x05 ; 5 - 1e58: ab 2e mov r10, r27 - boot_spm_busy_wait(); - -#if defined(RWWSRE) - // Reenable read access to flash - boot_rww_enable(); - 1e5a: a1 e1 ldi r26, 0x11 ; 17 - 1e5c: 9a 2e mov r9, r26 - do *bufPtr++ = getch(); - while (--length); - - // If we are in NRWW section, page erase has to be delayed until now. - // Todo: Take RAMPZ into account - if (address >= NRWWSTART) __boot_page_erase_short((uint16_t)(void*)address); - 1e5e: f3 e0 ldi r31, 0x03 ; 3 - 1e60: bf 2e mov r11, r31 -#endif - - /* Forever loop */ - for (;;) { - /* get character from UART */ - ch = getch(); - 1e62: 9e d0 rcall .+316 ; 0x1fa0 - - if(ch == STK_GET_PARAMETER) { - 1e64: 81 34 cpi r24, 0x41 ; 65 - 1e66: 61 f4 brne .+24 ; 0x1e80 - unsigned char which = getch(); - 1e68: 9b d0 rcall .+310 ; 0x1fa0 - 1e6a: 08 2f mov r16, r24 - verifySpace(); - 1e6c: a4 d0 rcall .+328 ; 0x1fb6 - if (which == 0x82) { - 1e6e: 02 38 cpi r16, 0x82 ; 130 - 1e70: 11 f0 breq .+4 ; 0x1e76 - /* - * Send optiboot version as "minor SW version" - */ - putch(OPTIBOOT_MINVER); - } else if (which == 0x81) { - 1e72: 01 38 cpi r16, 0x81 ; 129 - 1e74: 11 f4 brne .+4 ; 0x1e7a - putch(OPTIBOOT_MAJVER); - 1e76: 84 e0 ldi r24, 0x04 ; 4 - 1e78: 01 c0 rjmp .+2 ; 0x1e7c - } else { - /* - * GET PARAMETER returns a generic 0x03 reply for - * other parameters - enough to keep Avrdude happy - */ - putch(0x03); - 1e7a: 83 e0 ldi r24, 0x03 ; 3 - 1e7c: 8d d0 rcall .+282 ; 0x1f98 - 1e7e: 89 c0 rjmp .+274 ; 0x1f92 - } - } - else if(ch == STK_SET_DEVICE) { - 1e80: 82 34 cpi r24, 0x42 ; 66 - 1e82: 11 f4 brne .+4 ; 0x1e88 - // SET DEVICE is ignored - getNch(20); - 1e84: 84 e1 ldi r24, 0x14 ; 20 - 1e86: 03 c0 rjmp .+6 ; 0x1e8e - } - else if(ch == STK_SET_DEVICE_EXT) { - 1e88: 85 34 cpi r24, 0x45 ; 69 - 1e8a: 19 f4 brne .+6 ; 0x1e92 - // SET DEVICE EXT is ignored - getNch(5); - 1e8c: 85 e0 ldi r24, 0x05 ; 5 - 1e8e: 9b d0 rcall .+310 ; 0x1fc6 - 1e90: 80 c0 rjmp .+256 ; 0x1f92 - } - else if(ch == STK_LOAD_ADDRESS) { - 1e92: 85 35 cpi r24, 0x55 ; 85 - 1e94: 79 f4 brne .+30 ; 0x1eb4 - // LOAD ADDRESS - uint16_t newAddress; - newAddress = getch(); - 1e96: 84 d0 rcall .+264 ; 0x1fa0 - newAddress = (newAddress & 0xff) | (getch() << 8); - 1e98: e8 2e mov r14, r24 - 1e9a: ff 24 eor r15, r15 - 1e9c: 81 d0 rcall .+258 ; 0x1fa0 - 1e9e: 08 2f mov r16, r24 - 1ea0: 10 e0 ldi r17, 0x00 ; 0 - 1ea2: 10 2f mov r17, r16 - 1ea4: 00 27 eor r16, r16 - 1ea6: 0e 29 or r16, r14 - 1ea8: 1f 29 or r17, r15 -#ifdef RAMPZ - // Transfer top bit to RAMPZ - RAMPZ = (newAddress & 0x8000) ? 1 : 0; -#endif - newAddress += newAddress; // Convert from word address to byte address - 1eaa: 00 0f add r16, r16 - 1eac: 11 1f adc r17, r17 - address = newAddress; - verifySpace(); - 1eae: 83 d0 rcall .+262 ; 0x1fb6 - 1eb0: 68 01 movw r12, r16 - 1eb2: 6f c0 rjmp .+222 ; 0x1f92 - } - else if(ch == STK_UNIVERSAL) { - 1eb4: 86 35 cpi r24, 0x56 ; 86 - 1eb6: 21 f4 brne .+8 ; 0x1ec0 - // UNIVERSAL command is ignored - getNch(4); - 1eb8: 84 e0 ldi r24, 0x04 ; 4 - 1eba: 85 d0 rcall .+266 ; 0x1fc6 - putch(0x00); - 1ebc: 80 e0 ldi r24, 0x00 ; 0 - 1ebe: de cf rjmp .-68 ; 0x1e7c - } - /* Write memory, length is big endian and is in bytes */ - else if(ch == STK_PROG_PAGE) { - 1ec0: 84 36 cpi r24, 0x64 ; 100 - 1ec2: 09 f0 breq .+2 ; 0x1ec6 - 1ec4: 40 c0 rjmp .+128 ; 0x1f46 - // PROGRAM PAGE - we support flash programming only, not EEPROM - uint8_t *bufPtr; - uint16_t addrPtr; - - getch(); /* getlen() */ - 1ec6: 6c d0 rcall .+216 ; 0x1fa0 - length = getch(); - 1ec8: 6b d0 rcall .+214 ; 0x1fa0 - 1eca: 08 2f mov r16, r24 - getch(); - 1ecc: 69 d0 rcall .+210 ; 0x1fa0 - - // If we are in RWW section, immediately start page erase - if (address < NRWWSTART) __boot_page_erase_short((uint16_t)(void*)address); - 1ece: 80 e0 ldi r24, 0x00 ; 0 - 1ed0: c8 16 cp r12, r24 - 1ed2: 88 e1 ldi r24, 0x18 ; 24 - 1ed4: d8 06 cpc r13, r24 - 1ed6: 18 f4 brcc .+6 ; 0x1ede - 1ed8: f6 01 movw r30, r12 - 1eda: b7 be out 0x37, r11 ; 55 - 1edc: e8 95 spm - 1ede: c0 e0 ldi r28, 0x00 ; 0 - 1ee0: d1 e0 ldi r29, 0x01 ; 1 - - // While that is going on, read in page contents - bufPtr = buff; - do *bufPtr++ = getch(); - 1ee2: 5e d0 rcall .+188 ; 0x1fa0 - 1ee4: 89 93 st Y+, r24 - while (--length); - 1ee6: 0c 17 cp r16, r28 - 1ee8: e1 f7 brne .-8 ; 0x1ee2 - - // If we are in NRWW section, page erase has to be delayed until now. - // Todo: Take RAMPZ into account - if (address >= NRWWSTART) __boot_page_erase_short((uint16_t)(void*)address); - 1eea: f0 e0 ldi r31, 0x00 ; 0 - 1eec: cf 16 cp r12, r31 - 1eee: f8 e1 ldi r31, 0x18 ; 24 - 1ef0: df 06 cpc r13, r31 - 1ef2: 18 f0 brcs .+6 ; 0x1efa - 1ef4: f6 01 movw r30, r12 - 1ef6: b7 be out 0x37, r11 ; 55 - 1ef8: e8 95 spm - - // Read command terminator, start reply - verifySpace(); - 1efa: 5d d0 rcall .+186 ; 0x1fb6 - - // If only a partial page is to be programmed, the erase might not be complete. - // So check that here - boot_spm_busy_wait(); - 1efc: 07 b6 in r0, 0x37 ; 55 - 1efe: 00 fc sbrc r0, 0 - 1f00: fd cf rjmp .-6 ; 0x1efc - 1f02: a6 01 movw r20, r12 - 1f04: a0 e0 ldi r26, 0x00 ; 0 - 1f06: b1 e0 ldi r27, 0x01 ; 1 - bufPtr = buff; - addrPtr = (uint16_t)(void*)address; - ch = SPM_PAGESIZE / 2; - do { - uint16_t a; - a = *bufPtr++; - 1f08: 2c 91 ld r18, X - 1f0a: 30 e0 ldi r19, 0x00 ; 0 - a |= (*bufPtr++) << 8; - 1f0c: 11 96 adiw r26, 0x01 ; 1 - 1f0e: 8c 91 ld r24, X - 1f10: 11 97 sbiw r26, 0x01 ; 1 - 1f12: 90 e0 ldi r25, 0x00 ; 0 - 1f14: 98 2f mov r25, r24 - 1f16: 88 27 eor r24, r24 - 1f18: 82 2b or r24, r18 - 1f1a: 93 2b or r25, r19 -#define rstVect (*(uint16_t*)(RAMSTART+SPM_PAGESIZE*2+4)) -#define wdtVect (*(uint16_t*)(RAMSTART+SPM_PAGESIZE*2+6)) -#endif - -/* main program starts here */ -int main(void) { - 1f1c: 12 96 adiw r26, 0x02 ; 2 - ch = SPM_PAGESIZE / 2; - do { - uint16_t a; - a = *bufPtr++; - a |= (*bufPtr++) << 8; - __boot_page_fill_short((uint16_t)(void*)addrPtr,a); - 1f1e: fa 01 movw r30, r20 - 1f20: 0c 01 movw r0, r24 - 1f22: 87 be out 0x37, r8 ; 55 - 1f24: e8 95 spm - 1f26: 11 24 eor r1, r1 - addrPtr += 2; - 1f28: 4e 5f subi r20, 0xFE ; 254 - 1f2a: 5f 4f sbci r21, 0xFF ; 255 - } while (--ch); - 1f2c: f1 e0 ldi r31, 0x01 ; 1 - 1f2e: a0 34 cpi r26, 0x40 ; 64 - 1f30: bf 07 cpc r27, r31 - 1f32: 51 f7 brne .-44 ; 0x1f08 - - // Write from programming buffer - __boot_page_write_short((uint16_t)(void*)address); - 1f34: f6 01 movw r30, r12 - 1f36: a7 be out 0x37, r10 ; 55 - 1f38: e8 95 spm - boot_spm_busy_wait(); - 1f3a: 07 b6 in r0, 0x37 ; 55 - 1f3c: 00 fc sbrc r0, 0 - 1f3e: fd cf rjmp .-6 ; 0x1f3a - -#if defined(RWWSRE) - // Reenable read access to flash - boot_rww_enable(); - 1f40: 97 be out 0x37, r9 ; 55 - 1f42: e8 95 spm - 1f44: 26 c0 rjmp .+76 ; 0x1f92 -#endif - - } - /* Read memory block mode, length is big endian. */ - else if(ch == STK_READ_PAGE) { - 1f46: 84 37 cpi r24, 0x74 ; 116 - 1f48: b1 f4 brne .+44 ; 0x1f76 - // READ PAGE - we only read flash - getch(); /* getlen() */ - 1f4a: 2a d0 rcall .+84 ; 0x1fa0 - length = getch(); - 1f4c: 29 d0 rcall .+82 ; 0x1fa0 - 1f4e: f8 2e mov r15, r24 - getch(); - 1f50: 27 d0 rcall .+78 ; 0x1fa0 - - verifySpace(); - 1f52: 31 d0 rcall .+98 ; 0x1fb6 - 1f54: f6 01 movw r30, r12 - 1f56: ef 2c mov r14, r15 - putch(result); - address++; - } - while (--length); -#else - do putch(pgm_read_byte_near(address++)); - 1f58: 8f 01 movw r16, r30 - 1f5a: 0f 5f subi r16, 0xFF ; 255 - 1f5c: 1f 4f sbci r17, 0xFF ; 255 - 1f5e: 84 91 lpm r24, Z+ - 1f60: 1b d0 rcall .+54 ; 0x1f98 - while (--length); - 1f62: ea 94 dec r14 - 1f64: f8 01 movw r30, r16 - 1f66: c1 f7 brne .-16 ; 0x1f58 -#define rstVect (*(uint16_t*)(RAMSTART+SPM_PAGESIZE*2+4)) -#define wdtVect (*(uint16_t*)(RAMSTART+SPM_PAGESIZE*2+6)) -#endif - -/* main program starts here */ -int main(void) { - 1f68: 08 94 sec - 1f6a: c1 1c adc r12, r1 - 1f6c: d1 1c adc r13, r1 - 1f6e: fa 94 dec r15 - 1f70: cf 0c add r12, r15 - 1f72: d1 1c adc r13, r1 - 1f74: 0e c0 rjmp .+28 ; 0x1f92 -#endif -#endif - } - - /* Get device signature bytes */ - else if(ch == STK_READ_SIGN) { - 1f76: 85 37 cpi r24, 0x75 ; 117 - 1f78: 39 f4 brne .+14 ; 0x1f88 - // READ SIGN - return what Avrdude wants to hear - verifySpace(); - 1f7a: 1d d0 rcall .+58 ; 0x1fb6 - putch(SIGNATURE_0); - 1f7c: 8e e1 ldi r24, 0x1E ; 30 - 1f7e: 0c d0 rcall .+24 ; 0x1f98 - putch(SIGNATURE_1); - 1f80: 83 e9 ldi r24, 0x93 ; 147 - 1f82: 0a d0 rcall .+20 ; 0x1f98 - putch(SIGNATURE_2); - 1f84: 87 e0 ldi r24, 0x07 ; 7 - 1f86: 7a cf rjmp .-268 ; 0x1e7c - } - else if (ch == 'Q') { - 1f88: 81 35 cpi r24, 0x51 ; 81 - 1f8a: 11 f4 brne .+4 ; 0x1f90 - // Adaboot no-wait mod - watchdogConfig(WATCHDOG_16MS); - 1f8c: 88 e0 ldi r24, 0x08 ; 8 - 1f8e: 0f d0 rcall .+30 ; 0x1fae - verifySpace(); - } - else { - // This covers the response to commands like STK_ENTER_PROGMODE - verifySpace(); - 1f90: 12 d0 rcall .+36 ; 0x1fb6 - } - putch(STK_OK); - 1f92: 80 e1 ldi r24, 0x10 ; 16 - 1f94: 01 d0 rcall .+2 ; 0x1f98 - 1f96: 65 cf rjmp .-310 ; 0x1e62 - -00001f98 : - } -} - -void putch(char ch) { -#ifndef SOFT_UART - while (!(UCSR0A & _BV(UDRE0))); - 1f98: 5d 9b sbis 0x0b, 5 ; 11 - 1f9a: fe cf rjmp .-4 ; 0x1f98 - UDR0 = ch; - 1f9c: 8c b9 out 0x0c, r24 ; 12 - [uartBit] "I" (UART_TX_BIT) - : - "r25" - ); -#endif -} - 1f9e: 08 95 ret - -00001fa0 : - [uartBit] "I" (UART_RX_BIT) - : - "r25" -); -#else - while(!(UCSR0A & _BV(RXC0))) - 1fa0: 5f 9b sbis 0x0b, 7 ; 11 - 1fa2: fe cf rjmp .-4 ; 0x1fa0 - ; - if (!(UCSR0A & _BV(FE0))) { - 1fa4: 5c 99 sbic 0x0b, 4 ; 11 - 1fa6: 01 c0 rjmp .+2 ; 0x1faa -} -#endif - -// Watchdog functions. These are only safe with interrupts turned off. -void watchdogReset() { - __asm__ __volatile__ ( - 1fa8: a8 95 wdr - * don't care that an invalid char is returned...) - */ - watchdogReset(); - } - - ch = UDR0; - 1faa: 8c b1 in r24, 0x0c ; 12 - LED_PIN |= _BV(LED); -#endif -#endif - - return ch; -} - 1fac: 08 95 ret - -00001fae : - "wdr\n" - ); -} - -void watchdogConfig(uint8_t x) { - WDTCSR = _BV(WDCE) | _BV(WDE); - 1fae: 98 e1 ldi r25, 0x18 ; 24 - 1fb0: 91 bd out 0x21, r25 ; 33 - WDTCSR = x; - 1fb2: 81 bd out 0x21, r24 ; 33 -} - 1fb4: 08 95 ret - -00001fb6 : - do getch(); while (--count); - verifySpace(); -} - -void verifySpace() { - if (getch() != CRC_EOP) { - 1fb6: f4 df rcall .-24 ; 0x1fa0 - 1fb8: 80 32 cpi r24, 0x20 ; 32 - 1fba: 19 f0 breq .+6 ; 0x1fc2 - watchdogConfig(WATCHDOG_16MS); // shorten WD timeout - 1fbc: 88 e0 ldi r24, 0x08 ; 8 - 1fbe: f7 df rcall .-18 ; 0x1fae - 1fc0: ff cf rjmp .-2 ; 0x1fc0 - while (1) // and busy-loop so that WD causes - ; // a reset and app start. - } - putch(STK_INSYNC); - 1fc2: 84 e1 ldi r24, 0x14 ; 20 -} - 1fc4: e9 cf rjmp .-46 ; 0x1f98 - -00001fc6 : - ::[count] "M" (UART_B_VALUE) - ); -} -#endif - -void getNch(uint8_t count) { - 1fc6: 1f 93 push r17 - 1fc8: 18 2f mov r17, r24 - do getch(); while (--count); - 1fca: ea df rcall .-44 ; 0x1fa0 - 1fcc: 11 50 subi r17, 0x01 ; 1 - 1fce: e9 f7 brne .-6 ; 0x1fca - verifySpace(); - 1fd0: f2 df rcall .-28 ; 0x1fb6 -} - 1fd2: 1f 91 pop r17 - 1fd4: 08 95 ret - -00001fd6 : - WDTCSR = _BV(WDCE) | _BV(WDE); - WDTCSR = x; -} - -void appStart() { - watchdogConfig(WATCHDOG_OFF); - 1fd6: 80 e0 ldi r24, 0x00 ; 0 - 1fd8: ea df rcall .-44 ; 0x1fae - __asm__ __volatile__ ( - 1fda: ee 27 eor r30, r30 - 1fdc: ff 27 eor r31, r31 - 1fde: 09 94 ijmp diff --git a/build/linux/work/hardware/arduino/bootloaders/optiboot/pin_defs.h b/build/linux/work/hardware/arduino/bootloaders/optiboot/pin_defs.h deleted file mode 100644 index 27d777244..000000000 --- a/build/linux/work/hardware/arduino/bootloaders/optiboot/pin_defs.h +++ /dev/null @@ -1,80 +0,0 @@ -#if defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) || defined(__AVR_ATmega88) || defined(__AVR_ATmega8__) || defined(__AVR_ATmega88__) -/* Onboard LED is connected to pin PB5 in Arduino NG, Diecimila, and Duemilanove */ -#define LED_DDR DDRB -#define LED_PORT PORTB -#define LED_PIN PINB -#define LED PINB5 - -/* Ports for soft UART */ -#ifdef SOFT_UART -#define UART_PORT PORTD -#define UART_PIN PIND -#define UART_DDR DDRD -#define UART_TX_BIT 1 -#define UART_RX_BIT 0 -#endif -#endif - -#if defined(__AVR_ATmega8__) - //Name conversion R.Wiersma - #define UCSR0A UCSRA - #define UDR0 UDR - #define UDRE0 UDRE - #define RXC0 RXC - #define FE0 FE - #define TIFR1 TIFR - #define WDTCSR WDTCR -#endif - -/* Luminet support */ -#if defined(__AVR_ATtiny84__) -/* Red LED is connected to pin PA4 */ -#define LED_DDR DDRA -#define LED_PORT PORTA -#define LED_PIN PINA -#define LED PINA4 -/* Ports for soft UART - left port only for now. TX/RX on PA2/PA3 */ -#ifdef SOFT_UART -#define UART_PORT PORTA -#define UART_PIN PINA -#define UART_DDR DDRA -#define UART_TX_BIT 2 -#define UART_RX_BIT 3 -#endif -#endif - -/* Sanguino support */ -#if defined(__AVR_ATmega644P__) -/* Onboard LED is connected to pin PB0 on Sanguino */ -#define LED_DDR DDRB -#define LED_PORT PORTB -#define LED_PIN PINB -#define LED PINB0 - -/* Ports for soft UART */ -#ifdef SOFT_UART -#define UART_PORT PORTD -#define UART_PIN PIND -#define UART_DDR DDRD -#define UART_TX_BIT 1 -#define UART_RX_BIT 0 -#endif -#endif - -/* Mega support */ -#if defined(__AVR_ATmega1280__) -/* Onboard LED is connected to pin PB7 on Arduino Mega */ -#define LED_DDR DDRB -#define LED_PORT PORTB -#define LED_PIN PINB -#define LED PINB7 - -/* Ports for soft UART */ -#ifdef SOFT_UART -#define UART_PORT PORTE -#define UART_PIN PINE -#define UART_DDR DDRE -#define UART_TX_BIT 1 -#define UART_RX_BIT 0 -#endif -#endif diff --git a/build/linux/work/hardware/arduino/bootloaders/optiboot/stk500.h b/build/linux/work/hardware/arduino/bootloaders/optiboot/stk500.h deleted file mode 100644 index ca0dd91df..000000000 --- a/build/linux/work/hardware/arduino/bootloaders/optiboot/stk500.h +++ /dev/null @@ -1,39 +0,0 @@ -/* STK500 constants list, from AVRDUDE */ -#define STK_OK 0x10 -#define STK_FAILED 0x11 // Not used -#define STK_UNKNOWN 0x12 // Not used -#define STK_NODEVICE 0x13 // Not used -#define STK_INSYNC 0x14 // ' ' -#define STK_NOSYNC 0x15 // Not used -#define ADC_CHANNEL_ERROR 0x16 // Not used -#define ADC_MEASURE_OK 0x17 // Not used -#define PWM_CHANNEL_ERROR 0x18 // Not used -#define PWM_ADJUST_OK 0x19 // Not used -#define CRC_EOP 0x20 // 'SPACE' -#define STK_GET_SYNC 0x30 // '0' -#define STK_GET_SIGN_ON 0x31 // '1' -#define STK_SET_PARAMETER 0x40 // '@' -#define STK_GET_PARAMETER 0x41 // 'A' -#define STK_SET_DEVICE 0x42 // 'B' -#define STK_SET_DEVICE_EXT 0x45 // 'E' -#define STK_ENTER_PROGMODE 0x50 // 'P' -#define STK_LEAVE_PROGMODE 0x51 // 'Q' -#define STK_CHIP_ERASE 0x52 // 'R' -#define STK_CHECK_AUTOINC 0x53 // 'S' -#define STK_LOAD_ADDRESS 0x55 // 'U' -#define STK_UNIVERSAL 0x56 // 'V' -#define STK_PROG_FLASH 0x60 // '`' -#define STK_PROG_DATA 0x61 // 'a' -#define STK_PROG_FUSE 0x62 // 'b' -#define STK_PROG_LOCK 0x63 // 'c' -#define STK_PROG_PAGE 0x64 // 'd' -#define STK_PROG_FUSE_EXT 0x65 // 'e' -#define STK_READ_FLASH 0x70 // 'p' -#define STK_READ_DATA 0x71 // 'q' -#define STK_READ_FUSE 0x72 // 'r' -#define STK_READ_LOCK 0x73 // 's' -#define STK_READ_PAGE 0x74 // 't' -#define STK_READ_SIGN 0x75 // 'u' -#define STK_READ_OSCCAL 0x76 // 'v' -#define STK_READ_FUSE_EXT 0x77 // 'w' -#define STK_READ_OSCCAL_EXT 0x78 // 'x' diff --git a/build/linux/work/hardware/arduino/bootloaders/stk500v2/License.txt b/build/linux/work/hardware/arduino/bootloaders/stk500v2/License.txt deleted file mode 100644 index e7dcdd8d7..000000000 --- a/build/linux/work/hardware/arduino/bootloaders/stk500v2/License.txt +++ /dev/null @@ -1,280 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) 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 -this service 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 make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. 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. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute 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 and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -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 -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the 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 a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, 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. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE 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. - - END OF TERMS AND CONDITIONS diff --git a/build/linux/work/hardware/arduino/bootloaders/stk500v2/Makefile b/build/linux/work/hardware/arduino/bootloaders/stk500v2/Makefile deleted file mode 100644 index 54c5f8526..000000000 --- a/build/linux/work/hardware/arduino/bootloaders/stk500v2/Makefile +++ /dev/null @@ -1,588 +0,0 @@ -# ---------------------------------------------------------------------------- -# Makefile to compile and link stk500boot bootloader -# Author: Peter Fleury -# File: $Id: Makefile,v 1.3 2006/03/04 19:26:17 peter Exp $ -# based on WinAVR Makefile Template written by Eric B. Weddington, Jrg Wunsch, et al. -# -# Adjust F_CPU below to the clock frequency in Mhz of your AVR target -# Adjust BOOTLOADER_ADDRESS to your AVR target -# -#---------------------------------------------------------------------------- -# On command line: -# -# make all = Make software. -# -# make clean = Clean out built project files. -# -# make coff = Convert ELF to AVR COFF. -# -# make extcoff = Convert ELF to AVR Extended COFF. -# -# make program = Download the hex file to the device, using avrdude. -# Please customize the avrdude settings below first! -# -# make debug = Start either simulavr or avarice as specified for debugging, -# with avr-gdb or avr-insight as the front end for debugging. -# -# make filename.s = Just compile filename.c into the assembler code only. -# -# make filename.i = Create a preprocessed source file for use in submitting -# bug reports to the GCC project. -# -# To rebuild project do "make clean" then "make all". -#---------------------------------------------------------------------------- -# = Mark Sproul msproul-at-skychariot.com - - -# MCU name -#MCU = atmega128 - - -# Processor frequency. -# This will define a symbol, F_CPU, in all source code files equal to the -# processor frequency. You can then use this symbol in your source code to -# calculate timings. Do NOT tack on a 'UL' at the end, this will be done -# automatically to create a 32-bit value in your source code. -#F_CPU = 16000000 - - -# Bootloader -# Please adjust if using a different AVR -# 0x0e00*2=0x1C00 for ATmega8 512 words Boot Size -# 0xFC00*2=0x1F800 for ATmega128 1024 words Boot Size -# 0xF800*2=0x1F000 for ATmega1280 -# 0xF000*2=0x1E000 for ATmega1280 -#BOOTLOADER_ADDRESS = 1E000 - - -# Output format. (can be srec, ihex, binary) -FORMAT = ihex - - -# Target file name (without extension). -TARGET = stk500boot - - -# List C source files here. (C dependencies are automatically generated.) -SRC = stk500boot.c - - -# List Assembler source files here. -# Make them always end in a capital .S. Files ending in a lowercase .s -# will not be considered source files but generated files (assembler -# output from the compiler), and will be deleted upon "make clean"! -# Even though the DOS/Win* filesystem matches both .s and .S the same, -# it will preserve the spelling of the filenames, and gcc itself does -# care about how the name is spelled on its command-line. -ASRC = - - -# Optimization level, can be [0, 1, 2, 3, s]. -# 0 = turn off optimization. s = optimize for size. -# (Note: 3 is not always the best optimization level. See avr-libc FAQ.) -OPT = s - - -# Debugging format. -# Native formats for AVR-GCC's -g are dwarf-2 [default] or stabs. -# AVR Studio 4.10 requires dwarf-2. -# AVR [Extended] COFF format requires stabs, plus an avr-objcopy run. -DEBUG = dwarf-2 - - -# List any extra directories to look for include files here. -# Each directory must be seperated by a space. -# Use forward slashes for directory separators. -# For a directory that has spaces, enclose it in quotes. -EXTRAINCDIRS = - - -# Compiler flag to set the C Standard level. -# c89 = "ANSI" C -# gnu89 = c89 plus GCC extensions -# c99 = ISO C99 standard (not yet fully implemented) -# gnu99 = c99 plus GCC extensions -CSTANDARD = -std=gnu99 - - -# Place -D or -U options here -CDEFS = -DF_CPU=$(F_CPU)UL - - -# Place -I options here -CINCS = - - - -#---------------- Compiler Options ---------------- -# -g*: generate debugging information -# -O*: optimization level -# -f...: tuning, see GCC manual and avr-libc documentation -# -Wall...: warning level -# -Wa,...: tell GCC to pass this to the assembler. -# -adhlns...: create assembler listing -CFLAGS = -g$(DEBUG) -CFLAGS += $(CDEFS) $(CINCS) -CFLAGS += -O$(OPT) -CFLAGS += -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -mno-tablejump -CFLAGS += -Wall -Wstrict-prototypes -CFLAGS += -Wa,-adhlns=$(<:.c=.lst) -CFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS)) -CFLAGS += $(CSTANDARD) - - -#---------------- Assembler Options ---------------- -# -Wa,...: tell GCC to pass this to the assembler. -# -ahlms: create listing -# -gstabs: have the assembler create line number information; note that -# for use in COFF files, additional information about filenames -# and function names needs to be present in the assembler source -# files -- see avr-libc docs [FIXME: not yet described there] -ASFLAGS = -Wa,-adhlns=$(<:.S=.lst),-gstabs - - -#---------------- Library Options ---------------- -# Minimalistic printf version -PRINTF_LIB_MIN = -Wl,-u,vfprintf -lprintf_min - -# Floating point printf version (requires MATH_LIB = -lm below) -PRINTF_LIB_FLOAT = -Wl,-u,vfprintf -lprintf_flt - -# If this is left blank, then it will use the Standard printf version. -PRINTF_LIB = -#PRINTF_LIB = $(PRINTF_LIB_MIN) -#PRINTF_LIB = $(PRINTF_LIB_FLOAT) - - -# Minimalistic scanf version -SCANF_LIB_MIN = -Wl,-u,vfscanf -lscanf_min - -# Floating point + %[ scanf version (requires MATH_LIB = -lm below) -SCANF_LIB_FLOAT = -Wl,-u,vfscanf -lscanf_flt - -# If this is left blank, then it will use the Standard scanf version. -SCANF_LIB = -#SCANF_LIB = $(SCANF_LIB_MIN) -#SCANF_LIB = $(SCANF_LIB_FLOAT) - - -MATH_LIB = -lm - - - -#---------------- External Memory Options ---------------- - -# 64 KB of external RAM, starting after internal RAM (ATmega128!), -# used for variables (.data/.bss) and heap (malloc()). -#EXTMEMOPTS = -Wl,-Tdata=0x801100,--defsym=__heap_end=0x80ffff - -# 64 KB of external RAM, starting after internal RAM (ATmega128!), -# only used for heap (malloc()). -#EXTMEMOPTS = -Wl,--defsym=__heap_start=0x801100,--defsym=__heap_end=0x80ffff - -EXTMEMOPTS = - - - - -#---------------- Linker Options ---------------- -# -Wl,...: tell GCC to pass this to linker. -# -Map: create map file -# --cref: add cross reference to map file -LDFLAGS = -Wl,-Map=$(TARGET).map,--cref -LDFLAGS += $(EXTMEMOPTS) -LDFLAGS += $(PRINTF_LIB) $(SCANF_LIB) $(MATH_LIB) - - -#--------------- bootloader linker Options ------- -# BOOTLOADER_ADDRESS (=Start of Boot Loader section -# in bytes - not words) is defined above. -#LDFLAGS += -Wl,--section-start=.text=$(BOOTLOADER_ADDRESS) -nostartfiles -nodefaultlibs -#LDFLAGS += -Wl,--section-start=.text=$(BOOTLOADER_ADDRESS) -nostartfiles -LDFLAGS += -Wl,--section-start=.text=$(BOOTLOADER_ADDRESS) - -#---------------- Programming Options (avrdude) ---------------- - -# Programming hardware: alf avr910 avrisp bascom bsd -# dt006 pavr picoweb pony-stk200 sp12 stk200 stk500 -# -# Type: avrdude -c ? -# to get a full listing. -# -AVRDUDE_PROGRAMMER = stk500v2 - -# com1 = serial port. Use lpt1 to connect to parallel port. -AVRDUDE_PORT = com1 # programmer connected to serial device - -AVRDUDE_WRITE_FLASH = -U flash:w:$(TARGET).hex -#AVRDUDE_WRITE_EEPROM = -U eeprom:w:$(TARGET).eep - - -# Uncomment the following if you want avrdude's erase cycle counter. -# Note that this counter needs to be initialized first using -Yn, -# see avrdude manual. -#AVRDUDE_ERASE_COUNTER = -y - -# Uncomment the following if you do /not/ wish a verification to be -# performed after programming the device. -#AVRDUDE_NO_VERIFY = -V - -# Increase verbosity level. Please use this when submitting bug -# reports about avrdude. See -# to submit bug reports. -#AVRDUDE_VERBOSE = -v -v - -AVRDUDE_FLAGS = -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER) -AVRDUDE_FLAGS += $(AVRDUDE_NO_VERIFY) -AVRDUDE_FLAGS += $(AVRDUDE_VERBOSE) -AVRDUDE_FLAGS += $(AVRDUDE_ERASE_COUNTER) - - - -#---------------- Debugging Options ---------------- - -# For simulavr only - target MCU frequency. -DEBUG_MFREQ = $(F_CPU) - -# Set the DEBUG_UI to either gdb or insight. -# DEBUG_UI = gdb -DEBUG_UI = insight - -# Set the debugging back-end to either avarice, simulavr. -DEBUG_BACKEND = avarice -#DEBUG_BACKEND = simulavr - -# GDB Init Filename. -GDBINIT_FILE = __avr_gdbinit - -# When using avarice settings for the JTAG -JTAG_DEV = /dev/com1 - -# Debugging port used to communicate between GDB / avarice / simulavr. -DEBUG_PORT = 4242 - -# Debugging host used to communicate between GDB / avarice / simulavr, normally -# just set to localhost unless doing some sort of crazy debugging when -# avarice is running on a different computer. -DEBUG_HOST = localhost - - - -#============================================================================ - - -# Define programs and commands. -SHELL = sh -CC = avr-gcc -OBJCOPY = avr-objcopy -OBJDUMP = avr-objdump -SIZE = avr-size -NM = avr-nm -AVRDUDE = avrdude -REMOVE = rm -f -COPY = cp -WINSHELL = cmd - - -# Define Messages -# English -MSG_ERRORS_NONE = Errors: none -MSG_BEGIN = -------- begin -------- -MSG_END = -------- end -------- -MSG_SIZE_BEFORE = Size before: -MSG_SIZE_AFTER = Size after: -MSG_COFF = Converting to AVR COFF: -MSG_EXTENDED_COFF = Converting to AVR Extended COFF: -MSG_FLASH = Creating load file for Flash: -MSG_EEPROM = Creating load file for EEPROM: -MSG_EXTENDED_LISTING = Creating Extended Listing: -MSG_SYMBOL_TABLE = Creating Symbol Table: -MSG_LINKING = Linking: -MSG_COMPILING = Compiling: -MSG_ASSEMBLING = Assembling: -MSG_CLEANING = Cleaning project: - - - - -# Define all object files. -OBJ = $(SRC:.c=.o) $(ASRC:.S=.o) - -# Define all listing files. -LST = $(SRC:.c=.lst) $(ASRC:.S=.lst) - - -# Compiler flags to generate dependency files. -GENDEPFLAGS = -MD -MP -MF .dep/$(@F).d - - -# Combine all necessary flags and optional flags. -# Add target processor to flags. -ALL_CFLAGS = -mmcu=$(MCU) -I. $(CFLAGS) $(GENDEPFLAGS) -ALL_ASFLAGS = -mmcu=$(MCU) -I. -x assembler-with-cpp $(ASFLAGS) - - - -############################################################ -# May 25, 2010 Adding 1280 support -mega1280: MCU = atmega1280 -mega1280: F_CPU = 16000000 -mega1280: BOOTLOADER_ADDRESS = 1E000 -mega1280: CFLAGS += -D_MEGA_BOARD_ -mega1280: begin gccversion sizebefore build sizeafter end - mv $(TARGET).hex stk500boot_v2_mega1280.hex - - -############################################################ -# Jul 6, 2010 Adding 2560 support -mega2560: MCU = atmega2560 -mega2560: F_CPU = 16000000 -mega2560: BOOTLOADER_ADDRESS = 3E000 -mega2560: CFLAGS += -D_MEGA_BOARD_ -mega2560: begin gccversion sizebefore build sizeafter end - mv $(TARGET).hex stk500boot_v2_mega2560.hex - - -############################################################ -#Initial config on Amber128 board -# avrdude: Device signature = 0x1e9702 -# avrdude: safemode: lfuse reads as 8F -# avrdude: safemode: hfuse reads as CB -# avrdude: safemode: efuse reads as FF -# Jul 17, 2010 Adding 128 support -############################################################ -amber128: MCU = atmega128 -#amber128: F_CPU = 16000000 -amber128: F_CPU = 14745600 -amber128: BOOTLOADER_ADDRESS = 1E000 -amber128: CFLAGS += -D_BOARD_AMBER128_ -amber128: begin gccversion sizebefore build sizeafter end - mv $(TARGET).hex stk500boot_v2_amber128.hex - -############################################################ -# Aug 23, 2010 Adding atmega2561 support -m2561: MCU = atmega2561 -m2561: F_CPU = 8000000 -m2561: BOOTLOADER_ADDRESS = 3E000 -m2561: CFLAGS += -D_ANDROID_2561_ -DBAUDRATE=57600 -m2561: begin gccversion sizebefore build sizeafter end - mv $(TARGET).hex stk500boot_v2_android2561.hex - - -############################################################ -# avrdude: Device signature = 0x1e9801 -# avrdude: safemode: lfuse reads as EC -# avrdude: safemode: hfuse reads as 18 -# avrdude: safemode: efuse reads as FD -# Aug 23, 2010 Adding cerebot 2560 @ 8mhz -#avrdude -P usb -c usbtiny -p m2560 -v -U flash:w:/Arduino/WiringBootV2_upd1/stk500boot_v2_cerebotplus.hex -############################################################ -cerebot: MCU = atmega2560 -cerebot: F_CPU = 8000000 -cerebot: BOOTLOADER_ADDRESS = 3E000 -cerebot: CFLAGS += -D_CEREBOTPLUS_BOARD_ -DBAUDRATE=38400 -DUART_BAUDRATE_DOUBLE_SPEED=1 -cerebot: begin gccversion sizebefore build sizeafter end - mv $(TARGET).hex stk500boot_v2_cerebotplus.hex - - -############################################################ -# Aug 23, 2010 Adding atmega2561 support -penguino: MCU = atmega32 -penguino: F_CPU = 16000000 -penguino: BOOTLOADER_ADDRESS = 7800 -penguino: CFLAGS += -D_PENGUINO_ -DBAUDRATE=57600 -penguino: begin gccversion sizebefore build sizeafter end - mv $(TARGET).hex stk500boot_v2_penguino.hex - - -# Default target. -all: begin gccversion sizebefore build sizeafter end - -build: elf hex eep lss sym -#build: hex eep lss sym - -elf: $(TARGET).elf -hex: $(TARGET).hex -eep: $(TARGET).eep -lss: $(TARGET).lss -sym: $(TARGET).sym - - - -# Eye candy. -# AVR Studio 3.x does not check make's exit code but relies on -# the following magic strings to be generated by the compile job. -begin: - @echo - @echo $(MSG_BEGIN) - -end: - @echo $(MSG_END) - @echo - - -# Display size of file. -HEXSIZE = $(SIZE) --target=$(FORMAT) $(TARGET).hex -ELFSIZE = $(SIZE) --format=avr --mcu=$(MCU) $(TARGET).elf - -sizebefore: - @if test -f $(TARGET).elf; then echo; echo $(MSG_SIZE_BEFORE); $(ELFSIZE); \ - 2>/dev/null; echo; fi - -sizeafter: - @if test -f $(TARGET).elf; then echo; echo $(MSG_SIZE_AFTER); $(ELFSIZE); \ - 2>/dev/null; echo; fi - - - -# Display compiler version information. -gccversion : - @$(CC) --version - - - -# Program the device. -program: $(TARGET).hex $(TARGET).eep - $(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FLASH) $(AVRDUDE_WRITE_EEPROM) - - -# Generate avr-gdb config/init file which does the following: -# define the reset signal, load the target file, connect to target, and set -# a breakpoint at main(). -gdb-config: - @$(REMOVE) $(GDBINIT_FILE) - @echo define reset >> $(GDBINIT_FILE) - @echo SIGNAL SIGHUP >> $(GDBINIT_FILE) - @echo end >> $(GDBINIT_FILE) - @echo file $(TARGET).elf >> $(GDBINIT_FILE) - @echo target remote $(DEBUG_HOST):$(DEBUG_PORT) >> $(GDBINIT_FILE) -ifeq ($(DEBUG_BACKEND),simulavr) - @echo load >> $(GDBINIT_FILE) -endif - @echo break main >> $(GDBINIT_FILE) - -debug: gdb-config $(TARGET).elf -ifeq ($(DEBUG_BACKEND), avarice) - @echo Starting AVaRICE - Press enter when "waiting to connect" message displays. - @$(WINSHELL) /c start avarice --jtag $(JTAG_DEV) --erase --program --file \ - $(TARGET).elf $(DEBUG_HOST):$(DEBUG_PORT) - @$(WINSHELL) /c pause - -else - @$(WINSHELL) /c start simulavr --gdbserver --device $(MCU) --clock-freq \ - $(DEBUG_MFREQ) --port $(DEBUG_PORT) -endif - @$(WINSHELL) /c start avr-$(DEBUG_UI) --command=$(GDBINIT_FILE) - - - - -# Convert ELF to COFF for use in debugging / simulating in AVR Studio or VMLAB. -COFFCONVERT=$(OBJCOPY) --debugging \ ---change-section-address .data-0x800000 \ ---change-section-address .bss-0x800000 \ ---change-section-address .noinit-0x800000 \ ---change-section-address .eeprom-0x810000 - - - -coff: $(TARGET).elf - @echo - @echo $(MSG_COFF) $(TARGET).cof - $(COFFCONVERT) -O coff-avr $< $(TARGET).cof - - -extcoff: $(TARGET).elf - @echo - @echo $(MSG_EXTENDED_COFF) $(TARGET).cof - $(COFFCONVERT) -O coff-ext-avr $< $(TARGET).cof - - -# Create final output files (.hex, .eep) from ELF output file. -%.hex: %.elf - @echo - @echo $(MSG_FLASH) $@ - $(OBJCOPY) -O $(FORMAT) -R .eeprom $< $@ - -%.eep: %.elf - @echo - @echo $(MSG_EEPROM) $@ - -$(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" \ - --change-section-lma .eeprom=0 -O $(FORMAT) $< $@ - -# Create extended listing file from ELF output file. -%.lss: %.elf - @echo - @echo $(MSG_EXTENDED_LISTING) $@ - $(OBJDUMP) -h -S $< > $@ - -# Create a symbol table from ELF output file. -%.sym: %.elf - @echo - @echo $(MSG_SYMBOL_TABLE) $@ - $(NM) -n $< > $@ - - - -# Link: create ELF output file from object files. -.SECONDARY : $(TARGET).elf -.PRECIOUS : $(OBJ) -%.elf: $(OBJ) - @echo - @echo $(MSG_LINKING) $@ - $(CC) $(ALL_CFLAGS) $^ --output $@ $(LDFLAGS) - - -# Compile: create object files from C source files. -%.o : %.c - @echo - @echo $(MSG_COMPILING) $< - $(CC) -c $(ALL_CFLAGS) $< -o $@ - - -# Compile: create assembler files from C source files. -%.s : %.c - $(CC) -S $(ALL_CFLAGS) $< -o $@ - - -# Assemble: create object files from assembler source files. -%.o : %.S - @echo - @echo $(MSG_ASSEMBLING) $< - $(CC) -c $(ALL_ASFLAGS) $< -o $@ - -# Create preprocessed source for use in sending a bug report. -%.i : %.c - $(CC) -E -mmcu=$(MCU) -I. $(CFLAGS) $< -o $@ - - -# Target: clean project. -clean: begin clean_list end - -clean_list : - @echo - @echo $(MSG_CLEANING) - $(REMOVE) *.hex - $(REMOVE) *.eep - $(REMOVE) *.cof - $(REMOVE) *.elf - $(REMOVE) *.map - $(REMOVE) *.sym - $(REMOVE) *.lss - $(REMOVE) $(OBJ) - $(REMOVE) $(LST) - $(REMOVE) $(SRC:.c=.s) - $(REMOVE) $(SRC:.c=.d) - $(REMOVE) .dep/* - - - -# Include the dependency files. --include $(shell mkdir .dep 2>/dev/null) $(wildcard .dep/*) - - -# Listing of phony targets. -.PHONY : all begin finish end sizebefore sizeafter gccversion \ -build elf hex eep lss sym coff extcoff \ -clean clean_list program debug gdb-config - diff --git a/build/linux/work/hardware/arduino/bootloaders/stk500v2/STK500V2.pnproj b/build/linux/work/hardware/arduino/bootloaders/stk500v2/STK500V2.pnproj deleted file mode 100644 index d935019e1..000000000 --- a/build/linux/work/hardware/arduino/bootloaders/stk500v2/STK500V2.pnproj +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/build/linux/work/hardware/arduino/bootloaders/stk500v2/STK500V2.pnps b/build/linux/work/hardware/arduino/bootloaders/stk500v2/STK500V2.pnps deleted file mode 100644 index f85cde5e7..000000000 --- a/build/linux/work/hardware/arduino/bootloaders/stk500v2/STK500V2.pnps +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/build/linux/work/hardware/arduino/bootloaders/stk500v2/avrinterruptnames.h b/build/linux/work/hardware/arduino/bootloaders/stk500v2/avrinterruptnames.h deleted file mode 100644 index 0ae80f925..000000000 --- a/build/linux/work/hardware/arduino/bootloaders/stk500v2/avrinterruptnames.h +++ /dev/null @@ -1,742 +0,0 @@ -//************************************************************************************************** -//* -//* interrupt vector names -//* -//* It is important to note that the vector numbers listed here -//* are the ATMEL documentation numbers. The Arduino numbers are 1 less -//* This is because the Atmel docs start numbering the interrupts at 1 -//* when it is actually vector #0 in the table. -//************************************************************************************************** -//* Jun 1, 2010 Added support for ATmega1281 -//* Jun 30, 2010 Putting in more ifdefs to conserve space -//* Jul 3, 2010 More #ifdefs to conserve space and testing on most of my boards -//* Jul 4, 2010 Started using vector defs for #ifdefs as defined in -//* Jul 13, 2010 Added support for __AVR_ATmega128__ -//* Aug 26, 2010 Added support for __AVR_ATmega2561__ -//************************************************************************************************** - -//#include "avrinterruptnames.h" - -//************************************************************************************************** -//* this defines the interrupt vectors and allows us to compile ONLY those strings that are actually -//* in the target CPU. This way we do not have to keep making changes based on cpu, it will be -//* automatic even if we add a new CPU -#ifndef _AVR_IO_H_ - #include -#endif -//************************************************************************************************** - -#ifdef __MWERKS__ - #define prog_char char - #define PGM_P char * -#endif - - prog_char gAvrInt_RESET[] PROGMEM = "RESET"; -#ifdef INT0_vect - prog_char gAvrInt_INT0[] PROGMEM = "INT0"; -#endif -#ifdef INT1_vect - prog_char gAvrInt_INT1[] PROGMEM = "INT1"; -#endif -#ifdef INT2_vect - prog_char gAvrInt_INT2[] PROGMEM = "INT2"; -#endif -#ifdef INT3_vect - prog_char gAvrInt_INT3[] PROGMEM = "INT3"; -#endif -#ifdef INT4_vect - prog_char gAvrInt_INT4[] PROGMEM = "INT4"; -#endif -#ifdef INT5_vect - prog_char gAvrInt_INT5[] PROGMEM = "INT5"; -#endif -#ifdef INT6_vect - prog_char gAvrInt_INT6[] PROGMEM = "INT6"; -#endif -#ifdef INT7_vect - prog_char gAvrInt_INT7[] PROGMEM = "INT7"; -#endif -#ifdef PCINT0_vect - prog_char gAvrInt_PCINT0[] PROGMEM = "PCINT0"; -#endif -#ifdef PCINT1_vect - prog_char gAvrInt_PCINT1[] PROGMEM = "PCINT1"; -#endif -#ifdef PCINT2_vect - prog_char gAvrInt_PCINT2[] PROGMEM = "PCINT2"; -#endif -#ifdef PCINT3_vect - prog_char gAvrInt_PCINT3[] PROGMEM = "PCINT3"; -#endif -#ifdef WDT_vect - prog_char gAvrInt_WDT[] PROGMEM = "WDT"; -#endif -#ifdef TIMER0_COMP_vect - prog_char gAvrInt_TIMER0_COMP[] PROGMEM = "TIMER0 COMP"; -#endif -#ifdef TIMER0_COMPA_vect - prog_char gAvrInt_TIMER0_COMPA[] PROGMEM = "TIMER0 COMPA"; -#endif -#ifdef TIMER0_COMPB_vect - prog_char gAvrInt_TIMER0_COMPB[] PROGMEM = "TIMER0 COMPB"; -#endif -#ifdef TIMER0_OVF_vect - prog_char gAvrInt_TIMER0_OVF[] PROGMEM = "TIMER0 OVF"; -#endif -#ifdef TIMER1_CAPT_vect - prog_char gAvrInt_TIMER1_CAPT[] PROGMEM = "TIMER1 CAPT"; -#endif -#ifdef TIMER1_COMPA_vect - prog_char gAvrInt_TIMER1_COMPA[] PROGMEM = "TIMER1 COMPA"; -#endif -#ifdef TIMER1_COMPB_vect - prog_char gAvrInt_TIMER1_COMPB[] PROGMEM = "TIMER1 COMPB"; -#endif -#ifdef TIMER1_COMPC_vect - prog_char gAvrInt_TIMER1_COMPC[] PROGMEM = "TIMER1 COMPC"; -#endif -#ifdef TIMER1_OVF_vect - prog_char gAvrInt_TIMER1_OVF[] PROGMEM = "TIMER1 OVF"; -#endif -#ifdef TIMER2_COMP_vect - prog_char gAvrInt_TIMER2_COMP[] PROGMEM = "TIMER2 COMP"; -#endif -#ifdef TIMER2_COMPA_vect - prog_char gAvrInt_TIMER2_COMPA[] PROGMEM = "TIMER2 COMPA"; -#endif -#ifdef TIMER2_COMPB_vect - prog_char gAvrInt_TIMER2_COMPB[] PROGMEM = "TIMER2 COMPB"; -#endif -#ifdef TIMER2_OVF_vect - prog_char gAvrInt_TIMER2_OVF[] PROGMEM = "TIMER2 OVF"; -#endif -#ifdef TIMER3_CAPT_vect - prog_char gAvrInt_TIMER3_CAPT[] PROGMEM = "TIMER3 CAPT"; -#endif -#ifdef TIMER3_COMPA_vect - prog_char gAvrInt_TIMER3_COMPA[] PROGMEM = "TIMER3 COMPA"; -#endif -#ifdef TIMER3_COMPB_vect - prog_char gAvrInt_TIMER3_COMPB[] PROGMEM = "TIMER3 COMPB"; -#endif -#ifdef TIMER3_COMPC_vect - prog_char gAvrInt_TIMER3_COMPC[] PROGMEM = "TIMER3 COMPC"; -#endif -#ifdef TIMER3_OVF_vect - prog_char gAvrInt_TIMER3_OVF[] PROGMEM = "TIMER3 OVF"; -#endif -#ifdef TIMER4_CAPT_vect - prog_char gAvrInt_TIMER4_CAPT[] PROGMEM = "TIMER4 CAPT"; -#endif -#ifdef TIMER4_COMPA_vect - prog_char gAvrInt_TIMER4_COMPA[] PROGMEM = "TIMER4 COMPA"; -#endif -#ifdef TIMER4_COMPB_vect - prog_char gAvrInt_TIMER4_COMPB[] PROGMEM = "TIMER4 COMPB"; -#endif -#ifdef TIMER4_COMPC_vect - prog_char gAvrInt_TIMER4_COMPC[] PROGMEM = "TIMER4 COMPC"; -#endif -#ifdef TIMER4_COMPD_vect - prog_char gAvrInt_TIMER4_COMPD[] PROGMEM = "TIMER4 COMPD"; -#endif -#ifdef TIMER4_OVF_vect - prog_char gAvrInt_TIMER4_OVF[] PROGMEM = "TIMER4 OVF"; -#endif -#ifdef TIMER4_FPF_vect - prog_char gAvrInt_TIMER4_FPF[] PROGMEM = "TIMER4 Fault Protection"; -#endif -#ifdef TIMER5_CAPT_vect - prog_char gAvrInt_TIMER5_CAPT[] PROGMEM = "TIMER5 CAPT"; -#endif -#ifdef TIMER5_COMPA_vect - prog_char gAvrInt_TIMER5_COMPA[] PROGMEM = "TIMER5 COMPA"; -#endif -#ifdef TIMER5_COMPB_vect - prog_char gAvrInt_TIMER5_COMPB[] PROGMEM = "TIMER5 COMPB"; -#endif -#ifdef TIMER5_COMPC_vect - prog_char gAvrInt_TIMER5_COMPC[] PROGMEM = "TIMER5 COMPC"; -#endif -#ifdef TIMER5_OVF_vect - prog_char gAvrInt_TIMER5_OVF[] PROGMEM = "TIMER5 OVF"; -#endif - -//* when there is only 1 usart -#if defined(USART_RX_vect) || defined(USART_RXC_vect) - prog_char gAvrInt_USART_RX[] PROGMEM = "USART RX"; -#endif -#if defined(USART_UDRE_vect) - prog_char gAvrInt_USART_UDRE[] PROGMEM = "USART UDRE"; -#endif -#if defined(USART_TX_vect) || defined(USART_TXC_vect) - prog_char gAvrInt_USART_TX[] PROGMEM = "USART TX"; -#endif - - -//* usart 0 -#if defined(USART0_RX_vect) - prog_char gAvrInt_USART0_RX[] PROGMEM = "USART0 RX"; -#endif -#if defined(USART0_UDRE_vect) - prog_char gAvrInt_USART0_UDRE[] PROGMEM = "USART0 UDRE"; -#endif -#if defined(USART0_TX_vect) - prog_char gAvrInt_USART0_TX[] PROGMEM = "USART0 TX"; -#endif - - -//* usart 1 -#ifdef USART1_RX_vect - prog_char gAvrInt_USART1_RX[] PROGMEM = "USART1 RX"; -#endif -#ifdef USART1_UDRE_vect - prog_char gAvrInt_USART1_UDRE[] PROGMEM = "USART1 UDRE"; -#endif -#ifdef USART1_TX_vect - prog_char gAvrInt_USART1_TX[] PROGMEM = "USART1 TX"; -#endif - -//* usart 2 -#ifdef USART2_RX_vect - prog_char gAvrInt_USART2_RX[] PROGMEM = "USART2 RX"; -#endif -#ifdef USART2_UDRE_vect - prog_char gAvrInt_USART2_UDRE[] PROGMEM = "USART2 UDRE"; -#endif -#ifdef USART2_TX_vect - prog_char gAvrInt_USART2_TX[] PROGMEM = "USART2 TX"; -#endif - -//* usart 3 -#ifdef USART3_RX_vect - prog_char gAvrInt_USART3_RX[] PROGMEM = "USART3 RX"; -#endif -#ifdef USART3_UDRE_vect - prog_char gAvrInt_USART3_UDRE[] PROGMEM = "USART3 UDRE"; -#endif -#ifdef USART3_TX_vect - prog_char gAvrInt_USART3_TX[] PROGMEM = "USART3 TX"; -#endif -#ifdef SPI_STC_vect - prog_char gAvrInt_SPI_STC[] PROGMEM = "SPI STC"; -#endif -#ifdef ADC_vect - prog_char gAvrInt_ADC[] PROGMEM = "ADC"; -#endif -#if defined(ANALOG_COMP_vect) || defined(ANA_COMP_vect) - prog_char gAvrInt_ANALOG_COMP[] PROGMEM = "ANALOG COMP"; -#endif -#if defined(EE_READY_vect) || defined(EE_RDY_vect) - prog_char gAvrInt_EE_READY[] PROGMEM = "EE READY"; -#endif -#ifdef TWI_vect - prog_char gAvrInt_TWI[] PROGMEM = "TWI"; -#endif -#if defined(SPM_READY_vect) || defined(SPM_RDY_vect) - prog_char gAvrInt_SPM_READY[] PROGMEM = "SPM READY"; -#endif -#ifdef USI_START_vect - prog_char gAvrInt_USI_START[] PROGMEM = "USI START"; -#endif -#ifdef USI_OVERFLOW_vect - prog_char gAvrInt_USI_OVERFLOW[] PROGMEM = "USI OVERFLOW"; -#endif -#ifdef USB_GEN_vect - prog_char gAvrInt_USB_General[] PROGMEM = "USB General"; -#endif -#ifdef USB_COM_vect - prog_char gAvrInt_USB_Endpoint[] PROGMEM = "USB Endpoint"; -#endif - -#ifdef LCD_vect - prog_char gAvrInt_LCD_StartFrame[] PROGMEM = "LCD Start of Frame"; -#endif - - -//************************************************************************************************** -//* these do not have vector defs and have to be done by CPU type -#if defined(__AVR_ATmega645__ ) || defined(__AVR_ATmega1281__) || defined(__AVR_ATmega2561__) - prog_char gAvrInt_NOT_USED[] PROGMEM = "NOT_USED"; -#endif -#if defined(__AVR_ATmega32U4__) - prog_char gAvrInt_RESERVED[] PROGMEM = "Reserved"; -#endif - - prog_char gAvrInt_END[] PROGMEM = "*"; - - - - - -//************************************************************************************************** -#if defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) -#pragma mark __AVR_ATmega168__ / __AVR_ATmega328P__ - -#define _INTERRUPT_NAMES_DEFINED_ - -PGM_P gInterruptNameTable[] PROGMEM = -{ - - gAvrInt_RESET, // 1 - gAvrInt_INT0, // 2 - gAvrInt_INT1, // 3 - gAvrInt_PCINT0, // 4 - gAvrInt_PCINT1, // 5 - gAvrInt_PCINT2, // 6 - gAvrInt_WDT, // 7 - gAvrInt_TIMER2_COMPA, // 8 - gAvrInt_TIMER2_COMPB, // 9 - gAvrInt_TIMER2_OVF, // 10 - gAvrInt_TIMER1_CAPT, // 11 - gAvrInt_TIMER1_COMPA, // 12 - gAvrInt_TIMER1_COMPB, // 13 - gAvrInt_TIMER1_OVF, // 14 - gAvrInt_TIMER0_COMPA, // 15 - gAvrInt_TIMER0_COMPB, // 16 - gAvrInt_TIMER0_OVF, // 17 - gAvrInt_SPI_STC, // 18 - gAvrInt_USART_RX, // 19 - gAvrInt_USART_UDRE, // 20 - gAvrInt_USART_TX, // 21 - gAvrInt_ADC, // 22 - gAvrInt_EE_READY, // 23 - gAvrInt_ANALOG_COMP, // 24 - gAvrInt_TWI, // 25 - gAvrInt_SPM_READY, // 26 -}; - -#endif - -//************************************************************************************************** -#pragma mark __AVR_ATmega169__ -#if defined(__AVR_ATmega169__) - -#define _INTERRUPT_NAMES_DEFINED_ - -PGM_P gInterruptNameTable[] PROGMEM = -{ - - gAvrInt_RESET, // 1 - gAvrInt_INT0, // 2 - gAvrInt_PCINT0, // 3 - gAvrInt_PCINT1, // 4 - gAvrInt_TIMER2_COMP, // 5 - gAvrInt_TIMER2_OVF, // 6 - gAvrInt_TIMER1_CAPT, // 7 - gAvrInt_TIMER1_COMPA, // 8 - gAvrInt_TIMER1_COMPB, // 9 - gAvrInt_TIMER1_OVF, // 10 - gAvrInt_TIMER0_COMP, // 11 - gAvrInt_TIMER0_OVF, // 12 - gAvrInt_SPI_STC, // 13 - gAvrInt_USART0_RX, // 14 - gAvrInt_USART0_UDRE, // 15 - gAvrInt_USART0_TX, // 16 - gAvrInt_USI_START, // 17 - gAvrInt_USI_OVERFLOW, // 18 - gAvrInt_ANALOG_COMP, // 19 - gAvrInt_ADC, // 20 - gAvrInt_EE_READY, // 21 - gAvrInt_SPM_READY, // 22 - gAvrInt_LCD_StartFrame, // 23 - -}; - -#endif - - -//************************************************************************************************** -#if defined(__AVR_ATmega640__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1281__) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega2561__) -#pragma mark __AVR_ATmega640__ __AVR_ATmega1280__ __AVR_ATmega1281__ __AVR_ATmega2560__ __AVR_ATmega2561__ - -#define _INTERRUPT_NAMES_DEFINED_ - -PGM_P gInterruptNameTable[] PROGMEM = -{ - - gAvrInt_RESET, // 1 - gAvrInt_INT0, // 2 - gAvrInt_INT1, // 3 - gAvrInt_INT2, // 4 - gAvrInt_INT3, // 5 - gAvrInt_INT4, // 6 - gAvrInt_INT5, // 7 - gAvrInt_INT6, // 8 - gAvrInt_INT7, // 9 - gAvrInt_PCINT0, // 10 - gAvrInt_PCINT1, // 11 -#if defined(__AVR_ATmega640__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) - gAvrInt_PCINT2, // 12 -#else - gAvrInt_NOT_USED, // 12 -#endif - gAvrInt_WDT, // 13 - gAvrInt_TIMER2_COMPA, // 14 - gAvrInt_TIMER2_COMPB, // 15 - gAvrInt_TIMER2_OVF, // 16 - gAvrInt_TIMER1_CAPT, // 17 - gAvrInt_TIMER1_COMPA, // 18 - gAvrInt_TIMER1_COMPB, // 19 - gAvrInt_TIMER1_COMPC, // 20 - gAvrInt_TIMER1_OVF, // 21 - gAvrInt_TIMER0_COMPA, // 22 - gAvrInt_TIMER0_COMPB, // 23 - gAvrInt_TIMER0_OVF, // 24 - gAvrInt_SPI_STC, // 25 - - gAvrInt_USART0_RX, // 26 - gAvrInt_USART0_UDRE, // 27 - gAvrInt_USART0_TX, // 28 - gAvrInt_ANALOG_COMP, // 29 - gAvrInt_ADC, // 30 - gAvrInt_EE_READY, // 31 - - gAvrInt_TIMER3_CAPT, // 32 - gAvrInt_TIMER3_COMPA, // 33 - gAvrInt_TIMER3_COMPB, // 34 - gAvrInt_TIMER3_COMPC, // 35 - gAvrInt_TIMER3_OVF, // 36 - - gAvrInt_USART1_RX, // 37 - gAvrInt_USART1_UDRE, // 38 - gAvrInt_USART1_TX, // 39 - gAvrInt_TWI, // 40 - gAvrInt_SPM_READY, // 41 -#if defined(__AVR_ATmega640__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) - gAvrInt_TIMER4_CAPT, // 42 -#else - gAvrInt_NOT_USED, // 42 -#endif - gAvrInt_TIMER4_COMPA, // 43 - gAvrInt_TIMER4_COMPB, // 44 - gAvrInt_TIMER4_COMPC, // 45 - gAvrInt_TIMER4_OVF, // 46 -#if defined(__AVR_ATmega640__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) - gAvrInt_TIMER5_CAPT, // 47 -#else - gAvrInt_NOT_USED, // 47 -#endif - gAvrInt_TIMER5_COMPA, // 48 - gAvrInt_TIMER5_COMPB, // 49 - gAvrInt_TIMER5_COMPC, // 50 - gAvrInt_TIMER5_OVF, // 51 - -#if defined(__AVR_ATmega640__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) - gAvrInt_USART2_RX, // 52 - gAvrInt_USART2_UDRE, // 53 - gAvrInt_USART2_TX, // 54 - - gAvrInt_USART3_RX, // 55 - gAvrInt_USART3_UDRE, // 56 - gAvrInt_USART3_TX, // 57 -#endif - -}; - -#endif - - - -//************************************************************************************************** -#if defined(__AVR_ATmega324P__ ) || defined(__AVR_ATmega644__ ) || defined(__AVR_ATmega644P__) || defined(__AVR_ATmega1284P__) -#pragma mark __AVR_ATmega324P__ __AVR_ATmega644__ __AVR_ATmega644P__ __AVR_ATmega1284P__ - -#define _INTERRUPT_NAMES_DEFINED_ - -PGM_P gInterruptNameTable[] PROGMEM = -{ - - gAvrInt_RESET, // 1 - gAvrInt_INT0, // 2 - gAvrInt_INT1, // 3 - gAvrInt_INT2, // 4 - gAvrInt_PCINT0, // 5 - gAvrInt_PCINT1, // 6 - gAvrInt_PCINT2, // 7 - gAvrInt_PCINT3, // 8 - gAvrInt_WDT, // 9 - gAvrInt_TIMER2_COMPA, // 10 - gAvrInt_TIMER2_COMPB, // 11 - gAvrInt_TIMER2_OVF, // 12 - gAvrInt_TIMER1_CAPT, // 13 - gAvrInt_TIMER1_COMPA, // 14 - gAvrInt_TIMER1_COMPB, // 15 - gAvrInt_TIMER1_OVF, // 16 - gAvrInt_TIMER0_COMPA, // 17 - gAvrInt_TIMER0_COMPB, // 18 - gAvrInt_TIMER0_OVF, // 19 - gAvrInt_SPI_STC, // 20 - gAvrInt_USART0_RX, // 21 - gAvrInt_USART0_UDRE, // 22 - gAvrInt_USART0_TX, // 23 - gAvrInt_ANALOG_COMP, // 24 - gAvrInt_ADC, // 25 - gAvrInt_EE_READY, // 26 - gAvrInt_TWI, // 27 - gAvrInt_SPM_READY, // 28 - -#if defined(__AVR_ATmega324P__ ) || defined(__AVR_ATmega644P__) - gAvrInt_USART1_RX, // 29 - gAvrInt_USART1_UDRE, // 30 - gAvrInt_USART1_TX, // 31 -#endif - -}; - - -#endif - -//************************************************************************************************** -#if defined(__AVR_ATmega645__ ) -#pragma mark __AVR_ATmega645__ - -#define _INTERRUPT_NAMES_DEFINED_ - -PGM_P gInterruptNameTable[] PROGMEM = -{ - - gAvrInt_RESET, // 1 - gAvrInt_INT0, // 2 - gAvrInt_PCINT0, // 3 - gAvrInt_PCINT1, // 4 - gAvrInt_TIMER2_COMP, // 5 - gAvrInt_TIMER2_OVF, // 6 - gAvrInt_TIMER1_CAPT, // 7 - gAvrInt_TIMER1_COMPA, // 8 - gAvrInt_TIMER1_COMPB, // 9 - gAvrInt_TIMER1_OVF, // 10 - gAvrInt_TIMER0_COMP, // 11 - gAvrInt_TIMER0_OVF, // 12 - gAvrInt_SPI_STC, // 13 - gAvrInt_USART0_RX, // 14 - gAvrInt_USART0_UDRE, // 15 - gAvrInt_USART0_TX, // 16 - gAvrInt_USI_START, // 17 - gAvrInt_USI_OVERFLOW, // 18 - gAvrInt_ANALOG_COMP, // 19 - gAvrInt_ADC, // 20 - gAvrInt_EE_READY, // 21 - gAvrInt_SPM_READY, // 22 - gAvrInt_NOT_USED, // 23 - -#if defined(__AVR_ATmega3250__) || defined(__AVR_ATmega6450__) - gAvrInt_PCINT2, // 24 - gAvrInt_PCINT3, // 25 -#endif -}; - - -#endif - - -//************************************************************************************************** -#if defined(__AVR_ATmega32__ ) -#pragma mark __AVR_ATmega32__ - -#define _INTERRUPT_NAMES_DEFINED_ - -PGM_P gInterruptNameTable[] PROGMEM = -{ - - gAvrInt_RESET, // 1 - gAvrInt_INT0, // 2 - gAvrInt_INT1, // 3 - gAvrInt_INT2, // 4 - gAvrInt_TIMER2_COMP, // 5 - gAvrInt_TIMER2_OVF, // 6 - gAvrInt_TIMER1_CAPT, // 7 - gAvrInt_TIMER1_COMPA, // 8 - gAvrInt_TIMER1_COMPB, // 9 - gAvrInt_TIMER1_OVF, // 10 - gAvrInt_TIMER0_COMP, // 11 - gAvrInt_TIMER0_OVF, // 12 - gAvrInt_SPI_STC, // 13 - gAvrInt_USART_RX, // 14 - gAvrInt_USART_UDRE, // 15 - gAvrInt_USART_TX, // 16 - gAvrInt_ADC, // 17 - gAvrInt_EE_READY, // 18 - gAvrInt_ANALOG_COMP, // 19 - gAvrInt_TWI, // 20 - gAvrInt_SPM_READY, // 21 - -}; - - -#endif - -//************************************************************************************************** -#if defined(__AVR_ATmega32U4__) -#pragma mark __AVR_ATmega32U4__ -//* teensy 2.0 -//* http://www.pjrc.com/teensy/pinout.html -#define _INTERRUPT_NAMES_DEFINED_ - - -PGM_P gInterruptNameTable[] PROGMEM = -{ - - gAvrInt_RESET, // 1 - gAvrInt_INT0, // 2 - gAvrInt_INT1, // 3 - gAvrInt_INT2, // 4 - gAvrInt_INT3, // 5 - gAvrInt_RESERVED, // 6 - gAvrInt_RESERVED, // 7 - gAvrInt_INT6, // 8 - gAvrInt_RESERVED, // 9 - gAvrInt_PCINT0, // 10 - gAvrInt_USB_General, // 11 - gAvrInt_USB_Endpoint, // 12 - gAvrInt_WDT, // 13 - gAvrInt_RESERVED, // 14 - gAvrInt_RESERVED, // 15 - gAvrInt_RESERVED, // 16 - gAvrInt_TIMER1_CAPT, // 17 - gAvrInt_TIMER1_COMPA, // 18 - gAvrInt_TIMER1_COMPB, // 19 - gAvrInt_TIMER1_COMPC, // 20 - gAvrInt_TIMER1_OVF, // 21 - gAvrInt_TIMER0_COMPA, // 22 - gAvrInt_TIMER0_COMPB, // 23 - gAvrInt_TIMER0_OVF, // 24 - gAvrInt_SPI_STC, // 25 - - gAvrInt_USART1_RX, // 26 - gAvrInt_USART1_UDRE, // 27 - gAvrInt_USART1_TX, // 28 - gAvrInt_ANALOG_COMP, // 29 - - gAvrInt_ADC, // 30 - gAvrInt_EE_READY, // 31 - - gAvrInt_TIMER3_CAPT, // 32 - gAvrInt_TIMER3_COMPA, // 33 - gAvrInt_TIMER3_COMPB, // 34 - gAvrInt_TIMER3_COMPC, // 35 - gAvrInt_TIMER3_OVF, // 36 - gAvrInt_TWI, // 37 - gAvrInt_SPM_READY, // 38 - - gAvrInt_TIMER4_COMPA, // 39 - gAvrInt_TIMER4_COMPB, // 40 - gAvrInt_TIMER4_COMPD, // 41 - gAvrInt_TIMER4_OVF, // 42 - gAvrInt_TIMER4_FPF, // 43 -}; - -#endif - -//************************************************************************************************** -#if defined(__AVR_AT90USB1286__) -#pragma mark __AVR_AT90USB1286__ -//* teensy++ 2.0 -//* http://www.pjrc.com/teensy/pinout.html -#define _INTERRUPT_NAMES_DEFINED_ - - -PGM_P gInterruptNameTable[] PROGMEM = -{ - - gAvrInt_RESET, // 1 - gAvrInt_INT0, // 2 - gAvrInt_INT1, // 3 - gAvrInt_INT2, // 4 - gAvrInt_INT3, // 5 - gAvrInt_INT4, // 6 - gAvrInt_INT5, // 7 - gAvrInt_INT6, // 8 - gAvrInt_INT7, // 9 - gAvrInt_PCINT0, // 10 - gAvrInt_USB_General, // 11 - gAvrInt_USB_Endpoint, // 12 - gAvrInt_WDT, // 13 - gAvrInt_TIMER2_COMPA, // 14 - gAvrInt_TIMER2_COMPB, // 15 - gAvrInt_TIMER2_OVF, // 16 - gAvrInt_TIMER1_CAPT, // 17 - gAvrInt_TIMER1_COMPA, // 18 - gAvrInt_TIMER1_COMPB, // 19 - gAvrInt_TIMER1_COMPC, // 20 - gAvrInt_TIMER1_OVF, // 21 - gAvrInt_TIMER0_COMPA, // 22 - gAvrInt_TIMER0_COMPB, // 23 - gAvrInt_TIMER0_OVF, // 24 - gAvrInt_SPI_STC, // 25 - - gAvrInt_USART1_RX, // 26 - gAvrInt_USART1_UDRE, // 27 - gAvrInt_USART1_TX, // 28 - gAvrInt_ANALOG_COMP, // 29 - - gAvrInt_ADC, // 30 - gAvrInt_EE_READY, // 31 - - gAvrInt_TIMER3_CAPT, // 32 - gAvrInt_TIMER3_COMPA, // 33 - gAvrInt_TIMER3_COMPB, // 34 - gAvrInt_TIMER3_COMPC, // 35 - gAvrInt_TIMER3_OVF, // 36 - gAvrInt_TWI, // 37 - gAvrInt_SPM_READY, // 38 - -}; - -#endif - - - - -//************************************************************************************************** -#if defined(__AVR_ATmega128__) -#pragma mark __AVR_ATmega128__ -#define _INTERRUPT_NAMES_DEFINED_ - - -PGM_P gInterruptNameTable[] PROGMEM = -{ - - gAvrInt_RESET, // 1 - gAvrInt_INT0, // 2 - gAvrInt_INT1, // 3 - gAvrInt_INT2, // 4 - gAvrInt_INT3, // 5 - gAvrInt_INT4, // 6 - gAvrInt_INT5, // 7 - gAvrInt_INT6, // 8 - gAvrInt_INT7, // 9 - gAvrInt_TIMER2_COMP, // 10 - gAvrInt_TIMER2_OVF, // 11 - gAvrInt_TIMER1_CAPT, // 12 - gAvrInt_TIMER1_COMPA, // 13 - gAvrInt_TIMER1_COMPB, // 14 - gAvrInt_TIMER1_OVF, // 15 - gAvrInt_TIMER0_COMP, // 16 - gAvrInt_TIMER0_OVF, // 17 - gAvrInt_SPI_STC, // 18 - gAvrInt_USART0_RX, // 19 - gAvrInt_USART0_UDRE, // 20 - gAvrInt_USART0_TX, // 21 - gAvrInt_ADC, // 22 - gAvrInt_EE_READY, // 23 - gAvrInt_ANALOG_COMP, // 24 - gAvrInt_TIMER1_COMPC, // 25 - gAvrInt_TIMER3_CAPT, // 26 - gAvrInt_TIMER3_COMPA, // 27 - gAvrInt_TIMER3_COMPB, // 28 - gAvrInt_TIMER3_COMPC, // 29 - gAvrInt_TIMER3_OVF, // 30 - gAvrInt_USART1_RX, // 31 - gAvrInt_USART1_UDRE, // 32 - gAvrInt_USART1_TX, // 33 - gAvrInt_TWI, // 34 - gAvrInt_SPM_READY, // 35 - -}; - -#endif - -#if !defined(_INTERRUPT_NAMES_DEFINED_) - #warning No interrupt string defs for this cpu -#endif \ No newline at end of file diff --git a/build/linux/work/hardware/arduino/bootloaders/stk500v2/command.h b/build/linux/work/hardware/arduino/bootloaders/stk500v2/command.h deleted file mode 100644 index 03b1b38af..000000000 --- a/build/linux/work/hardware/arduino/bootloaders/stk500v2/command.h +++ /dev/null @@ -1,114 +0,0 @@ -//**** ATMEL AVR - A P P L I C A T I O N N O T E ************************ -//* -//* Title: AVR068 - STK500 Communication Protocol -//* Filename: command.h -//* Version: 1.0 -//* Last updated: 31.01.2005 -//* -//* Support E-mail: avr@atmel.com -//* -//************************************************************************** - -// *****************[ STK message constants ]*************************** - -#define MESSAGE_START 0x1B //= ESC = 27 decimal -#define TOKEN 0x0E - -// *****************[ STK general command constants ]************************** - -#define CMD_SIGN_ON 0x01 -#define CMD_SET_PARAMETER 0x02 -#define CMD_GET_PARAMETER 0x03 -#define CMD_SET_DEVICE_PARAMETERS 0x04 -#define CMD_OSCCAL 0x05 -#define CMD_LOAD_ADDRESS 0x06 -#define CMD_FIRMWARE_UPGRADE 0x07 - - -// *****************[ STK ISP command constants ]****************************** - -#define CMD_ENTER_PROGMODE_ISP 0x10 -#define CMD_LEAVE_PROGMODE_ISP 0x11 -#define CMD_CHIP_ERASE_ISP 0x12 -#define CMD_PROGRAM_FLASH_ISP 0x13 -#define CMD_READ_FLASH_ISP 0x14 -#define CMD_PROGRAM_EEPROM_ISP 0x15 -#define CMD_READ_EEPROM_ISP 0x16 -#define CMD_PROGRAM_FUSE_ISP 0x17 -#define CMD_READ_FUSE_ISP 0x18 -#define CMD_PROGRAM_LOCK_ISP 0x19 -#define CMD_READ_LOCK_ISP 0x1A -#define CMD_READ_SIGNATURE_ISP 0x1B -#define CMD_READ_OSCCAL_ISP 0x1C -#define CMD_SPI_MULTI 0x1D - -// *****************[ STK PP command constants ]******************************* - -#define CMD_ENTER_PROGMODE_PP 0x20 -#define CMD_LEAVE_PROGMODE_PP 0x21 -#define CMD_CHIP_ERASE_PP 0x22 -#define CMD_PROGRAM_FLASH_PP 0x23 -#define CMD_READ_FLASH_PP 0x24 -#define CMD_PROGRAM_EEPROM_PP 0x25 -#define CMD_READ_EEPROM_PP 0x26 -#define CMD_PROGRAM_FUSE_PP 0x27 -#define CMD_READ_FUSE_PP 0x28 -#define CMD_PROGRAM_LOCK_PP 0x29 -#define CMD_READ_LOCK_PP 0x2A -#define CMD_READ_SIGNATURE_PP 0x2B -#define CMD_READ_OSCCAL_PP 0x2C - -#define CMD_SET_CONTROL_STACK 0x2D - -// *****************[ STK HVSP command constants ]***************************** - -#define CMD_ENTER_PROGMODE_HVSP 0x30 -#define CMD_LEAVE_PROGMODE_HVSP 0x31 -#define CMD_CHIP_ERASE_HVSP 0x32 -#define CMD_PROGRAM_FLASH_HVSP ` 0x33 -#define CMD_READ_FLASH_HVSP 0x34 -#define CMD_PROGRAM_EEPROM_HVSP 0x35 -#define CMD_READ_EEPROM_HVSP 0x36 -#define CMD_PROGRAM_FUSE_HVSP 0x37 -#define CMD_READ_FUSE_HVSP 0x38 -#define CMD_PROGRAM_LOCK_HVSP 0x39 -#define CMD_READ_LOCK_HVSP 0x3A -#define CMD_READ_SIGNATURE_HVSP 0x3B -#define CMD_READ_OSCCAL_HVSP 0x3C - -// *****************[ STK status constants ]*************************** - -// Success -#define STATUS_CMD_OK 0x00 - -// Warnings -#define STATUS_CMD_TOUT 0x80 -#define STATUS_RDY_BSY_TOUT 0x81 -#define STATUS_SET_PARAM_MISSING 0x82 - -// Errors -#define STATUS_CMD_FAILED 0xC0 -#define STATUS_CKSUM_ERROR 0xC1 -#define STATUS_CMD_UNKNOWN 0xC9 - -// *****************[ STK parameter constants ]*************************** -#define PARAM_BUILD_NUMBER_LOW 0x80 -#define PARAM_BUILD_NUMBER_HIGH 0x81 -#define PARAM_HW_VER 0x90 -#define PARAM_SW_MAJOR 0x91 -#define PARAM_SW_MINOR 0x92 -#define PARAM_VTARGET 0x94 -#define PARAM_VADJUST 0x95 -#define PARAM_OSC_PSCALE 0x96 -#define PARAM_OSC_CMATCH 0x97 -#define PARAM_SCK_DURATION 0x98 -#define PARAM_TOPCARD_DETECT 0x9A -#define PARAM_STATUS 0x9C -#define PARAM_DATA 0x9D -#define PARAM_RESET_POLARITY 0x9E -#define PARAM_CONTROLLER_INIT 0x9F - -// *****************[ STK answer constants ]*************************** - -#define ANSWER_CKSUM_ERROR 0xB0 - diff --git a/build/linux/work/hardware/arduino/bootloaders/stk500v2/stk500boot.c b/build/linux/work/hardware/arduino/bootloaders/stk500v2/stk500boot.c deleted file mode 100644 index 13dec8951..000000000 --- a/build/linux/work/hardware/arduino/bootloaders/stk500v2/stk500boot.c +++ /dev/null @@ -1,1996 +0,0 @@ -/***************************************************************************** -Title: STK500v2 compatible bootloader - Modified for Wiring board ATMega128-16MHz -Author: Peter Fleury http://jump.to/fleury -File: $Id: stk500boot.c,v 1.11 2006/06/25 12:39:17 peter Exp $ -Compiler: avr-gcc 3.4.5 or 4.1 / avr-libc 1.4.3 -Hardware: All AVRs with bootloader support, tested with ATmega8 -License: GNU General Public License - -Modified: Worapoht Kornkaewwattanakul http://www.avride.com -Date: 17 October 2007 -Update: 1st, 29 Dec 2007 : Enable CMD_SPI_MULTI but ignore unused command by return 0x00 byte response.. -Compiler: WINAVR20060421 -Description: add timeout feature like previous Wiring bootloader - -DESCRIPTION: - This program allows an AVR with bootloader capabilities to - read/write its own Flash/EEprom. To enter Programming mode - an input pin is checked. If this pin is pulled low, programming mode - is entered. If not, normal execution is done from $0000 - "reset" vector in Application area. - Size fits into a 1024 word bootloader section - when compiled with avr-gcc 4.1 - (direct replace on Wiring Board without fuse setting changed) - -USAGE: - - Set AVR MCU type and clock-frequency (F_CPU) in the Makefile. - - Set baud rate below (AVRISP only works with 115200 bps) - - compile/link the bootloader with the supplied Makefile - - program the "Boot Flash section size" (BOOTSZ fuses), - for boot-size 1024 words: program BOOTSZ01 - - enable the BOOT Reset Vector (program BOOTRST) - - Upload the hex file to the AVR using any ISP programmer - - Program Boot Lock Mode 3 (program BootLock 11 and BootLock 12 lock bits) // (leave them) - - Reset your AVR while keeping PROG_PIN pulled low // (for enter bootloader by switch) - - Start AVRISP Programmer (AVRStudio/Tools/Program AVR) - - AVRISP will detect the bootloader - - Program your application FLASH file and optional EEPROM file using AVRISP - -Note: - Erasing the device without flashing, through AVRISP GUI button "Erase Device" - is not implemented, due to AVRStudio limitations. - Flash is always erased before programming. - - AVRdude: - Please uncomment #define REMOVE_CMD_SPI_MULTI when using AVRdude. - Comment #define REMOVE_PROGRAM_LOCK_BIT_SUPPORT to reduce code size - Read Fuse Bits and Read/Write Lock Bits is not supported - -NOTES: - Based on Atmel Application Note AVR109 - Self-programming - Based on Atmel Application Note AVR068 - STK500v2 Protocol - -LICENSE: - Copyright (C) 2006 Peter Fleury - - 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 2 of the License, or - 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. - -*****************************************************************************/ - -//************************************************************************ -//* Edit History -//************************************************************************ -//* Jul 7, 2010 = Mark Sproul msproul@skycharoit.com -//* Jul 7, 2010 Working on mega2560. No Auto-restart -//* Jul 7, 2010 Switched to 8K bytes (4K words) so that we have room for the monitor -//* Jul 8, 2010 Found older version of source that had auto restart, put that code back in -//* Jul 8, 2010 Adding monitor code -//* Jul 11, 2010 Added blinking LED while waiting for download to start -//* Jul 11, 2010 Added EEPROM test -//* Jul 29, 2010 Added recchar_timeout for timing out on bootloading -//* Aug 23, 2010 Added support for atmega2561 -//* Aug 26, 2010 Removed support for BOOT_BY_SWITCH -//************************************************************************ - - - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "command.h" - - -#if defined(_MEGA_BOARD_) || defined(_BOARD_AMBER128_) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega2561__) - #define ENABLE_MONITOR - static void RunMonitor(void); -#endif - -//#define _DEBUG_SERIAL_ -//#define _DEBUG_WITH_LEDS_ - - -/* - * Uncomment the following lines to save code space - */ -//#define REMOVE_PROGRAM_LOCK_BIT_SUPPORT // disable program lock bits -//#define REMOVE_BOOTLOADER_LED // no LED to show active bootloader -//#define REMOVE_CMD_SPI_MULTI // disable processing of SPI_MULTI commands, Remark this line for AVRDUDE -// - - - -//************************************************************************ -//* LED on pin "PROGLED_PIN" on port "PROGLED_PORT" -//* indicates that bootloader is active -//* PG2 -> LED on Wiring board -//************************************************************************ -#define BLINK_LED_WHILE_WAITING - -#ifdef _MEGA_BOARD_ - #define PROGLED_PORT PORTB - #define PROGLED_DDR DDRB - #define PROGLED_PIN PINB7 -#elif defined( _BOARD_AMBER128_ ) - //* this is for the amber 128 http://www.soc-robotics.com/ - //* onbarod led is PORTE4 - #define PROGLED_PORT PORTD - #define PROGLED_DDR DDRD - #define PROGLED_PIN PINE7 -#elif defined( _CEREBOTPLUS_BOARD_ ) - //* this is for the Cerebot 2560 board - //* onbarod leds are on PORTE4-7 - #define PROGLED_PORT PORTE - #define PROGLED_DDR DDRE - #define PROGLED_PIN PINE7 -#elif defined( _PENGUINO_ ) - //* this is for the Penguino - //* onbarod led is PORTE4 - #define PROGLED_PORT PORTC - #define PROGLED_DDR DDRC - #define PROGLED_PIN PINC6 -#elif defined( _ANDROID_2561_ ) || defined( __AVR_ATmega2561__ ) - //* this is for the Boston Android 2561 - //* onbarod led is PORTE4 - #define PROGLED_PORT PORTA - #define PROGLED_DDR DDRA - #define PROGLED_PIN PINA3 -#else - #define PROGLED_PORT PORTG - #define PROGLED_DDR DDRG - #define PROGLED_PIN PING2 -#endif - - - -/* - * define CPU frequency in Mhz here if not defined in Makefile - */ -#ifndef F_CPU - #define F_CPU 16000000UL -#endif - -/* - * UART Baudrate, AVRStudio AVRISP only accepts 115200 bps - */ - -#ifndef BAUDRATE - #define BAUDRATE 115200 -#endif - -/* - * Enable (1) or disable (0) USART double speed operation - */ -#ifndef UART_BAUDRATE_DOUBLE_SPEED - #if defined (__AVR_ATmega32__) - #define UART_BAUDRATE_DOUBLE_SPEED 0 - #else - #define UART_BAUDRATE_DOUBLE_SPEED 1 - #endif -#endif - -/* - * HW and SW version, reported to AVRISP, must match version of AVRStudio - */ -#define CONFIG_PARAM_BUILD_NUMBER_LOW 0 -#define CONFIG_PARAM_BUILD_NUMBER_HIGH 0 -#define CONFIG_PARAM_HW_VER 0x0F -#define CONFIG_PARAM_SW_MAJOR 2 -#define CONFIG_PARAM_SW_MINOR 0x0A - -/* - * Calculate the address where the bootloader starts from FLASHEND and BOOTSIZE - * (adjust BOOTSIZE below and BOOTLOADER_ADDRESS in Makefile if you want to change the size of the bootloader) - */ -//#define BOOTSIZE 1024 -#if FLASHEND > 0x0F000 - #define BOOTSIZE 8192 -#else - #define BOOTSIZE 2048 -#endif - -#define APP_END (FLASHEND -(2*BOOTSIZE) + 1) - -/* - * Signature bytes are not available in avr-gcc io_xxx.h - */ -#if defined (__AVR_ATmega8__) - #define SIGNATURE_BYTES 0x1E9307 -#elif defined (__AVR_ATmega16__) - #define SIGNATURE_BYTES 0x1E9403 -#elif defined (__AVR_ATmega32__) - #define SIGNATURE_BYTES 0x1E9502 -#elif defined (__AVR_ATmega8515__) - #define SIGNATURE_BYTES 0x1E9306 -#elif defined (__AVR_ATmega8535__) - #define SIGNATURE_BYTES 0x1E9308 -#elif defined (__AVR_ATmega162__) - #define SIGNATURE_BYTES 0x1E9404 -#elif defined (__AVR_ATmega128__) - #define SIGNATURE_BYTES 0x1E9702 -#elif defined (__AVR_ATmega1280__) - #define SIGNATURE_BYTES 0x1E9703 -#elif defined (__AVR_ATmega2560__) - #define SIGNATURE_BYTES 0x1E9801 -#elif defined (__AVR_ATmega2561__) - #define SIGNATURE_BYTES 0x1e9802 -#else - #error "no signature definition for MCU available" -#endif - - -#if defined(__AVR_ATmega8__) || defined(__AVR_ATmega16__) || defined(__AVR_ATmega32__) \ - || defined(__AVR_ATmega8515__) || defined(__AVR_ATmega8535__) - /* ATMega8 with one USART */ - #define UART_BAUD_RATE_LOW UBRRL - #define UART_STATUS_REG UCSRA - #define UART_CONTROL_REG UCSRB - #define UART_ENABLE_TRANSMITTER TXEN - #define UART_ENABLE_RECEIVER RXEN - #define UART_TRANSMIT_COMPLETE TXC - #define UART_RECEIVE_COMPLETE RXC - #define UART_DATA_REG UDR - #define UART_DOUBLE_SPEED U2X - -#elif defined(__AVR_ATmega64__) || defined(__AVR_ATmega128__) || defined(__AVR_ATmega162__) \ - || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega2561__) - /* ATMega with two USART, use UART0 */ - #define UART_BAUD_RATE_LOW UBRR0L - #define UART_STATUS_REG UCSR0A - #define UART_CONTROL_REG UCSR0B - #define UART_ENABLE_TRANSMITTER TXEN0 - #define UART_ENABLE_RECEIVER RXEN0 - #define UART_TRANSMIT_COMPLETE TXC0 - #define UART_RECEIVE_COMPLETE RXC0 - #define UART_DATA_REG UDR0 - #define UART_DOUBLE_SPEED U2X0 -#else - #error "no UART definition for MCU available" -#endif - - - -/* - * Macro to calculate UBBR from XTAL and baudrate - */ -#if defined(__AVR_ATmega32__) && UART_BAUDRATE_DOUBLE_SPEED - #define UART_BAUD_SELECT(baudRate,xtalCpu) ((xtalCpu / 4 / baudRate - 1) / 2) -#elif defined(__AVR_ATmega32__) - #define UART_BAUD_SELECT(baudRate,xtalCpu) ((xtalCpu / 8 / baudRate - 1) / 2) -#elif UART_BAUDRATE_DOUBLE_SPEED - #define UART_BAUD_SELECT(baudRate,xtalCpu) (((float)(xtalCpu))/(((float)(baudRate))*8.0)-1.0+0.5) -#else - #define UART_BAUD_SELECT(baudRate,xtalCpu) (((float)(xtalCpu))/(((float)(baudRate))*16.0)-1.0+0.5) -#endif - - -/* - * States used in the receive state machine - */ -#define ST_START 0 -#define ST_GET_SEQ_NUM 1 -#define ST_MSG_SIZE_1 2 -#define ST_MSG_SIZE_2 3 -#define ST_GET_TOKEN 4 -#define ST_GET_DATA 5 -#define ST_GET_CHECK 6 -#define ST_PROCESS 7 - -/* - * use 16bit address variable for ATmegas with <= 64K flash - */ -#if defined(RAMPZ) - typedef uint32_t address_t; -#else - typedef uint16_t address_t; -#endif - -/* - * function prototypes - */ -static void sendchar(char c); -static unsigned char recchar(void); - -/* - * since this bootloader is not linked against the avr-gcc crt1 functions, - * to reduce the code size, we need to provide our own initialization - */ -void __jumpMain (void) __attribute__ ((naked)) __attribute__ ((section (".init9"))); -#include - -//#define SPH_REG 0x3E -//#define SPL_REG 0x3D - -//***************************************************************************** -void __jumpMain(void) -{ -//* July 17, 2010 Added stack pointer initialzation -//* the first line did not do the job on the ATmega128 - - asm volatile ( ".set __stack, %0" :: "i" (RAMEND) ); - -// ldi r16,high(RAMEND) -// out SPH,r16 ; Set stack pointer to top of RAM - -// asm volatile ( "ldi 16, 0x10"); - asm volatile ( "ldi 16, %0" :: "i" (RAMEND >> 8) ); -// asm volatile ( "out 0x3E,16"); -// asm volatile ( "out %0,16" :: "i" (SPH_REG) ); - asm volatile ( "out %0,16" :: "i" (AVR_STACK_POINTER_HI_ADDR) ); - -// asm volatile ( "ldi 16, 0x00"); - asm volatile ( "ldi 16, %0" :: "i" (RAMEND & 0x0ff) ); -// asm volatile ( "out 0x3d,16"); -// asm volatile ( "out %0,16" :: "i" (SPL_REG) ); - asm volatile ( "out %0,16" :: "i" (AVR_STACK_POINTER_LO_ADDR) ); - - - - asm volatile ( "clr __zero_reg__" ); // GCC depends on register r1 set to 0 - asm volatile ( "out %0, __zero_reg__" :: "I" (_SFR_IO_ADDR(SREG)) ); // set SREG to 0 -// asm volatile ( "rjmp main"); // jump to main() - asm volatile ( "jmp main"); // jump to main() -} - - -//***************************************************************************** -void delay_ms(unsigned int timedelay) -{ - unsigned int i; - for (i=0;i> 1) -//***************************************************************************** -static unsigned char recchar_timeout(void) -{ -uint32_t count = 0; - - while (!(UART_STATUS_REG & (1 << UART_RECEIVE_COMPLETE))) - { - // wait for data - count++; - if (count > MAX_TIME_COUNT) - { - unsigned int data; - #if (FLASHEND > 0x0FFFF) - data = pgm_read_word_far(0); //* get the first word of the user program - #else - data = pgm_read_word_near(0); //* get the first word of the user program - #endif - if (data != 0xffff) //* make sure its valid before jumping to it. - { - asm volatile( - "clr r30 \n\t" - "clr r31 \n\t" - "ijmp \n\t" - ); - } - count = 0; - } - } - return UART_DATA_REG; -} - - - -//***************************************************************************** -int main(void) -{ - address_t address = 0; - address_t eraseAddress = 0; - unsigned char msgParseState; - unsigned int ii = 0; - unsigned char checksum = 0; - unsigned char seqNum = 0; - unsigned int msgLength = 0; - unsigned char msgBuffer[285]; - unsigned char c, *p; - unsigned char isLeave = 0; - - unsigned long boot_timeout; - unsigned long boot_timer; - unsigned int boot_state; -#ifdef ENABLE_MONITOR - unsigned int exPointCntr = 0; -#endif - - - boot_timer = 0; - boot_state = 0; - -#ifdef BLINK_LED_WHILE_WAITING - boot_timeout = 20000; //* should be about 1 second -// boot_timeout = 170000; -#else - boot_timeout = 3500000; // 7 seconds , approx 2us per step when optimize "s" -#endif - /* - * Branch to bootloader or application code ? - */ - -#ifndef REMOVE_BOOTLOADER_LED - /* PROG_PIN pulled low, indicate with LED that bootloader is active */ - PROGLED_DDR |= (1< boot_timeout) - { - boot_state = 1; // (after ++ -> boot_state=2 bootloader timeout, jump to main 0x00000 ) - } - #ifdef BLINK_LED_WHILE_WAITING - if ((boot_timer % 7000) == 0) - { - //* toggle the LED - PROGLED_PORT ^= (1<>16) & 0x000000FF; - else if ( signatureIndex == 1 ) - answerByte = (SIGNATURE_BYTES >> 8) & 0x000000FF; - else - answerByte = SIGNATURE_BYTES & 0x000000FF; - } - else if ( msgBuffer[4] & 0x50 ) - { - answerByte = 0; //read fuse/lock bits not implemented, return dummy value - } - else - { - answerByte = 0; // for all others command are not implemented, return dummy value for AVRDUDE happy - // flag = 1; // Remark this line for AVRDUDE - } - if ( !flag ) - { - msgLength = 7; - msgBuffer[1] = STATUS_CMD_OK; - msgBuffer[2] = 0; - msgBuffer[3] = msgBuffer[4]; - msgBuffer[4] = 0; - msgBuffer[5] = answerByte; - msgBuffer[6] = STATUS_CMD_OK; - } - } - break; - #endif - case CMD_SIGN_ON: - msgLength = 11; - msgBuffer[1] = STATUS_CMD_OK; - msgBuffer[2] = 8; - msgBuffer[3] = 'A'; - msgBuffer[4] = 'V'; - msgBuffer[5] = 'R'; - msgBuffer[6] = 'I'; - msgBuffer[7] = 'S'; - msgBuffer[8] = 'P'; - msgBuffer[9] = '_'; - msgBuffer[10] = '2'; - break; - - case CMD_GET_PARAMETER: - { - unsigned char value; - - switch(msgBuffer[1]) - { - case PARAM_BUILD_NUMBER_LOW: - value = CONFIG_PARAM_BUILD_NUMBER_LOW; - break; - case PARAM_BUILD_NUMBER_HIGH: - value = CONFIG_PARAM_BUILD_NUMBER_HIGH; - break; - case PARAM_HW_VER: - value = CONFIG_PARAM_HW_VER; - break; - case PARAM_SW_MAJOR: - value = CONFIG_PARAM_SW_MAJOR; - break; - case PARAM_SW_MINOR: - value = CONFIG_PARAM_SW_MINOR; - break; - default: - value = 0; - break; - } - msgLength = 3; - msgBuffer[1] = STATUS_CMD_OK; - msgBuffer[2] = value; - } - break; - - case CMD_LEAVE_PROGMODE_ISP: - isLeave = 1; - //* fall thru - - case CMD_SET_PARAMETER: - case CMD_ENTER_PROGMODE_ISP: - msgLength = 2; - msgBuffer[1] = STATUS_CMD_OK; - break; - - case CMD_READ_SIGNATURE_ISP: - { - unsigned char signatureIndex = msgBuffer[4]; - unsigned char signature; - - if ( signatureIndex == 0 ) - signature = (SIGNATURE_BYTES >>16) & 0x000000FF; - else if ( signatureIndex == 1 ) - signature = (SIGNATURE_BYTES >> 8) & 0x000000FF; - else - signature = SIGNATURE_BYTES & 0x000000FF; - - msgLength = 4; - msgBuffer[1] = STATUS_CMD_OK; - msgBuffer[2] = signature; - msgBuffer[3] = STATUS_CMD_OK; - } - break; - - case CMD_READ_LOCK_ISP: - msgLength = 4; - msgBuffer[1] = STATUS_CMD_OK; - msgBuffer[2] = boot_lock_fuse_bits_get( GET_LOCK_BITS ); - msgBuffer[3] = STATUS_CMD_OK; - break; - - case CMD_READ_FUSE_ISP: - { - unsigned char fuseBits; - - if ( msgBuffer[2] == 0x50 ) - { - if ( msgBuffer[3] == 0x08 ) - fuseBits = boot_lock_fuse_bits_get( GET_EXTENDED_FUSE_BITS ); - else - fuseBits = boot_lock_fuse_bits_get( GET_LOW_FUSE_BITS ); - } - else - { - fuseBits = boot_lock_fuse_bits_get( GET_HIGH_FUSE_BITS ); - } - msgLength = 4; - msgBuffer[1] = STATUS_CMD_OK; - msgBuffer[2] = fuseBits; - msgBuffer[3] = STATUS_CMD_OK; - } - break; - - #ifndef REMOVE_PROGRAM_LOCK_BIT_SUPPORT - case CMD_PROGRAM_LOCK_ISP: - { - unsigned char lockBits = msgBuffer[4]; - - lockBits = (~lockBits) & 0x3C; // mask BLBxx bits - boot_lock_bits_set(lockBits); // and program it - boot_spm_busy_wait(); - - msgLength = 3; - msgBuffer[1] = STATUS_CMD_OK; - msgBuffer[2] = STATUS_CMD_OK; - } - break; - #endif - case CMD_CHIP_ERASE_ISP: - eraseAddress = 0; - msgLength = 2; - msgBuffer[1] = STATUS_CMD_OK; - break; - - case CMD_LOAD_ADDRESS: - #if defined(RAMPZ) - address = ( ((address_t)(msgBuffer[1])<<24)|((address_t)(msgBuffer[2])<<16)|((address_t)(msgBuffer[3])<<8)|(msgBuffer[4]) )<<1; - #else - address = ( ((msgBuffer[3])<<8)|(msgBuffer[4]) )<<1; //convert word to byte address - #endif - msgLength = 2; - msgBuffer[1] = STATUS_CMD_OK; - break; - - case CMD_PROGRAM_FLASH_ISP: - case CMD_PROGRAM_EEPROM_ISP: - { - unsigned int size = ((msgBuffer[1])<<8) | msgBuffer[2]; - unsigned char *p = msgBuffer+10; - unsigned int data; - unsigned char highByte, lowByte; - address_t tempaddress = address; - - - if ( msgBuffer[0] == CMD_PROGRAM_FLASH_ISP ) - { - // erase only main section (bootloader protection) - if (eraseAddress < APP_END ) - { - boot_page_erase(eraseAddress); // Perform page erase - boot_spm_busy_wait(); // Wait until the memory is erased. - eraseAddress += SPM_PAGESIZE; // point to next page to be erase - } - - /* Write FLASH */ - do { - lowByte = *p++; - highByte = *p++; - - data = (highByte << 8) | lowByte; - boot_page_fill(address,data); - - address = address + 2; // Select next word in memory - size -= 2; // Reduce number of bytes to write by two - } while (size); // Loop until all bytes written - - boot_page_write(tempaddress); - boot_spm_busy_wait(); - boot_rww_enable(); // Re-enable the RWW section - } - else - { - #if (!defined(__AVR_ATmega1280__) && !defined(__AVR_ATmega2560__) && !defined(__AVR_ATmega2561__)) - /* write EEPROM */ - do { - EEARL = address; // Setup EEPROM address - EEARH = (address >> 8); - address++; // Select next EEPROM byte - - EEDR = *p++; // get byte from buffer - EECR |= (1<> 8); //MSB - address += 2; // Select next word in memory - size -= 2; - }while (size); - } - else - { - /* Read EEPROM */ - do { - EEARL = address; // Setup EEPROM address - EEARH = ((address >> 8)); - address++; // Select next EEPROM byte - EECR |= (1<>8)&0xFF); - sendchar(c); - checksum ^= c; - - c = msgLength&0x00FF; - sendchar(c); - checksum ^= c; - - sendchar(TOKEN); - checksum ^= TOKEN; - - p = msgBuffer; - while ( msgLength ) - { - c = *p++; - sendchar(c); - checksum ^=c; - msgLength--; - } - sendchar(checksum); - seqNum++; - - #ifndef REMOVE_BOOTLOADER_LED - //* toggle the LED - PROGLED_PORT ^= (1< - - -base address = f000 -avrdude: Device signature = 0x1e9703 -avrdude: safemode: lfuse reads as FF -avrdude: safemode: hfuse reads as D8 -avrdude: safemode: efuse reads as F5 -avrdude> -*/ - -//************************************************************************ -#ifdef ENABLE_MONITOR -#include - -unsigned long gRamIndex; -unsigned long gFlashIndex; -unsigned long gEepromIndex; - - -#define true 1 -#define false 0 - -#if defined(__AVR_ATmega128__) - #define kCPU_NAME "ATmega128" -#elif defined(__AVR_ATmega1280__) - #define kCPU_NAME "ATmega1280" -#elif defined(__AVR_ATmega1281__) - #define kCPU_NAME "ATmega1281" -#elif defined(__AVR_ATmega2560__) - #define kCPU_NAME "ATmega2560" -#elif defined(__AVR_ATmega2561__) - #define kCPU_NAME "ATmega2561" -#endif - -#ifdef _VECTORS_SIZE - #define kInterruptVectorCount (_VECTORS_SIZE / 4) -#else - #define kInterruptVectorCount 23 -#endif - - -void PrintDecInt(int theNumber, int digitCnt); - -#ifdef kCPU_NAME - prog_char gTextMsg_CPU_Name[] PROGMEM = kCPU_NAME; -#else - prog_char gTextMsg_CPU_Name[] PROGMEM = "UNKNOWN"; -#endif - - prog_char gTextMsg_Explorer[] PROGMEM = "Arduino explorer stk500V2 by MLS"; - prog_char gTextMsg_Prompt[] PROGMEM = "Bootloader>"; - prog_char gTextMsg_HUH[] PROGMEM = "Huh?"; - prog_char gTextMsg_COMPILED_ON[] PROGMEM = "Compiled on = "; - prog_char gTextMsg_CPU_Type[] PROGMEM = "CPU Type = "; - prog_char gTextMsg_AVR_ARCH[] PROGMEM = "__AVR_ARCH__ = "; - prog_char gTextMsg_AVR_LIBC[] PROGMEM = "AVR LibC Ver = "; - prog_char gTextMsg_GCC_VERSION[] PROGMEM = "GCC Version = "; - prog_char gTextMsg_CPU_SIGNATURE[] PROGMEM = "CPU signature= "; - prog_char gTextMsg_FUSE_BYTE_LOW[] PROGMEM = "Low fuse = "; - prog_char gTextMsg_FUSE_BYTE_HIGH[] PROGMEM = "High fuse = "; - prog_char gTextMsg_FUSE_BYTE_EXT[] PROGMEM = "Ext fuse = "; - prog_char gTextMsg_FUSE_BYTE_LOCK[] PROGMEM = "Lock fuse = "; - prog_char gTextMsg_GCC_DATE_STR[] PROGMEM = __DATE__; - prog_char gTextMsg_AVR_LIBC_VER_STR[] PROGMEM = __AVR_LIBC_VERSION_STRING__; - prog_char gTextMsg_GCC_VERSION_STR[] PROGMEM = __VERSION__; - prog_char gTextMsg_VECTOR_HEADER[] PROGMEM = "V# ADDR op code instruction addr Interrupt"; - prog_char gTextMsg_noVector[] PROGMEM = "no vector"; - prog_char gTextMsg_rjmp[] PROGMEM = "rjmp "; - prog_char gTextMsg_jmp[] PROGMEM = "jmp "; - prog_char gTextMsg_WHAT_PORT[] PROGMEM = "What port:"; - prog_char gTextMsg_PortNotSupported[] PROGMEM = "Port not supported"; - prog_char gTextMsg_MustBeLetter[] PROGMEM = "Must be a letter"; - prog_char gTextMsg_SPACE[] PROGMEM = " "; - prog_char gTextMsg_WriteToEEprom[] PROGMEM = "Writting EE"; - prog_char gTextMsg_ReadingEEprom[] PROGMEM = "Reading EE"; - prog_char gTextMsg_EEPROMerrorCnt[] PROGMEM = "eeprom error count="; - prog_char gTextMsg_PORT[] PROGMEM = "PORT"; - - -//************************************************************************ -//* Help messages - prog_char gTextMsg_HELP_MSG_0[] PROGMEM = "0=Zero address ctrs"; - prog_char gTextMsg_HELP_MSG_QM[] PROGMEM = "?=CPU stats"; - prog_char gTextMsg_HELP_MSG_AT[] PROGMEM = "@=EEPROM test"; - prog_char gTextMsg_HELP_MSG_B[] PROGMEM = "B=Blink LED"; - prog_char gTextMsg_HELP_MSG_E[] PROGMEM = "E=Dump EEPROM"; - prog_char gTextMsg_HELP_MSG_F[] PROGMEM = "F=Dump FLASH"; - prog_char gTextMsg_HELP_MSG_H[] PROGMEM = "H=Help"; - prog_char gTextMsg_HELP_MSG_L[] PROGMEM = "L=List I/O Ports"; - prog_char gTextMsg_HELP_MSG_Q[] PROGMEM = "Q=Quit & jump to user pgm"; - prog_char gTextMsg_HELP_MSG_R[] PROGMEM = "R=Dump RAM"; - prog_char gTextMsg_HELP_MSG_V[] PROGMEM = "V=show interrupt Vectors"; - prog_char gTextMsg_HELP_MSG_Y[] PROGMEM = "Y=Port blink"; - - prog_char gTextMsg_END[] PROGMEM = "*"; - - -//************************************************************************ -void PrintFromPROGMEM(void *dataPtr, unsigned char offset) -{ -uint8_t ii; -char theChar; - - ii = offset; - theChar = 1; - - while (theChar != 0) - { - theChar = pgm_read_byte_far((uint32_t)dataPtr + ii); - if (theChar != 0) - { - sendchar(theChar); - } - ii++; - } -} - -//************************************************************************ -void PrintNewLine(void) -{ - sendchar(0x0d); - sendchar(0x0a); -} - - -//************************************************************************ -void PrintFromPROGMEMln(void *dataPtr, unsigned char offset) -{ - PrintFromPROGMEM(dataPtr, offset); - - PrintNewLine(); -} - - -//************************************************************************ -void PrintString(char *textString) -{ -char theChar; -int ii; - - theChar = 1; - ii = 0; - while (theChar != 0) - { - theChar = textString[ii]; - if (theChar != 0) - { - sendchar(theChar); - } - ii++; - } -} - -//************************************************************************ -void PrintHexByte(unsigned char theByte) -{ -char theChar; - - theChar = 0x30 + ((theByte >> 4) & 0x0f); - if (theChar > 0x39) - { - theChar += 7; - } - sendchar(theChar ); - - theChar = 0x30 + (theByte & 0x0f); - if (theChar > 0x39) - { - theChar += 7; - } - sendchar(theChar ); -} - -//************************************************************************ -void PrintDecInt(int theNumber, int digitCnt) -{ -int theChar; -int myNumber; - - myNumber = theNumber; - - if ((myNumber > 100) || (digitCnt >= 3)) - { - theChar = 0x30 + myNumber / 100; - sendchar(theChar ); - } - - if ((myNumber > 10) || (digitCnt >= 2)) - { - theChar = 0x30 + ((myNumber % 100) / 10 ); - sendchar(theChar ); - } - theChar = 0x30 + (myNumber % 10); - sendchar(theChar ); -} - - - - -//************************************************************************ -static void PrintCPUstats(void) -{ -unsigned char fuseByte; - - PrintFromPROGMEMln(gTextMsg_Explorer, 0); - - PrintFromPROGMEM(gTextMsg_COMPILED_ON, 0); - PrintFromPROGMEMln(gTextMsg_GCC_DATE_STR, 0); - - PrintFromPROGMEM(gTextMsg_CPU_Type, 0); - PrintFromPROGMEMln(gTextMsg_CPU_Name, 0); - - PrintFromPROGMEM(gTextMsg_AVR_ARCH, 0); - PrintDecInt(__AVR_ARCH__, 1); - PrintNewLine(); - - PrintFromPROGMEM(gTextMsg_GCC_VERSION, 0); - PrintFromPROGMEMln(gTextMsg_GCC_VERSION_STR, 0); - - //* these can be found in avr/version.h - PrintFromPROGMEM(gTextMsg_AVR_LIBC, 0); - PrintFromPROGMEMln(gTextMsg_AVR_LIBC_VER_STR, 0); - -#if defined(SIGNATURE_0) - PrintFromPROGMEM(gTextMsg_CPU_SIGNATURE, 0); - //* these can be found in avr/iomxxx.h - PrintHexByte(SIGNATURE_0); - PrintHexByte(SIGNATURE_1); - PrintHexByte(SIGNATURE_2); - PrintNewLine(); -#endif - - -#if defined(GET_LOW_FUSE_BITS) - //* fuse settings - PrintFromPROGMEM(gTextMsg_FUSE_BYTE_LOW, 0); - fuseByte = boot_lock_fuse_bits_get(GET_LOW_FUSE_BITS); - PrintHexByte(fuseByte); - PrintNewLine(); - - PrintFromPROGMEM(gTextMsg_FUSE_BYTE_HIGH, 0); - fuseByte = boot_lock_fuse_bits_get(GET_HIGH_FUSE_BITS); - PrintHexByte(fuseByte); - PrintNewLine(); - - PrintFromPROGMEM(gTextMsg_FUSE_BYTE_EXT, 0); - fuseByte = boot_lock_fuse_bits_get(GET_EXTENDED_FUSE_BITS); - PrintHexByte(fuseByte); - PrintNewLine(); - - PrintFromPROGMEM(gTextMsg_FUSE_BYTE_LOCK, 0); - fuseByte = boot_lock_fuse_bits_get(GET_LOCK_BITS); - PrintHexByte(fuseByte); - PrintNewLine(); - -#endif - -} - -#ifndef sbi - #define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit)) -#endif - -//************************************************************************ -int analogRead(uint8_t pin) -{ -uint8_t low, high; - - // set the analog reference (high two bits of ADMUX) and select the - // channel (low 4 bits). this also sets ADLAR (left-adjust result) - // to 0 (the default). -// ADMUX = (analog_reference << 6) | (pin & 0x07); - ADMUX = (1 << 6) | (pin & 0x07); - -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) - // the MUX5 bit of ADCSRB selects whether we're reading from channels - // 0 to 7 (MUX5 low) or 8 to 15 (MUX5 high). - ADCSRB = (ADCSRB & ~(1 << MUX5)) | (((pin >> 3) & 0x01) << MUX5); -#endif - - // without a delay, we seem to read from the wrong channel - //delay(1); - - // start the conversion - sbi(ADCSRA, ADSC); - - // ADSC is cleared when the conversion finishes - while (bit_is_set(ADCSRA, ADSC)); - - // we have to read ADCL first; doing so locks both ADCL - // and ADCH until ADCH is read. reading ADCL second would - // cause the results of each conversion to be discarded, - // as ADCL and ADCH would be locked when it completed. - low = ADCL; - high = ADCH; - - // combine the two bytes - return (high << 8) | low; -} - -//************************************************************************ -static void BlinkLED(void) -{ - PROGLED_DDR |= (1< 0) - { - if (myAddressPointer > 0x10000) - { - PrintHexByte((myAddressPointer >> 16) & 0x00ff); - } - PrintHexByte((myAddressPointer >> 8) & 0x00ff); - PrintHexByte(myAddressPointer & 0x00ff); - sendchar(0x20); - sendchar('-'); - sendchar(0x20); - - asciiDump[0] = 0; - for (ii=0; ii<16; ii++) - { - switch(dumpWhat) - { - case kDUMP_FLASH: - theValue = pgm_read_byte_far(myAddressPointer); - break; - - case kDUMP_EEPROM: - theValue = eeprom_read_byte((void *)myAddressPointer); - break; - - case kDUMP_RAM: - theValue = ramPtr[myAddressPointer]; - break; - - } - PrintHexByte(theValue); - sendchar(0x20); - if ((theValue >= 0x20) && (theValue < 0x7f)) - { - asciiDump[ii % 16] = theValue; - } - else - { - asciiDump[ii % 16] = '.'; - } - - myAddressPointer++; - } - asciiDump[16] = 0; - PrintString(asciiDump); - PrintNewLine(); - - numRows--; - } -} - - - -//************************************************************************ -//* returns amount of extended memory -static void EEPROMtest(void) -{ -int ii; -char theChar; -char theEEPROMchar; -int errorCount; - - PrintFromPROGMEMln(gTextMsg_WriteToEEprom, 0); - PrintNewLine(); - ii = 0; - while (((theChar = pgm_read_byte_far(gTextMsg_Explorer + ii)) != '*') && (ii < 512)) - { - eeprom_write_byte((uint8_t *)ii, theChar); - if (theChar == 0) - { - PrintFromPROGMEM(gTextMsg_SPACE, 0); - } - else - { - sendchar(theChar); - } - ii++; - } - - //* no go back through and test - PrintNewLine(); - PrintNewLine(); - PrintFromPROGMEMln(gTextMsg_ReadingEEprom, 0); - PrintNewLine(); - errorCount = 0; - ii = 0; - while (((theChar = pgm_read_byte_far(gTextMsg_Explorer + ii)) != '*') && (ii < 512)) - { - theEEPROMchar = eeprom_read_byte((uint8_t *)ii); - if (theEEPROMchar == 0) - { - PrintFromPROGMEM(gTextMsg_SPACE, 0); - } - else - { - sendchar(theEEPROMchar); - } - if (theEEPROMchar != theChar) - { - errorCount++; - } - ii++; - } - PrintNewLine(); - PrintNewLine(); - PrintFromPROGMEM(gTextMsg_EEPROMerrorCnt, 0); - PrintDecInt(errorCount, 1); - PrintNewLine(); - PrintNewLine(); - - gEepromIndex = 0; //* set index back to zero for next eeprom dump - -} - - - -#if (FLASHEND > 0x08000) - #include "avrinterruptnames.h" - #ifndef _INTERRUPT_NAMES_DEFINED_ - #warning Interrupt vectors not defined - #endif -#endif - -//************************************************************************ -static void VectorDisplay(void) -{ -unsigned long byte1; -unsigned long byte2; -unsigned long byte3; -unsigned long byte4; -unsigned long word1; -unsigned long word2; -int vectorIndex; -unsigned long myMemoryPtr; -unsigned long wordMemoryAddress; -unsigned long realitiveAddr; -unsigned long myFullAddress; -unsigned long absoluteAddr; -#if defined(_INTERRUPT_NAMES_DEFINED_) - long stringPointer; -#endif - - myMemoryPtr = 0; - vectorIndex = 0; - PrintFromPROGMEMln(gTextMsg_CPU_Name, 0); - PrintFromPROGMEMln(gTextMsg_VECTOR_HEADER, 0); - // V# ADDR op code - // 1 - 0000 = C3 BB 00 00 rjmp 03BB >000776 RESET - while (vectorIndex < kInterruptVectorCount) - { - wordMemoryAddress = myMemoryPtr / 2; - // 01 - 0000 = 12 34 - PrintDecInt(vectorIndex + 1, 2); - sendchar(0x20); - sendchar('-'); - sendchar(0x20); - PrintHexByte((wordMemoryAddress >> 8) & 0x00ff); - PrintHexByte((wordMemoryAddress) & 0x00ff); - sendchar(0x20); - sendchar('='); - sendchar(0x20); - - - //* the AVR is LITTLE ENDIAN, swap the byte order - byte1 = pgm_read_byte_far(myMemoryPtr++); - byte2 = pgm_read_byte_far(myMemoryPtr++); - word1 = (byte2 << 8) + byte1; - - byte3 = pgm_read_byte_far(myMemoryPtr++); - byte4 = pgm_read_byte_far(myMemoryPtr++); - word2 = (byte4 << 8) + byte3; - - - PrintHexByte(byte2); - sendchar(0x20); - PrintHexByte(byte1); - sendchar(0x20); - PrintHexByte(byte4); - sendchar(0x20); - PrintHexByte(byte3); - sendchar(0x20); - - if (word1 == 0xffff) - { - PrintFromPROGMEM(gTextMsg_noVector, 0); - } - else if ((word1 & 0xc000) == 0xc000) - { - //* rjmp instruction - realitiveAddr = word1 & 0x3FFF; - absoluteAddr = wordMemoryAddress + realitiveAddr; //* add the offset to the current address - absoluteAddr = absoluteAddr << 1; //* multiply by 2 for byte address - - PrintFromPROGMEM(gTextMsg_rjmp, 0); - PrintHexByte((realitiveAddr >> 8) & 0x00ff); - PrintHexByte((realitiveAddr) & 0x00ff); - sendchar(0x20); - sendchar('>'); - PrintHexByte((absoluteAddr >> 16) & 0x00ff); - PrintHexByte((absoluteAddr >> 8) & 0x00ff); - PrintHexByte((absoluteAddr) & 0x00ff); - - } - else if ((word1 & 0xfE0E) == 0x940c) - { - //* jmp instruction, this is REALLY complicated, refer to the instruction manual (JMP) - myFullAddress = ((byte1 & 0x01) << 16) + - ((byte1 & 0xf0) << 17) + - ((byte2 & 0x01) << 21) + - word2; - - absoluteAddr = myFullAddress << 1; - - PrintFromPROGMEM(gTextMsg_jmp, 0); - PrintHexByte((myFullAddress >> 16) & 0x00ff); - PrintHexByte((myFullAddress >> 8) & 0x00ff); - PrintHexByte((myFullAddress) & 0x00ff); - sendchar(0x20); - sendchar('>'); - PrintHexByte((absoluteAddr >> 16) & 0x00ff); - PrintHexByte((absoluteAddr >> 8) & 0x00ff); - PrintHexByte((absoluteAddr) & 0x00ff); - } - - #if defined(_INTERRUPT_NAMES_DEFINED_) - sendchar(0x20); - stringPointer = pgm_read_word_far(&(gInterruptNameTable[vectorIndex])); - PrintFromPROGMEM((char *)stringPointer, 0); - #endif - PrintNewLine(); - - vectorIndex++; - } -} - -//************************************************************************ -static void PrintAvailablePort(char thePortLetter) -{ - PrintFromPROGMEM(gTextMsg_PORT, 0); - sendchar(thePortLetter); - PrintNewLine(); -} - -//************************************************************************ -static void ListAvailablePorts(void) -{ - -#ifdef DDRA - PrintAvailablePort('A'); -#endif - -#ifdef DDRB - PrintAvailablePort('B'); -#endif - -#ifdef DDRC - PrintAvailablePort('C'); -#endif - -#ifdef DDRD - PrintAvailablePort('D'); -#endif - -#ifdef DDRE - PrintAvailablePort('E'); -#endif - -#ifdef DDRF - PrintAvailablePort('F'); -#endif - -#ifdef DDRG - PrintAvailablePort('G'); -#endif - -#ifdef DDRH - PrintAvailablePort('H'); -#endif - -#ifdef DDRI - PrintAvailablePort('I'); -#endif - -#ifdef DDRJ - PrintAvailablePort('J'); -#endif - -#ifdef DDRK - PrintAvailablePort('K'); -#endif - -#ifdef DDRL - PrintAvailablePort('L'); -#endif - -} - -//************************************************************************ -static void AVR_PortOutput(void) -{ -char portLetter; -char getCharFlag; - - PrintFromPROGMEM(gTextMsg_WHAT_PORT, 0); - - portLetter = recchar(); - portLetter = portLetter & 0x5f; - sendchar(portLetter); - PrintNewLine(); - - if ((portLetter >= 'A') && (portLetter <= 'Z')) - { - getCharFlag = true; - switch(portLetter) - { - #ifdef DDRA - case 'A': - DDRA = 0xff; - while (!Serial_Available()) - { - PORTA ^= 0xff; - delay_ms(200); - } - PORTA = 0; - break; - #endif - - #ifdef DDRB - case 'B': - DDRB = 0xff; - while (!Serial_Available()) - { - PORTB ^= 0xff; - delay_ms(200); - } - PORTB = 0; - break; - #endif - - #ifdef DDRC - case 'C': - DDRC = 0xff; - while (!Serial_Available()) - { - PORTC ^= 0xff; - delay_ms(200); - } - PORTC = 0; - break; - #endif - - #ifdef DDRD - case 'D': - DDRD = 0xff; - while (!Serial_Available()) - { - PORTD ^= 0xff; - delay_ms(200); - } - PORTD = 0; - break; - #endif - - #ifdef DDRE - case 'E': - DDRE = 0xff; - while (!Serial_Available()) - { - PORTE ^= 0xff; - delay_ms(200); - } - PORTE = 0; - break; - #endif - - #ifdef DDRF - case 'F': - DDRF = 0xff; - while (!Serial_Available()) - { - PORTF ^= 0xff; - delay_ms(200); - } - PORTF = 0; - break; - #endif - - #ifdef DDRG - case 'G': - DDRG = 0xff; - while (!Serial_Available()) - { - PORTG ^= 0xff; - delay_ms(200); - } - PORTG = 0; - break; - #endif - - #ifdef DDRH - case 'H': - DDRH = 0xff; - while (!Serial_Available()) - { - PORTH ^= 0xff; - delay_ms(200); - } - PORTH = 0; - break; - #endif - - #ifdef DDRI - case 'I': - DDRI = 0xff; - while (!Serial_Available()) - { - PORTI ^= 0xff; - delay_ms(200); - } - PORTI = 0; - break; - #endif - - #ifdef DDRJ - case 'J': - DDRJ = 0xff; - while (!Serial_Available()) - { - PORTJ ^= 0xff; - delay_ms(200); - } - PORTJ = 0; - break; - #endif - - #ifdef DDRK - case 'K': - DDRK = 0xff; - while (!Serial_Available()) - { - PORTK ^= 0xff; - delay_ms(200); - } - PORTK = 0; - break; - #endif - - #ifdef DDRL - case 'L': - DDRL = 0xff; - while (!Serial_Available()) - { - PORTL ^= 0xff; - delay_ms(200); - } - PORTL = 0; - break; - #endif - - default: - PrintFromPROGMEMln(gTextMsg_PortNotSupported, 0); - getCharFlag = false; - break; - } - if (getCharFlag) - { - recchar(); - } - } - else - { - PrintFromPROGMEMln(gTextMsg_MustBeLetter, 0); - } -} - - -//******************************************************************* -static void PrintHelp(void) -{ - PrintFromPROGMEMln(gTextMsg_HELP_MSG_0, 0); - PrintFromPROGMEMln(gTextMsg_HELP_MSG_QM, 0); - PrintFromPROGMEMln(gTextMsg_HELP_MSG_AT, 0); - PrintFromPROGMEMln(gTextMsg_HELP_MSG_B, 0); - PrintFromPROGMEMln(gTextMsg_HELP_MSG_E, 0); - PrintFromPROGMEMln(gTextMsg_HELP_MSG_F, 0); - PrintFromPROGMEMln(gTextMsg_HELP_MSG_H, 0); - - PrintFromPROGMEMln(gTextMsg_HELP_MSG_L, 0); - PrintFromPROGMEMln(gTextMsg_HELP_MSG_Q, 0); - PrintFromPROGMEMln(gTextMsg_HELP_MSG_R, 0); - PrintFromPROGMEMln(gTextMsg_HELP_MSG_V, 0); - PrintFromPROGMEMln(gTextMsg_HELP_MSG_Y, 0); -} - -//************************************************************************ -static void RunMonitor(void) -{ -char keepGoing; -unsigned char theChar; -int ii, jj; - - for (ii=0; ii<5; ii++) - { - for (jj=0; jj<25; jj++) - { - sendchar('!'); - } - PrintNewLine(); - } - - gRamIndex = 0; - gFlashIndex = 0; - gEepromIndex = 0; - - PrintFromPROGMEMln(gTextMsg_Explorer, 0); - - keepGoing = 1; - while (keepGoing) - { - PrintFromPROGMEM(gTextMsg_Prompt, 0); - theChar = recchar(); - if (theChar >= 0x60) - { - theChar = theChar & 0x5F; - } - #if defined( _CEREBOTPLUS_BOARD_ ) - if (theChar == 0x5F) - { - - } - else - #endif - if (theChar >= 0x20) - { - sendchar(theChar); - sendchar(0x20); - } - - switch(theChar) - { - case '0': - PrintFromPROGMEMln(gTextMsg_HELP_MSG_0, 2); - gFlashIndex = 0; - gRamIndex = 0; - gEepromIndex = 0; - break; - - case '?': - PrintFromPROGMEMln(gTextMsg_HELP_MSG_QM, 2); - PrintCPUstats(); - break; - - case '@': - PrintFromPROGMEMln(gTextMsg_HELP_MSG_AT, 2); - EEPROMtest(); - break; - - case 'B': - PrintFromPROGMEMln(gTextMsg_HELP_MSG_B, 2); - BlinkLED(); - break; - - case 'E': - PrintFromPROGMEMln(gTextMsg_HELP_MSG_E, 2); - DumpHex(kDUMP_EEPROM, gEepromIndex, 16); - gEepromIndex += 256; - if (gEepromIndex > E2END) - { - gEepromIndex = 0; - } - break; - - case 'F': - PrintFromPROGMEMln(gTextMsg_HELP_MSG_F, 2); - DumpHex(kDUMP_FLASH, gFlashIndex, 16); - gFlashIndex += 256; - break; - - case 'H': - PrintFromPROGMEMln(gTextMsg_HELP_MSG_H, 2); - PrintHelp(); - break; - - case 'L': - PrintFromPROGMEMln(gTextMsg_HELP_MSG_L, 2); - ListAvailablePorts(); - break; - - case 'Q': - PrintFromPROGMEMln(gTextMsg_HELP_MSG_Q, 2); - keepGoing = false; - break; - - case 'R': - PrintFromPROGMEMln(gTextMsg_HELP_MSG_R, 2); - DumpHex(kDUMP_RAM, gRamIndex, 16); - gRamIndex += 256; - break; - - case 'V': - PrintFromPROGMEMln(gTextMsg_HELP_MSG_V, 2); - VectorDisplay(); - break; - - case 'Y': - PrintFromPROGMEMln(gTextMsg_HELP_MSG_Y, 2); - AVR_PortOutput(); - break; - - #if defined( _CEREBOTPLUS_BOARD_ ) - case 0x5F: - //* do nothing - break; - #endif - - default: - PrintFromPROGMEMln(gTextMsg_HUH, 0); - break; - } - } -} - -#endif - diff --git a/build/linux/work/hardware/arduino/bootloaders/stk500v2/stk500boot.ppg b/build/linux/work/hardware/arduino/bootloaders/stk500v2/stk500boot.ppg deleted file mode 100644 index a8929d706..000000000 --- a/build/linux/work/hardware/arduino/bootloaders/stk500v2/stk500boot.ppg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/build/linux/work/hardware/arduino/bootloaders/stk500v2/stk500boot_v2_mega2560.hex b/build/linux/work/hardware/arduino/bootloaders/stk500v2/stk500boot_v2_mega2560.hex deleted file mode 100644 index 4f366997c..000000000 --- a/build/linux/work/hardware/arduino/bootloaders/stk500v2/stk500boot_v2_mega2560.hex +++ /dev/null @@ -1,513 +0,0 @@ -:020000023000CC -:10E000000D94F6F20D941FF30D941FF30D941FF36E -:10E010000D941FF30D941FF30D941FF30D941FF334 -:10E020000D941FF30D941FF30D941FF30D941FF324 -:10E030000D941FF30D941FF30D941FF30D941FF314 -:10E040000D941FF30D941FF30D941FF30D941FF304 -:10E050000D941FF30D941FF30D941FF30D941FF3F4 -:10E060000D941FF30D941FF30D941FF30D941FF3E4 -:10E070000D941FF30D941FF30D941FF30D941FF3D4 -:10E080000D941FF30D941FF30D941FF30D941FF3C4 -:10E090000D941FF30D941FF30D941FF30D941FF3B4 -:10E0A0000D941FF30D941FF30D941FF30D941FF3A4 -:10E0B0000D941FF30D941FF30D941FF30D941FF394 -:10E0C0000D941FF30D941FF30D941FF30D941FF384 -:10E0D0000D941FF30D941FF30D941FF30D941FF374 -:10E0E0000D941FF341546D65676132353630004140 -:10E0F000726475696E6F206578706C6F72657220DE -:10E1000073746B3530305632206279204D4C530099 -:10E11000426F6F746C6F616465723E004875683F52 -:10E1200000436F6D70696C6564206F6E20203D2028 -:10E1300000435055205479706520202020203D2038 -:10E14000005F5F4156525F415243485F5F203D2070 -:10E1500000415652204C69624320566572203D2092 -:10E16000004743432056657273696F6E20203D203F -:10E1700000435055207369676E61747572653D2068 -:10E18000004C6F77206675736520202020203D208D -:10E1900000486967682066757365202020203D204F -:10E1A00000457874206675736520202020203D206E -:10E1B000004C6F636B2066757365202020203D2026 -:10E1C00000536570202039203230313000312E3636 -:10E1D0002E3700342E332E33005623202020414486 -:10E1E00044522020206F7020636F6465202020201F -:10E1F00020696E737472756374696F6E20616464F4 -:10E2000072202020496E74657272757074006E6F92 -:10E2100020766563746F7200726A6D702020006AE8 -:10E220006D7020005768617420706F72743A0050EE -:10E230006F7274206E6F7420737570706F72746576 -:10E2400064004D7573742062652061206C65747480 -:10E2500065720020005772697474696E67204545C5 -:10E260000052656164696E6720454500656570729E -:10E270006F6D206572726F7220636F756E743D00F2 -:10E28000504F525400303D5A65726F206164647281 -:10E290006573732063747273003F3D435055207360 -:10E2A0007461747300403D454550524F4D20746574 -:10E2B000737400423D426C696E6B204C45440045CE -:10E2C0003D44756D7020454550524F4D00463D44CC -:10E2D000756D7020464C41534800483D48656C7050 -:10E2E000004C3D4C69737420492F4F20506F72745D -:10E2F0007300513D517569742026206A756D702038 -:10E30000746F20757365722070676D00523D44759F -:10E310006D702052414D00563D73686F7720696ED5 -:10E320007465727275707420566563746F727300D1 -:10E33000593D506F727420626C696E6B002A0052F6 -:10E340004553455400494E543000494E543100491C -:10E350004E543200494E543300494E543400494E15 -:10E36000543500494E543600494E54370050434905 -:10E370004E5430005043494E5431005043494E549E -:10E3800032005744540054494D45523020434F4DBC -:10E3900050410054494D45523020434F4D504200AA -:10E3A00054494D455230204F56460054494D455230 -:10E3B0003120434150540054494D45523120434F80 -:10E3C0004D50410054494D45523120434F4D50422C -:10E3D0000054494D45523120434F4D50430054495C -:10E3E0004D455231204F56460054494D455232203A -:10E3F000434F4D50410054494D45523220434F4DFB -:10E4000050420054494D455232204F56460054491F -:10E410004D45523320434150540054494D455233E9 -:10E4200020434F4D50410054494D45523320434FF6 -:10E430004D50420054494D45523320434F4D5043B7 -:10E440000054494D455233204F56460054494D45DE -:10E45000523420434150540054494D4552342043D6 -:10E460004F4D50410054494D45523420434F4D507B -:10E47000420054494D45523420434F4D50430054BF -:10E48000494D455234204F56460054494D4552356A -:10E4900020434150540054494D45523520434F4D7F -:10E4A00050410054494D45523520434F4D50420094 -:10E4B00054494D45523520434F4D50430054494D2A -:10E4C000455235204F564600555341525430205244 -:10E4D000580055534152543020554452450055532D -:10E4E0004152543020545800555341525431205217 -:10E4F000580055534152543120554452450055530C -:10E5000041525431205458005553415254322052F4 -:10E5100058005553415254322055445245005553EA -:10E5200041525432205458005553415254332052D2 -:10E5300058005553415254332055445245005553C9 -:10E5400041525433205458005350492053544300EF -:10E5500041444300414E414C4F4720434F4D5000F2 -:10E560004545205245414459005457490053504DA8 -:10E57000205245414459002A003FE345E34AE34F16 -:10E58000E354E359E35EE363E368E36DE374E37B41 -:10E59000E382E3E9E3F6E303E4ABE3B7E3C4E3D107 -:10E5A000E3DEE386E393E3A0E348E5C8E4D2E4DEF8 -:10E5B000E454E550E560E50EE41AE427E434E44170 -:10E5C000E4E8E4F2E4FEE469E56DE54CE458E46572 -:10E5D000E472E47FE48AE496E4A3E4B0E4BDE408F2 -:10E5E000E512E51EE528E532E53EE50011241FBEF3 -:10E5F000CFEFD1E2DEBFCDBF01E00CBF12E0A0E063 -:10E60000B2E0EAEDFFEF03E00BBF02C007900D920E -:10E61000A030B107D9F712E0A0E0B2E001C01D922E -:10E62000AC30B107E1F70F94FBF40D94EBFF01E27E -:10E630000EBF0FEF0DBF11241FBE0D94FBF40D9400 -:10E6400000F020E030E040ED57E005C0FA013197DE -:10E65000F1F72F5F3F4F28173907C0F308959C014A -:10E66000442737FD4095542FDA01C901860F911DCB -:10E67000A11DB11DABBFFC018791882369F0809378 -:10E68000C6008091C00086FFFCCF8091C0008064EE -:10E690008093C0006F5FE8CF08958DE08093C6003F -:10E6A0008091C00086FFFCCF8091C0008064809381 -:10E6B000C0008AE08093C6008091C00086FFFCCF36 -:10E6C0008091C00080648093C00008950F942FF360 -:10E6D0000F944DF30895FC019081992359F0909384 -:10E6E000C6008091C00086FFFCCF8091C00080648E -:10E6F0008093C0003196992379F70895282F982F99 -:10E7000092959F70892F805D8A3308F0895F80938E -:10E71000C6008091C00086FFFCCF8091C00080645D -:10E720008093C000822F8F70982F905D9A3308F0ED -:10E73000995F9093C6008091C00086FFFCCF8091C6 -:10E74000C00080648093C00008959C01FB01853661 -:10E7500091051CF46330710594F0C90164E670E022 -:10E760000F948CFF605D7F4F6093C6008091C00066 -:10E7700086FFFCCF8091C00080648093C0002B3066 -:10E78000310514F43297B4F0C90164E670E00F94D7 -:10E790008CFF6AE070E00F948CFF605D7F4F6093A8 -:10E7A000C6008091C00086FFFCCF8091C0008064CD -:10E7B0008093C000C9016AE070E00F948CFFC0969E -:10E7C0008093C6008091C00086FFFCCF8091C0007E -:10E7D00080648093C0000895282F277020642093C0 -:10E7E0007C0020917B0086958695869590E08170CF -:10E7F000907033E0880F991F3A95E1F7277F282B17 -:10E8000020937B0080917A00806480937A008091CD -:10E810007A0086FDFCCF2091780040917900942FFA -:10E8200080E030E0282B392BC90108951F93182F61 -:10E8300080E892EE60E00F942FF31093C600809171 -:10E84000C00086FFFCCF8091C00080648093C00030 -:10E850000F944DF31F9108952F923F924F925F9224 -:10E860006F927F928F929F92AF92BF92CF92DF92E0 -:10E87000EF92FF920F931F93DF93CF93CDB7DEB745 -:10E8800062970FB6F894DEBF0FBECDBF382E622E52 -:10E89000CA01DB015C016D01772460E2262E2E01A6 -:10E8A0000894411C511C8BC081E0A81680E0B8067A -:10E8B00081E0C80680E0D80628F0C601AA27BB2759 -:10E8C0000F947EF3BB27AD2D9C2D8B2D0F947EF3E3 -:10E8D0008A2D0F947EF32092C6008091C00086FF9F -:10E8E000FCCF8091C00080648093C0009DE2909333 -:10E8F000C6008091C00086FFFCCF8091C00080647C -:10E900008093C0002092C6008091C00086FFFCCF9B -:10E910008091C00080648093C000198286017501D7 -:10E9200088249924A1E03A1651F03A1620F0B2E07A -:10E930003B1661F409C00BBFF701779007C0C70110 -:10E940000F94D5FF782E02C0F7017080872D0F94A9 -:10E950007EF32092C6008091C00086FFFCCF80919C -:10E96000C00080648093C000872D8052F401EF7056 -:10E97000F0708F3520F4E40DF51D708204C0E40DB5 -:10E98000F51D8EE280830894E11CF11C011D111D10 -:10E990000894811C911C90E18916910409F0C2CF62 -:10E9A00080E190E0A0E0B0E0A80EB91ECA1EDB1E18 -:10E9B000198AC2010F946BF30F944DF36A94662089 -:10E9C00009F072CF62960FB6F894DEBF0FBECDBFCE -:10E9D000CF91DF911F910F91FF90EF90DF90CF903B -:10E9E000BF90AF909F908F907F906F905F904F906F -:10E9F0003F902F9008952F923F924F925F926F9287 -:10EA00007F928F929F92AF92BF92CF92DF92EF92BE -:10EA1000FF920F931F93DF93CF93CDB7DEB7CD5304 -:10EA2000D1400FB6F894DEBF0FBECDBF279A2F9A04 -:10EA30008091C00082608093C00080E18093C40018 -:10EA400088E18093C1000000EE24FF248701B4E038 -:10EA5000AB2EB12CCC24DD2424C0C5010197F1F7E5 -:10EA60000894E11CF11C011D111D21E2E2162EE4A7 -:10EA7000F20620E0020720E0120718F0A1E0CA2EFB -:10EA8000D12CC801B70128E53BE140E050E00F94EC -:10EA90009FFF611571058105910519F485B18058B5 -:10EAA00085B98091C00087FD03C0C114D104A9F2CB -:10EAB000A6014F5F5F4FC25EDE4F59834883CE5140 -:10EAC000D140C25EDE4F68817981CE51D140613044 -:10EAD000710511F00D946EFFC05DDE4F1982188232 -:10EAE000C053D14060E0C15DDE4F1882CF52D140AB -:10EAF000AA24BB24C05EDE4F188219821A821B82B0 -:10EB0000C052D140CE5CDE4F188219821A821B821D -:10EB1000C253D14080E090E0A0E0B0E0ABBFFC0188 -:10EB2000A791B691C45CDE4FB983A883CC53D14082 -:10EB30000D9469FFC25EDE4FE881F981CE51D1406C -:10EB4000319709F52091C600C25EDE4F1982188206 -:10EB5000CE51D14022C02F5F3F4F4F4F5F4F2130EA -:10EB6000F2E13F07FAE74F07F0E05F0780F0C45C8F -:10EB7000DE4F08811981CC53D1400F5F1F4F19F030 -:10EB8000EE27FF27099420E030E040E050E080913C -:10EB9000C00087FFE0CF2091C600213209F094C663 -:10EBA0000894A11CB11C33E0A316B10409F08EC671 -:10EBB00000E010E018C041E24093C6008091C00020 -:10EBC00086FFFCCF8091C00080648093C0002F5FDF -:10EBD0003F4F2931310579F70F944DF30F5F1F4FE8 -:10EBE0000530110519F020E030E0E5CF1092080261 -:10EBF0001092090210920A0210920B021092040263 -:10EC00001092050210920602109207021092000262 -:10EC10001092010210920202109203028FEE90EE07 -:10EC200060E00F9466F380E191EE60E00F942FF3C3 -:10EC30008091C00087FFFCCF9091C600903608F00D -:10EC40009F759032B8F09093C6008091C00086FF07 -:10EC5000FCCF8091C00080648093C00080E28093EC -:10EC6000C6008091C00086FFFCCF8091C000806408 -:10EC70008093C000983409F4DBC19934B8F492341D -:10EC800009F45DC1933458F4903319F1903308F4CA -:10EC900018C69F33A1F1903409F013C6BDC0953456 -:10ECA00009F474C1963409F00CC69CC1923509F47C -:10ECB0002FC2933538F49C3409F4F9C1913509F029 -:10ECC00000C61CC2963509F449C2993509F0F9C548 -:10ECD0009CC485E892EE62E00F9466F31092040201 -:10ECE000109205021092060210920702109208027A -:10ECF0001092090210920A0210920B0217C189E9C0 -:10ED000092EE62E00F9466F38FEE90EE60E00F9467 -:10ED100066F381E291EE60E00F942FF381EC91EEC7 -:10ED200060E00F9466F381E391EE60E00F942FF3BF -:10ED300084EE90EE60E00F9466F381E491EE60E083 -:10ED40000F942FF386E090E061E070E00F94A5F35C -:10ED50000F944DF381E691EE60E00F942FF383ED75 -:10ED600091EE60E00F9466F381E591EE60E00F9420 -:10ED70002FF38DEC91EE60E00F9466F381E791EE56 -:10ED800060E00F942FF38EE10F947EF388E90F94E7 -:10ED90007EF381E00F947EF30F944DF381E891EEC2 -:10EDA00060E00F942FF319E0E0E0F0E010935700DB -:10EDB000E4918E2F0F947EF30F944DF381E991EE41 -:10EDC00060E00F942FF3E3E0F0E010935700E4913C -:10EDD0008E2F0F947EF30F944DF381EA91EE60E055 -:10EDE0000F942FF3E2E0F0E010935700E4918E2FA0 -:10EDF0000F947EF30F944DF381EB91EE60E00F944E -:10EE00002FF3E1E0F0E0109357001491812F0F945D -:10EE10007EF30F944DF307CF85EA92EE62E00F94F4 -:10EE200066F385E592EE60E00F9466F30F944DF380 -:10EE300000E010E019C0C8016F2D0F94DDFFFF2026 -:10EE400031F483E592EE60E00F942FF30BC0F09263 -:10EE5000C6008091C00086FFFCCF8091C000806416 -:10EE60008093C0000F5F1F4FC80181519F41AA27A7 -:10EE700097FDA095BA2FABBFFC01F7905AE2F516AB -:10EE800021F062E000301607B1F60F944DF30F94B5 -:10EE90004DF381E692EE60E00F9466F30F944DF32C -:10EEA000CC24DD2400E010E01EC0C8010F94D5FF83 -:10EEB000F82E882331F483E592EE60E00F942FF36F -:10EEC0000BC08093C6008091C00086FFFCCF80916C -:10EED000C00080648093C000FE1419F00894C11C27 -:10EEE000D11C0F5F1F4FC80181519F41AA2797FD79 -:10EEF000A095BA2FABBFFC01E7907AE2E71621F0AC -:10EF000082E00030180789F60F944DF30F944DF30B -:10EF10008CE692EE60E00F942FF3C60161E070E0A2 -:10EF20000F94A5F30F944DF30F944DF3109200023C -:10EF300010920102109202021092030274CE83EB2F -:10EF400092EE62E00F9466F3279A2F9A16C02F98DC -:10EF500080E090E0E0EDF7E03197F1F7019684363C -:10EF60009105C1F72F9A80E090E0E0EDF7E031974E -:10EF7000F1F7019684369105C1F78091C00087FFB3 -:10EF8000E6CF8091C00087FFFCCF95C48FEB92EE57 -:10EF900062E00F9466F3409100025091010260918B -:10EFA00002027091030281E020E10F942CF4809121 -:10EFB000000290910102A0910202B09103028050E0 -:10EFC0009F4FAF4FBF4F8093000290930102A093D9 -:10EFD0000202B093030280509041A040B04008F478 -:10EFE00022CEA4CF8DEC92EE62E00F9466F34091B6 -:10EFF000040250910502609106027091070280E0C0 -:10F0000020E10F942CF48091040290910502A091CC -:10F010000602B091070280509F4FAF4FBF4F8093C1 -:10F02000040290930502A0930602B0930702FBCD61 -:10F030008AED92EE62E00F9466F385E892EE60E06E -:10F040000F9466F389E992EE60E00F9466F385EA27 -:10F0500092EE60E00F9466F383EB92EE60E00F9423 -:10F0600066F38FEB92EE60E00F9466F38DEC92EE18 -:10F0700060E00F9466F38AED92EE60E00F9466F321 -:10F0800081EE92EE60E00F9466F382EF92EE60E024 -:10F090000F9466F38CE093EE60E00F9466F387E1E3 -:10F0A00093EE60E00F9466F380E393EEB9CD81EECA -:10F0B00092EE62E00F9466F381E40F9416F482E41A -:10F0C0000F9416F483E40F9416F484E40F9416F46A -:10F0D00085E40F9416F486E40F9416F487E40F94F5 -:10F0E00016F488E40F9416F48AE40F9416F48BE473 -:10F0F0000F9416F48CE40F9416F495CD82EF92EEF3 -:10F1000062E00F9466F399249394AA24BB2445C427 -:10F110008CE093EE62E00F9466F340910802509108 -:10F12000090260910A0270910B0282E020E10F94C3 -:10F130002CF48091080290910902A0910A02B091EA -:10F140000B0280509F4FAF4FBF4F809308029093A8 -:10F150000902A0930A02B0930B0265CD87E193EEFA -:10F1600062E00F9466F384EE90EE60E00F9466F335 -:10F1700089ED91EE60E00F9466F309E715EECC5D42 -:10F18000DE4F19830883C452D1406624772443019B -:10F19000CA5DDE4F19821882C652D140A401930184 -:10F1A0005695479537952795C85DDE4F2883398357 -:10F1B0004A835B83C852D140CA5DDE4F4881598182 -:10F1C000C652D1404F5F5F4FCA5DDE4F59834883BF -:10F1D000C652D140CA0162E070E00F94A5F350E23C -:10F1E0005093C6008091C00086FFFCCF8091C00084 -:10F1F00080648093C0006DE26093C6008091C0007F -:10F2000086FFFCCF8091C00080648093C00070E2D4 -:10F210007093C6008091C00086FFFCCF8091C00033 -:10F2200080648093C000C85DDE4FE880F9800A8169 -:10F230001B81C852D140BB27A12F902F8F2D0F9437 -:10F240007EF3C85DDE4F8881C852D1400F947EF3B3 -:10F2500070E2F72EF092C6008091C00086FFFCCFCE -:10F260008091C00080648093C0000DE30093C600CD -:10F270008091C00086FFFCCF8091C00080648093A5 -:10F28000C00010E21093C6008091C00086FFFCCF42 -:10F290008091C00080648093C0008BBEF3012791F1 -:10F2A000C45DDE4F2883CC52D140A22EBB24CC2497 -:10F2B000DD240894611C711C811C911C8BBEF30120 -:10F2C0008791282E332444245524142D032DF22C09 -:10F2D000EE24EA0CFB1C0C1D1D1D0894611C711C06 -:10F2E000811C911C8BBEF3013791C35DDE4F3883C7 -:10F2F000CD52D1400894611C711C811C911C8BBEA5 -:10F30000F3014791C25DDE4F4883CE52D1402DEFCD -:10F310003FEF4FEF5FEF620E731E841E951E0F943A -:10F320007EF330E23093C6008091C00086FFFCCFB0 -:10F330008091C00080648093C000C45DDE4F8881EE -:10F34000CC52D1400F947EF340E24093C6008091AE -:10F35000C00086FFFCCF8091C00080648093C00015 -:10F36000C25DDE4F8881CE52D1400F947EF350E2D1 -:10F370005093C6008091C00086FFFCCF8091C000F2 -:10F3800080648093C000C35DDE4F8881CD52D14040 -:10F390000F947EF360E26093C6008091C00086FF08 -:10F3A000FCCF8091C00080648093C0007FEFE7169F -:10F3B0007FEFF70670E0070770E0170731F48EE083 -:10F3C00092EE60E00F942FF3DFC0D801C701807088 -:10F3D000907CA070B0708050904CA040B040D1F5AF -:10F3E0002FEF3FE340E050E0E222F3220423152315 -:10F3F000C85DDE4FA880B980CA80DB80C852D1408A -:10F40000AE0CBF1CC01ED11EAA0CBB1CCC1CDD1C2C -:10F4100088E192EE60E00F942FF3BB27A12F902F8D -:10F420008F2D0F947EF38E2D0F947EF330E2309368 -:10F43000C6008091C00086FFFCCF8091C000806430 -:10F440008093C0004EE34093C6008091C00086FFC9 -:10F45000FCCF87C06EE07EEF80E090E0E622F722EE -:10F46000082319237CE0E71674E9F70670E0070724 -:10F4700070E0170709F088C0C25DDE4F8881CE5268 -:10F48000D140E82EFF2400E010E0102F0F2DFE2CBD -:10F49000EE24C35DDE4F9881CD52D140E90EF11CC0 -:10F4A000011D111DD601C50181709070A070B07052 -:10F4B000DC0199278827E80EF91E0A1F1B1F20EF81 -:10F4C00030E040E050E0A222B322C422D522F1E194 -:10F4D000AA0CBB1CCC1CDD1CFA95D1F7EA0CFB1C5A -:10F4E0000C1D1D1D41E050E060E070E0242235223B -:10F4F00046225722E5E1220C331C441C551CEA9598 -:10F50000D1F7E20CF31C041D151D57016801AA0C6C -:10F51000BB1CCC1CDD1C8FE192EE60E00F942FF33E -:10F52000C801AA27BB270F947EF3BB27A12F902FDA -:10F530008F2D0F947EF38E2D0F947EF350E2509317 -:10F54000C6008091C00086FFFCCF8091C00080641F -:10F550008093C0006EE36093C6008091C00086FF78 -:10F56000FCCF8091C00080648093C000C601AA27B0 -:10F57000BB270F947EF3BB27AD2D9C2D8B2D0F94B5 -:10F580007EF38A2D0F947EF370E27093C600809113 -:10F59000C00086FFFCCF8091C00080648093C000D3 -:10F5A000CC5DDE4FE881F981C452D140CF01AA275A -:10F5B00097FDA095BA2FABBFFC018791969160E0B3 -:10F5C0000F942FF30F944DF3CC5DDE4F088119811A -:10F5D000C452D1400E5F1F4FCC5DDE4F19830883AC -:10F5E000C452D140CA5DDE4F28813981C652D14014 -:10F5F0002933310509F417CB44E050E060E070E0B6 -:10F60000640E751E861E971EC9CD80E393EE62E0E0 -:10F610000F9466F384E292EE60E00F942FF38091F2 -:10F62000C00087FFFCCF1091C6001F751093C60065 -:10F630008091C00086FFFCCF8091C00080648093E1 -:10F64000C0000F944DF3812F81548A3108F036C1E8 -:10F65000163409F495C0173490F4133409F44EC0ED -:10F66000143430F41134F1F0123409F01DC130C0FB -:10F67000143409F459C0153409F016C16BC01A349A -:10F6800009F4C4C01B3438F4173409F48FC018349B -:10F6900009F00AC1A1C01B3409F4D2C01C3409F01E -:10F6A00003C1E8C08FEF81B90DC082B1809582B9E6 -:10F6B00080E090E0E0EDF7E03197F1F70196883CCB -:10F6C0009105C1F78091C00087FFEFCF12B8EFC05E -:10F6D0008FEF84B90DC085B1809585B980E090E049 -:10F6E000E0EDF7E03197F1F70196883C9105C1F71D -:10F6F0008091C00087FFEFCF15B8D9C08FEF87B9D1 -:10F700000DC088B1809588B980E090E0E0EDF7E029 -:10F710003197F1F70196883C9105C1F78091C000BF -:10F7200087FFEFCF18B8C3C08FEF8AB90DC08BB178 -:10F7300080958BB980E090E0E0EDF7E03197F1F74C -:10F740000196883C9105C1F78091C00087FFEFCFFB -:10F750001BB8ADC08FEF8DB90DC08EB180958EB93D -:10F7600080E090E0E0EDF7E03197F1F70196883C1A -:10F770009105C1F78091C00087FFEFCF1EB897C0F9 -:10F780008FEF80BB0DC081B3809581BB80E090E09E -:10F79000E0EDF7E03197F1F70196883C9105C1F76C -:10F7A0008091C00087FFEFCF11BA81C08FEF83BB7C -:10F7B0000DC084B3809584BB80E090E0E0EDF7E07D -:10F7C0003197F1F70196883C9105C1F78091C0000F -:10F7D00087FFEFCF14BA6BC08FEF809301010FC08A -:10F7E0008091020180958093020180E090E0E0ED3D -:10F7F000F7E03197F1F70196883C9105C1F78091C8 -:10F80000C00087FFEDCF1092020151C08FEF8093AF -:10F8100004010FC08091050180958093050180E06F -:10F8200090E0E0EDF7E03197F1F70196883C910523 -:10F83000C1F78091C00087FFEDCF1092050137C05E -:10F840008FEF809307010FC080910801809580930E -:10F85000080180E090E0E0EDF7E03197F1F70196E4 -:10F86000883C9105C1F78091C00087FFEDCF1092D1 -:10F8700008011DC08FEF80930A010FC080910B011A -:10F88000809580930B0180E090E0E0EDF7E0319708 -:10F89000F1F70196883C9105C1F78091C00087FF80 -:10F8A000EDCF10920B0103C08FE292EEB9C98091A7 -:10F8B000C00087FFFCCF8091C600B5C982E492EEFC -:10F8C000AFC98CE191EEACC9AA24BB24933061F19D -:10F8D000943028F4913089F0923008F508C09530C2 -:10F8E000B1F1953040F1963009F053C04EC02B3144 -:10F8F00009F020C991E06BE11DC9213041F0C15DE3 -:10F90000DE4F5881CF52D140251709F002C362273C -:10F91000C15DDE4F2883CF52D14092E00BC9B22F98 -:10F92000A0E0622793E006C9822F90E0A82BB92BB4 -:10F93000622794E0FFC82E3009F0EBC2622795E001 -:10F94000C05DDE4F19821882C053D140F3C8E1E098 -:10F95000F0E0EC0FFD1FC05DDE4FE880F980C05382 -:10F96000D140EE0DFF1D208387010F5F1F4FC05D4B -:10F97000DE4F19830883C053D14062270A171B0743 -:10F9800009F0D8C8D80196E0D5C8261709F0C1C239 -:10F9900003C0973009F0CEC899248981833109F4D6 -:10F9A000FCC08431C8F4863009F4C2C0873050F4FA -:10F9B000823009F4F0C0833009F458C0813009F076 -:10F9C0000AC23EC0813109F462C0823108F0A6C08B -:10F9D000803109F000C2DFC0883109F472C089317A -:10F9E00050F4853109F4D9C0853108F477C18631E6 -:10F9F00009F0F1C173C18A3109F457C08A3108F4A2 -:10FA00007CC08B3109F446C08D3109F0E4C18D8191 -:10FA1000803311F090E00AC08F81882311F49EE1B9 -:10FA200005C0813011F091E001C098E91A821B8273 -:10FA30008D818C831D829E831F8227E030E0CFC1A1 -:10FA40001A8288E08B8381E48C8386E58D8382E54E -:10FA50008E8389E48F8383E5888780E589878FE5B6 -:10FA60008A8782E38B872BE030E0B9C18A818139B4 -:10FA700041F0823941F0803911F48FE005C080E017 -:10FA800003C082E001C08AE01A828B8344C09924BB -:10FA9000939481C08D81882311F48EE12CC0813034 -:10FAA00011F081E028C088E926C01A82E1E0F0E088 -:10FAB00089E08093570084918B831C8224E030E09E -:10FAC0008EC18B81803589F48C81883039F4E2E0F5 -:10FAD000F0E089E08093570084910DC0E0E0F0E011 -:10FAE00089E080935700849106C0E3E0F0E089E06C -:10FAF0008093570084911A82DFCF8D81836C99E0C7 -:10FB0000E1E0F0E0082E90935700E89507B600FC7E -:10FB1000FDCF1A821B8223E030E061C11A82CE5CE5 -:10FB2000DE4F188219821A821B82C253D14055C1FE -:10FB30008A8190E0A0E0B0E0582F442733272227A5 -:10FB40008B8190E0A0E0B0E0DC0199278827282B8A -:10FB5000392B4A2B5B2B8D8190E0A0E0B0E0282B65 -:10FB6000392B4A2B5B2B8C8190E0A0E0B0E0BA2FC0 -:10FB7000A92F982F8827282B392B4A2B5B2B220F54 -:10FB8000331F441F551FC05EDE4F288339834A83CD -:10FB90005B83C052D1401A8220C19A812B8183316C -:10FBA00049F0C05EDE4F488159816A817B81C05235 -:10FBB000D1408AC0CE5CDE4F488159816A817B8109 -:10FBC000C253D140403080EC580783E0680780E0A2 -:10FBD0007807F0F483E0FA0160935B0080935700AC -:10FBE000E89507B600FCFDCFCE5CDE4F4881598119 -:10FBF0006A817B81C253D14040505F4F6F4F7F4F2E -:10FC0000CE5CDE4F488359836A837B83C253D140E5 -:10FC1000C95CDE4F9883C753D140CA5CDE4F18825F -:10FC2000C653D140022F10E0CA5CDE4F6881798153 -:10FC3000C653D140062B172BC05EDE4F4881598139 -:10FC40006A817B81C052D140DE011B9631E08C91EC -:10FC500011962C9111971296C75CDE4F2883C953D9 -:10FC6000D140C85CDE4F1882C853D14090E0C85CD8 -:10FC7000DE4FE881F981C853D1408E2B9F2B0C01B8 -:10FC8000FA0160935B0030935700E89511244E5FB2 -:10FC90005F4F6F4F7F4F02501040C9F685E0C05E46 -:10FCA000DE4FE880F9800A811B81C052D140F70104 -:10FCB00000935B0080935700E89507B600FCFDCFEA -:10FCC00081E180935700E8951A82C05EDE4F488339 -:10FCD00059836A837B83C052D1407FC0FA80C55C60 -:10FCE000DE4FF882CB53D140C65CDE4F1882CA5338 -:10FCF000D1408B81C82EDD24C65CDE4F088119817E -:10FD0000CA53D140C02AD12A1A828981BE016D5FAF -:10FD10007F4F843121F59601C05EDE4FE880F98087 -:10FD20000A811B81C052D1400BBFF7018791969188 -:10FD3000DB018C9311969C936E5F7F4FD801C701B6 -:10FD40000296A11DB11DC05EDE4F88839983AA83F0 -:10FD5000BB83C052D14022503040F1F636C0C05E65 -:10FD6000DE4F288139814A815B81C052D14008949D -:10FD7000C108D108760100E010E00894C11CD11C34 -:10FD80000894E11CF11C011D111DE20EF31E041F5D -:10FD9000151F21BDBB27A52F942F832F82BD2F5F59 -:10FDA0003F4F4F4F5F4FF89A80B5DB018D93BD01F8 -:10FDB0002E153F054007510761F7C05EDE4F2883CF -:10FDC00039834A835B83C052D14096012D5F3F4FF8 -:10FDD000FB01108204C080EC8A8322E030E08BE1DA -:10FDE0008093C6008091C00086FFFCCF8091C00048 -:10FDF00080648093C000C15DDE4FF881CF52D14056 -:10FE0000F093C6008091C00086FFFCCF8091C000B7 -:10FE100080648093C000432F3093C6008091C0005F -:10FE200086FFFCCF8091C00080648093C000922F39 -:10FE30002093C6008091C00086FFFCCF8091C00057 -:10FE400080648093C0008EE08093C6008091C000E3 -:10FE500086FFFCCF8091C00080648093C00065E184 -:10FE6000C15DDE4FE880CF52D1406E2569276427FF -:10FE7000FE01319610C090819093C6008091C00021 -:10FE800086FFFCCF31968091C00080648093C000D3 -:10FE90006927215030402115310569F76093C6006C -:10FEA0008091C00086FFFCCF8091C0008064809369 -:10FEB000C00085B1805885B9992081F4C15DDE4FBD -:10FEC0000881CF52D1400F5FC15DDE4F0883CF5212 -:10FED000D14090E0A0E0B0E00D949AF527982F98DB -:10FEE00080E090E020ED37E0F9013197F1F70196DD -:10FEF00084369105C9F700008091C0008D7F809302 -:10FF0000C00081E180935700E895EE27FF27099410 -:10FF1000FFCF90E00D949AF597FB092E07260AD0A3 -:10FF200077FD04D02ED006D000201AF4709561958C -:10FF30007F4F0895F6F7909581959F4F0895A1E220 -:10FF40001A2EAA1BBB1BFD010DC0AA1FBB1FEE1F53 -:10FF5000FF1FA217B307E407F50720F0A21BB30B9E -:10FF6000E40BF50B661F771F881F991F1A9469F71A -:10FF700060957095809590959B01AC01BD01CF0176 -:10FF80000895AA1BBB1B51E107C0AA1FBB1FA617E0 -:10FF9000B70710F0A61BB70B881F991F5A95A9F732 -:10FFA00080959095BC01CD010895F999FECF92BD41 -:10FFB00081BDF89A992780B50895262FF999FECF2B -:10FFC0001FBA92BD81BD20BD0FB6F894FA9AF99A76 -:0AFFD0000FBE01960895F894FFCFCC -:040000033000E000E9 -:00000001FF diff --git a/build/linux/work/hardware/arduino/cores/arduino/Arduino.h b/build/linux/work/hardware/arduino/cores/arduino/Arduino.h deleted file mode 100644 index 830c9952f..000000000 --- a/build/linux/work/hardware/arduino/cores/arduino/Arduino.h +++ /dev/null @@ -1,215 +0,0 @@ -#ifndef Arduino_h -#define Arduino_h - -#include -#include -#include - -#include -#include -#include - -#include "binary.h" - -#ifdef __cplusplus -extern "C"{ -#endif - -#define HIGH 0x1 -#define LOW 0x0 - -#define INPUT 0x0 -#define OUTPUT 0x1 -#define INPUT_PULLUP 0x2 - -#define true 0x1 -#define false 0x0 - -#define PI 3.1415926535897932384626433832795 -#define HALF_PI 1.5707963267948966192313216916398 -#define TWO_PI 6.283185307179586476925286766559 -#define DEG_TO_RAD 0.017453292519943295769236907684886 -#define RAD_TO_DEG 57.295779513082320876798154814105 - -#define SERIAL 0x0 -#define DISPLAY 0x1 - -#define LSBFIRST 0 -#define MSBFIRST 1 - -#define CHANGE 1 -#define FALLING 2 -#define RISING 3 - -#if defined(__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__) || defined(__AVR_ATtiny25__) || defined(__AVR_ATtiny45__) || defined(__AVR_ATtiny85__) -#define DEFAULT 0 -#define EXTERNAL 1 -#define INTERNAL 2 -#else -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega1284P__) -#define INTERNAL1V1 2 -#define INTERNAL2V56 3 -#else -#define INTERNAL 3 -#endif -#define DEFAULT 1 -#define EXTERNAL 0 -#endif - -// undefine stdlib's abs if encountered -#ifdef abs -#undef abs -#endif - -#define min(a,b) ((a)<(b)?(a):(b)) -#define max(a,b) ((a)>(b)?(a):(b)) -#define abs(x) ((x)>0?(x):-(x)) -#define constrain(amt,low,high) ((amt)<(low)?(low):((amt)>(high)?(high):(amt))) -#define round(x) ((x)>=0?(long)((x)+0.5):(long)((x)-0.5)) -#define radians(deg) ((deg)*DEG_TO_RAD) -#define degrees(rad) ((rad)*RAD_TO_DEG) -#define sq(x) ((x)*(x)) - -#define interrupts() sei() -#define noInterrupts() cli() - -#define clockCyclesPerMicrosecond() ( F_CPU / 1000000L ) -#define clockCyclesToMicroseconds(a) ( (a) / clockCyclesPerMicrosecond() ) -#define microsecondsToClockCycles(a) ( (a) * clockCyclesPerMicrosecond() ) - -#define lowByte(w) ((uint8_t) ((w) & 0xff)) -#define highByte(w) ((uint8_t) ((w) >> 8)) - -#define bitRead(value, bit) (((value) >> (bit)) & 0x01) -#define bitSet(value, bit) ((value) |= (1UL << (bit))) -#define bitClear(value, bit) ((value) &= ~(1UL << (bit))) -#define bitWrite(value, bit, bitvalue) (bitvalue ? bitSet(value, bit) : bitClear(value, bit)) - - -typedef unsigned int word; - -#define bit(b) (1UL << (b)) - -typedef uint8_t boolean; -typedef uint8_t byte; - -void init(void); - -void pinMode(uint8_t, uint8_t); -void digitalWrite(uint8_t, uint8_t); -int digitalRead(uint8_t); -int analogRead(uint8_t); -void analogReference(uint8_t mode); -void analogWrite(uint8_t, int); - -unsigned long millis(void); -unsigned long micros(void); -void delay(unsigned long); -void delayMicroseconds(unsigned int us); -unsigned long pulseIn(uint8_t pin, uint8_t state, unsigned long timeout); - -void shiftOut(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t val); -uint8_t shiftIn(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder); - -void attachInterrupt(uint8_t, void (*)(void), int mode); -void detachInterrupt(uint8_t); - -void setup(void); -void loop(void); - -// Get the bit location within the hardware port of the given virtual pin. -// This comes from the pins_*.c file for the active board configuration. - -#define analogInPinToBit(P) (P) - -// On the ATmega1280, the addresses of some of the port registers are -// greater than 255, so we can't store them in uint8_t's. -extern const uint16_t PROGMEM port_to_mode_PGM[]; -extern const uint16_t PROGMEM port_to_input_PGM[]; -extern const uint16_t PROGMEM port_to_output_PGM[]; - -extern const uint8_t PROGMEM digital_pin_to_port_PGM[]; -// extern const uint8_t PROGMEM digital_pin_to_bit_PGM[]; -extern const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[]; -extern const uint8_t PROGMEM digital_pin_to_timer_PGM[]; - -// Get the bit location within the hardware port of the given virtual pin. -// This comes from the pins_*.c file for the active board configuration. -// -// These perform slightly better as macros compared to inline functions -// -#define digitalPinToPort(P) ( pgm_read_byte( digital_pin_to_port_PGM + (P) ) ) -#define digitalPinToBitMask(P) ( pgm_read_byte( digital_pin_to_bit_mask_PGM + (P) ) ) -#define digitalPinToTimer(P) ( pgm_read_byte( digital_pin_to_timer_PGM + (P) ) ) -#define analogInPinToBit(P) (P) -#define portOutputRegister(P) ( (volatile uint8_t *)( pgm_read_word( port_to_output_PGM + (P))) ) -#define portInputRegister(P) ( (volatile uint8_t *)( pgm_read_word( port_to_input_PGM + (P))) ) -#define portModeRegister(P) ( (volatile uint8_t *)( pgm_read_word( port_to_mode_PGM + (P))) ) - -#define NOT_A_PIN 0 -#define NOT_A_PORT 0 - -#ifdef ARDUINO_MAIN -#define PA 1 -#define PB 2 -#define PC 3 -#define PD 4 -#define PE 5 -#define PF 6 -#define PG 7 -#define PH 8 -#define PJ 10 -#define PK 11 -#define PL 12 -#endif - -#define NOT_ON_TIMER 0 -#define TIMER0A 1 -#define TIMER0B 2 -#define TIMER1A 3 -#define TIMER1B 4 -#define TIMER2 5 -#define TIMER2A 6 -#define TIMER2B 7 - -#define TIMER3A 8 -#define TIMER3B 9 -#define TIMER3C 10 -#define TIMER4A 11 -#define TIMER4B 12 -#define TIMER4C 13 -#define TIMER4D 14 -#define TIMER5A 15 -#define TIMER5B 16 -#define TIMER5C 17 - -#ifdef __cplusplus -} // extern "C" -#endif - -#ifdef __cplusplus -#include "WCharacter.h" -#include "WString.h" -#include "HardwareSerial.h" - -uint16_t makeWord(uint16_t w); -uint16_t makeWord(byte h, byte l); - -#define word(...) makeWord(__VA_ARGS__) - -unsigned long pulseIn(uint8_t pin, uint8_t state, unsigned long timeout = 1000000L); - -void tone(uint8_t _pin, unsigned int frequency, unsigned long duration = 0); -void noTone(uint8_t _pin); - -// WMath prototypes -long random(long); -long random(long, long); -void randomSeed(unsigned int); -long map(long, long, long, long, long); - -#endif - -#include "pins_arduino.h" - -#endif diff --git a/build/linux/work/hardware/arduino/cores/arduino/CDC.cpp b/build/linux/work/hardware/arduino/cores/arduino/CDC.cpp deleted file mode 100644 index c1e646d2d..000000000 --- a/build/linux/work/hardware/arduino/cores/arduino/CDC.cpp +++ /dev/null @@ -1,234 +0,0 @@ - - -/* Copyright (c) 2011, Peter Barrett -** -** Permission to use, copy, modify, and/or distribute this software for -** any purpose with or without fee is hereby granted, provided that the -** above copyright notice and this permission notice appear in all copies. -** -** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL -** WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED -** WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR -** BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES -** OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -** WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -** ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -** SOFTWARE. -*/ - -#include "Platform.h" -#include "USBAPI.h" -#include - -#if defined(USBCON) -#ifdef CDC_ENABLED - -#if (RAMEND < 1000) -#define SERIAL_BUFFER_SIZE 16 -#else -#define SERIAL_BUFFER_SIZE 64 -#endif - -struct ring_buffer -{ - unsigned char buffer[SERIAL_BUFFER_SIZE]; - volatile int head; - volatile int tail; -}; - -ring_buffer cdc_rx_buffer = { { 0 }, 0, 0}; - -typedef struct -{ - u32 dwDTERate; - u8 bCharFormat; - u8 bParityType; - u8 bDataBits; - u8 lineState; -} LineInfo; - -static volatile LineInfo _usbLineInfo = { 57600, 0x00, 0x00, 0x00, 0x00 }; - -#define WEAK __attribute__ ((weak)) - -extern const CDCDescriptor _cdcInterface PROGMEM; -const CDCDescriptor _cdcInterface = -{ - D_IAD(0,2,CDC_COMMUNICATION_INTERFACE_CLASS,CDC_ABSTRACT_CONTROL_MODEL,1), - - // CDC communication interface - D_INTERFACE(CDC_ACM_INTERFACE,1,CDC_COMMUNICATION_INTERFACE_CLASS,CDC_ABSTRACT_CONTROL_MODEL,0), - D_CDCCS(CDC_HEADER,0x10,0x01), // Header (1.10 bcd) - D_CDCCS(CDC_CALL_MANAGEMENT,1,1), // Device handles call management (not) - D_CDCCS4(CDC_ABSTRACT_CONTROL_MANAGEMENT,6), // SET_LINE_CODING, GET_LINE_CODING, SET_CONTROL_LINE_STATE supported - D_CDCCS(CDC_UNION,CDC_ACM_INTERFACE,CDC_DATA_INTERFACE), // Communication interface is master, data interface is slave 0 - D_ENDPOINT(USB_ENDPOINT_IN (CDC_ENDPOINT_ACM),USB_ENDPOINT_TYPE_INTERRUPT,0x10,0x40), - - // CDC data interface - D_INTERFACE(CDC_DATA_INTERFACE,2,CDC_DATA_INTERFACE_CLASS,0,0), - D_ENDPOINT(USB_ENDPOINT_OUT(CDC_ENDPOINT_OUT),USB_ENDPOINT_TYPE_BULK,0x40,0), - D_ENDPOINT(USB_ENDPOINT_IN (CDC_ENDPOINT_IN ),USB_ENDPOINT_TYPE_BULK,0x40,0) -}; - -int WEAK CDC_GetInterface(u8* interfaceNum) -{ - interfaceNum[0] += 2; // uses 2 - return USB_SendControl(TRANSFER_PGM,&_cdcInterface,sizeof(_cdcInterface)); -} - -bool WEAK CDC_Setup(Setup& setup) -{ - u8 r = setup.bRequest; - u8 requestType = setup.bmRequestType; - - if (REQUEST_DEVICETOHOST_CLASS_INTERFACE == requestType) - { - if (CDC_GET_LINE_CODING == r) - { - USB_SendControl(0,(void*)&_usbLineInfo,7); - return true; - } - } - - if (REQUEST_HOSTTODEVICE_CLASS_INTERFACE == requestType) - { - if (CDC_SET_LINE_CODING == r) - { - USB_RecvControl((void*)&_usbLineInfo,7); - return true; - } - - if (CDC_SET_CONTROL_LINE_STATE == r) - { - _usbLineInfo.lineState = setup.wValueL; - - // auto-reset into the bootloader is triggered when the port, already - // open at 1200 bps, is closed. this is the signal to start the watchdog - // with a relatively long period so it can finish housekeeping tasks - // like servicing endpoints before the sketch ends - if (1200 == _usbLineInfo.dwDTERate) { - // We check DTR state to determine if host port is open (bit 0 of lineState). - // Serial1.print(">"); Serial1.println(_usbLineInfo.lineState, HEX); - if ((_usbLineInfo.lineState & 0x01) == 0) { - *(uint16_t *)0x0A00 = 0x7777; - wdt_enable(WDTO_120MS); - } else { - // Most OSs do some intermediate steps when configuring ports and DTR can - // twiggle more than once before stabilizing. - // To avoid spurious resets we set the watchdog to 250ms and eventually - // cancel if DTR goes back high. - - wdt_disable(); - wdt_reset(); - *(uint16_t *)0x0A00 = 0x0; - } - } - return true; - } - } - return false; -} - - -int _serialPeek = -1; -void Serial_::begin(uint16_t baud_count) -{ -} - -void Serial_::end(void) -{ -} - -void Serial_::accept(void) -{ - ring_buffer *buffer = &cdc_rx_buffer; - int c = USB_Recv(CDC_RX); - int i = (unsigned int)(buffer->head+1) % SERIAL_BUFFER_SIZE; - - // if we should be storing the received character into the location - // just before the tail (meaning that the head would advance to the - // current location of the tail), we're about to overflow the buffer - // and so we don't write the character or advance the head. - if (i != buffer->tail) { - buffer->buffer[buffer->head] = c; - buffer->head = i; - } -} - -int Serial_::available(void) -{ - ring_buffer *buffer = &cdc_rx_buffer; - return (unsigned int)(SERIAL_BUFFER_SIZE + buffer->head - buffer->tail) % SERIAL_BUFFER_SIZE; -} - -int Serial_::peek(void) -{ - ring_buffer *buffer = &cdc_rx_buffer; - if (buffer->head == buffer->tail) { - return -1; - } else { - return buffer->buffer[buffer->tail]; - } -} - -int Serial_::read(void) -{ - ring_buffer *buffer = &cdc_rx_buffer; - // if the head isn't ahead of the tail, we don't have any characters - if (buffer->head == buffer->tail) { - return -1; - } else { - unsigned char c = buffer->buffer[buffer->tail]; - buffer->tail = (unsigned int)(buffer->tail + 1) % SERIAL_BUFFER_SIZE; - return c; - } -} - -void Serial_::flush(void) -{ - USB_Flush(CDC_TX); -} - -size_t Serial_::write(uint8_t c) -{ - /* only try to send bytes if the high-level CDC connection itself - is open (not just the pipe) - the OS should set lineState when the port - is opened and clear lineState when the port is closed. - bytes sent before the user opens the connection or after - the connection is closed are lost - just like with a UART. */ - - // TODO - ZE - check behavior on different OSes and test what happens if an - // open connection isn't broken cleanly (cable is yanked out, host dies - // or locks up, or host virtual serial port hangs) - if (_usbLineInfo.lineState > 0) { - int r = USB_Send(CDC_TX,&c,1); - if (r > 0) { - return r; - } else { - setWriteError(); - return 0; - } - } - setWriteError(); - return 0; -} - -// This operator is a convenient way for a sketch to check whether the -// port has actually been configured and opened by the host (as opposed -// to just being connected to the host). It can be used, for example, in -// setup() before printing to ensure that an application on the host is -// actually ready to receive and display the data. -// We add a short delay before returning to fix a bug observed by Federico -// where the port is configured (lineState != 0) but not quite opened. -Serial_::operator bool() { - bool result = false; - if (_usbLineInfo.lineState > 0) - result = true; - delay(10); - return result; -} - -Serial_ Serial; - -#endif -#endif /* if defined(USBCON) */ diff --git a/build/linux/work/hardware/arduino/cores/arduino/Client.h b/build/linux/work/hardware/arduino/cores/arduino/Client.h deleted file mode 100644 index ea134838a..000000000 --- a/build/linux/work/hardware/arduino/cores/arduino/Client.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef client_h -#define client_h -#include "Print.h" -#include "Stream.h" -#include "IPAddress.h" - -class Client : public Stream { - -public: - virtual int connect(IPAddress ip, uint16_t port) =0; - virtual int connect(const char *host, uint16_t port) =0; - virtual size_t write(uint8_t) =0; - virtual size_t write(const uint8_t *buf, size_t size) =0; - virtual int available() = 0; - virtual int read() = 0; - virtual int read(uint8_t *buf, size_t size) = 0; - virtual int peek() = 0; - virtual void flush() = 0; - virtual void stop() = 0; - virtual uint8_t connected() = 0; - virtual operator bool() = 0; -protected: - uint8_t* rawIPAddress(IPAddress& addr) { return addr.raw_address(); }; -}; - -#endif diff --git a/build/linux/work/hardware/arduino/cores/arduino/HID.cpp b/build/linux/work/hardware/arduino/cores/arduino/HID.cpp deleted file mode 100644 index ac6360844..000000000 --- a/build/linux/work/hardware/arduino/cores/arduino/HID.cpp +++ /dev/null @@ -1,520 +0,0 @@ - - -/* Copyright (c) 2011, Peter Barrett -** -** Permission to use, copy, modify, and/or distribute this software for -** any purpose with or without fee is hereby granted, provided that the -** above copyright notice and this permission notice appear in all copies. -** -** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL -** WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED -** WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR -** BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES -** OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -** WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -** ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -** SOFTWARE. -*/ - -#include "Platform.h" -#include "USBAPI.h" -#include "USBDesc.h" - -#if defined(USBCON) -#ifdef HID_ENABLED - -//#define RAWHID_ENABLED - -// Singletons for mouse and keyboard - -Mouse_ Mouse; -Keyboard_ Keyboard; - -//================================================================================ -//================================================================================ - -// HID report descriptor - -#define LSB(_x) ((_x) & 0xFF) -#define MSB(_x) ((_x) >> 8) - -#define RAWHID_USAGE_PAGE 0xFFC0 -#define RAWHID_USAGE 0x0C00 -#define RAWHID_TX_SIZE 64 -#define RAWHID_RX_SIZE 64 - -extern const u8 _hidReportDescriptor[] PROGMEM; -const u8 _hidReportDescriptor[] = { - - // Mouse - 0x05, 0x01, // USAGE_PAGE (Generic Desktop) // 54 - 0x09, 0x02, // USAGE (Mouse) - 0xa1, 0x01, // COLLECTION (Application) - 0x09, 0x01, // USAGE (Pointer) - 0xa1, 0x00, // COLLECTION (Physical) - 0x85, 0x01, // REPORT_ID (1) - 0x05, 0x09, // USAGE_PAGE (Button) - 0x19, 0x01, // USAGE_MINIMUM (Button 1) - 0x29, 0x03, // USAGE_MAXIMUM (Button 3) - 0x15, 0x00, // LOGICAL_MINIMUM (0) - 0x25, 0x01, // LOGICAL_MAXIMUM (1) - 0x95, 0x03, // REPORT_COUNT (3) - 0x75, 0x01, // REPORT_SIZE (1) - 0x81, 0x02, // INPUT (Data,Var,Abs) - 0x95, 0x01, // REPORT_COUNT (1) - 0x75, 0x05, // REPORT_SIZE (5) - 0x81, 0x03, // INPUT (Cnst,Var,Abs) - 0x05, 0x01, // USAGE_PAGE (Generic Desktop) - 0x09, 0x30, // USAGE (X) - 0x09, 0x31, // USAGE (Y) - 0x09, 0x38, // USAGE (Wheel) - 0x15, 0x81, // LOGICAL_MINIMUM (-127) - 0x25, 0x7f, // LOGICAL_MAXIMUM (127) - 0x75, 0x08, // REPORT_SIZE (8) - 0x95, 0x03, // REPORT_COUNT (3) - 0x81, 0x06, // INPUT (Data,Var,Rel) - 0xc0, // END_COLLECTION - 0xc0, // END_COLLECTION - - // Keyboard - 0x05, 0x01, // USAGE_PAGE (Generic Desktop) // 47 - 0x09, 0x06, // USAGE (Keyboard) - 0xa1, 0x01, // COLLECTION (Application) - 0x85, 0x02, // REPORT_ID (2) - 0x05, 0x07, // USAGE_PAGE (Keyboard) - - 0x19, 0xe0, // USAGE_MINIMUM (Keyboard LeftControl) - 0x29, 0xe7, // USAGE_MAXIMUM (Keyboard Right GUI) - 0x15, 0x00, // LOGICAL_MINIMUM (0) - 0x25, 0x01, // LOGICAL_MAXIMUM (1) - 0x75, 0x01, // REPORT_SIZE (1) - - 0x95, 0x08, // REPORT_COUNT (8) - 0x81, 0x02, // INPUT (Data,Var,Abs) - 0x95, 0x01, // REPORT_COUNT (1) - 0x75, 0x08, // REPORT_SIZE (8) - 0x81, 0x03, // INPUT (Cnst,Var,Abs) - - 0x95, 0x06, // REPORT_COUNT (6) - 0x75, 0x08, // REPORT_SIZE (8) - 0x15, 0x00, // LOGICAL_MINIMUM (0) - 0x25, 0x65, // LOGICAL_MAXIMUM (101) - 0x05, 0x07, // USAGE_PAGE (Keyboard) - - 0x19, 0x00, // USAGE_MINIMUM (Reserved (no event indicated)) - 0x29, 0x65, // USAGE_MAXIMUM (Keyboard Application) - 0x81, 0x00, // INPUT (Data,Ary,Abs) - 0xc0, // END_COLLECTION - -#if RAWHID_ENABLED - // RAW HID - 0x06, LSB(RAWHID_USAGE_PAGE), MSB(RAWHID_USAGE_PAGE), // 30 - 0x0A, LSB(RAWHID_USAGE), MSB(RAWHID_USAGE), - - 0xA1, 0x01, // Collection 0x01 - 0x85, 0x03, // REPORT_ID (3) - 0x75, 0x08, // report size = 8 bits - 0x15, 0x00, // logical minimum = 0 - 0x26, 0xFF, 0x00, // logical maximum = 255 - - 0x95, 64, // report count TX - 0x09, 0x01, // usage - 0x81, 0x02, // Input (array) - - 0x95, 64, // report count RX - 0x09, 0x02, // usage - 0x91, 0x02, // Output (array) - 0xC0 // end collection -#endif -}; - -extern const HIDDescriptor _hidInterface PROGMEM; -const HIDDescriptor _hidInterface = -{ - D_INTERFACE(HID_INTERFACE,1,3,0,0), - D_HIDREPORT(sizeof(_hidReportDescriptor)), - D_ENDPOINT(USB_ENDPOINT_IN (HID_ENDPOINT_INT),USB_ENDPOINT_TYPE_INTERRUPT,0x40,0x01) -}; - -//================================================================================ -//================================================================================ -// Driver - -u8 _hid_protocol = 1; -u8 _hid_idle = 1; - -#define WEAK __attribute__ ((weak)) - -int WEAK HID_GetInterface(u8* interfaceNum) -{ - interfaceNum[0] += 1; // uses 1 - return USB_SendControl(TRANSFER_PGM,&_hidInterface,sizeof(_hidInterface)); -} - -int WEAK HID_GetDescriptor(int i) -{ - return USB_SendControl(TRANSFER_PGM,_hidReportDescriptor,sizeof(_hidReportDescriptor)); -} - -void WEAK HID_SendReport(u8 id, const void* data, int len) -{ - USB_Send(HID_TX, &id, 1); - USB_Send(HID_TX | TRANSFER_RELEASE,data,len); -} - -bool WEAK HID_Setup(Setup& setup) -{ - u8 r = setup.bRequest; - u8 requestType = setup.bmRequestType; - if (REQUEST_DEVICETOHOST_CLASS_INTERFACE == requestType) - { - if (HID_GET_REPORT == r) - { - //HID_GetReport(); - return true; - } - if (HID_GET_PROTOCOL == r) - { - //Send8(_hid_protocol); // TODO - return true; - } - } - - if (REQUEST_HOSTTODEVICE_CLASS_INTERFACE == requestType) - { - if (HID_SET_PROTOCOL == r) - { - _hid_protocol = setup.wValueL; - return true; - } - - if (HID_SET_IDLE == r) - { - _hid_idle = setup.wValueL; - return true; - } - } - return false; -} - -//================================================================================ -//================================================================================ -// Mouse - -Mouse_::Mouse_(void) : _buttons(0) -{ -} - -void Mouse_::begin(void) -{ -} - -void Mouse_::end(void) -{ -} - -void Mouse_::click(uint8_t b) -{ - _buttons = b; - move(0,0,0); - _buttons = 0; - move(0,0,0); -} - -void Mouse_::move(signed char x, signed char y, signed char wheel) -{ - u8 m[4]; - m[0] = _buttons; - m[1] = x; - m[2] = y; - m[3] = wheel; - HID_SendReport(1,m,4); -} - -void Mouse_::buttons(uint8_t b) -{ - if (b != _buttons) - { - _buttons = b; - move(0,0,0); - } -} - -void Mouse_::press(uint8_t b) -{ - buttons(_buttons | b); -} - -void Mouse_::release(uint8_t b) -{ - buttons(_buttons & ~b); -} - -bool Mouse_::isPressed(uint8_t b) -{ - if ((b & _buttons) > 0) - return true; - return false; -} - -//================================================================================ -//================================================================================ -// Keyboard - -Keyboard_::Keyboard_(void) -{ -} - -void Keyboard_::begin(void) -{ -} - -void Keyboard_::end(void) -{ -} - -void Keyboard_::sendReport(KeyReport* keys) -{ - HID_SendReport(2,keys,sizeof(KeyReport)); -} - -extern -const uint8_t _asciimap[128] PROGMEM; - -#define SHIFT 0x80 -const uint8_t _asciimap[128] = -{ - 0x00, // NUL - 0x00, // SOH - 0x00, // STX - 0x00, // ETX - 0x00, // EOT - 0x00, // ENQ - 0x00, // ACK - 0x00, // BEL - 0x2a, // BS Backspace - 0x2b, // TAB Tab - 0x28, // LF Enter - 0x00, // VT - 0x00, // FF - 0x00, // CR - 0x00, // SO - 0x00, // SI - 0x00, // DEL - 0x00, // DC1 - 0x00, // DC2 - 0x00, // DC3 - 0x00, // DC4 - 0x00, // NAK - 0x00, // SYN - 0x00, // ETB - 0x00, // CAN - 0x00, // EM - 0x00, // SUB - 0x00, // ESC - 0x00, // FS - 0x00, // GS - 0x00, // RS - 0x00, // US - - 0x2c, // ' ' - 0x1e|SHIFT, // ! - 0x34|SHIFT, // " - 0x20|SHIFT, // # - 0x21|SHIFT, // $ - 0x22|SHIFT, // % - 0x24|SHIFT, // & - 0x34, // ' - 0x26|SHIFT, // ( - 0x27|SHIFT, // ) - 0x25|SHIFT, // * - 0x2e|SHIFT, // + - 0x36, // , - 0x2d, // - - 0x37, // . - 0x38, // / - 0x27, // 0 - 0x1e, // 1 - 0x1f, // 2 - 0x20, // 3 - 0x21, // 4 - 0x22, // 5 - 0x23, // 6 - 0x24, // 7 - 0x25, // 8 - 0x26, // 9 - 0x33|SHIFT, // : - 0x33, // ; - 0x36|SHIFT, // < - 0x2e, // = - 0x37|SHIFT, // > - 0x38|SHIFT, // ? - 0x1f|SHIFT, // @ - 0x04|SHIFT, // A - 0x05|SHIFT, // B - 0x06|SHIFT, // C - 0x07|SHIFT, // D - 0x08|SHIFT, // E - 0x09|SHIFT, // F - 0x0a|SHIFT, // G - 0x0b|SHIFT, // H - 0x0c|SHIFT, // I - 0x0d|SHIFT, // J - 0x0e|SHIFT, // K - 0x0f|SHIFT, // L - 0x10|SHIFT, // M - 0x11|SHIFT, // N - 0x12|SHIFT, // O - 0x13|SHIFT, // P - 0x14|SHIFT, // Q - 0x15|SHIFT, // R - 0x16|SHIFT, // S - 0x17|SHIFT, // T - 0x18|SHIFT, // U - 0x19|SHIFT, // V - 0x1a|SHIFT, // W - 0x1b|SHIFT, // X - 0x1c|SHIFT, // Y - 0x1d|SHIFT, // Z - 0x2f, // [ - 0x31, // bslash - 0x30, // ] - 0x23|SHIFT, // ^ - 0x2d|SHIFT, // _ - 0x35, // ` - 0x04, // a - 0x05, // b - 0x06, // c - 0x07, // d - 0x08, // e - 0x09, // f - 0x0a, // g - 0x0b, // h - 0x0c, // i - 0x0d, // j - 0x0e, // k - 0x0f, // l - 0x10, // m - 0x11, // n - 0x12, // o - 0x13, // p - 0x14, // q - 0x15, // r - 0x16, // s - 0x17, // t - 0x18, // u - 0x19, // v - 0x1a, // w - 0x1b, // x - 0x1c, // y - 0x1d, // z - 0x2f|SHIFT, // - 0x31|SHIFT, // | - 0x30|SHIFT, // } - 0x35|SHIFT, // ~ - 0 // DEL -}; - -uint8_t USBPutChar(uint8_t c); - -// press() adds the specified key (printing, non-printing, or modifier) -// to the persistent key report and sends the report. Because of the way -// USB HID works, the host acts like the key remains pressed until we -// call release(), releaseAll(), or otherwise clear the report and resend. -size_t Keyboard_::press(uint8_t k) -{ - uint8_t i; - if (k >= 136) { // it's a non-printing key (not a modifier) - k = k - 136; - } else if (k >= 128) { // it's a modifier key - _keyReport.modifiers |= (1<<(k-128)); - k = 0; - } else { // it's a printing key - k = pgm_read_byte(_asciimap + k); - if (!k) { - setWriteError(); - return 0; - } - if (k & 0x80) { // it's a capital letter or other character reached with shift - _keyReport.modifiers |= 0x02; // the left shift modifier - k &= 0x7F; - } - } - - // Add k to the key report only if it's not already present - // and if there is an empty slot. - if (_keyReport.keys[0] != k && _keyReport.keys[1] != k && - _keyReport.keys[2] != k && _keyReport.keys[3] != k && - _keyReport.keys[4] != k && _keyReport.keys[5] != k) { - - for (i=0; i<6; i++) { - if (_keyReport.keys[i] == 0x00) { - _keyReport.keys[i] = k; - break; - } - } - if (i == 6) { - setWriteError(); - return 0; - } - } - sendReport(&_keyReport); - return 1; -} - -// release() takes the specified key out of the persistent key report and -// sends the report. This tells the OS the key is no longer pressed and that -// it shouldn't be repeated any more. -size_t Keyboard_::release(uint8_t k) -{ - uint8_t i; - if (k >= 136) { // it's a non-printing key (not a modifier) - k = k - 136; - } else if (k >= 128) { // it's a modifier key - _keyReport.modifiers &= ~(1<<(k-128)); - k = 0; - } else { // it's a printing key - k = pgm_read_byte(_asciimap + k); - if (!k) { - return 0; - } - if (k & 0x80) { // it's a capital letter or other character reached with shift - _keyReport.modifiers &= ~(0x02); // the left shift modifier - k &= 0x7F; - } - } - - // Test the key report to see if k is present. Clear it if it exists. - // Check all positions in case the key is present more than once (which it shouldn't be) - for (i=0; i<6; i++) { - if (0 != k && _keyReport.keys[i] == k) { - _keyReport.keys[i] = 0x00; - } - } - - sendReport(&_keyReport); - return 1; -} - -void Keyboard_::releaseAll(void) -{ - _keyReport.keys[0] = 0; - _keyReport.keys[1] = 0; - _keyReport.keys[2] = 0; - _keyReport.keys[3] = 0; - _keyReport.keys[4] = 0; - _keyReport.keys[5] = 0; - _keyReport.modifiers = 0; - sendReport(&_keyReport); -} - -size_t Keyboard_::write(uint8_t c) -{ - uint8_t p = press(c); // Keydown - uint8_t r = release(c); // Keyup - return (p); // just return the result of press() since release() almost always returns 1 -} - -#endif - -#endif /* if defined(USBCON) */ \ No newline at end of file diff --git a/build/linux/work/hardware/arduino/cores/arduino/HardwareSerial.cpp b/build/linux/work/hardware/arduino/cores/arduino/HardwareSerial.cpp deleted file mode 100644 index f40ddee06..000000000 --- a/build/linux/work/hardware/arduino/cores/arduino/HardwareSerial.cpp +++ /dev/null @@ -1,428 +0,0 @@ -/* - HardwareSerial.cpp - Hardware serial library for Wiring - Copyright (c) 2006 Nicholas Zambetti. All right reserved. - - 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Modified 23 November 2006 by David A. Mellis - Modified 28 September 2010 by Mark Sproul -*/ - -#include -#include -#include -#include -#include "Arduino.h" -#include "wiring_private.h" - -// this next line disables the entire HardwareSerial.cpp, -// this is so I can support Attiny series and any other chip without a uart -#if defined(UBRRH) || defined(UBRR0H) || defined(UBRR1H) || defined(UBRR2H) || defined(UBRR3H) - -#include "HardwareSerial.h" - -// Define constants and variables for buffering incoming serial data. We're -// using a ring buffer (I think), in which head is the index of the location -// to which to write the next incoming character and tail is the index of the -// location from which to read. -#if (RAMEND < 1000) - #define SERIAL_BUFFER_SIZE 16 -#else - #define SERIAL_BUFFER_SIZE 64 -#endif - -struct ring_buffer -{ - unsigned char buffer[SERIAL_BUFFER_SIZE]; - volatile unsigned int head; - volatile unsigned int tail; -}; - -#if defined(USBCON) - ring_buffer rx_buffer = { { 0 }, 0, 0}; - ring_buffer tx_buffer = { { 0 }, 0, 0}; -#endif -#if defined(UBRRH) || defined(UBRR0H) - ring_buffer rx_buffer = { { 0 }, 0, 0 }; - ring_buffer tx_buffer = { { 0 }, 0, 0 }; -#endif -#if defined(UBRR1H) - ring_buffer rx_buffer1 = { { 0 }, 0, 0 }; - ring_buffer tx_buffer1 = { { 0 }, 0, 0 }; -#endif -#if defined(UBRR2H) - ring_buffer rx_buffer2 = { { 0 }, 0, 0 }; - ring_buffer tx_buffer2 = { { 0 }, 0, 0 }; -#endif -#if defined(UBRR3H) - ring_buffer rx_buffer3 = { { 0 }, 0, 0 }; - ring_buffer tx_buffer3 = { { 0 }, 0, 0 }; -#endif - -inline void store_char(unsigned char c, ring_buffer *buffer) -{ - int i = (unsigned int)(buffer->head + 1) % SERIAL_BUFFER_SIZE; - - // if we should be storing the received character into the location - // just before the tail (meaning that the head would advance to the - // current location of the tail), we're about to overflow the buffer - // and so we don't write the character or advance the head. - if (i != buffer->tail) { - buffer->buffer[buffer->head] = c; - buffer->head = i; - } -} - -#if !defined(USART0_RX_vect) && defined(USART1_RX_vect) -// do nothing - on the 32u4 the first USART is USART1 -#else -#if !defined(USART_RX_vect) && !defined(SIG_USART0_RECV) && \ - !defined(SIG_UART0_RECV) && !defined(USART0_RX_vect) && \ - !defined(SIG_UART_RECV) - #error "Don't know what the Data Received vector is called for the first UART" -#else - void serialEvent() __attribute__((weak)); - void serialEvent() {} - #define serialEvent_implemented -#if defined(USART_RX_vect) - SIGNAL(USART_RX_vect) -#elif defined(SIG_USART0_RECV) - SIGNAL(SIG_USART0_RECV) -#elif defined(SIG_UART0_RECV) - SIGNAL(SIG_UART0_RECV) -#elif defined(USART0_RX_vect) - SIGNAL(USART0_RX_vect) -#elif defined(SIG_UART_RECV) - SIGNAL(SIG_UART_RECV) -#endif - { - #if defined(UDR0) - unsigned char c = UDR0; - #elif defined(UDR) - unsigned char c = UDR; - #else - #error UDR not defined - #endif - store_char(c, &rx_buffer); - } -#endif -#endif - -#if defined(USART1_RX_vect) - void serialEvent1() __attribute__((weak)); - void serialEvent1() {} - #define serialEvent1_implemented - SIGNAL(USART1_RX_vect) - { - unsigned char c = UDR1; - store_char(c, &rx_buffer1); - } -#elif defined(SIG_USART1_RECV) - #error SIG_USART1_RECV -#endif - -#if defined(USART2_RX_vect) && defined(UDR2) - void serialEvent2() __attribute__((weak)); - void serialEvent2() {} - #define serialEvent2_implemented - SIGNAL(USART2_RX_vect) - { - unsigned char c = UDR2; - store_char(c, &rx_buffer2); - } -#elif defined(SIG_USART2_RECV) - #error SIG_USART2_RECV -#endif - -#if defined(USART3_RX_vect) && defined(UDR3) - void serialEvent3() __attribute__((weak)); - void serialEvent3() {} - #define serialEvent3_implemented - SIGNAL(USART3_RX_vect) - { - unsigned char c = UDR3; - store_char(c, &rx_buffer3); - } -#elif defined(SIG_USART3_RECV) - #error SIG_USART3_RECV -#endif - -void serialEventRun(void) -{ -#ifdef serialEvent_implemented - if (Serial.available()) serialEvent(); -#endif -#ifdef serialEvent1_implemented - if (Serial1.available()) serialEvent1(); -#endif -#ifdef serialEvent2_implemented - if (Serial2.available()) serialEvent2(); -#endif -#ifdef serialEvent3_implemented - if (Serial3.available()) serialEvent3(); -#endif -} - - -#if !defined(USART0_UDRE_vect) && defined(USART1_UDRE_vect) -// do nothing - on the 32u4 the first USART is USART1 -#else -#if !defined(UART0_UDRE_vect) && !defined(UART_UDRE_vect) && !defined(USART0_UDRE_vect) && !defined(USART_UDRE_vect) - #error "Don't know what the Data Register Empty vector is called for the first UART" -#else -#if defined(UART0_UDRE_vect) -ISR(UART0_UDRE_vect) -#elif defined(UART_UDRE_vect) -ISR(UART_UDRE_vect) -#elif defined(USART0_UDRE_vect) -ISR(USART0_UDRE_vect) -#elif defined(USART_UDRE_vect) -ISR(USART_UDRE_vect) -#endif -{ - if (tx_buffer.head == tx_buffer.tail) { - // Buffer empty, so disable interrupts -#if defined(UCSR0B) - cbi(UCSR0B, UDRIE0); -#else - cbi(UCSRB, UDRIE); -#endif - } - else { - // There is more data in the output buffer. Send the next byte - unsigned char c = tx_buffer.buffer[tx_buffer.tail]; - tx_buffer.tail = (tx_buffer.tail + 1) % SERIAL_BUFFER_SIZE; - - #if defined(UDR0) - UDR0 = c; - #elif defined(UDR) - UDR = c; - #else - #error UDR not defined - #endif - } -} -#endif -#endif - -#ifdef USART1_UDRE_vect -ISR(USART1_UDRE_vect) -{ - if (tx_buffer1.head == tx_buffer1.tail) { - // Buffer empty, so disable interrupts - cbi(UCSR1B, UDRIE1); - } - else { - // There is more data in the output buffer. Send the next byte - unsigned char c = tx_buffer1.buffer[tx_buffer1.tail]; - tx_buffer1.tail = (tx_buffer1.tail + 1) % SERIAL_BUFFER_SIZE; - - UDR1 = c; - } -} -#endif - -#ifdef USART2_UDRE_vect -ISR(USART2_UDRE_vect) -{ - if (tx_buffer2.head == tx_buffer2.tail) { - // Buffer empty, so disable interrupts - cbi(UCSR2B, UDRIE2); - } - else { - // There is more data in the output buffer. Send the next byte - unsigned char c = tx_buffer2.buffer[tx_buffer2.tail]; - tx_buffer2.tail = (tx_buffer2.tail + 1) % SERIAL_BUFFER_SIZE; - - UDR2 = c; - } -} -#endif - -#ifdef USART3_UDRE_vect -ISR(USART3_UDRE_vect) -{ - if (tx_buffer3.head == tx_buffer3.tail) { - // Buffer empty, so disable interrupts - cbi(UCSR3B, UDRIE3); - } - else { - // There is more data in the output buffer. Send the next byte - unsigned char c = tx_buffer3.buffer[tx_buffer3.tail]; - tx_buffer3.tail = (tx_buffer3.tail + 1) % SERIAL_BUFFER_SIZE; - - UDR3 = c; - } -} -#endif - - -// Constructors //////////////////////////////////////////////////////////////// - -HardwareSerial::HardwareSerial(ring_buffer *rx_buffer, ring_buffer *tx_buffer, - volatile uint8_t *ubrrh, volatile uint8_t *ubrrl, - volatile uint8_t *ucsra, volatile uint8_t *ucsrb, - volatile uint8_t *udr, - uint8_t rxen, uint8_t txen, uint8_t rxcie, uint8_t udrie, uint8_t u2x) -{ - _rx_buffer = rx_buffer; - _tx_buffer = tx_buffer; - _ubrrh = ubrrh; - _ubrrl = ubrrl; - _ucsra = ucsra; - _ucsrb = ucsrb; - _udr = udr; - _rxen = rxen; - _txen = txen; - _rxcie = rxcie; - _udrie = udrie; - _u2x = u2x; -} - -// Public Methods ////////////////////////////////////////////////////////////// - -void HardwareSerial::begin(unsigned long baud) -{ - uint16_t baud_setting; - bool use_u2x = true; - -#if F_CPU == 16000000UL - // hardcoded exception for compatibility with the bootloader shipped - // with the Duemilanove and previous boards and the firmware on the 8U2 - // on the Uno and Mega 2560. - if (baud == 57600) { - use_u2x = false; - } -#endif - -try_again: - - if (use_u2x) { - *_ucsra = 1 << _u2x; - baud_setting = (F_CPU / 4 / baud - 1) / 2; - } else { - *_ucsra = 0; - baud_setting = (F_CPU / 8 / baud - 1) / 2; - } - - if ((baud_setting > 4095) && use_u2x) - { - use_u2x = false; - goto try_again; - } - - // assign the baud_setting, a.k.a. ubbr (USART Baud Rate Register) - *_ubrrh = baud_setting >> 8; - *_ubrrl = baud_setting; - - sbi(*_ucsrb, _rxen); - sbi(*_ucsrb, _txen); - sbi(*_ucsrb, _rxcie); - cbi(*_ucsrb, _udrie); -} - -void HardwareSerial::end() -{ - // wait for transmission of outgoing data - while (_tx_buffer->head != _tx_buffer->tail) - ; - - cbi(*_ucsrb, _rxen); - cbi(*_ucsrb, _txen); - cbi(*_ucsrb, _rxcie); - cbi(*_ucsrb, _udrie); - - // clear any received data - _rx_buffer->head = _rx_buffer->tail; -} - -int HardwareSerial::available(void) -{ - return (unsigned int)(SERIAL_BUFFER_SIZE + _rx_buffer->head - _rx_buffer->tail) % SERIAL_BUFFER_SIZE; -} - -int HardwareSerial::peek(void) -{ - if (_rx_buffer->head == _rx_buffer->tail) { - return -1; - } else { - return _rx_buffer->buffer[_rx_buffer->tail]; - } -} - -int HardwareSerial::read(void) -{ - // if the head isn't ahead of the tail, we don't have any characters - if (_rx_buffer->head == _rx_buffer->tail) { - return -1; - } else { - unsigned char c = _rx_buffer->buffer[_rx_buffer->tail]; - _rx_buffer->tail = (unsigned int)(_rx_buffer->tail + 1) % SERIAL_BUFFER_SIZE; - return c; - } -} - -void HardwareSerial::flush() -{ - while (_tx_buffer->head != _tx_buffer->tail) - ; -} - -size_t HardwareSerial::write(uint8_t c) -{ - int i = (_tx_buffer->head + 1) % SERIAL_BUFFER_SIZE; - - // If the output buffer is full, there's nothing for it other than to - // wait for the interrupt handler to empty it a bit - // ???: return 0 here instead? - while (i == _tx_buffer->tail) - ; - - _tx_buffer->buffer[_tx_buffer->head] = c; - _tx_buffer->head = i; - - sbi(*_ucsrb, _udrie); - - return 1; -} - -HardwareSerial::operator bool() { - return true; -} - -// Preinstantiate Objects ////////////////////////////////////////////////////// - -#if defined(UBRRH) && defined(UBRRL) - HardwareSerial Serial(&rx_buffer, &tx_buffer, &UBRRH, &UBRRL, &UCSRA, &UCSRB, &UDR, RXEN, TXEN, RXCIE, UDRIE, U2X); -#elif defined(UBRR0H) && defined(UBRR0L) - HardwareSerial Serial(&rx_buffer, &tx_buffer, &UBRR0H, &UBRR0L, &UCSR0A, &UCSR0B, &UDR0, RXEN0, TXEN0, RXCIE0, UDRIE0, U2X0); -#elif defined(USBCON) - // do nothing - Serial object and buffers are initialized in CDC code -#else - #error no serial port defined (port 0) -#endif - -#if defined(UBRR1H) - HardwareSerial Serial1(&rx_buffer1, &tx_buffer1, &UBRR1H, &UBRR1L, &UCSR1A, &UCSR1B, &UDR1, RXEN1, TXEN1, RXCIE1, UDRIE1, U2X1); -#endif -#if defined(UBRR2H) - HardwareSerial Serial2(&rx_buffer2, &tx_buffer2, &UBRR2H, &UBRR2L, &UCSR2A, &UCSR2B, &UDR2, RXEN2, TXEN2, RXCIE2, UDRIE2, U2X2); -#endif -#if defined(UBRR3H) - HardwareSerial Serial3(&rx_buffer3, &tx_buffer3, &UBRR3H, &UBRR3L, &UCSR3A, &UCSR3B, &UDR3, RXEN3, TXEN3, RXCIE3, UDRIE3, U2X3); -#endif - -#endif // whole file - diff --git a/build/linux/work/hardware/arduino/cores/arduino/HardwareSerial.h b/build/linux/work/hardware/arduino/cores/arduino/HardwareSerial.h deleted file mode 100644 index bf4924c6d..000000000 --- a/build/linux/work/hardware/arduino/cores/arduino/HardwareSerial.h +++ /dev/null @@ -1,81 +0,0 @@ -/* - HardwareSerial.h - Hardware serial library for Wiring - Copyright (c) 2006 Nicholas Zambetti. All right reserved. - - 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Modified 28 September 2010 by Mark Sproul -*/ - -#ifndef HardwareSerial_h -#define HardwareSerial_h - -#include - -#include "Stream.h" - -struct ring_buffer; - -class HardwareSerial : public Stream -{ - private: - ring_buffer *_rx_buffer; - ring_buffer *_tx_buffer; - volatile uint8_t *_ubrrh; - volatile uint8_t *_ubrrl; - volatile uint8_t *_ucsra; - volatile uint8_t *_ucsrb; - volatile uint8_t *_udr; - uint8_t _rxen; - uint8_t _txen; - uint8_t _rxcie; - uint8_t _udrie; - uint8_t _u2x; - public: - HardwareSerial(ring_buffer *rx_buffer, ring_buffer *tx_buffer, - volatile uint8_t *ubrrh, volatile uint8_t *ubrrl, - volatile uint8_t *ucsra, volatile uint8_t *ucsrb, - volatile uint8_t *udr, - uint8_t rxen, uint8_t txen, uint8_t rxcie, uint8_t udrie, uint8_t u2x); - void begin(unsigned long); - void end(); - virtual int available(void); - virtual int peek(void); - virtual int read(void); - virtual void flush(void); - virtual size_t write(uint8_t); - using Print::write; // pull in write(str) and write(buf, size) from Print - operator bool(); -}; - -#if defined(UBRRH) || defined(UBRR0H) - extern HardwareSerial Serial; -#elif defined(USBCON) - #include "USBAPI.h" -// extern HardwareSerial Serial_; -#endif -#if defined(UBRR1H) - extern HardwareSerial Serial1; -#endif -#if defined(UBRR2H) - extern HardwareSerial Serial2; -#endif -#if defined(UBRR3H) - extern HardwareSerial Serial3; -#endif - -extern void serialEventRun(void) __attribute__((weak)); - -#endif diff --git a/build/linux/work/hardware/arduino/cores/arduino/IPAddress.cpp b/build/linux/work/hardware/arduino/cores/arduino/IPAddress.cpp deleted file mode 100644 index fe3deb77a..000000000 --- a/build/linux/work/hardware/arduino/cores/arduino/IPAddress.cpp +++ /dev/null @@ -1,56 +0,0 @@ - -#include -#include - -IPAddress::IPAddress() -{ - memset(_address, 0, sizeof(_address)); -} - -IPAddress::IPAddress(uint8_t first_octet, uint8_t second_octet, uint8_t third_octet, uint8_t fourth_octet) -{ - _address[0] = first_octet; - _address[1] = second_octet; - _address[2] = third_octet; - _address[3] = fourth_octet; -} - -IPAddress::IPAddress(uint32_t address) -{ - memcpy(_address, &address, sizeof(_address)); -} - -IPAddress::IPAddress(const uint8_t *address) -{ - memcpy(_address, address, sizeof(_address)); -} - -IPAddress& IPAddress::operator=(const uint8_t *address) -{ - memcpy(_address, address, sizeof(_address)); - return *this; -} - -IPAddress& IPAddress::operator=(uint32_t address) -{ - memcpy(_address, (const uint8_t *)&address, sizeof(_address)); - return *this; -} - -bool IPAddress::operator==(const uint8_t* addr) -{ - return memcmp(addr, _address, sizeof(_address)) == 0; -} - -size_t IPAddress::printTo(Print& p) const -{ - size_t n = 0; - for (int i =0; i < 3; i++) - { - n += p.print(_address[i], DEC); - n += p.print('.'); - } - n += p.print(_address[3], DEC); - return n; -} - diff --git a/build/linux/work/hardware/arduino/cores/arduino/IPAddress.h b/build/linux/work/hardware/arduino/cores/arduino/IPAddress.h deleted file mode 100644 index 2585aec0e..000000000 --- a/build/linux/work/hardware/arduino/cores/arduino/IPAddress.h +++ /dev/null @@ -1,76 +0,0 @@ -/* - * - * MIT License: - * Copyright (c) 2011 Adrian McEwen - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - * adrianm@mcqn.com 1/1/2011 - */ - -#ifndef IPAddress_h -#define IPAddress_h - -#include - -// A class to make it easier to handle and pass around IP addresses - -class IPAddress : public Printable { -private: - uint8_t _address[4]; // IPv4 address - // Access the raw byte array containing the address. Because this returns a pointer - // to the internal structure rather than a copy of the address this function should only - // be used when you know that the usage of the returned uint8_t* will be transient and not - // stored. - uint8_t* raw_address() { return _address; }; - -public: - // Constructors - IPAddress(); - IPAddress(uint8_t first_octet, uint8_t second_octet, uint8_t third_octet, uint8_t fourth_octet); - IPAddress(uint32_t address); - IPAddress(const uint8_t *address); - - // Overloaded cast operator to allow IPAddress objects to be used where a pointer - // to a four-byte uint8_t array is expected - operator uint32_t() { return *((uint32_t*)_address); }; - bool operator==(const IPAddress& addr) { return (*((uint32_t*)_address)) == (*((uint32_t*)addr._address)); }; - bool operator==(const uint8_t* addr); - - // Overloaded index operator to allow getting and setting individual octets of the address - uint8_t operator[](int index) const { return _address[index]; }; - uint8_t& operator[](int index) { return _address[index]; }; - - // Overloaded copy operators to allow initialisation of IPAddress objects from other types - IPAddress& operator=(const uint8_t *address); - IPAddress& operator=(uint32_t address); - - virtual size_t printTo(Print& p) const; - - friend class EthernetClass; - friend class UDP; - friend class Client; - friend class Server; - friend class DhcpClass; - friend class DNSClient; -}; - -const IPAddress INADDR_NONE(0,0,0,0); - - -#endif diff --git a/build/linux/work/hardware/arduino/cores/arduino/Platform.h b/build/linux/work/hardware/arduino/cores/arduino/Platform.h deleted file mode 100644 index 8b8f74277..000000000 --- a/build/linux/work/hardware/arduino/cores/arduino/Platform.h +++ /dev/null @@ -1,23 +0,0 @@ - -#ifndef __PLATFORM_H__ -#define __PLATFORM_H__ - -#include -#include -#include -#include -#include - -typedef unsigned char u8; -typedef unsigned short u16; -typedef unsigned long u32; - -#include "Arduino.h" - -#if defined(USBCON) - #include "USBDesc.h" - #include "USBCore.h" - #include "USBAPI.h" -#endif /* if defined(USBCON) */ - -#endif diff --git a/build/linux/work/hardware/arduino/cores/arduino/Print.cpp b/build/linux/work/hardware/arduino/cores/arduino/Print.cpp deleted file mode 100644 index e541a6ce7..000000000 --- a/build/linux/work/hardware/arduino/cores/arduino/Print.cpp +++ /dev/null @@ -1,263 +0,0 @@ -/* - Print.cpp - Base class that provides print() and println() - Copyright (c) 2008 David A. Mellis. All right reserved. - - 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Modified 23 November 2006 by David A. Mellis - */ - -#include -#include -#include -#include -#include "Arduino.h" - -#include "Print.h" - -// Public Methods ////////////////////////////////////////////////////////////// - -/* default implementation: may be overridden */ -size_t Print::write(const uint8_t *buffer, size_t size) -{ - size_t n = 0; - while (size--) { - n += write(*buffer++); - } - return n; -} - -size_t Print::print(const __FlashStringHelper *ifsh) -{ - const char PROGMEM *p = (const char PROGMEM *)ifsh; - size_t n = 0; - while (1) { - unsigned char c = pgm_read_byte(p++); - if (c == 0) break; - n += write(c); - } - return n; -} - -size_t Print::print(const String &s) -{ - size_t n = 0; - for (uint16_t i = 0; i < s.length(); i++) { - n += write(s[i]); - } - return n; -} - -size_t Print::print(const char str[]) -{ - return write(str); -} - -size_t Print::print(char c) -{ - return write(c); -} - -size_t Print::print(unsigned char b, int base) -{ - return print((unsigned long) b, base); -} - -size_t Print::print(int n, int base) -{ - return print((long) n, base); -} - -size_t Print::print(unsigned int n, int base) -{ - return print((unsigned long) n, base); -} - -size_t Print::print(long n, int base) -{ - if (base == 0) { - return write(n); - } else if (base == 10) { - if (n < 0) { - int t = print('-'); - n = -n; - return printNumber(n, 10) + t; - } - return printNumber(n, 10); - } else { - return printNumber(n, base); - } -} - -size_t Print::print(unsigned long n, int base) -{ - if (base == 0) return write(n); - else return printNumber(n, base); -} - -size_t Print::print(double n, int digits) -{ - return printFloat(n, digits); -} - -size_t Print::println(const __FlashStringHelper *ifsh) -{ - size_t n = print(ifsh); - n += println(); - return n; -} - -size_t Print::print(const Printable& x) -{ - return x.printTo(*this); -} - -size_t Print::println(void) -{ - size_t n = print('\r'); - n += print('\n'); - return n; -} - -size_t Print::println(const String &s) -{ - size_t n = print(s); - n += println(); - return n; -} - -size_t Print::println(const char c[]) -{ - size_t n = print(c); - n += println(); - return n; -} - -size_t Print::println(char c) -{ - size_t n = print(c); - n += println(); - return n; -} - -size_t Print::println(unsigned char b, int base) -{ - size_t n = print(b, base); - n += println(); - return n; -} - -size_t Print::println(int num, int base) -{ - size_t n = print(num, base); - n += println(); - return n; -} - -size_t Print::println(unsigned int num, int base) -{ - size_t n = print(num, base); - n += println(); - return n; -} - -size_t Print::println(long num, int base) -{ - size_t n = print(num, base); - n += println(); - return n; -} - -size_t Print::println(unsigned long num, int base) -{ - size_t n = print(num, base); - n += println(); - return n; -} - -size_t Print::println(double num, int digits) -{ - size_t n = print(num, digits); - n += println(); - return n; -} - -size_t Print::println(const Printable& x) -{ - size_t n = print(x); - n += println(); - return n; -} - -// Private Methods ///////////////////////////////////////////////////////////// - -size_t Print::printNumber(unsigned long n, uint8_t base) { - char buf[8 * sizeof(long) + 1]; // Assumes 8-bit chars plus zero byte. - char *str = &buf[sizeof(buf) - 1]; - - *str = '\0'; - - // prevent crash if called with base == 1 - if (base < 2) base = 10; - - do { - unsigned long m = n; - n /= base; - char c = m - base * n; - *--str = c < 10 ? c + '0' : c + 'A' - 10; - } while(n); - - return write(str); -} - -size_t Print::printFloat(double number, uint8_t digits) -{ - size_t n = 0; - - // Handle negative numbers - if (number < 0.0) - { - n += print('-'); - number = -number; - } - - // Round correctly so that print(1.999, 2) prints as "2.00" - double rounding = 0.5; - for (uint8_t i=0; i 0) { - n += print("."); - } - - // Extract digits from the remainder one at a time - while (digits-- > 0) - { - remainder *= 10.0; - int toPrint = int(remainder); - n += print(toPrint); - remainder -= toPrint; - } - - return n; -} diff --git a/build/linux/work/hardware/arduino/cores/arduino/Print.h b/build/linux/work/hardware/arduino/cores/arduino/Print.h deleted file mode 100644 index 1af6b723f..000000000 --- a/build/linux/work/hardware/arduino/cores/arduino/Print.h +++ /dev/null @@ -1,78 +0,0 @@ -/* - Print.h - Base class that provides print() and println() - Copyright (c) 2008 David A. Mellis. All right reserved. - - 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#ifndef Print_h -#define Print_h - -#include -#include // for size_t - -#include "WString.h" -#include "Printable.h" - -#define DEC 10 -#define HEX 16 -#define OCT 8 -#define BIN 2 - -class Print -{ - private: - int write_error; - size_t printNumber(unsigned long, uint8_t); - size_t printFloat(double, uint8_t); - protected: - void setWriteError(int err = 1) { write_error = err; } - public: - Print() : write_error(0) {} - - int getWriteError() { return write_error; } - void clearWriteError() { setWriteError(0); } - - virtual size_t write(uint8_t) = 0; - size_t write(const char *str) { return write((const uint8_t *)str, strlen(str)); } - virtual size_t write(const uint8_t *buffer, size_t size); - - size_t print(const __FlashStringHelper *); - size_t print(const String &); - size_t print(const char[]); - size_t print(char); - size_t print(unsigned char, int = DEC); - size_t print(int, int = DEC); - size_t print(unsigned int, int = DEC); - size_t print(long, int = DEC); - size_t print(unsigned long, int = DEC); - size_t print(double, int = 2); - size_t print(const Printable&); - - size_t println(const __FlashStringHelper *); - size_t println(const String &s); - size_t println(const char[]); - size_t println(char); - size_t println(unsigned char, int = DEC); - size_t println(int, int = DEC); - size_t println(unsigned int, int = DEC); - size_t println(long, int = DEC); - size_t println(unsigned long, int = DEC); - size_t println(double, int = 2); - size_t println(const Printable&); - size_t println(void); -}; - -#endif diff --git a/build/linux/work/hardware/arduino/cores/arduino/Printable.h b/build/linux/work/hardware/arduino/cores/arduino/Printable.h deleted file mode 100644 index d03c9af62..000000000 --- a/build/linux/work/hardware/arduino/cores/arduino/Printable.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - Printable.h - Interface class that allows printing of complex types - Copyright (c) 2011 Adrian McEwen. All right reserved. - - 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#ifndef Printable_h -#define Printable_h - -#include - -class Print; - -/** The Printable class provides a way for new classes to allow themselves to be printed. - By deriving from Printable and implementing the printTo method, it will then be possible - for users to print out instances of this class by passing them into the usual - Print::print and Print::println methods. -*/ - -class Printable -{ - public: - virtual size_t printTo(Print& p) const = 0; -}; - -#endif - diff --git a/build/linux/work/hardware/arduino/cores/arduino/Server.h b/build/linux/work/hardware/arduino/cores/arduino/Server.h deleted file mode 100644 index 9674c7626..000000000 --- a/build/linux/work/hardware/arduino/cores/arduino/Server.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef server_h -#define server_h - -class Server : public Print { -public: - virtual void begin() =0; -}; - -#endif diff --git a/build/linux/work/hardware/arduino/cores/arduino/Stream.cpp b/build/linux/work/hardware/arduino/cores/arduino/Stream.cpp deleted file mode 100644 index 3d5b90529..000000000 --- a/build/linux/work/hardware/arduino/cores/arduino/Stream.cpp +++ /dev/null @@ -1,246 +0,0 @@ -/* - Stream.cpp - adds parsing methods to Stream class - Copyright (c) 2008 David A. Mellis. All right reserved. - - 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Created July 2011 - parsing functions based on TextFinder library by Michael Margolis - */ - -#include "Arduino.h" -#include "Stream.h" - -#define PARSE_TIMEOUT 1000 // default number of milli-seconds to wait -#define NO_SKIP_CHAR 1 // a magic char not found in a valid ASCII numeric field - -// private method to read stream with timeout -int Stream::timedRead() -{ - int c; - _startMillis = millis(); - do { - c = read(); - if (c >= 0) return c; - } while(millis() - _startMillis < _timeout); - return -1; // -1 indicates timeout -} - -// private method to peek stream with timeout -int Stream::timedPeek() -{ - int c; - _startMillis = millis(); - do { - c = peek(); - if (c >= 0) return c; - } while(millis() - _startMillis < _timeout); - return -1; // -1 indicates timeout -} - -// returns peek of the next digit in the stream or -1 if timeout -// discards non-numeric characters -int Stream::peekNextDigit() -{ - int c; - while (1) { - c = timedPeek(); - if (c < 0) return c; // timeout - if (c == '-') return c; - if (c >= '0' && c <= '9') return c; - read(); // discard non-numeric - } -} - -// Public Methods -////////////////////////////////////////////////////////////// - -void Stream::setTimeout(unsigned long timeout) // sets the maximum number of milliseconds to wait -{ - _timeout = timeout; -} - - // find returns true if the target string is found -bool Stream::find(char *target) -{ - return findUntil(target, NULL); -} - -// reads data from the stream until the target string of given length is found -// returns true if target string is found, false if timed out -bool Stream::find(char *target, size_t length) -{ - return findUntil(target, length, NULL, 0); -} - -// as find but search ends if the terminator string is found -bool Stream::findUntil(char *target, char *terminator) -{ - return findUntil(target, strlen(target), terminator, strlen(terminator)); -} - -// reads data from the stream until the target string of the given length is found -// search terminated if the terminator string is found -// returns true if target string is found, false if terminated or timed out -bool Stream::findUntil(char *target, size_t targetLen, char *terminator, size_t termLen) -{ - size_t index = 0; // maximum target string length is 64k bytes! - size_t termIndex = 0; - int c; - - if( *target == 0) - return true; // return true if target is a null string - while( (c = timedRead()) > 0){ - - if(c != target[index]) - index = 0; // reset index if any char does not match - - if( c == target[index]){ - //////Serial.print("found "); Serial.write(c); Serial.print("index now"); Serial.println(index+1); - if(++index >= targetLen){ // return true if all chars in the target match - return true; - } - } - - if(termLen > 0 && c == terminator[termIndex]){ - if(++termIndex >= termLen) - return false; // return false if terminate string found before target string - } - else - termIndex = 0; - } - return false; -} - - -// returns the first valid (long) integer value from the current position. -// initial characters that are not digits (or the minus sign) are skipped -// function is terminated by the first character that is not a digit. -long Stream::parseInt() -{ - return parseInt(NO_SKIP_CHAR); // terminate on first non-digit character (or timeout) -} - -// as above but a given skipChar is ignored -// this allows format characters (typically commas) in values to be ignored -long Stream::parseInt(char skipChar) -{ - boolean isNegative = false; - long value = 0; - int c; - - c = peekNextDigit(); - // ignore non numeric leading characters - if(c < 0) - return 0; // zero returned if timeout - - do{ - if(c == skipChar) - ; // ignore this charactor - else if(c == '-') - isNegative = true; - else if(c >= '0' && c <= '9') // is c a digit? - value = value * 10 + c - '0'; - read(); // consume the character we got with peek - c = timedPeek(); - } - while( (c >= '0' && c <= '9') || c == skipChar ); - - if(isNegative) - value = -value; - return value; -} - - -// as parseInt but returns a floating point value -float Stream::parseFloat() -{ - return parseFloat(NO_SKIP_CHAR); -} - -// as above but the given skipChar is ignored -// this allows format characters (typically commas) in values to be ignored -float Stream::parseFloat(char skipChar){ - boolean isNegative = false; - boolean isFraction = false; - long value = 0; - char c; - float fraction = 1.0; - - c = peekNextDigit(); - // ignore non numeric leading characters - if(c < 0) - return 0; // zero returned if timeout - - do{ - if(c == skipChar) - ; // ignore - else if(c == '-') - isNegative = true; - else if (c == '.') - isFraction = true; - else if(c >= '0' && c <= '9') { // is c a digit? - value = value * 10 + c - '0'; - if(isFraction) - fraction *= 0.1; - } - read(); // consume the character we got with peek - c = timedPeek(); - } - while( (c >= '0' && c <= '9') || c == '.' || c == skipChar ); - - if(isNegative) - value = -value; - if(isFraction) - return value * fraction; - else - return value; -} - -// read characters from stream into buffer -// terminates if length characters have been read, or timeout (see setTimeout) -// returns the number of characters placed in the buffer -// the buffer is NOT null terminated. -// -size_t Stream::readBytes(char *buffer, size_t length) -{ - size_t count = 0; - while (count < length) { - int c = timedRead(); - if (c < 0) break; - *buffer++ = (char)c; - count++; - } - return count; -} - - -// as readBytes with terminator character -// terminates if length characters have been read, timeout, or if the terminator character detected -// returns the number of characters placed in the buffer (0 means no valid data found) - -size_t Stream::readBytesUntil(char terminator, char *buffer, size_t length) -{ - if (length < 1) return 0; - size_t index = 0; - while (index < length) { - int c = timedRead(); - if (c < 0 || c == terminator) break; - *buffer++ = (char)c; - index++; - } - return index; // return number of characters, not including null terminator -} - diff --git a/build/linux/work/hardware/arduino/cores/arduino/Stream.h b/build/linux/work/hardware/arduino/cores/arduino/Stream.h deleted file mode 100644 index 13f11bee0..000000000 --- a/build/linux/work/hardware/arduino/cores/arduino/Stream.h +++ /dev/null @@ -1,94 +0,0 @@ -/* - Stream.h - base class for character-based streams. - Copyright (c) 2010 David A. Mellis. All right reserved. - - 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - parsing functions based on TextFinder library by Michael Margolis -*/ - -#ifndef Stream_h -#define Stream_h - -#include -#include "Print.h" - -// compatability macros for testing -/* -#define getInt() parseInt() -#define getInt(skipChar) parseInt(skipchar) -#define getFloat() parseFloat() -#define getFloat(skipChar) parseFloat(skipChar) -#define getString( pre_string, post_string, buffer, length) -readBytesBetween( pre_string, terminator, buffer, length) -*/ - -class Stream : public Print -{ - private: - unsigned long _timeout; // number of milliseconds to wait for the next char before aborting timed read - unsigned long _startMillis; // used for timeout measurement - int timedRead(); // private method to read stream with timeout - int timedPeek(); // private method to peek stream with timeout - int peekNextDigit(); // returns the next numeric digit in the stream or -1 if timeout - - public: - virtual int available() = 0; - virtual int read() = 0; - virtual int peek() = 0; - virtual void flush() = 0; - - Stream() {_timeout=1000;} - -// parsing methods - - void setTimeout(unsigned long timeout); // sets maximum milliseconds to wait for stream data, default is 1 second - - bool find(char *target); // reads data from the stream until the target string is found - // returns true if target string is found, false if timed out (see setTimeout) - - bool find(char *target, size_t length); // reads data from the stream until the target string of given length is found - // returns true if target string is found, false if timed out - - bool findUntil(char *target, char *terminator); // as find but search ends if the terminator string is found - - bool findUntil(char *target, size_t targetLen, char *terminate, size_t termLen); // as above but search ends if the terminate string is found - - - long parseInt(); // returns the first valid (long) integer value from the current position. - // initial characters that are not digits (or the minus sign) are skipped - // integer is terminated by the first character that is not a digit. - - float parseFloat(); // float version of parseInt - - size_t readBytes( char *buffer, size_t length); // read chars from stream into buffer - // terminates if length characters have been read or timeout (see setTimeout) - // returns the number of characters placed in the buffer (0 means no valid data found) - - size_t readBytesUntil( char terminator, char *buffer, size_t length); // as readBytes with terminator character - // terminates if length characters have been read, timeout, or if the terminator character detected - // returns the number of characters placed in the buffer (0 means no valid data found) - - // Arduino String functions to be added here - - protected: - long parseInt(char skipChar); // as above but the given skipChar is ignored - // as above but the given skipChar is ignored - // this allows format characters (typically commas) in values to be ignored - - float parseFloat(char skipChar); // as above but the given skipChar is ignored -}; - -#endif diff --git a/build/linux/work/hardware/arduino/cores/arduino/Tone.cpp b/build/linux/work/hardware/arduino/cores/arduino/Tone.cpp deleted file mode 100644 index 20eed3f48..000000000 --- a/build/linux/work/hardware/arduino/cores/arduino/Tone.cpp +++ /dev/null @@ -1,601 +0,0 @@ -/* Tone.cpp - - A Tone Generator Library - - Written by Brett Hagman - - 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Version Modified By Date Comments -------- ----------- -------- -------- -0001 B Hagman 09/08/02 Initial coding -0002 B Hagman 09/08/18 Multiple pins -0003 B Hagman 09/08/18 Moved initialization from constructor to begin() -0004 B Hagman 09/09/26 Fixed problems with ATmega8 -0005 B Hagman 09/11/23 Scanned prescalars for best fit on 8 bit timers - 09/11/25 Changed pin toggle method to XOR - 09/11/25 Fixed timer0 from being excluded -0006 D Mellis 09/12/29 Replaced objects with functions -0007 M Sproul 10/08/29 Changed #ifdefs from cpu to register -*************************************************/ - -#include -#include -#include "Arduino.h" -#include "pins_arduino.h" - -#if defined(__AVR_ATmega8__) || defined(__AVR_ATmega128__) -#define TCCR2A TCCR2 -#define TCCR2B TCCR2 -#define COM2A1 COM21 -#define COM2A0 COM20 -#define OCR2A OCR2 -#define TIMSK2 TIMSK -#define OCIE2A OCIE2 -#define TIMER2_COMPA_vect TIMER2_COMP_vect -#define TIMSK1 TIMSK -#endif - -// timerx_toggle_count: -// > 0 - duration specified -// = 0 - stopped -// < 0 - infinitely (until stop() method called, or new play() called) - -#if !defined(__AVR_ATmega8__) -volatile long timer0_toggle_count; -volatile uint8_t *timer0_pin_port; -volatile uint8_t timer0_pin_mask; -#endif - -volatile long timer1_toggle_count; -volatile uint8_t *timer1_pin_port; -volatile uint8_t timer1_pin_mask; -volatile long timer2_toggle_count; -volatile uint8_t *timer2_pin_port; -volatile uint8_t timer2_pin_mask; - -#if defined(TIMSK3) -volatile long timer3_toggle_count; -volatile uint8_t *timer3_pin_port; -volatile uint8_t timer3_pin_mask; -#endif - -#if defined(TIMSK4) -volatile long timer4_toggle_count; -volatile uint8_t *timer4_pin_port; -volatile uint8_t timer4_pin_mask; -#endif - -#if defined(TIMSK5) -volatile long timer5_toggle_count; -volatile uint8_t *timer5_pin_port; -volatile uint8_t timer5_pin_mask; -#endif - - -// MLS: This does not make sense, the 3 options are the same -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) - -#define AVAILABLE_TONE_PINS 1 - -const uint8_t PROGMEM tone_pin_to_timer_PGM[] = { 2 /*, 3, 4, 5, 1, 0 */ }; -static uint8_t tone_pins[AVAILABLE_TONE_PINS] = { 255 /*, 255, 255, 255, 255, 255 */ }; - -#elif defined(__AVR_ATmega8__) - -#define AVAILABLE_TONE_PINS 1 - -const uint8_t PROGMEM tone_pin_to_timer_PGM[] = { 2 /*, 1 */ }; -static uint8_t tone_pins[AVAILABLE_TONE_PINS] = { 255 /*, 255 */ }; - -#else - -#define AVAILABLE_TONE_PINS 1 - -// Leave timer 0 to last. -const uint8_t PROGMEM tone_pin_to_timer_PGM[] = { 2 /*, 1, 0 */ }; -static uint8_t tone_pins[AVAILABLE_TONE_PINS] = { 255 /*, 255, 255 */ }; - -#endif - - - -static int8_t toneBegin(uint8_t _pin) -{ - int8_t _timer = -1; - - // if we're already using the pin, the timer should be configured. - for (int i = 0; i < AVAILABLE_TONE_PINS; i++) { - if (tone_pins[i] == _pin) { - return pgm_read_byte(tone_pin_to_timer_PGM + i); - } - } - - // search for an unused timer. - for (int i = 0; i < AVAILABLE_TONE_PINS; i++) { - if (tone_pins[i] == 255) { - tone_pins[i] = _pin; - _timer = pgm_read_byte(tone_pin_to_timer_PGM + i); - break; - } - } - - if (_timer != -1) - { - // Set timer specific stuff - // All timers in CTC mode - // 8 bit timers will require changing prescalar values, - // whereas 16 bit timers are set to either ck/1 or ck/64 prescalar - switch (_timer) - { - #if defined(TCCR0A) && defined(TCCR0B) - case 0: - // 8 bit timer - TCCR0A = 0; - TCCR0B = 0; - bitWrite(TCCR0A, WGM01, 1); - bitWrite(TCCR0B, CS00, 1); - timer0_pin_port = portOutputRegister(digitalPinToPort(_pin)); - timer0_pin_mask = digitalPinToBitMask(_pin); - break; - #endif - - #if defined(TCCR1A) && defined(TCCR1B) && defined(WGM12) - case 1: - // 16 bit timer - TCCR1A = 0; - TCCR1B = 0; - bitWrite(TCCR1B, WGM12, 1); - bitWrite(TCCR1B, CS10, 1); - timer1_pin_port = portOutputRegister(digitalPinToPort(_pin)); - timer1_pin_mask = digitalPinToBitMask(_pin); - break; - #endif - - #if defined(TCCR2A) && defined(TCCR2B) - case 2: - // 8 bit timer - TCCR2A = 0; - TCCR2B = 0; - bitWrite(TCCR2A, WGM21, 1); - bitWrite(TCCR2B, CS20, 1); - timer2_pin_port = portOutputRegister(digitalPinToPort(_pin)); - timer2_pin_mask = digitalPinToBitMask(_pin); - break; - #endif - - #if defined(TCCR3A) && defined(TCCR3B) && defined(TIMSK3) - case 3: - // 16 bit timer - TCCR3A = 0; - TCCR3B = 0; - bitWrite(TCCR3B, WGM32, 1); - bitWrite(TCCR3B, CS30, 1); - timer3_pin_port = portOutputRegister(digitalPinToPort(_pin)); - timer3_pin_mask = digitalPinToBitMask(_pin); - break; - #endif - - #if defined(TCCR4A) && defined(TCCR4B) && defined(TIMSK4) - case 4: - // 16 bit timer - TCCR4A = 0; - TCCR4B = 0; - #if defined(WGM42) - bitWrite(TCCR4B, WGM42, 1); - #elif defined(CS43) - #warning this may not be correct - // atmega32u4 - bitWrite(TCCR4B, CS43, 1); - #endif - bitWrite(TCCR4B, CS40, 1); - timer4_pin_port = portOutputRegister(digitalPinToPort(_pin)); - timer4_pin_mask = digitalPinToBitMask(_pin); - break; - #endif - - #if defined(TCCR5A) && defined(TCCR5B) && defined(TIMSK5) - case 5: - // 16 bit timer - TCCR5A = 0; - TCCR5B = 0; - bitWrite(TCCR5B, WGM52, 1); - bitWrite(TCCR5B, CS50, 1); - timer5_pin_port = portOutputRegister(digitalPinToPort(_pin)); - timer5_pin_mask = digitalPinToBitMask(_pin); - break; - #endif - } - } - - return _timer; -} - - - -// frequency (in hertz) and duration (in milliseconds). - -void tone(uint8_t _pin, unsigned int frequency, unsigned long duration) -{ - uint8_t prescalarbits = 0b001; - long toggle_count = 0; - uint32_t ocr = 0; - int8_t _timer; - - _timer = toneBegin(_pin); - - if (_timer >= 0) - { - // Set the pinMode as OUTPUT - pinMode(_pin, OUTPUT); - - // if we are using an 8 bit timer, scan through prescalars to find the best fit - if (_timer == 0 || _timer == 2) - { - ocr = F_CPU / frequency / 2 - 1; - prescalarbits = 0b001; // ck/1: same for both timers - if (ocr > 255) - { - ocr = F_CPU / frequency / 2 / 8 - 1; - prescalarbits = 0b010; // ck/8: same for both timers - - if (_timer == 2 && ocr > 255) - { - ocr = F_CPU / frequency / 2 / 32 - 1; - prescalarbits = 0b011; - } - - if (ocr > 255) - { - ocr = F_CPU / frequency / 2 / 64 - 1; - prescalarbits = _timer == 0 ? 0b011 : 0b100; - - if (_timer == 2 && ocr > 255) - { - ocr = F_CPU / frequency / 2 / 128 - 1; - prescalarbits = 0b101; - } - - if (ocr > 255) - { - ocr = F_CPU / frequency / 2 / 256 - 1; - prescalarbits = _timer == 0 ? 0b100 : 0b110; - if (ocr > 255) - { - // can't do any better than /1024 - ocr = F_CPU / frequency / 2 / 1024 - 1; - prescalarbits = _timer == 0 ? 0b101 : 0b111; - } - } - } - } - -#if defined(TCCR0B) - if (_timer == 0) - { - TCCR0B = prescalarbits; - } - else -#endif -#if defined(TCCR2B) - { - TCCR2B = prescalarbits; - } -#else - { - // dummy place holder to make the above ifdefs work - } -#endif - } - else - { - // two choices for the 16 bit timers: ck/1 or ck/64 - ocr = F_CPU / frequency / 2 - 1; - - prescalarbits = 0b001; - if (ocr > 0xffff) - { - ocr = F_CPU / frequency / 2 / 64 - 1; - prescalarbits = 0b011; - } - - if (_timer == 1) - { -#if defined(TCCR1B) - TCCR1B = (TCCR1B & 0b11111000) | prescalarbits; -#endif - } -#if defined(TCCR3B) - else if (_timer == 3) - TCCR3B = (TCCR3B & 0b11111000) | prescalarbits; -#endif -#if defined(TCCR4B) - else if (_timer == 4) - TCCR4B = (TCCR4B & 0b11111000) | prescalarbits; -#endif -#if defined(TCCR5B) - else if (_timer == 5) - TCCR5B = (TCCR5B & 0b11111000) | prescalarbits; -#endif - - } - - - // Calculate the toggle count - if (duration > 0) - { - toggle_count = 2 * frequency * duration / 1000; - } - else - { - toggle_count = -1; - } - - // Set the OCR for the given timer, - // set the toggle count, - // then turn on the interrupts - switch (_timer) - { - -#if defined(OCR0A) && defined(TIMSK0) && defined(OCIE0A) - case 0: - OCR0A = ocr; - timer0_toggle_count = toggle_count; - bitWrite(TIMSK0, OCIE0A, 1); - break; -#endif - - case 1: -#if defined(OCR1A) && defined(TIMSK1) && defined(OCIE1A) - OCR1A = ocr; - timer1_toggle_count = toggle_count; - bitWrite(TIMSK1, OCIE1A, 1); -#elif defined(OCR1A) && defined(TIMSK) && defined(OCIE1A) - // this combination is for at least the ATmega32 - OCR1A = ocr; - timer1_toggle_count = toggle_count; - bitWrite(TIMSK, OCIE1A, 1); -#endif - break; - -#if defined(OCR2A) && defined(TIMSK2) && defined(OCIE2A) - case 2: - OCR2A = ocr; - timer2_toggle_count = toggle_count; - bitWrite(TIMSK2, OCIE2A, 1); - break; -#endif - -#if defined(TIMSK3) - case 3: - OCR3A = ocr; - timer3_toggle_count = toggle_count; - bitWrite(TIMSK3, OCIE3A, 1); - break; -#endif - -#if defined(TIMSK4) - case 4: - OCR4A = ocr; - timer4_toggle_count = toggle_count; - bitWrite(TIMSK4, OCIE4A, 1); - break; -#endif - -#if defined(OCR5A) && defined(TIMSK5) && defined(OCIE5A) - case 5: - OCR5A = ocr; - timer5_toggle_count = toggle_count; - bitWrite(TIMSK5, OCIE5A, 1); - break; -#endif - - } - } -} - - -// XXX: this function only works properly for timer 2 (the only one we use -// currently). for the others, it should end the tone, but won't restore -// proper PWM functionality for the timer. -void disableTimer(uint8_t _timer) -{ - switch (_timer) - { - case 0: - #if defined(TIMSK0) - TIMSK0 = 0; - #elif defined(TIMSK) - TIMSK = 0; // atmega32 - #endif - break; - -#if defined(TIMSK1) && defined(OCIE1A) - case 1: - bitWrite(TIMSK1, OCIE1A, 0); - break; -#endif - - case 2: - #if defined(TIMSK2) && defined(OCIE2A) - bitWrite(TIMSK2, OCIE2A, 0); // disable interrupt - #endif - #if defined(TCCR2A) && defined(WGM20) - TCCR2A = (1 << WGM20); - #endif - #if defined(TCCR2B) && defined(CS22) - TCCR2B = (TCCR2B & 0b11111000) | (1 << CS22); - #endif - #if defined(OCR2A) - OCR2A = 0; - #endif - break; - -#if defined(TIMSK3) - case 3: - TIMSK3 = 0; - break; -#endif - -#if defined(TIMSK4) - case 4: - TIMSK4 = 0; - break; -#endif - -#if defined(TIMSK5) - case 5: - TIMSK5 = 0; - break; -#endif - } -} - - -void noTone(uint8_t _pin) -{ - int8_t _timer = -1; - - for (int i = 0; i < AVAILABLE_TONE_PINS; i++) { - if (tone_pins[i] == _pin) { - _timer = pgm_read_byte(tone_pin_to_timer_PGM + i); - tone_pins[i] = 255; - } - } - - disableTimer(_timer); - - digitalWrite(_pin, 0); -} - -#if 0 -#if !defined(__AVR_ATmega8__) -ISR(TIMER0_COMPA_vect) -{ - if (timer0_toggle_count != 0) - { - // toggle the pin - *timer0_pin_port ^= timer0_pin_mask; - - if (timer0_toggle_count > 0) - timer0_toggle_count--; - } - else - { - disableTimer(0); - *timer0_pin_port &= ~(timer0_pin_mask); // keep pin low after stop - } -} -#endif - - -ISR(TIMER1_COMPA_vect) -{ - if (timer1_toggle_count != 0) - { - // toggle the pin - *timer1_pin_port ^= timer1_pin_mask; - - if (timer1_toggle_count > 0) - timer1_toggle_count--; - } - else - { - disableTimer(1); - *timer1_pin_port &= ~(timer1_pin_mask); // keep pin low after stop - } -} -#endif - - -ISR(TIMER2_COMPA_vect) -{ - - if (timer2_toggle_count != 0) - { - // toggle the pin - *timer2_pin_port ^= timer2_pin_mask; - - if (timer2_toggle_count > 0) - timer2_toggle_count--; - } - else - { - // need to call noTone() so that the tone_pins[] entry is reset, so the - // timer gets initialized next time we call tone(). - // XXX: this assumes timer 2 is always the first one used. - noTone(tone_pins[0]); -// disableTimer(2); -// *timer2_pin_port &= ~(timer2_pin_mask); // keep pin low after stop - } -} - - - -//#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) -#if 0 - -ISR(TIMER3_COMPA_vect) -{ - if (timer3_toggle_count != 0) - { - // toggle the pin - *timer3_pin_port ^= timer3_pin_mask; - - if (timer3_toggle_count > 0) - timer3_toggle_count--; - } - else - { - disableTimer(3); - *timer3_pin_port &= ~(timer3_pin_mask); // keep pin low after stop - } -} - -ISR(TIMER4_COMPA_vect) -{ - if (timer4_toggle_count != 0) - { - // toggle the pin - *timer4_pin_port ^= timer4_pin_mask; - - if (timer4_toggle_count > 0) - timer4_toggle_count--; - } - else - { - disableTimer(4); - *timer4_pin_port &= ~(timer4_pin_mask); // keep pin low after stop - } -} - -ISR(TIMER5_COMPA_vect) -{ - if (timer5_toggle_count != 0) - { - // toggle the pin - *timer5_pin_port ^= timer5_pin_mask; - - if (timer5_toggle_count > 0) - timer5_toggle_count--; - } - else - { - disableTimer(5); - *timer5_pin_port &= ~(timer5_pin_mask); // keep pin low after stop - } -} - -#endif diff --git a/build/linux/work/hardware/arduino/cores/arduino/USBAPI.h b/build/linux/work/hardware/arduino/cores/arduino/USBAPI.h deleted file mode 100644 index f66cb16d2..000000000 --- a/build/linux/work/hardware/arduino/cores/arduino/USBAPI.h +++ /dev/null @@ -1,195 +0,0 @@ - - -#ifndef __USBAPI__ -#define __USBAPI__ - -#if defined(USBCON) - -//================================================================================ -//================================================================================ -// USB - -class USB_ -{ -public: - USB_(); - bool configured(); - - void attach(); - void detach(); // Serial port goes down too... - void poll(); -}; -extern USB_ USB; - -//================================================================================ -//================================================================================ -// Serial over CDC (Serial1 is the physical port) - -class Serial_ : public Stream -{ -private: - ring_buffer *_cdc_rx_buffer; -public: - void begin(uint16_t baud_count); - void end(void); - - virtual int available(void); - virtual void accept(void); - virtual int peek(void); - virtual int read(void); - virtual void flush(void); - virtual size_t write(uint8_t); - operator bool(); -}; -extern Serial_ Serial; - -//================================================================================ -//================================================================================ -// Mouse - -#define MOUSE_LEFT 1 -#define MOUSE_RIGHT 2 -#define MOUSE_MIDDLE 4 -#define MOUSE_ALL (MOUSE_LEFT | MOUSE_RIGHT | MOUSE_MIDDLE) - -class Mouse_ -{ -private: - uint8_t _buttons; - void buttons(uint8_t b); -public: - Mouse_(void); - void begin(void); - void end(void); - void click(uint8_t b = MOUSE_LEFT); - void move(signed char x, signed char y, signed char wheel = 0); - void press(uint8_t b = MOUSE_LEFT); // press LEFT by default - void release(uint8_t b = MOUSE_LEFT); // release LEFT by default - bool isPressed(uint8_t b = MOUSE_ALL); // check all buttons by default -}; -extern Mouse_ Mouse; - -//================================================================================ -//================================================================================ -// Keyboard - -#define KEY_LEFT_CTRL 0x80 -#define KEY_LEFT_SHIFT 0x81 -#define KEY_LEFT_ALT 0x82 -#define KEY_LEFT_GUI 0x83 -#define KEY_RIGHT_CTRL 0x84 -#define KEY_RIGHT_SHIFT 0x85 -#define KEY_RIGHT_ALT 0x86 -#define KEY_RIGHT_GUI 0x87 - -#define KEY_UP_ARROW 0xDA -#define KEY_DOWN_ARROW 0xD9 -#define KEY_LEFT_ARROW 0xD8 -#define KEY_RIGHT_ARROW 0xD7 -#define KEY_BACKSPACE 0xB2 -#define KEY_TAB 0xB3 -#define KEY_RETURN 0xB0 -#define KEY_ESC 0xB1 -#define KEY_INSERT 0xD1 -#define KEY_DELETE 0xD4 -#define KEY_PAGE_UP 0xD3 -#define KEY_PAGE_DOWN 0xD6 -#define KEY_HOME 0xD2 -#define KEY_END 0xD5 -#define KEY_CAPS_LOCK 0xC1 -#define KEY_F1 0xC2 -#define KEY_F2 0xC3 -#define KEY_F3 0xC4 -#define KEY_F4 0xC5 -#define KEY_F5 0xC6 -#define KEY_F6 0xC7 -#define KEY_F7 0xC8 -#define KEY_F8 0xC9 -#define KEY_F9 0xCA -#define KEY_F10 0xCB -#define KEY_F11 0xCC -#define KEY_F12 0xCD - -// Low level key report: up to 6 keys and shift, ctrl etc at once -typedef struct -{ - uint8_t modifiers; - uint8_t reserved; - uint8_t keys[6]; -} KeyReport; - -class Keyboard_ : public Print -{ -private: - KeyReport _keyReport; - void sendReport(KeyReport* keys); -public: - Keyboard_(void); - void begin(void); - void end(void); - virtual size_t write(uint8_t k); - virtual size_t press(uint8_t k); - virtual size_t release(uint8_t k); - virtual void releaseAll(void); -}; -extern Keyboard_ Keyboard; - -//================================================================================ -//================================================================================ -// Low level API - -typedef struct -{ - uint8_t bmRequestType; - uint8_t bRequest; - uint8_t wValueL; - uint8_t wValueH; - uint16_t wIndex; - uint16_t wLength; -} Setup; - -//================================================================================ -//================================================================================ -// HID 'Driver' - -int HID_GetInterface(uint8_t* interfaceNum); -int HID_GetDescriptor(int i); -bool HID_Setup(Setup& setup); -void HID_SendReport(uint8_t id, const void* data, int len); - -//================================================================================ -//================================================================================ -// MSC 'Driver' - -int MSC_GetInterface(uint8_t* interfaceNum); -int MSC_GetDescriptor(int i); -bool MSC_Setup(Setup& setup); -bool MSC_Data(uint8_t rx,uint8_t tx); - -//================================================================================ -//================================================================================ -// CSC 'Driver' - -int CDC_GetInterface(uint8_t* interfaceNum); -int CDC_GetDescriptor(int i); -bool CDC_Setup(Setup& setup); - -//================================================================================ -//================================================================================ - -#define TRANSFER_PGM 0x80 -#define TRANSFER_RELEASE 0x40 -#define TRANSFER_ZERO 0x20 - -int USB_SendControl(uint8_t flags, const void* d, int len); -int USB_RecvControl(void* d, int len); - -uint8_t USB_Available(uint8_t ep); -int USB_Send(uint8_t ep, const void* data, int len); // blocking -int USB_Recv(uint8_t ep, void* data, int len); // non-blocking -int USB_Recv(uint8_t ep); // non-blocking -void USB_Flush(uint8_t ep); - -#endif - -#endif /* if defined(USBCON) */ \ No newline at end of file diff --git a/build/linux/work/hardware/arduino/cores/arduino/USBCore.cpp b/build/linux/work/hardware/arduino/cores/arduino/USBCore.cpp deleted file mode 100644 index c360d262a..000000000 --- a/build/linux/work/hardware/arduino/cores/arduino/USBCore.cpp +++ /dev/null @@ -1,668 +0,0 @@ - - -/* Copyright (c) 2010, Peter Barrett -** -** Permission to use, copy, modify, and/or distribute this software for -** any purpose with or without fee is hereby granted, provided that the -** above copyright notice and this permission notice appear in all copies. -** -** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL -** WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED -** WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR -** BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES -** OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -** WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -** ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -** SOFTWARE. -*/ - -#include "Platform.h" -#include "USBAPI.h" -#include "USBDesc.h" - -#if defined(USBCON) - -#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 - -/** Pulse generation counters to keep track of the number of milliseconds remaining for each pulse type */ -#define TX_RX_LED_PULSE_MS 100 -volatile u8 TxLEDPulse; /**< Milliseconds remaining for data Tx LED pulse */ -volatile u8 RxLEDPulse; /**< Milliseconds remaining for data Rx LED pulse */ - -//================================================================== -//================================================================== - -extern const u16 STRING_LANGUAGE[] PROGMEM; -extern const u16 STRING_IPRODUCT[] PROGMEM; -extern const u16 STRING_IMANUFACTURER[] PROGMEM; -extern const DeviceDescriptor USB_DeviceDescriptor PROGMEM; -extern const DeviceDescriptor USB_DeviceDescriptorA PROGMEM; - -const u16 STRING_LANGUAGE[2] = { - (3<<8) | (2+2), - 0x0409 // English -}; - -const u16 STRING_IPRODUCT[17] = { - (3<<8) | (2+2*16), -#if USB_PID == USB_PID_LEONARDO - 'A','r','d','u','i','n','o',' ','L','e','o','n','a','r','d','o' -#elif USB_PID == USB_PID_MICRO - 'A','r','d','u','i','n','o',' ','M','i','c','r','o',' ',' ',' ' -#endif -}; - -const u16 STRING_IMANUFACTURER[12] = { - (3<<8) | (2+2*11), - 'A','r','d','u','i','n','o',' ','L','L','C' -}; - -#ifdef CDC_ENABLED -#define DEVICE_CLASS 0x02 -#else -#define DEVICE_CLASS 0x00 -#endif - -// DEVICE DESCRIPTOR -const DeviceDescriptor USB_DeviceDescriptor = - D_DEVICE(0x00,0x00,0x00,64,USB_VID,USB_PID,0x100,IMANUFACTURER,IPRODUCT,0,1); - -const DeviceDescriptor USB_DeviceDescriptorA = - D_DEVICE(DEVICE_CLASS,0x00,0x00,64,USB_VID,USB_PID,0x100,IMANUFACTURER,IPRODUCT,0,1); - -//================================================================== -//================================================================== - -volatile u8 _usbConfiguration = 0; - -static inline void WaitIN(void) -{ - while (!(UEINTX & (1< len) - n = len; - len -= n; - { - LockEP lock(ep); - if (ep & TRANSFER_ZERO) - { - while (n--) - Send8(0); - } - else if (ep & TRANSFER_PGM) - { - while (n--) - Send8(pgm_read_byte(data++)); - } - else - { - while (n--) - Send8(*data++); - } - if (!ReadWriteAllowed() || ((len == 0) && (ep & TRANSFER_RELEASE))) // Release full buffer - ReleaseTX(); - } - } - TXLED1; // light the TX LED - TxLEDPulse = TX_RX_LED_PULSE_MS; - return r; -} - -extern const u8 _initEndpoints[] PROGMEM; -const u8 _initEndpoints[] = -{ - 0, - -#ifdef CDC_ENABLED - EP_TYPE_INTERRUPT_IN, // CDC_ENDPOINT_ACM - EP_TYPE_BULK_OUT, // CDC_ENDPOINT_OUT - EP_TYPE_BULK_IN, // CDC_ENDPOINT_IN -#endif - -#ifdef HID_ENABLED - EP_TYPE_INTERRUPT_IN // HID_ENDPOINT_INT -#endif -}; - -#define EP_SINGLE_64 0x32 // EP0 -#define EP_DOUBLE_64 0x36 // Other endpoints - -static -void InitEP(u8 index, u8 type, u8 size) -{ - UENUM = index; - UECONX = 1; - UECFG0X = type; - UECFG1X = size; -} - -static -void InitEndpoints() -{ - for (u8 i = 1; i < sizeof(_initEndpoints); i++) - { - UENUM = i; - UECONX = 1; - UECFG0X = pgm_read_byte(_initEndpoints+i); - UECFG1X = EP_DOUBLE_64; - } - UERST = 0x7E; // And reset them - UERST = 0; -} - -// Handle CLASS_INTERFACE requests -static -bool ClassInterfaceRequest(Setup& setup) -{ - u8 i = setup.wIndex; - -#ifdef CDC_ENABLED - if (CDC_ACM_INTERFACE == i) - return CDC_Setup(setup); -#endif - -#ifdef HID_ENABLED - if (HID_INTERFACE == i) - return HID_Setup(setup); -#endif - return false; -} - -int _cmark; -int _cend; -void InitControl(int end) -{ - SetEP(0); - _cmark = 0; - _cend = end; -} - -static -bool SendControl(u8 d) -{ - if (_cmark < _cend) - { - if (!WaitForINOrOUT()) - return false; - Send8(d); - if (!((_cmark + 1) & 0x3F)) - ClearIN(); // Fifo is full, release this packet - } - _cmark++; - return true; -}; - -// Clipped by _cmark/_cend -int USB_SendControl(u8 flags, const void* d, int len) -{ - int sent = len; - const u8* data = (const u8*)d; - bool pgm = flags & TRANSFER_PGM; - while (len--) - { - u8 c = pgm ? pgm_read_byte(data++) : *data++; - if (!SendControl(c)) - return -1; - } - return sent; -} - -// Does not timeout or cross fifo boundaries -// Will only work for transfers <= 64 bytes -// TODO -int USB_RecvControl(void* d, int len) -{ - WaitOUT(); - Recv((u8*)d,len); - ClearOUT(); - return len; -} - -int SendInterfaces() -{ - int total = 0; - u8 interfaces = 0; - -#ifdef CDC_ENABLED - total = CDC_GetInterface(&interfaces); -#endif - -#ifdef HID_ENABLED - total += HID_GetInterface(&interfaces); -#endif - - return interfaces; -} - -// Construct a dynamic configuration descriptor -// This really needs dynamic endpoint allocation etc -// TODO -static -bool SendConfiguration(int maxlen) -{ - // Count and measure interfaces - InitControl(0); - int interfaces = SendInterfaces(); - ConfigDescriptor config = D_CONFIG(_cmark + sizeof(ConfigDescriptor),interfaces); - - // Now send them - InitControl(maxlen); - USB_SendControl(0,&config,sizeof(ConfigDescriptor)); - SendInterfaces(); - return true; -} - -u8 _cdcComposite = 0; - -static -bool SendDescriptor(Setup& setup) -{ - u8 t = setup.wValueH; - if (USB_CONFIGURATION_DESCRIPTOR_TYPE == t) - return SendConfiguration(setup.wLength); - - InitControl(setup.wLength); -#ifdef HID_ENABLED - if (HID_REPORT_DESCRIPTOR_TYPE == t) - return HID_GetDescriptor(t); -#endif - - u8 desc_length = 0; - const u8* desc_addr = 0; - if (USB_DEVICE_DESCRIPTOR_TYPE == t) - { - if (setup.wLength == 8) - _cdcComposite = 1; - desc_addr = _cdcComposite ? (const u8*)&USB_DeviceDescriptorA : (const u8*)&USB_DeviceDescriptor; - } - else if (USB_STRING_DESCRIPTOR_TYPE == t) - { - if (setup.wValueL == 0) - desc_addr = (const u8*)&STRING_LANGUAGE; - else if (setup.wValueL == IPRODUCT) - desc_addr = (const u8*)&STRING_IPRODUCT; - else if (setup.wValueL == IMANUFACTURER) - desc_addr = (const u8*)&STRING_IMANUFACTURER; - else - return false; - } - - if (desc_addr == 0) - return false; - if (desc_length == 0) - desc_length = pgm_read_byte(desc_addr); - - USB_SendControl(TRANSFER_PGM,desc_addr,desc_length); - return true; -} - -// Endpoint 0 interrupt -ISR(USB_COM_vect) -{ - SetEP(0); - if (!ReceivedSetupInt()) - return; - - Setup setup; - Recv((u8*)&setup,8); - ClearSetupInt(); - - u8 requestType = setup.bmRequestType; - if (requestType & REQUEST_DEVICETOHOST) - WaitIN(); - else - ClearIN(); - - bool ok = true; - if (REQUEST_STANDARD == (requestType & REQUEST_TYPE)) - { - // Standard Requests - u8 r = setup.bRequest; - if (GET_STATUS == r) - { - Send8(0); // TODO - Send8(0); - } - else if (CLEAR_FEATURE == r) - { - } - else if (SET_FEATURE == r) - { - } - else if (SET_ADDRESS == r) - { - WaitIN(); - UDADDR = setup.wValueL | (1<> 8) & 0xFF) - -#define CDC_V1_10 0x0110 -#define CDC_COMMUNICATION_INTERFACE_CLASS 0x02 - -#define CDC_CALL_MANAGEMENT 0x01 -#define CDC_ABSTRACT_CONTROL_MODEL 0x02 -#define CDC_HEADER 0x00 -#define CDC_ABSTRACT_CONTROL_MANAGEMENT 0x02 -#define CDC_UNION 0x06 -#define CDC_CS_INTERFACE 0x24 -#define CDC_CS_ENDPOINT 0x25 -#define CDC_DATA_INTERFACE_CLASS 0x0A - -#define MSC_SUBCLASS_SCSI 0x06 -#define MSC_PROTOCOL_BULK_ONLY 0x50 - -#define HID_HID_DESCRIPTOR_TYPE 0x21 -#define HID_REPORT_DESCRIPTOR_TYPE 0x22 -#define HID_PHYSICAL_DESCRIPTOR_TYPE 0x23 - - -// Device -typedef struct { - u8 len; // 18 - u8 dtype; // 1 USB_DEVICE_DESCRIPTOR_TYPE - u16 usbVersion; // 0x200 - u8 deviceClass; - u8 deviceSubClass; - u8 deviceProtocol; - u8 packetSize0; // Packet 0 - u16 idVendor; - u16 idProduct; - u16 deviceVersion; // 0x100 - u8 iManufacturer; - u8 iProduct; - u8 iSerialNumber; - u8 bNumConfigurations; -} DeviceDescriptor; - -// Config -typedef struct { - u8 len; // 9 - u8 dtype; // 2 - u16 clen; // total length - u8 numInterfaces; - u8 config; - u8 iconfig; - u8 attributes; - u8 maxPower; -} ConfigDescriptor; - -// String - -// Interface -typedef struct -{ - u8 len; // 9 - u8 dtype; // 4 - u8 number; - u8 alternate; - u8 numEndpoints; - u8 interfaceClass; - u8 interfaceSubClass; - u8 protocol; - u8 iInterface; -} InterfaceDescriptor; - -// Endpoint -typedef struct -{ - u8 len; // 7 - u8 dtype; // 5 - u8 addr; - u8 attr; - u16 packetSize; - u8 interval; -} EndpointDescriptor; - -// Interface Association Descriptor -// Used to bind 2 interfaces together in CDC compostite device -typedef struct -{ - u8 len; // 8 - u8 dtype; // 11 - u8 firstInterface; - u8 interfaceCount; - u8 functionClass; - u8 funtionSubClass; - u8 functionProtocol; - u8 iInterface; -} IADDescriptor; - -// CDC CS interface descriptor -typedef struct -{ - u8 len; // 5 - u8 dtype; // 0x24 - u8 subtype; - u8 d0; - u8 d1; -} CDCCSInterfaceDescriptor; - -typedef struct -{ - u8 len; // 4 - u8 dtype; // 0x24 - u8 subtype; - u8 d0; -} CDCCSInterfaceDescriptor4; - -typedef struct -{ - u8 len; - u8 dtype; // 0x24 - u8 subtype; // 1 - u8 bmCapabilities; - u8 bDataInterface; -} CMFunctionalDescriptor; - -typedef struct -{ - u8 len; - u8 dtype; // 0x24 - u8 subtype; // 1 - u8 bmCapabilities; -} ACMFunctionalDescriptor; - -typedef struct -{ - // IAD - IADDescriptor iad; // Only needed on compound device - - // Control - InterfaceDescriptor cif; // - CDCCSInterfaceDescriptor header; - CMFunctionalDescriptor callManagement; // Call Management - ACMFunctionalDescriptor controlManagement; // ACM - CDCCSInterfaceDescriptor functionalDescriptor; // CDC_UNION - EndpointDescriptor cifin; - - // Data - InterfaceDescriptor dif; - EndpointDescriptor in; - EndpointDescriptor out; -} CDCDescriptor; - -typedef struct -{ - InterfaceDescriptor msc; - EndpointDescriptor in; - EndpointDescriptor out; -} MSCDescriptor; - -typedef struct -{ - u8 len; // 9 - u8 dtype; // 0x21 - u8 addr; - u8 versionL; // 0x101 - u8 versionH; // 0x101 - u8 country; - u8 desctype; // 0x22 report - u8 descLenL; - u8 descLenH; -} HIDDescDescriptor; - -typedef struct -{ - InterfaceDescriptor hid; - HIDDescDescriptor desc; - EndpointDescriptor in; -} HIDDescriptor; - - -#define D_DEVICE(_class,_subClass,_proto,_packetSize0,_vid,_pid,_version,_im,_ip,_is,_configs) \ - { 18, 1, 0x200, _class,_subClass,_proto,_packetSize0,_vid,_pid,_version,_im,_ip,_is,_configs } - -#define D_CONFIG(_totalLength,_interfaces) \ - { 9, 2, _totalLength,_interfaces, 1, 0, USB_CONFIG_BUS_POWERED, USB_CONFIG_POWER_MA(500) } - -#define D_INTERFACE(_n,_numEndpoints,_class,_subClass,_protocol) \ - { 9, 4, _n, 0, _numEndpoints, _class,_subClass, _protocol, 0 } - -#define D_ENDPOINT(_addr,_attr,_packetSize, _interval) \ - { 7, 5, _addr,_attr,_packetSize, _interval } - -#define D_IAD(_firstInterface, _count, _class, _subClass, _protocol) \ - { 8, 11, _firstInterface, _count, _class, _subClass, _protocol, 0 } - -#define D_HIDREPORT(_descriptorLength) \ - { 9, 0x21, 0x1, 0x1, 0, 1, 0x22, _descriptorLength, 0 } - -#define D_CDCCS(_subtype,_d0,_d1) { 5, 0x24, _subtype, _d0, _d1 } -#define D_CDCCS4(_subtype,_d0) { 4, 0x24, _subtype, _d0 } - - -#endif \ No newline at end of file diff --git a/build/linux/work/hardware/arduino/cores/arduino/USBDesc.h b/build/linux/work/hardware/arduino/cores/arduino/USBDesc.h deleted file mode 100644 index 5cd90adba..000000000 --- a/build/linux/work/hardware/arduino/cores/arduino/USBDesc.h +++ /dev/null @@ -1,67 +0,0 @@ - - -/* Copyright (c) 2011, Peter Barrett -** -** Permission to use, copy, modify, and/or distribute this software for -** any purpose with or without fee is hereby granted, provided that the -** above copyright notice and this permission notice appear in all copies. -** -** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL -** WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED -** WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR -** BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES -** OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -** WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -** ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -** SOFTWARE. -*/ - -#define CDC_ENABLED -#define HID_ENABLED - - -#ifdef CDC_ENABLED -#define CDC_INTERFACE_COUNT 2 -#define CDC_ENPOINT_COUNT 3 -#else -#define CDC_INTERFACE_COUNT 0 -#define CDC_ENPOINT_COUNT 0 -#endif - -#ifdef HID_ENABLED -#define HID_INTERFACE_COUNT 1 -#define HID_ENPOINT_COUNT 1 -#else -#define HID_INTERFACE_COUNT 0 -#define HID_ENPOINT_COUNT 0 -#endif - -#define CDC_ACM_INTERFACE 0 // CDC ACM -#define CDC_DATA_INTERFACE 1 // CDC Data -#define CDC_FIRST_ENDPOINT 1 -#define CDC_ENDPOINT_ACM (CDC_FIRST_ENDPOINT) // CDC First -#define CDC_ENDPOINT_OUT (CDC_FIRST_ENDPOINT+1) -#define CDC_ENDPOINT_IN (CDC_FIRST_ENDPOINT+2) - -#define HID_INTERFACE (CDC_ACM_INTERFACE + CDC_INTERFACE_COUNT) // HID Interface -#define HID_FIRST_ENDPOINT (CDC_FIRST_ENDPOINT + CDC_ENPOINT_COUNT) -#define HID_ENDPOINT_INT (HID_FIRST_ENDPOINT) - -#define INTERFACE_COUNT (MSC_INTERFACE + MSC_INTERFACE_COUNT) - -#ifdef CDC_ENABLED -#define CDC_RX CDC_ENDPOINT_OUT -#define CDC_TX CDC_ENDPOINT_IN -#endif - -#ifdef HID_ENABLED -#define HID_TX HID_ENDPOINT_INT -#endif - -#define IMANUFACTURER 1 -#define IPRODUCT 2 -#define USB_PID_LEONARDO 0x0801 -#define USB_PID_MICRO 0x0035 -#define USB_VID 0x2341 // arduino LLC vid -#define USB_PID ARDUINO_MODEL_USB_PID - diff --git a/build/linux/work/hardware/arduino/cores/arduino/Udp.h b/build/linux/work/hardware/arduino/cores/arduino/Udp.h deleted file mode 100644 index dc5644b9d..000000000 --- a/build/linux/work/hardware/arduino/cores/arduino/Udp.h +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Udp.cpp: Library to send/receive UDP packets. - * - * NOTE: UDP is fast, but has some important limitations (thanks to Warren Gray for mentioning these) - * 1) UDP does not guarantee the order in which assembled UDP packets are received. This - * might not happen often in practice, but in larger network topologies, a UDP - * packet can be received out of sequence. - * 2) UDP does not guard against lost packets - so packets *can* disappear without the sender being - * aware of it. Again, this may not be a concern in practice on small local networks. - * For more information, see http://www.cafeaulait.org/course/week12/35.html - * - * MIT License: - * Copyright (c) 2008 Bjoern Hartmann - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - * bjoern@cs.stanford.edu 12/30/2008 - */ - -#ifndef udp_h -#define udp_h - -#include -#include - -class UDP : public Stream { - -public: - virtual uint8_t begin(uint16_t) =0; // initialize, start listening on specified port. Returns 1 if successful, 0 if there are no sockets available to use - virtual void stop() =0; // Finish with the UDP socket - - // Sending UDP packets - - // Start building up a packet to send to the remote host specific in ip and port - // Returns 1 if successful, 0 if there was a problem with the supplied IP address or port - virtual int beginPacket(IPAddress ip, uint16_t port) =0; - // Start building up a packet to send to the remote host specific in host and port - // Returns 1 if successful, 0 if there was a problem resolving the hostname or port - virtual int beginPacket(const char *host, uint16_t port) =0; - // Finish off this packet and send it - // Returns 1 if the packet was sent successfully, 0 if there was an error - virtual int endPacket() =0; - // Write a single byte into the packet - virtual size_t write(uint8_t) =0; - // Write size bytes from buffer into the packet - virtual size_t write(const uint8_t *buffer, size_t size) =0; - - // Start processing the next available incoming packet - // Returns the size of the packet in bytes, or 0 if no packets are available - virtual int parsePacket() =0; - // Number of bytes remaining in the current packet - virtual int available() =0; - // Read a single byte from the current packet - virtual int read() =0; - // Read up to len bytes from the current packet and place them into buffer - // Returns the number of bytes read, or 0 if none are available - virtual int read(unsigned char* buffer, size_t len) =0; - // Read up to len characters from the current packet and place them into buffer - // Returns the number of characters read, or 0 if none are available - virtual int read(char* buffer, size_t len) =0; - // Return the next byte from the current packet without moving on to the next byte - virtual int peek() =0; - virtual void flush() =0; // Finish reading the current packet - - // Return the IP address of the host who sent the current incoming packet - virtual IPAddress remoteIP() =0; - // Return the port of the host who sent the current incoming packet - virtual uint16_t remotePort() =0; -protected: - uint8_t* rawIPAddress(IPAddress& addr) { return addr.raw_address(); }; -}; - -#endif diff --git a/build/linux/work/hardware/arduino/cores/arduino/WCharacter.h b/build/linux/work/hardware/arduino/cores/arduino/WCharacter.h deleted file mode 100644 index 79733b50a..000000000 --- a/build/linux/work/hardware/arduino/cores/arduino/WCharacter.h +++ /dev/null @@ -1,168 +0,0 @@ -/* - WCharacter.h - Character utility functions for Wiring & Arduino - Copyright (c) 2010 Hernando Barragan. All right reserved. - - 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef Character_h -#define Character_h - -#include - -// WCharacter.h prototypes -inline boolean isAlphaNumeric(int c) __attribute__((always_inline)); -inline boolean isAlpha(int c) __attribute__((always_inline)); -inline boolean isAscii(int c) __attribute__((always_inline)); -inline boolean isWhitespace(int c) __attribute__((always_inline)); -inline boolean isControl(int c) __attribute__((always_inline)); -inline boolean isDigit(int c) __attribute__((always_inline)); -inline boolean isGraph(int c) __attribute__((always_inline)); -inline boolean isLowerCase(int c) __attribute__((always_inline)); -inline boolean isPrintable(int c) __attribute__((always_inline)); -inline boolean isPunct(int c) __attribute__((always_inline)); -inline boolean isSpace(int c) __attribute__((always_inline)); -inline boolean isUpperCase(int c) __attribute__((always_inline)); -inline boolean isHexadecimalDigit(int c) __attribute__((always_inline)); -inline int toAscii(int c) __attribute__((always_inline)); -inline int toLowerCase(int c) __attribute__((always_inline)); -inline int toUpperCase(int c)__attribute__((always_inline)); - - -// Checks for an alphanumeric character. -// It is equivalent to (isalpha(c) || isdigit(c)). -inline boolean isAlphaNumeric(int c) -{ - return ( isalnum(c) == 0 ? false : true); -} - - -// Checks for an alphabetic character. -// It is equivalent to (isupper(c) || islower(c)). -inline boolean isAlpha(int c) -{ - return ( isalpha(c) == 0 ? false : true); -} - - -// Checks whether c is a 7-bit unsigned char value -// that fits into the ASCII character set. -inline boolean isAscii(int c) -{ - return ( isascii (c) == 0 ? false : true); -} - - -// Checks for a blank character, that is, a space or a tab. -inline boolean isWhitespace(int c) -{ - return ( isblank (c) == 0 ? false : true); -} - - -// Checks for a control character. -inline boolean isControl(int c) -{ - return ( iscntrl (c) == 0 ? false : true); -} - - -// Checks for a digit (0 through 9). -inline boolean isDigit(int c) -{ - return ( isdigit (c) == 0 ? false : true); -} - - -// Checks for any printable character except space. -inline boolean isGraph(int c) -{ - return ( isgraph (c) == 0 ? false : true); -} - - -// Checks for a lower-case character. -inline boolean isLowerCase(int c) -{ - return (islower (c) == 0 ? false : true); -} - - -// Checks for any printable character including space. -inline boolean isPrintable(int c) -{ - return ( isprint (c) == 0 ? false : true); -} - - -// Checks for any printable character which is not a space -// or an alphanumeric character. -inline boolean isPunct(int c) -{ - return ( ispunct (c) == 0 ? false : true); -} - - -// Checks for white-space characters. For the avr-libc library, -// these are: space, formfeed ('\f'), newline ('\n'), carriage -// return ('\r'), horizontal tab ('\t'), and vertical tab ('\v'). -inline boolean isSpace(int c) -{ - return ( isspace (c) == 0 ? false : true); -} - - -// Checks for an uppercase letter. -inline boolean isUpperCase(int c) -{ - return ( isupper (c) == 0 ? false : true); -} - - -// Checks for a hexadecimal digits, i.e. one of 0 1 2 3 4 5 6 7 -// 8 9 a b c d e f A B C D E F. -inline boolean isHexadecimalDigit(int c) -{ - return ( isxdigit (c) == 0 ? false : true); -} - - -// Converts c to a 7-bit unsigned char value that fits into the -// ASCII character set, by clearing the high-order bits. -inline int toAscii(int c) -{ - return toascii (c); -} - - -// Warning: -// Many people will be unhappy if you use this function. -// This function will convert accented letters into random -// characters. - -// Converts the letter c to lower case, if possible. -inline int toLowerCase(int c) -{ - return tolower (c); -} - - -// Converts the letter c to upper case, if possible. -inline int toUpperCase(int c) -{ - return toupper (c); -} - -#endif \ No newline at end of file diff --git a/build/linux/work/hardware/arduino/cores/arduino/WInterrupts.c b/build/linux/work/hardware/arduino/cores/arduino/WInterrupts.c deleted file mode 100644 index 8f3ec847f..000000000 --- a/build/linux/work/hardware/arduino/cores/arduino/WInterrupts.c +++ /dev/null @@ -1,298 +0,0 @@ -/* -*- mode: jde; c-basic-offset: 2; indent-tabs-mode: nil -*- */ - -/* - Part of the Wiring project - http://wiring.uniandes.edu.co - - Copyright (c) 2004-05 Hernando Barragan - - 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 - - Modified 24 November 2006 by David A. Mellis - Modified 1 August 2010 by Mark Sproul -*/ - -#include -#include -#include -#include -#include - -#include "wiring_private.h" - -static volatile voidFuncPtr intFunc[EXTERNAL_NUM_INTERRUPTS]; -// volatile static voidFuncPtr twiIntFunc; - -void attachInterrupt(uint8_t interruptNum, void (*userFunc)(void), int mode) { - if(interruptNum < EXTERNAL_NUM_INTERRUPTS) { - intFunc[interruptNum] = userFunc; - - // Configure the interrupt mode (trigger on low input, any change, rising - // edge, or falling edge). The mode constants were chosen to correspond - // to the configuration bits in the hardware register, so we simply shift - // the mode into place. - - // Enable the interrupt. - - switch (interruptNum) { -#if defined(__AVR_ATmega32U4__) - // I hate doing this, but the register assignment differs between the 1280/2560 - // and the 32U4. Since avrlib defines registers PCMSK1 and PCMSK2 that aren't - // even present on the 32U4 this is the only way to distinguish between them. - case 0: - EICRA = (EICRA & ~((1<= howbig) { - return howsmall; - } - long diff = howbig - howsmall; - return random(diff) + howsmall; -} - -long map(long x, long in_min, long in_max, long out_min, long out_max) -{ - return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; -} - -unsigned int makeWord(unsigned int w) { return w; } -unsigned int makeWord(unsigned char h, unsigned char l) { return (h << 8) | l; } \ No newline at end of file diff --git a/build/linux/work/hardware/arduino/cores/arduino/WString.cpp b/build/linux/work/hardware/arduino/cores/arduino/WString.cpp deleted file mode 100644 index c6839fc0d..000000000 --- a/build/linux/work/hardware/arduino/cores/arduino/WString.cpp +++ /dev/null @@ -1,645 +0,0 @@ -/* - WString.cpp - String library for Wiring & Arduino - ...mostly rewritten by Paul Stoffregen... - Copyright (c) 2009-10 Hernando Barragan. All rights reserved. - Copyright 2011, Paul Stoffregen, paul@pjrc.com - - 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#include "WString.h" - - -/*********************************************/ -/* Constructors */ -/*********************************************/ - -String::String(const char *cstr) -{ - init(); - if (cstr) copy(cstr, strlen(cstr)); -} - -String::String(const String &value) -{ - init(); - *this = value; -} - -#ifdef __GXX_EXPERIMENTAL_CXX0X__ -String::String(String &&rval) -{ - init(); - move(rval); -} -String::String(StringSumHelper &&rval) -{ - init(); - move(rval); -} -#endif - -String::String(char c) -{ - init(); - char buf[2]; - buf[0] = c; - buf[1] = 0; - *this = buf; -} - -String::String(unsigned char value, unsigned char base) -{ - init(); - char buf[9]; - utoa(value, buf, base); - *this = buf; -} - -String::String(int value, unsigned char base) -{ - init(); - char buf[18]; - itoa(value, buf, base); - *this = buf; -} - -String::String(unsigned int value, unsigned char base) -{ - init(); - char buf[17]; - utoa(value, buf, base); - *this = buf; -} - -String::String(long value, unsigned char base) -{ - init(); - char buf[34]; - ltoa(value, buf, base); - *this = buf; -} - -String::String(unsigned long value, unsigned char base) -{ - init(); - char buf[33]; - ultoa(value, buf, base); - *this = buf; -} - -String::~String() -{ - free(buffer); -} - -/*********************************************/ -/* Memory Management */ -/*********************************************/ - -inline void String::init(void) -{ - buffer = NULL; - capacity = 0; - len = 0; - flags = 0; -} - -void String::invalidate(void) -{ - if (buffer) free(buffer); - buffer = NULL; - capacity = len = 0; -} - -unsigned char String::reserve(unsigned int size) -{ - if (buffer && capacity >= size) return 1; - if (changeBuffer(size)) { - if (len == 0) buffer[0] = 0; - return 1; - } - return 0; -} - -unsigned char String::changeBuffer(unsigned int maxStrLen) -{ - char *newbuffer = (char *)realloc(buffer, maxStrLen + 1); - if (newbuffer) { - buffer = newbuffer; - capacity = maxStrLen; - return 1; - } - return 0; -} - -/*********************************************/ -/* Copy and Move */ -/*********************************************/ - -String & String::copy(const char *cstr, unsigned int length) -{ - if (!reserve(length)) { - invalidate(); - return *this; - } - len = length; - strcpy(buffer, cstr); - return *this; -} - -#ifdef __GXX_EXPERIMENTAL_CXX0X__ -void String::move(String &rhs) -{ - if (buffer) { - if (capacity >= rhs.len) { - strcpy(buffer, rhs.buffer); - len = rhs.len; - rhs.len = 0; - return; - } else { - free(buffer); - } - } - buffer = rhs.buffer; - capacity = rhs.capacity; - len = rhs.len; - rhs.buffer = NULL; - rhs.capacity = 0; - rhs.len = 0; -} -#endif - -String & String::operator = (const String &rhs) -{ - if (this == &rhs) return *this; - - if (rhs.buffer) copy(rhs.buffer, rhs.len); - else invalidate(); - - return *this; -} - -#ifdef __GXX_EXPERIMENTAL_CXX0X__ -String & String::operator = (String &&rval) -{ - if (this != &rval) move(rval); - return *this; -} - -String & String::operator = (StringSumHelper &&rval) -{ - if (this != &rval) move(rval); - return *this; -} -#endif - -String & String::operator = (const char *cstr) -{ - if (cstr) copy(cstr, strlen(cstr)); - else invalidate(); - - return *this; -} - -/*********************************************/ -/* concat */ -/*********************************************/ - -unsigned char String::concat(const String &s) -{ - return concat(s.buffer, s.len); -} - -unsigned char String::concat(const char *cstr, unsigned int length) -{ - unsigned int newlen = len + length; - if (!cstr) return 0; - if (length == 0) return 1; - if (!reserve(newlen)) return 0; - strcpy(buffer + len, cstr); - len = newlen; - return 1; -} - -unsigned char String::concat(const char *cstr) -{ - if (!cstr) return 0; - return concat(cstr, strlen(cstr)); -} - -unsigned char String::concat(char c) -{ - char buf[2]; - buf[0] = c; - buf[1] = 0; - return concat(buf, 1); -} - -unsigned char String::concat(unsigned char num) -{ - char buf[4]; - itoa(num, buf, 10); - return concat(buf, strlen(buf)); -} - -unsigned char String::concat(int num) -{ - char buf[7]; - itoa(num, buf, 10); - return concat(buf, strlen(buf)); -} - -unsigned char String::concat(unsigned int num) -{ - char buf[6]; - utoa(num, buf, 10); - return concat(buf, strlen(buf)); -} - -unsigned char String::concat(long num) -{ - char buf[12]; - ltoa(num, buf, 10); - return concat(buf, strlen(buf)); -} - -unsigned char String::concat(unsigned long num) -{ - char buf[11]; - ultoa(num, buf, 10); - return concat(buf, strlen(buf)); -} - -/*********************************************/ -/* Concatenate */ -/*********************************************/ - -StringSumHelper & operator + (const StringSumHelper &lhs, const String &rhs) -{ - StringSumHelper &a = const_cast(lhs); - if (!a.concat(rhs.buffer, rhs.len)) a.invalidate(); - return a; -} - -StringSumHelper & operator + (const StringSumHelper &lhs, const char *cstr) -{ - StringSumHelper &a = const_cast(lhs); - if (!cstr || !a.concat(cstr, strlen(cstr))) a.invalidate(); - return a; -} - -StringSumHelper & operator + (const StringSumHelper &lhs, char c) -{ - StringSumHelper &a = const_cast(lhs); - if (!a.concat(c)) a.invalidate(); - return a; -} - -StringSumHelper & operator + (const StringSumHelper &lhs, unsigned char num) -{ - StringSumHelper &a = const_cast(lhs); - if (!a.concat(num)) a.invalidate(); - return a; -} - -StringSumHelper & operator + (const StringSumHelper &lhs, int num) -{ - StringSumHelper &a = const_cast(lhs); - if (!a.concat(num)) a.invalidate(); - return a; -} - -StringSumHelper & operator + (const StringSumHelper &lhs, unsigned int num) -{ - StringSumHelper &a = const_cast(lhs); - if (!a.concat(num)) a.invalidate(); - return a; -} - -StringSumHelper & operator + (const StringSumHelper &lhs, long num) -{ - StringSumHelper &a = const_cast(lhs); - if (!a.concat(num)) a.invalidate(); - return a; -} - -StringSumHelper & operator + (const StringSumHelper &lhs, unsigned long num) -{ - StringSumHelper &a = const_cast(lhs); - if (!a.concat(num)) a.invalidate(); - return a; -} - -/*********************************************/ -/* Comparison */ -/*********************************************/ - -int String::compareTo(const String &s) const -{ - if (!buffer || !s.buffer) { - if (s.buffer && s.len > 0) return 0 - *(unsigned char *)s.buffer; - if (buffer && len > 0) return *(unsigned char *)buffer; - return 0; - } - return strcmp(buffer, s.buffer); -} - -unsigned char String::equals(const String &s2) const -{ - return (len == s2.len && compareTo(s2) == 0); -} - -unsigned char String::equals(const char *cstr) const -{ - if (len == 0) return (cstr == NULL || *cstr == 0); - if (cstr == NULL) return buffer[0] == 0; - return strcmp(buffer, cstr) == 0; -} - -unsigned char String::operator<(const String &rhs) const -{ - return compareTo(rhs) < 0; -} - -unsigned char String::operator>(const String &rhs) const -{ - return compareTo(rhs) > 0; -} - -unsigned char String::operator<=(const String &rhs) const -{ - return compareTo(rhs) <= 0; -} - -unsigned char String::operator>=(const String &rhs) const -{ - return compareTo(rhs) >= 0; -} - -unsigned char String::equalsIgnoreCase( const String &s2 ) const -{ - if (this == &s2) return 1; - if (len != s2.len) return 0; - if (len == 0) return 1; - const char *p1 = buffer; - const char *p2 = s2.buffer; - while (*p1) { - if (tolower(*p1++) != tolower(*p2++)) return 0; - } - return 1; -} - -unsigned char String::startsWith( const String &s2 ) const -{ - if (len < s2.len) return 0; - return startsWith(s2, 0); -} - -unsigned char String::startsWith( const String &s2, unsigned int offset ) const -{ - if (offset > len - s2.len || !buffer || !s2.buffer) return 0; - return strncmp( &buffer[offset], s2.buffer, s2.len ) == 0; -} - -unsigned char String::endsWith( const String &s2 ) const -{ - if ( len < s2.len || !buffer || !s2.buffer) return 0; - return strcmp(&buffer[len - s2.len], s2.buffer) == 0; -} - -/*********************************************/ -/* Character Access */ -/*********************************************/ - -char String::charAt(unsigned int loc) const -{ - return operator[](loc); -} - -void String::setCharAt(unsigned int loc, char c) -{ - if (loc < len) buffer[loc] = c; -} - -char & String::operator[](unsigned int index) -{ - static char dummy_writable_char; - if (index >= len || !buffer) { - dummy_writable_char = 0; - return dummy_writable_char; - } - return buffer[index]; -} - -char String::operator[]( unsigned int index ) const -{ - if (index >= len || !buffer) return 0; - return buffer[index]; -} - -void String::getBytes(unsigned char *buf, unsigned int bufsize, unsigned int index) const -{ - if (!bufsize || !buf) return; - if (index >= len) { - buf[0] = 0; - return; - } - unsigned int n = bufsize - 1; - if (n > len - index) n = len - index; - strncpy((char *)buf, buffer + index, n); - buf[n] = 0; -} - -/*********************************************/ -/* Search */ -/*********************************************/ - -int String::indexOf(char c) const -{ - return indexOf(c, 0); -} - -int String::indexOf( char ch, unsigned int fromIndex ) const -{ - if (fromIndex >= len) return -1; - const char* temp = strchr(buffer + fromIndex, ch); - if (temp == NULL) return -1; - return temp - buffer; -} - -int String::indexOf(const String &s2) const -{ - return indexOf(s2, 0); -} - -int String::indexOf(const String &s2, unsigned int fromIndex) const -{ - if (fromIndex >= len) return -1; - const char *found = strstr(buffer + fromIndex, s2.buffer); - if (found == NULL) return -1; - return found - buffer; -} - -int String::lastIndexOf( char theChar ) const -{ - return lastIndexOf(theChar, len - 1); -} - -int String::lastIndexOf(char ch, unsigned int fromIndex) const -{ - if (fromIndex >= len) return -1; - char tempchar = buffer[fromIndex + 1]; - buffer[fromIndex + 1] = '\0'; - char* temp = strrchr( buffer, ch ); - buffer[fromIndex + 1] = tempchar; - if (temp == NULL) return -1; - return temp - buffer; -} - -int String::lastIndexOf(const String &s2) const -{ - return lastIndexOf(s2, len - s2.len); -} - -int String::lastIndexOf(const String &s2, unsigned int fromIndex) const -{ - if (s2.len == 0 || len == 0 || s2.len > len) return -1; - if (fromIndex >= len) fromIndex = len - 1; - int found = -1; - for (char *p = buffer; p <= buffer + fromIndex; p++) { - p = strstr(p, s2.buffer); - if (!p) break; - if ((unsigned int)(p - buffer) <= fromIndex) found = p - buffer; - } - return found; -} - -String String::substring( unsigned int left ) const -{ - return substring(left, len); -} - -String String::substring(unsigned int left, unsigned int right) const -{ - if (left > right) { - unsigned int temp = right; - right = left; - left = temp; - } - String out; - if (left > len) return out; - if (right > len) right = len; - char temp = buffer[right]; // save the replaced character - buffer[right] = '\0'; - out = buffer + left; // pointer arithmetic - buffer[right] = temp; //restore character - return out; -} - -/*********************************************/ -/* Modification */ -/*********************************************/ - -void String::replace(char find, char replace) -{ - if (!buffer) return; - for (char *p = buffer; *p; p++) { - if (*p == find) *p = replace; - } -} - -void String::replace(const String& find, const String& replace) -{ - if (len == 0 || find.len == 0) return; - int diff = replace.len - find.len; - char *readFrom = buffer; - char *foundAt; - if (diff == 0) { - while ((foundAt = strstr(readFrom, find.buffer)) != NULL) { - memcpy(foundAt, replace.buffer, replace.len); - readFrom = foundAt + replace.len; - } - } else if (diff < 0) { - char *writeTo = buffer; - while ((foundAt = strstr(readFrom, find.buffer)) != NULL) { - unsigned int n = foundAt - readFrom; - memcpy(writeTo, readFrom, n); - writeTo += n; - memcpy(writeTo, replace.buffer, replace.len); - writeTo += replace.len; - readFrom = foundAt + find.len; - len += diff; - } - strcpy(writeTo, readFrom); - } else { - unsigned int size = len; // compute size needed for result - while ((foundAt = strstr(readFrom, find.buffer)) != NULL) { - readFrom = foundAt + find.len; - size += diff; - } - if (size == len) return; - if (size > capacity && !changeBuffer(size)) return; // XXX: tell user! - int index = len - 1; - while (index >= 0 && (index = lastIndexOf(find, index)) >= 0) { - readFrom = buffer + index + find.len; - memmove(readFrom + diff, readFrom, len - (readFrom - buffer)); - len += diff; - buffer[len] = 0; - memcpy(buffer + index, replace.buffer, replace.len); - index--; - } - } -} - -void String::toLowerCase(void) -{ - if (!buffer) return; - for (char *p = buffer; *p; p++) { - *p = tolower(*p); - } -} - -void String::toUpperCase(void) -{ - if (!buffer) return; - for (char *p = buffer; *p; p++) { - *p = toupper(*p); - } -} - -void String::trim(void) -{ - if (!buffer || len == 0) return; - char *begin = buffer; - while (isspace(*begin)) begin++; - char *end = buffer + len - 1; - while (isspace(*end) && end >= begin) end--; - len = end + 1 - begin; - if (begin > buffer) memcpy(buffer, begin, len); - buffer[len] = 0; -} - -/*********************************************/ -/* Parsing / Conversion */ -/*********************************************/ - -long String::toInt(void) const -{ - if (buffer) return atol(buffer); - return 0; -} - - diff --git a/build/linux/work/hardware/arduino/cores/arduino/WString.h b/build/linux/work/hardware/arduino/cores/arduino/WString.h deleted file mode 100644 index d76d2a33d..000000000 --- a/build/linux/work/hardware/arduino/cores/arduino/WString.h +++ /dev/null @@ -1,205 +0,0 @@ -/* - WString.h - String library for Wiring & Arduino - ...mostly rewritten by Paul Stoffregen... - Copyright (c) 2009-10 Hernando Barragan. All right reserved. - Copyright 2011, Paul Stoffregen, paul@pjrc.com - - 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#ifndef String_class_h -#define String_class_h -#ifdef __cplusplus - -#include -#include -#include -#include - -// When compiling programs with this class, the following gcc parameters -// dramatically increase performance and memory (RAM) efficiency, typically -// with little or no increase in code size. -// -felide-constructors -// -std=c++0x - -class __FlashStringHelper; -#define F(string_literal) (reinterpret_cast<__FlashStringHelper *>(PSTR(string_literal))) - -// An inherited class for holding the result of a concatenation. These -// result objects are assumed to be writable by subsequent concatenations. -class StringSumHelper; - -// The string class -class String -{ - // use a function pointer to allow for "if (s)" without the - // complications of an operator bool(). for more information, see: - // http://www.artima.com/cppsource/safebool.html - typedef void (String::*StringIfHelperType)() const; - void StringIfHelper() const {} - -public: - // constructors - // creates a copy of the initial value. - // if the initial value is null or invalid, or if memory allocation - // fails, the string will be marked as invalid (i.e. "if (s)" will - // be false). - String(const char *cstr = ""); - String(const String &str); - #ifdef __GXX_EXPERIMENTAL_CXX0X__ - String(String &&rval); - String(StringSumHelper &&rval); - #endif - explicit String(char c); - explicit String(unsigned char, unsigned char base=10); - explicit String(int, unsigned char base=10); - explicit String(unsigned int, unsigned char base=10); - explicit String(long, unsigned char base=10); - explicit String(unsigned long, unsigned char base=10); - ~String(void); - - // memory management - // return true on success, false on failure (in which case, the string - // is left unchanged). reserve(0), if successful, will validate an - // invalid string (i.e., "if (s)" will be true afterwards) - unsigned char reserve(unsigned int size); - inline unsigned int length(void) const {return len;} - - // creates a copy of the assigned value. if the value is null or - // invalid, or if the memory allocation fails, the string will be - // marked as invalid ("if (s)" will be false). - String & operator = (const String &rhs); - String & operator = (const char *cstr); - #ifdef __GXX_EXPERIMENTAL_CXX0X__ - String & operator = (String &&rval); - String & operator = (StringSumHelper &&rval); - #endif - - // concatenate (works w/ built-in types) - - // returns true on success, false on failure (in which case, the string - // is left unchanged). if the argument is null or invalid, the - // concatenation is considered unsucessful. - unsigned char concat(const String &str); - unsigned char concat(const char *cstr); - unsigned char concat(char c); - unsigned char concat(unsigned char c); - unsigned char concat(int num); - unsigned char concat(unsigned int num); - unsigned char concat(long num); - unsigned char concat(unsigned long num); - - // if there's not enough memory for the concatenated value, the string - // will be left unchanged (but this isn't signalled in any way) - String & operator += (const String &rhs) {concat(rhs); return (*this);} - String & operator += (const char *cstr) {concat(cstr); return (*this);} - String & operator += (char c) {concat(c); return (*this);} - String & operator += (unsigned char num) {concat(num); return (*this);} - String & operator += (int num) {concat(num); return (*this);} - String & operator += (unsigned int num) {concat(num); return (*this);} - String & operator += (long num) {concat(num); return (*this);} - String & operator += (unsigned long num) {concat(num); return (*this);} - - friend StringSumHelper & operator + (const StringSumHelper &lhs, const String &rhs); - friend StringSumHelper & operator + (const StringSumHelper &lhs, const char *cstr); - friend StringSumHelper & operator + (const StringSumHelper &lhs, char c); - friend StringSumHelper & operator + (const StringSumHelper &lhs, unsigned char num); - friend StringSumHelper & operator + (const StringSumHelper &lhs, int num); - friend StringSumHelper & operator + (const StringSumHelper &lhs, unsigned int num); - friend StringSumHelper & operator + (const StringSumHelper &lhs, long num); - friend StringSumHelper & operator + (const StringSumHelper &lhs, unsigned long num); - - // comparison (only works w/ Strings and "strings") - operator StringIfHelperType() const { return buffer ? &String::StringIfHelper : 0; } - int compareTo(const String &s) const; - unsigned char equals(const String &s) const; - unsigned char equals(const char *cstr) const; - unsigned char operator == (const String &rhs) const {return equals(rhs);} - unsigned char operator == (const char *cstr) const {return equals(cstr);} - unsigned char operator != (const String &rhs) const {return !equals(rhs);} - unsigned char operator != (const char *cstr) const {return !equals(cstr);} - unsigned char operator < (const String &rhs) const; - unsigned char operator > (const String &rhs) const; - unsigned char operator <= (const String &rhs) const; - unsigned char operator >= (const String &rhs) const; - unsigned char equalsIgnoreCase(const String &s) const; - unsigned char startsWith( const String &prefix) const; - unsigned char startsWith(const String &prefix, unsigned int offset) const; - unsigned char endsWith(const String &suffix) const; - - // character acccess - char charAt(unsigned int index) const; - void setCharAt(unsigned int index, char c); - char operator [] (unsigned int index) const; - char& operator [] (unsigned int index); - void getBytes(unsigned char *buf, unsigned int bufsize, unsigned int index=0) const; - void toCharArray(char *buf, unsigned int bufsize, unsigned int index=0) const - {getBytes((unsigned char *)buf, bufsize, index);} - - // search - int indexOf( char ch ) const; - int indexOf( char ch, unsigned int fromIndex ) const; - int indexOf( const String &str ) const; - int indexOf( const String &str, unsigned int fromIndex ) const; - int lastIndexOf( char ch ) const; - int lastIndexOf( char ch, unsigned int fromIndex ) const; - int lastIndexOf( const String &str ) const; - int lastIndexOf( const String &str, unsigned int fromIndex ) const; - String substring( unsigned int beginIndex ) const; - String substring( unsigned int beginIndex, unsigned int endIndex ) const; - - // modification - void replace(char find, char replace); - void replace(const String& find, const String& replace); - void toLowerCase(void); - void toUpperCase(void); - void trim(void); - - // parsing/conversion - long toInt(void) const; - -protected: - char *buffer; // the actual char array - unsigned int capacity; // the array length minus one (for the '\0') - unsigned int len; // the String length (not counting the '\0') - unsigned char flags; // unused, for future features -protected: - void init(void); - void invalidate(void); - unsigned char changeBuffer(unsigned int maxStrLen); - unsigned char concat(const char *cstr, unsigned int length); - - // copy and move - String & copy(const char *cstr, unsigned int length); - #ifdef __GXX_EXPERIMENTAL_CXX0X__ - void move(String &rhs); - #endif -}; - -class StringSumHelper : public String -{ -public: - StringSumHelper(const String &s) : String(s) {} - StringSumHelper(const char *p) : String(p) {} - StringSumHelper(char c) : String(c) {} - StringSumHelper(unsigned char num) : String(num) {} - StringSumHelper(int num) : String(num) {} - StringSumHelper(unsigned int num) : String(num) {} - StringSumHelper(long num) : String(num) {} - StringSumHelper(unsigned long num) : String(num) {} -}; - -#endif // __cplusplus -#endif // String_class_h diff --git a/build/linux/work/hardware/arduino/cores/arduino/binary.h b/build/linux/work/hardware/arduino/cores/arduino/binary.h deleted file mode 100644 index af1498033..000000000 --- a/build/linux/work/hardware/arduino/cores/arduino/binary.h +++ /dev/null @@ -1,515 +0,0 @@ -#ifndef Binary_h -#define Binary_h - -#define B0 0 -#define B00 0 -#define B000 0 -#define B0000 0 -#define B00000 0 -#define B000000 0 -#define B0000000 0 -#define B00000000 0 -#define B1 1 -#define B01 1 -#define B001 1 -#define B0001 1 -#define B00001 1 -#define B000001 1 -#define B0000001 1 -#define B00000001 1 -#define B10 2 -#define B010 2 -#define B0010 2 -#define B00010 2 -#define B000010 2 -#define B0000010 2 -#define B00000010 2 -#define B11 3 -#define B011 3 -#define B0011 3 -#define B00011 3 -#define B000011 3 -#define B0000011 3 -#define B00000011 3 -#define B100 4 -#define B0100 4 -#define B00100 4 -#define B000100 4 -#define B0000100 4 -#define B00000100 4 -#define B101 5 -#define B0101 5 -#define B00101 5 -#define B000101 5 -#define B0000101 5 -#define B00000101 5 -#define B110 6 -#define B0110 6 -#define B00110 6 -#define B000110 6 -#define B0000110 6 -#define B00000110 6 -#define B111 7 -#define B0111 7 -#define B00111 7 -#define B000111 7 -#define B0000111 7 -#define B00000111 7 -#define B1000 8 -#define B01000 8 -#define B001000 8 -#define B0001000 8 -#define B00001000 8 -#define B1001 9 -#define B01001 9 -#define B001001 9 -#define B0001001 9 -#define B00001001 9 -#define B1010 10 -#define B01010 10 -#define B001010 10 -#define B0001010 10 -#define B00001010 10 -#define B1011 11 -#define B01011 11 -#define B001011 11 -#define B0001011 11 -#define B00001011 11 -#define B1100 12 -#define B01100 12 -#define B001100 12 -#define B0001100 12 -#define B00001100 12 -#define B1101 13 -#define B01101 13 -#define B001101 13 -#define B0001101 13 -#define B00001101 13 -#define B1110 14 -#define B01110 14 -#define B001110 14 -#define B0001110 14 -#define B00001110 14 -#define B1111 15 -#define B01111 15 -#define B001111 15 -#define B0001111 15 -#define B00001111 15 -#define B10000 16 -#define B010000 16 -#define B0010000 16 -#define B00010000 16 -#define B10001 17 -#define B010001 17 -#define B0010001 17 -#define B00010001 17 -#define B10010 18 -#define B010010 18 -#define B0010010 18 -#define B00010010 18 -#define B10011 19 -#define B010011 19 -#define B0010011 19 -#define B00010011 19 -#define B10100 20 -#define B010100 20 -#define B0010100 20 -#define B00010100 20 -#define B10101 21 -#define B010101 21 -#define B0010101 21 -#define B00010101 21 -#define B10110 22 -#define B010110 22 -#define B0010110 22 -#define B00010110 22 -#define B10111 23 -#define B010111 23 -#define B0010111 23 -#define B00010111 23 -#define B11000 24 -#define B011000 24 -#define B0011000 24 -#define B00011000 24 -#define B11001 25 -#define B011001 25 -#define B0011001 25 -#define B00011001 25 -#define B11010 26 -#define B011010 26 -#define B0011010 26 -#define B00011010 26 -#define B11011 27 -#define B011011 27 -#define B0011011 27 -#define B00011011 27 -#define B11100 28 -#define B011100 28 -#define B0011100 28 -#define B00011100 28 -#define B11101 29 -#define B011101 29 -#define B0011101 29 -#define B00011101 29 -#define B11110 30 -#define B011110 30 -#define B0011110 30 -#define B00011110 30 -#define B11111 31 -#define B011111 31 -#define B0011111 31 -#define B00011111 31 -#define B100000 32 -#define B0100000 32 -#define B00100000 32 -#define B100001 33 -#define B0100001 33 -#define B00100001 33 -#define B100010 34 -#define B0100010 34 -#define B00100010 34 -#define B100011 35 -#define B0100011 35 -#define B00100011 35 -#define B100100 36 -#define B0100100 36 -#define B00100100 36 -#define B100101 37 -#define B0100101 37 -#define B00100101 37 -#define B100110 38 -#define B0100110 38 -#define B00100110 38 -#define B100111 39 -#define B0100111 39 -#define B00100111 39 -#define B101000 40 -#define B0101000 40 -#define B00101000 40 -#define B101001 41 -#define B0101001 41 -#define B00101001 41 -#define B101010 42 -#define B0101010 42 -#define B00101010 42 -#define B101011 43 -#define B0101011 43 -#define B00101011 43 -#define B101100 44 -#define B0101100 44 -#define B00101100 44 -#define B101101 45 -#define B0101101 45 -#define B00101101 45 -#define B101110 46 -#define B0101110 46 -#define B00101110 46 -#define B101111 47 -#define B0101111 47 -#define B00101111 47 -#define B110000 48 -#define B0110000 48 -#define B00110000 48 -#define B110001 49 -#define B0110001 49 -#define B00110001 49 -#define B110010 50 -#define B0110010 50 -#define B00110010 50 -#define B110011 51 -#define B0110011 51 -#define B00110011 51 -#define B110100 52 -#define B0110100 52 -#define B00110100 52 -#define B110101 53 -#define B0110101 53 -#define B00110101 53 -#define B110110 54 -#define B0110110 54 -#define B00110110 54 -#define B110111 55 -#define B0110111 55 -#define B00110111 55 -#define B111000 56 -#define B0111000 56 -#define B00111000 56 -#define B111001 57 -#define B0111001 57 -#define B00111001 57 -#define B111010 58 -#define B0111010 58 -#define B00111010 58 -#define B111011 59 -#define B0111011 59 -#define B00111011 59 -#define B111100 60 -#define B0111100 60 -#define B00111100 60 -#define B111101 61 -#define B0111101 61 -#define B00111101 61 -#define B111110 62 -#define B0111110 62 -#define B00111110 62 -#define B111111 63 -#define B0111111 63 -#define B00111111 63 -#define B1000000 64 -#define B01000000 64 -#define B1000001 65 -#define B01000001 65 -#define B1000010 66 -#define B01000010 66 -#define B1000011 67 -#define B01000011 67 -#define B1000100 68 -#define B01000100 68 -#define B1000101 69 -#define B01000101 69 -#define B1000110 70 -#define B01000110 70 -#define B1000111 71 -#define B01000111 71 -#define B1001000 72 -#define B01001000 72 -#define B1001001 73 -#define B01001001 73 -#define B1001010 74 -#define B01001010 74 -#define B1001011 75 -#define B01001011 75 -#define B1001100 76 -#define B01001100 76 -#define B1001101 77 -#define B01001101 77 -#define B1001110 78 -#define B01001110 78 -#define B1001111 79 -#define B01001111 79 -#define B1010000 80 -#define B01010000 80 -#define B1010001 81 -#define B01010001 81 -#define B1010010 82 -#define B01010010 82 -#define B1010011 83 -#define B01010011 83 -#define B1010100 84 -#define B01010100 84 -#define B1010101 85 -#define B01010101 85 -#define B1010110 86 -#define B01010110 86 -#define B1010111 87 -#define B01010111 87 -#define B1011000 88 -#define B01011000 88 -#define B1011001 89 -#define B01011001 89 -#define B1011010 90 -#define B01011010 90 -#define B1011011 91 -#define B01011011 91 -#define B1011100 92 -#define B01011100 92 -#define B1011101 93 -#define B01011101 93 -#define B1011110 94 -#define B01011110 94 -#define B1011111 95 -#define B01011111 95 -#define B1100000 96 -#define B01100000 96 -#define B1100001 97 -#define B01100001 97 -#define B1100010 98 -#define B01100010 98 -#define B1100011 99 -#define B01100011 99 -#define B1100100 100 -#define B01100100 100 -#define B1100101 101 -#define B01100101 101 -#define B1100110 102 -#define B01100110 102 -#define B1100111 103 -#define B01100111 103 -#define B1101000 104 -#define B01101000 104 -#define B1101001 105 -#define B01101001 105 -#define B1101010 106 -#define B01101010 106 -#define B1101011 107 -#define B01101011 107 -#define B1101100 108 -#define B01101100 108 -#define B1101101 109 -#define B01101101 109 -#define B1101110 110 -#define B01101110 110 -#define B1101111 111 -#define B01101111 111 -#define B1110000 112 -#define B01110000 112 -#define B1110001 113 -#define B01110001 113 -#define B1110010 114 -#define B01110010 114 -#define B1110011 115 -#define B01110011 115 -#define B1110100 116 -#define B01110100 116 -#define B1110101 117 -#define B01110101 117 -#define B1110110 118 -#define B01110110 118 -#define B1110111 119 -#define B01110111 119 -#define B1111000 120 -#define B01111000 120 -#define B1111001 121 -#define B01111001 121 -#define B1111010 122 -#define B01111010 122 -#define B1111011 123 -#define B01111011 123 -#define B1111100 124 -#define B01111100 124 -#define B1111101 125 -#define B01111101 125 -#define B1111110 126 -#define B01111110 126 -#define B1111111 127 -#define B01111111 127 -#define B10000000 128 -#define B10000001 129 -#define B10000010 130 -#define B10000011 131 -#define B10000100 132 -#define B10000101 133 -#define B10000110 134 -#define B10000111 135 -#define B10001000 136 -#define B10001001 137 -#define B10001010 138 -#define B10001011 139 -#define B10001100 140 -#define B10001101 141 -#define B10001110 142 -#define B10001111 143 -#define B10010000 144 -#define B10010001 145 -#define B10010010 146 -#define B10010011 147 -#define B10010100 148 -#define B10010101 149 -#define B10010110 150 -#define B10010111 151 -#define B10011000 152 -#define B10011001 153 -#define B10011010 154 -#define B10011011 155 -#define B10011100 156 -#define B10011101 157 -#define B10011110 158 -#define B10011111 159 -#define B10100000 160 -#define B10100001 161 -#define B10100010 162 -#define B10100011 163 -#define B10100100 164 -#define B10100101 165 -#define B10100110 166 -#define B10100111 167 -#define B10101000 168 -#define B10101001 169 -#define B10101010 170 -#define B10101011 171 -#define B10101100 172 -#define B10101101 173 -#define B10101110 174 -#define B10101111 175 -#define B10110000 176 -#define B10110001 177 -#define B10110010 178 -#define B10110011 179 -#define B10110100 180 -#define B10110101 181 -#define B10110110 182 -#define B10110111 183 -#define B10111000 184 -#define B10111001 185 -#define B10111010 186 -#define B10111011 187 -#define B10111100 188 -#define B10111101 189 -#define B10111110 190 -#define B10111111 191 -#define B11000000 192 -#define B11000001 193 -#define B11000010 194 -#define B11000011 195 -#define B11000100 196 -#define B11000101 197 -#define B11000110 198 -#define B11000111 199 -#define B11001000 200 -#define B11001001 201 -#define B11001010 202 -#define B11001011 203 -#define B11001100 204 -#define B11001101 205 -#define B11001110 206 -#define B11001111 207 -#define B11010000 208 -#define B11010001 209 -#define B11010010 210 -#define B11010011 211 -#define B11010100 212 -#define B11010101 213 -#define B11010110 214 -#define B11010111 215 -#define B11011000 216 -#define B11011001 217 -#define B11011010 218 -#define B11011011 219 -#define B11011100 220 -#define B11011101 221 -#define B11011110 222 -#define B11011111 223 -#define B11100000 224 -#define B11100001 225 -#define B11100010 226 -#define B11100011 227 -#define B11100100 228 -#define B11100101 229 -#define B11100110 230 -#define B11100111 231 -#define B11101000 232 -#define B11101001 233 -#define B11101010 234 -#define B11101011 235 -#define B11101100 236 -#define B11101101 237 -#define B11101110 238 -#define B11101111 239 -#define B11110000 240 -#define B11110001 241 -#define B11110010 242 -#define B11110011 243 -#define B11110100 244 -#define B11110101 245 -#define B11110110 246 -#define B11110111 247 -#define B11111000 248 -#define B11111001 249 -#define B11111010 250 -#define B11111011 251 -#define B11111100 252 -#define B11111101 253 -#define B11111110 254 -#define B11111111 255 - -#endif diff --git a/build/linux/work/hardware/arduino/cores/arduino/main.cpp b/build/linux/work/hardware/arduino/cores/arduino/main.cpp deleted file mode 100644 index 34450f46d..000000000 --- a/build/linux/work/hardware/arduino/cores/arduino/main.cpp +++ /dev/null @@ -1,20 +0,0 @@ -#include - -int main(void) -{ - init(); - -#if defined(USBCON) - USB.attach(); -#endif - - setup(); - - for (;;) { - loop(); - if (serialEventRun) serialEventRun(); - } - - return 0; -} - diff --git a/build/linux/work/hardware/arduino/cores/arduino/new.cpp b/build/linux/work/hardware/arduino/cores/arduino/new.cpp deleted file mode 100644 index 0f6d4220e..000000000 --- a/build/linux/work/hardware/arduino/cores/arduino/new.cpp +++ /dev/null @@ -1,18 +0,0 @@ -#include - -void * operator new(size_t size) -{ - return malloc(size); -} - -void operator delete(void * ptr) -{ - free(ptr); -} - -int __cxa_guard_acquire(__guard *g) {return !*(char *)(g);}; -void __cxa_guard_release (__guard *g) {*(char *)g = 1;}; -void __cxa_guard_abort (__guard *) {}; - -void __cxa_pure_virtual(void) {}; - diff --git a/build/linux/work/hardware/arduino/cores/arduino/new.h b/build/linux/work/hardware/arduino/cores/arduino/new.h deleted file mode 100644 index cd940ce8b..000000000 --- a/build/linux/work/hardware/arduino/cores/arduino/new.h +++ /dev/null @@ -1,22 +0,0 @@ -/* Header to define new/delete operators as they aren't provided by avr-gcc by default - Taken from http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=59453 - */ - -#ifndef NEW_H -#define NEW_H - -#include - -void * operator new(size_t size); -void operator delete(void * ptr); - -__extension__ typedef int __guard __attribute__((mode (__DI__))); - -extern "C" int __cxa_guard_acquire(__guard *); -extern "C" void __cxa_guard_release (__guard *); -extern "C" void __cxa_guard_abort (__guard *); - -extern "C" void __cxa_pure_virtual(void); - -#endif - diff --git a/build/linux/work/hardware/arduino/cores/arduino/wiring.c b/build/linux/work/hardware/arduino/cores/arduino/wiring.c deleted file mode 100644 index fb447eb53..000000000 --- a/build/linux/work/hardware/arduino/cores/arduino/wiring.c +++ /dev/null @@ -1,328 +0,0 @@ -/* - wiring.c - Partial implementation of the Wiring API for the ATmega8. - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2005-2006 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$ -*/ - -#include "wiring_private.h" - -// the prescaler is set so that timer0 ticks every 64 clock cycles, and the -// the overflow handler is called every 256 ticks. -#define MICROSECONDS_PER_TIMER0_OVERFLOW (clockCyclesToMicroseconds(64 * 256)) - -// the whole number of milliseconds per timer0 overflow -#define MILLIS_INC (MICROSECONDS_PER_TIMER0_OVERFLOW / 1000) - -// the fractional number of milliseconds per timer0 overflow. we shift right -// by three to fit these numbers into a byte. (for the clock speeds we care -// about - 8 and 16 MHz - this doesn't lose precision.) -#define FRACT_INC ((MICROSECONDS_PER_TIMER0_OVERFLOW % 1000) >> 3) -#define FRACT_MAX (1000 >> 3) - -volatile unsigned long timer0_overflow_count = 0; -volatile unsigned long timer0_millis = 0; -static unsigned char timer0_fract = 0; - -#if defined(__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__) -SIGNAL(TIM0_OVF_vect) -#else -SIGNAL(TIMER0_OVF_vect) -#endif -{ - // copy these to local variables so they can be stored in registers - // (volatile variables must be read from memory on every access) - unsigned long m = timer0_millis; - unsigned char f = timer0_fract; - - m += MILLIS_INC; - f += FRACT_INC; - if (f >= FRACT_MAX) { - f -= FRACT_MAX; - m += 1; - } - - timer0_fract = f; - timer0_millis = m; - timer0_overflow_count++; -} - -unsigned long millis() -{ - unsigned long m; - uint8_t oldSREG = SREG; - - // disable interrupts while we read timer0_millis or we might get an - // inconsistent value (e.g. in the middle of a write to timer0_millis) - cli(); - m = timer0_millis; - SREG = oldSREG; - - return m; -} - -unsigned long micros() { - unsigned long m; - uint8_t oldSREG = SREG, t; - - cli(); - m = timer0_overflow_count; -#if defined(TCNT0) - t = TCNT0; -#elif defined(TCNT0L) - t = TCNT0L; -#else - #error TIMER 0 not defined -#endif - - -#ifdef TIFR0 - if ((TIFR0 & _BV(TOV0)) && (t < 255)) - m++; -#else - if ((TIFR & _BV(TOV0)) && (t < 255)) - m++; -#endif - - SREG = oldSREG; - - return ((m << 8) + t) * (64 / clockCyclesPerMicrosecond()); -} - -void delay(unsigned long ms) -{ - uint16_t start = (uint16_t)micros(); - - while (ms > 0) { - if (((uint16_t)micros() - start) >= 1000) { - ms--; - start += 1000; - } - } -} - -/* Delay for the given number of microseconds. Assumes a 8 or 16 MHz clock. */ -void delayMicroseconds(unsigned int us) -{ - // calling avrlib's delay_us() function with low values (e.g. 1 or - // 2 microseconds) gives delays longer than desired. - //delay_us(us); -#if F_CPU >= 20000000L - // for the 20 MHz clock on rare Arduino boards - - // for a one-microsecond delay, simply wait 2 cycle and return. The overhead - // of the function call yields a delay of exactly a one microsecond. - __asm__ __volatile__ ( - "nop" "\n\t" - "nop"); //just waiting 2 cycle - if (--us == 0) - return; - - // the following loop takes a 1/5 of a microsecond (4 cycles) - // per iteration, so execute it five times for each microsecond of - // delay requested. - us = (us<<2) + us; // x5 us - - // account for the time taken in the preceeding commands. - us -= 2; - -#elif F_CPU >= 16000000L - // for the 16 MHz clock on most Arduino boards - - // for a one-microsecond delay, simply return. the overhead - // of the function call yields a delay of approximately 1 1/8 us. - if (--us == 0) - return; - - // the following loop takes a quarter of a microsecond (4 cycles) - // per iteration, so execute it four times for each microsecond of - // delay requested. - us <<= 2; - - // account for the time taken in the preceeding commands. - us -= 2; -#else - // for the 8 MHz internal clock on the ATmega168 - - // for a one- or two-microsecond delay, simply return. the overhead of - // the function calls takes more than two microseconds. can't just - // subtract two, since us is unsigned; we'd overflow. - if (--us == 0) - return; - if (--us == 0) - return; - - // the following loop takes half of a microsecond (4 cycles) - // per iteration, so execute it twice for each microsecond of - // delay requested. - us <<= 1; - - // partially compensate for the time taken by the preceeding commands. - // we can't subtract any more than this or we'd overflow w/ small delays. - us--; -#endif - - // busy wait - __asm__ __volatile__ ( - "1: sbiw %0,1" "\n\t" // 2 cycles - "brne 1b" : "=w" (us) : "0" (us) // 2 cycles - ); -} - -void init() -{ - // this needs to be called before setup() or some functions won't - // work there - sei(); - - // on the ATmega168, timer 0 is also used for fast hardware pwm - // (using phase-correct PWM would mean that timer 0 overflowed half as often - // resulting in different millis() behavior on the ATmega8 and ATmega168) -#if defined(TCCR0A) && defined(WGM01) - sbi(TCCR0A, WGM01); - sbi(TCCR0A, WGM00); -#endif - - // set timer 0 prescale factor to 64 -#if defined(__AVR_ATmega128__) - // CPU specific: different values for the ATmega128 - sbi(TCCR0, CS02); -#elif defined(TCCR0) && defined(CS01) && defined(CS00) - // this combination is for the standard atmega8 - sbi(TCCR0, CS01); - sbi(TCCR0, CS00); -#elif defined(TCCR0B) && defined(CS01) && defined(CS00) - // this combination is for the standard 168/328/1280/2560 - sbi(TCCR0B, CS01); - sbi(TCCR0B, CS00); -#elif defined(TCCR0A) && defined(CS01) && defined(CS00) - // this combination is for the __AVR_ATmega645__ series - sbi(TCCR0A, CS01); - sbi(TCCR0A, CS00); -#else - #error Timer 0 prescale factor 64 not set correctly -#endif - - // enable timer 0 overflow interrupt -#if defined(TIMSK) && defined(TOIE0) - sbi(TIMSK, TOIE0); -#elif defined(TIMSK0) && defined(TOIE0) - sbi(TIMSK0, TOIE0); -#else - #error Timer 0 overflow interrupt not set correctly -#endif - - // timers 1 and 2 are used for phase-correct hardware pwm - // this is better for motors as it ensures an even waveform - // note, however, that fast pwm mode can achieve a frequency of up - // 8 MHz (with a 16 MHz clock) at 50% duty cycle - -#if defined(TCCR1B) && defined(CS11) && defined(CS10) - TCCR1B = 0; - - // set timer 1 prescale factor to 64 - sbi(TCCR1B, CS11); -#if F_CPU >= 8000000L - sbi(TCCR1B, CS10); -#endif -#elif defined(TCCR1) && defined(CS11) && defined(CS10) - sbi(TCCR1, CS11); -#if F_CPU >= 8000000L - sbi(TCCR1, CS10); -#endif -#endif - // put timer 1 in 8-bit phase correct pwm mode -#if defined(TCCR1A) && defined(WGM10) - sbi(TCCR1A, WGM10); -#elif defined(TCCR1) - #warning this needs to be finished -#endif - - // set timer 2 prescale factor to 64 -#if defined(TCCR2) && defined(CS22) - sbi(TCCR2, CS22); -#elif defined(TCCR2B) && defined(CS22) - sbi(TCCR2B, CS22); -#else - #warning Timer 2 not finished (may not be present on this CPU) -#endif - - // configure timer 2 for phase correct pwm (8-bit) -#if defined(TCCR2) && defined(WGM20) - sbi(TCCR2, WGM20); -#elif defined(TCCR2A) && defined(WGM20) - sbi(TCCR2A, WGM20); -#else - #warning Timer 2 not finished (may not be present on this CPU) -#endif - -#if defined(TCCR3B) && defined(CS31) && defined(WGM30) - sbi(TCCR3B, CS31); // set timer 3 prescale factor to 64 - sbi(TCCR3B, CS30); - sbi(TCCR3A, WGM30); // put timer 3 in 8-bit phase correct pwm mode -#endif - -#if defined(TCCR4A) && defined(TCCR4B) && defined(TCCR4D) /* beginning of timer4 block for 32U4 and similar */ - sbi(TCCR4A, COM4A1); // clear channel A on output compare match - cbi(TCCR4A, COM4A0); - sbi(TCCR4C, COM4D1); // clear channel D on output compare match - cbi(TCCR4C, COM4D0); - sbi(TCCR4B, CS42); // set timer4 prescale factor to 64 - sbi(TCCR4B, CS41); - sbi(TCCR4B, CS40); - sbi(TCCR4D, WGM40); // put timer 4 in phase- and frequency-correct PWM mode - sbi(TCCR4A, PWM4A); // enable PWM mode for comparator OCR4A - sbi(TCCR4C, PWM4D); // enable PWM mode for comparator OCR4D -#else /* beginning of timer4 block for ATMEGA1280 and ATMEGA2560 */ -#if defined(TCCR4B) && defined(CS41) && defined(WGM40) - sbi(TCCR4B, CS41); // set timer 4 prescale factor to 64 - sbi(TCCR4B, CS40); - sbi(TCCR4A, WGM40); // put timer 4 in 8-bit phase correct pwm mode -#endif -#endif /* end timer4 block for ATMEGA1280/2560 and similar */ - -#if defined(TCCR5B) && defined(CS51) && defined(WGM50) - sbi(TCCR5B, CS51); // set timer 5 prescale factor to 64 - sbi(TCCR5B, CS50); - sbi(TCCR5A, WGM50); // put timer 5 in 8-bit phase correct pwm mode -#endif - -#if defined(ADCSRA) - // set a2d prescale factor to 128 - // 16 MHz / 128 = 125 KHz, inside the desired 50-200 KHz range. - // XXX: this will not work properly for other clock speeds, and - // this code should use F_CPU to determine the prescale factor. - sbi(ADCSRA, ADPS2); - sbi(ADCSRA, ADPS1); - sbi(ADCSRA, ADPS0); - - // enable a2d conversions - sbi(ADCSRA, ADEN); -#endif - - // the bootloader connects pins 0 and 1 to the USART; disconnect them - // here so they can be used as normal digital i/o; they will be - // reconnected in Serial.begin() -#if defined(UCSRB) - UCSRB = 0; -#elif defined(UCSR0B) - UCSR0B = 0; -#endif -} diff --git a/build/linux/work/hardware/arduino/cores/arduino/wiring_analog.c b/build/linux/work/hardware/arduino/cores/arduino/wiring_analog.c deleted file mode 100644 index 40a3363f8..000000000 --- a/build/linux/work/hardware/arduino/cores/arduino/wiring_analog.c +++ /dev/null @@ -1,276 +0,0 @@ -/* - wiring_analog.c - analog input and output - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2005-2006 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 - - Modified 28 September 2010 by Mark Sproul - - $Id: wiring.c 248 2007-02-03 15:36:30Z mellis $ -*/ - -#include "wiring_private.h" -#include "pins_arduino.h" - -uint8_t analog_reference = DEFAULT; - -void analogReference(uint8_t mode) -{ - // can't actually set the register here because the default setting - // will connect AVCC and the AREF pin, which would cause a short if - // there's something connected to AREF. - analog_reference = mode; -} - -int analogRead(uint8_t pin) -{ - uint8_t low, high; - -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) - if (pin >= 54) pin -= 54; // allow for channel or pin numbers -#elif defined(__AVR_ATmega32U4__) - if (pin >= 18) pin -= 18; // allow for channel or pin numbers -#elif defined(__AVR_ATmega1284__) - if (pin >= 24) pin -= 24; // allow for channel or pin numbers -#else - if (pin >= 14) pin -= 14; // allow for channel or pin numbers -#endif - -#if defined(__AVR_ATmega32U4__) - pin = analogPinToChannel(pin); - ADCSRB = (ADCSRB & ~(1 << MUX5)) | (((pin >> 3) & 0x01) << MUX5); -#elif defined(ADCSRB) && defined(MUX5) - // the MUX5 bit of ADCSRB selects whether we're reading from channels - // 0 to 7 (MUX5 low) or 8 to 15 (MUX5 high). - ADCSRB = (ADCSRB & ~(1 << MUX5)) | (((pin >> 3) & 0x01) << MUX5); -#endif - - // set the analog reference (high two bits of ADMUX) and select the - // channel (low 4 bits). this also sets ADLAR (left-adjust result) - // to 0 (the default). -#if defined(ADMUX) - ADMUX = (analog_reference << 6) | (pin & 0x07); -#endif - - // without a delay, we seem to read from the wrong channel - //delay(1); - -#if defined(ADCSRA) && defined(ADCL) - // start the conversion - sbi(ADCSRA, ADSC); - - // ADSC is cleared when the conversion finishes - while (bit_is_set(ADCSRA, ADSC)); - - // we have to read ADCL first; doing so locks both ADCL - // and ADCH until ADCH is read. reading ADCL second would - // cause the results of each conversion to be discarded, - // as ADCL and ADCH would be locked when it completed. - low = ADCL; - high = ADCH; -#else - // we dont have an ADC, return 0 - low = 0; - high = 0; -#endif - - // combine the two bytes - return (high << 8) | low; -} - -// Right now, PWM output only works on the pins with -// hardware support. These are defined in the appropriate -// pins_*.c file. For the rest of the pins, we default -// to digital output. -void analogWrite(uint8_t pin, int val) -{ - // We need to make sure the PWM output is enabled for those pins - // that support it, as we turn it off when digitally reading or - // writing with them. Also, make sure the pin is in output mode - // for consistenty with Wiring, which doesn't require a pinMode - // call for the analog output pins. - pinMode(pin, OUTPUT); - if (val == 0) - { - digitalWrite(pin, LOW); - } - else if (val == 255) - { - digitalWrite(pin, HIGH); - } - else - { - switch(digitalPinToTimer(pin)) - { - // XXX fix needed for atmega8 - #if defined(TCCR0) && defined(COM00) && !defined(__AVR_ATmega8__) - case TIMER0A: - // connect pwm to pin on timer 0 - sbi(TCCR0, COM00); - OCR0 = val; // set pwm duty - break; - #endif - - #if defined(TCCR0A) && defined(COM0A1) - case TIMER0A: - // connect pwm to pin on timer 0, channel A - sbi(TCCR0A, COM0A1); - OCR0A = val; // set pwm duty - break; - #endif - - #if defined(TCCR0A) && defined(COM0B1) - case TIMER0B: - // connect pwm to pin on timer 0, channel B - sbi(TCCR0A, COM0B1); - OCR0B = val; // set pwm duty - break; - #endif - - #if defined(TCCR1A) && defined(COM1A1) - case TIMER1A: - // connect pwm to pin on timer 1, channel A - sbi(TCCR1A, COM1A1); - OCR1A = val; // set pwm duty - break; - #endif - - #if defined(TCCR1A) && defined(COM1B1) - case TIMER1B: - // connect pwm to pin on timer 1, channel B - sbi(TCCR1A, COM1B1); - OCR1B = val; // set pwm duty - break; - #endif - - #if defined(TCCR2) && defined(COM21) - case TIMER2: - // connect pwm to pin on timer 2 - sbi(TCCR2, COM21); - OCR2 = val; // set pwm duty - break; - #endif - - #if defined(TCCR2A) && defined(COM2A1) - case TIMER2A: - // connect pwm to pin on timer 2, channel A - sbi(TCCR2A, COM2A1); - OCR2A = val; // set pwm duty - break; - #endif - - #if defined(TCCR2A) && defined(COM2B1) - case TIMER2B: - // connect pwm to pin on timer 2, channel B - sbi(TCCR2A, COM2B1); - OCR2B = val; // set pwm duty - break; - #endif - - #if defined(TCCR3A) && defined(COM3A1) - case TIMER3A: - // connect pwm to pin on timer 3, channel A - sbi(TCCR3A, COM3A1); - OCR3A = val; // set pwm duty - break; - #endif - - #if defined(TCCR3A) && defined(COM3B1) - case TIMER3B: - // connect pwm to pin on timer 3, channel B - sbi(TCCR3A, COM3B1); - OCR3B = val; // set pwm duty - break; - #endif - - #if defined(TCCR3A) && defined(COM3C1) - case TIMER3C: - // connect pwm to pin on timer 3, channel C - sbi(TCCR3A, COM3C1); - OCR3C = val; // set pwm duty - break; - #endif - - #if defined(TCCR4A) - case TIMER4A: - //connect pwm to pin on timer 4, channel A - sbi(TCCR4A, COM4A1); - OCR4A = val; // set pwm duty - break; - #endif - - #if defined(TCCR4A) && defined(COM4B1) - case TIMER4B: - // connect pwm to pin on timer 4, channel B - sbi(TCCR4A, COM4B1); - OCR4B = val; // set pwm duty - break; - #endif - - #if defined(TCCR4A) && defined(COM4C1) - case TIMER4C: - // connect pwm to pin on timer 4, channel C - sbi(TCCR4A, COM4C1); - OCR4C = val; // set pwm duty - break; - #endif - - #if defined(TCCR4C) - case TIMER4D: - // connect pwm to pin on timer 4, channel D - sbi(TCCR4C, COM4D1); - OCR4D = val; // set pwm duty - break; - #endif - - - #if defined(TCCR5A) && defined(COM5A1) - case TIMER5A: - // connect pwm to pin on timer 5, channel A - sbi(TCCR5A, COM5A1); - OCR5A = val; // set pwm duty - break; - #endif - - #if defined(TCCR5A) && defined(COM5B1) - case TIMER5B: - // connect pwm to pin on timer 5, channel B - sbi(TCCR5A, COM5B1); - OCR5B = val; // set pwm duty - break; - #endif - - #if defined(TCCR5A) && defined(COM5C1) - case TIMER5C: - // connect pwm to pin on timer 5, channel C - sbi(TCCR5A, COM5C1); - OCR5C = val; // set pwm duty - break; - #endif - - case NOT_ON_TIMER: - default: - if (val < 128) { - digitalWrite(pin, LOW); - } else { - digitalWrite(pin, HIGH); - } - } - } -} - diff --git a/build/linux/work/hardware/arduino/cores/arduino/wiring_digital.c b/build/linux/work/hardware/arduino/cores/arduino/wiring_digital.c deleted file mode 100644 index be323b1df..000000000 --- a/build/linux/work/hardware/arduino/cores/arduino/wiring_digital.c +++ /dev/null @@ -1,178 +0,0 @@ -/* - wiring_digital.c - digital input and output functions - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2005-2006 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 - - Modified 28 September 2010 by Mark Sproul - - $Id: wiring.c 248 2007-02-03 15:36:30Z mellis $ -*/ - -#define ARDUINO_MAIN -#include "wiring_private.h" -#include "pins_arduino.h" - -void pinMode(uint8_t pin, uint8_t mode) -{ - uint8_t bit = digitalPinToBitMask(pin); - uint8_t port = digitalPinToPort(pin); - volatile uint8_t *reg, *out; - - if (port == NOT_A_PIN) return; - - // JWS: can I let the optimizer do this? - reg = portModeRegister(port); - out = portOutputRegister(port); - - if (mode == INPUT) { - uint8_t oldSREG = SREG; - cli(); - *reg &= ~bit; - *out &= ~bit; - SREG = oldSREG; - } else if (mode == INPUT_PULLUP) { - uint8_t oldSREG = SREG; - cli(); - *reg &= ~bit; - *out |= bit; - SREG = oldSREG; - } else { - uint8_t oldSREG = SREG; - cli(); - *reg |= bit; - SREG = oldSREG; - } -} - -// Forcing this inline keeps the callers from having to push their own stuff -// on the stack. It is a good performance win and only takes 1 more byte per -// user than calling. (It will take more bytes on the 168.) -// -// But shouldn't this be moved into pinMode? Seems silly to check and do on -// each digitalread or write. -// -// Mark Sproul: -// - Removed inline. Save 170 bytes on atmega1280 -// - changed to a switch statment; added 32 bytes but much easier to read and maintain. -// - Added more #ifdefs, now compiles for atmega645 -// -//static inline void turnOffPWM(uint8_t timer) __attribute__ ((always_inline)); -//static inline void turnOffPWM(uint8_t timer) -static void turnOffPWM(uint8_t timer) -{ - switch (timer) - { - #if defined(TCCR1A) && defined(COM1A1) - case TIMER1A: cbi(TCCR1A, COM1A1); break; - #endif - #if defined(TCCR1A) && defined(COM1B1) - case TIMER1B: cbi(TCCR1A, COM1B1); break; - #endif - - #if defined(TCCR2) && defined(COM21) - case TIMER2: cbi(TCCR2, COM21); break; - #endif - - #if defined(TCCR0A) && defined(COM0A1) - case TIMER0A: cbi(TCCR0A, COM0A1); break; - #endif - - #if defined(TIMER0B) && defined(COM0B1) - case TIMER0B: cbi(TCCR0A, COM0B1); break; - #endif - #if defined(TCCR2A) && defined(COM2A1) - case TIMER2A: cbi(TCCR2A, COM2A1); break; - #endif - #if defined(TCCR2A) && defined(COM2B1) - case TIMER2B: cbi(TCCR2A, COM2B1); break; - #endif - - #if defined(TCCR3A) && defined(COM3A1) - case TIMER3A: cbi(TCCR3A, COM3A1); break; - #endif - #if defined(TCCR3A) && defined(COM3B1) - case TIMER3B: cbi(TCCR3A, COM3B1); break; - #endif - #if defined(TCCR3A) && defined(COM3C1) - case TIMER3C: cbi(TCCR3A, COM3C1); break; - #endif - - #if defined(TCCR4A) && defined(COM4A1) - case TIMER4A: cbi(TCCR4A, COM4A1); break; - #endif - #if defined(TCCR4A) && defined(COM4B1) - case TIMER4B: cbi(TCCR4A, COM4B1); break; - #endif - #if defined(TCCR4A) && defined(COM4C1) - case TIMER4C: cbi(TCCR4A, COM4C1); break; - #endif - #if defined(TCCR4C) && defined(COM4D1) - case TIMER4D: cbi(TCCR4C, COM4D1); break; - #endif - - #if defined(TCCR5A) - case TIMER5A: cbi(TCCR5A, COM5A1); break; - case TIMER5B: cbi(TCCR5A, COM5B1); break; - case TIMER5C: cbi(TCCR5A, COM5C1); break; - #endif - } -} - -void digitalWrite(uint8_t pin, uint8_t val) -{ - uint8_t timer = digitalPinToTimer(pin); - uint8_t bit = digitalPinToBitMask(pin); - uint8_t port = digitalPinToPort(pin); - volatile uint8_t *out; - - if (port == NOT_A_PIN) return; - - // If the pin that support PWM output, we need to turn it off - // before doing a digital write. - if (timer != NOT_ON_TIMER) turnOffPWM(timer); - - out = portOutputRegister(port); - - uint8_t oldSREG = SREG; - cli(); - - if (val == LOW) { - *out &= ~bit; - } else { - *out |= bit; - } - - SREG = oldSREG; -} - -int digitalRead(uint8_t pin) -{ - uint8_t timer = digitalPinToTimer(pin); - uint8_t bit = digitalPinToBitMask(pin); - uint8_t port = digitalPinToPort(pin); - - if (port == NOT_A_PIN) return LOW; - - // If the pin that support PWM output, we need to turn it off - // before getting a digital reading. - if (timer != NOT_ON_TIMER) turnOffPWM(timer); - - if (*portInputRegister(port) & bit) return HIGH; - return LOW; -} diff --git a/build/linux/work/hardware/arduino/cores/arduino/wiring_private.h b/build/linux/work/hardware/arduino/cores/arduino/wiring_private.h deleted file mode 100644 index f0ceb0cc4..000000000 --- a/build/linux/work/hardware/arduino/cores/arduino/wiring_private.h +++ /dev/null @@ -1,69 +0,0 @@ -/* - wiring_private.h - Internal header file. - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2005-2006 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 239 2007-01-12 17:58:39Z mellis $ -*/ - -#ifndef WiringPrivate_h -#define WiringPrivate_h - -#include -#include -#include -#include - -#include "Arduino.h" - -#ifdef __cplusplus -extern "C"{ -#endif - -#ifndef cbi -#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit)) -#endif -#ifndef sbi -#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit)) -#endif - -#define EXTERNAL_INT_0 0 -#define EXTERNAL_INT_1 1 -#define EXTERNAL_INT_2 2 -#define EXTERNAL_INT_3 3 -#define EXTERNAL_INT_4 4 -#define EXTERNAL_INT_5 5 -#define EXTERNAL_INT_6 6 -#define EXTERNAL_INT_7 7 - -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) -#define EXTERNAL_NUM_INTERRUPTS 8 -#elif defined(__AVR_ATmega1284P__) -#define EXTERNAL_NUM_INTERRUPTS 3 -#else -#define EXTERNAL_NUM_INTERRUPTS 2 -#endif - -typedef void (*voidFuncPtr)(void); - -#ifdef __cplusplus -} // extern "C" -#endif - -#endif diff --git a/build/linux/work/hardware/arduino/cores/arduino/wiring_pulse.c b/build/linux/work/hardware/arduino/cores/arduino/wiring_pulse.c deleted file mode 100644 index 0d968865d..000000000 --- a/build/linux/work/hardware/arduino/cores/arduino/wiring_pulse.c +++ /dev/null @@ -1,69 +0,0 @@ -/* - wiring_pulse.c - pulseIn() function - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2005-2006 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.c 248 2007-02-03 15:36:30Z mellis $ -*/ - -#include "wiring_private.h" -#include "pins_arduino.h" - -/* Measures the length (in microseconds) of a pulse on the pin; state is HIGH - * or LOW, the type of pulse to measure. Works on pulses from 2-3 microseconds - * to 3 minutes in length, but must be called at least a few dozen microseconds - * before the start of the pulse. */ -unsigned long pulseIn(uint8_t pin, uint8_t state, unsigned long timeout) -{ - // cache the port and bit of the pin in order to speed up the - // pulse width measuring loop and achieve finer resolution. calling - // digitalRead() instead yields much coarser resolution. - uint8_t bit = digitalPinToBitMask(pin); - uint8_t port = digitalPinToPort(pin); - uint8_t stateMask = (state ? bit : 0); - unsigned long width = 0; // keep initialization out of time critical area - - // convert the timeout from microseconds to a number of times through - // the initial loop; it takes 16 clock cycles per iteration. - unsigned long numloops = 0; - unsigned long maxloops = microsecondsToClockCycles(timeout) / 16; - - // wait for any previous pulse to end - while ((*portInputRegister(port) & bit) == stateMask) - if (numloops++ == maxloops) - return 0; - - // wait for the pulse to start - while ((*portInputRegister(port) & bit) != stateMask) - if (numloops++ == maxloops) - return 0; - - // wait for the pulse to stop - while ((*portInputRegister(port) & bit) == stateMask) { - if (numloops++ == maxloops) - return 0; - width++; - } - - // convert the reading to microseconds. The loop has been determined - // to be 20 clock cycles long and have about 16 clocks between the edge - // and the start of the loop. There will be some error introduced by - // the interrupt handlers. - return clockCyclesToMicroseconds(width * 21 + 16); -} diff --git a/build/linux/work/hardware/arduino/cores/arduino/wiring_shift.c b/build/linux/work/hardware/arduino/cores/arduino/wiring_shift.c deleted file mode 100644 index cfe786758..000000000 --- a/build/linux/work/hardware/arduino/cores/arduino/wiring_shift.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - wiring_shift.c - shiftOut() function - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2005-2006 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.c 248 2007-02-03 15:36:30Z mellis $ -*/ - -#include "wiring_private.h" - -uint8_t shiftIn(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder) { - uint8_t value = 0; - uint8_t i; - - for (i = 0; i < 8; ++i) { - digitalWrite(clockPin, HIGH); - if (bitOrder == LSBFIRST) - value |= digitalRead(dataPin) << i; - else - value |= digitalRead(dataPin) << (7 - i); - digitalWrite(clockPin, LOW); - } - return value; -} - -void shiftOut(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t val) -{ - uint8_t i; - - for (i = 0; i < 8; i++) { - if (bitOrder == LSBFIRST) - digitalWrite(dataPin, !!(val & (1 << i))); - else - digitalWrite(dataPin, !!(val & (1 << (7 - i)))); - - digitalWrite(clockPin, HIGH); - digitalWrite(clockPin, LOW); - } -} diff --git a/build/linux/work/hardware/arduino/firmwares/Arduino-COMBINED-dfu-usbserial-atmega16u2-Mega2560-Rev3.hex b/build/linux/work/hardware/arduino/firmwares/Arduino-COMBINED-dfu-usbserial-atmega16u2-Mega2560-Rev3.hex deleted file mode 100644 index 7720cf41b..000000000 --- a/build/linux/work/hardware/arduino/firmwares/Arduino-COMBINED-dfu-usbserial-atmega16u2-Mega2560-Rev3.hex +++ /dev/null @@ -1,467 +0,0 @@ -:1000000090C00000A9C00000A7C00000A5C000006B -:10001000A3C00000A1C000009FC000009DC0000060 -:100020009BC0000099C0000097C0000048C40000B9 -:100030000CC4000091C000008FC000008DC0000003 -:100040008BC0000089C0000087C0000085C0000090 -:1000500083C0000081C000007FC0000002C100001A -:100060007BC0000079C0000077C0000075C00000B0 -:1000700073C0000071C000006FC000006DC00000C0 -:100080006BC0000069C0000067C0000065C00000D0 -:1000900063C0000061C000001201100102000008EE -:1000A0004123420001000102DC0109023E0002017D -:1000B00000C0320904000001020201000524000111 -:1000C0001004240206052406000107058203080027 -:1000D000FF09040100020A000000070504024000B5 -:1000E00001070583024000010403090432034100B3 -:1000F00072006400750069006E006F002000280027 -:100100007700770077002E006100720064007500B0 -:1001100069006E006F002E0063006300290000007C -:10012000000011241FBECFEFD2E0DEBFCDBF11E033 -:10013000A0E0B1E0ECEAFFE002C005900D92A6312C -:10014000B107D9F712E0A6E1B1E001C01D92AF32CC -:10015000B107E1F7F1D028C753CF9C01DC01AE57BE -:10016000BF4FED91FC91119741911196FC93EE9345 -:1001700080589F4FE817F90711F42D933C939FB7D0 -:10018000F894F901EC57FF4F8081815080839FBF25 -:10019000842F0895DF92EF92FF920F931F93FC013B -:1001A0008489813019F0823021F405C040E3D42ED7 -:1001B00004C0DD2402C030E2D32E8389823011F4E2 -:1001C00088E0D82A8589873031F0883031F0863050 -:1001D00031F482E003C084E001C086E0D82A1092A6 -:1001E000C9001092C8001092CA00E784F088018903 -:1001F000128980E0E81681EEF80680E0080780E0CA -:10020000180719F420E130E00FC0C801B701969536 -:1002100087957795679560587B47814E9F4FA801DA -:100220009701A0D6215030403093CD002093CC00D0 -:10023000D092CA0080E0E81681EEF80680E0080758 -:1002400080E0180711F082E001C080E08093C800D0 -:1002500088E98093C9001F910F91FF90EF90DF9084 -:1002600008951F920F920FB60F9211242F938F9320 -:100270009F93EF93FF939091CE008EB38430F1F46F -:10028000E0919901F0919A019083E0919901F091A8 -:100290009A01CF01019690939A018093990189590F -:1002A000914021F489E191E0928381839FB7F89492 -:1002B00080919D018F5F80939D019FBFFF91EF9182 -:1002C0009F918F912F910F900FBE0F901F901895B7 -:1002D000FC01858580FF02C05F9808955F9A0895AC -:1002E00080E091E0D5C580E091E088C584B7877F44 -:1002F00084BF28E10FB6F89420936000109260004C -:100300000FBE87E690E09093CD008093CC0086E00E -:100310008093CA001092C8002093C900539A5A9A39 -:100320008AB180638AB98BB180638BB983D284E050 -:1003300085BD5F9A579A08950F931F93CF93DF93CC -:10034000D5DF2FB7F8948EE991E090931F02809348 -:100350001E0290932102809320022FBF2FB7F894A2 -:1003600089E191E090939A018093990190939C0187 -:1003700080939B012FBF7894CEE9D1E003E08FB743 -:10038000F894909122028FBF903809F180E091E0BB -:10039000ABD497FD1CC0E0911E02F0911F02808338 -:1003A000E0911E02F0911F02CF01019690931F026F -:1003B00080931E028E51924011F4D283C1839FB765 -:1003C000F894809122028F5F809322029FBF8FB7A3 -:1003D000F89410919D018FBFA89902C0113678F151 -:1003E000A89A80919D01882361F05D980093160181 -:1003F00008C089E191E0B1DE682F80E091E0DAD4B5 -:1004000011501123B1F780911601882351F080918A -:10041000160181508093160180911601882309F4FA -:100420005D9A80911701882351F0809117018150C6 -:100430008093170180911701882309F45C9A8FB784 -:10044000F894909122028FBF992369F08EE991E090 -:1004500084DE982F8091C80085FFFCCF9093CE005A -:100460005C980093170180E091E095D42AD487CF5F -:10047000DA01923049F0933061F09130F9F4E8E913 -:10048000F0E022E130E01EC0EAEAF0E02EE330E0E6 -:1004900019C0813049F0813018F0823079F408C0F9 -:1004A000E8EEF0E0849107C0ECEEF0E0849103C048 -:1004B000E0E2F1E08491282F30E004C0E0E0F0E0D9 -:1004C00020E030E0ED93FC93C901089528E030E08E -:1004D00040E003C04F5F220F331F28173907D0F3C6 -:1004E000842F8295807F08958093E9008091EB00AE -:1004F00081608093EB001092ED006093EC004093DC -:10050000ED008091EE00881F8827881F08951092C3 -:10051000F40090E09093E9001092F0001092E8004F -:100520001092ED008091EB008E7F8093EB009F5F37 -:10053000953081F708958091270288238CF403C0B9 -:100540008EB38823B1F08091E80082FFF9CF8091CB -:10055000E8008B778093E80008958EB3882349F0F4 -:100560008091E80080FFF9CF8091E8008E7780933A -:10057000E800089594E68091EC0080FF05C080912A -:10058000E80080FF05C023C08091E80082FD1FC005 -:100590008EB3882311F482E008958EB3853011F470 -:1005A00083E008958091EB0085FF02C081E008950B -:1005B0008091E10082FFDFCF8091E1008B7F80930B -:1005C000E100992311F484E008959150D4CF80E0A4 -:1005D00008959C0140912D0250912E024617570715 -:1005E00018F4F90120E038C06115710511F0AB0174 -:1005F000F8CF8091E8008E778093E80040E050E0EB -:10060000F0CF8091E80083FF02C081E008958091DF -:10061000E80082FD2DC08EB3882381F18EB3853032 -:1006200079F18091E80080FF17C09091F20006C038 -:1006300081918093F100415050409F5F41155105D9 -:1006400011F09830A8F320E0983009F421E080916F -:10065000E8008E778093E8004115510591F622233A -:1006600081F606C08EB3882349F08EB3853041F001 -:100670008091E80082FFF6CF80E0089582E008953F -:1006800083E008959C0140912D0250912E0246175F -:10069000570710F490E03BC06115710511F0AB01F4 -:1006A000F9CF8091E8008E778093E80040E050E039 -:1006B000F1CF8091E80083FF02C081E0089580912E -:1006C000E80082FD30C08EB3882399F18EB3853067 -:1006D00091F18091E80080FF1AC08091F20009C07A -:1006E000F9012F5F3F4FE491E093F10041505040FA -:1006F0008F5F4115510511F0883090F390E08830FC -:1007000009F491E08091E8008E778093E80041152C -:10071000510579F6992369F606C08EB3882349F00E -:100720008EB3853041F08091E80082FFF6CF80E003 -:10073000089582E0089583E008959C016115710594 -:1007400029F48091E8008B778093E800F90120C0BC -:100750008091E80083FF02C081E008958EB3882372 -:1007600039F18EB3853031F18091E80082FFF0CF0E -:1007700006C08091F10081936150704021F080911A -:10078000F2008823B1F78091E8008B778093E8002E -:1007900061157105E9F606C08EB3882349F08EB362 -:1007A000853041F08091E80080FFF6CF80E0089529 -:1007B00082E0089583E0089542D044D01EBA10929A -:1007C0002502109224021092230284E089BD89B58B -:1007D000826089BD09B400FEFDCF8091D800982FBA -:1007E0009F779093D80080688093D80080916300B1 -:1007F0008E7F809363008091D8008F7D8093D80096 -:100800008091E0008E7F8093E0008091E1008E7FF8 -:100810008093E1008091E20081608093E20080910A -:10082000E100877F8093E1008091E20088608093FF -:10083000E2000895C1DF81E08093260208951092BE -:10084000E20008951092E10008951F920F920FB6F2 -:100850000F9211241F932F933F934F935F936F93A6 -:100860007F938F939F93AF93BF93EF93FF93E9EEA3 -:10087000F0E0108117701082E0EFF0E08081877F58 -:1008800080837894C3D0F894A9EEB0E01C92E0EF96 -:10089000F0E08081886080831C93FF91EF91BF918D -:1008A000AF919F918F917F916F915F914F913F9108 -:1008B0002F911F910F900FBE0F901F9018951F92B0 -:1008C0000F920FB60F9211242F933F934F935F9384 -:1008D0006F937F938F939F93AF93BF93EF93FF9308 -:1008E0008091E10080FF1BC08091E20080FF17C073 -:1008F0008091E1008E7F8093E1008091E2008E7F05 -:100900008093E2008091E20080618093E200809118 -:10091000D80080628093D80019BC1EBAD1D18091D2 -:10092000E10084FF29C08091E20084FF25C084E0BB -:1009300089BD89B5826089BD09B400FEFDCF809173 -:10094000D8008F7D8093D8008091E1008F7E8093C6 -:10095000E1008091E2008F7E8093E2008091E200CE -:1009600081608093E20080912502882311F481E068 -:1009700001C084E08EBBA4D18091E10083FF27C039 -:100980008091E20083FF23C08091E100877F809304 -:10099000E10082E08EBB109225028091E1008E7F03 -:1009A0008093E1008091E2008E7F8093E20080914D -:1009B000E20080618093E200AADD80E060E042E036 -:1009C00093DD8091F00088608093F00079D1809170 -:1009D000E10082FF0AC08091E20082FF06C08091A0 -:1009E000E1008B7F8093E1006BD1FF91EF91BF918C -:1009F000AF919F918F917F916F915F914F913F91B7 -:100A00002F910F900FBE0F901F9018951F93DF939B -:100A1000CF93CDB7DEB7AC970FB6F894DEBF0FBE5D -:100A2000CDBFE7E2F2E08091F100819322E0EF3266 -:100A3000F207C9F78091270230912802353009F476 -:100A400087C0363040F43130C9F1313070F0333086 -:100A500009F01DC133C0383009F4EFC0393009F452 -:100A6000FEC0363009F013C192C0803821F08238C0 -:100A700009F00DC108C090912302809124028823BF -:100A800099F0926011C080912B0287708093E900E9 -:100A90008091EB0090E025E0969587952A95E1F707 -:100AA000982F91701092E9008091E800877F8093E1 -:100AB000E8009093F1001092F100CAC0882319F069 -:100AC000823009F0E4C090E08F719070009721F0BF -:100AD000029709F0DDC00CC080912902813009F035 -:100AE000D7C010922402333069F5809324022AC0C3 -:100AF00080912902882331F520912B02277009F477 -:100B0000C7C02093E9008091EB0080FFC1C0333063 -:100B100021F48091EB00806213C08091EB00806132 -:100B20008093EB0081E090E002C0880F991F2A9526 -:100B3000E2F78093EA001092EA008091EB0088606F -:100B40008093EB001092E9008091E800877F83C0DA -:100B5000882309F09CC0109129028091E800877FCA -:100B60008093E800E8DC04C08EB3882309F490C0C9 -:100B70008091E80080FFF8CF812F8F7711F492E009 -:100B800001C093E09EBB80688093E30081C08058E1 -:100B9000823008F07CC08091290290912A0223E0E3 -:100BA0008C3D920799F55FB7F894DE0115964EE0FB -:100BB00020E030E061E2E42FF0E0609357008491A0 -:100BC00020FF03C082958F704F5F982F9F70892FF1 -:100BD000805D8A3308F0895F8C9311961C9211977F -:100BE0002F5F3F4F12962431310529F75FBF8AE20C -:100BF0008B8383E08C838091E800877F8093E8007B -:100C0000CE0103966AE270E0E4DC11C060912B0231 -:100C1000AE014F5F5F4F2CDCBC010097C9F18091A2 -:100C2000E800877F8093E80089819A812BDD80919D -:100C3000E8008B778093E8002BC0803841F58091E5 -:100C4000E800877F8093E800809125028093F1007F -:100C50008091E8008E778093E8006DDC19C08823CE -:100C6000B1F490912902923098F48091E800877F46 -:100C70008093E800909325025EDC80912502882312 -:100C800011F483E001C084E08EBB2DDB01C028DBC2 -:100C90008091E80083FF0AC08091EB00806280931E -:100CA000EB008091E800877F8093E800AC960FB658 -:100CB000F894DEBF0FBECDBFCF91DF911F91089595 -:100CC00008951F938EB3882361F01091E90010926C -:100CD000E9008091E80083FF01C098DE177010934F -:100CE000E9001F9108950895FC018EB3843021F529 -:100CF00087859089A189B2890097A105B105E1F0A6 -:100D000085818093E9008091E80082FF15C0809181 -:100D1000F200882319F42FEF3FEF04C08091F10017 -:100D2000282F30E08091F200882341F48091E80080 -:100D30008B778093E80002C02FEF3FEFC901089541 -:100D4000FC018EB3843011F587859089A189B28921 -:100D50000097A105B105D1F081818093E9008091D0 -:100D6000F2008823A9F09091E8008091E8008E7746 -:100D70008093E80095FD0CC0FDDB982F882349F493 -:100D80008091E8008E778093E80003C092E001C074 -:100D900090E0892F0895FC018EB3843051F487854B -:100DA0009089A189B2890097A105B10511F0CF0101 -:100DB000C7CF08951F93FC01162F8EB38430D9F44A -:100DC00087859089A189B2890097A105B10599F01D -:100DD00081818093E9008091E80085FD08C08091C1 -:100DE000E8008E778093E800C5DB882329F4109310 -:100DF000F10080E001C082E01F9108950F931F93DE -:100E0000CF93DF93EC010D96FC0189E0DF011D9289 -:100E10008A95E9F72A813B8109818C81882311F425 -:100E200010E001C014E0C90151DB182B1260802FC3 -:100E300061E8412F59DB882329F12E813F810D8103 -:100E40008885882311F410E001C014E0C9013EDB5D -:100E5000182B1260802F60E8412F46DB882391F029 -:100E60002A853B8509858C85882311F410E001C013 -:100E700014E0C9012BDB182B1260802F61EC412F8D -:100E800033DB01C080E0DF91CF911F910F91089576 -:100E9000CF93DF93EC018091E80083FF60C08881ED -:100EA00090E020912B0230912C022817390709F08D -:100EB00056C080912802813261F0823220F4803263 -:100EC00009F04DC019C0823269F1833209F047C080 -:100ED00038C080912702813A09F041C08091E80032 -:100EE000877F8093E800CE010F9667E070E071DBAA -:100EF0008091E8008B7713C080912702813279F5C9 -:100F00008091E800877F8093E800CE010F9667E02C -:100F100070E013DCCE013ED98091E8008E7780939B -:100F2000E8001DC0809127028132C9F48091E80059 -:100F3000877F8093E800809129028D87CE01C8D9F0 -:100F40000DC080912702813251F48091E800877FA3 -:100F50008093E800CE0160912902C5DEECDADF91D2 -:100F6000CF910895A1E21A2EAA1BBB1BFD010DC053 -:100F7000AA1FBB1FEE1FFF1FA217B307E407F50749 -:100F800020F0A21BB30BE40BF50B661F771F881F25 -:100F9000991F1A9469F760957095809590959B01BB -:0C0FA000AC01BD01CF010895F894FFCF13 -:100FAC0000034000000440000002080000000000A4 -:060FBC000000000000002F -:103000004BC0000064C0000062C0000060C000004F -:103010005EC000005CC000005AC0000058C0000044 -:1030200056C0000054C0000052C00000EEC40000B2 -:103030004EC000004CC000004AC0000048C0000064 -:1030400046C0000044C0000042C0000040C0000074 -:103050003EC000003CC000003AC0000038C0000084 -:1030600036C0000034C0000032C0000030C0000094 -:103070002EC000002CC000002AC0000028C00000A4 -:1030800026C0000024C0000022C0000020C00000B4 -:103090001EC000001CC0000011241FBECFEFD2E0F4 -:1030A000DEBFCDBF11E0A0E0B1E0EAEFFCE302C07B -:1030B00005900D92AA33B107D9F711E0AAE3B1E068 -:1030C00001C01D92AB35B107E1F772D314C698CF9A -:1030D000982F15C08091F200882371F48091E80048 -:1030E0008B7F8093E80003C08EB3882351F08091DA -:1030F000E80082FFF9CF02C08091F100915099233E -:1031000049F7089520914A01309149018091480181 -:103110009091470180933F0190934001C9018093B2 -:103120004101909342010895DF93CF9300D000D0E6 -:1031300000D0CDB7DEB780914501843009F45AC084 -:10314000853030F4813059F0833009F0D7C01FC08A -:10315000853009F4A0C0863009F0D0C0C3C080918A -:103160004601823008F0CAC0CDDF80914601882335 -:1031700061F480913F019091400123E0FC01209394 -:103180005700E89507B600FCFDCF85E008C08091A8 -:103190004601882311F0823029F4B4DF89E080935E -:1031A0000101ACC0813009F0A9C020E030E040E06E -:1031B00050E0F90184918F3F81F0CA01AA27BB2713 -:1031C00080933E013093400120933F018AE0809339 -:1031D000010185E080933B0191C02F5F3F4F4F4F2E -:1031E0005F4F2030F0E33F07F0E04F07F0E05F076C -:1031F00001F784C080914601833051F581E08093CE -:103200003A0180914B0190914C01892B71F0809192 -:103210004701813009F072C080914A0190914901C3 -:1032200090933D0180933C0169C0809147018823C0 -:1032300061F42CE088E190E00FB6F894A8958093B3 -:1032400060000FBE2093600059C01092000156C06C -:10325000882309F053C0809147018F3F09F04EC089 -:10326000E0E0F0E093E085E090935700E89507B642 -:1032700000FCFDCF80935700E89507B600FCFDCF1A -:10328000E058FF4F20E3E030F20771F781E18093CF -:103290005700E89533C0DE011196E5E0F1E083E0E8 -:1032A00001900D928150E1F7DE011496E2E0F1E029 -:1032B00083E001900D928150E1F790914701809158 -:1032C0004601882329F4FE01E90FF11D818107C021 -:1032D0008130A1F4FE01BC97E90FF11D808180933C -:1032E00050010CC080914601833041F48091470128 -:1032F000882321F48091480180933E0126960FB6E1 -:10330000F894DEBF0FBECDBFCF91DF9108952F920D -:103310003F924F925F926F927F929F92AF92BF9235 -:10332000CF92DF92EF92FF920F931F93CF93DF9391 -:103330008091590190915A0190934C0180934B01D7 -:1033400080914D01882351F080914D0181508093EF -:103350004D0180914D01882309F45D9A80914E01C1 -:10336000882351F080914E01815080934E018091CD -:103370004E01882309F45C9A80915401833009F44A -:10338000B2C1843030F4813071F0823009F0E3C191 -:1033900011C1853009F4C5C1853008F4BAC1863041 -:1033A00009F0D9C1CDC15C9883E080934E01809132 -:1033B000E800877F8093E80080913A01882329F014 -:1033C000B3DE5D9A5C9A10923A0120914B013091E4 -:1033D0004C012115310529F42AC08EB3882309F444 -:1033E000BAC18091E80082FFF8CF8091F10080930C -:1033F00045012150304030934C0120934B01E6E4CD -:10340000F1E00CC08091F10081932150304081E0C7 -:10341000EB34F80719F43183208308C08091F2005F -:10342000882381F730934C0120934B017DDE8091FE -:103430000101853009F0BAC080914B0190914C0197 -:10344000892B21F482E080930101B0C08AE140DE43 -:1034500080913F018F713CDEC0914101D0914201CA -:1034600020913F013091400121968E01021B130BE8 -:10347000219780914601882309F093C01801369462 -:103480002794C901A0913E01B0E09C01AD0162E02A -:10349000E62EF12C012D112DE20EF31E041F151F37 -:1034A00059016A0190E099249394B5E0A3E048C0E3 -:1034B0008091F200882371F48091E8008B7F8093E3 -:1034C000E80004C08EB3882309F445C18091E80068 -:1034D00082FFF8CF0894210831088091F100682F0D -:1034E0008091F100782FF5010B0190925700E8953B -:1034F00011249F5F903419F021143104A1F4F901D3 -:10350000B0935700E89507B600FCFDCF21143104B5 -:1035100051F0F701A0935700E89507B600FCFDCFE6 -:10352000A801970190E042E0442E512C612C712CAF -:10353000E40CF51C061D171DA40CB51CC61CD71CDD -:103540002114310409F0B4CFD0934001C0933F015E -:1035500081E180935700E89527C08091F20088238D -:1035600071F48091E8008B7F8093E80004C08EB3F3 -:10357000882309F4F0C08091E80082FFF8CF6091C1 -:10358000F10080913F0190914001A7D380913F01CC -:103590009091400101969093400180933F0101502A -:1035A000104001151105C9F680E192DD8091E80017 -:1035B0008B7FC3C08091E800877F8093E8005D988F -:1035C00083E080934D0104C08EB3882309F4C3C007 -:1035D0008091E80080FFF8CF80910101893091F05F -:1035E0008A3069F480914601813049F480913F012D -:1035F000909140018093F1009093F1009BC08091E5 -:10360000500196C0609141017091420120913F01AB -:10361000309140016F5F7F4F7B01E21AF30A6150E6 -:10362000704080914601882389F58701169507959A -:10363000C901A0913E01B0E09C01AD011FC0809185 -:10364000F200803271F48091E8008E7F8093E80070 -:1036500004C08EB3882309F47EC08091E80080FF07 -:10366000F8CFF901859194918093F1009093F10046 -:10367000015010402E5F3F4F4F4F5F4F0115110516 -:10368000F1F67093400160933F0129C0823039F513 -:1036900023C08091F200803271F48091E8008E7F27 -:1036A0008093E80004C08EB3882309F454C080914D -:1036B000E80080FFF8CF00913F0110914001C80160 -:1036C00004D38093F1000F5F1F4F109340010093CC -:1036D0003F010894E108F108E114F104D1F682E019 -:1036E0008093010127C08091E800877F8093E800E4 -:1036F00080913B018093F1001092F1001092F10053 -:103700001092F100809101018093F1001092F1007C -:1037100011C08091E800877F8093E80010923B0100 -:1037200019C08091E800877F8093E80080910101B3 -:103730008093F1008091E8008E7F8093E8000AC0BA -:103740008091E800877F8093E8005D9A5C9A82E030 -:103750008093010187D0DF91CF911F910F91FF904E -:10376000EF90DF90CF90BF90AF909F907F906F9041 -:103770005F904F903F902F9008952BD181E085BFAF -:1037800015BE089584B7877F84BF88E10FB6F8948B -:1037900080936000109260000FBE81E085BF82E0E0 -:1037A00085BF8AB180638AB98BB180638BB90CC144 -:1037B000E9DF789401C080D2809100018823D9F795 -:1037C00080913A018823B9F7D8DFE0913C01F0916C -:1037D0003D010995FA01923071F0933089F09130F2 -:1037E00029F488E091E022E130E019C080E090E027 -:1037F00020E030E014C08AE191E02BE130E00FC01E -:10380000882339F480913501282F30E085E391E059 -:1038100006C080914301282F30E083E491E091833A -:103820008083C90108958091EB0081608093EB0053 -:103830001092ED006093EC004093ED008091EE005B -:10384000881F8827881F08951092F4001092F000B6 -:103850001092E8001092ED00EBEEF0E080818E7F98 -:10386000808308958091530188238CF403C08EB324 -:103870008823B1F08091E80082FFF9CF8091E800C1 -:103880008B7F8093E80008958EB3882349F0809160 -:10389000E80080FFF9CF8091E8008E7F8093E800F8 -:1038A00008959C014091590150915A0146175707BC -:1038B00018F4F90120E038C06115710511F0AB0171 -:1038C000F8CF8091E8008E7F8093E80040E050E0E0 -:1038D000F0CF8091E80083FF02C081E008958091DD -:1038E000E80082FD2DC08EB3882381F18EB3853030 -:1038F00079F18091E80080FF17C09091F20006C036 -:1039000081918093F100415050409F5F41155105D6 -:1039100011F09032A8F320E0903209F421E0809178 -:10392000E8008E7F8093E8004115510591F622232F -:1039300081F606C08EB3882349F08EB3853041F0FE -:103940008091E80082FFF6CF80E0089582E008953C -:1039500083E0089554D056D01EBA1092510184E0ED -:1039600089BD89B5826089BD09B400FEFDCF809113 -:10397000D800982F9F779093D80080688093D800C4 -:10398000809163008E7F809363008091D8008F7D4B -:103990008093D8008091E0008E7F8093E00080913A -:1039A000E1008E7F8093E1008091E200816080934E -:1039B000E2008091E100877F8093E1008091E20046 -:1039C00088608093E2000895C5DF81E08093520112 -:1039D0000895C0DFE0EEF0E0808181608083E8ED53 -:1039E000F0E080818F7780830AD00CD019BCE3E6A9 -:1039F000F0E08081816080831092520108951092DE -:103A0000E20008951092E10008951F920F920FB600 -:103A10000F9211242F933F934F935F936F937F9354 -:103A20008F939F93AF93BF93EF93FF938091E100A8 -:103A300080FF1BC08091E20080FF17C08091E100F1 -:103A40008E7F8093E1008091E2008E7F8093E20080 -:103A50008091E20080618093E2008091D8008062D2 -:103A60008093D80019BC1EBA26D18091E10084FF52 -:103A700029C08091E20084FF25C084E089BD89B51A -:103A8000826089BD09B400FEFDCF8091D8008F7D92 -:103A90008093D8008091E1008F7E8093E100809137 -:103AA000E2008F7E8093E2008091E200816080934B -:103AB000E20080915101882311F481E001C084E08B -:103AC0008EBBF9D08091E10083FF22C08091E2009B -:103AD00083FF1EC08091E100877F8093E10082E038 -:103AE0008EBB109251018091E1008E7F8093E100A6 -:103AF0008091E2008E7F8093E2008091E2008061FD -:103B00008093E200A1DE80E060E042E28CDED3D070 -:103B10008091E10082FF0AC08091E20082FF06C02E -:103B20008091E1008B7F8093E100C5D0FF91EF9100 -:103B3000BF91AF919F918F917F916F915F914F91C5 -:103B40003F912F910F900FBE0F901F9018951F93CC -:103B5000DF93CF9300D0CDB7DEB7E3E5F1E08091FE -:103B6000F100819381E0EB35F807C9F7909153019B -:103B700080915401853011F1863040F48130B9F0E4 -:103B8000813070F0833009F081C011C0883009F4B1 -:103B900053C0893009F462C0863009F077C02DC067 -:103BA000903809F474C0923809F070C070C099233D -:103BB00009F46DC0923009F069C069C0992309F019 -:103BC00065C0109155018091E800877F8093E800DF -:103BD00049DE04C08EB3882309F459C08091E800FF -:103BE00080FFF8CF812F8F7711F492E001C093E02E -:103BF0009EBB80688093E3004AC09058923008F0E2 -:103C000045C0809155019091560160915701AE01D8 -:103C10004F5F5F4FDFDDBC010097C9F18091E80085 -:103C2000877F8093E80089819A813BDE8091E8005C -:103C30008B7F8093E8002BC0903841F58091E8009D -:103C4000877F8093E800809151018093F1008091FB -:103C5000E8008E7F8093E80005DE19C09923B1F457 -:103C600090915501923098F48091E800877F80937D -:103C7000E80090935101F6DD80915101882311F401 -:103C800083E001C084E08EBB16D001C040DB809190 -:103C9000E80083FF0AC08091EB0080628093EB0014 -:103CA0008091E800877F8093E8000F900F90CF917C -:103CB000DF911F91089508958EB3882329F0809194 -:103CC000E80083FF01C043CF0895F999FECF92BD6C -:103CD00081BDF89A992780B50895262FF999FECFCE -:103CE0001FBA92BD81BD20BD0FB6F894FA9AF99A19 -:0A3CF0000FBE01960895F894FFCF6F -:103CFA0001021E948920DCFB120110010000002041 -:103D0A00EB03EF2F00000001000109021B00010173 -:103D1A000080320904000000FE01020009210300AC -:0A3D2A0000000C000104030904006E -:0400000300003000C9 -:00000001FF diff --git a/build/linux/work/hardware/arduino/firmwares/Arduino-COMBINED-dfu-usbserial-atmega16u2-MegaADK-Rev3.hex b/build/linux/work/hardware/arduino/firmwares/Arduino-COMBINED-dfu-usbserial-atmega16u2-MegaADK-Rev3.hex deleted file mode 100644 index b47bdf66c..000000000 --- a/build/linux/work/hardware/arduino/firmwares/Arduino-COMBINED-dfu-usbserial-atmega16u2-MegaADK-Rev3.hex +++ /dev/null @@ -1,467 +0,0 @@ -:1000000090C00000A9C00000A7C00000A5C000006B -:10001000A3C00000A1C000009FC000009DC0000060 -:100020009BC0000099C0000097C0000048C40000B9 -:100030000CC4000091C000008FC000008DC0000003 -:100040008BC0000089C0000087C0000085C0000090 -:1000500083C0000081C000007FC0000002C100001A -:100060007BC0000079C0000077C0000075C00000B0 -:1000700073C0000071C000006FC000006DC00000C0 -:100080006BC0000069C0000067C0000065C00000D0 -:1000900063C0000061C000001201100102000008EE -:1000A0004123440001000102DC0109023E0002017B -:1000B00000C0320904000001020201000524000111 -:1000C0001004240206052406000107058203080027 -:1000D000FF09040100020A000000070504024000B5 -:1000E00001070583024000010403090432034100B3 -:1000F00072006400750069006E006F002000280027 -:100100007700770077002E006100720064007500B0 -:1001100069006E006F002E0063006300290000007C -:10012000000011241FBECFEFD2E0DEBFCDBF11E033 -:10013000A0E0B1E0ECEAFFE002C005900D92A6312C -:10014000B107D9F712E0A6E1B1E001C01D92AF32CC -:10015000B107E1F7F1D028C753CF9C01DC01AE57BE -:10016000BF4FED91FC91119741911196FC93EE9345 -:1001700080589F4FE817F90711F42D933C939FB7D0 -:10018000F894F901EC57FF4F8081815080839FBF25 -:10019000842F0895DF92EF92FF920F931F93FC013B -:1001A0008489813019F0823021F405C040E3D42ED7 -:1001B00004C0DD2402C030E2D32E8389823011F4E2 -:1001C00088E0D82A8589873031F0883031F0863050 -:1001D00031F482E003C084E001C086E0D82A1092A6 -:1001E000C9001092C8001092CA00E784F088018903 -:1001F000128980E0E81681EEF80680E0080780E0CA -:10020000180719F420E130E00FC0C801B701969536 -:1002100087957795679560587B47814E9F4FA801DA -:100220009701A0D6215030403093CD002093CC00D0 -:10023000D092CA0080E0E81681EEF80680E0080758 -:1002400080E0180711F082E001C080E08093C800D0 -:1002500088E98093C9001F910F91FF90EF90DF9084 -:1002600008951F920F920FB60F9211242F938F9320 -:100270009F93EF93FF939091CE008EB38430F1F46F -:10028000E0919901F0919A019083E0919901F091A8 -:100290009A01CF01019690939A018093990189590F -:1002A000914021F489E191E0928381839FB7F89492 -:1002B00080919D018F5F80939D019FBFFF91EF9182 -:1002C0009F918F912F910F900FBE0F901F901895B7 -:1002D000FC01858580FF02C05F9808955F9A0895AC -:1002E00080E091E0D5C580E091E088C584B7877F44 -:1002F00084BF28E10FB6F89420936000109260004C -:100300000FBE87E690E09093CD008093CC0086E00E -:100310008093CA001092C8002093C900539A5A9A39 -:100320008AB180638AB98BB180638BB983D284E050 -:1003300085BD5F9A579A08950F931F93CF93DF93CC -:10034000D5DF2FB7F8948EE991E090931F02809348 -:100350001E0290932102809320022FBF2FB7F894A2 -:1003600089E191E090939A018093990190939C0187 -:1003700080939B012FBF7894CEE9D1E003E08FB743 -:10038000F894909122028FBF903809F180E091E0BB -:10039000ABD497FD1CC0E0911E02F0911F02808338 -:1003A000E0911E02F0911F02CF01019690931F026F -:1003B00080931E028E51924011F4D283C1839FB765 -:1003C000F894809122028F5F809322029FBF8FB7A3 -:1003D000F89410919D018FBFA89902C0113678F151 -:1003E000A89A80919D01882361F05D980093160181 -:1003F00008C089E191E0B1DE682F80E091E0DAD4B5 -:1004000011501123B1F780911601882351F080918A -:10041000160181508093160180911601882309F4FA -:100420005D9A80911701882351F0809117018150C6 -:100430008093170180911701882309F45C9A8FB784 -:10044000F894909122028FBF992369F08EE991E090 -:1004500084DE982F8091C80085FFFCCF9093CE005A -:100460005C980093170180E091E095D42AD487CF5F -:10047000DA01923049F0933061F09130F9F4E8E913 -:10048000F0E022E130E01EC0EAEAF0E02EE330E0E6 -:1004900019C0813049F0813018F0823079F408C0F9 -:1004A000E8EEF0E0849107C0ECEEF0E0849103C048 -:1004B000E0E2F1E08491282F30E004C0E0E0F0E0D9 -:1004C00020E030E0ED93FC93C901089528E030E08E -:1004D00040E003C04F5F220F331F28173907D0F3C6 -:1004E000842F8295807F08958093E9008091EB00AE -:1004F00081608093EB001092ED006093EC004093DC -:10050000ED008091EE00881F8827881F08951092C3 -:10051000F40090E09093E9001092F0001092E8004F -:100520001092ED008091EB008E7F8093EB009F5F37 -:10053000953081F708958091270288238CF403C0B9 -:100540008EB38823B1F08091E80082FFF9CF8091CB -:10055000E8008B778093E80008958EB3882349F0F4 -:100560008091E80080FFF9CF8091E8008E7780933A -:10057000E800089594E68091EC0080FF05C080912A -:10058000E80080FF05C023C08091E80082FD1FC005 -:100590008EB3882311F482E008958EB3853011F470 -:1005A00083E008958091EB0085FF02C081E008950B -:1005B0008091E10082FFDFCF8091E1008B7F80930B -:1005C000E100992311F484E008959150D4CF80E0A4 -:1005D00008959C0140912D0250912E024617570715 -:1005E00018F4F90120E038C06115710511F0AB0174 -:1005F000F8CF8091E8008E778093E80040E050E0EB -:10060000F0CF8091E80083FF02C081E008958091DF -:10061000E80082FD2DC08EB3882381F18EB3853032 -:1006200079F18091E80080FF17C09091F20006C038 -:1006300081918093F100415050409F5F41155105D9 -:1006400011F09830A8F320E0983009F421E080916F -:10065000E8008E778093E8004115510591F622233A -:1006600081F606C08EB3882349F08EB3853041F001 -:100670008091E80082FFF6CF80E0089582E008953F -:1006800083E008959C0140912D0250912E0246175F -:10069000570710F490E03BC06115710511F0AB01F4 -:1006A000F9CF8091E8008E778093E80040E050E039 -:1006B000F1CF8091E80083FF02C081E0089580912E -:1006C000E80082FD30C08EB3882399F18EB3853067 -:1006D00091F18091E80080FF1AC08091F20009C07A -:1006E000F9012F5F3F4FE491E093F10041505040FA -:1006F0008F5F4115510511F0883090F390E08830FC -:1007000009F491E08091E8008E778093E80041152C -:10071000510579F6992369F606C08EB3882349F00E -:100720008EB3853041F08091E80082FFF6CF80E003 -:10073000089582E0089583E008959C016115710594 -:1007400029F48091E8008B778093E800F90120C0BC -:100750008091E80083FF02C081E008958EB3882372 -:1007600039F18EB3853031F18091E80082FFF0CF0E -:1007700006C08091F10081936150704021F080911A -:10078000F2008823B1F78091E8008B778093E8002E -:1007900061157105E9F606C08EB3882349F08EB362 -:1007A000853041F08091E80080FFF6CF80E0089529 -:1007B00082E0089583E0089542D044D01EBA10929A -:1007C0002502109224021092230284E089BD89B58B -:1007D000826089BD09B400FEFDCF8091D800982FBA -:1007E0009F779093D80080688093D80080916300B1 -:1007F0008E7F809363008091D8008F7D8093D80096 -:100800008091E0008E7F8093E0008091E1008E7FF8 -:100810008093E1008091E20081608093E20080910A -:10082000E100877F8093E1008091E20088608093FF -:10083000E2000895C1DF81E08093260208951092BE -:10084000E20008951092E10008951F920F920FB6F2 -:100850000F9211241F932F933F934F935F936F93A6 -:100860007F938F939F93AF93BF93EF93FF93E9EEA3 -:10087000F0E0108117701082E0EFF0E08081877F58 -:1008800080837894C3D0F894A9EEB0E01C92E0EF96 -:10089000F0E08081886080831C93FF91EF91BF918D -:1008A000AF919F918F917F916F915F914F913F9108 -:1008B0002F911F910F900FBE0F901F9018951F92B0 -:1008C0000F920FB60F9211242F933F934F935F9384 -:1008D0006F937F938F939F93AF93BF93EF93FF9308 -:1008E0008091E10080FF1BC08091E20080FF17C073 -:1008F0008091E1008E7F8093E1008091E2008E7F05 -:100900008093E2008091E20080618093E200809118 -:10091000D80080628093D80019BC1EBAD1D18091D2 -:10092000E10084FF29C08091E20084FF25C084E0BB -:1009300089BD89B5826089BD09B400FEFDCF809173 -:10094000D8008F7D8093D8008091E1008F7E8093C6 -:10095000E1008091E2008F7E8093E2008091E200CE -:1009600081608093E20080912502882311F481E068 -:1009700001C084E08EBBA4D18091E10083FF27C039 -:100980008091E20083FF23C08091E100877F809304 -:10099000E10082E08EBB109225028091E1008E7F03 -:1009A0008093E1008091E2008E7F8093E20080914D -:1009B000E20080618093E200AADD80E060E042E036 -:1009C00093DD8091F00088608093F00079D1809170 -:1009D000E10082FF0AC08091E20082FF06C08091A0 -:1009E000E1008B7F8093E1006BD1FF91EF91BF918C -:1009F000AF919F918F917F916F915F914F913F91B7 -:100A00002F910F900FBE0F901F9018951F93DF939B -:100A1000CF93CDB7DEB7AC970FB6F894DEBF0FBE5D -:100A2000CDBFE7E2F2E08091F100819322E0EF3266 -:100A3000F207C9F78091270230912802353009F476 -:100A400087C0363040F43130C9F1313070F0333086 -:100A500009F01DC133C0383009F4EFC0393009F452 -:100A6000FEC0363009F013C192C0803821F08238C0 -:100A700009F00DC108C090912302809124028823BF -:100A800099F0926011C080912B0287708093E900E9 -:100A90008091EB0090E025E0969587952A95E1F707 -:100AA000982F91701092E9008091E800877F8093E1 -:100AB000E8009093F1001092F100CAC0882319F069 -:100AC000823009F0E4C090E08F719070009721F0BF -:100AD000029709F0DDC00CC080912902813009F035 -:100AE000D7C010922402333069F5809324022AC0C3 -:100AF00080912902882331F520912B02277009F477 -:100B0000C7C02093E9008091EB0080FFC1C0333063 -:100B100021F48091EB00806213C08091EB00806132 -:100B20008093EB0081E090E002C0880F991F2A9526 -:100B3000E2F78093EA001092EA008091EB0088606F -:100B40008093EB001092E9008091E800877F83C0DA -:100B5000882309F09CC0109129028091E800877FCA -:100B60008093E800E8DC04C08EB3882309F490C0C9 -:100B70008091E80080FFF8CF812F8F7711F492E009 -:100B800001C093E09EBB80688093E30081C08058E1 -:100B9000823008F07CC08091290290912A0223E0E3 -:100BA0008C3D920799F55FB7F894DE0115964EE0FB -:100BB00020E030E061E2E42FF0E0609357008491A0 -:100BC00020FF03C082958F704F5F982F9F70892FF1 -:100BD000805D8A3308F0895F8C9311961C9211977F -:100BE0002F5F3F4F12962431310529F75FBF8AE20C -:100BF0008B8383E08C838091E800877F8093E8007B -:100C0000CE0103966AE270E0E4DC11C060912B0231 -:100C1000AE014F5F5F4F2CDCBC010097C9F18091A2 -:100C2000E800877F8093E80089819A812BDD80919D -:100C3000E8008B778093E8002BC0803841F58091E5 -:100C4000E800877F8093E800809125028093F1007F -:100C50008091E8008E778093E8006DDC19C08823CE -:100C6000B1F490912902923098F48091E800877F46 -:100C70008093E800909325025EDC80912502882312 -:100C800011F483E001C084E08EBB2DDB01C028DBC2 -:100C90008091E80083FF0AC08091EB00806280931E -:100CA000EB008091E800877F8093E800AC960FB658 -:100CB000F894DEBF0FBECDBFCF91DF911F91089595 -:100CC00008951F938EB3882361F01091E90010926C -:100CD000E9008091E80083FF01C098DE177010934F -:100CE000E9001F9108950895FC018EB3843021F529 -:100CF00087859089A189B2890097A105B105E1F0A6 -:100D000085818093E9008091E80082FF15C0809181 -:100D1000F200882319F42FEF3FEF04C08091F10017 -:100D2000282F30E08091F200882341F48091E80080 -:100D30008B778093E80002C02FEF3FEFC901089541 -:100D4000FC018EB3843011F587859089A189B28921 -:100D50000097A105B105D1F081818093E9008091D0 -:100D6000F2008823A9F09091E8008091E8008E7746 -:100D70008093E80095FD0CC0FDDB982F882349F493 -:100D80008091E8008E778093E80003C092E001C074 -:100D900090E0892F0895FC018EB3843051F487854B -:100DA0009089A189B2890097A105B10511F0CF0101 -:100DB000C7CF08951F93FC01162F8EB38430D9F44A -:100DC00087859089A189B2890097A105B10599F01D -:100DD00081818093E9008091E80085FD08C08091C1 -:100DE000E8008E778093E800C5DB882329F4109310 -:100DF000F10080E001C082E01F9108950F931F93DE -:100E0000CF93DF93EC010D96FC0189E0DF011D9289 -:100E10008A95E9F72A813B8109818C81882311F425 -:100E200010E001C014E0C90151DB182B1260802FC3 -:100E300061E8412F59DB882329F12E813F810D8103 -:100E40008885882311F410E001C014E0C9013EDB5D -:100E5000182B1260802F60E8412F46DB882391F029 -:100E60002A853B8509858C85882311F410E001C013 -:100E700014E0C9012BDB182B1260802F61EC412F8D -:100E800033DB01C080E0DF91CF911F910F91089576 -:100E9000CF93DF93EC018091E80083FF60C08881ED -:100EA00090E020912B0230912C022817390709F08D -:100EB00056C080912802813261F0823220F4803263 -:100EC00009F04DC019C0823269F1833209F047C080 -:100ED00038C080912702813A09F041C08091E80032 -:100EE000877F8093E800CE010F9667E070E071DBAA -:100EF0008091E8008B7713C080912702813279F5C9 -:100F00008091E800877F8093E800CE010F9667E02C -:100F100070E013DCCE013ED98091E8008E7780939B -:100F2000E8001DC0809127028132C9F48091E80059 -:100F3000877F8093E800809129028D87CE01C8D9F0 -:100F40000DC080912702813251F48091E800877FA3 -:100F50008093E800CE0160912902C5DEECDADF91D2 -:100F6000CF910895A1E21A2EAA1BBB1BFD010DC053 -:100F7000AA1FBB1FEE1FFF1FA217B307E407F50749 -:100F800020F0A21BB30BE40BF50B661F771F881F25 -:100F9000991F1A9469F760957095809590959B01BB -:0C0FA000AC01BD01CF010895F894FFCF13 -:100FAC0000034000000440000002080000000000A4 -:060FBC000000000000002F -:103000004BC0000064C0000062C0000060C000004F -:103010005EC000005CC000005AC0000058C0000044 -:1030200056C0000054C0000052C00000EEC40000B2 -:103030004EC000004CC000004AC0000048C0000064 -:1030400046C0000044C0000042C0000040C0000074 -:103050003EC000003CC000003AC0000038C0000084 -:1030600036C0000034C0000032C0000030C0000094 -:103070002EC000002CC000002AC0000028C00000A4 -:1030800026C0000024C0000022C0000020C00000B4 -:103090001EC000001CC0000011241FBECFEFD2E0F4 -:1030A000DEBFCDBF11E0A0E0B1E0EAEFFCE302C07B -:1030B00005900D92AA33B107D9F711E0AAE3B1E068 -:1030C00001C01D92AB35B107E1F772D314C698CF9A -:1030D000982F15C08091F200882371F48091E80048 -:1030E0008B7F8093E80003C08EB3882351F08091DA -:1030F000E80082FFF9CF02C08091F100915099233E -:1031000049F7089520914A01309149018091480181 -:103110009091470180933F0190934001C9018093B2 -:103120004101909342010895DF93CF9300D000D0E6 -:1031300000D0CDB7DEB780914501843009F45AC084 -:10314000853030F4813059F0833009F0D7C01FC08A -:10315000853009F4A0C0863009F0D0C0C3C080918A -:103160004601823008F0CAC0CDDF80914601882335 -:1031700061F480913F019091400123E0FC01209394 -:103180005700E89507B600FCFDCF85E008C08091A8 -:103190004601882311F0823029F4B4DF89E080935E -:1031A0000101ACC0813009F0A9C020E030E040E06E -:1031B00050E0F90184918F3F81F0CA01AA27BB2713 -:1031C00080933E013093400120933F018AE0809339 -:1031D000010185E080933B0191C02F5F3F4F4F4F2E -:1031E0005F4F2030F0E33F07F0E04F07F0E05F076C -:1031F00001F784C080914601833051F581E08093CE -:103200003A0180914B0190914C01892B71F0809192 -:103210004701813009F072C080914A0190914901C3 -:1032200090933D0180933C0169C0809147018823C0 -:1032300061F42CE088E190E00FB6F894A8958093B3 -:1032400060000FBE2093600059C01092000156C06C -:10325000882309F053C0809147018F3F09F04EC089 -:10326000E0E0F0E093E085E090935700E89507B642 -:1032700000FCFDCF80935700E89507B600FCFDCF1A -:10328000E058FF4F20E3E030F20771F781E18093CF -:103290005700E89533C0DE011196E5E0F1E083E0E8 -:1032A00001900D928150E1F7DE011496E2E0F1E029 -:1032B00083E001900D928150E1F790914701809158 -:1032C0004601882329F4FE01E90FF11D818107C021 -:1032D0008130A1F4FE01BC97E90FF11D808180933C -:1032E00050010CC080914601833041F48091470128 -:1032F000882321F48091480180933E0126960FB6E1 -:10330000F894DEBF0FBECDBFCF91DF9108952F920D -:103310003F924F925F926F927F929F92AF92BF9235 -:10332000CF92DF92EF92FF920F931F93CF93DF9391 -:103330008091590190915A0190934C0180934B01D7 -:1033400080914D01882351F080914D0181508093EF -:103350004D0180914D01882309F45D9A80914E01C1 -:10336000882351F080914E01815080934E018091CD -:103370004E01882309F45C9A80915401833009F44A -:10338000B2C1843030F4813071F0823009F0E3C191 -:1033900011C1853009F4C5C1853008F4BAC1863041 -:1033A00009F0D9C1CDC15C9883E080934E01809132 -:1033B000E800877F8093E80080913A01882329F014 -:1033C000B3DE5D9A5C9A10923A0120914B013091E4 -:1033D0004C012115310529F42AC08EB3882309F444 -:1033E000BAC18091E80082FFF8CF8091F10080930C -:1033F00045012150304030934C0120934B01E6E4CD -:10340000F1E00CC08091F10081932150304081E0C7 -:10341000EB34F80719F43183208308C08091F2005F -:10342000882381F730934C0120934B017DDE8091FE -:103430000101853009F0BAC080914B0190914C0197 -:10344000892B21F482E080930101B0C08AE140DE43 -:1034500080913F018F713CDEC0914101D0914201CA -:1034600020913F013091400121968E01021B130BE8 -:10347000219780914601882309F093C01801369462 -:103480002794C901A0913E01B0E09C01AD0162E02A -:10349000E62EF12C012D112DE20EF31E041F151F37 -:1034A00059016A0190E099249394B5E0A3E048C0E3 -:1034B0008091F200882371F48091E8008B7F8093E3 -:1034C000E80004C08EB3882309F445C18091E80068 -:1034D00082FFF8CF0894210831088091F100682F0D -:1034E0008091F100782FF5010B0190925700E8953B -:1034F00011249F5F903419F021143104A1F4F901D3 -:10350000B0935700E89507B600FCFDCF21143104B5 -:1035100051F0F701A0935700E89507B600FCFDCFE6 -:10352000A801970190E042E0442E512C612C712CAF -:10353000E40CF51C061D171DA40CB51CC61CD71CDD -:103540002114310409F0B4CFD0934001C0933F015E -:1035500081E180935700E89527C08091F20088238D -:1035600071F48091E8008B7F8093E80004C08EB3F3 -:10357000882309F4F0C08091E80082FFF8CF6091C1 -:10358000F10080913F0190914001A7D380913F01CC -:103590009091400101969093400180933F0101502A -:1035A000104001151105C9F680E192DD8091E80017 -:1035B0008B7FC3C08091E800877F8093E8005D988F -:1035C00083E080934D0104C08EB3882309F4C3C007 -:1035D0008091E80080FFF8CF80910101893091F05F -:1035E0008A3069F480914601813049F480913F012D -:1035F000909140018093F1009093F1009BC08091E5 -:10360000500196C0609141017091420120913F01AB -:10361000309140016F5F7F4F7B01E21AF30A6150E6 -:10362000704080914601882389F58701169507959A -:10363000C901A0913E01B0E09C01AD011FC0809185 -:10364000F200803271F48091E8008E7F8093E80070 -:1036500004C08EB3882309F47EC08091E80080FF07 -:10366000F8CFF901859194918093F1009093F10046 -:10367000015010402E5F3F4F4F4F5F4F0115110516 -:10368000F1F67093400160933F0129C0823039F513 -:1036900023C08091F200803271F48091E8008E7F27 -:1036A0008093E80004C08EB3882309F454C080914D -:1036B000E80080FFF8CF00913F0110914001C80160 -:1036C00004D38093F1000F5F1F4F109340010093CC -:1036D0003F010894E108F108E114F104D1F682E019 -:1036E0008093010127C08091E800877F8093E800E4 -:1036F00080913B018093F1001092F1001092F10053 -:103700001092F100809101018093F1001092F1007C -:1037100011C08091E800877F8093E80010923B0100 -:1037200019C08091E800877F8093E80080910101B3 -:103730008093F1008091E8008E7F8093E8000AC0BA -:103740008091E800877F8093E8005D9A5C9A82E030 -:103750008093010187D0DF91CF911F910F91FF904E -:10376000EF90DF90CF90BF90AF909F907F906F9041 -:103770005F904F903F902F9008952BD181E085BFAF -:1037800015BE089584B7877F84BF88E10FB6F8948B -:1037900080936000109260000FBE81E085BF82E0E0 -:1037A00085BF8AB180638AB98BB180638BB90CC144 -:1037B000E9DF789401C080D2809100018823D9F795 -:1037C00080913A018823B9F7D8DFE0913C01F0916C -:1037D0003D010995FA01923071F0933089F09130F2 -:1037E00029F488E091E022E130E019C080E090E027 -:1037F00020E030E014C08AE191E02BE130E00FC01E -:10380000882339F480913501282F30E085E391E059 -:1038100006C080914301282F30E083E491E091833A -:103820008083C90108958091EB0081608093EB0053 -:103830001092ED006093EC004093ED008091EE005B -:10384000881F8827881F08951092F4001092F000B6 -:103850001092E8001092ED00EBEEF0E080818E7F98 -:10386000808308958091530188238CF403C08EB324 -:103870008823B1F08091E80082FFF9CF8091E800C1 -:103880008B7F8093E80008958EB3882349F0809160 -:10389000E80080FFF9CF8091E8008E7F8093E800F8 -:1038A00008959C014091590150915A0146175707BC -:1038B00018F4F90120E038C06115710511F0AB0171 -:1038C000F8CF8091E8008E7F8093E80040E050E0E0 -:1038D000F0CF8091E80083FF02C081E008958091DD -:1038E000E80082FD2DC08EB3882381F18EB3853030 -:1038F00079F18091E80080FF17C09091F20006C036 -:1039000081918093F100415050409F5F41155105D6 -:1039100011F09032A8F320E0903209F421E0809178 -:10392000E8008E7F8093E8004115510591F622232F -:1039300081F606C08EB3882349F08EB3853041F0FE -:103940008091E80082FFF6CF80E0089582E008953C -:1039500083E0089554D056D01EBA1092510184E0ED -:1039600089BD89B5826089BD09B400FEFDCF809113 -:10397000D800982F9F779093D80080688093D800C4 -:10398000809163008E7F809363008091D8008F7D4B -:103990008093D8008091E0008E7F8093E00080913A -:1039A000E1008E7F8093E1008091E200816080934E -:1039B000E2008091E100877F8093E1008091E20046 -:1039C00088608093E2000895C5DF81E08093520112 -:1039D0000895C0DFE0EEF0E0808181608083E8ED53 -:1039E000F0E080818F7780830AD00CD019BCE3E6A9 -:1039F000F0E08081816080831092520108951092DE -:103A0000E20008951092E10008951F920F920FB600 -:103A10000F9211242F933F934F935F936F937F9354 -:103A20008F939F93AF93BF93EF93FF938091E100A8 -:103A300080FF1BC08091E20080FF17C08091E100F1 -:103A40008E7F8093E1008091E2008E7F8093E20080 -:103A50008091E20080618093E2008091D8008062D2 -:103A60008093D80019BC1EBA26D18091E10084FF52 -:103A700029C08091E20084FF25C084E089BD89B51A -:103A8000826089BD09B400FEFDCF8091D8008F7D92 -:103A90008093D8008091E1008F7E8093E100809137 -:103AA000E2008F7E8093E2008091E200816080934B -:103AB000E20080915101882311F481E001C084E08B -:103AC0008EBBF9D08091E10083FF22C08091E2009B -:103AD00083FF1EC08091E100877F8093E10082E038 -:103AE0008EBB109251018091E1008E7F8093E100A6 -:103AF0008091E2008E7F8093E2008091E2008061FD -:103B00008093E200A1DE80E060E042E28CDED3D070 -:103B10008091E10082FF0AC08091E20082FF06C02E -:103B20008091E1008B7F8093E100C5D0FF91EF9100 -:103B3000BF91AF919F918F917F916F915F914F91C5 -:103B40003F912F910F900FBE0F901F9018951F93CC -:103B5000DF93CF9300D0CDB7DEB7E3E5F1E08091FE -:103B6000F100819381E0EB35F807C9F7909153019B -:103B700080915401853011F1863040F48130B9F0E4 -:103B8000813070F0833009F081C011C0883009F4B1 -:103B900053C0893009F462C0863009F077C02DC067 -:103BA000903809F474C0923809F070C070C099233D -:103BB00009F46DC0923009F069C069C0992309F019 -:103BC00065C0109155018091E800877F8093E800DF -:103BD00049DE04C08EB3882309F459C08091E800FF -:103BE00080FFF8CF812F8F7711F492E001C093E02E -:103BF0009EBB80688093E3004AC09058923008F0E2 -:103C000045C0809155019091560160915701AE01D8 -:103C10004F5F5F4FDFDDBC010097C9F18091E80085 -:103C2000877F8093E80089819A813BDE8091E8005C -:103C30008B7F8093E8002BC0903841F58091E8009D -:103C4000877F8093E800809151018093F1008091FB -:103C5000E8008E7F8093E80005DE19C09923B1F457 -:103C600090915501923098F48091E800877F80937D -:103C7000E80090935101F6DD80915101882311F401 -:103C800083E001C084E08EBB16D001C040DB809190 -:103C9000E80083FF0AC08091EB0080628093EB0014 -:103CA0008091E800877F8093E8000F900F90CF917C -:103CB000DF911F91089508958EB3882329F0809194 -:103CC000E80083FF01C043CF0895F999FECF92BD6C -:103CD00081BDF89A992780B50895262FF999FECFCE -:103CE0001FBA92BD81BD20BD0FB6F894FA9AF99A19 -:0A3CF0000FBE01960895F894FFCF6F -:103CFA0001021E948920DCFB120110010000002041 -:103D0A00EB03EF2F00000001000109021B00010173 -:103D1A000080320904000000FE01020009210300AC -:0A3D2A0000000C000104030904006E -:0400000300003000C9 -:00000001FF diff --git a/build/linux/work/hardware/arduino/firmwares/Arduino-COMBINED-dfu-usbserial-atmega16u2-Uno-Rev3.hex b/build/linux/work/hardware/arduino/firmwares/Arduino-COMBINED-dfu-usbserial-atmega16u2-Uno-Rev3.hex deleted file mode 100644 index c2c7b2d1b..000000000 --- a/build/linux/work/hardware/arduino/firmwares/Arduino-COMBINED-dfu-usbserial-atmega16u2-Uno-Rev3.hex +++ /dev/null @@ -1,467 +0,0 @@ -:1000000090C00000A9C00000A7C00000A5C000006B -:10001000A3C00000A1C000009FC000009DC0000060 -:100020009BC0000099C0000097C0000048C40000B9 -:100030000CC4000091C000008FC000008DC0000003 -:100040008BC0000089C0000087C0000085C0000090 -:1000500083C0000081C000007FC0000002C100001A -:100060007BC0000079C0000077C0000075C00000B0 -:1000700073C0000071C000006FC000006DC00000C0 -:100080006BC0000069C0000067C0000065C00000D0 -:1000900063C0000061C000001201100102000008EE -:1000A0004123430001000102DC0109023E0002017C -:1000B00000C0320904000001020201000524000111 -:1000C0001004240206052406000107058203080027 -:1000D000FF09040100020A000000070504024000B5 -:1000E00001070583024000010403090432034100B3 -:1000F00072006400750069006E006F002000280027 -:100100007700770077002E006100720064007500B0 -:1001100069006E006F002E0063006300290000007C -:10012000000011241FBECFEFD2E0DEBFCDBF11E033 -:10013000A0E0B1E0ECEAFFE002C005900D92A6312C -:10014000B107D9F712E0A6E1B1E001C01D92AF32CC -:10015000B107E1F7F1D028C753CF9C01DC01AE57BE -:10016000BF4FED91FC91119741911196FC93EE9345 -:1001700080589F4FE817F90711F42D933C939FB7D0 -:10018000F894F901EC57FF4F8081815080839FBF25 -:10019000842F0895DF92EF92FF920F931F93FC013B -:1001A0008489813019F0823021F405C040E3D42ED7 -:1001B00004C0DD2402C030E2D32E8389823011F4E2 -:1001C00088E0D82A8589873031F0883031F0863050 -:1001D00031F482E003C084E001C086E0D82A1092A6 -:1001E000C9001092C8001092CA00E784F088018903 -:1001F000128980E0E81681EEF80680E0080780E0CA -:10020000180719F420E130E00FC0C801B701969536 -:1002100087957795679560587B47814E9F4FA801DA -:100220009701A0D6215030403093CD002093CC00D0 -:10023000D092CA0080E0E81681EEF80680E0080758 -:1002400080E0180711F082E001C080E08093C800D0 -:1002500088E98093C9001F910F91FF90EF90DF9084 -:1002600008951F920F920FB60F9211242F938F9320 -:100270009F93EF93FF939091CE008EB38430F1F46F -:10028000E0919901F0919A019083E0919901F091A8 -:100290009A01CF01019690939A018093990189590F -:1002A000914021F489E191E0928381839FB7F89492 -:1002B00080919D018F5F80939D019FBFFF91EF9182 -:1002C0009F918F912F910F900FBE0F901F901895B7 -:1002D000FC01858580FF02C05F9808955F9A0895AC -:1002E00080E091E0D5C580E091E088C584B7877F44 -:1002F00084BF28E10FB6F89420936000109260004C -:100300000FBE87E690E09093CD008093CC0086E00E -:100310008093CA001092C8002093C900539A5A9A39 -:100320008AB180638AB98BB180638BB983D284E050 -:1003300085BD5F9A579A08950F931F93CF93DF93CC -:10034000D5DF2FB7F8948EE991E090931F02809348 -:100350001E0290932102809320022FBF2FB7F894A2 -:1003600089E191E090939A018093990190939C0187 -:1003700080939B012FBF7894CEE9D1E003E08FB743 -:10038000F894909122028FBF903809F180E091E0BB -:10039000ABD497FD1CC0E0911E02F0911F02808338 -:1003A000E0911E02F0911F02CF01019690931F026F -:1003B00080931E028E51924011F4D283C1839FB765 -:1003C000F894809122028F5F809322029FBF8FB7A3 -:1003D000F89410919D018FBFA89902C0113678F151 -:1003E000A89A80919D01882361F05D980093160181 -:1003F00008C089E191E0B1DE682F80E091E0DAD4B5 -:1004000011501123B1F780911601882351F080918A -:10041000160181508093160180911601882309F4FA -:100420005D9A80911701882351F0809117018150C6 -:100430008093170180911701882309F45C9A8FB784 -:10044000F894909122028FBF992369F08EE991E090 -:1004500084DE982F8091C80085FFFCCF9093CE005A -:100460005C980093170180E091E095D42AD487CF5F -:10047000DA01923049F0933061F09130F9F4E8E913 -:10048000F0E022E130E01EC0EAEAF0E02EE330E0E6 -:1004900019C0813049F0813018F0823079F408C0F9 -:1004A000E8EEF0E0849107C0ECEEF0E0849103C048 -:1004B000E0E2F1E08491282F30E004C0E0E0F0E0D9 -:1004C00020E030E0ED93FC93C901089528E030E08E -:1004D00040E003C04F5F220F331F28173907D0F3C6 -:1004E000842F8295807F08958093E9008091EB00AE -:1004F00081608093EB001092ED006093EC004093DC -:10050000ED008091EE00881F8827881F08951092C3 -:10051000F40090E09093E9001092F0001092E8004F -:100520001092ED008091EB008E7F8093EB009F5F37 -:10053000953081F708958091270288238CF403C0B9 -:100540008EB38823B1F08091E80082FFF9CF8091CB -:10055000E8008B778093E80008958EB3882349F0F4 -:100560008091E80080FFF9CF8091E8008E7780933A -:10057000E800089594E68091EC0080FF05C080912A -:10058000E80080FF05C023C08091E80082FD1FC005 -:100590008EB3882311F482E008958EB3853011F470 -:1005A00083E008958091EB0085FF02C081E008950B -:1005B0008091E10082FFDFCF8091E1008B7F80930B -:1005C000E100992311F484E008959150D4CF80E0A4 -:1005D00008959C0140912D0250912E024617570715 -:1005E00018F4F90120E038C06115710511F0AB0174 -:1005F000F8CF8091E8008E778093E80040E050E0EB -:10060000F0CF8091E80083FF02C081E008958091DF -:10061000E80082FD2DC08EB3882381F18EB3853032 -:1006200079F18091E80080FF17C09091F20006C038 -:1006300081918093F100415050409F5F41155105D9 -:1006400011F09830A8F320E0983009F421E080916F -:10065000E8008E778093E8004115510591F622233A -:1006600081F606C08EB3882349F08EB3853041F001 -:100670008091E80082FFF6CF80E0089582E008953F -:1006800083E008959C0140912D0250912E0246175F -:10069000570710F490E03BC06115710511F0AB01F4 -:1006A000F9CF8091E8008E778093E80040E050E039 -:1006B000F1CF8091E80083FF02C081E0089580912E -:1006C000E80082FD30C08EB3882399F18EB3853067 -:1006D00091F18091E80080FF1AC08091F20009C07A -:1006E000F9012F5F3F4FE491E093F10041505040FA -:1006F0008F5F4115510511F0883090F390E08830FC -:1007000009F491E08091E8008E778093E80041152C -:10071000510579F6992369F606C08EB3882349F00E -:100720008EB3853041F08091E80082FFF6CF80E003 -:10073000089582E0089583E008959C016115710594 -:1007400029F48091E8008B778093E800F90120C0BC -:100750008091E80083FF02C081E008958EB3882372 -:1007600039F18EB3853031F18091E80082FFF0CF0E -:1007700006C08091F10081936150704021F080911A -:10078000F2008823B1F78091E8008B778093E8002E -:1007900061157105E9F606C08EB3882349F08EB362 -:1007A000853041F08091E80080FFF6CF80E0089529 -:1007B00082E0089583E0089542D044D01EBA10929A -:1007C0002502109224021092230284E089BD89B58B -:1007D000826089BD09B400FEFDCF8091D800982FBA -:1007E0009F779093D80080688093D80080916300B1 -:1007F0008E7F809363008091D8008F7D8093D80096 -:100800008091E0008E7F8093E0008091E1008E7FF8 -:100810008093E1008091E20081608093E20080910A -:10082000E100877F8093E1008091E20088608093FF -:10083000E2000895C1DF81E08093260208951092BE -:10084000E20008951092E10008951F920F920FB6F2 -:100850000F9211241F932F933F934F935F936F93A6 -:100860007F938F939F93AF93BF93EF93FF93E9EEA3 -:10087000F0E0108117701082E0EFF0E08081877F58 -:1008800080837894C3D0F894A9EEB0E01C92E0EF96 -:10089000F0E08081886080831C93FF91EF91BF918D -:1008A000AF919F918F917F916F915F914F913F9108 -:1008B0002F911F910F900FBE0F901F9018951F92B0 -:1008C0000F920FB60F9211242F933F934F935F9384 -:1008D0006F937F938F939F93AF93BF93EF93FF9308 -:1008E0008091E10080FF1BC08091E20080FF17C073 -:1008F0008091E1008E7F8093E1008091E2008E7F05 -:100900008093E2008091E20080618093E200809118 -:10091000D80080628093D80019BC1EBAD1D18091D2 -:10092000E10084FF29C08091E20084FF25C084E0BB -:1009300089BD89B5826089BD09B400FEFDCF809173 -:10094000D8008F7D8093D8008091E1008F7E8093C6 -:10095000E1008091E2008F7E8093E2008091E200CE -:1009600081608093E20080912502882311F481E068 -:1009700001C084E08EBBA4D18091E10083FF27C039 -:100980008091E20083FF23C08091E100877F809304 -:10099000E10082E08EBB109225028091E1008E7F03 -:1009A0008093E1008091E2008E7F8093E20080914D -:1009B000E20080618093E200AADD80E060E042E036 -:1009C00093DD8091F00088608093F00079D1809170 -:1009D000E10082FF0AC08091E20082FF06C08091A0 -:1009E000E1008B7F8093E1006BD1FF91EF91BF918C -:1009F000AF919F918F917F916F915F914F913F91B7 -:100A00002F910F900FBE0F901F9018951F93DF939B -:100A1000CF93CDB7DEB7AC970FB6F894DEBF0FBE5D -:100A2000CDBFE7E2F2E08091F100819322E0EF3266 -:100A3000F207C9F78091270230912802353009F476 -:100A400087C0363040F43130C9F1313070F0333086 -:100A500009F01DC133C0383009F4EFC0393009F452 -:100A6000FEC0363009F013C192C0803821F08238C0 -:100A700009F00DC108C090912302809124028823BF -:100A800099F0926011C080912B0287708093E900E9 -:100A90008091EB0090E025E0969587952A95E1F707 -:100AA000982F91701092E9008091E800877F8093E1 -:100AB000E8009093F1001092F100CAC0882319F069 -:100AC000823009F0E4C090E08F719070009721F0BF -:100AD000029709F0DDC00CC080912902813009F035 -:100AE000D7C010922402333069F5809324022AC0C3 -:100AF00080912902882331F520912B02277009F477 -:100B0000C7C02093E9008091EB0080FFC1C0333063 -:100B100021F48091EB00806213C08091EB00806132 -:100B20008093EB0081E090E002C0880F991F2A9526 -:100B3000E2F78093EA001092EA008091EB0088606F -:100B40008093EB001092E9008091E800877F83C0DA -:100B5000882309F09CC0109129028091E800877FCA -:100B60008093E800E8DC04C08EB3882309F490C0C9 -:100B70008091E80080FFF8CF812F8F7711F492E009 -:100B800001C093E09EBB80688093E30081C08058E1 -:100B9000823008F07CC08091290290912A0223E0E3 -:100BA0008C3D920799F55FB7F894DE0115964EE0FB -:100BB00020E030E061E2E42FF0E0609357008491A0 -:100BC00020FF03C082958F704F5F982F9F70892FF1 -:100BD000805D8A3308F0895F8C9311961C9211977F -:100BE0002F5F3F4F12962431310529F75FBF8AE20C -:100BF0008B8383E08C838091E800877F8093E8007B -:100C0000CE0103966AE270E0E4DC11C060912B0231 -:100C1000AE014F5F5F4F2CDCBC010097C9F18091A2 -:100C2000E800877F8093E80089819A812BDD80919D -:100C3000E8008B778093E8002BC0803841F58091E5 -:100C4000E800877F8093E800809125028093F1007F -:100C50008091E8008E778093E8006DDC19C08823CE -:100C6000B1F490912902923098F48091E800877F46 -:100C70008093E800909325025EDC80912502882312 -:100C800011F483E001C084E08EBB2DDB01C028DBC2 -:100C90008091E80083FF0AC08091EB00806280931E -:100CA000EB008091E800877F8093E800AC960FB658 -:100CB000F894DEBF0FBECDBFCF91DF911F91089595 -:100CC00008951F938EB3882361F01091E90010926C -:100CD000E9008091E80083FF01C098DE177010934F -:100CE000E9001F9108950895FC018EB3843021F529 -:100CF00087859089A189B2890097A105B105E1F0A6 -:100D000085818093E9008091E80082FF15C0809181 -:100D1000F200882319F42FEF3FEF04C08091F10017 -:100D2000282F30E08091F200882341F48091E80080 -:100D30008B778093E80002C02FEF3FEFC901089541 -:100D4000FC018EB3843011F587859089A189B28921 -:100D50000097A105B105D1F081818093E9008091D0 -:100D6000F2008823A9F09091E8008091E8008E7746 -:100D70008093E80095FD0CC0FDDB982F882349F493 -:100D80008091E8008E778093E80003C092E001C074 -:100D900090E0892F0895FC018EB3843051F487854B -:100DA0009089A189B2890097A105B10511F0CF0101 -:100DB000C7CF08951F93FC01162F8EB38430D9F44A -:100DC00087859089A189B2890097A105B10599F01D -:100DD00081818093E9008091E80085FD08C08091C1 -:100DE000E8008E778093E800C5DB882329F4109310 -:100DF000F10080E001C082E01F9108950F931F93DE -:100E0000CF93DF93EC010D96FC0189E0DF011D9289 -:100E10008A95E9F72A813B8109818C81882311F425 -:100E200010E001C014E0C90151DB182B1260802FC3 -:100E300061E8412F59DB882329F12E813F810D8103 -:100E40008885882311F410E001C014E0C9013EDB5D -:100E5000182B1260802F60E8412F46DB882391F029 -:100E60002A853B8509858C85882311F410E001C013 -:100E700014E0C9012BDB182B1260802F61EC412F8D -:100E800033DB01C080E0DF91CF911F910F91089576 -:100E9000CF93DF93EC018091E80083FF60C08881ED -:100EA00090E020912B0230912C022817390709F08D -:100EB00056C080912802813261F0823220F4803263 -:100EC00009F04DC019C0823269F1833209F047C080 -:100ED00038C080912702813A09F041C08091E80032 -:100EE000877F8093E800CE010F9667E070E071DBAA -:100EF0008091E8008B7713C080912702813279F5C9 -:100F00008091E800877F8093E800CE010F9667E02C -:100F100070E013DCCE013ED98091E8008E7780939B -:100F2000E8001DC0809127028132C9F48091E80059 -:100F3000877F8093E800809129028D87CE01C8D9F0 -:100F40000DC080912702813251F48091E800877FA3 -:100F50008093E800CE0160912902C5DEECDADF91D2 -:100F6000CF910895A1E21A2EAA1BBB1BFD010DC053 -:100F7000AA1FBB1FEE1FFF1FA217B307E407F50749 -:100F800020F0A21BB30BE40BF50B661F771F881F25 -:100F9000991F1A9469F760957095809590959B01BB -:0C0FA000AC01BD01CF010895F894FFCF13 -:100FAC0000034000000440000002080000000000A4 -:060FBC000000000000002F -:103000004BC0000064C0000062C0000060C000004F -:103010005EC000005CC000005AC0000058C0000044 -:1030200056C0000054C0000052C00000EEC40000B2 -:103030004EC000004CC000004AC0000048C0000064 -:1030400046C0000044C0000042C0000040C0000074 -:103050003EC000003CC000003AC0000038C0000084 -:1030600036C0000034C0000032C0000030C0000094 -:103070002EC000002CC000002AC0000028C00000A4 -:1030800026C0000024C0000022C0000020C00000B4 -:103090001EC000001CC0000011241FBECFEFD2E0F4 -:1030A000DEBFCDBF11E0A0E0B1E0EAEFFCE302C07B -:1030B00005900D92AA33B107D9F711E0AAE3B1E068 -:1030C00001C01D92AB35B107E1F772D314C698CF9A -:1030D000982F15C08091F200882371F48091E80048 -:1030E0008B7F8093E80003C08EB3882351F08091DA -:1030F000E80082FFF9CF02C08091F100915099233E -:1031000049F7089520914A01309149018091480181 -:103110009091470180933F0190934001C9018093B2 -:103120004101909342010895DF93CF9300D000D0E6 -:1031300000D0CDB7DEB780914501843009F45AC084 -:10314000853030F4813059F0833009F0D7C01FC08A -:10315000853009F4A0C0863009F0D0C0C3C080918A -:103160004601823008F0CAC0CDDF80914601882335 -:1031700061F480913F019091400123E0FC01209394 -:103180005700E89507B600FCFDCF85E008C08091A8 -:103190004601882311F0823029F4B4DF89E080935E -:1031A0000101ACC0813009F0A9C020E030E040E06E -:1031B00050E0F90184918F3F81F0CA01AA27BB2713 -:1031C00080933E013093400120933F018AE0809339 -:1031D000010185E080933B0191C02F5F3F4F4F4F2E -:1031E0005F4F2030F0E33F07F0E04F07F0E05F076C -:1031F00001F784C080914601833051F581E08093CE -:103200003A0180914B0190914C01892B71F0809192 -:103210004701813009F072C080914A0190914901C3 -:1032200090933D0180933C0169C0809147018823C0 -:1032300061F42CE088E190E00FB6F894A8958093B3 -:1032400060000FBE2093600059C01092000156C06C -:10325000882309F053C0809147018F3F09F04EC089 -:10326000E0E0F0E093E085E090935700E89507B642 -:1032700000FCFDCF80935700E89507B600FCFDCF1A -:10328000E058FF4F20E3E030F20771F781E18093CF -:103290005700E89533C0DE011196E5E0F1E083E0E8 -:1032A00001900D928150E1F7DE011496E2E0F1E029 -:1032B00083E001900D928150E1F790914701809158 -:1032C0004601882329F4FE01E90FF11D818107C021 -:1032D0008130A1F4FE01BC97E90FF11D808180933C -:1032E00050010CC080914601833041F48091470128 -:1032F000882321F48091480180933E0126960FB6E1 -:10330000F894DEBF0FBECDBFCF91DF9108952F920D -:103310003F924F925F926F927F929F92AF92BF9235 -:10332000CF92DF92EF92FF920F931F93CF93DF9391 -:103330008091590190915A0190934C0180934B01D7 -:1033400080914D01882351F080914D0181508093EF -:103350004D0180914D01882309F45D9A80914E01C1 -:10336000882351F080914E01815080934E018091CD -:103370004E01882309F45C9A80915401833009F44A -:10338000B2C1843030F4813071F0823009F0E3C191 -:1033900011C1853009F4C5C1853008F4BAC1863041 -:1033A00009F0D9C1CDC15C9883E080934E01809132 -:1033B000E800877F8093E80080913A01882329F014 -:1033C000B3DE5D9A5C9A10923A0120914B013091E4 -:1033D0004C012115310529F42AC08EB3882309F444 -:1033E000BAC18091E80082FFF8CF8091F10080930C -:1033F00045012150304030934C0120934B01E6E4CD -:10340000F1E00CC08091F10081932150304081E0C7 -:10341000EB34F80719F43183208308C08091F2005F -:10342000882381F730934C0120934B017DDE8091FE -:103430000101853009F0BAC080914B0190914C0197 -:10344000892B21F482E080930101B0C08AE140DE43 -:1034500080913F018F713CDEC0914101D0914201CA -:1034600020913F013091400121968E01021B130BE8 -:10347000219780914601882309F093C01801369462 -:103480002794C901A0913E01B0E09C01AD0162E02A -:10349000E62EF12C012D112DE20EF31E041F151F37 -:1034A00059016A0190E099249394B5E0A3E048C0E3 -:1034B0008091F200882371F48091E8008B7F8093E3 -:1034C000E80004C08EB3882309F445C18091E80068 -:1034D00082FFF8CF0894210831088091F100682F0D -:1034E0008091F100782FF5010B0190925700E8953B -:1034F00011249F5F903419F021143104A1F4F901D3 -:10350000B0935700E89507B600FCFDCF21143104B5 -:1035100051F0F701A0935700E89507B600FCFDCFE6 -:10352000A801970190E042E0442E512C612C712CAF -:10353000E40CF51C061D171DA40CB51CC61CD71CDD -:103540002114310409F0B4CFD0934001C0933F015E -:1035500081E180935700E89527C08091F20088238D -:1035600071F48091E8008B7F8093E80004C08EB3F3 -:10357000882309F4F0C08091E80082FFF8CF6091C1 -:10358000F10080913F0190914001A7D380913F01CC -:103590009091400101969093400180933F0101502A -:1035A000104001151105C9F680E192DD8091E80017 -:1035B0008B7FC3C08091E800877F8093E8005D988F -:1035C00083E080934D0104C08EB3882309F4C3C007 -:1035D0008091E80080FFF8CF80910101893091F05F -:1035E0008A3069F480914601813049F480913F012D -:1035F000909140018093F1009093F1009BC08091E5 -:10360000500196C0609141017091420120913F01AB -:10361000309140016F5F7F4F7B01E21AF30A6150E6 -:10362000704080914601882389F58701169507959A -:10363000C901A0913E01B0E09C01AD011FC0809185 -:10364000F200803271F48091E8008E7F8093E80070 -:1036500004C08EB3882309F47EC08091E80080FF07 -:10366000F8CFF901859194918093F1009093F10046 -:10367000015010402E5F3F4F4F4F5F4F0115110516 -:10368000F1F67093400160933F0129C0823039F513 -:1036900023C08091F200803271F48091E8008E7F27 -:1036A0008093E80004C08EB3882309F454C080914D -:1036B000E80080FFF8CF00913F0110914001C80160 -:1036C00004D38093F1000F5F1F4F109340010093CC -:1036D0003F010894E108F108E114F104D1F682E019 -:1036E0008093010127C08091E800877F8093E800E4 -:1036F00080913B018093F1001092F1001092F10053 -:103700001092F100809101018093F1001092F1007C -:1037100011C08091E800877F8093E80010923B0100 -:1037200019C08091E800877F8093E80080910101B3 -:103730008093F1008091E8008E7F8093E8000AC0BA -:103740008091E800877F8093E8005D9A5C9A82E030 -:103750008093010187D0DF91CF911F910F91FF904E -:10376000EF90DF90CF90BF90AF909F907F906F9041 -:103770005F904F903F902F9008952BD181E085BFAF -:1037800015BE089584B7877F84BF88E10FB6F8948B -:1037900080936000109260000FBE81E085BF82E0E0 -:1037A00085BF8AB180638AB98BB180638BB90CC144 -:1037B000E9DF789401C080D2809100018823D9F795 -:1037C00080913A018823B9F7D8DFE0913C01F0916C -:1037D0003D010995FA01923071F0933089F09130F2 -:1037E00029F488E091E022E130E019C080E090E027 -:1037F00020E030E014C08AE191E02BE130E00FC01E -:10380000882339F480913501282F30E085E391E059 -:1038100006C080914301282F30E083E491E091833A -:103820008083C90108958091EB0081608093EB0053 -:103830001092ED006093EC004093ED008091EE005B -:10384000881F8827881F08951092F4001092F000B6 -:103850001092E8001092ED00EBEEF0E080818E7F98 -:10386000808308958091530188238CF403C08EB324 -:103870008823B1F08091E80082FFF9CF8091E800C1 -:103880008B7F8093E80008958EB3882349F0809160 -:10389000E80080FFF9CF8091E8008E7F8093E800F8 -:1038A00008959C014091590150915A0146175707BC -:1038B00018F4F90120E038C06115710511F0AB0171 -:1038C000F8CF8091E8008E7F8093E80040E050E0E0 -:1038D000F0CF8091E80083FF02C081E008958091DD -:1038E000E80082FD2DC08EB3882381F18EB3853030 -:1038F00079F18091E80080FF17C09091F20006C036 -:1039000081918093F100415050409F5F41155105D6 -:1039100011F09032A8F320E0903209F421E0809178 -:10392000E8008E7F8093E8004115510591F622232F -:1039300081F606C08EB3882349F08EB3853041F0FE -:103940008091E80082FFF6CF80E0089582E008953C -:1039500083E0089554D056D01EBA1092510184E0ED -:1039600089BD89B5826089BD09B400FEFDCF809113 -:10397000D800982F9F779093D80080688093D800C4 -:10398000809163008E7F809363008091D8008F7D4B -:103990008093D8008091E0008E7F8093E00080913A -:1039A000E1008E7F8093E1008091E200816080934E -:1039B000E2008091E100877F8093E1008091E20046 -:1039C00088608093E2000895C5DF81E08093520112 -:1039D0000895C0DFE0EEF0E0808181608083E8ED53 -:1039E000F0E080818F7780830AD00CD019BCE3E6A9 -:1039F000F0E08081816080831092520108951092DE -:103A0000E20008951092E10008951F920F920FB600 -:103A10000F9211242F933F934F935F936F937F9354 -:103A20008F939F93AF93BF93EF93FF938091E100A8 -:103A300080FF1BC08091E20080FF17C08091E100F1 -:103A40008E7F8093E1008091E2008E7F8093E20080 -:103A50008091E20080618093E2008091D8008062D2 -:103A60008093D80019BC1EBA26D18091E10084FF52 -:103A700029C08091E20084FF25C084E089BD89B51A -:103A8000826089BD09B400FEFDCF8091D8008F7D92 -:103A90008093D8008091E1008F7E8093E100809137 -:103AA000E2008F7E8093E2008091E200816080934B -:103AB000E20080915101882311F481E001C084E08B -:103AC0008EBBF9D08091E10083FF22C08091E2009B -:103AD00083FF1EC08091E100877F8093E10082E038 -:103AE0008EBB109251018091E1008E7F8093E100A6 -:103AF0008091E2008E7F8093E2008091E2008061FD -:103B00008093E200A1DE80E060E042E28CDED3D070 -:103B10008091E10082FF0AC08091E20082FF06C02E -:103B20008091E1008B7F8093E100C5D0FF91EF9100 -:103B3000BF91AF919F918F917F916F915F914F91C5 -:103B40003F912F910F900FBE0F901F9018951F93CC -:103B5000DF93CF9300D0CDB7DEB7E3E5F1E08091FE -:103B6000F100819381E0EB35F807C9F7909153019B -:103B700080915401853011F1863040F48130B9F0E4 -:103B8000813070F0833009F081C011C0883009F4B1 -:103B900053C0893009F462C0863009F077C02DC067 -:103BA000903809F474C0923809F070C070C099233D -:103BB00009F46DC0923009F069C069C0992309F019 -:103BC00065C0109155018091E800877F8093E800DF -:103BD00049DE04C08EB3882309F459C08091E800FF -:103BE00080FFF8CF812F8F7711F492E001C093E02E -:103BF0009EBB80688093E3004AC09058923008F0E2 -:103C000045C0809155019091560160915701AE01D8 -:103C10004F5F5F4FDFDDBC010097C9F18091E80085 -:103C2000877F8093E80089819A813BDE8091E8005C -:103C30008B7F8093E8002BC0903841F58091E8009D -:103C4000877F8093E800809151018093F1008091FB -:103C5000E8008E7F8093E80005DE19C09923B1F457 -:103C600090915501923098F48091E800877F80937D -:103C7000E80090935101F6DD80915101882311F401 -:103C800083E001C084E08EBB16D001C040DB809190 -:103C9000E80083FF0AC08091EB0080628093EB0014 -:103CA0008091E800877F8093E8000F900F90CF917C -:103CB000DF911F91089508958EB3882329F0809194 -:103CC000E80083FF01C043CF0895F999FECF92BD6C -:103CD00081BDF89A992780B50895262FF999FECFCE -:103CE0001FBA92BD81BD20BD0FB6F894FA9AF99A19 -:0A3CF0000FBE01960895F894FFCF6F -:103CFA0001021E948920DCFB120110010000002041 -:103D0A00EB03EF2F00000001000109021B00010173 -:103D1A000080320904000000FE01020009210300AC -:0A3D2A0000000C000104030904006E -:0400000300003000C9 -:00000001FF diff --git a/build/linux/work/hardware/arduino/firmwares/MEGA-dfu_and_usbserial_combined.hex b/build/linux/work/hardware/arduino/firmwares/MEGA-dfu_and_usbserial_combined.hex deleted file mode 100644 index e22196ca1..000000000 --- a/build/linux/work/hardware/arduino/firmwares/MEGA-dfu_and_usbserial_combined.hex +++ /dev/null @@ -1,234 +0,0 @@ -:20000000A2C00000BBC00000B9C00000B7C00000B5C00000B3C00000B1C00000AFC000004B -:20002000ADC00000ABC00000A9C000005AC400001EC40000A3C00000A1C000009FC000005C -:200040009DC000009BC0000099C0000097C0000095C0000093C0000091C0000014C100006A -:200060008DC000008BC0000089C0000087C0000085C0000083C0000081C000007FC0000050 -:200080007DC000007BC0000079C0000077C0000075C0000073C000001201100102000008E2 -:2000A0004123100001000102DC0109023E00020100C0320904000001020201000524000170 -:2000C00010042402060524060001070582030800FF09040100020A000000070504024000AC -:2000E0000107058302400001040309043203410072006400750069006E006F0020002800CA -:200100007700770077002E00610072006400750069006E006F002E0063006300290000003D -:200120002403410072006400750069006E006F0020004D00650067006100200032003500A5 -:2001400036003000000011241FBECFEFD2E0DEBFCDBF11E0A0E0B1E0E0EDFFE002C0059089 -:200160000D92A631B107D9F712E0A6E1B1E001C01D92AF32B107E1F7F1D028C741CF9C0139 -:20018000DC01AE57BF4FED91FC91119741911196FC93EE9380589F4FE817F90711F42D93A9 -:2001A0003C939FB7F894F901EC57FF4F8081815080839FBF842F0895DF92EF92FF920F935B -:2001C0001F93FC018489813019F0823021F405C040E3D42E04C0DD2402C030E2D32E838952 -:2001E000823011F488E0D82A8589873031F0883031F0863031F482E003C084E001C086E094 -:20020000D82A1092C9001092C8001092CA00E784F0880189128980E0E81681EEF80680E068 -:20022000080780E0180719F420E130E00FC0C801B701969587957795679560587B47814E2A -:200240009F4FA8019701A0D6215030403093CD002093CC00D092CA0080E0E81681EEF80612 -:2002600080E0080780E0180711F082E001C080E08093C80088E98093C9001F910F91FF9005 -:20028000EF90DF9008951F920F920FB60F9211242F938F939F93EF93FF939091CE008EB38C -:2002A0008430F1F4E0919901F0919A019083E0919901F0919A01CF01019690939A0180930C -:2002C00099018959914021F489E191E0928381839FB7F89480919D018F5F80939D019FBF3A -:2002E000FF91EF919F918F912F910F900FBE0F901F901895FC01858580FF02C05F9808959B -:200300005F9A089580E091E0D5C580E091E088C584B7877F84BF28E10FB6F89420936000CD -:20032000109260000FBE87E690E09093CD008093CC0086E08093CA001092C8002093C90019 -:20034000539A5A9A8AB180638AB98BB180638BB983D284E085BD5F9A579A08950F931F9322 -:20036000CF93DF93D5DF2FB7F8948EE991E090931F0280931E0290932102809320022FBFBB -:200380002FB7F89489E191E090939A018093990190939C0180939B012FBF7894CEE9D1E0D4 -:2003A00003E08FB7F894909122028FBF903809F180E091E0ABD497FD1CC0E0911E02F09161 -:2003C0001F028083E0911E02F0911F02CF01019690931F0280931E028E51924011F4D283DD -:2003E000C1839FB7F894809122028F5F809322029FBF8FB7F89410919D018FBFA89902C0BD -:20040000113678F1A89A80919D01882361F05D980093160108C089E191E0B1DE682F80E077 -:2004200091E0DAD411501123B1F780911601882351F0809116018150809316018091160101 -:20044000882309F45D9A80911701882351F08091170181508093170180911701882309F4F2 -:200460005C9A8FB7F894909122028FBF992369F08EE991E084DE982F8091C80085FFFCCFD3 -:200480009093CE005C980093170180E091E095D42AD487CFDA01923049F0933061F0913093 -:2004A000F9F4E8E9F0E022E130E01EC0EAEAF0E02EE330E019C0813049F0813018F08230CA -:2004C00079F408C0E8EEF0E0849107C0ECEEF0E0849103C0E0E2F1E08491282F30E004C010 -:2004E000E0E0F0E020E030E0ED93FC93C901089528E030E040E003C04F5F220F331F28177B -:200500003907D0F3842F8295807F08958093E9008091EB0081608093EB001092ED00609319 -:20052000EC004093ED008091EE00881F8827881F08951092F40090E09093E9001092F000D2 -:200540001092E8001092ED008091EB008E7F8093EB009F5F953081F70895809127028823BE -:200560008CF403C08EB38823B1F08091E80082FFF9CF8091E8008B778093E80008958EB395 -:20058000882349F08091E80080FFF9CF8091E8008E778093E800089594E68091EC0080FFAB -:2005A00005C08091E80080FF05C023C08091E80082FD1FC08EB3882311F482E008958EB3CE -:2005C000853011F483E008958091EB0085FF02C081E008958091E10082FFDFCF8091E1000E -:2005E0008B7F8093E100992311F484E008959150D4CF80E008959C0140912D0250912E020C -:200600004617570718F4F90120E038C06115710511F0AB01F8CF8091E8008E778093E800C8 -:2006200040E050E0F0CF8091E80083FF02C081E008958091E80082FD2DC08EB3882381F1AD -:200640008EB3853079F18091E80080FF17C09091F20006C081918093F100415050409F5FDD -:200660004115510511F09830A8F320E0983009F421E08091E8008E778093E80041155105FF -:2006800091F6222381F606C08EB3882349F08EB3853041F08091E80082FFF6CF80E00895C9 -:2006A00082E0089583E008959C0140912D0250912E024617570710F490E03BC06115710577 -:2006C00011F0AB01F9CF8091E8008E778093E80040E050E0F1CF8091E80083FF02C081E0FE -:2006E00008958091E80082FD30C08EB3882399F18EB3853091F18091E80080FF1AC08091A4 -:20070000F20009C0F9012F5F3F4FE491E093F100415050408F5F4115510511F0883090F338 -:2007200090E0883009F491E08091E8008E778093E8004115510579F6992369F606C08EB3ED -:20074000882349F08EB3853041F08091E80082FFF6CF80E0089582E0089583E008959C01B6 -:200760006115710529F48091E8008B778093E800F90120C08091E80083FF02C081E0089565 -:200780008EB3882339F18EB3853031F18091E80082FFF0CF06C08091F100819361507040B5 -:2007A00021F08091F2008823B1F78091E8008B778093E80061157105E9F606C08EB388235F -:2007C00049F08EB3853041F08091E80080FFF6CF80E0089582E0089583E0089542D044D05A -:2007E0001EBA10922502109224021092230284E089BD89B5826089BD09B400FEFDCF809121 -:20080000D800982F9F779093D80080688093D800809163008E7F809363008091D8008F7D69 -:200820008093D8008091E0008E7F8093E0008091E1008E7F8093E1008091E2008160809302 -:20084000E2008091E100877F8093E1008091E20088608093E2000895C1DF81E08093260221 -:2008600008951092E20008951092E10008951F920F920FB60F9211241F932F933F934F9385 -:200880005F936F937F938F939F93AF93BF93EF93FF93E9EEF0E0108117701082E0EFF0E066 -:2008A0008081877F80837894C3D0F894A9EEB0E01C92E0EFF0E08081886080831C93FF9164 -:2008C000EF91BF91AF919F918F917F916F915F914F913F912F911F910F900FBE0F901F90DE -:2008E00018951F920F920FB60F9211242F933F934F935F936F937F938F939F93AF93BF93FA -:20090000EF93FF938091E10080FF1BC08091E20080FF17C08091E1008E7F8093E10080912A -:20092000E2008E7F8093E2008091E20080618093E2008091D80080628093D80019BC1EBAA7 -:20094000D1D18091E10084FF29C08091E20084FF25C084E089BD89B5826089BD09B400FE71 -:20096000FDCF8091D8008F7D8093D8008091E1008F7E8093E1008091E2008F7E8093E200E3 -:200980008091E20081608093E20080912502882311F481E001C084E08EBBA4D18091E10070 -:2009A00083FF27C08091E20083FF23C08091E100877F8093E10082E08EBB10922502809105 -:2009C000E1008E7F8093E1008091E2008E7F8093E2008091E20080618093E200AADD80E090 -:2009E00060E042E093DD8091F00088608093F00079D18091E10082FF0AC08091E20082FF3E -:200A000006C08091E1008B7F8093E1006BD1FF91EF91BF91AF919F918F917F916F915F91F4 -:200A20004F913F912F910F900FBE0F901F9018951F93DF93CF93CDB7DEB7AC970FB6F894AC -:200A4000DEBF0FBECDBFE7E2F2E08091F100819322E0EF32F207C9F78091270230912802EE -:200A6000353009F487C0363040F43130C9F1313070F0333009F01DC133C0383009F4EFC016 -:200A8000393009F4FEC0363009F013C192C0803821F0823809F00DC108C090912302809144 -:200AA0002402882399F0926011C080912B0287708093E9008091EB0090E025E09695879530 -:200AC0002A95E1F7982F91701092E9008091E800877F8093E8009093F1001092F100CAC001 -:200AE000882319F0823009F0E4C090E08F719070009721F0029709F0DDC00CC080912902A4 -:200B0000813009F0D7C010922402333069F5809324022AC080912902882331F520912B02FD -:200B2000277009F4C7C02093E9008091EB0080FFC1C0333021F48091EB00806213C08091C8 -:200B4000EB0080618093EB0081E090E002C0880F991F2A95E2F78093EA001092EA008091B7 -:200B6000EB0088608093EB001092E9008091E800877F83C0882309F09CC0109129028091FA -:200B8000E800877F8093E800E8DC04C08EB3882309F490C08091E80080FFF8CF812F8F77B6 -:200BA00011F492E001C093E09EBB80688093E30081C08058823008F07CC0809129029091F7 -:200BC0002A0223E08C3D920799F55FB7F894DE0115964EE020E030E061E2E42FF0E0609373 -:200BE0005700849120FF03C082958F704F5F982F9F70892F805D8A3308F0895F8C93119615 -:200C00001C9211972F5F3F4F12962431310529F75FBF8AE28B8383E08C838091E800877F06 -:200C20008093E800CE0103966AE270E0E4DC11C060912B02AE014F5F5F4F2CDCBC0100979F -:200C4000C9F18091E800877F8093E80089819A812BDD8091E8008B778093E8002BC080381A -:200C600041F58091E800877F8093E800809125028093F1008091E8008E778093E8006DDCC6 -:200C800019C08823B1F490912902923098F48091E800877F8093E800909325025EDC809102 -:200CA0002502882311F483E001C084E08EBB2DDB01C028DB8091E80083FF0AC08091EB007F -:200CC00080628093EB008091E800877F8093E800AC960FB6F894DEBF0FBECDBFCF91DF91E1 -:200CE0001F91089508951F938EB3882361F01091E9001092E9008091E80083FF01C098DE54 -:200D000017701093E9001F9108950895FC018EB3843021F587859089A189B2890097A10507 -:200D2000B105E1F085818093E9008091E80082FF15C08091F200882319F42FEF3FEF04C010 -:200D40008091F100282F30E08091F200882341F48091E8008B778093E80002C02FEF3FEF43 -:200D6000C9010895FC018EB3843011F587859089A189B2890097A105B105D1F081818093C1 -:200D8000E9008091F2008823A9F09091E8008091E8008E778093E80095FD0CC0FDDB982F24 -:200DA000882349F48091E8008E778093E80003C092E001C090E0892F0895FC018EB38430A5 -:200DC00051F487859089A189B2890097A105B10511F0CF01C7CF08951F93FC01162F8EB318 -:200DE0008430D9F487859089A189B2890097A105B10599F081818093E9008091E80085FDF3 -:200E000008C08091E8008E778093E800C5DB882329F41093F10080E001C082E01F91089545 -:200E20000F931F93CF93DF93EC010D96FC0189E0DF011D928A95E9F72A813B8109818C8108 -:200E4000882311F410E001C014E0C90151DB182B1260802F61E8412F59DB882329F12E8182 -:200E60003F810D818885882311F410E001C014E0C9013EDB182B1260802F60E8412F46DBA2 -:200E8000882391F02A853B8509858C85882311F410E001C014E0C9012BDB182B1260802F8F -:200EA00061EC412F33DB01C080E0DF91CF911F910F910895CF93DF93EC018091E80083FF4D -:200EC00060C0888190E020912B0230912C022817390709F056C080912802813261F082322B -:200EE00020F4803209F04DC019C0823269F1833209F047C038C080912702813A09F041C0A3 -:200F00008091E800877F8093E800CE010F9667E070E071DB8091E8008B7713C08091270278 -:200F2000813279F58091E800877F8093E800CE010F9667E070E013DCCE013ED98091E800BD -:200F40008E778093E8001DC0809127028132C9F48091E800877F8093E800809129028D87C0 -:200F6000CE01C8D90DC080912702813251F48091E800877F8093E800CE0160912902C5DE7A -:200F8000ECDADF91CF910895A1E21A2EAA1BBB1BFD010DC0AA1FBB1FEE1FFF1FA217B307AC -:200FA000E407F50720F0A21BB30BE40BF50B661F771F881F991F1A9469F760957095809539 -:200FC00090959B01AC01BD01CF010895F894FFCF000340000004400000020800000000008D -:200FE000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B -:201000004BC0000064C0000062C0000060C000005EC000005CC000005AC0000058C00000F3 -:2010200056C0000054C0000052C00000CBC400004EC000004CC000004AC0000048C00000B9 -:2010400046C0000044C0000042C0000040C000003EC000003CC000003AC0000038C0000098 -:2010600036C0000034C0000032C0000030C000002EC000002CC000002AC0000028C00000F8 -:2010800026C0000024C0000022C0000020C000001EC000001CC0000011241FBECFEFD2E088 -:2010A000DEBFCDBF11E0A0E0B1E0E4EBFCE102C005900D92A836B107D9F711E0A8E6B1E0ED -:2010C00001C01D92A738B107E1F74FD3F1C598CF982F15C08091F200882371F48091E8004A -:2010E0008B7F8093E80003C08EB3882351F08091E80082FFF9CF02C08091F1009150992358 -:2011000049F708952091760130917501809174019091730180936D0190936E01C901809388 -:201120006F0190937001089580917101843009F45AC0853030F4813059F0833009F0C3C0BE -:201140001FC0853009F4A0C0863009F0BCC0AFC080917201823008F0B6C0D4DF8091720129 -:20116000882361F480916D0190916E0123E0FC0120935700E89507B600FCFDCF85E008C027 -:2011800080917201882311F0823029F4BBDF89E0809301010895813009F095C020E030E08C -:2011A00040E050E0F90184918F3F81F0CA01AA27BB2780936C0130936E0120936D018AE0D6 -:2011C0008093010185E08093690108952F5F3F4F4F4F5F4F2030F0E13F07F0E04F07F0E0B6 -:2011E0005F0701F7089580917201833051F581E0809368018091770190917801892B71F062 -:2012000080917301813009F05EC0809176019091750190936B0180936A0108958091730133 -:20122000882361F42CE088E190E00FB6F894A895809360000FBE20936000089510920001A8 -:201240000895882309F03FC0809173018F3F09F03AC0E0E0F0E093E085E090935700E895A9 -:2012600007B600FCFDCF80935700E89507B600FCFDCFE058FF4F20E1E030F20771F781E123 -:2012800080935700E8950895E091730180917201882321F4F0E0EB5FFE4F05C0813099F437 -:2012A000F0E0EE52FF4F808180937C01089580917201833041F480917301882321F48091E0 -:2012C000740180936C0108952F923F924F925F926F927F929F92AF92BF92CF92DF92EF92F0 -:2012E000FF920F931F93CF93DF938091850190918601909378018093770180917901882399 -:2013000051F08091790181508093790180917901882309F45D9A80917A01882351F08091F0 -:201320007A01815080937A0180917A01882309F45C9A80918001833009F4B2C1843030F41C -:20134000813071F0823009F0E3C111C1853009F4C5C1853008F4BAC1863009F0D9C1CDC11F -:201360005C9883E080937A018091E800877F8093E80080916801882329F0D6DE5D9A5C9AAF -:201380001092680120917701309178012115310529F42AC08EB3882309F4BAC18091E8000F -:2013A00082FFF8CF8091F10080937101215030403093780120937701E2E7F1E00CC080919F -:2013C000F10081932150304081E0E737F80719F43183208308C08091F200882381F7309394 -:2013E000780120937701A0DE80910101853009F0BAC08091770190917801892B21F482E042 -:2014000080930101B0C08AE163DE80916D018F715FDEC0916F01D091700120916D0130916C -:201420006E0121968E01021B130B219780917201882309F093C0180136942794C901A091F0 -:201440006C01B0E09C01AD0162E0E62EF12C012D112DE20EF31E041F151F59016A0190E0D8 -:2014600099249394B5E0A3E048C08091F200882371F48091E8008B7F8093E80004C08EB352 -:20148000882309F445C18091E80082FFF8CF0894210831088091F100682F8091F100782F1D -:2014A000F5010B0190925700E89511249F5F903419F021143104A1F4F901B0935700E89524 -:2014C00007B600FCFDCF2114310451F0F701A0935700E89507B600FCFDCFA801970190E0A7 -:2014E00042E0442E512C612C712CE40CF51C061D171DA40CB51CC61CD71C2114310409F0A0 -:20150000B4CFD0936E01C0936D0181E180935700E89527C08091F200882371F48091E80079 -:201520008B7F8093E80004C08EB3882309F4F0C08091E80082FFF8CF6091F10080916D01A7 -:2015400090916E01A7D380916D0190916E01019690936E0180936D010150104001151105FB -:20156000C9F680E1B5DD8091E8008B7FC3C08091E800877F8093E8005D9883E08093790154 -:2015800004C08EB3882309F4C3C08091E80080FFF8CF80910101893091F08A3069F4809167 -:2015A0007201813049F480916D0190916E018093F1009093F1009BC080917C0196C0609173 -:2015C0006F017091700120916D0130916E016F5F7F4F7B01E21AF30A6150704080917201E4 -:2015E000882389F5870116950795C901A0916C01B0E09C01AD011FC08091F200803271F4B7 -:201600008091E8008E7F8093E80004C08EB3882309F47EC08091E80080FFF8CFF90185918F -:2016200094918093F1009093F100015010402E5F3F4F4F4F5F4F01151105F1F670936E01E0 -:2016400060936D0129C0823039F523C08091F200803271F48091E8008E7F8093E80004C09E -:201660008EB3882309F454C08091E80080FFF8CF00916D0110916E01C80104D38093F1007B -:201680000F5F1F4F10936E0100936D010894E108F108E114F104D1F682E08093010127C0CE -:2016A0008091E800877F8093E800809169018093F1001092F1001092F1001092F1008091E7 -:2016C00001018093F1001092F10011C08091E800877F8093E8001092690119C08091E800C8 -:2016E000877F8093E800809101018093F1008091E8008E7F8093E8000AC08091E800877F08 -:201700008093E8005D9A5C9A82E08093010187D0DF91CF911F910F91FF90EF90DF90CF9017 -:20172000BF90AF909F907F906F905F904F903F902F9008952BD181E085BF15BE089584B799 -:20174000877F84BF88E10FB6F89480936000109260000FBE81E085BF82E085BF8AB18063DB -:201760008AB98BB180638BB90CC1E9DF789401C080D2809100018823D9F78091680188235D -:20178000B9F7D8DFE0916A01F0916B010995FA01923071F0933089F0913029F488E091E06A -:2017A00022E130E019C080E090E020E030E014C08AE191E02BE130E00FC0882339F48091D9 -:2017C0003501282F30E085E391E006C080913901282F30E089E391E091838083C9010895C0 -:2017E0008091EB0081608093EB001092ED006093EC004093ED008091EE00881F8827881FE4 -:2018000008951092F4001092F0001092E8001092ED00EBEEF0E080818E7F80830895809182 -:201820007F0188238CF403C08EB38823B1F08091E80082FFF9CF8091E8008B7F8093E8006D -:2018400008958EB3882349F08091E80080FFF9CF8091E8008E7F8093E80008959C0140917A -:201860008501509186014617570718F4F90120E038C06115710511F0AB01F8CF8091E80068 -:201880008E7F8093E80040E050E0F0CF8091E80083FF02C081E008958091E80082FD2DC091 -:2018A0008EB3882381F18EB3853079F18091E80080FF17C09091F20006C081918093F1002C -:2018C000415050409F5F4115510511F09032A8F320E0903209F421E08091E8008E7F809306 -:2018E000E8004115510591F6222381F606C08EB3882349F08EB3853041F08091E80082FF85 -:20190000F6CF80E0089582E0089583E0089554D056D01EBA10927D0184E089BD89B58260FA -:2019200089BD09B400FEFDCF8091D800982F9F779093D80080688093D800809163008E7FC5 -:20194000809363008091D8008F7D8093D8008091E0008E7F8093E0008091E1008E7F80932E -:20196000E1008091E20081608093E2008091E100877F8093E1008091E20088608093E20001 -:201980000895C5DF81E080937E010895C0DFE0EEF0E0808181608083E8EDF0E080818F77A8 -:2019A00080830AD00CD019BCE3E6F0E080818160808310927E0108951092E200089510929A -:2019C000E10008951F920F920FB60F9211242F933F934F935F936F937F938F939F93AF938A -:2019E000BF93EF93FF938091E10080FF1BC08091E20080FF17C08091E1008E7F8093E100F9 -:201A00008091E2008E7F8093E2008091E20080618093E2008091D80080628093D80019BC7D -:201A20001EBA26D18091E10084FF29C08091E20084FF25C084E089BD89B5826089BD09B451 -:201A400000FEFDCF8091D8008F7D8093D8008091E1008F7E8093E1008091E2008F7E8093D6 -:201A6000E2008091E20081608093E20080917D01882311F481E001C084E08EBBF9D08091D3 -:201A8000E10083FF22C08091E20083FF1EC08091E100877F8093E10082E08EBB10927D01F7 -:201AA0008091E1008E7F8093E1008091E2008E7F8093E2008091E20080618093E200A1DEF6 -:201AC00080E060E042E28CDED3D08091E10082FF0AC08091E20082FF06C08091E1008B7FC2 -:201AE0008093E100C5D0FF91EF91BF91AF919F918F917F916F915F914F913F912F910F905E -:201B00000FBE0F901F9018951F93DF93CF9300D0CDB7DEB7EFE7F1E08091F100819381E070 -:201B2000E738F807C9F790917F0180918001853011F1863040F48130B9F0813070F08330D5 -:201B400009F081C011C0883009F453C0893009F462C0863009F077C02DC0903809F474C00E -:201B6000923809F070C070C0992309F46DC0923009F069C069C0992309F065C01091810152 -:201B80008091E800877F8093E80049DE04C08EB3882309F459C08091E80080FFF8CF812F6F -:201BA0008F7711F492E001C093E09EBB80688093E3004AC09058923008F045C080918101F9 -:201BC0009091820160918301AE014F5F5F4FDFDDBC010097C9F18091E800877F8093E8001D -:201BE00089819A813BDE8091E8008B7F8093E8002BC0903841F58091E800877F8093E800C6 -:201C000080917D018093F1008091E8008E7F8093E80005DE19C09923B1F4909181019230AE -:201C200098F48091E800877F8093E80090937D01F6DD80917D01882311F483E001C084E0E3 -:201C40008EBB16D001C040DB8091E80083FF0AC08091EB0080628093EB008091E800877F59 -:201C60008093E8000F900F90CF91DF911F91089508958EB3882329F08091E80083FF01C030 -:201C800043CF0895F999FECF92BD81BDF89A992780B50895262FF999FECF1FBA92BD81BD6B -:201CA00020BD0FB6F894FA9AF99A0FBE01960895F894FFCF01021E938220DCFB1201100123 -:201CC00000000020EB03F72F00000001000109021B0001010080320904000000FE010200E6 -:201CE0000921030000000C0001040309042C03410072006400750069006E006F0020004D28 -:1C1D000000650067006100200032003500360030002000440046005500000000AE -:00000001FF diff --git a/build/linux/work/hardware/arduino/firmwares/README.txt b/build/linux/work/hardware/arduino/firmwares/README.txt deleted file mode 100644 index 386dcf020..000000000 --- a/build/linux/work/hardware/arduino/firmwares/README.txt +++ /dev/null @@ -1,33 +0,0 @@ -Arduino Uno and Mega 2560 Firmwares for the ATmega8U2 - -This directory contains the firmwares used on the ATmega8U2 on the Arduino -Uno and Arduino Mega 2560. The arduino-usbdfu directory contains the DFU -bootloader on the 8U2; the arduino-usbserial directory contains the actual -usb to serial firmware. Both should be compiled against LUFA 100807. The -two .hex files in this directory combine the dfu and serial firmwares into -a single file to burn onto the 8U2. - -To burn (Uno): -avrdude -p at90usb82 -F -P usb -c avrispmkii -U flash:w:UNO-dfu_and_usbserial_combined.hex -U lfuse:w:0xFF:m -U hfuse:w:0xD9:m -U efuse:w:0xF4:m -U lock:w:0x0F:m - -To burn (Mega 2560): -avrdude -p at90usb82 -F -P usb -c avrispmkii -U flash:w:MEGA-dfu_and_usbserial_combined.hex -U lfuse:w:0xFF:m -U hfuse:w:0xD9:m -U efuse:w:0xF4:m -U lock:w:0x0F:m - - -Note on USB Vendor IDs (VID) and Product IDs (PID): The arduino-usbdfu -project uses Atmel's VID and MCU-specific PIDs to maintain compatibility -with their FLIP software. The source code to the arduino-usbserial -project includes Atmel's VID and a PID donated by them to LUFA. This -PID is used in LUFA's USBtoSerial project, which forms the basis for -arduino-usbserial. According to the LUFA documentation, this VID/PID -combination is: - - "For use in testing of LUFA powered devices during development only, - by non-commercial entities. All devices must accept collisions on this - VID/PID range (from other in-development LUFA devices) to be resolved - by using a unique release number in the Device Descriptor. No devices - using this VID/PID combination may be released to the general public." - -The production version of the arduino-usbserial firmware uses the -Arduino VID. This is only for use with official Arduino hardware and -should not be used on other products. \ No newline at end of file diff --git a/build/linux/work/hardware/arduino/firmwares/UNO-dfu_and_usbserial_combined.hex b/build/linux/work/hardware/arduino/firmwares/UNO-dfu_and_usbserial_combined.hex deleted file mode 100644 index 60acf44c5..000000000 --- a/build/linux/work/hardware/arduino/firmwares/UNO-dfu_and_usbserial_combined.hex +++ /dev/null @@ -1,234 +0,0 @@ -:200000009CC00000B5C00000B3C00000B1C00000AFC00000ADC00000ABC00000A9C000007B -:20002000A7C00000A5C00000A3C0000054C4000018C400009DC000009BC0000099C000008C -:2000400097C0000095C0000093C0000091C000008FC000008DC000008BC000000EC100009A -:2000600087C0000085C0000083C0000081C000007FC000007DC000007BC0000079C0000080 -:2000800077C0000075C0000073C0000071C000006FC000006DC00000120110010200000806 -:2000A0004123010001000102DC0109023E00020100C032090400000102020100052400017F -:2000C00010042402060524060001070582030800FF09040100020A000000070504024000AC -:2000E0000107058302400001040309043203410072006400750069006E006F0020002800CA -:200100007700770077002E00610072006400750069006E006F002E0063006300290000003D -:200120001803410072006400750069006E006F00200055006E006F00000011241FBECFEFB0 -:20014000D2E0DEBFCDBF11E0A0E0B1E0E4ECFFE002C005900D92A631B107D9F712E0A6E145 -:20016000B1E001C01D92AF32B107E1F7F1D028C747CF9C01DC01AE57BF4FED91FC91119707 -:2001800041911196FC93EE9380589F4FE817F90711F42D933C939FB7F894F901EC57FF4F10 -:2001A0008081815080839FBF842F0895DF92EF92FF920F931F93FC018489813019F082306F -:2001C00021F405C040E3D42E04C0DD2402C030E2D32E8389823011F488E0D82A8589873094 -:2001E00031F0883031F0863031F482E003C084E001C086E0D82A1092C9001092C800109201 -:20020000CA00E784F0880189128980E0E81681EEF80680E0080780E0180719F420E130E035 -:200220000FC0C801B701969587957795679560587B47814E9F4FA8019701A0D62150304050 -:200240003093CD002093CC00D092CA0080E0E81681EEF80680E0080780E0180711F082E047 -:2002600001C080E08093C80088E98093C9001F910F91FF90EF90DF9008951F920F920FB6B4 -:200280000F9211242F938F939F93EF93FF939091CE008EB38430F1F4E0919901F0919A016E -:2002A0009083E0919901F0919A01CF01019690939A01809399018959914021F489E191E08F -:2002C000928381839FB7F89480919D018F5F80939D019FBFFF91EF919F918F912F910F90B8 -:2002E0000FBE0F901F901895FC01858580FF02C05F9808955F9A089580E091E0D5C580E0F9 -:2003000091E088C584B7877F84BF28E10FB6F89420936000109260000FBE87E690E090935F -:20032000CD008093CC0086E08093CA001092C8002093C900539A5A9A8AB180638AB98BB16A -:2003400080638BB983D284E085BD5F9A579A08950F931F93CF93DF93D5DF2FB7F8948EE92F -:2003600091E090931F0280931E0290932102809320022FBF2FB7F89489E191E090939A0121 -:200380008093990190939C0180939B012FBF7894CEE9D1E003E08FB7F894909122028FBF97 -:2003A000903809F180E091E0ABD497FD1CC0E0911E02F0911F028083E0911E02F0911F0252 -:2003C000CF01019690931F0280931E028E51924011F4D283C1839FB7F894809122028F5FEB -:2003E000809322029FBF8FB7F89410919D018FBFA89902C0113678F1A89A80919D018823BA -:2004000061F05D980093160108C089E191E0B1DE682F80E091E0DAD411501123B1F7809156 -:200420001601882351F08091160181508093160180911601882309F45D9A809117018823FB -:2004400051F08091170181508093170180911701882309F45C9A8FB7F894909122028FBF0A -:20046000992369F08EE991E084DE982F8091C80085FFFCCF9093CE005C980093170180E03E -:2004800091E095D42AD487CFDA01923049F0933061F09130F9F4E8E9F0E022E130E01EC004 -:2004A000EAEAF0E02EE330E019C0813049F0813018F0823079F408C0E8EEF0E0849107C092 -:2004C000ECEEF0E0849103C0E0E2F1E08491282F30E004C0E0E0F0E020E030E0ED93FC9318 -:2004E000C901089528E030E040E003C04F5F220F331F28173907D0F3842F8295807F0895C1 -:200500008093E9008091EB0081608093EB001092ED006093EC004093ED008091EE00881F30 -:200520008827881F08951092F40090E09093E9001092F0001092E8001092ED008091EB000F -:200540008E7F8093EB009F5F953081F708958091270288238CF403C08EB38823B1F08091F2 -:20056000E80082FFF9CF8091E8008B778093E80008958EB3882349F08091E80080FFF9CF52 -:200580008091E8008E778093E800089594E68091EC0080FF05C08091E80080FF05C023C0EA -:2005A0008091E80082FD1FC08EB3882311F482E008958EB3853011F483E008958091EB00FD -:2005C00085FF02C081E008958091E10082FFDFCF8091E1008B7F8093E100992311F484E0A1 -:2005E00008959150D4CF80E008959C0140912D0250912E024617570718F4F90120E038C076 -:200600006115710511F0AB01F8CF8091E8008E778093E80040E050E0F0CF8091E80083FFF7 -:2006200002C081E008958091E80082FD2DC08EB3882381F18EB3853079F18091E80080FF5F -:2006400017C09091F20006C081918093F100415050409F5F4115510511F09830A8F320E0A5 -:20066000983009F421E08091E8008E778093E8004115510591F6222381F606C08EB388231A -:2006800049F08EB3853041F08091E80082FFF6CF80E0089582E0089583E008959C01409151 -:2006A0002D0250912E024617570710F490E03BC06115710511F0AB01F9CF8091E8008E7771 -:2006C0008093E80040E050E0F1CF8091E80083FF02C081E008958091E80082FD30C08EB32B -:2006E000882399F18EB3853091F18091E80080FF1AC08091F20009C0F9012F5F3F4FE491A4 -:20070000E093F100415050408F5F4115510511F0883090F390E0883009F491E08091E800EF -:200720008E778093E8004115510579F6992369F606C08EB3882349F08EB3853041F0809160 -:20074000E80082FFF6CF80E0089582E0089583E008959C016115710529F48091E8008B77CE -:200760008093E800F90120C08091E80083FF02C081E008958EB3882339F18EB3853031F13B -:200780008091E80082FFF0CF06C08091F10081936150704021F08091F2008823B1F780916B -:2007A000E8008B778093E80061157105E9F606C08EB3882349F08EB3853041F08091E8007E -:2007C00080FFF6CF80E0089582E0089583E0089542D044D01EBA10922502109224021092A8 -:2007E000230284E089BD89B5826089BD09B400FEFDCF8091D800982F9F779093D800806894 -:200800008093D800809163008E7F809363008091D8008F7D8093D8008091E0008E7F809305 -:20082000E0008091E1008E7F8093E1008091E20081608093E2008091E100877F8093E10030 -:200840008091E20088608093E2000895C1DF81E08093260208951092E20008951092E100AE -:2008600008951F920F920FB60F9211241F932F933F934F935F936F937F938F939F93AF932A -:20088000BF93EF93FF93E9EEF0E0108117701082E0EFF0E08081877F80837894C3D0F894CD -:2008A000A9EEB0E01C92E0EFF0E08081886080831C93FF91EF91BF91AF919F918F917F9129 -:2008C0006F915F914F913F912F911F910F900FBE0F901F9018951F920F920FB60F921124B4 -:2008E0002F933F934F935F936F937F938F939F93AF93BF93EF93FF938091E10080FF1BC034 -:200900008091E20080FF17C08091E1008E7F8093E1008091E2008E7F8093E2008091E200B3 -:2009200080618093E2008091D80080628093D80019BC1EBAD1D18091E10084FF29C080916D -:20094000E20084FF25C084E089BD89B5826089BD09B400FEFDCF8091D8008F7D8093D800D6 -:200960008091E1008F7E8093E1008091E2008F7E8093E2008091E20081608093E2008091B5 -:200980002502882311F481E001C084E08EBBA4D18091E10083FF27C08091E20083FF23C089 -:2009A0008091E100877F8093E10082E08EBB109225028091E1008E7F8093E1008091E200F1 -:2009C0008E7F8093E2008091E20080618093E200AADD80E060E042E093DD8091F0008860AA -:2009E0008093F00079D18091E10082FF0AC08091E20082FF06C08091E1008B7F8093E10043 -:200A00006BD1FF91EF91BF91AF919F918F917F916F915F914F913F912F910F900FBE0F902F -:200A20001F9018951F93DF93CF93CDB7DEB7AC970FB6F894DEBF0FBECDBFE7E2F2E0809185 -:200A4000F100819322E0EF32F207C9F78091270230912802353009F487C0363040F43130EC -:200A6000C9F1313070F0333009F01DC133C0383009F4EFC0393009F4FEC0363009F013C163 -:200A800092C0803821F0823809F00DC108C09091230280912402882399F0926011C080916D -:200AA0002B0287708093E9008091EB0090E025E0969587952A95E1F7982F91701092E90074 -:200AC0008091E800877F8093E8009093F1001092F100CAC0882319F0823009F0E4C090E078 -:200AE0008F719070009721F0029709F0DDC00CC080912902813009F0D7C0109224023330AB -:200B000069F5809324022AC080912902882331F520912B02277009F4C7C02093E9008091A1 -:200B2000EB0080FFC1C0333021F48091EB00806213C08091EB0080618093EB0081E090E0F5 -:200B400002C0880F991F2A95E2F78093EA001092EA008091EB0088608093EB001092E900F6 -:200B60008091E800877F83C0882309F09CC0109129028091E800877F8093E800E8DC04C0E5 -:200B80008EB3882309F490C08091E80080FFF8CF812F8F7711F492E001C093E09EBB80683B -:200BA0008093E30081C08058823008F07CC08091290290912A0223E08C3D920799F55FB7AE -:200BC000F894DE0115964EE020E030E061E2E42FF0E060935700849120FF03C082958F7044 -:200BE0004F5F982F9F70892F805D8A3308F0895F8C9311961C9211972F5F3F4F129624310A -:200C0000310529F75FBF8AE28B8383E08C838091E800877F8093E800CE0103966AE270E076 -:200C2000E4DC11C060912B02AE014F5F5F4F2CDCBC010097C9F18091E800877F8093E800EA -:200C400089819A812BDD8091E8008B778093E8002BC0803841F58091E800877F8093E8009E -:200C6000809125028093F1008091E8008E778093E8006DDC19C08823B1F4909129029230BF -:200C800098F48091E800877F8093E800909325025EDC80912502882311F483E001C084E0DA -:200CA0008EBB2DDB01C028DB8091E80083FF0AC08091EB0080628093EB008091E800877FFF -:200CC0008093E800AC960FB6F894DEBF0FBECDBFCF91DF911F91089508951F938EB3882338 -:200CE00061F01091E9001092E9008091E80083FF01C098DE17701093E9001F9108950895DF -:200D0000FC018EB3843021F587859089A189B2890097A105B105E1F085818093E90080916A -:200D2000E80082FF15C08091F200882319F42FEF3FEF04C08091F100282F30E08091F2003E -:200D4000882341F48091E8008B778093E80002C02FEF3FEFC9010895FC018EB3843011F550 -:200D600087859089A189B2890097A105B105D1F081818093E9008091F2008823A9F09091CF -:200D8000E8008091E8008E778093E80095FD0CC0FDDB982F882349F48091E8008E7780937C -:200DA000E80003C092E001C090E0892F0895FC018EB3843051F487859089A189B289009738 -:200DC000A105B10511F0CF01C7CF08951F93FC01162F8EB38430D9F487859089A189B28973 -:200DE0000097A105B10599F081818093E9008091E80085FD08C08091E8008E778093E8003D -:200E0000C5DB882329F41093F10080E001C082E01F9108950F931F93CF93DF93EC010D964E -:200E2000FC0189E0DF011D928A95E9F72A813B8109818C81882311F410E001C014E0C901A1 -:200E400051DB182B1260802F61E8412F59DB882329F12E813F810D818885882311F410E0A6 -:200E600001C014E0C9013EDB182B1260802F60E8412F46DB882391F02A853B8509858C8563 -:200E8000882311F410E001C014E0C9012BDB182B1260802F61EC412F33DB01C080E0DF916D -:200EA000CF911F910F910895CF93DF93EC018091E80083FF60C0888190E020912B02309171 -:200EC0002C022817390709F056C080912802813261F0823220F4803209F04DC019C082320A -:200EE00069F1833209F047C038C080912702813A09F041C08091E800877F8093E800CE0133 -:200F00000F9667E070E071DB8091E8008B7713C080912702813279F58091E800877F80930E -:200F2000E800CE010F9667E070E013DCCE013ED98091E8008E778093E8001DC080912702D9 -:200F40008132C9F48091E800877F8093E800809129028D87CE01C8D90DC0809127028132AD -:200F600051F48091E800877F8093E800CE0160912902C5DEECDADF91CF910895A1E21A2EA6 -:200F8000AA1BBB1BFD010DC0AA1FBB1FEE1FFF1FA217B307E407F50720F0A21BB30BE40B49 -:200FA000F50B661F771F881F991F1A9469F760957095809590959B01AC01BD01CF01089501 -:200FC000F894FFCF00034000000440000002080000000000000000000000FFFFFFFFFFFF2C -:200FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 -:201000004BC0000064C0000062C0000060C000005EC000005CC000005AC0000058C00000F3 -:2010200056C0000054C0000052C00000CBC400004EC000004CC000004AC0000048C00000B9 -:2010400046C0000044C0000042C0000040C000003EC000003CC000003AC0000038C0000098 -:2010600036C0000034C0000032C0000030C000002EC000002CC000002AC0000028C00000F8 -:2010800026C0000024C0000022C0000020C000001EC000001CC0000011241FBECFEFD2E088 -:2010A000DEBFCDBF11E0A0E0B1E0E4EBFCE102C005900D92AC35B107D9F711E0ACE5B1E0E7 -:2010C00001C01D92AB37B107E1F74FD3F1C598CF982F15C08091F200882371F48091E80047 -:2010E0008B7F8093E80003C08EB3882351F08091E80082FFF9CF02C08091F1009150992358 -:2011000049F7089520916A013091690180916801909167018093610190936201C9018093D0 -:20112000630190936401089580916501843009F45AC0853030F4813059F0833009F0C3C0E2 -:201140001FC0853009F4A0C0863009F0BCC0AFC080916601823008F0B6C0D4DF8091660141 -:20116000882361F4809161019091620123E0FC0120935700E89507B600FCFDCF85E008C03F -:2011800080916601882311F0823029F4BBDF89E0809301010895813009F095C020E030E098 -:2011A00040E050E0F90184918F3F81F0CA01AA27BB278093600130936201209361018AE0FA -:2011C0008093010185E080935D0108952F5F3F4F4F4F5F4F2030F0E13F07F0E04F07F0E0C2 -:2011E0005F0701F7089580916601833051F581E080935C0180916B0190916C01892B71F092 -:2012000080916701813009F05EC080916A019091690190935F0180935E010895809167017B -:20122000882361F42CE088E190E00FB6F894A895809360000FBE20936000089510920001A8 -:201240000895882309F03FC0809167018F3F09F03AC0E0E0F0E093E085E090935700E895B5 -:2012600007B600FCFDCF80935700E89507B600FCFDCFE058FF4F20E1E030F20771F781E123 -:2012800080935700E8950895E091670180916601882321F4F0E0EB5FFE4F05C0813099F44F -:2012A000F0E0EE52FF4F808180937001089580916601833041F480916701882321F4809104 -:2012C00068018093600108952F923F924F925F926F927F929F92AF92BF92CF92DF92EF9208 -:2012E000FF920F931F93CF93DF938091790190917A0190936C0180936B0180916D018823D5 -:2013000051F080916D01815080936D0180916D01882309F45D9A80916E01882351F0809120 -:201320006E01815080936E0180916E01882309F45C9A80917401833009F4B2C1843030F44C -:20134000813071F0823009F0E3C111C1853009F4C5C1853008F4BAC1863009F0D9C1CDC11F -:201360005C9883E080936E018091E800877F8093E80080915C01882329F0D6DE5D9A5C9AC7 -:2013800010925C0120916B0130916C012115310529F42AC08EB3882309F4BAC18091E80033 -:2013A00082FFF8CF8091F100809365012150304030936C0120936B01E6E6F1E00CC08091C0 -:2013C000F10081932150304081E0EB36F80719F43183208308C08091F200882381F7309391 -:2013E0006C0120936B01A0DE80910101853009F0BAC080916B0190916C01892B21F482E072 -:2014000080930101B0C08AE163DE809161018F715FDEC0916301D09164012091610130919C -:20142000620121968E01021B130B219780916601882309F093C0180136942794C901A09108 -:201440006001B0E09C01AD0162E0E62EF12C012D112DE20EF31E041F151F59016A0190E0E4 -:2014600099249394B5E0A3E048C08091F200882371F48091E8008B7F8093E80004C08EB352 -:20148000882309F445C18091E80082FFF8CF0894210831088091F100682F8091F100782F1D -:2014A000F5010B0190925700E89511249F5F903419F021143104A1F4F901B0935700E89524 -:2014C00007B600FCFDCF2114310451F0F701A0935700E89507B600FCFDCFA801970190E0A7 -:2014E00042E0442E512C612C712CE40CF51C061D171DA40CB51CC61CD71C2114310409F0A0 -:20150000B4CFD0936201C093610181E180935700E89527C08091F200882371F48091E80091 -:201520008B7F8093E80004C08EB3882309F4F0C08091E80082FFF8CF6091F10080916101B3 -:2015400090916201A7D3809161019091620101969093620180936101015010400115110537 -:20156000C9F680E1B5DD8091E8008B7FC3C08091E800877F8093E8005D9883E080936D0160 -:2015800004C08EB3882309F4C3C08091E80080FFF8CF80910101893091F08A3069F4809167 -:2015A0006601813049F480916101909162018093F1009093F1009BC08091700196C06091A3 -:2015C00063017091640120916101309162016F5F7F4F7B01E21AF30A615070408091660120 -:2015E000882389F5870116950795C901A0916001B0E09C01AD011FC08091F200803271F4C3 -:201600008091E8008E7F8093E80004C08EB3882309F47EC08091E80080FFF8CFF90185918F -:2016200094918093F1009093F100015010402E5F3F4F4F4F5F4F01151105F1F670936201EC -:201640006093610129C0823039F523C08091F200803271F48091E8008E7F8093E80004C0AA -:201660008EB3882309F454C08091E80080FFF8CF0091610110916201C80104D38093F10093 -:201680000F5F1F4F10936201009361010894E108F108E114F104D1F682E08093010127C0E6 -:2016A0008091E800877F8093E80080915D018093F1001092F1001092F1001092F1008091F3 -:2016C00001018093F1001092F10011C08091E800877F8093E80010925D0119C08091E800D4 -:2016E000877F8093E800809101018093F1008091E8008E7F8093E8000AC08091E800877F08 -:201700008093E8005D9A5C9A82E08093010187D0DF91CF911F910F91FF90EF90DF90CF9017 -:20172000BF90AF909F907F906F905F904F903F902F9008952BD181E085BF15BE089584B799 -:20174000877F84BF88E10FB6F89480936000109260000FBE81E085BF82E085BF8AB18063DB -:201760008AB98BB180638BB90CC1E9DF789401C080D2809100018823D9F780915C01882369 -:20178000B9F7D8DFE0915E01F0915F010995FA01923071F0933089F0913029F488E091E082 -:2017A00022E130E019C080E090E020E030E014C08AE191E02BE130E00FC0882339F48091D9 -:2017C0003501282F30E085E391E006C080913901282F30E089E391E091838083C9010895C0 -:2017E0008091EB0081608093EB001092ED006093EC004093ED008091EE00881F8827881FE4 -:2018000008951092F4001092F0001092E8001092ED00EBEEF0E080818E7F80830895809182 -:20182000730188238CF403C08EB38823B1F08091E80082FFF9CF8091E8008B7F8093E80079 -:2018400008958EB3882349F08091E80080FFF9CF8091E8008E7F8093E80008959C0140917A -:20186000790150917A014617570718F4F90120E038C06115710511F0AB01F8CF8091E80080 -:201880008E7F8093E80040E050E0F0CF8091E80083FF02C081E008958091E80082FD2DC091 -:2018A0008EB3882381F18EB3853079F18091E80080FF17C09091F20006C081918093F1002C -:2018C000415050409F5F4115510511F09032A8F320E0903209F421E08091E8008E7F809306 -:2018E000E8004115510591F6222381F606C08EB3882349F08EB3853041F08091E80082FF85 -:20190000F6CF80E0089582E0089583E0089554D056D01EBA1092710184E089BD89B5826006 -:2019200089BD09B400FEFDCF8091D800982F9F779093D80080688093D800809163008E7FC5 -:20194000809363008091D8008F7D8093D8008091E0008E7F8093E0008091E1008E7F80932E -:20196000E1008091E20081608093E2008091E100877F8093E1008091E20088608093E20001 -:201980000895C5DF81E0809372010895C0DFE0EEF0E0808181608083E8EDF0E080818F77B4 -:2019A00080830AD00CD019BCE3E6F0E08081816080831092720108951092E20008951092A6 -:2019C000E10008951F920F920FB60F9211242F933F934F935F936F937F938F939F93AF938A -:2019E000BF93EF93FF938091E10080FF1BC08091E20080FF17C08091E1008E7F8093E100F9 -:201A00008091E2008E7F8093E2008091E20080618093E2008091D80080628093D80019BC7D -:201A20001EBA26D18091E10084FF29C08091E20084FF25C084E089BD89B5826089BD09B451 -:201A400000FEFDCF8091D8008F7D8093D8008091E1008F7E8093E1008091E2008F7E8093D6 -:201A6000E2008091E20081608093E20080917101882311F481E001C084E08EBBF9D08091DF -:201A8000E10083FF22C08091E20083FF1EC08091E100877F8093E10082E08EBB1092710103 -:201AA0008091E1008E7F8093E1008091E2008E7F8093E2008091E20080618093E200A1DEF6 -:201AC00080E060E042E28CDED3D08091E10082FF0AC08091E20082FF06C08091E1008B7FC2 -:201AE0008093E100C5D0FF91EF91BF91AF919F918F917F916F915F914F913F912F910F905E -:201B00000FBE0F901F9018951F93DF93CF9300D0CDB7DEB7E3E7F1E08091F100819381E07C -:201B2000EB37F807C9F79091730180917401853011F1863040F48130B9F0813070F08330EA -:201B400009F081C011C0883009F453C0893009F462C0863009F077C02DC0903809F474C00E -:201B6000923809F070C070C0992309F46DC0923009F069C069C0992309F065C0109175015E -:201B80008091E800877F8093E80049DE04C08EB3882309F459C08091E80080FFF8CF812F6F -:201BA0008F7711F492E001C093E09EBB80688093E3004AC09058923008F045C08091750105 -:201BC0009091760160917701AE014F5F5F4FDFDDBC010097C9F18091E800877F8093E80035 -:201BE00089819A813BDE8091E8008B7F8093E8002BC0903841F58091E800877F8093E800C6 -:201C0000809171018093F1008091E8008E7F8093E80005DE19C09923B1F4909175019230C6 -:201C200098F48091E800877F8093E80090937101F6DD80917101882311F483E001C084E0FB -:201C40008EBB16D001C040DB8091E80083FF0AC08091EB0080628093EB008091E800877F59 -:201C60008093E8000F900F90CF91DF911F91089508958EB3882329F08091E80083FF01C030 -:201C800043CF0895F999FECF92BD81BDF89A992780B50895262FF999FECF1FBA92BD81BD6B -:201CA00020BD0FB6F894FA9AF99A0FBE01960895F894FFCF01021E938220DCFB1201100123 -:201CC00000000020EB03F72F00000001000109021B0001010080320904000000FE010200E6 -:201CE0000921030000000C0001040309042003410072006400750069006E006F002000552C -:101D0000006E006F002000440046005500000000F7 -:00000001FF diff --git a/build/linux/work/hardware/arduino/firmwares/arduino-usbdfu/Arduino-usbdfu.c b/build/linux/work/hardware/arduino/firmwares/arduino-usbdfu/Arduino-usbdfu.c deleted file mode 100644 index 7bed831f2..000000000 --- a/build/linux/work/hardware/arduino/firmwares/arduino-usbdfu/Arduino-usbdfu.c +++ /dev/null @@ -1,728 +0,0 @@ -/* - LUFA Library - Copyright (C) Dean Camera, 2010. - - dean [at] fourwalledcubicle [dot] com - www.fourwalledcubicle.com -*/ - -/* - Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com) - - Permission to use, copy, modify, distribute, and sell this - software and its documentation for any purpose is hereby granted - without fee, provided that the above copyright notice appear in - all copies and that both that the copyright notice and this - permission notice and warranty disclaimer appear in supporting - documentation, and that the name of the author not be used in - advertising or publicity pertaining to distribution of the - software without specific, written prior permission. - - The author disclaim all warranties with regard to this - software, including all implied warranties of merchantability - and fitness. In no event shall the author be liable for any - special, indirect or consequential damages or any damages - whatsoever resulting from loss of use, data or profits, whether - in an action of contract, negligence or other tortious action, - arising out of or in connection with the use or performance of - this software. -*/ - -/** \file - * - * Main source file for the DFU class bootloader. This file contains the complete bootloader logic. - */ - -#define INCLUDE_FROM_BOOTLOADER_C -#include "Arduino-usbdfu.h" - -/** Flag to indicate if the bootloader should be running, or should exit and allow the application code to run - * via a soft reset. When cleared, the bootloader will abort, the USB interface will shut down and the application - * jumped to via an indirect jump to location 0x0000 (or other location specified by the host). - */ -bool RunBootloader = true; - -/** Flag to indicate if the bootloader is waiting to exit. When the host requests the bootloader to exit and - * jump to the application address it specifies, it sends two sequential commands which must be properly - * acknowledged. Upon reception of the first the RunBootloader flag is cleared and the WaitForExit flag is set, - * causing the bootloader to wait for the final exit command before shutting down. - */ -bool WaitForExit = false; - -/** Current DFU state machine state, one of the values in the DFU_State_t enum. */ -uint8_t DFU_State = dfuIDLE; - -/** Status code of the last executed DFU command. This is set to one of the values in the DFU_Status_t enum after - * each operation, and returned to the host when a Get Status DFU request is issued. - */ -uint8_t DFU_Status = OK; - -/** Data containing the DFU command sent from the host. */ -DFU_Command_t SentCommand; - -/** Response to the last issued Read Data DFU command. Unlike other DFU commands, the read command - * requires a single byte response from the bootloader containing the read data when the next DFU_UPLOAD command - * is issued by the host. - */ -uint8_t ResponseByte; - -/** Pointer to the start of the user application. By default this is 0x0000 (the reset vector), however the host - * may specify an alternate address when issuing the application soft-start command. - */ -AppPtr_t AppStartPtr = (AppPtr_t)0x0000; - -/** 64-bit flash page number. This is concatenated with the current 16-bit address on USB AVRs containing more than - * 64KB of flash memory. - */ -uint8_t Flash64KBPage = 0; - -/** Memory start address, indicating the current address in the memory being addressed (either FLASH or EEPROM - * depending on the issued command from the host). - */ -uint16_t StartAddr = 0x0000; - -/** Memory end address, indicating the end address to read to/write from in the memory being addressed (either FLASH - * of EEPROM depending on the issued command from the host). - */ -uint16_t EndAddr = 0x0000; - - -/** Pulse generation counters to keep track of the number of milliseconds remaining for each pulse type */ -volatile struct -{ - uint8_t TxLEDPulse; /**< Milliseconds remaining for data Tx LED pulse */ - uint8_t RxLEDPulse; /**< Milliseconds remaining for data Rx LED pulse */ - uint8_t PingPongLEDPulse; /**< Milliseconds remaining for enumeration Tx/Rx ping-pong LED pulse */ -} PulseMSRemaining; - -/** 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) -{ - /* Configure hardware required by the bootloader */ - SetupHardware(); - - /* Enable global interrupts so that the USB stack can function */ - sei(); - - /* Run the USB management task while the bootloader is supposed to be running */ - while (RunBootloader || WaitForExit) - USB_USBTask(); - - /* Reset configured hardware back to their original states for the user application */ - ResetHardware(); - - /* Start the user application */ - AppStartPtr(); -} - -/** Configures all hardware required for the bootloader. */ -void SetupHardware(void) -{ - /* Disable watchdog if enabled by bootloader/fuses */ - MCUSR &= ~(1 << WDRF); - wdt_disable(); - - /* Disable clock division */ -// clock_prescale_set(clock_div_1); - - /* Relocate the interrupt vector table to the bootloader section */ - MCUCR = (1 << IVCE); - MCUCR = (1 << IVSEL); - - LEDs_Init(); - - /* Initialize the USB subsystem */ - USB_Init(); -} - -/** Resets all configured hardware required for the bootloader back to their original states. */ -void ResetHardware(void) -{ - /* Shut down the USB subsystem */ - USB_ShutDown(); - - /* Relocate the interrupt vector table back to the application section */ - MCUCR = (1 << IVCE); - MCUCR = 0; -} - -/** Event handler for the USB_UnhandledControlRequest event. This is used to catch standard and class specific - * control requests that are not handled internally by the USB library (including the DFU commands, which are - * all issued via the control endpoint), so that they can be handled appropriately for the application. - */ -void EVENT_USB_Device_UnhandledControlRequest(void) -{ - /* Get the size of the command and data from the wLength value */ - SentCommand.DataSize = USB_ControlRequest.wLength; - - /* Turn off TX LED(s) once the TX pulse period has elapsed */ - if (PulseMSRemaining.TxLEDPulse && !(--PulseMSRemaining.TxLEDPulse)) - LEDs_TurnOffLEDs(LEDMASK_TX); - - /* Turn off RX LED(s) once the RX pulse period has elapsed */ - if (PulseMSRemaining.RxLEDPulse && !(--PulseMSRemaining.RxLEDPulse)) - LEDs_TurnOffLEDs(LEDMASK_RX); - - switch (USB_ControlRequest.bRequest) - { - case DFU_DNLOAD: - LEDs_TurnOnLEDs(LEDMASK_RX); - PulseMSRemaining.RxLEDPulse = TX_RX_LED_PULSE_MS; - - Endpoint_ClearSETUP(); - - /* Check if bootloader is waiting to terminate */ - if (WaitForExit) - { - /* Bootloader is terminating - process last received command */ - ProcessBootloaderCommand(); - - /* Turn off TX/RX status LEDs so that they're not left on when application starts */ - LEDs_TurnOffLEDs(LEDMASK_TX); - LEDs_TurnOffLEDs(LEDMASK_RX); - - /* Indicate that the last command has now been processed - free to exit bootloader */ - WaitForExit = false; - } - - /* If the request has a data stage, load it into the command struct */ - if (SentCommand.DataSize) - { - while (!(Endpoint_IsOUTReceived())) - { - if (USB_DeviceState == DEVICE_STATE_Unattached) - return; - } - - /* First byte of the data stage is the DNLOAD request's command */ - SentCommand.Command = Endpoint_Read_Byte(); - - /* One byte of the data stage is the command, so subtract it from the total data bytes */ - SentCommand.DataSize--; - - /* Load in the rest of the data stage as command parameters */ - for (uint8_t DataByte = 0; (DataByte < sizeof(SentCommand.Data)) && - Endpoint_BytesInEndpoint(); DataByte++) - { - SentCommand.Data[DataByte] = Endpoint_Read_Byte(); - SentCommand.DataSize--; - } - - /* Process the command */ - ProcessBootloaderCommand(); - } - - /* Check if currently downloading firmware */ - if (DFU_State == dfuDNLOAD_IDLE) - { - if (!(SentCommand.DataSize)) - { - DFU_State = dfuIDLE; - } - else - { - /* Throw away the filler bytes before the start of the firmware */ - DiscardFillerBytes(DFU_FILLER_BYTES_SIZE); - - /* Throw away the packet alignment filler bytes before the start of the firmware */ - DiscardFillerBytes(StartAddr % FIXED_CONTROL_ENDPOINT_SIZE); - - /* Calculate the number of bytes remaining to be written */ - uint16_t BytesRemaining = ((EndAddr - StartAddr) + 1); - - if (IS_ONEBYTE_COMMAND(SentCommand.Data, 0x00)) // Write flash - { - /* Calculate the number of words to be written from the number of bytes to be written */ - uint16_t WordsRemaining = (BytesRemaining >> 1); - - union - { - uint16_t Words[2]; - uint32_t Long; - } CurrFlashAddress = {.Words = {StartAddr, Flash64KBPage}}; - - uint32_t CurrFlashPageStartAddress = CurrFlashAddress.Long; - uint8_t WordsInFlashPage = 0; - - while (WordsRemaining--) - { - /* Check if endpoint is empty - if so clear it and wait until ready for next packet */ - if (!(Endpoint_BytesInEndpoint())) - { - Endpoint_ClearOUT(); - - while (!(Endpoint_IsOUTReceived())) - { - if (USB_DeviceState == DEVICE_STATE_Unattached) - return; - } - } - - /* Write the next word into the current flash page */ - boot_page_fill(CurrFlashAddress.Long, Endpoint_Read_Word_LE()); - - /* Adjust counters */ - WordsInFlashPage += 1; - CurrFlashAddress.Long += 2; - - /* See if an entire page has been written to the flash page buffer */ - if ((WordsInFlashPage == (SPM_PAGESIZE >> 1)) || !(WordsRemaining)) - { - /* Commit the flash page to memory */ - boot_page_write(CurrFlashPageStartAddress); - boot_spm_busy_wait(); - - /* Check if programming incomplete */ - if (WordsRemaining) - { - CurrFlashPageStartAddress = CurrFlashAddress.Long; - WordsInFlashPage = 0; - - /* Erase next page's temp buffer */ - boot_page_erase(CurrFlashAddress.Long); - boot_spm_busy_wait(); - } - } - } - - /* Once programming complete, start address equals the end address */ - StartAddr = EndAddr; - - /* Re-enable the RWW section of flash */ - boot_rww_enable(); - } - else // Write EEPROM - { - while (BytesRemaining--) - { - /* Check if endpoint is empty - if so clear it and wait until ready for next packet */ - if (!(Endpoint_BytesInEndpoint())) - { - Endpoint_ClearOUT(); - - while (!(Endpoint_IsOUTReceived())) - { - if (USB_DeviceState == DEVICE_STATE_Unattached) - return; - } - } - - /* Read the byte from the USB interface and write to to the EEPROM */ - eeprom_write_byte((uint8_t*)StartAddr, Endpoint_Read_Byte()); - - /* Adjust counters */ - StartAddr++; - } - } - - /* Throw away the currently unused DFU file suffix */ - DiscardFillerBytes(DFU_FILE_SUFFIX_SIZE); - } - } - - Endpoint_ClearOUT(); - - Endpoint_ClearStatusStage(); - - break; - case DFU_UPLOAD: - Endpoint_ClearSETUP(); - - LEDs_TurnOnLEDs(LEDMASK_TX); - PulseMSRemaining.TxLEDPulse = TX_RX_LED_PULSE_MS; - - while (!(Endpoint_IsINReady())) - { - if (USB_DeviceState == DEVICE_STATE_Unattached) - return; - } - - if (DFU_State != dfuUPLOAD_IDLE) - { - if ((DFU_State == dfuERROR) && IS_ONEBYTE_COMMAND(SentCommand.Data, 0x01)) // Blank Check - { - /* Blank checking is performed in the DFU_DNLOAD request - if we get here we've told the host - that the memory isn't blank, and the host is requesting the first non-blank address */ - Endpoint_Write_Word_LE(StartAddr); - } - else - { - /* Idle state upload - send response to last issued command */ - Endpoint_Write_Byte(ResponseByte); - } - } - else - { - /* Determine the number of bytes remaining in the current block */ - uint16_t BytesRemaining = ((EndAddr - StartAddr) + 1); - - if (IS_ONEBYTE_COMMAND(SentCommand.Data, 0x00)) // Read FLASH - { - /* Calculate the number of words to be written from the number of bytes to be written */ - uint16_t WordsRemaining = (BytesRemaining >> 1); - - union - { - uint16_t Words[2]; - uint32_t Long; - } CurrFlashAddress = {.Words = {StartAddr, Flash64KBPage}}; - - while (WordsRemaining--) - { - /* Check if endpoint is full - if so clear it and wait until ready for next packet */ - if (Endpoint_BytesInEndpoint() == FIXED_CONTROL_ENDPOINT_SIZE) - { - Endpoint_ClearIN(); - - while (!(Endpoint_IsINReady())) - { - if (USB_DeviceState == DEVICE_STATE_Unattached) - return; - } - } - - /* Read the flash word and send it via USB to the host */ - #if (FLASHEND > 0xFFFF) - Endpoint_Write_Word_LE(pgm_read_word_far(CurrFlashAddress.Long)); - #else - Endpoint_Write_Word_LE(pgm_read_word(CurrFlashAddress.Long)); - #endif - - /* Adjust counters */ - CurrFlashAddress.Long += 2; - } - - /* Once reading is complete, start address equals the end address */ - StartAddr = EndAddr; - } - else if (IS_ONEBYTE_COMMAND(SentCommand.Data, 0x02)) // Read EEPROM - { - while (BytesRemaining--) - { - /* Check if endpoint is full - if so clear it and wait until ready for next packet */ - if (Endpoint_BytesInEndpoint() == FIXED_CONTROL_ENDPOINT_SIZE) - { - Endpoint_ClearIN(); - - while (!(Endpoint_IsINReady())) - { - if (USB_DeviceState == DEVICE_STATE_Unattached) - return; - } - } - - /* Read the EEPROM byte and send it via USB to the host */ - Endpoint_Write_Byte(eeprom_read_byte((uint8_t*)StartAddr)); - - /* Adjust counters */ - StartAddr++; - } - } - - /* Return to idle state */ - DFU_State = dfuIDLE; - } - - Endpoint_ClearIN(); - - Endpoint_ClearStatusStage(); - break; - case DFU_GETSTATUS: - Endpoint_ClearSETUP(); - - /* Write 8-bit status value */ - Endpoint_Write_Byte(DFU_Status); - - /* Write 24-bit poll timeout value */ - Endpoint_Write_Byte(0); - Endpoint_Write_Word_LE(0); - - /* Write 8-bit state value */ - Endpoint_Write_Byte(DFU_State); - - /* Write 8-bit state string ID number */ - Endpoint_Write_Byte(0); - - Endpoint_ClearIN(); - - Endpoint_ClearStatusStage(); - break; - case DFU_CLRSTATUS: - Endpoint_ClearSETUP(); - - /* Reset the status value variable to the default OK status */ - DFU_Status = OK; - - Endpoint_ClearStatusStage(); - break; - case DFU_GETSTATE: - Endpoint_ClearSETUP(); - - /* Write the current device state to the endpoint */ - Endpoint_Write_Byte(DFU_State); - - Endpoint_ClearIN(); - - Endpoint_ClearStatusStage(); - break; - case DFU_ABORT: - Endpoint_ClearSETUP(); - - /* Turn off TX/RX status LEDs so that they're not left on when application starts */ - LEDs_TurnOffLEDs(LEDMASK_TX); - LEDs_TurnOffLEDs(LEDMASK_RX); - - /* Reset the current state variable to the default idle state */ - DFU_State = dfuIDLE; - - Endpoint_ClearStatusStage(); - break; - } -} - -/** Routine to discard the specified number of bytes from the control endpoint stream. This is used to - * discard unused bytes in the stream from the host, including the memory program block suffix. - * - * \param[in] NumberOfBytes Number of bytes to discard from the host from the control endpoint - */ -static void DiscardFillerBytes(uint8_t NumberOfBytes) -{ - while (NumberOfBytes--) - { - if (!(Endpoint_BytesInEndpoint())) - { - Endpoint_ClearOUT(); - - /* Wait until next data packet received */ - while (!(Endpoint_IsOUTReceived())) - { - if (USB_DeviceState == DEVICE_STATE_Unattached) - return; - } - } - else - { - Endpoint_Discard_Byte(); - } - } -} - -/** Routine to process an issued command from the host, via a DFU_DNLOAD request wrapper. This routine ensures - * that the command is allowed based on the current secure mode flag value, and passes the command off to the - * appropriate handler function. - */ -static void ProcessBootloaderCommand(void) -{ - /* Check if device is in secure mode */ -// if (IsSecure) -// { -// /* Don't process command unless it is a READ or chip erase command */ -// if (!(((SentCommand.Command == COMMAND_WRITE) && -// IS_TWOBYTE_COMMAND(SentCommand.Data, 0x00, 0xFF)) || -// (SentCommand.Command == COMMAND_READ))) -// { -// /* Set the state and status variables to indicate the error */ -// DFU_State = dfuERROR; -// DFU_Status = errWRITE; -// -// /* Stall command */ -// Endpoint_StallTransaction(); -// -// /* Don't process the command */ -// return; -// } -// } - - /* Dispatch the required command processing routine based on the command type */ - switch (SentCommand.Command) - { - case COMMAND_PROG_START: - ProcessMemProgCommand(); - break; - case COMMAND_DISP_DATA: - ProcessMemReadCommand(); - break; - case COMMAND_WRITE: - ProcessWriteCommand(); - break; - case COMMAND_READ: - ProcessReadCommand(); - break; - case COMMAND_CHANGE_BASE_ADDR: - if (IS_TWOBYTE_COMMAND(SentCommand.Data, 0x03, 0x00)) // Set 64KB flash page command - Flash64KBPage = SentCommand.Data[2]; - break; - } -} - -/** Routine to concatenate the given pair of 16-bit memory start and end addresses from the host, and store them - * in the StartAddr and EndAddr global variables. - */ -static void LoadStartEndAddresses(void) -{ - union - { - uint8_t Bytes[2]; - uint16_t Word; - } Address[2] = {{.Bytes = {SentCommand.Data[2], SentCommand.Data[1]}}, - {.Bytes = {SentCommand.Data[4], SentCommand.Data[3]}}}; - - /* Load in the start and ending read addresses from the sent data packet */ - StartAddr = Address[0].Word; - EndAddr = Address[1].Word; -} - -/** Handler for a Memory Program command issued by the host. This routine handles the preparations needed - * to write subsequent data from the host into the specified memory. - */ -static void ProcessMemProgCommand(void) -{ - if (IS_ONEBYTE_COMMAND(SentCommand.Data, 0x00) || // Write FLASH command - IS_ONEBYTE_COMMAND(SentCommand.Data, 0x01)) // Write EEPROM command - { - /* Load in the start and ending read addresses */ - LoadStartEndAddresses(); - - /* If FLASH is being written to, we need to pre-erase the first page to write to */ - if (IS_ONEBYTE_COMMAND(SentCommand.Data, 0x00)) - { - union - { - uint16_t Words[2]; - uint32_t Long; - } CurrFlashAddress = {.Words = {StartAddr, Flash64KBPage}}; - - /* Erase the current page's temp buffer */ - boot_page_erase(CurrFlashAddress.Long); - boot_spm_busy_wait(); - } - - /* Set the state so that the next DNLOAD requests reads in the firmware */ - DFU_State = dfuDNLOAD_IDLE; - } -} - -/** Handler for a Memory Read command issued by the host. This routine handles the preparations needed - * to read subsequent data from the specified memory out to the host, as well as implementing the memory - * blank check command. - */ -static void ProcessMemReadCommand(void) -{ - if (IS_ONEBYTE_COMMAND(SentCommand.Data, 0x00) || // Read FLASH command - IS_ONEBYTE_COMMAND(SentCommand.Data, 0x02)) // Read EEPROM command - { - /* Load in the start and ending read addresses */ - LoadStartEndAddresses(); - - /* Set the state so that the next UPLOAD requests read out the firmware */ - DFU_State = dfuUPLOAD_IDLE; - } - else if (IS_ONEBYTE_COMMAND(SentCommand.Data, 0x01)) // Blank check FLASH command - { - uint32_t CurrFlashAddress = 0; - - while (CurrFlashAddress < BOOT_START_ADDR) - { - /* Check if the current byte is not blank */ - #if (FLASHEND > 0xFFFF) - if (pgm_read_byte_far(CurrFlashAddress) != 0xFF) - #else - if (pgm_read_byte(CurrFlashAddress) != 0xFF) - #endif - { - /* Save the location of the first non-blank byte for response back to the host */ - Flash64KBPage = (CurrFlashAddress >> 16); - StartAddr = CurrFlashAddress; - - /* Set state and status variables to the appropriate error values */ - DFU_State = dfuERROR; - DFU_Status = errCHECK_ERASED; - - break; - } - - CurrFlashAddress++; - } - } -} - -/** Handler for a Data Write command issued by the host. This routine handles non-programming commands such as - * bootloader exit (both via software jumps and hardware watchdog resets) and flash memory erasure. - */ -static void ProcessWriteCommand(void) -{ - if (IS_ONEBYTE_COMMAND(SentCommand.Data, 0x03)) // Start application - { - /* Indicate that the bootloader is terminating */ - WaitForExit = true; - - /* Check if data supplied for the Start Program command - no data executes the program */ - if (SentCommand.DataSize) - { - if (SentCommand.Data[1] == 0x01) // Start via jump - { - union - { - uint8_t Bytes[2]; - AppPtr_t FuncPtr; - } Address = {.Bytes = {SentCommand.Data[4], SentCommand.Data[3]}}; - - /* Load in the jump address into the application start address pointer */ - AppStartPtr = Address.FuncPtr; - } - } - else - { - if (SentCommand.Data[1] == 0x00) // Start via watchdog - { - /* Start the watchdog to reset the AVR once the communications are finalized */ - wdt_enable(WDTO_250MS); - } - else // Start via jump - { - /* Set the flag to terminate the bootloader at next opportunity */ - RunBootloader = false; - } - } - } - else if (IS_TWOBYTE_COMMAND(SentCommand.Data, 0x00, 0xFF)) // Erase flash - { - uint32_t CurrFlashAddress = 0; - - /* Clear the application section of flash */ - while (CurrFlashAddress < BOOT_START_ADDR) - { - boot_page_erase(CurrFlashAddress); - boot_spm_busy_wait(); - boot_page_write(CurrFlashAddress); - boot_spm_busy_wait(); - - CurrFlashAddress += SPM_PAGESIZE; - } - - /* Re-enable the RWW section of flash as writing to the flash locks it out */ - boot_rww_enable(); - - /* Memory has been erased, reset the security bit so that programming/reading is allowed */ -// IsSecure = false; - } -} - -/** Handler for a Data Read command issued by the host. This routine handles bootloader information retrieval - * commands such as device signature and bootloader version retrieval. - */ -static void ProcessReadCommand(void) -{ - const uint8_t BootloaderInfo[3] = {BOOTLOADER_VERSION, BOOTLOADER_ID_BYTE1, BOOTLOADER_ID_BYTE2}; - const uint8_t SignatureInfo[3] = {AVR_SIGNATURE_1, AVR_SIGNATURE_2, AVR_SIGNATURE_3}; - - uint8_t DataIndexToRead = SentCommand.Data[1]; - - if (IS_ONEBYTE_COMMAND(SentCommand.Data, 0x00)) // Read bootloader info - ResponseByte = BootloaderInfo[DataIndexToRead]; - else if (IS_ONEBYTE_COMMAND(SentCommand.Data, 0x01)) // Read signature byte - ResponseByte = SignatureInfo[DataIndexToRead - 0x30]; -} diff --git a/build/linux/work/hardware/arduino/firmwares/arduino-usbdfu/Arduino-usbdfu.h b/build/linux/work/hardware/arduino/firmwares/arduino-usbdfu/Arduino-usbdfu.h deleted file mode 100644 index 4fb236e64..000000000 --- a/build/linux/work/hardware/arduino/firmwares/arduino-usbdfu/Arduino-usbdfu.h +++ /dev/null @@ -1,220 +0,0 @@ -/* - LUFA Library - Copyright (C) Dean Camera, 2010. - - dean [at] fourwalledcubicle [dot] com - www.fourwalledcubicle.com -*/ - -/* - Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com) - - Permission to use, copy, modify, distribute, and sell this - software and its documentation for any purpose is hereby granted - without fee, provided that the above copyright notice appear in - all copies and that both that the copyright notice and this - permission notice and warranty disclaimer appear in supporting - documentation, and that the name of the author not be used in - advertising or publicity pertaining to distribution of the - software without specific, written prior permission. - - The author disclaim all warranties with regard to this - software, including all implied warranties of merchantability - and fitness. In no event shall the author be liable for any - special, indirect or consequential damages or any damages - whatsoever resulting from loss of use, data or profits, whether - in an action of contract, negligence or other tortious action, - arising out of or in connection with the use or performance of - this software. -*/ - -/** \file - * - * Header file for Arduino-usbdfu.c. - */ - -#ifndef _ARDUINO_USB_DFU_BOOTLOADER_H_ -#define _ARDUINO_USB_DFU_BOOTLOADER_H_ - - /* Includes: */ - #include - #include - #include - #include - #include - #include - #include - #include - - #include "Descriptors.h" - - #include - #include - - /* Macros: */ - /** LED mask for the library LED driver, to indicate TX activity. */ - #define LEDMASK_TX LEDS_LED1 - - /** LED mask for the library LED driver, to indicate RX activity. */ - #define LEDMASK_RX LEDS_LED2 - - /** LED mask for the library LED driver, to indicate that an error has occurred in the USB interface. */ - #define LEDMASK_ERROR (LEDS_LED1 | LEDS_LED2) - - /** LED mask for the library LED driver, to indicate that the USB interface is busy. */ - #define LEDMASK_BUSY (LEDS_LED1 | LEDS_LED2) - - /** Configuration define. Define this token to true to case the bootloader to reject all memory commands - * until a memory erase has been performed. When used in conjunction with the lockbits of the AVR, this - * can protect the AVR's firmware from being dumped from a secured AVR. When false, memory operations are - * allowed at any time. - */ -// #define SECURE_MODE false - - /** Major bootloader version number. */ - #define BOOTLOADER_VERSION_MINOR 2 - - /** Minor bootloader version number. */ - #define BOOTLOADER_VERSION_REV 0 - - /** Complete bootloader version number expressed as a packed byte, constructed from the - * two individual bootloader version macros. - */ - #define BOOTLOADER_VERSION ((BOOTLOADER_VERSION_MINOR << 4) | BOOTLOADER_VERSION_REV) - - /** First byte of the bootloader identification bytes, used to identify a device's bootloader. */ - #define BOOTLOADER_ID_BYTE1 0xDC - - /** Second byte of the bootloader identification bytes, used to identify a device's bootloader. */ - #define BOOTLOADER_ID_BYTE2 0xFB - - /** Convenience macro, used to determine if the issued command is the given one-byte long command. - * - * \param[in] dataarr Command byte array to check against - * \param[in] cb1 First command byte to check - */ - #define IS_ONEBYTE_COMMAND(dataarr, cb1) (dataarr[0] == (cb1)) - - /** Convenience macro, used to determine if the issued command is the given two-byte long command. - * - * \param[in] dataarr Command byte array to check against - * \param[in] cb1 First command byte to check - * \param[in] cb2 Second command byte to check - */ - #define IS_TWOBYTE_COMMAND(dataarr, cb1, cb2) ((dataarr[0] == (cb1)) && (dataarr[1] == (cb2))) - - /** Length of the DFU file suffix block, appended to the end of each complete memory write command. - * The DFU file suffix is currently unused (but is designed to give extra file information, such as - * a CRC of the complete firmware for error checking) and so is discarded. - */ - #define DFU_FILE_SUFFIX_SIZE 16 - - /** Length of the DFU file filler block, appended to the start of each complete memory write command. - * Filler bytes are added to the start of each complete memory write command, and must be discarded. - */ - #define DFU_FILLER_BYTES_SIZE 26 - - /** DFU class command request to detach from the host. */ - #define DFU_DETATCH 0x00 - - /** DFU class command request to send data from the host to the bootloader. */ - #define DFU_DNLOAD 0x01 - - /** DFU class command request to send data from the bootloader to the host. */ - #define DFU_UPLOAD 0x02 - - /** DFU class command request to get the current DFU status and state from the bootloader. */ - #define DFU_GETSTATUS 0x03 - - /** DFU class command request to reset the current DFU status and state variables to their defaults. */ - #define DFU_CLRSTATUS 0x04 - - /** DFU class command request to get the current DFU state of the bootloader. */ - #define DFU_GETSTATE 0x05 - - /** DFU class command request to abort the current multi-request transfer and return to the dfuIDLE state. */ - #define DFU_ABORT 0x06 - - /** DFU command to begin programming the device's memory. */ - #define COMMAND_PROG_START 0x01 - - /** DFU command to begin reading the device's memory. */ - #define COMMAND_DISP_DATA 0x03 - - /** DFU command to issue a write command. */ - #define COMMAND_WRITE 0x04 - - /** DFU command to issue a read command. */ - #define COMMAND_READ 0x05 - - /** DFU command to issue a memory base address change command, to set the current 64KB flash page - * that subsequent flash operations should use. */ - #define COMMAND_CHANGE_BASE_ADDR 0x06 - - /* Type Defines: */ - /** Type define for a non-returning function pointer to the loaded application. */ - typedef void (*AppPtr_t)(void) ATTR_NO_RETURN; - - /** Type define for a structure containing a complete DFU command issued by the host. */ - typedef struct - { - uint8_t Command; /**< Single byte command to perform, one of the COMMAND_* macro values */ - uint8_t Data[5]; /**< Command parameters */ - uint16_t DataSize; /**< Size of the command parameters */ - } DFU_Command_t; - - /* Enums: */ - /** DFU bootloader states. Refer to the DFU class specification for information on each state. */ - enum DFU_State_t - { - appIDLE = 0, - appDETACH = 1, - dfuIDLE = 2, - dfuDNLOAD_SYNC = 3, - dfuDNBUSY = 4, - dfuDNLOAD_IDLE = 5, - dfuMANIFEST_SYNC = 6, - dfuMANIFEST = 7, - dfuMANIFEST_WAIT_RESET = 8, - dfuUPLOAD_IDLE = 9, - dfuERROR = 10 - }; - - /** DFU command status error codes. Refer to the DFU class specification for information on each error code. */ - enum DFU_Status_t - { - OK = 0, - errTARGET = 1, - errFILE = 2, - errWRITE = 3, - errERASE = 4, - errCHECK_ERASED = 5, - errPROG = 6, - errVERIFY = 7, - errADDRESS = 8, - errNOTDONE = 9, - errFIRMWARE = 10, - errVENDOR = 11, - errUSBR = 12, - errPOR = 13, - errUNKNOWN = 14, - errSTALLEDPKT = 15 - }; - - /* Function Prototypes: */ - void SetupHardware(void); - void ResetHardware(void); - - void EVENT_USB_Device_UnhandledControlRequest(void); - - #if defined(INCLUDE_FROM_BOOTLOADER_C) - static void DiscardFillerBytes(uint8_t NumberOfBytes); - static void ProcessBootloaderCommand(void); - static void LoadStartEndAddresses(void); - static void ProcessMemProgCommand(void); - static void ProcessMemReadCommand(void); - static void ProcessWriteCommand(void); - static void ProcessReadCommand(void); - #endif - -#endif /* _ARDUINO_USB_DFU_BOOTLOADER_H_ */ diff --git a/build/linux/work/hardware/arduino/firmwares/arduino-usbdfu/Board/LEDs.h b/build/linux/work/hardware/arduino/firmwares/arduino-usbdfu/Board/LEDs.h deleted file mode 100644 index 152e8f571..000000000 --- a/build/linux/work/hardware/arduino/firmwares/arduino-usbdfu/Board/LEDs.h +++ /dev/null @@ -1,110 +0,0 @@ -/* - LUFA Library - Copyright (C) Dean Camera, 2010. - - dean [at] fourwalledcubicle [dot] com - www.fourwalledcubicle.com -*/ - -/* - Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com) - - Permission to use, copy, modify, distribute, and sell this - software and its documentation for any purpose is hereby granted - without fee, provided that the above copyright notice appear in - all copies and that both that the copyright notice and this - permission notice and warranty disclaimer appear in supporting - documentation, and that the name of the author not be used in - advertising or publicity pertaining to distribution of the - software without specific, written prior permission. - - The author disclaim all warranties with regard to this - software, including all implied warranties of merchantability - and fitness. In no event shall the author be liable for any - special, indirect or consequential damages or any damages - whatsoever resulting from loss of use, data or profits, whether - in an action of contract, negligence or other tortious action, - arising out of or in connection with the use or performance of - this software. -*/ - -/* - Board LEDs driver for the Benito board, from www.dorkbotpdx.org. -*/ - -#ifndef __LEDS_ARDUINOUNO_H__ -#define __LEDS_ARDUINOUNO_H__ - - /* Includes: */ - #include - -/* Enable C linkage for C++ Compilers: */ - #if defined(__cplusplus) - extern "C" { - #endif - - /* Preprocessor Checks: */ - #if !defined(INCLUDE_FROM_LEDS_H) - #error Do not include this file directly. Include LUFA/Drivers/Board/LEDS.h instead. - #endif - - /* Public Interface - May be used in end-application: */ - /* Macros: */ - /** LED mask for the first LED on the board. */ - #define LEDS_LED1 (1 << 5) - - /** LED mask for the second LED on the board. */ - #define LEDS_LED2 (1 << 4) - - /** LED mask for all the LEDs on the board. */ - #define LEDS_ALL_LEDS (LEDS_LED1 | LEDS_LED2) - - /** LED mask for the none of the board LEDs */ - #define LEDS_NO_LEDS 0 - - /* Inline Functions: */ - #if !defined(__DOXYGEN__) - static inline void LEDs_Init(void) - { - DDRD |= LEDS_ALL_LEDS; - PORTD |= LEDS_ALL_LEDS; - } - - static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask) - { - PORTD &= ~LEDMask; - } - - static inline void LEDs_TurnOffLEDs(const uint8_t LEDMask) - { - PORTD |= LEDMask; - } - - static inline void LEDs_SetAllLEDs(const uint8_t LEDMask) - { - PORTD = ((PORTD | LEDS_ALL_LEDS) & ~LEDMask); - } - - static inline void LEDs_ChangeLEDs(const uint8_t LEDMask, const uint8_t ActiveMask) - { - PORTD = ((PORTD | ActiveMask) & ~LEDMask); - } - - static inline void LEDs_ToggleLEDs(const uint8_t LEDMask) - { - PORTD ^= LEDMask; - } - - static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT; - static inline uint8_t LEDs_GetLEDs(void) - { - return (PORTD & LEDS_ALL_LEDS); - } - #endif - - /* Disable C linkage for C++ Compilers: */ - #if defined(__cplusplus) - } - #endif - -#endif diff --git a/build/linux/work/hardware/arduino/firmwares/arduino-usbdfu/Descriptors.c b/build/linux/work/hardware/arduino/firmwares/arduino-usbdfu/Descriptors.c deleted file mode 100644 index 4deaa0625..000000000 --- a/build/linux/work/hardware/arduino/firmwares/arduino-usbdfu/Descriptors.c +++ /dev/null @@ -1,189 +0,0 @@ -/* - LUFA Library - Copyright (C) Dean Camera, 2010. - - dean [at] fourwalledcubicle [dot] com - www.fourwalledcubicle.com -*/ - -/* - Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com) - - Permission to use, copy, modify, distribute, and sell this - software and its documentation for any purpose is hereby granted - without fee, provided that the above copyright notice appear in - all copies and that both that the copyright notice and this - permission notice and warranty disclaimer appear in supporting - documentation, and that the name of the author not be used in - advertising or publicity pertaining to distribution of the - software without specific, written prior permission. - - The author disclaim all warranties with regard to this - software, including all implied warranties of merchantability - and fitness. In no event shall the author be liable for any - special, indirect or consequential damages or any damages - whatsoever resulting from loss of use, data or profits, whether - in an action of contract, negligence or other tortious action, - arising out of or in connection with the use or performance of - this software. -*/ - -/** \file - * - * USB Device Descriptors, for library use when in USB device mode. Descriptors are special - * computer-readable structures which the host requests upon device enumeration, to determine - * the device's capabilities and functions. - */ - -#include "Descriptors.h" - -/** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall - * device characteristics, including the supported USB version, control endpoint size and the - * number of device configurations. The descriptor is read out by the USB host when the enumeration - * process begins. - */ -USB_Descriptor_Device_t DeviceDescriptor = -{ - .Header = {.Size = sizeof(USB_Descriptor_Device_t), .Type = DTYPE_Device}, - - .USBSpecification = VERSION_BCD(01.10), - .Class = 0x00, - .SubClass = 0x00, - .Protocol = 0x00, - - .Endpoint0Size = FIXED_CONTROL_ENDPOINT_SIZE, - - .VendorID = 0x03EB, // Atmel - .ProductID = PRODUCT_ID_CODE, // MCU-dependent - .ReleaseNumber = 0x0000, - - .ManufacturerStrIndex = NO_DESCRIPTOR, - .ProductStrIndex = 0x01, - .SerialNumStrIndex = NO_DESCRIPTOR, - - .NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS -}; - -/** Configuration descriptor structure. This descriptor, located in FLASH memory, describes the usage - * of the device in one of its supported configurations, including information about any device interfaces - * and endpoints. The descriptor is read out by the USB host during the enumeration process when selecting - * a configuration so that the host may correctly communicate with the USB device. - */ -USB_Descriptor_Configuration_t ConfigurationDescriptor = -{ - .Config = - { - .Header = {.Size = sizeof(USB_Descriptor_Configuration_Header_t), .Type = DTYPE_Configuration}, - - .TotalConfigurationSize = sizeof(USB_Descriptor_Configuration_t), - .TotalInterfaces = 1, - - .ConfigurationNumber = 1, - .ConfigurationStrIndex = NO_DESCRIPTOR, - - .ConfigAttributes = USB_CONFIG_ATTR_BUSPOWERED, - - .MaxPowerConsumption = USB_CONFIG_POWER_MA(100) - }, - - .DFU_Interface = - { - .Header = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface}, - - .InterfaceNumber = 0, - .AlternateSetting = 0, - - .TotalEndpoints = 0, - - .Class = 0xFE, - .SubClass = 0x01, - .Protocol = 0x02, - - .InterfaceStrIndex = NO_DESCRIPTOR - }, - - .DFU_Functional = - { - .Header = {.Size = sizeof(USB_DFU_Functional_Descriptor_t), .Type = DTYPE_DFUFunctional}, - - .Attributes = (ATTR_CAN_UPLOAD | ATTR_CAN_DOWNLOAD), - - .DetachTimeout = 0x0000, - .TransferSize = 0x0c00, - - .DFUSpecification = VERSION_BCD(01.01) - } -}; - -/** Language descriptor structure. This descriptor, located in FLASH memory, is returned when the host requests - * the string descriptor with index 0 (the first index). It is actually an array of 16-bit integers, which indicate - * via the language ID table available at USB.org what languages the device supports for its string descriptors. - */ -USB_Descriptor_String_t LanguageString = -{ - .Header = {.Size = USB_STRING_LEN(1), .Type = DTYPE_String}, - - .UnicodeString = {LANGUAGE_ID_ENG} -}; - -/** Product descriptor string. This is a Unicode string containing the product's details in human readable form, - * and is read out upon request by the host when the appropriate string ID is requested, listed in the Device - * Descriptor. - */ -USB_Descriptor_String_t ProductString = -{ - #if (ARDUINO_MODEL_PID == ARDUINO_UNO_PID) - .Header = {.Size = USB_STRING_LEN(15), .Type = DTYPE_String}, - - .UnicodeString = L"Arduino Uno DFU" - #elif (ARDUINO_MODEL_PID == ARDUINO_MEGA2560_PID) - .Header = {.Size = USB_STRING_LEN(21), .Type = DTYPE_String}, - - .UnicodeString = L"Arduino Mega 2560 DFU" - #endif -}; - -/** This function is called by the library when in device mode, and must be overridden (see library "USB Descriptors" - * documentation) by the application code so that the address and size of a requested descriptor can be given - * to the USB library. When the device receives a Get Descriptor request on the control endpoint, this function - * is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the - * USB host. - */ -uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, - const uint8_t wIndex, - void** const DescriptorAddress) -{ - const uint8_t DescriptorType = (wValue >> 8); - const uint8_t DescriptorNumber = (wValue & 0xFF); - - void* Address = NULL; - uint16_t Size = NO_DESCRIPTOR; - - switch (DescriptorType) - { - case DTYPE_Device: - Address = &DeviceDescriptor; - Size = sizeof(USB_Descriptor_Device_t); - break; - case DTYPE_Configuration: - Address = &ConfigurationDescriptor; - Size = sizeof(USB_Descriptor_Configuration_t); - break; - case DTYPE_String: - if (!(DescriptorNumber)) - { - Address = &LanguageString; - Size = LanguageString.Header.Size; - } - else - { - Address = &ProductString; - Size = ProductString.Header.Size; - } - - break; - } - - *DescriptorAddress = Address; - return Size; -} diff --git a/build/linux/work/hardware/arduino/firmwares/arduino-usbdfu/Descriptors.h b/build/linux/work/hardware/arduino/firmwares/arduino-usbdfu/Descriptors.h deleted file mode 100644 index 6c93f20cd..000000000 --- a/build/linux/work/hardware/arduino/firmwares/arduino-usbdfu/Descriptors.h +++ /dev/null @@ -1,177 +0,0 @@ -/* - LUFA Library - Copyright (C) Dean Camera, 2010. - - dean [at] fourwalledcubicle [dot] com - www.fourwalledcubicle.com -*/ - -/* - Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com) - - Permission to use, copy, modify, distribute, and sell this - software and its documentation for any purpose is hereby granted - without fee, provided that the above copyright notice appear in - all copies and that both that the copyright notice and this - permission notice and warranty disclaimer appear in supporting - documentation, and that the name of the author not be used in - advertising or publicity pertaining to distribution of the - software without specific, written prior permission. - - The author disclaim all warranties with regard to this - software, including all implied warranties of merchantability - and fitness. In no event shall the author be liable for any - special, indirect or consequential damages or any damages - whatsoever resulting from loss of use, data or profits, whether - in an action of contract, negligence or other tortious action, - arising out of or in connection with the use or performance of - this software. -*/ - -/** \file - * - * Header file for Descriptors.c. - */ - -#ifndef _DESCRIPTORS_H_ -#define _DESCRIPTORS_H_ - - /* Includes: */ - #include - - /* Product-specific definitions: */ - #define ARDUINO_UNO_PID 0x0001 - #define ARDUINO_MEGA2560_PID 0x0010 - - /* Macros: */ - /** Descriptor type value for a DFU class functional descriptor. */ - #define DTYPE_DFUFunctional 0x21 - - /** DFU attribute mask, indicating that the DFU device will detach and re-attach when a DFU_DETACH - * command is issued, rather than the host issuing a USB Reset. - */ - #define ATTR_WILL_DETATCH (1 << 3) - - /** DFU attribute mask, indicating that the DFU device can communicate during the manifestation phase - * (memory programming phase). - */ - #define ATTR_MANEFESTATION_TOLLERANT (1 << 2) - - /** DFU attribute mask, indicating that the DFU device can accept DFU_UPLOAD requests to send data from - * the device to the host. - */ - #define ATTR_CAN_UPLOAD (1 << 1) - - /** DFU attribute mask, indicating that the DFU device can accept DFU_DNLOAD requests to send data from - * the host to the device. - */ - #define ATTR_CAN_DOWNLOAD (1 << 0) - - #if defined(__AVR_AT90USB1287__) - #define PRODUCT_ID_CODE 0x2FFB - #define AVR_SIGNATURE_1 0x1E - #define AVR_SIGNATURE_2 0x97 - #define AVR_SIGNATURE_3 0x82 - #elif defined(__AVR_AT90USB1286__) - #define PRODUCT_ID_CODE 0x2FFB - #define AVR_SIGNATURE_1 0x1E - #define AVR_SIGNATURE_2 0x97 - #define AVR_SIGNATURE_3 0x82 - #elif defined(__AVR_AT90USB647__) - #define PRODUCT_ID_CODE 0x2FF9 - #define AVR_SIGNATURE_1 0x1E - #define AVR_SIGNATURE_2 0x96 - #define AVR_SIGNATURE_3 0x82 - #elif defined(__AVR_AT90USB646__) - #define PRODUCT_ID_CODE 0x2FF9 - #define AVR_SIGNATURE_1 0x1E - #define AVR_SIGNATURE_2 0x96 - #define AVR_SIGNATURE_3 0x82 - #elif defined(__AVR_ATmega32U6__) - #define PRODUCT_ID_CODE 0x2FFB - #define AVR_SIGNATURE_1 0x1E - #define AVR_SIGNATURE_2 0x95 - #define AVR_SIGNATURE_3 0x88 - #elif defined(__AVR_ATmega32U4__) - #define PRODUCT_ID_CODE 0x2FF4 - #define AVR_SIGNATURE_1 0x1E - #define AVR_SIGNATURE_2 0x95 - #define AVR_SIGNATURE_3 0x87 - #elif defined(__AVR_ATmega32U2__) - #define PRODUCT_ID_CODE 0x2FF0 - #define AVR_SIGNATURE_1 0x1E - #define AVR_SIGNATURE_2 0x95 - #define AVR_SIGNATURE_3 0x8A - #elif defined(__AVR_ATmega16U4__) - #define PRODUCT_ID_CODE 0x2FF3 - #define AVR_SIGNATURE_1 0x1E - #define AVR_SIGNATURE_2 0x94 - #define AVR_SIGNATURE_3 0x88 - #elif defined(__AVR_ATmega16U2__) - #define PRODUCT_ID_CODE 0x2FEF - #define AVR_SIGNATURE_1 0x1E - #define AVR_SIGNATURE_2 0x94 - #define AVR_SIGNATURE_3 0x89 - #elif defined(__AVR_AT90USB162__) - #define PRODUCT_ID_CODE 0x2FFA - #define AVR_SIGNATURE_1 0x1E - #define AVR_SIGNATURE_2 0x94 - #define AVR_SIGNATURE_3 0x82 - #elif defined(__AVR_AT90USB82__) - #define PRODUCT_ID_CODE 0x2FEE - #define AVR_SIGNATURE_1 0x1E - #define AVR_SIGNATURE_2 0x93 - #define AVR_SIGNATURE_3 0x89 - #elif defined(__AVR_ATmega8U2__) - #define PRODUCT_ID_CODE 0x2FF7 - #define AVR_SIGNATURE_1 0x1E - #define AVR_SIGNATURE_2 0x93 - #define AVR_SIGNATURE_3 0x82 - #else - #error The selected AVR part is not currently supported by this bootloader. - #endif - - #if !defined(PRODUCT_ID_CODE) - #error Current AVR model is not supported by this bootloader. - #endif - - /* Type Defines: */ - /** Type define for a DFU class function descriptor. This descriptor gives DFU class information - * to the host when read, indicating the DFU device's capabilities. - */ - typedef struct - { - USB_Descriptor_Header_t Header; /**< Standard descriptor header structure */ - - uint8_t Attributes; /**< DFU device attributes, a mask comprising of the - * ATTR_* macros listed in this source file - */ - uint16_t DetachTimeout; /**< Timeout in milliseconds between a USB_DETACH - * command being issued and the device detaching - * from the USB bus - */ - uint16_t TransferSize; /**< Maximum number of bytes the DFU device can accept - * from the host in a transaction - */ - uint16_t DFUSpecification; /**< BCD packed DFU specification number this DFU - * device complies with - */ - } USB_DFU_Functional_Descriptor_t; - - /** Type define for the device configuration descriptor structure. This must be defined in the - * application code, as the configuration descriptor contains several sub-descriptors which - * vary between devices, and which describe the device's usage to the host. - */ - typedef struct - { - USB_Descriptor_Configuration_Header_t Config; - USB_Descriptor_Interface_t DFU_Interface; - USB_DFU_Functional_Descriptor_t DFU_Functional; - } USB_Descriptor_Configuration_t; - - /* Function Prototypes: */ - uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, - const uint8_t wIndex, - void** const DescriptorAddress) ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3); - -#endif diff --git a/build/linux/work/hardware/arduino/firmwares/arduino-usbdfu/makefile b/build/linux/work/hardware/arduino/firmwares/arduino-usbdfu/makefile deleted file mode 100644 index 1fb4ed346..000000000 --- a/build/linux/work/hardware/arduino/firmwares/arduino-usbdfu/makefile +++ /dev/null @@ -1,710 +0,0 @@ -# Hey Emacs, this is a -*- makefile -*- -#---------------------------------------------------------------------------- -# WinAVR Makefile Template written by Eric B. Weddington, Jrg Wunsch, et al. -# >> Modified for use with the LUFA project. << -# -# Released to the Public Domain -# -# Additional material for this makefile was written by: -# Peter Fleury -# Tim Henigan -# Colin O'Flynn -# Reiner Patommel -# Markus Pfaff -# Sander Pool -# Frederik Rouleau -# Carlos Lamas -# Dean Camera -# Opendous Inc. -# Denver Gingerich -# -#---------------------------------------------------------------------------- -# On command line: -# -# make all = Make software. -# -# make clean = Clean out built project files. -# -# make coff = Convert ELF to AVR COFF. -# -# make extcoff = Convert ELF to AVR Extended COFF. -# -# make program = Download the hex file to the device, using avrdude. -# Please customize the avrdude settings below first! -# -# make doxygen = Generate DoxyGen documentation for the project (must have -# DoxyGen installed) -# -# make debug = Start either simulavr or avarice as specified for debugging, -# with avr-gdb or avr-insight as the front end for debugging. -# -# make filename.s = Just compile filename.c into the assembler code only. -# -# make filename.i = Create a preprocessed source file for use in submitting -# bug reports to the GCC project. -# -# To rebuild project do "make clean" then "make all". -#---------------------------------------------------------------------------- - - -# MCU name -MCU = atmega8u2 -MCU_AVRDUDE = at90usb82 - -# Specify the Arduino model using the assigned PID. This is used by Descriptors.c -# to set the product descriptor string (for DFU we must use the PID for each -# chip that dfu-bootloader or Flip expect) -# Uno PID: -ARDUINO_MODEL_PID = 0x0001 -# Mega 2560 PID: -#ARDUINO_MODEL_PID = 0x0010 - -# Target board (see library "Board Types" documentation, NONE for projects not requiring -# LUFA board drivers). If USER is selected, put custom board drivers in a directory called -# "Board" inside the application directory. -BOARD = USER - - -# Processor frequency. -# This will define a symbol, F_CPU, in all source code files equal to the -# processor frequency in Hz. You can then use this symbol in your source code to -# calculate timings. Do NOT tack on a 'UL' at the end, this will be done -# automatically to create a 32-bit value in your source code. -# -# This will be an integer division of F_CLOCK below, as it is sourced by -# F_CLOCK after it has run through any CPU prescalers. Note that this value -# does not *change* the processor frequency - it should merely be updated to -# reflect the processor speed set externally so that the code can use accurate -# software delays. -F_CPU = 16000000 - - -# Input clock frequency. -# This will define a symbol, F_CLOCK, in all source code files equal to the -# input clock frequency (before any prescaling is performed) in Hz. This value may -# differ from F_CPU if prescaling is used on the latter, and is required as the -# raw input clock is fed directly to the PLL sections of the AVR for high speed -# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' -# at the end, this will be done automatically to create a 32-bit value in your -# source code. -# -# If no clock division is performed on the input clock inside the AVR (via the -# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. -F_CLOCK = $(F_CPU) - - -# Starting byte address of the bootloader, as a byte address - computed via the formula -# BOOT_START = ((TOTAL_FLASH_BYTES - BOOTLOADER_SECTION_SIZE_BYTES) * 1024) -# -# Note that the bootloader size and start address given in AVRStudio is in words and not -# bytes, and so will need to be doubled to obtain the byte address needed by AVR-GCC. -BOOT_START = 0x1000 - - -# Output format. (can be srec, ihex, binary) -FORMAT = ihex - - -# Target file name (without extension). -TARGET = Arduino-usbdfu - - -# Object files directory -# To put object files in current directory, use a dot (.), do NOT make -# this an empty or blank macro! -OBJDIR = . - - -# Path to the LUFA library -LUFA_PATH = ../.. - - -# LUFA library compile-time options and predefined tokens -LUFA_OPTS = -D USB_DEVICE_ONLY -LUFA_OPTS += -D DEVICE_STATE_AS_GPIOR=0 -LUFA_OPTS += -D CONTROL_ONLY_DEVICE -LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=32 -LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1 -LUFA_OPTS += -D USE_RAM_DESCRIPTORS -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)" -LUFA_OPTS += -D NO_INTERNAL_SERIAL -LUFA_OPTS += -D NO_DEVICE_SELF_POWER -LUFA_OPTS += -D NO_DEVICE_REMOTE_WAKEUP -LUFA_OPTS += -D NO_STREAM_CALLBACKS - - -# Create the LUFA source path variables by including the LUFA root makefile -include $(LUFA_PATH)/LUFA/makefile - - -# List C source files here. (C dependencies are automatically generated.) -SRC = $(TARGET).c \ - Descriptors.c \ - $(LUFA_SRC_USB) \ - - -# List C++ source files here. (C dependencies are automatically generated.) -CPPSRC = - - -# List Assembler source files here. -# Make them always end in a capital .S. Files ending in a lowercase .s -# will not be considered source files but generated files (assembler -# output from the compiler), and will be deleted upon "make clean"! -# Even though the DOS/Win* filesystem matches both .s and .S the same, -# it will preserve the spelling of the filenames, and gcc itself does -# care about how the name is spelled on its command-line. -ASRC = - - -# Optimization level, can be [0, 1, 2, 3, s]. -# 0 = turn off optimization. s = optimize for size. -# (Note: 3 is not always the best optimization level. See avr-libc FAQ.) -OPT = s - - -# Debugging format. -# Native formats for AVR-GCC's -g are dwarf-2 [default] or stabs. -# AVR Studio 4.10 requires dwarf-2. -# AVR [Extended] COFF format requires stabs, plus an avr-objcopy run. -DEBUG = dwarf-2 - - -# List any extra directories to look for include files here. -# Each directory must be seperated by a space. -# Use forward slashes for directory separators. -# For a directory that has spaces, enclose it in quotes. -EXTRAINCDIRS = $(LUFA_PATH)/ - - -# Compiler flag to set the C Standard level. -# c89 = "ANSI" C -# gnu89 = c89 plus GCC extensions -# c99 = ISO C99 standard (not yet fully implemented) -# gnu99 = c99 plus GCC extensions -CSTANDARD = -std=c99 - - -# Place -D or -U options here for C sources -CDEFS = -DF_CPU=$(F_CPU)UL -CDEFS += -DARDUINO_MODEL_PID=$(ARDUINO_MODEL_PID) -CDEFS += -DF_CLOCK=$(F_CLOCK)UL -CDEFS += -DBOARD=BOARD_$(BOARD) -CDEFS += -DBOOT_START_ADDR=$(BOOT_START)UL -CDEFS += -DTX_RX_LED_PULSE_MS=3 -CDEFS += $(LUFA_OPTS) - - -# Place -D or -U options here for ASM sources -ADEFS = -DF_CPU=$(F_CPU) -ADEFS += -DF_CLOCK=$(F_CLOCK)UL -ADEFS += -DBOARD=BOARD_$(BOARD) -CDEFS += -DBOOT_START_ADDR=$(BOOT_START)UL -ADEFS += $(LUFA_OPTS) - -# Place -D or -U options here for C++ sources -CPPDEFS = -DF_CPU=$(F_CPU)UL -CPPDEFS += -DF_CLOCK=$(F_CLOCK)UL -CPPDEFS += -DBOARD=BOARD_$(BOARD) -CDEFS += -DBOOT_START_ADDR=$(BOOT_START)UL -CPPDEFS += $(LUFA_OPTS) -#CPPDEFS += -D__STDC_LIMIT_MACROS -#CPPDEFS += -D__STDC_CONSTANT_MACROS - - - -#---------------- Compiler Options C ---------------- -# -g*: generate debugging information -# -O*: optimization level -# -f...: tuning, see GCC manual and avr-libc documentation -# -Wall...: warning level -# -Wa,...: tell GCC to pass this to the assembler. -# -adhlns...: create assembler listing -CFLAGS = -g$(DEBUG) -CFLAGS += $(CDEFS) -CFLAGS += -O$(OPT) -CFLAGS += -funsigned-char -CFLAGS += -funsigned-bitfields -CFLAGS += -ffunction-sections -CFLAGS += -fno-inline-small-functions -CFLAGS += -fpack-struct -CFLAGS += -fshort-enums -CFLAGS += -fno-strict-aliasing -CFLAGS += -Wall -CFLAGS += -Wstrict-prototypes -#CFLAGS += -mshort-calls -#CFLAGS += -fno-unit-at-a-time -#CFLAGS += -Wundef -#CFLAGS += -Wunreachable-code -#CFLAGS += -Wsign-compare -CFLAGS += -Wa,-adhlns=$(<:%.c=$(OBJDIR)/%.lst) -CFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS)) -CFLAGS += $(CSTANDARD) - - -#---------------- Compiler Options C++ ---------------- -# -g*: generate debugging information -# -O*: optimization level -# -f...: tuning, see GCC manual and avr-libc documentation -# -Wall...: warning level -# -Wa,...: tell GCC to pass this to the assembler. -# -adhlns...: create assembler listing -CPPFLAGS = -g$(DEBUG) -CPPFLAGS += $(CPPDEFS) -CPPFLAGS += -O$(OPT) -CPPFLAGS += -funsigned-char -CPPFLAGS += -funsigned-bitfields -CPPFLAGS += -fpack-struct -CPPFLAGS += -fshort-enums -CPPFLAGS += -fno-exceptions -CPPFLAGS += -Wall -CPPFLAGS += -Wundef -#CPPFLAGS += -mshort-calls -#CPPFLAGS += -fno-unit-at-a-time -#CPPFLAGS += -Wstrict-prototypes -#CPPFLAGS += -Wunreachable-code -#CPPFLAGS += -Wsign-compare -CPPFLAGS += -Wa,-adhlns=$(<:%.cpp=$(OBJDIR)/%.lst) -CPPFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS)) -#CPPFLAGS += $(CSTANDARD) - - -#---------------- Assembler Options ---------------- -# -Wa,...: tell GCC to pass this to the assembler. -# -adhlns: create listing -# -gstabs: have the assembler create line number information; note that -# for use in COFF files, additional information about filenames -# and function names needs to be present in the assembler source -# files -- see avr-libc docs [FIXME: not yet described there] -# -listing-cont-lines: Sets the maximum number of continuation lines of hex -# dump that will be displayed for a given single line of source input. -ASFLAGS = $(ADEFS) -Wa,-adhlns=$(<:%.S=$(OBJDIR)/%.lst),-gstabs,--listing-cont-lines=100 - - -#---------------- Library Options ---------------- -# Minimalistic printf version -PRINTF_LIB_MIN = -Wl,-u,vfprintf -lprintf_min - -# Floating point printf version (requires MATH_LIB = -lm below) -PRINTF_LIB_FLOAT = -Wl,-u,vfprintf -lprintf_flt - -# If this is left blank, then it will use the Standard printf version. -PRINTF_LIB = -#PRINTF_LIB = $(PRINTF_LIB_MIN) -#PRINTF_LIB = $(PRINTF_LIB_FLOAT) - - -# Minimalistic scanf version -SCANF_LIB_MIN = -Wl,-u,vfscanf -lscanf_min - -# Floating point + %[ scanf version (requires MATH_LIB = -lm below) -SCANF_LIB_FLOAT = -Wl,-u,vfscanf -lscanf_flt - -# If this is left blank, then it will use the Standard scanf version. -SCANF_LIB = -#SCANF_LIB = $(SCANF_LIB_MIN) -#SCANF_LIB = $(SCANF_LIB_FLOAT) - - -MATH_LIB = -lm - - -# List any extra directories to look for libraries here. -# Each directory must be seperated by a space. -# Use forward slashes for directory separators. -# For a directory that has spaces, enclose it in quotes. -EXTRALIBDIRS = - - - -#---------------- External Memory Options ---------------- - -# 64 KB of external RAM, starting after internal RAM (ATmega128!), -# used for variables (.data/.bss) and heap (malloc()). -#EXTMEMOPTS = -Wl,-Tdata=0x801100,--defsym=__heap_end=0x80ffff - -# 64 KB of external RAM, starting after internal RAM (ATmega128!), -# only used for heap (malloc()). -#EXTMEMOPTS = -Wl,--section-start,.data=0x801100,--defsym=__heap_end=0x80ffff - -EXTMEMOPTS = - - - -#---------------- Linker Options ---------------- -# -Wl,...: tell GCC to pass this to linker. -# -Map: create map file -# --cref: add cross reference to map file -LDFLAGS = -Wl,-Map=$(TARGET).map,--cref -LDFLAGS += -Wl,--section-start=.text=$(BOOT_START) -LDFLAGS += -Wl,--relax -LDFLAGS += -Wl,--gc-sections -LDFLAGS += $(EXTMEMOPTS) -LDFLAGS += $(patsubst %,-L%,$(EXTRALIBDIRS)) -LDFLAGS += $(PRINTF_LIB) $(SCANF_LIB) $(MATH_LIB) -#LDFLAGS += -T linker_script.x - - - -#---------------- Programming Options (avrdude) ---------------- - -# Fuse settings for Arduino Uno DFU bootloader project -AVRDUDE_FUSES = -U efuse:w:0xF4:m -U hfuse:w:0xD9:m -U lfuse:w:0xFF:m - -# Lock settings for Arduino Uno DFU bootloader project -AVRDUDE_LOCK = -U lock:w:0x0F:m - -# Programming hardware -# Type: avrdude -c ? -# to get a full listing. -# -AVRDUDE_PROGRAMMER = avrispmkii - -# com1 = serial port. Use lpt1 to connect to parallel port. -AVRDUDE_PORT = usb - -AVRDUDE_WRITE_FLASH = -U flash:w:$(TARGET).hex -#AVRDUDE_WRITE_EEPROM = -U eeprom:w:$(TARGET).eep - -# Uncomment the following if you want avrdude's erase cycle counter. -# Note that this counter needs to be initialized first using -Yn, -# see avrdude manual. -#AVRDUDE_ERASE_COUNTER = -y - -# Uncomment the following if you do /not/ wish a verification to be -# performed after programming the device. -#AVRDUDE_NO_VERIFY = -V - -# Increase verbosity level. Please use this when submitting bug -# reports about avrdude. See -# to submit bug reports. -#AVRDUDE_VERBOSE = -v -v - -AVRDUDE_FLAGS = -p $(MCU_AVRDUDE) -F -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER) -AVRDUDE_FLAGS += $(AVRDUDE_NO_VERIFY) -AVRDUDE_FLAGS += $(AVRDUDE_VERBOSE) -AVRDUDE_FLAGS += $(AVRDUDE_ERASE_COUNTER) - - - -#---------------- Debugging Options ---------------- - -# For simulavr only - target MCU frequency. -DEBUG_MFREQ = $(F_CPU) - -# Set the DEBUG_UI to either gdb or insight. -# DEBUG_UI = gdb -DEBUG_UI = insight - -# Set the debugging back-end to either avarice, simulavr. -DEBUG_BACKEND = avarice -#DEBUG_BACKEND = simulavr - -# GDB Init Filename. -GDBINIT_FILE = __avr_gdbinit - -# When using avarice settings for the JTAG -JTAG_DEV = /dev/com1 - -# Debugging port used to communicate between GDB / avarice / simulavr. -DEBUG_PORT = 4242 - -# Debugging host used to communicate between GDB / avarice / simulavr, normally -# just set to localhost unless doing some sort of crazy debugging when -# avarice is running on a different computer. -DEBUG_HOST = localhost - - - -#============================================================================ - - -# Define programs and commands. -SHELL = sh -CC = avr-gcc -OBJCOPY = avr-objcopy -OBJDUMP = avr-objdump -SIZE = avr-size -AR = avr-ar rcs -NM = avr-nm -AVRDUDE = avrdude -REMOVE = rm -f -REMOVEDIR = rm -rf -COPY = cp -WINSHELL = cmd - - -# Define Messages -# English -MSG_ERRORS_NONE = Errors: none -MSG_BEGIN = -------- begin -------- -MSG_END = -------- end -------- -MSG_SIZE_BEFORE = Size before: -MSG_SIZE_AFTER = Size after: -MSG_COFF = Converting to AVR COFF: -MSG_EXTENDED_COFF = Converting to AVR Extended COFF: -MSG_FLASH = Creating load file for Flash: -MSG_EEPROM = Creating load file for EEPROM: -MSG_EXTENDED_LISTING = Creating Extended Listing: -MSG_SYMBOL_TABLE = Creating Symbol Table: -MSG_LINKING = Linking: -MSG_COMPILING = Compiling C: -MSG_COMPILING_CPP = Compiling C++: -MSG_ASSEMBLING = Assembling: -MSG_CLEANING = Cleaning project: -MSG_CREATING_LIBRARY = Creating library: - - - - -# Define all object files. -OBJ = $(SRC:%.c=$(OBJDIR)/%.o) $(CPPSRC:%.cpp=$(OBJDIR)/%.o) $(ASRC:%.S=$(OBJDIR)/%.o) - -# Define all listing files. -LST = $(SRC:%.c=$(OBJDIR)/%.lst) $(CPPSRC:%.cpp=$(OBJDIR)/%.lst) $(ASRC:%.S=$(OBJDIR)/%.lst) - - -# Compiler flags to generate dependency files. -GENDEPFLAGS = -MMD -MP -MF .dep/$(@F).d - - -# Combine all necessary flags and optional flags. -# Add target processor to flags. -ALL_CFLAGS = -mmcu=$(MCU) -I. $(CFLAGS) $(GENDEPFLAGS) -ALL_CPPFLAGS = -mmcu=$(MCU) -I. -x c++ $(CPPFLAGS) $(GENDEPFLAGS) -ALL_ASFLAGS = -mmcu=$(MCU) -I. -x assembler-with-cpp $(ASFLAGS) - - - - - -# Default target. -all: begin gccversion sizebefore build sizeafter end - -# Change the build target to build a HEX file or a library. -build: elf hex eep lss sym -#build: lib - - -elf: $(TARGET).elf -hex: $(TARGET).hex -eep: $(TARGET).eep -lss: $(TARGET).lss -sym: $(TARGET).sym -LIBNAME=lib$(TARGET).a -lib: $(LIBNAME) - - - -# Eye candy. -# AVR Studio 3.x does not check make's exit code but relies on -# the following magic strings to be generated by the compile job. -begin: - @echo - @echo $(MSG_BEGIN) - -end: - @echo $(MSG_END) - @echo - - -# Display size of file. -HEXSIZE = $(SIZE) --target=$(FORMAT) $(TARGET).hex -ELFSIZE = $(SIZE) $(MCU_FLAG) $(FORMAT_FLAG) $(TARGET).elf -MCU_FLAG = $(shell $(SIZE) --help | grep -- --mcu > /dev/null && echo --mcu=$(MCU) ) -FORMAT_FLAG = $(shell $(SIZE) --help | grep -- --format=.*avr > /dev/null && echo --format=avr ) - - -sizebefore: - @if test -f $(TARGET).elf; then echo; echo $(MSG_SIZE_BEFORE); $(ELFSIZE); \ - 2>/dev/null; echo; fi - -sizeafter: - @if test -f $(TARGET).elf; then echo; echo $(MSG_SIZE_AFTER); $(ELFSIZE); \ - 2>/dev/null; echo; fi - - - -# Display compiler version information. -gccversion : - @$(CC) --version - - -# Program the device. -program: $(TARGET).hex $(TARGET).eep - $(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FLASH) $(AVRDUDE_WRITE_EEPROM) $(AVRDUDE_FUSES) $(AVRDUDE_LOCK) - - -# Generate avr-gdb config/init file which does the following: -# define the reset signal, load the target file, connect to target, and set -# a breakpoint at main(). -gdb-config: - @$(REMOVE) $(GDBINIT_FILE) - @echo define reset >> $(GDBINIT_FILE) - @echo SIGNAL SIGHUP >> $(GDBINIT_FILE) - @echo end >> $(GDBINIT_FILE) - @echo file $(TARGET).elf >> $(GDBINIT_FILE) - @echo target remote $(DEBUG_HOST):$(DEBUG_PORT) >> $(GDBINIT_FILE) -ifeq ($(DEBUG_BACKEND),simulavr) - @echo load >> $(GDBINIT_FILE) -endif - @echo break main >> $(GDBINIT_FILE) - -debug: gdb-config $(TARGET).elf -ifeq ($(DEBUG_BACKEND), avarice) - @echo Starting AVaRICE - Press enter when "waiting to connect" message displays. - @$(WINSHELL) /c start avarice --jtag $(JTAG_DEV) --erase --program --file \ - $(TARGET).elf $(DEBUG_HOST):$(DEBUG_PORT) - @$(WINSHELL) /c pause - -else - @$(WINSHELL) /c start simulavr --gdbserver --device $(MCU) --clock-freq \ - $(DEBUG_MFREQ) --port $(DEBUG_PORT) -endif - @$(WINSHELL) /c start avr-$(DEBUG_UI) --command=$(GDBINIT_FILE) - - - - -# Convert ELF to COFF for use in debugging / simulating in AVR Studio or VMLAB. -COFFCONVERT = $(OBJCOPY) --debugging -COFFCONVERT += --change-section-address .data-0x800000 -COFFCONVERT += --change-section-address .bss-0x800000 -COFFCONVERT += --change-section-address .noinit-0x800000 -COFFCONVERT += --change-section-address .eeprom-0x810000 - - - -coff: $(TARGET).elf - @echo - @echo $(MSG_COFF) $(TARGET).cof - $(COFFCONVERT) -O coff-avr $< $(TARGET).cof - - -extcoff: $(TARGET).elf - @echo - @echo $(MSG_EXTENDED_COFF) $(TARGET).cof - $(COFFCONVERT) -O coff-ext-avr $< $(TARGET).cof - - - -# Create final output files (.hex, .eep) from ELF output file. -%.hex: %.elf - @echo - @echo $(MSG_FLASH) $@ - $(OBJCOPY) -O $(FORMAT) -R .eeprom -R .fuse -R .lock $< $@ - -%.eep: %.elf - @echo - @echo $(MSG_EEPROM) $@ - -$(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" \ - --change-section-lma .eeprom=0 --no-change-warnings -O $(FORMAT) $< $@ || exit 0 - -# Create extended listing file from ELF output file. -%.lss: %.elf - @echo - @echo $(MSG_EXTENDED_LISTING) $@ - $(OBJDUMP) -h -S -z $< > $@ - -# Create a symbol table from ELF output file. -%.sym: %.elf - @echo - @echo $(MSG_SYMBOL_TABLE) $@ - $(NM) -n $< > $@ - - - -# Create library from object files. -.SECONDARY : $(TARGET).a -.PRECIOUS : $(OBJ) -%.a: $(OBJ) - @echo - @echo $(MSG_CREATING_LIBRARY) $@ - $(AR) $@ $(OBJ) - - -# Link: create ELF output file from object files. -.SECONDARY : $(TARGET).elf -.PRECIOUS : $(OBJ) -%.elf: $(OBJ) - @echo - @echo $(MSG_LINKING) $@ - $(CC) $(ALL_CFLAGS) $^ --output $@ $(LDFLAGS) - - -# Compile: create object files from C source files. -$(OBJDIR)/%.o : %.c - @echo - @echo $(MSG_COMPILING) $< - $(CC) -c $(ALL_CFLAGS) $< -o $@ - - -# Compile: create object files from C++ source files. -$(OBJDIR)/%.o : %.cpp - @echo - @echo $(MSG_COMPILING_CPP) $< - $(CC) -c $(ALL_CPPFLAGS) $< -o $@ - - -# Compile: create assembler files from C source files. -%.s : %.c - $(CC) -S $(ALL_CFLAGS) $< -o $@ - - -# Compile: create assembler files from C++ source files. -%.s : %.cpp - $(CC) -S $(ALL_CPPFLAGS) $< -o $@ - - -# Assemble: create object files from assembler source files. -$(OBJDIR)/%.o : %.S - @echo - @echo $(MSG_ASSEMBLING) $< - $(CC) -c $(ALL_ASFLAGS) $< -o $@ - - -# Create preprocessed source for use in sending a bug report. -%.i : %.c - $(CC) -E -mmcu=$(MCU) -I. $(CFLAGS) $< -o $@ - - -# Target: clean project. -clean: begin clean_list end - -clean_list : - @echo - @echo $(MSG_CLEANING) - $(REMOVE) $(TARGET).hex - $(REMOVE) $(TARGET).eep - $(REMOVE) $(TARGET).cof - $(REMOVE) $(TARGET).elf - $(REMOVE) $(TARGET).map - $(REMOVE) $(TARGET).sym - $(REMOVE) $(TARGET).lss - $(REMOVE) $(SRC:%.c=$(OBJDIR)/%.o) - $(REMOVE) $(SRC:%.c=$(OBJDIR)/%.lst) - $(REMOVE) $(SRC:.c=.s) - $(REMOVE) $(SRC:.c=.d) - $(REMOVE) $(SRC:.c=.i) - $(REMOVEDIR) .dep - -doxygen: - @echo Generating Project Documentation... - @doxygen Doxygen.conf - @echo Documentation Generation Complete. - -clean_doxygen: - rm -rf Documentation - -# Create object files directory -$(shell mkdir $(OBJDIR) 2>/dev/null) - - -# Include the dependency files. --include $(shell mkdir .dep 2>/dev/null) $(wildcard .dep/*) - - -# Listing of phony targets. -.PHONY : all begin finish end sizebefore sizeafter gccversion \ -build elf hex eep lss sym coff extcoff doxygen clean \ -clean_list clean_doxygen program debug gdb-config diff --git a/build/linux/work/hardware/arduino/firmwares/arduino-usbdfu/readme.txt b/build/linux/work/hardware/arduino/firmwares/arduino-usbdfu/readme.txt deleted file mode 100644 index e376679c2..000000000 --- a/build/linux/work/hardware/arduino/firmwares/arduino-usbdfu/readme.txt +++ /dev/null @@ -1,7 +0,0 @@ -To setup the project and program an ATMEG8U2 with the Arduino USB DFU bootloader: -1. unpack the source into LUFA's Bootloader directory -2. set ARDUINO_MODEL_PID in the makefile as appropriate -3. do "make clean; make; make program" - -Check that the board enumerates as either "Arduino Uno DFU" or "Arduino Mega 2560 DFU". Test by uploading the Arduino-usbserial application firmware (see instructions in Arduino-usbserial directory) - diff --git a/build/linux/work/hardware/arduino/firmwares/arduino-usbserial/Arduino-usbserial-atmega16u2-Mega2560-Rev3.hex b/build/linux/work/hardware/arduino/firmwares/arduino-usbserial/Arduino-usbserial-atmega16u2-Mega2560-Rev3.hex deleted file mode 100644 index efbbf15db..000000000 --- a/build/linux/work/hardware/arduino/firmwares/arduino-usbserial/Arduino-usbserial-atmega16u2-Mega2560-Rev3.hex +++ /dev/null @@ -1,254 +0,0 @@ -:1000000090C00000A9C00000A7C00000A5C000006B -:10001000A3C00000A1C000009FC000009DC0000060 -:100020009BC0000099C0000097C0000048C40000B9 -:100030000CC4000091C000008FC000008DC0000003 -:100040008BC0000089C0000087C0000085C0000090 -:1000500083C0000081C000007FC0000002C100001A -:100060007BC0000079C0000077C0000075C00000B0 -:1000700073C0000071C000006FC000006DC00000C0 -:100080006BC0000069C0000067C0000065C00000D0 -:1000900063C0000061C000001201100102000008EE -:1000A0004123420001000102DC0109023E0002017D -:1000B00000C0320904000001020201000524000111 -:1000C0001004240206052406000107058203080027 -:1000D000FF09040100020A000000070504024000B5 -:1000E00001070583024000010403090432034100B3 -:1000F00072006400750069006E006F002000280027 -:100100007700770077002E006100720064007500B0 -:1001100069006E006F002E0063006300290000007C -:10012000000011241FBECFEFD2E0DEBFCDBF11E033 -:10013000A0E0B1E0ECEAFFE002C005900D92A6312C -:10014000B107D9F712E0A6E1B1E001C01D92AF32CC -:10015000B107E1F7F1D028C753CF9C01DC01AE57BE -:10016000BF4FED91FC91119741911196FC93EE9345 -:1001700080589F4FE817F90711F42D933C939FB7D0 -:10018000F894F901EC57FF4F8081815080839FBF25 -:10019000842F0895DF92EF92FF920F931F93FC013B -:1001A0008489813019F0823021F405C040E3D42ED7 -:1001B00004C0DD2402C030E2D32E8389823011F4E2 -:1001C00088E0D82A8589873031F0883031F0863050 -:1001D00031F482E003C084E001C086E0D82A1092A6 -:1001E000C9001092C8001092CA00E784F088018903 -:1001F000128980E0E81681EEF80680E0080780E0CA -:10020000180719F420E130E00FC0C801B701969536 -:1002100087957795679560587B47814E9F4FA801DA -:100220009701A0D6215030403093CD002093CC00D0 -:10023000D092CA0080E0E81681EEF80680E0080758 -:1002400080E0180711F082E001C080E08093C800D0 -:1002500088E98093C9001F910F91FF90EF90DF9084 -:1002600008951F920F920FB60F9211242F938F9320 -:100270009F93EF93FF939091CE008EB38430F1F46F -:10028000E0919901F0919A019083E0919901F091A8 -:100290009A01CF01019690939A018093990189590F -:1002A000914021F489E191E0928381839FB7F89492 -:1002B00080919D018F5F80939D019FBFFF91EF9182 -:1002C0009F918F912F910F900FBE0F901F901895B7 -:1002D000FC01858580FF02C05F9808955F9A0895AC -:1002E00080E091E0D5C580E091E088C584B7877F44 -:1002F00084BF28E10FB6F89420936000109260004C -:100300000FBE87E690E09093CD008093CC0086E00E -:100310008093CA001092C8002093C900539A5A9A39 -:100320008AB180638AB98BB180638BB983D284E050 -:1003300085BD5F9A579A08950F931F93CF93DF93CC -:10034000D5DF2FB7F8948EE991E090931F02809348 -:100350001E0290932102809320022FBF2FB7F894A2 -:1003600089E191E090939A018093990190939C0187 -:1003700080939B012FBF7894CEE9D1E003E08FB743 -:10038000F894909122028FBF903809F180E091E0BB -:10039000ABD497FD1CC0E0911E02F0911F02808338 -:1003A000E0911E02F0911F02CF01019690931F026F -:1003B00080931E028E51924011F4D283C1839FB765 -:1003C000F894809122028F5F809322029FBF8FB7A3 -:1003D000F89410919D018FBFA89902C0113678F151 -:1003E000A89A80919D01882361F05D980093160181 -:1003F00008C089E191E0B1DE682F80E091E0DAD4B5 -:1004000011501123B1F780911601882351F080918A -:10041000160181508093160180911601882309F4FA -:100420005D9A80911701882351F0809117018150C6 -:100430008093170180911701882309F45C9A8FB784 -:10044000F894909122028FBF992369F08EE991E090 -:1004500084DE982F8091C80085FFFCCF9093CE005A -:100460005C980093170180E091E095D42AD487CF5F -:10047000DA01923049F0933061F09130F9F4E8E913 -:10048000F0E022E130E01EC0EAEAF0E02EE330E0E6 -:1004900019C0813049F0813018F0823079F408C0F9 -:1004A000E8EEF0E0849107C0ECEEF0E0849103C048 -:1004B000E0E2F1E08491282F30E004C0E0E0F0E0D9 -:1004C00020E030E0ED93FC93C901089528E030E08E -:1004D00040E003C04F5F220F331F28173907D0F3C6 -:1004E000842F8295807F08958093E9008091EB00AE -:1004F00081608093EB001092ED006093EC004093DC -:10050000ED008091EE00881F8827881F08951092C3 -:10051000F40090E09093E9001092F0001092E8004F -:100520001092ED008091EB008E7F8093EB009F5F37 -:10053000953081F708958091270288238CF403C0B9 -:100540008EB38823B1F08091E80082FFF9CF8091CB -:10055000E8008B778093E80008958EB3882349F0F4 -:100560008091E80080FFF9CF8091E8008E7780933A -:10057000E800089594E68091EC0080FF05C080912A -:10058000E80080FF05C023C08091E80082FD1FC005 -:100590008EB3882311F482E008958EB3853011F470 -:1005A00083E008958091EB0085FF02C081E008950B -:1005B0008091E10082FFDFCF8091E1008B7F80930B -:1005C000E100992311F484E008959150D4CF80E0A4 -:1005D00008959C0140912D0250912E024617570715 -:1005E00018F4F90120E038C06115710511F0AB0174 -:1005F000F8CF8091E8008E778093E80040E050E0EB -:10060000F0CF8091E80083FF02C081E008958091DF -:10061000E80082FD2DC08EB3882381F18EB3853032 -:1006200079F18091E80080FF17C09091F20006C038 -:1006300081918093F100415050409F5F41155105D9 -:1006400011F09830A8F320E0983009F421E080916F -:10065000E8008E778093E8004115510591F622233A -:1006600081F606C08EB3882349F08EB3853041F001 -:100670008091E80082FFF6CF80E0089582E008953F -:1006800083E008959C0140912D0250912E0246175F -:10069000570710F490E03BC06115710511F0AB01F4 -:1006A000F9CF8091E8008E778093E80040E050E039 -:1006B000F1CF8091E80083FF02C081E0089580912E -:1006C000E80082FD30C08EB3882399F18EB3853067 -:1006D00091F18091E80080FF1AC08091F20009C07A -:1006E000F9012F5F3F4FE491E093F10041505040FA -:1006F0008F5F4115510511F0883090F390E08830FC -:1007000009F491E08091E8008E778093E80041152C -:10071000510579F6992369F606C08EB3882349F00E -:100720008EB3853041F08091E80082FFF6CF80E003 -:10073000089582E0089583E008959C016115710594 -:1007400029F48091E8008B778093E800F90120C0BC -:100750008091E80083FF02C081E008958EB3882372 -:1007600039F18EB3853031F18091E80082FFF0CF0E -:1007700006C08091F10081936150704021F080911A -:10078000F2008823B1F78091E8008B778093E8002E -:1007900061157105E9F606C08EB3882349F08EB362 -:1007A000853041F08091E80080FFF6CF80E0089529 -:1007B00082E0089583E0089542D044D01EBA10929A -:1007C0002502109224021092230284E089BD89B58B -:1007D000826089BD09B400FEFDCF8091D800982FBA -:1007E0009F779093D80080688093D80080916300B1 -:1007F0008E7F809363008091D8008F7D8093D80096 -:100800008091E0008E7F8093E0008091E1008E7FF8 -:100810008093E1008091E20081608093E20080910A -:10082000E100877F8093E1008091E20088608093FF -:10083000E2000895C1DF81E08093260208951092BE -:10084000E20008951092E10008951F920F920FB6F2 -:100850000F9211241F932F933F934F935F936F93A6 -:100860007F938F939F93AF93BF93EF93FF93E9EEA3 -:10087000F0E0108117701082E0EFF0E08081877F58 -:1008800080837894C3D0F894A9EEB0E01C92E0EF96 -:10089000F0E08081886080831C93FF91EF91BF918D -:1008A000AF919F918F917F916F915F914F913F9108 -:1008B0002F911F910F900FBE0F901F9018951F92B0 -:1008C0000F920FB60F9211242F933F934F935F9384 -:1008D0006F937F938F939F93AF93BF93EF93FF9308 -:1008E0008091E10080FF1BC08091E20080FF17C073 -:1008F0008091E1008E7F8093E1008091E2008E7F05 -:100900008093E2008091E20080618093E200809118 -:10091000D80080628093D80019BC1EBAD1D18091D2 -:10092000E10084FF29C08091E20084FF25C084E0BB -:1009300089BD89B5826089BD09B400FEFDCF809173 -:10094000D8008F7D8093D8008091E1008F7E8093C6 -:10095000E1008091E2008F7E8093E2008091E200CE -:1009600081608093E20080912502882311F481E068 -:1009700001C084E08EBBA4D18091E10083FF27C039 -:100980008091E20083FF23C08091E100877F809304 -:10099000E10082E08EBB109225028091E1008E7F03 -:1009A0008093E1008091E2008E7F8093E20080914D -:1009B000E20080618093E200AADD80E060E042E036 -:1009C00093DD8091F00088608093F00079D1809170 -:1009D000E10082FF0AC08091E20082FF06C08091A0 -:1009E000E1008B7F8093E1006BD1FF91EF91BF918C -:1009F000AF919F918F917F916F915F914F913F91B7 -:100A00002F910F900FBE0F901F9018951F93DF939B -:100A1000CF93CDB7DEB7AC970FB6F894DEBF0FBE5D -:100A2000CDBFE7E2F2E08091F100819322E0EF3266 -:100A3000F207C9F78091270230912802353009F476 -:100A400087C0363040F43130C9F1313070F0333086 -:100A500009F01DC133C0383009F4EFC0393009F452 -:100A6000FEC0363009F013C192C0803821F08238C0 -:100A700009F00DC108C090912302809124028823BF -:100A800099F0926011C080912B0287708093E900E9 -:100A90008091EB0090E025E0969587952A95E1F707 -:100AA000982F91701092E9008091E800877F8093E1 -:100AB000E8009093F1001092F100CAC0882319F069 -:100AC000823009F0E4C090E08F719070009721F0BF -:100AD000029709F0DDC00CC080912902813009F035 -:100AE000D7C010922402333069F5809324022AC0C3 -:100AF00080912902882331F520912B02277009F477 -:100B0000C7C02093E9008091EB0080FFC1C0333063 -:100B100021F48091EB00806213C08091EB00806132 -:100B20008093EB0081E090E002C0880F991F2A9526 -:100B3000E2F78093EA001092EA008091EB0088606F -:100B40008093EB001092E9008091E800877F83C0DA -:100B5000882309F09CC0109129028091E800877FCA -:100B60008093E800E8DC04C08EB3882309F490C0C9 -:100B70008091E80080FFF8CF812F8F7711F492E009 -:100B800001C093E09EBB80688093E30081C08058E1 -:100B9000823008F07CC08091290290912A0223E0E3 -:100BA0008C3D920799F55FB7F894DE0115964EE0FB -:100BB00020E030E061E2E42FF0E0609357008491A0 -:100BC00020FF03C082958F704F5F982F9F70892FF1 -:100BD000805D8A3308F0895F8C9311961C9211977F -:100BE0002F5F3F4F12962431310529F75FBF8AE20C -:100BF0008B8383E08C838091E800877F8093E8007B -:100C0000CE0103966AE270E0E4DC11C060912B0231 -:100C1000AE014F5F5F4F2CDCBC010097C9F18091A2 -:100C2000E800877F8093E80089819A812BDD80919D -:100C3000E8008B778093E8002BC0803841F58091E5 -:100C4000E800877F8093E800809125028093F1007F -:100C50008091E8008E778093E8006DDC19C08823CE -:100C6000B1F490912902923098F48091E800877F46 -:100C70008093E800909325025EDC80912502882312 -:100C800011F483E001C084E08EBB2DDB01C028DBC2 -:100C90008091E80083FF0AC08091EB00806280931E -:100CA000EB008091E800877F8093E800AC960FB658 -:100CB000F894DEBF0FBECDBFCF91DF911F91089595 -:100CC00008951F938EB3882361F01091E90010926C -:100CD000E9008091E80083FF01C098DE177010934F -:100CE000E9001F9108950895FC018EB3843021F529 -:100CF00087859089A189B2890097A105B105E1F0A6 -:100D000085818093E9008091E80082FF15C0809181 -:100D1000F200882319F42FEF3FEF04C08091F10017 -:100D2000282F30E08091F200882341F48091E80080 -:100D30008B778093E80002C02FEF3FEFC901089541 -:100D4000FC018EB3843011F587859089A189B28921 -:100D50000097A105B105D1F081818093E9008091D0 -:100D6000F2008823A9F09091E8008091E8008E7746 -:100D70008093E80095FD0CC0FDDB982F882349F493 -:100D80008091E8008E778093E80003C092E001C074 -:100D900090E0892F0895FC018EB3843051F487854B -:100DA0009089A189B2890097A105B10511F0CF0101 -:100DB000C7CF08951F93FC01162F8EB38430D9F44A -:100DC00087859089A189B2890097A105B10599F01D -:100DD00081818093E9008091E80085FD08C08091C1 -:100DE000E8008E778093E800C5DB882329F4109310 -:100DF000F10080E001C082E01F9108950F931F93DE -:100E0000CF93DF93EC010D96FC0189E0DF011D9289 -:100E10008A95E9F72A813B8109818C81882311F425 -:100E200010E001C014E0C90151DB182B1260802FC3 -:100E300061E8412F59DB882329F12E813F810D8103 -:100E40008885882311F410E001C014E0C9013EDB5D -:100E5000182B1260802F60E8412F46DB882391F029 -:100E60002A853B8509858C85882311F410E001C013 -:100E700014E0C9012BDB182B1260802F61EC412F8D -:100E800033DB01C080E0DF91CF911F910F91089576 -:100E9000CF93DF93EC018091E80083FF60C08881ED -:100EA00090E020912B0230912C022817390709F08D -:100EB00056C080912802813261F0823220F4803263 -:100EC00009F04DC019C0823269F1833209F047C080 -:100ED00038C080912702813A09F041C08091E80032 -:100EE000877F8093E800CE010F9667E070E071DBAA -:100EF0008091E8008B7713C080912702813279F5C9 -:100F00008091E800877F8093E800CE010F9667E02C -:100F100070E013DCCE013ED98091E8008E7780939B -:100F2000E8001DC0809127028132C9F48091E80059 -:100F3000877F8093E800809129028D87CE01C8D9F0 -:100F40000DC080912702813251F48091E800877FA3 -:100F50008093E800CE0160912902C5DEECDADF91D2 -:100F6000CF910895A1E21A2EAA1BBB1BFD010DC053 -:100F7000AA1FBB1FEE1FFF1FA217B307E407F50749 -:100F800020F0A21BB30BE40BF50B661F771F881F25 -:100F9000991F1A9469F760957095809590959B01BB -:0C0FA000AC01BD01CF010895F894FFCF13 -:100FAC0000034000000440000002080000000000A4 -:060FBC000000000000002F -:00000001FF diff --git a/build/linux/work/hardware/arduino/firmwares/arduino-usbserial/Arduino-usbserial-atmega16u2-MegaADK-Rev3.hex b/build/linux/work/hardware/arduino/firmwares/arduino-usbserial/Arduino-usbserial-atmega16u2-MegaADK-Rev3.hex deleted file mode 100644 index 3af6a243f..000000000 --- a/build/linux/work/hardware/arduino/firmwares/arduino-usbserial/Arduino-usbserial-atmega16u2-MegaADK-Rev3.hex +++ /dev/null @@ -1,254 +0,0 @@ -:1000000090C00000A9C00000A7C00000A5C000006B -:10001000A3C00000A1C000009FC000009DC0000060 -:100020009BC0000099C0000097C0000048C40000B9 -:100030000CC4000091C000008FC000008DC0000003 -:100040008BC0000089C0000087C0000085C0000090 -:1000500083C0000081C000007FC0000002C100001A -:100060007BC0000079C0000077C0000075C00000B0 -:1000700073C0000071C000006FC000006DC00000C0 -:100080006BC0000069C0000067C0000065C00000D0 -:1000900063C0000061C000001201100102000008EE -:1000A0004123440001000102DC0109023E0002017B -:1000B00000C0320904000001020201000524000111 -:1000C0001004240206052406000107058203080027 -:1000D000FF09040100020A000000070504024000B5 -:1000E00001070583024000010403090432034100B3 -:1000F00072006400750069006E006F002000280027 -:100100007700770077002E006100720064007500B0 -:1001100069006E006F002E0063006300290000007C -:10012000000011241FBECFEFD2E0DEBFCDBF11E033 -:10013000A0E0B1E0ECEAFFE002C005900D92A6312C -:10014000B107D9F712E0A6E1B1E001C01D92AF32CC -:10015000B107E1F7F1D028C753CF9C01DC01AE57BE -:10016000BF4FED91FC91119741911196FC93EE9345 -:1001700080589F4FE817F90711F42D933C939FB7D0 -:10018000F894F901EC57FF4F8081815080839FBF25 -:10019000842F0895DF92EF92FF920F931F93FC013B -:1001A0008489813019F0823021F405C040E3D42ED7 -:1001B00004C0DD2402C030E2D32E8389823011F4E2 -:1001C00088E0D82A8589873031F0883031F0863050 -:1001D00031F482E003C084E001C086E0D82A1092A6 -:1001E000C9001092C8001092CA00E784F088018903 -:1001F000128980E0E81681EEF80680E0080780E0CA -:10020000180719F420E130E00FC0C801B701969536 -:1002100087957795679560587B47814E9F4FA801DA -:100220009701A0D6215030403093CD002093CC00D0 -:10023000D092CA0080E0E81681EEF80680E0080758 -:1002400080E0180711F082E001C080E08093C800D0 -:1002500088E98093C9001F910F91FF90EF90DF9084 -:1002600008951F920F920FB60F9211242F938F9320 -:100270009F93EF93FF939091CE008EB38430F1F46F -:10028000E0919901F0919A019083E0919901F091A8 -:100290009A01CF01019690939A018093990189590F -:1002A000914021F489E191E0928381839FB7F89492 -:1002B00080919D018F5F80939D019FBFFF91EF9182 -:1002C0009F918F912F910F900FBE0F901F901895B7 -:1002D000FC01858580FF02C05F9808955F9A0895AC -:1002E00080E091E0D5C580E091E088C584B7877F44 -:1002F00084BF28E10FB6F89420936000109260004C -:100300000FBE87E690E09093CD008093CC0086E00E -:100310008093CA001092C8002093C900539A5A9A39 -:100320008AB180638AB98BB180638BB983D284E050 -:1003300085BD5F9A579A08950F931F93CF93DF93CC -:10034000D5DF2FB7F8948EE991E090931F02809348 -:100350001E0290932102809320022FBF2FB7F894A2 -:1003600089E191E090939A018093990190939C0187 -:1003700080939B012FBF7894CEE9D1E003E08FB743 -:10038000F894909122028FBF903809F180E091E0BB -:10039000ABD497FD1CC0E0911E02F0911F02808338 -:1003A000E0911E02F0911F02CF01019690931F026F -:1003B00080931E028E51924011F4D283C1839FB765 -:1003C000F894809122028F5F809322029FBF8FB7A3 -:1003D000F89410919D018FBFA89902C0113678F151 -:1003E000A89A80919D01882361F05D980093160181 -:1003F00008C089E191E0B1DE682F80E091E0DAD4B5 -:1004000011501123B1F780911601882351F080918A -:10041000160181508093160180911601882309F4FA -:100420005D9A80911701882351F0809117018150C6 -:100430008093170180911701882309F45C9A8FB784 -:10044000F894909122028FBF992369F08EE991E090 -:1004500084DE982F8091C80085FFFCCF9093CE005A -:100460005C980093170180E091E095D42AD487CF5F -:10047000DA01923049F0933061F09130F9F4E8E913 -:10048000F0E022E130E01EC0EAEAF0E02EE330E0E6 -:1004900019C0813049F0813018F0823079F408C0F9 -:1004A000E8EEF0E0849107C0ECEEF0E0849103C048 -:1004B000E0E2F1E08491282F30E004C0E0E0F0E0D9 -:1004C00020E030E0ED93FC93C901089528E030E08E -:1004D00040E003C04F5F220F331F28173907D0F3C6 -:1004E000842F8295807F08958093E9008091EB00AE -:1004F00081608093EB001092ED006093EC004093DC -:10050000ED008091EE00881F8827881F08951092C3 -:10051000F40090E09093E9001092F0001092E8004F -:100520001092ED008091EB008E7F8093EB009F5F37 -:10053000953081F708958091270288238CF403C0B9 -:100540008EB38823B1F08091E80082FFF9CF8091CB -:10055000E8008B778093E80008958EB3882349F0F4 -:100560008091E80080FFF9CF8091E8008E7780933A -:10057000E800089594E68091EC0080FF05C080912A -:10058000E80080FF05C023C08091E80082FD1FC005 -:100590008EB3882311F482E008958EB3853011F470 -:1005A00083E008958091EB0085FF02C081E008950B -:1005B0008091E10082FFDFCF8091E1008B7F80930B -:1005C000E100992311F484E008959150D4CF80E0A4 -:1005D00008959C0140912D0250912E024617570715 -:1005E00018F4F90120E038C06115710511F0AB0174 -:1005F000F8CF8091E8008E778093E80040E050E0EB -:10060000F0CF8091E80083FF02C081E008958091DF -:10061000E80082FD2DC08EB3882381F18EB3853032 -:1006200079F18091E80080FF17C09091F20006C038 -:1006300081918093F100415050409F5F41155105D9 -:1006400011F09830A8F320E0983009F421E080916F -:10065000E8008E778093E8004115510591F622233A -:1006600081F606C08EB3882349F08EB3853041F001 -:100670008091E80082FFF6CF80E0089582E008953F -:1006800083E008959C0140912D0250912E0246175F -:10069000570710F490E03BC06115710511F0AB01F4 -:1006A000F9CF8091E8008E778093E80040E050E039 -:1006B000F1CF8091E80083FF02C081E0089580912E -:1006C000E80082FD30C08EB3882399F18EB3853067 -:1006D00091F18091E80080FF1AC08091F20009C07A -:1006E000F9012F5F3F4FE491E093F10041505040FA -:1006F0008F5F4115510511F0883090F390E08830FC -:1007000009F491E08091E8008E778093E80041152C -:10071000510579F6992369F606C08EB3882349F00E -:100720008EB3853041F08091E80082FFF6CF80E003 -:10073000089582E0089583E008959C016115710594 -:1007400029F48091E8008B778093E800F90120C0BC -:100750008091E80083FF02C081E008958EB3882372 -:1007600039F18EB3853031F18091E80082FFF0CF0E -:1007700006C08091F10081936150704021F080911A -:10078000F2008823B1F78091E8008B778093E8002E -:1007900061157105E9F606C08EB3882349F08EB362 -:1007A000853041F08091E80080FFF6CF80E0089529 -:1007B00082E0089583E0089542D044D01EBA10929A -:1007C0002502109224021092230284E089BD89B58B -:1007D000826089BD09B400FEFDCF8091D800982FBA -:1007E0009F779093D80080688093D80080916300B1 -:1007F0008E7F809363008091D8008F7D8093D80096 -:100800008091E0008E7F8093E0008091E1008E7FF8 -:100810008093E1008091E20081608093E20080910A -:10082000E100877F8093E1008091E20088608093FF -:10083000E2000895C1DF81E08093260208951092BE -:10084000E20008951092E10008951F920F920FB6F2 -:100850000F9211241F932F933F934F935F936F93A6 -:100860007F938F939F93AF93BF93EF93FF93E9EEA3 -:10087000F0E0108117701082E0EFF0E08081877F58 -:1008800080837894C3D0F894A9EEB0E01C92E0EF96 -:10089000F0E08081886080831C93FF91EF91BF918D -:1008A000AF919F918F917F916F915F914F913F9108 -:1008B0002F911F910F900FBE0F901F9018951F92B0 -:1008C0000F920FB60F9211242F933F934F935F9384 -:1008D0006F937F938F939F93AF93BF93EF93FF9308 -:1008E0008091E10080FF1BC08091E20080FF17C073 -:1008F0008091E1008E7F8093E1008091E2008E7F05 -:100900008093E2008091E20080618093E200809118 -:10091000D80080628093D80019BC1EBAD1D18091D2 -:10092000E10084FF29C08091E20084FF25C084E0BB -:1009300089BD89B5826089BD09B400FEFDCF809173 -:10094000D8008F7D8093D8008091E1008F7E8093C6 -:10095000E1008091E2008F7E8093E2008091E200CE -:1009600081608093E20080912502882311F481E068 -:1009700001C084E08EBBA4D18091E10083FF27C039 -:100980008091E20083FF23C08091E100877F809304 -:10099000E10082E08EBB109225028091E1008E7F03 -:1009A0008093E1008091E2008E7F8093E20080914D -:1009B000E20080618093E200AADD80E060E042E036 -:1009C00093DD8091F00088608093F00079D1809170 -:1009D000E10082FF0AC08091E20082FF06C08091A0 -:1009E000E1008B7F8093E1006BD1FF91EF91BF918C -:1009F000AF919F918F917F916F915F914F913F91B7 -:100A00002F910F900FBE0F901F9018951F93DF939B -:100A1000CF93CDB7DEB7AC970FB6F894DEBF0FBE5D -:100A2000CDBFE7E2F2E08091F100819322E0EF3266 -:100A3000F207C9F78091270230912802353009F476 -:100A400087C0363040F43130C9F1313070F0333086 -:100A500009F01DC133C0383009F4EFC0393009F452 -:100A6000FEC0363009F013C192C0803821F08238C0 -:100A700009F00DC108C090912302809124028823BF -:100A800099F0926011C080912B0287708093E900E9 -:100A90008091EB0090E025E0969587952A95E1F707 -:100AA000982F91701092E9008091E800877F8093E1 -:100AB000E8009093F1001092F100CAC0882319F069 -:100AC000823009F0E4C090E08F719070009721F0BF -:100AD000029709F0DDC00CC080912902813009F035 -:100AE000D7C010922402333069F5809324022AC0C3 -:100AF00080912902882331F520912B02277009F477 -:100B0000C7C02093E9008091EB0080FFC1C0333063 -:100B100021F48091EB00806213C08091EB00806132 -:100B20008093EB0081E090E002C0880F991F2A9526 -:100B3000E2F78093EA001092EA008091EB0088606F -:100B40008093EB001092E9008091E800877F83C0DA -:100B5000882309F09CC0109129028091E800877FCA -:100B60008093E800E8DC04C08EB3882309F490C0C9 -:100B70008091E80080FFF8CF812F8F7711F492E009 -:100B800001C093E09EBB80688093E30081C08058E1 -:100B9000823008F07CC08091290290912A0223E0E3 -:100BA0008C3D920799F55FB7F894DE0115964EE0FB -:100BB00020E030E061E2E42FF0E0609357008491A0 -:100BC00020FF03C082958F704F5F982F9F70892FF1 -:100BD000805D8A3308F0895F8C9311961C9211977F -:100BE0002F5F3F4F12962431310529F75FBF8AE20C -:100BF0008B8383E08C838091E800877F8093E8007B -:100C0000CE0103966AE270E0E4DC11C060912B0231 -:100C1000AE014F5F5F4F2CDCBC010097C9F18091A2 -:100C2000E800877F8093E80089819A812BDD80919D -:100C3000E8008B778093E8002BC0803841F58091E5 -:100C4000E800877F8093E800809125028093F1007F -:100C50008091E8008E778093E8006DDC19C08823CE -:100C6000B1F490912902923098F48091E800877F46 -:100C70008093E800909325025EDC80912502882312 -:100C800011F483E001C084E08EBB2DDB01C028DBC2 -:100C90008091E80083FF0AC08091EB00806280931E -:100CA000EB008091E800877F8093E800AC960FB658 -:100CB000F894DEBF0FBECDBFCF91DF911F91089595 -:100CC00008951F938EB3882361F01091E90010926C -:100CD000E9008091E80083FF01C098DE177010934F -:100CE000E9001F9108950895FC018EB3843021F529 -:100CF00087859089A189B2890097A105B105E1F0A6 -:100D000085818093E9008091E80082FF15C0809181 -:100D1000F200882319F42FEF3FEF04C08091F10017 -:100D2000282F30E08091F200882341F48091E80080 -:100D30008B778093E80002C02FEF3FEFC901089541 -:100D4000FC018EB3843011F587859089A189B28921 -:100D50000097A105B105D1F081818093E9008091D0 -:100D6000F2008823A9F09091E8008091E8008E7746 -:100D70008093E80095FD0CC0FDDB982F882349F493 -:100D80008091E8008E778093E80003C092E001C074 -:100D900090E0892F0895FC018EB3843051F487854B -:100DA0009089A189B2890097A105B10511F0CF0101 -:100DB000C7CF08951F93FC01162F8EB38430D9F44A -:100DC00087859089A189B2890097A105B10599F01D -:100DD00081818093E9008091E80085FD08C08091C1 -:100DE000E8008E778093E800C5DB882329F4109310 -:100DF000F10080E001C082E01F9108950F931F93DE -:100E0000CF93DF93EC010D96FC0189E0DF011D9289 -:100E10008A95E9F72A813B8109818C81882311F425 -:100E200010E001C014E0C90151DB182B1260802FC3 -:100E300061E8412F59DB882329F12E813F810D8103 -:100E40008885882311F410E001C014E0C9013EDB5D -:100E5000182B1260802F60E8412F46DB882391F029 -:100E60002A853B8509858C85882311F410E001C013 -:100E700014E0C9012BDB182B1260802F61EC412F8D -:100E800033DB01C080E0DF91CF911F910F91089576 -:100E9000CF93DF93EC018091E80083FF60C08881ED -:100EA00090E020912B0230912C022817390709F08D -:100EB00056C080912802813261F0823220F4803263 -:100EC00009F04DC019C0823269F1833209F047C080 -:100ED00038C080912702813A09F041C08091E80032 -:100EE000877F8093E800CE010F9667E070E071DBAA -:100EF0008091E8008B7713C080912702813279F5C9 -:100F00008091E800877F8093E800CE010F9667E02C -:100F100070E013DCCE013ED98091E8008E7780939B -:100F2000E8001DC0809127028132C9F48091E80059 -:100F3000877F8093E800809129028D87CE01C8D9F0 -:100F40000DC080912702813251F48091E800877FA3 -:100F50008093E800CE0160912902C5DEECDADF91D2 -:100F6000CF910895A1E21A2EAA1BBB1BFD010DC053 -:100F7000AA1FBB1FEE1FFF1FA217B307E407F50749 -:100F800020F0A21BB30BE40BF50B661F771F881F25 -:100F9000991F1A9469F760957095809590959B01BB -:0C0FA000AC01BD01CF010895F894FFCF13 -:100FAC0000034000000440000002080000000000A4 -:060FBC000000000000002F -:00000001FF diff --git a/build/linux/work/hardware/arduino/firmwares/arduino-usbserial/Arduino-usbserial-atmega16u2-Uno-Rev3.hex b/build/linux/work/hardware/arduino/firmwares/arduino-usbserial/Arduino-usbserial-atmega16u2-Uno-Rev3.hex deleted file mode 100644 index d1404eef0..000000000 --- a/build/linux/work/hardware/arduino/firmwares/arduino-usbserial/Arduino-usbserial-atmega16u2-Uno-Rev3.hex +++ /dev/null @@ -1,254 +0,0 @@ -:1000000090C00000A9C00000A7C00000A5C000006B -:10001000A3C00000A1C000009FC000009DC0000060 -:100020009BC0000099C0000097C0000048C40000B9 -:100030000CC4000091C000008FC000008DC0000003 -:100040008BC0000089C0000087C0000085C0000090 -:1000500083C0000081C000007FC0000002C100001A -:100060007BC0000079C0000077C0000075C00000B0 -:1000700073C0000071C000006FC000006DC00000C0 -:100080006BC0000069C0000067C0000065C00000D0 -:1000900063C0000061C000001201100102000008EE -:1000A0004123430001000102DC0109023E0002017C -:1000B00000C0320904000001020201000524000111 -:1000C0001004240206052406000107058203080027 -:1000D000FF09040100020A000000070504024000B5 -:1000E00001070583024000010403090432034100B3 -:1000F00072006400750069006E006F002000280027 -:100100007700770077002E006100720064007500B0 -:1001100069006E006F002E0063006300290000007C -:10012000000011241FBECFEFD2E0DEBFCDBF11E033 -:10013000A0E0B1E0ECEAFFE002C005900D92A6312C -:10014000B107D9F712E0A6E1B1E001C01D92AF32CC -:10015000B107E1F7F1D028C753CF9C01DC01AE57BE -:10016000BF4FED91FC91119741911196FC93EE9345 -:1001700080589F4FE817F90711F42D933C939FB7D0 -:10018000F894F901EC57FF4F8081815080839FBF25 -:10019000842F0895DF92EF92FF920F931F93FC013B -:1001A0008489813019F0823021F405C040E3D42ED7 -:1001B00004C0DD2402C030E2D32E8389823011F4E2 -:1001C00088E0D82A8589873031F0883031F0863050 -:1001D00031F482E003C084E001C086E0D82A1092A6 -:1001E000C9001092C8001092CA00E784F088018903 -:1001F000128980E0E81681EEF80680E0080780E0CA -:10020000180719F420E130E00FC0C801B701969536 -:1002100087957795679560587B47814E9F4FA801DA -:100220009701A0D6215030403093CD002093CC00D0 -:10023000D092CA0080E0E81681EEF80680E0080758 -:1002400080E0180711F082E001C080E08093C800D0 -:1002500088E98093C9001F910F91FF90EF90DF9084 -:1002600008951F920F920FB60F9211242F938F9320 -:100270009F93EF93FF939091CE008EB38430F1F46F -:10028000E0919901F0919A019083E0919901F091A8 -:100290009A01CF01019690939A018093990189590F -:1002A000914021F489E191E0928381839FB7F89492 -:1002B00080919D018F5F80939D019FBFFF91EF9182 -:1002C0009F918F912F910F900FBE0F901F901895B7 -:1002D000FC01858580FF02C05F9808955F9A0895AC -:1002E00080E091E0D5C580E091E088C584B7877F44 -:1002F00084BF28E10FB6F89420936000109260004C -:100300000FBE87E690E09093CD008093CC0086E00E -:100310008093CA001092C8002093C900539A5A9A39 -:100320008AB180638AB98BB180638BB983D284E050 -:1003300085BD5F9A579A08950F931F93CF93DF93CC -:10034000D5DF2FB7F8948EE991E090931F02809348 -:100350001E0290932102809320022FBF2FB7F894A2 -:1003600089E191E090939A018093990190939C0187 -:1003700080939B012FBF7894CEE9D1E003E08FB743 -:10038000F894909122028FBF903809F180E091E0BB -:10039000ABD497FD1CC0E0911E02F0911F02808338 -:1003A000E0911E02F0911F02CF01019690931F026F -:1003B00080931E028E51924011F4D283C1839FB765 -:1003C000F894809122028F5F809322029FBF8FB7A3 -:1003D000F89410919D018FBFA89902C0113678F151 -:1003E000A89A80919D01882361F05D980093160181 -:1003F00008C089E191E0B1DE682F80E091E0DAD4B5 -:1004000011501123B1F780911601882351F080918A -:10041000160181508093160180911601882309F4FA -:100420005D9A80911701882351F0809117018150C6 -:100430008093170180911701882309F45C9A8FB784 -:10044000F894909122028FBF992369F08EE991E090 -:1004500084DE982F8091C80085FFFCCF9093CE005A -:100460005C980093170180E091E095D42AD487CF5F -:10047000DA01923049F0933061F09130F9F4E8E913 -:10048000F0E022E130E01EC0EAEAF0E02EE330E0E6 -:1004900019C0813049F0813018F0823079F408C0F9 -:1004A000E8EEF0E0849107C0ECEEF0E0849103C048 -:1004B000E0E2F1E08491282F30E004C0E0E0F0E0D9 -:1004C00020E030E0ED93FC93C901089528E030E08E -:1004D00040E003C04F5F220F331F28173907D0F3C6 -:1004E000842F8295807F08958093E9008091EB00AE -:1004F00081608093EB001092ED006093EC004093DC -:10050000ED008091EE00881F8827881F08951092C3 -:10051000F40090E09093E9001092F0001092E8004F -:100520001092ED008091EB008E7F8093EB009F5F37 -:10053000953081F708958091270288238CF403C0B9 -:100540008EB38823B1F08091E80082FFF9CF8091CB -:10055000E8008B778093E80008958EB3882349F0F4 -:100560008091E80080FFF9CF8091E8008E7780933A -:10057000E800089594E68091EC0080FF05C080912A -:10058000E80080FF05C023C08091E80082FD1FC005 -:100590008EB3882311F482E008958EB3853011F470 -:1005A00083E008958091EB0085FF02C081E008950B -:1005B0008091E10082FFDFCF8091E1008B7F80930B -:1005C000E100992311F484E008959150D4CF80E0A4 -:1005D00008959C0140912D0250912E024617570715 -:1005E00018F4F90120E038C06115710511F0AB0174 -:1005F000F8CF8091E8008E778093E80040E050E0EB -:10060000F0CF8091E80083FF02C081E008958091DF -:10061000E80082FD2DC08EB3882381F18EB3853032 -:1006200079F18091E80080FF17C09091F20006C038 -:1006300081918093F100415050409F5F41155105D9 -:1006400011F09830A8F320E0983009F421E080916F -:10065000E8008E778093E8004115510591F622233A -:1006600081F606C08EB3882349F08EB3853041F001 -:100670008091E80082FFF6CF80E0089582E008953F -:1006800083E008959C0140912D0250912E0246175F -:10069000570710F490E03BC06115710511F0AB01F4 -:1006A000F9CF8091E8008E778093E80040E050E039 -:1006B000F1CF8091E80083FF02C081E0089580912E -:1006C000E80082FD30C08EB3882399F18EB3853067 -:1006D00091F18091E80080FF1AC08091F20009C07A -:1006E000F9012F5F3F4FE491E093F10041505040FA -:1006F0008F5F4115510511F0883090F390E08830FC -:1007000009F491E08091E8008E778093E80041152C -:10071000510579F6992369F606C08EB3882349F00E -:100720008EB3853041F08091E80082FFF6CF80E003 -:10073000089582E0089583E008959C016115710594 -:1007400029F48091E8008B778093E800F90120C0BC -:100750008091E80083FF02C081E008958EB3882372 -:1007600039F18EB3853031F18091E80082FFF0CF0E -:1007700006C08091F10081936150704021F080911A -:10078000F2008823B1F78091E8008B778093E8002E -:1007900061157105E9F606C08EB3882349F08EB362 -:1007A000853041F08091E80080FFF6CF80E0089529 -:1007B00082E0089583E0089542D044D01EBA10929A -:1007C0002502109224021092230284E089BD89B58B -:1007D000826089BD09B400FEFDCF8091D800982FBA -:1007E0009F779093D80080688093D80080916300B1 -:1007F0008E7F809363008091D8008F7D8093D80096 -:100800008091E0008E7F8093E0008091E1008E7FF8 -:100810008093E1008091E20081608093E20080910A -:10082000E100877F8093E1008091E20088608093FF -:10083000E2000895C1DF81E08093260208951092BE -:10084000E20008951092E10008951F920F920FB6F2 -:100850000F9211241F932F933F934F935F936F93A6 -:100860007F938F939F93AF93BF93EF93FF93E9EEA3 -:10087000F0E0108117701082E0EFF0E08081877F58 -:1008800080837894C3D0F894A9EEB0E01C92E0EF96 -:10089000F0E08081886080831C93FF91EF91BF918D -:1008A000AF919F918F917F916F915F914F913F9108 -:1008B0002F911F910F900FBE0F901F9018951F92B0 -:1008C0000F920FB60F9211242F933F934F935F9384 -:1008D0006F937F938F939F93AF93BF93EF93FF9308 -:1008E0008091E10080FF1BC08091E20080FF17C073 -:1008F0008091E1008E7F8093E1008091E2008E7F05 -:100900008093E2008091E20080618093E200809118 -:10091000D80080628093D80019BC1EBAD1D18091D2 -:10092000E10084FF29C08091E20084FF25C084E0BB -:1009300089BD89B5826089BD09B400FEFDCF809173 -:10094000D8008F7D8093D8008091E1008F7E8093C6 -:10095000E1008091E2008F7E8093E2008091E200CE -:1009600081608093E20080912502882311F481E068 -:1009700001C084E08EBBA4D18091E10083FF27C039 -:100980008091E20083FF23C08091E100877F809304 -:10099000E10082E08EBB109225028091E1008E7F03 -:1009A0008093E1008091E2008E7F8093E20080914D -:1009B000E20080618093E200AADD80E060E042E036 -:1009C00093DD8091F00088608093F00079D1809170 -:1009D000E10082FF0AC08091E20082FF06C08091A0 -:1009E000E1008B7F8093E1006BD1FF91EF91BF918C -:1009F000AF919F918F917F916F915F914F913F91B7 -:100A00002F910F900FBE0F901F9018951F93DF939B -:100A1000CF93CDB7DEB7AC970FB6F894DEBF0FBE5D -:100A2000CDBFE7E2F2E08091F100819322E0EF3266 -:100A3000F207C9F78091270230912802353009F476 -:100A400087C0363040F43130C9F1313070F0333086 -:100A500009F01DC133C0383009F4EFC0393009F452 -:100A6000FEC0363009F013C192C0803821F08238C0 -:100A700009F00DC108C090912302809124028823BF -:100A800099F0926011C080912B0287708093E900E9 -:100A90008091EB0090E025E0969587952A95E1F707 -:100AA000982F91701092E9008091E800877F8093E1 -:100AB000E8009093F1001092F100CAC0882319F069 -:100AC000823009F0E4C090E08F719070009721F0BF -:100AD000029709F0DDC00CC080912902813009F035 -:100AE000D7C010922402333069F5809324022AC0C3 -:100AF00080912902882331F520912B02277009F477 -:100B0000C7C02093E9008091EB0080FFC1C0333063 -:100B100021F48091EB00806213C08091EB00806132 -:100B20008093EB0081E090E002C0880F991F2A9526 -:100B3000E2F78093EA001092EA008091EB0088606F -:100B40008093EB001092E9008091E800877F83C0DA -:100B5000882309F09CC0109129028091E800877FCA -:100B60008093E800E8DC04C08EB3882309F490C0C9 -:100B70008091E80080FFF8CF812F8F7711F492E009 -:100B800001C093E09EBB80688093E30081C08058E1 -:100B9000823008F07CC08091290290912A0223E0E3 -:100BA0008C3D920799F55FB7F894DE0115964EE0FB -:100BB00020E030E061E2E42FF0E0609357008491A0 -:100BC00020FF03C082958F704F5F982F9F70892FF1 -:100BD000805D8A3308F0895F8C9311961C9211977F -:100BE0002F5F3F4F12962431310529F75FBF8AE20C -:100BF0008B8383E08C838091E800877F8093E8007B -:100C0000CE0103966AE270E0E4DC11C060912B0231 -:100C1000AE014F5F5F4F2CDCBC010097C9F18091A2 -:100C2000E800877F8093E80089819A812BDD80919D -:100C3000E8008B778093E8002BC0803841F58091E5 -:100C4000E800877F8093E800809125028093F1007F -:100C50008091E8008E778093E8006DDC19C08823CE -:100C6000B1F490912902923098F48091E800877F46 -:100C70008093E800909325025EDC80912502882312 -:100C800011F483E001C084E08EBB2DDB01C028DBC2 -:100C90008091E80083FF0AC08091EB00806280931E -:100CA000EB008091E800877F8093E800AC960FB658 -:100CB000F894DEBF0FBECDBFCF91DF911F91089595 -:100CC00008951F938EB3882361F01091E90010926C -:100CD000E9008091E80083FF01C098DE177010934F -:100CE000E9001F9108950895FC018EB3843021F529 -:100CF00087859089A189B2890097A105B105E1F0A6 -:100D000085818093E9008091E80082FF15C0809181 -:100D1000F200882319F42FEF3FEF04C08091F10017 -:100D2000282F30E08091F200882341F48091E80080 -:100D30008B778093E80002C02FEF3FEFC901089541 -:100D4000FC018EB3843011F587859089A189B28921 -:100D50000097A105B105D1F081818093E9008091D0 -:100D6000F2008823A9F09091E8008091E8008E7746 -:100D70008093E80095FD0CC0FDDB982F882349F493 -:100D80008091E8008E778093E80003C092E001C074 -:100D900090E0892F0895FC018EB3843051F487854B -:100DA0009089A189B2890097A105B10511F0CF0101 -:100DB000C7CF08951F93FC01162F8EB38430D9F44A -:100DC00087859089A189B2890097A105B10599F01D -:100DD00081818093E9008091E80085FD08C08091C1 -:100DE000E8008E778093E800C5DB882329F4109310 -:100DF000F10080E001C082E01F9108950F931F93DE -:100E0000CF93DF93EC010D96FC0189E0DF011D9289 -:100E10008A95E9F72A813B8109818C81882311F425 -:100E200010E001C014E0C90151DB182B1260802FC3 -:100E300061E8412F59DB882329F12E813F810D8103 -:100E40008885882311F410E001C014E0C9013EDB5D -:100E5000182B1260802F60E8412F46DB882391F029 -:100E60002A853B8509858C85882311F410E001C013 -:100E700014E0C9012BDB182B1260802F61EC412F8D -:100E800033DB01C080E0DF91CF911F910F91089576 -:100E9000CF93DF93EC018091E80083FF60C08881ED -:100EA00090E020912B0230912C022817390709F08D -:100EB00056C080912802813261F0823220F4803263 -:100EC00009F04DC019C0823269F1833209F047C080 -:100ED00038C080912702813A09F041C08091E80032 -:100EE000877F8093E800CE010F9667E070E071DBAA -:100EF0008091E8008B7713C080912702813279F5C9 -:100F00008091E800877F8093E800CE010F9667E02C -:100F100070E013DCCE013ED98091E8008E7780939B -:100F2000E8001DC0809127028132C9F48091E80059 -:100F3000877F8093E800809129028D87CE01C8D9F0 -:100F40000DC080912702813251F48091E800877FA3 -:100F50008093E800CE0160912902C5DEECDADF91D2 -:100F6000CF910895A1E21A2EAA1BBB1BFD010DC053 -:100F7000AA1FBB1FEE1FFF1FA217B307E407F50749 -:100F800020F0A21BB30BE40BF50B661F771F881F25 -:100F9000991F1A9469F760957095809590959B01BB -:0C0FA000AC01BD01CF010895F894FFCF13 -:100FAC0000034000000440000002080000000000A4 -:060FBC000000000000002F -:00000001FF diff --git a/build/linux/work/hardware/arduino/firmwares/arduino-usbserial/Arduino-usbserial-mega.hex b/build/linux/work/hardware/arduino/firmwares/arduino-usbserial/Arduino-usbserial-mega.hex deleted file mode 100644 index fbbeb0714..000000000 --- a/build/linux/work/hardware/arduino/firmwares/arduino-usbserial/Arduino-usbserial-mega.hex +++ /dev/null @@ -1,256 +0,0 @@ -:10000000A2C00000BBC00000B9C00000B7C0000023 -:10001000B5C00000B3C00000B1C00000AFC0000018 -:10002000ADC00000ABC00000A9C000005AC4000071 -:100030001EC40000A3C00000A1C000009FC00000BB -:100040009DC000009BC0000099C0000097C0000048 -:1000500095C0000093C0000091C0000014C10000D2 -:100060008DC000008BC0000089C0000087C0000068 -:1000700085C0000083C0000081C000007FC0000078 -:100080007DC000007BC0000079C0000077C0000088 -:1000900075C0000073C000001201100102000008CA -:1000A0004123100001000102DC0109023E000201AF -:1000B00000C0320904000001020201000524000111 -:1000C0001004240206052406000107058203080027 -:1000D000FF09040100020A000000070504024000B5 -:1000E00001070583024000010403090432034100B3 -:1000F00072006400750069006E006F002000280027 -:100100007700770077002E006100720064007500B0 -:1001100069006E006F002E0063006300290000007C -:100120002403410072006400750069006E006F00D6 -:1001300020004D006500670061002000320035009E -:1001400036003000000011241FBECFEFD2E0DEBF2A -:10015000CDBF11E0A0E0B1E0E0EDFFE002C005900E -:100160000D92A631B107D9F712E0A6E1B1E001C0C6 -:100170001D92AF32B107E1F7F1D028C741CF9C0102 -:10018000DC01AE57BF4FED91FC9111974191119653 -:10019000FC93EE9380589F4FE817F90711F42D93C5 -:1001A0003C939FB7F894F901EC57FF4F8081815041 -:1001B00080839FBF842F0895DF92EF92FF920F9369 -:1001C0001F93FC018489813019F0823021F405C02D -:1001D00040E3D42E04C0DD2402C030E2D32E838954 -:1001E000823011F488E0D82A8589873031F0883050 -:1001F00031F0863031F482E003C084E001C086E053 -:10020000D82A1092C9001092C8001092CA00E78440 -:10021000F0880189128980E0E81681EEF80680E016 -:10022000080780E0180719F420E130E00FC0C8018A -:10023000B701969587957795679560587B47814E6E -:100240009F4FA8019701A0D6215030403093CD0098 -:100250002093CC00D092CA0080E0E81681EEF80628 -:1002600080E0080780E0180711F082E001C080E01C -:100270008093C80088E98093C9001F910F91FF9077 -:10028000EF90DF9008951F920F920FB60F921124F6 -:100290002F938F939F93EF93FF939091CE008EB304 -:1002A0008430F1F4E0919901F0919A019083E0910A -:1002B0009901F0919A01CF01019690939A01809350 -:1002C00099018959914021F489E191E092838183D8 -:1002D0009FB7F89480919D018F5F80939D019FBF90 -:1002E000FF91EF919F918F912F910F900FBE0F90E3 -:1002F0001F901895FC01858580FF02C05F980895C6 -:100300005F9A089580E091E0D5C580E091E088C5CE -:1003100084B7877F84BF28E10FB6F89420936000EC -:10032000109260000FBE87E690E09093CD0080931E -:10033000CC0086E08093CA001092C8002093C900C8 -:10034000539A5A9A8AB180638AB98BB180638BB908 -:1003500083D284E085BD5F9A579A08950F931F93C7 -:10036000CF93DF93D5DF2FB7F8948EE991E0909388 -:100370001F0280931E0290932102809320022FBFC0 -:100380002FB7F89489E191E090939A0180939901B5 -:1003900090939C0180939B012FBF7894CEE9D1E08C -:1003A00003E08FB7F894909122028FBF903809F143 -:1003B00080E091E0ABD497FD1CC0E0911E02F0916B -:1003C0001F028083E0911E02F0911F02CF0101966F -:1003D00090931F0280931E028E51924011F4D2839B -:1003E000C1839FB7F894809122028F5F809322028D -:1003F0009FBF8FB7F89410919D018FBFA89902C03D -:10040000113678F1A89A80919D01882361F05D985A -:100410000093160108C089E191E0B1DE682F80E009 -:1004200091E0DAD411501123B1F78091160188239D -:1004300051F0809116018150809316018091160130 -:10044000882309F45D9A80911701882351F08091E7 -:10045000170181508093170180911701882309F4B7 -:100460005C9A8FB7F894909122028FBF992369F01C -:100470008EE991E084DE982F8091C80085FFFCCF43 -:100480009093CE005C980093170180E091E095D4A2 -:100490002AD487CFDA01923049F0933061F091305D -:1004A000F9F4E8E9F0E022E130E01EC0EAEAF0E029 -:1004B0002EE330E019C0813049F0813018F08230ED -:1004C00079F408C0E8EEF0E0849107C0ECEEF0E0CB -:1004D000849103C0E0E2F1E08491282F30E004C071 -:1004E000E0E0F0E020E030E0ED93FC93C9010895F6 -:1004F00028E030E040E003C04F5F220F331F281791 -:100500003907D0F3842F8295807F08958093E90086 -:100510008091EB0081608093EB001092ED0060937E -:10052000EC004093ED008091EE00881F8827881F23 -:1005300008951092F40090E09093E9001092F0007A -:100540001092E8001092ED008091EB008E7F809376 -:10055000EB009F5F953081F70895809127028823F3 -:100560008CF403C08EB38823B1F08091E80082FF41 -:10057000F9CF8091E8008B778093E80008958EB3DF -:10058000882349F08091E80080FFF9CF8091E8004E -:100590008E778093E800089594E68091EC0080FFC8 -:1005A00005C08091E80080FF05C023C08091E8006D -:1005B00082FD1FC08EB3882311F482E008958EB3AC -:1005C000853011F483E008958091EB0085FF02C02F -:1005D00081E008958091E10082FFDFCF8091E1000A -:1005E0008B7F8093E100992311F484E0089591506A -:1005F000D4CF80E008959C0140912D0250912E02AD -:100600004617570718F4F90120E038C06115710545 -:1006100011F0AB01F8CF8091E8008E778093E8006D -:1006200040E050E0F0CF8091E80083FF02C081E01D -:1006300008958091E80082FD2DC08EB3882381F15A -:100640008EB3853079F18091E80080FF17C09091DA -:10065000F20006C081918093F100415050409F5FAD -:100660004115510511F09830A8F320E0983009F4B5 -:1006700021E08091E8008E778093E80041155105D4 -:1006800091F6222381F606C08EB3882349F08EB3FB -:10069000853041F08091E80082FFF6CF80E0089538 -:1006A00082E0089583E008959C0140912D025091CD -:1006B0002E024617570710F490E03BC061157105F4 -:1006C00011F0AB01F9CF8091E8008E778093E800BC -:1006D00040E050E0F1CF8091E80083FF02C081E06C -:1006E00008958091E80082FD30C08EB3882399F18F -:1006F0008EB3853091F18091E80080FF1AC080911F -:10070000F20009C0F9012F5F3F4FE491E093F1003F -:10071000415050408F5F4115510511F0883090F3E2 -:1007200090E0883009F491E08091E8008E77809322 -:10073000E8004115510579F6992369F606C08EB394 -:10074000882349F08EB3853041F08091E80082FF24 -:10075000F6CF80E0089582E0089583E008959C013B -:100760006115710529F48091E8008B778093E8008A -:10077000F90120C08091E80083FF02C081E0089564 -:100780008EB3882339F18EB3853031F18091E80042 -:1007900082FFF0CF06C08091F100819361507040DC -:1007A00021F08091F2008823B1F78091E8008B77E7 -:1007B0008093E80061157105E9F606C08EB38823C1 -:1007C00049F08EB3853041F08091E80080FFF6CF8C -:1007D00080E0089582E0089583E0089542D044D0F7 -:1007E0001EBA10922502109224021092230284E075 -:1007F00089BD89B5826089BD09B400FEFDCF8091B5 -:10080000D800982F9F779093D80080688093D80065 -:10081000809163008E7F809363008091D8008F7DEC -:100820008093D8008091E0008E7F8093E0008091DB -:10083000E1008E7F8093E1008091E20081608093EF -:10084000E2008091E100877F8093E1008091E200E7 -:1008500088608093E2000895C1DF81E080932602E2 -:1008600008951092E20008951092E10008951F92F9 -:100870000F920FB60F9211241F932F933F934F9314 -:100880005F936F937F938F939F93AF93BF93EF93F8 -:10089000FF93E9EEF0E0108117701082E0EFF0E0D6 -:1008A0008081877F80837894C3D0F894A9EEB0E0EC -:1008B0001C92E0EFF0E08081886080831C93FF91C0 -:1008C000EF91BF91AF919F918F917F916F915F91C8 -:1008D0004F913F912F911F910F900FBE0F901F903E -:1008E00018951F920F920FB60F9211242F933F93DA -:1008F0004F935F936F937F938F939F93AF93BF9328 -:10090000EF93FF938091E10080FF1BC08091E20094 -:1009100080FF17C08091E1008E7F8093E10080917D -:10092000E2008E7F8093E2008091E20080618093FC -:10093000E2008091D80080628093D80019BC1EBA72 -:10094000D1D18091E10084FF29C08091E20084FF31 -:1009500025C084E089BD89B5826089BD09B400FEE7 -:10096000FDCF8091D8008F7D8093D8008091E100E9 -:100970008F7E8093E1008091E2008F7E8093E20081 -:100980008091E20081608093E200809125028823BB -:1009900011F481E001C084E08EBBA4D18091E1001C -:1009A00083FF27C08091E20083FF23C08091E10094 -:1009B000877F8093E10082E08EBB109225028091B8 -:1009C000E1008E7F8093E1008091E2008E7F809332 -:1009D000E2008091E20080618093E200AADD80E085 -:1009E00060E042E093DD8091F00088608093F00049 -:1009F00079D18091E10082FF0AC08091E20082FFFC -:100A000006C08091E1008B7F8093E1006BD1FF9164 -:100A1000EF91BF91AF919F918F917F916F915F9176 -:100A20004F913F912F910F900FBE0F901F901895EF -:100A30001F93DF93CF93CDB7DEB7AC970FB6F89483 -:100A4000DEBF0FBECDBFE7E2F2E08091F1008193FF -:100A500022E0EF32F207C9F7809127023091280295 -:100A6000353009F487C0363040F43130C9F13130C7 -:100A700070F0333009F01DC133C0383009F4EFC0D5 -:100A8000393009F4FEC0363009F013C192C0803805 -:100A900021F0823809F00DC108C0909123028091A5 -:100AA0002402882399F0926011C080912B028770F4 -:100AB0008093E9008091EB0090E025E09695879582 -:100AC0002A95E1F7982F91701092E9008091E80043 -:100AD000877F8093E8009093F1001092F100CAC0E4 -:100AE000882319F0823009F0E4C090E08F71907093 -:100AF000009721F0029709F0DDC00CC08091290217 -:100B0000813009F0D7C010922402333069F5809308 -:100B100024022AC080912902882331F520912B02DA -:100B2000277009F4C7C02093E9008091EB0080FF93 -:100B3000C1C0333021F48091EB00806213C08091FA -:100B4000EB0080618093EB0081E090E002C0880FB1 -:100B5000991F2A95E2F78093EA001092EA008091AB -:100B6000EB0088608093EB001092E9008091E80030 -:100B7000877F83C0882309F09CC01091290280914F -:100B8000E800877F8093E800E8DC04C08EB3882308 -:100B900009F490C08091E80080FFF8CF812F8F7713 -:100BA00011F492E001C093E09EBB80688093E30063 -:100BB00081C08058823008F07CC0809129029091D9 -:100BC0002A0223E08C3D920799F55FB7F894DE0185 -:100BD00015964EE020E030E061E2E42FF0E0609313 -:100BE0005700849120FF03C082958F704F5F982F2C -:100BF0009F70892F805D8A3308F0895F8C931196EE -:100C00001C9211972F5F3F4F12962431310529F71F -:100C10005FBF8AE28B8383E08C838091E800877FCB -:100C20008093E800CE0103966AE270E0E4DC11C034 -:100C300060912B02AE014F5F5F4F2CDCBC0100972F -:100C4000C9F18091E800877F8093E80089819A81CB -:100C50002BDD8091E8008B778093E8002BC08038F3 -:100C600041F58091E800877F8093E800809125021C -:100C70008093F1008091E8008E778093E8006DDC2E -:100C800019C08823B1F490912902923098F4809190 -:100C9000E800877F8093E800909325025EDC8091D6 -:100CA0002502882311F483E001C084E08EBB2DDB94 -:100CB00001C028DB8091E80083FF0AC08091EB002F -:100CC00080628093EB008091E800877F8093E8004A -:100CD000AC960FB6F894DEBF0FBECDBFCF91DF91BB -:100CE0001F91089508951F938EB3882361F010918A -:100CF000E9001092E9008091E80083FF01C098DECE -:100D000017701093E9001F9108950895FC018EB3A8 -:100D1000843021F587859089A189B2890097A10542 -:100D2000B105E1F085818093E9008091E80082FFC0 -:100D300015C08091F200882319F42FEF3FEF04C013 -:100D40008091F100282F30E08091F200882341F457 -:100D50008091E8008B778093E80002C02FEF3FEF8F -:100D6000C9010895FC018EB3843011F587859089FF -:100D7000A189B2890097A105B105D1F08181809345 -:100D8000E9008091F2008823A9F09091E800809119 -:100D9000E8008E778093E80095FD0CC0FDDB982F6E -:100DA000882349F48091E8008E778093E80003C09F -:100DB00092E001C090E0892F0895FC018EB3843049 -:100DC00051F487859089A189B2890097A105B10561 -:100DD00011F0CF01C7CF08951F93FC01162F8EB3DA -:100DE0008430D9F487859089A189B2890097A105BB -:100DF000B10599F081818093E9008091E80085FD3B -:100E000008C08091E8008E778093E800C5DB8823D6 -:100E100029F41093F10080E001C082E01F91089551 -:100E20000F931F93CF93DF93EC010D96FC0189E0A4 -:100E3000DF011D928A95E9F72A813B8109818C8126 -:100E4000882311F410E001C014E0C90151DB182B14 -:100E50001260802F61E8412F59DB882329F12E8110 -:100E60003F810D818885882311F410E001C014E0D2 -:100E7000C9013EDB182B1260802F60E8412F46DB52 -:100E8000882391F02A853B8509858C85882311F478 -:100E900010E001C014E0C9012BDB182B1260802F79 -:100EA00061EC412F33DB01C080E0DF91CF911F91D6 -:100EB0000F910895CF93DF93EC018091E80083FFB9 -:100EC00060C0888190E020912B0230912C0228177D -:100ED000390709F056C080912802813261F08232D0 -:100EE00020F4803209F04DC019C0823269F183329A -:100EF00009F047C038C080912702813A09F041C00B -:100F00008091E800877F8093E800CE010F9667E02C -:100F100070E071DB8091E8008B7713C0809127022D -:100F2000813279F58091E800877F8093E800CE01D7 -:100F30000F9667E070E013DCCE013ED98091E800A7 -:100F40008E778093E8001DC0809127028132C9F41A -:100F50008091E800877F8093E800809129028D8747 -:100F6000CE01C8D90DC080912702813251F4809101 -:100F7000E800877F8093E800CE0160912902C5DEFA -:100F8000ECDADF91CF910895A1E21A2EAA1BBB1BC8 -:100F9000FD010DC0AA1FBB1FEE1FFF1FA217B30745 -:100FA000E407F50720F0A21BB30BE40BF50B661F5B -:100FB000771F881F991F1A9469F76095709580951F -:100FC00090959B01AC01BD01CF010895F894FFCF2E -:100FD0000003400000044000000208000000000080 -:060FE0000000000000000B -:00000001FF diff --git a/build/linux/work/hardware/arduino/firmwares/arduino-usbserial/Arduino-usbserial-uno.hex b/build/linux/work/hardware/arduino/firmwares/arduino-usbserial/Arduino-usbserial-uno.hex deleted file mode 100644 index ca51dfaee..000000000 --- a/build/linux/work/hardware/arduino/firmwares/arduino-usbserial/Arduino-usbserial-uno.hex +++ /dev/null @@ -1,256 +0,0 @@ -:100000009CC00000B5C00000B3C00000B1C000003B -:10001000AFC00000ADC00000ABC00000A9C0000030 -:10002000A7C00000A5C00000A3C0000054C4000089 -:1000300018C400009DC000009BC0000099C00000D3 -:1000400097C0000095C0000093C0000091C0000060 -:100050008FC000008DC000008BC000000EC10000EA -:1000600087C0000085C0000083C0000081C0000080 -:100070007FC000007DC000007BC0000079C0000090 -:1000800077C0000075C0000073C0000071C00000A0 -:100090006FC000006DC000001201100102000008D6 -:1000A0004123010001000102DC0109023E000201BE -:1000B00000C0320904000001020201000524000111 -:1000C0001004240206052406000107058203080027 -:1000D000FF09040100020A000000070504024000B5 -:1000E00001070583024000010403090432034100B3 -:1000F00072006400750069006E006F002000280027 -:100100007700770077002E006100720064007500B0 -:1001100069006E006F002E0063006300290000007C -:100120001803410072006400750069006E006F00E2 -:10013000200055006E006F00000011241FBECFEF9D -:10014000D2E0DEBFCDBF11E0A0E0B1E0E4ECFFE023 -:1001500002C005900D92A631B107D9F712E0A6E1D1 -:10016000B1E001C01D92AF32B107E1F7F1D028C76D -:1001700047CF9C01DC01AE57BF4FED91FC91119729 -:1001800041911196FC93EE9380589F4FE817F90721 -:1001900011F42D933C939FB7F894F901EC57FF4F5E -:1001A0008081815080839FBF842F0895DF92EF92DA -:1001B000FF920F931F93FC018489813019F08230E4 -:1001C00021F405C040E3D42E04C0DD2402C030E297 -:1001D000D32E8389823011F488E0D82A858987302C -:1001E00031F0883031F0863031F482E003C084E0B1 -:1001F00001C086E0D82A1092C9001092C80010925F -:10020000CA00E784F0880189128980E0E81681EE4F -:10021000F80680E0080780E0180719F420E130E0D4 -:100220000FC0C801B7019695879577956795605877 -:100230007B47814E9F4FA8019701A0D621503040A7 -:100240003093CD002093CC00D092CA0080E0E81615 -:1002500081EEF80680E0080780E0180711F082E0E0 -:1002600001C080E08093C80088E98093C9001F9195 -:100270000F91FF90EF90DF9008951F920F920FB6AD -:100280000F9211242F938F939F93EF93FF9390914D -:10029000CE008EB38430F1F4E0919901F0919A018F -:1002A0009083E0919901F0919A01CF01019690938A -:1002B0009A01809399018959914021F489E191E053 -:1002C000928381839FB7F89480919D018F5F809383 -:1002D0009D019FBFFF91EF919F918F912F910F9063 -:1002E0000FBE0F901F901895FC01858580FF02C0FE -:1002F0005F9808955F9A089580E091E0D5C580E009 -:1003000091E088C584B7877F84BF28E10FB6F89451 -:1003100020936000109260000FBE87E690E09093FB -:10032000CD008093CC0086E08093CA001092C80074 -:100330002093C900539A5A9A8AB180638AB98BB1C3 -:1003400080638BB983D284E085BD5F9A579A089504 -:100350000F931F93CF93DF93D5DF2FB7F8948EE9D8 -:1003600091E090931F0280931E029093210280934C -:1003700020022FBF2FB7F89489E191E090939A0162 -:100380008093990190939C0180939B012FBF789457 -:10039000CEE9D1E003E08FB7F894909122028FBFAD -:1003A000903809F180E091E0ABD497FD1CC0E0915A -:1003B0001E02F0911F028083E0911E02F0911F0245 -:1003C000CF01019690931F0280931E028E5192409E -:1003D00011F4D283C1839FB7F894809122028F5F7A -:1003E000809322029FBF8FB7F89410919D018FBF19 -:1003F000A89902C0113678F1A89A80919D018823AE -:1004000061F05D980093160108C089E191E0B1DECA -:10041000682F80E091E0DAD411501123B1F7809178 -:100420001601882351F080911601815080931601A6 -:1004300080911601882309F45D9A80911701882321 -:1004400051F080911701815080931701809117011D -:10045000882309F45C9A8FB7F894909122028FBF99 -:10046000992369F08EE991E084DE982F8091C8008D -:1004700085FFFCCF9093CE005C980093170180E03D -:1004800091E095D42AD487CFDA01923049F09330A5 -:1004900061F09130F9F4E8E9F0E022E130E01EC0CB -:1004A000EAEAF0E02EE330E019C0813049F0813013 -:1004B00018F0823079F408C0E8EEF0E0849107C0CB -:1004C000ECEEF0E0849103C0E0E2F1E08491282FAB -:1004D00030E004C0E0E0F0E020E030E0ED93FC9399 -:1004E000C901089528E030E040E003C04F5F220FCB -:1004F000331F28173907D0F3842F8295807F089502 -:100500008093E9008091EB0081608093EB00109272 -:10051000ED006093EC004093ED008091EE00881FA9 -:100520008827881F08951092F40090E09093E900C6 -:100530001092F0001092E8001092ED008091EB0014 -:100540008E7F8093EB009F5F953081F708958091B7 -:10055000270288238CF403C08EB38823B1F08091E6 -:10056000E80082FFF9CF8091E8008B778093E80064 -:1005700008958EB3882349F08091E80080FFF9CF79 -:100580008091E8008E778093E800089594E680914A -:10059000EC0080FF05C08091E80080FF05C023C00B -:1005A0008091E80082FD1FC08EB3882311F482E0A1 -:1005B00008958EB3853011F483E008958091EB00A7 -:1005C00085FF02C081E008958091E10082FFDFCFC6 -:1005D0008091E1008B7F8093E100992311F484E006 -:1005E00008959150D4CF80E008959C0140912D0250 -:1005F00050912E024617570718F4F90120E038C031 -:100600006115710511F0AB01F8CF8091E8008E778C -:100610008093E80040E050E0F0CF8091E80083FF55 -:1006200002C081E008958091E80082FD2DC08EB364 -:10063000882381F18EB3853079F18091E80080FFC5 -:1006400017C09091F20006C081918093F100415053 -:1006500050409F5F4115510511F09830A8F320E0FC -:10066000983009F421E08091E8008E778093E800CB -:100670004115510591F6222381F606C08EB38823D9 -:1006800049F08EB3853041F08091E80082FFF6CFCB -:1006900080E0089582E0089583E008959C014091F0 -:1006A0002D0250912E024617570710F490E03BC0E0 -:1006B0006115710511F0AB01F9CF8091E8008E77DB -:1006C0008093E80040E050E0F1CF8091E80083FFA4 -:1006D00002C081E008958091E80082FD30C08EB3B1 -:1006E000882399F18EB3853091F18091E80080FFE5 -:1006F0001AC08091F20009C0F9012F5F3F4FE491C9 -:10070000E093F100415050408F5F4115510511F0C9 -:10071000883090F390E0883009F491E08091E8000F -:100720008E778093E8004115510579F6992369F693 -:1007300006C08EB3882349F08EB3853041F0809196 -:10074000E80082FFF6CF80E0089582E0089583E01C -:1007500008959C016115710529F48091E8008B775B -:100760008093E800F90120C08091E80083FF02C077 -:1007700081E008958EB3882339F18EB3853031F14D -:100780008091E80082FFF0CF06C08091F100819354 -:100790006150704021F08091F2008823B1F7809180 -:1007A000E8008B778093E80061157105E9F606C0D3 -:1007B0008EB3882349F08EB3853041F08091E800F4 -:1007C00080FFF6CF80E0089582E0089583E00895E9 -:1007D00042D044D01EBA10922502109224021092E8 -:1007E000230284E089BD89B5826089BD09B400FE19 -:1007F000FDCF8091D800982F9F779093D800806884 -:100800008093D800809163008E7F809363008091F5 -:10081000D8008F7D8093D8008091E0008E7F8093F8 -:10082000E0008091E1008E7F8093E1008091E20002 -:1008300081608093E2008091E100877F8093E100F6 -:100840008091E20088608093E2000895C1DF81E03A -:100850008093260208951092E20008951092E1001C -:1008600008951F920F920FB60F9211241F932F938A -:100870003F934F935F936F937F938F939F93AF9328 -:10088000BF93EF93FF93E9EEF0E0108117701082B1 -:10089000E0EFF0E08081877F80837894C3D0F89484 -:1008A000A9EEB0E01C92E0EFF0E0808188608083E8 -:1008B0001C93FF91EF91BF91AF919F918F917F9189 -:1008C0006F915F914F913F912F911F910F900FBEAC -:1008D0000F901F9018951F920F920FB60F92112430 -:1008E0002F933F934F935F936F937F938F939F9338 -:1008F000AF93BF93EF93FF938091E10080FF1BC004 -:100900008091E20080FF17C08091E1008E7F80938C -:10091000E1008091E2008E7F8093E2008091E2000E -:1009200080618093E2008091D80080628093D8003B -:1009300019BC1EBAD1D18091E10084FF29C08091F9 -:10094000E20084FF25C084E089BD89B5826089BD4D -:1009500009B400FEFDCF8091D8008F7D8093D80030 -:100960008091E1008F7E8093E1008091E2008F7E94 -:100970008093E2008091E20081608093E2008091A8 -:100980002502882311F481E001C084E08EBBA4D14C -:100990008091E10083FF27C08091E20083FF23C0A4 -:1009A0008091E100877F8093E10082E08EBB10920E -:1009B00025028091E1008E7F8093E1008091E2002A -:1009C0008E7F8093E2008091E20080618093E2005C -:1009D000AADD80E060E042E093DD8091F000886075 -:1009E0008093F00079D18091E10082FF0AC080916C -:1009F000E20082FF06C08091E1008B7F8093E100DE -:100A00006BD1FF91EF91BF91AF919F918F917F91AA -:100A10006F915F914F913F912F910F900FBE0F906B -:100A20001F9018951F93DF93CF93CDB7DEB7AC9788 -:100A30000FB6F894DEBF0FBECDBFE7E2F2E08091C3 -:100A4000F100819322E0EF32F207C9F7809127028B -:100A500030912802353009F487C0363040F4313007 -:100A6000C9F1313070F0333009F01DC133C0383076 -:100A700009F4EFC0393009F4FEC0363009F013C173 -:100A800092C0803821F0823809F00DC108C09091E1 -:100A9000230280912402882399F0926011C08091F2 -:100AA0002B0287708093E9008091EB0090E025E0B5 -:100AB000969587952A95E1F7982F91701092E90005 -:100AC0008091E800877F8093E8009093F100109276 -:100AD000F100CAC0882319F0823009F0E4C090E028 -:100AE0008F719070009721F0029709F0DDC00CC063 -:100AF00080912902813009F0D7C01092240233304E -:100B000069F5809324022AC080912902882331F557 -:100B100020912B02277009F4C7C02093E90080912F -:100B2000EB0080FFC1C0333021F48091EB00806284 -:100B300013C08091EB0080618093EB0081E090E036 -:100B400002C0880F991F2A95E2F78093EA0010925D -:100B5000EA008091EB0088608093EB001092E9003E -:100B60008091E800877F83C0882309F09CC01091A2 -:100B700029028091E800877F8093E800E8DC04C0C8 -:100B80008EB3882309F490C08091E80080FFF8CFED -:100B9000812F8F7711F492E001C093E09EBB8068B3 -:100BA0008093E30081C08058823008F07CC080913F -:100BB000290290912A0223E08C3D920799F55FB7B4 -:100BC000F894DE0115964EE020E030E061E2E42F7B -:100BD000F0E060935700849120FF03C082958F70EE -:100BE0004F5F982F9F70892F805D8A3308F0895F4F -:100BF0008C9311961C9211972F5F3F4F12962431C0 -:100C0000310529F75FBF8AE28B8383E08C83809173 -:100C1000E800877F8093E800CE0103966AE270E0E7 -:100C2000E4DC11C060912B02AE014F5F5F4F2CDC02 -:100C3000BC010097C9F18091E800877F8093E800AC -:100C400089819A812BDD8091E8008B778093E80081 -:100C50002BC0803841F58091E800877F8093E800C1 -:100C6000809125028093F1008091E8008E77809337 -:100C7000E8006DDC19C08823B1F49091290292300C -:100C800098F48091E800877F8093E8009093250294 -:100C90005EDC80912502882311F483E001C084E0AA -:100CA0008EBB2DDB01C028DB8091E80083FF0AC0EA -:100CB0008091EB0080628093EB008091E800877F59 -:100CC0008093E800AC960FB6F894DEBF0FBECDBFA0 -:100CD000CF91DF911F91089508951F938EB38823BC -:100CE00061F01091E9001092E9008091E80083FF23 -:100CF00001C098DE17701093E9001F9108950895C0 -:100D0000FC018EB3843021F587859089A189B28951 -:100D10000097A105B105E1F085818093E9008091FC -:100D2000E80082FF15C08091F200882319F42FEFAC -:100D30003FEF04C08091F100282F30E08091F20055 -:100D4000882341F48091E8008B778093E80002C00B -:100D50002FEF3FEFC9010895FC018EB3843011F5E8 -:100D600087859089A189B2890097A105B105D1F045 -:100D700081818093E9008091F2008823A9F090910D -:100D8000E8008091E8008E778093E80095FD0CC024 -:100D9000FDDB982F882349F48091E8008E778093BB -:100DA000E80003C092E001C090E0892F0895FC01A3 -:100DB0008EB3843051F487859089A189B2890097D8 -:100DC000A105B10511F0CF01C7CF08951F93FC0114 -:100DD000162F8EB38430D9F487859089A189B28982 -:100DE0000097A105B10599F081818093E900809178 -:100DF000E80085FD08C08091E8008E778093E800C8 -:100E0000C5DB882329F41093F10080E001C082E063 -:100E10001F9108950F931F93CF93DF93EC010D96CD -:100E2000FC0189E0DF011D928A95E9F72A813B8167 -:100E300009818C81882311F410E001C014E0C901FC -:100E400051DB182B1260802F61E8412F59DB88237A -:100E500029F12E813F810D818885882311F410E0CE -:100E600001C014E0C9013EDB182B1260802F60E83E -:100E7000412F46DB882391F02A853B8509858C85A7 -:100E8000882311F410E001C014E0C9012BDB182BFA -:100E90001260802F61EC412F33DB01C080E0DF91D5 -:100EA000CF911F910F910895CF93DF93EC01809123 -:100EB000E80083FF60C0888190E020912B02309190 -:100EC0002C022817390709F056C080912802813278 -:100ED00061F0823220F4803209F04DC019C08232B4 -:100EE00069F1833209F047C038C080912702813A06 -:100EF00009F041C08091E800877F8093E800CE012F -:100F00000F9667E070E071DB8091E8008B7713C08B -:100F100080912702813279F58091E800877F809364 -:100F2000E800CE010F9667E070E013DCCE013ED9F9 -:100F30008091E8008E778093E8001DC080912702A1 -:100F40008132C9F48091E800877F8093E800809126 -:100F500029028D87CE01C8D90DC080912702813228 -:100F600051F48091E800877F8093E800CE01609182 -:100F70002902C5DEECDADF91CF910895A1E21A2EA5 -:100F8000AA1BBB1BFD010DC0AA1FBB1FEE1FFF1F2D -:100F9000A217B307E407F50720F0A21BB30BE40B7D -:100FA000F50B661F771F881F991F1A9469F76095C4 -:100FB0007095809590959B01AC01BD01CF0108957E -:040FC000F894FFCFD3 -:100FC400000340000004400000020800000000008C -:060FD40000000000000017 -:00000001FF diff --git a/build/linux/work/hardware/arduino/firmwares/arduino-usbserial/Arduino-usbserial.c b/build/linux/work/hardware/arduino/firmwares/arduino-usbserial/Arduino-usbserial.c deleted file mode 100644 index 4de73c8a4..000000000 --- a/build/linux/work/hardware/arduino/firmwares/arduino-usbserial/Arduino-usbserial.c +++ /dev/null @@ -1,242 +0,0 @@ -/* - LUFA Library - Copyright (C) Dean Camera, 2010. - - dean [at] fourwalledcubicle [dot] com - www.fourwalledcubicle.com -*/ - -/* - Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com) - - Permission to use, copy, modify, distribute, and sell this - software and its documentation for any purpose is hereby granted - without fee, provided that the above copyright notice appear in - all copies and that both that the copyright notice and this - permission notice and warranty disclaimer appear in supporting - documentation, and that the name of the author not be used in - advertising or publicity pertaining to distribution of the - software without specific, written prior permission. - - The author disclaim all warranties with regard to this - software, including all implied warranties of merchantability - and fitness. In no event shall the author be liable for any - special, indirect or consequential damages or any damages - whatsoever resulting from loss of use, data or profits, whether - in an action of contract, negligence or other tortious action, - arising out of or in connection with the use or performance of - this software. -*/ - -/** \file - * - * Main source file for the Arduino-usbserial project. This file contains the main tasks of - * the project and is responsible for the initial application hardware configuration. - */ - -#include "Arduino-usbserial.h" - -/** Circular buffer to hold data from the host before it is sent to the device via the serial port. */ -RingBuff_t USBtoUSART_Buffer; - -/** Circular buffer to hold data from the serial port before it is sent to the host. */ -RingBuff_t USARTtoUSB_Buffer; - -/** Pulse generation counters to keep track of the number of milliseconds remaining for each pulse type */ -volatile struct -{ - uint8_t TxLEDPulse; /**< Milliseconds remaining for data Tx LED pulse */ - uint8_t RxLEDPulse; /**< Milliseconds remaining for data Rx LED pulse */ - uint8_t PingPongLEDPulse; /**< Milliseconds remaining for enumeration Tx/Rx ping-pong LED pulse */ -} PulseMSRemaining; - -/** LUFA CDC Class driver interface configuration and state information. This structure is - * passed to all CDC Class driver functions, so that multiple instances of the same class - * within a device can be differentiated from one another. - */ -USB_ClassInfo_CDC_Device_t VirtualSerial_CDC_Interface = - { - .Config = - { - .ControlInterfaceNumber = 0, - - .DataINEndpointNumber = CDC_TX_EPNUM, - .DataINEndpointSize = CDC_TXRX_EPSIZE, - .DataINEndpointDoubleBank = false, - - .DataOUTEndpointNumber = CDC_RX_EPNUM, - .DataOUTEndpointSize = CDC_TXRX_EPSIZE, - .DataOUTEndpointDoubleBank = false, - - .NotificationEndpointNumber = CDC_NOTIFICATION_EPNUM, - .NotificationEndpointSize = CDC_NOTIFICATION_EPSIZE, - .NotificationEndpointDoubleBank = false, - }, - }; - -/** Main program entry point. This routine contains the overall program flow, including initial - * setup of all components and the main program loop. - */ -int main(void) -{ - SetupHardware(); - - RingBuffer_InitBuffer(&USBtoUSART_Buffer); - RingBuffer_InitBuffer(&USARTtoUSB_Buffer); - - sei(); - - for (;;) - { - /* Only try to read in bytes from the CDC interface if the transmit buffer is not full */ - if (!(RingBuffer_IsFull(&USBtoUSART_Buffer))) - { - int16_t ReceivedByte = CDC_Device_ReceiveByte(&VirtualSerial_CDC_Interface); - - /* Read bytes from the USB OUT endpoint into the USART transmit buffer */ - if (!(ReceivedByte < 0)) - RingBuffer_Insert(&USBtoUSART_Buffer, ReceivedByte); - } - - /* Check if the UART receive buffer flush timer has expired or the buffer is nearly full */ - RingBuff_Count_t BufferCount = RingBuffer_GetCount(&USARTtoUSB_Buffer); - if ((TIFR0 & (1 << TOV0)) || (BufferCount > BUFFER_NEARLY_FULL)) - { - TIFR0 |= (1 << TOV0); - - if (USARTtoUSB_Buffer.Count) { - LEDs_TurnOnLEDs(LEDMASK_TX); - PulseMSRemaining.TxLEDPulse = TX_RX_LED_PULSE_MS; - } - - /* Read bytes from the USART receive buffer into the USB IN endpoint */ - while (BufferCount--) - CDC_Device_SendByte(&VirtualSerial_CDC_Interface, RingBuffer_Remove(&USARTtoUSB_Buffer)); - - /* Turn off TX LED(s) once the TX pulse period has elapsed */ - if (PulseMSRemaining.TxLEDPulse && !(--PulseMSRemaining.TxLEDPulse)) - LEDs_TurnOffLEDs(LEDMASK_TX); - - /* Turn off RX LED(s) once the RX pulse period has elapsed */ - if (PulseMSRemaining.RxLEDPulse && !(--PulseMSRemaining.RxLEDPulse)) - LEDs_TurnOffLEDs(LEDMASK_RX); - } - - /* Load the next byte from the USART transmit buffer into the USART */ - if (!(RingBuffer_IsEmpty(&USBtoUSART_Buffer))) { - Serial_TxByte(RingBuffer_Remove(&USBtoUSART_Buffer)); - - LEDs_TurnOnLEDs(LEDMASK_RX); - PulseMSRemaining.RxLEDPulse = TX_RX_LED_PULSE_MS; - } - - CDC_Device_USBTask(&VirtualSerial_CDC_Interface); - USB_USBTask(); - } -} - -/** Configures the board hardware and chip peripherals for the demo's functionality. */ -void SetupHardware(void) -{ - /* Disable watchdog if enabled by bootloader/fuses */ - MCUSR &= ~(1 << WDRF); - wdt_disable(); - - /* Hardware Initialization */ - Serial_Init(9600, false); - LEDs_Init(); - USB_Init(); - - /* Start the flush timer so that overflows occur rapidly to push received bytes to the USB interface */ - TCCR0B = (1 << CS02); - - /* Pull target /RESET line high */ - AVR_RESET_LINE_PORT |= AVR_RESET_LINE_MASK; - AVR_RESET_LINE_DDR |= AVR_RESET_LINE_MASK; -} - -/** Event handler for the library USB Configuration Changed event. */ -void EVENT_USB_Device_ConfigurationChanged(void) -{ - CDC_Device_ConfigureEndpoints(&VirtualSerial_CDC_Interface); -} - -/** Event handler for the library USB Unhandled Control Request event. */ -void EVENT_USB_Device_UnhandledControlRequest(void) -{ - CDC_Device_ProcessControlRequest(&VirtualSerial_CDC_Interface); -} - -/** Event handler for the CDC Class driver Line Encoding Changed event. - * - * \param[in] CDCInterfaceInfo Pointer to the CDC class interface configuration structure being referenced - */ -void EVENT_CDC_Device_LineEncodingChanged(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo) -{ - uint8_t ConfigMask = 0; - - switch (CDCInterfaceInfo->State.LineEncoding.ParityType) - { - case CDC_PARITY_Odd: - ConfigMask = ((1 << UPM11) | (1 << UPM10)); - break; - case CDC_PARITY_Even: - ConfigMask = (1 << UPM11); - break; - } - - if (CDCInterfaceInfo->State.LineEncoding.CharFormat == CDC_LINEENCODING_TwoStopBits) - ConfigMask |= (1 << USBS1); - - switch (CDCInterfaceInfo->State.LineEncoding.DataBits) - { - case 6: - ConfigMask |= (1 << UCSZ10); - break; - case 7: - ConfigMask |= (1 << UCSZ11); - break; - case 8: - ConfigMask |= ((1 << UCSZ11) | (1 << UCSZ10)); - break; - } - - /* Must turn off USART before reconfiguring it, otherwise incorrect operation may occur */ - UCSR1B = 0; - UCSR1A = 0; - UCSR1C = 0; - - /* Special case 57600 baud for compatibility with the ATmega328 bootloader. */ - UBRR1 = (CDCInterfaceInfo->State.LineEncoding.BaudRateBPS == 57600) - ? SERIAL_UBBRVAL(CDCInterfaceInfo->State.LineEncoding.BaudRateBPS) - : SERIAL_2X_UBBRVAL(CDCInterfaceInfo->State.LineEncoding.BaudRateBPS); - - UCSR1C = ConfigMask; - UCSR1A = (CDCInterfaceInfo->State.LineEncoding.BaudRateBPS == 57600) ? 0 : (1 << U2X1); - UCSR1B = ((1 << RXCIE1) | (1 << TXEN1) | (1 << RXEN1)); -} - -/** ISR to manage the reception of data from the serial port, placing received bytes into a circular buffer - * for later transmission to the host. - */ -ISR(USART1_RX_vect, ISR_BLOCK) -{ - uint8_t ReceivedByte = UDR1; - - if (USB_DeviceState == DEVICE_STATE_Configured) - RingBuffer_Insert(&USARTtoUSB_Buffer, ReceivedByte); -} - -/** Event handler for the CDC Class driver Host-to-Device Line Encoding Changed event. - * - * \param[in] CDCInterfaceInfo Pointer to the CDC class interface configuration structure being referenced - */ -void EVENT_CDC_Device_ControLineStateChanged(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo) -{ - bool CurrentDTRState = (CDCInterfaceInfo->State.ControlLineStates.HostToDevice & CDC_CONTROL_LINE_OUT_DTR); - - if (CurrentDTRState) - AVR_RESET_LINE_PORT &= ~AVR_RESET_LINE_MASK; - else - AVR_RESET_LINE_PORT |= AVR_RESET_LINE_MASK; -} diff --git a/build/linux/work/hardware/arduino/firmwares/arduino-usbserial/Arduino-usbserial.h b/build/linux/work/hardware/arduino/firmwares/arduino-usbserial/Arduino-usbserial.h deleted file mode 100644 index 99fde3914..000000000 --- a/build/linux/work/hardware/arduino/firmwares/arduino-usbserial/Arduino-usbserial.h +++ /dev/null @@ -1,79 +0,0 @@ -/* - LUFA Library - Copyright (C) Dean Camera, 2010. - - dean [at] fourwalledcubicle [dot] com - www.fourwalledcubicle.com -*/ - -/* - Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com) - - Permission to use, copy, modify, distribute, and sell this - software and its documentation for any purpose is hereby granted - without fee, provided that the above copyright notice appear in - all copies and that both that the copyright notice and this - permission notice and warranty disclaimer appear in supporting - documentation, and that the name of the author not be used in - advertising or publicity pertaining to distribution of the - software without specific, written prior permission. - - The author disclaim all warranties with regard to this - software, including all implied warranties of merchantability - and fitness. In no event shall the author be liable for any - special, indirect or consequential damages or any damages - whatsoever resulting from loss of use, data or profits, whether - in an action of contract, negligence or other tortious action, - arising out of or in connection with the use or performance of - this software. -*/ - -/** \file - * - * Header file for Arduino-usbserial.c. - */ - -#ifndef _ARDUINO_USBSERIAL_H_ -#define _ARDUINO_USBSERIAL_H_ - - /* Includes: */ - #include - #include - #include - #include - - #include "Descriptors.h" - - #include "Lib/LightweightRingBuff.h" - - #include - #include - #include - #include - #include - - /* Macros: */ - /** LED mask for the library LED driver, to indicate TX activity. */ - #define LEDMASK_TX LEDS_LED1 - - /** LED mask for the library LED driver, to indicate RX activity. */ - #define LEDMASK_RX LEDS_LED2 - - /** LED mask for the library LED driver, to indicate that an error has occurred in the USB interface. */ - #define LEDMASK_ERROR (LEDS_LED1 | LEDS_LED2) - - /** LED mask for the library LED driver, to indicate that the USB interface is busy. */ - #define LEDMASK_BUSY (LEDS_LED1 | LEDS_LED2) - - /* Function Prototypes: */ - void SetupHardware(void); - - void EVENT_USB_Device_Connect(void); - void EVENT_USB_Device_Disconnect(void); - void EVENT_USB_Device_ConfigurationChanged(void); - void EVENT_USB_Device_UnhandledControlRequest(void); - - void EVENT_CDC_Device_LineEncodingChanged(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo); - void EVENT_CDC_Device_ControLineStateChanged(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo); - -#endif /* _ARDUINO_USBSERIAL_H_ */ diff --git a/build/linux/work/hardware/arduino/firmwares/arduino-usbserial/Board/LEDs.h b/build/linux/work/hardware/arduino/firmwares/arduino-usbserial/Board/LEDs.h deleted file mode 100644 index 152e8f571..000000000 --- a/build/linux/work/hardware/arduino/firmwares/arduino-usbserial/Board/LEDs.h +++ /dev/null @@ -1,110 +0,0 @@ -/* - LUFA Library - Copyright (C) Dean Camera, 2010. - - dean [at] fourwalledcubicle [dot] com - www.fourwalledcubicle.com -*/ - -/* - Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com) - - Permission to use, copy, modify, distribute, and sell this - software and its documentation for any purpose is hereby granted - without fee, provided that the above copyright notice appear in - all copies and that both that the copyright notice and this - permission notice and warranty disclaimer appear in supporting - documentation, and that the name of the author not be used in - advertising or publicity pertaining to distribution of the - software without specific, written prior permission. - - The author disclaim all warranties with regard to this - software, including all implied warranties of merchantability - and fitness. In no event shall the author be liable for any - special, indirect or consequential damages or any damages - whatsoever resulting from loss of use, data or profits, whether - in an action of contract, negligence or other tortious action, - arising out of or in connection with the use or performance of - this software. -*/ - -/* - Board LEDs driver for the Benito board, from www.dorkbotpdx.org. -*/ - -#ifndef __LEDS_ARDUINOUNO_H__ -#define __LEDS_ARDUINOUNO_H__ - - /* Includes: */ - #include - -/* Enable C linkage for C++ Compilers: */ - #if defined(__cplusplus) - extern "C" { - #endif - - /* Preprocessor Checks: */ - #if !defined(INCLUDE_FROM_LEDS_H) - #error Do not include this file directly. Include LUFA/Drivers/Board/LEDS.h instead. - #endif - - /* Public Interface - May be used in end-application: */ - /* Macros: */ - /** LED mask for the first LED on the board. */ - #define LEDS_LED1 (1 << 5) - - /** LED mask for the second LED on the board. */ - #define LEDS_LED2 (1 << 4) - - /** LED mask for all the LEDs on the board. */ - #define LEDS_ALL_LEDS (LEDS_LED1 | LEDS_LED2) - - /** LED mask for the none of the board LEDs */ - #define LEDS_NO_LEDS 0 - - /* Inline Functions: */ - #if !defined(__DOXYGEN__) - static inline void LEDs_Init(void) - { - DDRD |= LEDS_ALL_LEDS; - PORTD |= LEDS_ALL_LEDS; - } - - static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask) - { - PORTD &= ~LEDMask; - } - - static inline void LEDs_TurnOffLEDs(const uint8_t LEDMask) - { - PORTD |= LEDMask; - } - - static inline void LEDs_SetAllLEDs(const uint8_t LEDMask) - { - PORTD = ((PORTD | LEDS_ALL_LEDS) & ~LEDMask); - } - - static inline void LEDs_ChangeLEDs(const uint8_t LEDMask, const uint8_t ActiveMask) - { - PORTD = ((PORTD | ActiveMask) & ~LEDMask); - } - - static inline void LEDs_ToggleLEDs(const uint8_t LEDMask) - { - PORTD ^= LEDMask; - } - - static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT; - static inline uint8_t LEDs_GetLEDs(void) - { - return (PORTD & LEDS_ALL_LEDS); - } - #endif - - /* Disable C linkage for C++ Compilers: */ - #if defined(__cplusplus) - } - #endif - -#endif diff --git a/build/linux/work/hardware/arduino/firmwares/arduino-usbserial/Descriptors.c b/build/linux/work/hardware/arduino/firmwares/arduino-usbserial/Descriptors.c deleted file mode 100644 index 705dddf9a..000000000 --- a/build/linux/work/hardware/arduino/firmwares/arduino-usbserial/Descriptors.c +++ /dev/null @@ -1,277 +0,0 @@ -/* - LUFA Library - Copyright (C) Dean Camera, 2010. - - dean [at] fourwalledcubicle [dot] com - www.fourwalledcubicle.com -*/ - -/* - Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com) - - Permission to use, copy, modify, distribute, and sell this - software and its documentation for any purpose is hereby granted - without fee, provided that the above copyright notice appear in - all copies and that both that the copyright notice and this - permission notice and warranty disclaimer appear in supporting - documentation, and that the name of the author not be used in - advertising or publicity pertaining to distribution of the - software without specific, written prior permission. - - The author disclaim all warranties with regard to this - software, including all implied warranties of merchantability - and fitness. In no event shall the author be liable for any - special, indirect or consequential damages or any damages - whatsoever resulting from loss of use, data or profits, whether - in an action of contract, negligence or other tortious action, - arising out of or in connection with the use or performance of - this software. -*/ - -/** \file - * - * USB Device Descriptors, for library use when in USB device mode. Descriptors are special - * computer-readable structures which the host requests upon device enumeration, to determine - * the device's capabilities and functions. - */ - -#include "Descriptors.h" - -/* On some devices, there is a factory set internal serial number which can be automatically sent to the host as - * the device's serial number when the Device Descriptor's .SerialNumStrIndex entry is set to USE_INTERNAL_SERIAL. - * This allows the host to track a device across insertions on different ports, allowing them to retain allocated - * resources like COM port numbers and drivers. On demos using this feature, give a warning on unsupported devices - * so that the user can supply their own serial number descriptor instead or remove the USE_INTERNAL_SERIAL value - * from the Device Descriptor (forcing the host to generate a serial number for each device from the VID, PID and - * port location). - */ -#if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR) - #warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor. -#endif - -/** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall - * device characteristics, including the supported USB version, control endpoint size and the - * number of device configurations. The descriptor is read out by the USB host when the enumeration - * process begins. - */ -USB_Descriptor_Device_t PROGMEM DeviceDescriptor = -{ - .Header = {.Size = sizeof(USB_Descriptor_Device_t), .Type = DTYPE_Device}, - - .USBSpecification = VERSION_BCD(01.10), - .Class = 0x02, - .SubClass = 0x00, - .Protocol = 0x00, - - .Endpoint0Size = FIXED_CONTROL_ENDPOINT_SIZE, - - .VendorID = 0x03EB, // Atmel - - .ProductID = 0x204B, // LUFA USB to Serial Demo Application - .ReleaseNumber = 0x0001, - - .ManufacturerStrIndex = 0x01, - .ProductStrIndex = 0x02, - .SerialNumStrIndex = USE_INTERNAL_SERIAL, - - .NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS -}; - -/** Configuration descriptor structure. This descriptor, located in FLASH memory, describes the usage - * of the device in one of its supported configurations, including information about any device interfaces - * and endpoints. The descriptor is read out by the USB host during the enumeration process when selecting - * a configuration so that the host may correctly communicate with the USB device. - */ -USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor = -{ - .Config = - { - .Header = {.Size = sizeof(USB_Descriptor_Configuration_Header_t), .Type = DTYPE_Configuration}, - - .TotalConfigurationSize = sizeof(USB_Descriptor_Configuration_t), - .TotalInterfaces = 2, - - .ConfigurationNumber = 1, - .ConfigurationStrIndex = NO_DESCRIPTOR, - - .ConfigAttributes = (USB_CONFIG_ATTR_BUSPOWERED | USB_CONFIG_ATTR_SELFPOWERED), - - .MaxPowerConsumption = USB_CONFIG_POWER_MA(100) - }, - - .CDC_CCI_Interface = - { - .Header = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface}, - - .InterfaceNumber = 0, - .AlternateSetting = 0, - - .TotalEndpoints = 1, - - .Class = 0x02, - .SubClass = 0x02, - .Protocol = 0x01, - - .InterfaceStrIndex = NO_DESCRIPTOR - }, - - .CDC_Functional_IntHeader = - { - .Header = {.Size = sizeof(CDC_FUNCTIONAL_DESCRIPTOR(2)), .Type = 0x24}, - .SubType = 0x00, - - .Data = {0x01, 0x10} - }, - - .CDC_Functional_AbstractControlManagement = - { - .Header = {.Size = sizeof(CDC_FUNCTIONAL_DESCRIPTOR(1)), .Type = 0x24}, - .SubType = 0x02, - - .Data = {0x06} - }, - - .CDC_Functional_Union = - { - .Header = {.Size = sizeof(CDC_FUNCTIONAL_DESCRIPTOR(2)), .Type = 0x24}, - .SubType = 0x06, - - .Data = {0x00, 0x01} - }, - - .CDC_NotificationEndpoint = - { - .Header = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint}, - - .EndpointAddress = (ENDPOINT_DESCRIPTOR_DIR_IN | CDC_NOTIFICATION_EPNUM), - .Attributes = (EP_TYPE_INTERRUPT | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA), - .EndpointSize = CDC_NOTIFICATION_EPSIZE, - .PollingIntervalMS = 0xFF - }, - - .CDC_DCI_Interface = - { - .Header = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface}, - - .InterfaceNumber = 1, - .AlternateSetting = 0, - - .TotalEndpoints = 2, - - .Class = 0x0A, - .SubClass = 0x00, - .Protocol = 0x00, - - .InterfaceStrIndex = NO_DESCRIPTOR - }, - - .CDC_DataOutEndpoint = - { - .Header = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint}, - - .EndpointAddress = (ENDPOINT_DESCRIPTOR_DIR_OUT | CDC_RX_EPNUM), - .Attributes = (EP_TYPE_BULK | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA), - .EndpointSize = CDC_TXRX_EPSIZE, - .PollingIntervalMS = 0x01 - }, - - .CDC_DataInEndpoint = - { - .Header = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint}, - - .EndpointAddress = (ENDPOINT_DESCRIPTOR_DIR_IN | CDC_TX_EPNUM), - .Attributes = (EP_TYPE_BULK | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA), - .EndpointSize = CDC_TXRX_EPSIZE, - .PollingIntervalMS = 0x01 - } -}; - -/** Language descriptor structure. This descriptor, located in FLASH memory, is returned when the host requests - * the string descriptor with index 0 (the first index). It is actually an array of 16-bit integers, which indicate - * via the language ID table available at USB.org what languages the device supports for its string descriptors. - */ -USB_Descriptor_String_t PROGMEM LanguageString = -{ - .Header = {.Size = USB_STRING_LEN(1), .Type = DTYPE_String}, - - .UnicodeString = {LANGUAGE_ID_ENG} -}; - -/** Manufacturer descriptor string. This is a Unicode string containing the manufacturer's details in human readable - * form, and is read out upon request by the host when the appropriate string ID is requested, listed in the Device - * Descriptor. - */ -USB_Descriptor_String_t PROGMEM ManufacturerString = -{ - .Header = {.Size = USB_STRING_LEN(24), .Type = DTYPE_String}, - - .UnicodeString = L"Arduino (www.arduino.cc)" -}; - -/** Product descriptor string. This is a Unicode string containing the product's details in human readable form, - * and is read out upon request by the host when the appropriate string ID is requested, listed in the Device - * Descriptor. - */ -USB_Descriptor_String_t PROGMEM ProductString = -{ - #if (ARDUINO_MODEL_PID == ARDUINO_UNO_PID) - .Header = {.Size = USB_STRING_LEN(11), .Type = DTYPE_String}, - - .UnicodeString = L"Arduino Uno" - #elif (ARDUINO_MODEL_PID == ARDUINO_MEGA2560_PID) - .Header = {.Size = USB_STRING_LEN(17), .Type = DTYPE_String}, - - .UnicodeString = L"Arduino Mega 2560" - #endif - -}; - -/** This function is called by the library when in device mode, and must be overridden (see library "USB Descriptors" - * documentation) by the application code so that the address and size of a requested descriptor can be given - * to the USB library. When the device receives a Get Descriptor request on the control endpoint, this function - * is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the - * USB host. - */ -uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, - const uint8_t wIndex, - void** const DescriptorAddress) -{ - const uint8_t DescriptorType = (wValue >> 8); - const uint8_t DescriptorNumber = (wValue & 0xFF); - - void* Address = NULL; - uint16_t Size = NO_DESCRIPTOR; - - switch (DescriptorType) - { - case DTYPE_Device: - Address = (void*)&DeviceDescriptor; - Size = sizeof(USB_Descriptor_Device_t); - break; - case DTYPE_Configuration: - Address = (void*)&ConfigurationDescriptor; - Size = sizeof(USB_Descriptor_Configuration_t); - break; - case DTYPE_String: - switch (DescriptorNumber) - { - case 0x00: - Address = (void*)&LanguageString; - Size = pgm_read_byte(&LanguageString.Header.Size); - break; - case 0x01: - Address = (void*)&ManufacturerString; - Size = pgm_read_byte(&ManufacturerString.Header.Size); - break; - case 0x02: - Address = (void*)&ProductString; - Size = pgm_read_byte(&ProductString.Header.Size); - break; - } - - break; - } - - *DescriptorAddress = Address; - return Size; -} diff --git a/build/linux/work/hardware/arduino/firmwares/arduino-usbserial/Descriptors.h b/build/linux/work/hardware/arduino/firmwares/arduino-usbserial/Descriptors.h deleted file mode 100644 index 3ac4e5257..000000000 --- a/build/linux/work/hardware/arduino/firmwares/arduino-usbserial/Descriptors.h +++ /dev/null @@ -1,88 +0,0 @@ -/* - LUFA Library - Copyright (C) Dean Camera, 2010. - - dean [at] fourwalledcubicle [dot] com - www.fourwalledcubicle.com -*/ - -/* - Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com) - - Permission to use, copy, modify, distribute, and sell this - software and its documentation for any purpose is hereby granted - without fee, provided that the above copyright notice appear in - all copies and that both that the copyright notice and this - permission notice and warranty disclaimer appear in supporting - documentation, and that the name of the author not be used in - advertising or publicity pertaining to distribution of the - software without specific, written prior permission. - - The author disclaim all warranties with regard to this - software, including all implied warranties of merchantability - and fitness. In no event shall the author be liable for any - special, indirect or consequential damages or any damages - whatsoever resulting from loss of use, data or profits, whether - in an action of contract, negligence or other tortious action, - arising out of or in connection with the use or performance of - this software. -*/ - -/** \file - * - * Header file for Descriptors.c. - */ - -#ifndef _DESCRIPTORS_H_ -#define _DESCRIPTORS_H_ - - /* Includes: */ - #include - - #include - #include - - /* Product-specific definitions: */ - #define ARDUINO_UNO_PID 0x0001 - #define ARDUINO_MEGA2560_PID 0x0010 - - /* Macros: */ - /** Endpoint number of the CDC device-to-host notification IN endpoint. */ - #define CDC_NOTIFICATION_EPNUM 2 - - /** Endpoint number of the CDC device-to-host data IN endpoint. */ - #define CDC_TX_EPNUM 3 - - /** Endpoint number of the CDC host-to-device data OUT endpoint. */ - #define CDC_RX_EPNUM 4 - - /** Size in bytes of the CDC device-to-host notification IN endpoint. */ - #define CDC_NOTIFICATION_EPSIZE 8 - - /** Size in bytes of the CDC data IN and OUT endpoints. */ - #define CDC_TXRX_EPSIZE 64 - - /* Type Defines: */ - /** Type define for the device configuration descriptor structure. This must be defined in the - * application code, as the configuration descriptor contains several sub-descriptors which - * vary between devices, and which describe the device's usage to the host. - */ - typedef struct - { - USB_Descriptor_Configuration_Header_t Config; - USB_Descriptor_Interface_t CDC_CCI_Interface; - CDC_FUNCTIONAL_DESCRIPTOR(2) CDC_Functional_IntHeader; - CDC_FUNCTIONAL_DESCRIPTOR(1) CDC_Functional_AbstractControlManagement; - CDC_FUNCTIONAL_DESCRIPTOR(2) CDC_Functional_Union; - USB_Descriptor_Endpoint_t CDC_NotificationEndpoint; - USB_Descriptor_Interface_t CDC_DCI_Interface; - USB_Descriptor_Endpoint_t CDC_DataOutEndpoint; - USB_Descriptor_Endpoint_t CDC_DataInEndpoint; - } USB_Descriptor_Configuration_t; - - /* Function Prototypes: */ - uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, - const uint8_t wIndex, - void** const DescriptorAddress) ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3); - -#endif diff --git a/build/linux/work/hardware/arduino/firmwares/arduino-usbserial/Lib/LightweightRingBuff.h b/build/linux/work/hardware/arduino/firmwares/arduino-usbserial/Lib/LightweightRingBuff.h deleted file mode 100644 index fb48c1f73..000000000 --- a/build/linux/work/hardware/arduino/firmwares/arduino-usbserial/Lib/LightweightRingBuff.h +++ /dev/null @@ -1,197 +0,0 @@ -/* - LUFA Library - Copyright (C) Dean Camera, 2010. - - dean [at] fourwalledcubicle [dot] com - www.fourwalledcubicle.com -*/ - -/* - Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com) - - Permission to use, copy, modify, distribute, and sell this - software and its documentation for any purpose is hereby granted - without fee, provided that the above copyright notice appear in - all copies and that both that the copyright notice and this - permission notice and warranty disclaimer appear in supporting - documentation, and that the name of the author not be used in - advertising or publicity pertaining to distribution of the - software without specific, written prior permission. - - The author disclaim all warranties with regard to this - software, including all implied warranties of merchantability - and fitness. In no event shall the author be liable for any - special, indirect or consequential damages or any damages - whatsoever resulting from loss of use, data or profits, whether - in an action of contract, negligence or other tortious action, - arising out of or in connection with the use or performance of - this software. -*/ - -/** \file - * - * Ultra lightweight ring buffer, for fast insertion/deletion. - */ - -#ifndef _ULW_RING_BUFF_H_ -#define _ULW_RING_BUFF_H_ - - /* Includes: */ - #include - - #include - #include - - /* Defines: */ - /** Size of each ring buffer, in data elements - must be between 1 and 255. */ - #define BUFFER_SIZE 128 - - /** Maximum number of data elements to buffer before forcing a flush. - * Must be less than BUFFER_SIZE - */ - #define BUFFER_NEARLY_FULL 96 - - /** Type of data to store into the buffer. */ - #define RingBuff_Data_t uint8_t - - /** Datatype which may be used to store the count of data stored in a buffer, retrieved - * via a call to \ref RingBuffer_GetCount(). - */ - #if (BUFFER_SIZE <= 0xFF) - #define RingBuff_Count_t uint8_t - #else - #define RingBuff_Count_t uint16_t - #endif - - /* Type Defines: */ - /** Type define for a new ring buffer object. Buffers should be initialized via a call to - * \ref RingBuffer_InitBuffer() before use. - */ - typedef struct - { - RingBuff_Data_t Buffer[BUFFER_SIZE]; /**< Internal ring buffer data, referenced by the buffer pointers. */ - RingBuff_Data_t* In; /**< Current storage location in the circular buffer */ - RingBuff_Data_t* Out; /**< Current retrieval location in the circular buffer */ - RingBuff_Count_t Count; - } RingBuff_t; - - /* Inline Functions: */ - /** Initializes a ring buffer ready for use. Buffers must be initialized via this function - * before any operations are called upon them. Already initialized buffers may be reset - * by re-initializing them using this function. - * - * \param[out] Buffer Pointer to a ring buffer structure to initialize - */ - static inline void RingBuffer_InitBuffer(RingBuff_t* const Buffer) - { - ATOMIC_BLOCK(ATOMIC_RESTORESTATE) - { - Buffer->In = Buffer->Buffer; - Buffer->Out = Buffer->Buffer; - } - } - - /** Retrieves the minimum number of bytes stored in a particular buffer. This value is computed - * by entering an atomic lock on the buffer while the IN and OUT locations are fetched, so that - * the buffer cannot be modified while the computation takes place. This value should be cached - * when reading out the contents of the buffer, so that as small a time as possible is spent - * in an atomic lock. - * - * \note The value returned by this function is guaranteed to only be the minimum number of bytes - * stored in the given buffer; this value may change as other threads write new data and so - * the returned number should be used only to determine how many successive reads may safely - * be performed on the buffer. - * - * \param[in] Buffer Pointer to a ring buffer structure whose count is to be computed - */ - static inline RingBuff_Count_t RingBuffer_GetCount(RingBuff_t* const Buffer) - { - RingBuff_Count_t Count; - - ATOMIC_BLOCK(ATOMIC_RESTORESTATE) - { - Count = Buffer->Count; - } - - return Count; - } - - /** Atomically determines if the specified ring buffer contains any free space. This should - * be tested before storing data to the buffer, to ensure that no data is lost due to a - * buffer overrun. - * - * \param[in,out] Buffer Pointer to a ring buffer structure to insert into - * - * \return Boolean true if the buffer contains no free space, false otherwise - */ - static inline bool RingBuffer_IsFull(RingBuff_t* const Buffer) - { - return (RingBuffer_GetCount(Buffer) == BUFFER_SIZE); - } - - /** Atomically determines if the specified ring buffer contains any data. This should - * be tested before removing data from the buffer, to ensure that the buffer does not - * underflow. - * - * If the data is to be removed in a loop, store the total number of bytes stored in the - * buffer (via a call to the \ref RingBuffer_GetCount() function) in a temporary variable - * to reduce the time spent in atomicity locks. - * - * \param[in,out] Buffer Pointer to a ring buffer structure to insert into - * - * \return Boolean true if the buffer contains no free space, false otherwise - */ - static inline bool RingBuffer_IsEmpty(RingBuff_t* const Buffer) - { - return (RingBuffer_GetCount(Buffer) == 0); - } - - /** Inserts an element into the ring buffer. - * - * \note Only one execution thread (main program thread or an ISR) may insert into a single buffer - * otherwise data corruption may occur. Insertion and removal may occur from different execution - * threads. - * - * \param[in,out] Buffer Pointer to a ring buffer structure to insert into - * \param[in] Data Data element to insert into the buffer - */ - static inline void RingBuffer_Insert(RingBuff_t* const Buffer, - const RingBuff_Data_t Data) - { - *Buffer->In = Data; - - if (++Buffer->In == &Buffer->Buffer[BUFFER_SIZE]) - Buffer->In = Buffer->Buffer; - - ATOMIC_BLOCK(ATOMIC_RESTORESTATE) - { - Buffer->Count++; - } - } - - /** Removes an element from the ring buffer. - * - * \note Only one execution thread (main program thread or an ISR) may remove from a single buffer - * otherwise data corruption may occur. Insertion and removal may occur from different execution - * threads. - * - * \param[in,out] Buffer Pointer to a ring buffer structure to retrieve from - * - * \return Next data element stored in the buffer - */ - static inline RingBuff_Data_t RingBuffer_Remove(RingBuff_t* const Buffer) - { - RingBuff_Data_t Data = *Buffer->Out; - - if (++Buffer->Out == &Buffer->Buffer[BUFFER_SIZE]) - Buffer->Out = Buffer->Buffer; - - ATOMIC_BLOCK(ATOMIC_RESTORESTATE) - { - Buffer->Count--; - } - - return Data; - } - -#endif diff --git a/build/linux/work/hardware/arduino/firmwares/arduino-usbserial/makefile b/build/linux/work/hardware/arduino/firmwares/arduino-usbserial/makefile deleted file mode 100644 index 79d6be231..000000000 --- a/build/linux/work/hardware/arduino/firmwares/arduino-usbserial/makefile +++ /dev/null @@ -1,776 +0,0 @@ -# Hey Emacs, this is a -*- makefile -*- -#---------------------------------------------------------------------------- -# WinAVR Makefile Template written by Eric B. Weddington, Jrg Wunsch, et al. -# >> Modified for use with the LUFA project. << -# -# Released to the Public Domain -# -# Additional material for this makefile was written by: -# Peter Fleury -# Tim Henigan -# Colin O'Flynn -# Reiner Patommel -# Markus Pfaff -# Sander Pool -# Frederik Rouleau -# Carlos Lamas -# Dean Camera -# Opendous Inc. -# Denver Gingerich -# -#---------------------------------------------------------------------------- -# On command line: -# -# make all = Make software. -# -# make clean = Clean out built project files. -# -# make coff = Convert ELF to AVR COFF. -# -# make extcoff = Convert ELF to AVR Extended COFF. -# -# make program = Download the hex file to the device, using avrdude. -# Please customize the avrdude settings below first! -# -# make dfu = Download the hex file to the device, using dfu-programmer (must -# have dfu-programmer installed). -# -# make flip = Download the hex file to the device, using Atmel FLIP (must -# have Atmel FLIP installed). -# -# make dfu-ee = Download the eeprom file to the device, using dfu-programmer -# (must have dfu-programmer installed). -# -# make flip-ee = Download the eeprom file to the device, using Atmel FLIP -# (must have Atmel FLIP installed). -# -# make doxygen = Generate DoxyGen documentation for the project (must have -# DoxyGen installed) -# -# make debug = Start either simulavr or avarice as specified for debugging, -# with avr-gdb or avr-insight as the front end for debugging. -# -# make filename.s = Just compile filename.c into the assembler code only. -# -# make filename.i = Create a preprocessed source file for use in submitting -# bug reports to the GCC project. -# -# To rebuild project do "make clean" then "make all". -#---------------------------------------------------------------------------- - -# MCU name(s) -# Since the ATMEGA8U2 part is not directly supported by the current -# versions of either avrdude or dfu-programmer, we specify a dummy -# part; AT90USB82 which is close enough in memory size and organization -MCU = atmega8u2 -MCU_AVRDUDE = at90usb82 -MCU_DFU = at90usb82 - -# Specify the Arduino model using the assigned PID. This is used by Descriptors.c -# to set PID and product descriptor string -# Uno PID: -ARDUINO_MODEL_PID = 0x0001 -# Mega 2560 PID: -#ARDUINO_MODEL_PID = 0x0010 - - -# Target board (see library "Board Types" documentation, NONE for projects not requiring -# LUFA board drivers). If USER is selected, put custom board drivers in a directory called -# "Board" inside the application directory. -BOARD = USER - - -# Processor frequency. -# This will define a symbol, F_CPU, in all source code files equal to the -# processor frequency in Hz. You can then use this symbol in your source code to -# calculate timings. Do NOT tack on a 'UL' at the end, this will be done -# automatically to create a 32-bit value in your source code. -# -# This will be an integer division of F_CLOCK below, as it is sourced by -# F_CLOCK after it has run through any CPU prescalers. Note that this value -# does not *change* the processor frequency - it should merely be updated to -# reflect the processor speed set externally so that the code can use accurate -# software delays. -F_CPU = 16000000 - - -# Input clock frequency. -# This will define a symbol, F_CLOCK, in all source code files equal to the -# input clock frequency (before any prescaling is performed) in Hz. This value may -# differ from F_CPU if prescaling is used on the latter, and is required as the -# raw input clock is fed directly to the PLL sections of the AVR for high speed -# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' -# at the end, this will be done automatically to create a 32-bit value in your -# source code. -# -# If no clock division is performed on the input clock inside the AVR (via the -# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. -F_CLOCK = $(F_CPU) - - -# Output format. (can be srec, ihex, binary) -FORMAT = ihex - - -# Target file name (without extension). -TARGET = Arduino-usbserial - - -# Object files directory -# To put object files in current directory, use a dot (.), do NOT make -# this an empty or blank macro! -OBJDIR = . - - -# Path to the LUFA library -LUFA_PATH = ../.. - - -# LUFA library compile-time options -LUFA_OPTS = -D USB_DEVICE_ONLY -LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8 -LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1 -LUFA_OPTS += -D USE_FLASH_DESCRIPTORS -LUFA_OPTS += -D INTERRUPT_CONTROL_ENDPOINT -LUFA_OPTS += -D DEVICE_STATE_AS_GPIOR=0 -LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)" - - -# Create the LUFA source path variables by including the LUFA root makefile -include $(LUFA_PATH)/LUFA/makefile - - -# List C source files here. (C dependencies are automatically generated.) -SRC = $(TARGET).c \ - Descriptors.c \ - $(LUFA_SRC_USB) \ - $(LUFA_SRC_USBCLASS) \ - $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Device.c \ - $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c \ - $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/HostStandardReq.c \ - $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Host.c \ - $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c \ - $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/USBController.c \ - $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c \ - $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/USBInterrupt.c \ - $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c \ - $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/DeviceStandardReq.c \ - $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/ConfigDescriptor.c \ - $(LUFA_PATH)/LUFA/Drivers/USB/Class/Device/CDC.c \ - $(LUFA_PATH)/LUFA/Drivers/USB/Class/Host/CDC.c - - -# List C++ source files here. (C dependencies are automatically generated.) -CPPSRC = - - -# List Assembler source files here. -# Make them always end in a capital .S. Files ending in a lowercase .s -# will not be considered source files but generated files (assembler -# output from the compiler), and will be deleted upon "make clean"! -# Even though the DOS/Win* filesystem matches both .s and .S the same, -# it will preserve the spelling of the filenames, and gcc itself does -# care about how the name is spelled on its command-line. -ASRC = - - -# Optimization level, can be [0, 1, 2, 3, s]. -# 0 = turn off optimization. s = optimize for size. -# (Note: 3 is not always the best optimization level. See avr-libc FAQ.) -OPT = s - - -# Debugging format. -# Native formats for AVR-GCC's -g are dwarf-2 [default] or stabs. -# AVR Studio 4.10 requires dwarf-2. -# AVR [Extended] COFF format requires stabs, plus an avr-objcopy run. -DEBUG = dwarf-2 - - -# List any extra directories to look for include files here. -# Each directory must be seperated by a space. -# Use forward slashes for directory separators. -# For a directory that has spaces, enclose it in quotes. -EXTRAINCDIRS = $(LUFA_PATH)/ - - -# Compiler flag to set the C Standard level. -# c89 = "ANSI" C -# gnu89 = c89 plus GCC extensions -# c99 = ISO C99 standard (not yet fully implemented) -# gnu99 = c99 plus GCC extensions -CSTANDARD = -std=gnu99 - - -# Place -D or -U options here for C sources -CDEFS = -DF_CPU=$(F_CPU)UL -CDEFS += -DF_CLOCK=$(F_CLOCK)UL -CDEFS += -DARDUINO_MODEL_PID=$(ARDUINO_MODEL_PID) -CDEFS += -DBOARD=BOARD_$(BOARD) -CDEFS += $(LUFA_OPTS) -CDEFS += -DAVR_RESET_LINE_PORT="PORTD" -CDEFS += -DAVR_RESET_LINE_DDR="DDRD" -CDEFS += -DAVR_RESET_LINE_MASK="(1 << 7)" -CDEFS += -DTX_RX_LED_PULSE_MS=3 -CDEFS += -DPING_PONG_LED_PULSE_MS=100 - -# Place -D or -U options here for ASM sources -ADEFS = -DF_CPU=$(F_CPU) -ADEFS += -DF_CLOCK=$(F_CLOCK)UL -ADEFS += -DBOARD=BOARD_$(BOARD) -ADEFS += $(LUFA_OPTS) - -# Place -D or -U options here for C++ sources -CPPDEFS = -DF_CPU=$(F_CPU)UL -CPPDEFS += -DF_CLOCK=$(F_CLOCK)UL -CPPDEFS += -DBOARD=BOARD_$(BOARD) -CPPDEFS += $(LUFA_OPTS) -#CPPDEFS += -D__STDC_LIMIT_MACROS -#CPPDEFS += -D__STDC_CONSTANT_MACROS - - - -#---------------- Compiler Options C ---------------- -# -g*: generate debugging information -# -O*: optimization level -# -f...: tuning, see GCC manual and avr-libc documentation -# -Wall...: warning level -# -Wa,...: tell GCC to pass this to the assembler. -# -adhlns...: create assembler listing -CFLAGS = -g$(DEBUG) -CFLAGS += $(CDEFS) -CFLAGS += -O$(OPT) -CFLAGS += -funsigned-char -CFLAGS += -funsigned-bitfields -CFLAGS += -ffunction-sections -CFLAGS += -fno-inline-small-functions -CFLAGS += -fpack-struct -CFLAGS += -fshort-enums -CFLAGS += -fno-strict-aliasing -CFLAGS += -Wall -CFLAGS += -Wstrict-prototypes -#CFLAGS += -mshort-calls -#CFLAGS += -fno-unit-at-a-time -#CFLAGS += -Wundef -#CFLAGS += -Wunreachable-code -#CFLAGS += -Wsign-compare -CFLAGS += -Wa,-adhlns=$(<:%.c=$(OBJDIR)/%.lst) -CFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS)) -CFLAGS += $(CSTANDARD) - - -#---------------- Compiler Options C++ ---------------- -# -g*: generate debugging information -# -O*: optimization level -# -f...: tuning, see GCC manual and avr-libc documentation -# -Wall...: warning level -# -Wa,...: tell GCC to pass this to the assembler. -# -adhlns...: create assembler listing -CPPFLAGS = -g$(DEBUG) -CPPFLAGS += $(CPPDEFS) -CPPFLAGS += -O$(OPT) -CPPFLAGS += -funsigned-char -CPPFLAGS += -funsigned-bitfields -CPPFLAGS += -fpack-struct -CPPFLAGS += -fshort-enums -CPPFLAGS += -fno-exceptions -CPPFLAGS += -Wall -CPPFLAGS += -Wundef -CFLAGS += -Wundef -#CPPFLAGS += -mshort-calls -#CPPFLAGS += -fno-unit-at-a-time -#CPPFLAGS += -Wstrict-prototypes -#CPPFLAGS += -Wunreachable-code -#CPPFLAGS += -Wsign-compare -CPPFLAGS += -Wa,-adhlns=$(<:%.cpp=$(OBJDIR)/%.lst) -CPPFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS)) -#CPPFLAGS += $(CSTANDARD) - - -#---------------- Assembler Options ---------------- -# -Wa,...: tell GCC to pass this to the assembler. -# -adhlns: create listing -# -gstabs: have the assembler create line number information; note that -# for use in COFF files, additional information about filenames -# and function names needs to be present in the assembler source -# files -- see avr-libc docs [FIXME: not yet described there] -# -listing-cont-lines: Sets the maximum number of continuation lines of hex -# dump that will be displayed for a given single line of source input. -ASFLAGS = $(ADEFS) -Wa,-adhlns=$(<:%.S=$(OBJDIR)/%.lst),-gstabs,--listing-cont-lines=100 - - -#---------------- Library Options ---------------- -# Minimalistic printf version -PRINTF_LIB_MIN = -Wl,-u,vfprintf -lprintf_min - -# Floating point printf version (requires MATH_LIB = -lm below) -PRINTF_LIB_FLOAT = -Wl,-u,vfprintf -lprintf_flt - -# If this is left blank, then it will use the Standard printf version. -PRINTF_LIB = -#PRINTF_LIB = $(PRINTF_LIB_MIN) -#PRINTF_LIB = $(PRINTF_LIB_FLOAT) - - -# Minimalistic scanf version -SCANF_LIB_MIN = -Wl,-u,vfscanf -lscanf_min - -# Floating point + %[ scanf version (requires MATH_LIB = -lm below) -SCANF_LIB_FLOAT = -Wl,-u,vfscanf -lscanf_flt - -# If this is left blank, then it will use the Standard scanf version. -SCANF_LIB = -#SCANF_LIB = $(SCANF_LIB_MIN) -#SCANF_LIB = $(SCANF_LIB_FLOAT) - - -MATH_LIB = -lm - - -# List any extra directories to look for libraries here. -# Each directory must be seperated by a space. -# Use forward slashes for directory separators. -# For a directory that has spaces, enclose it in quotes. -EXTRALIBDIRS = - - - -#---------------- External Memory Options ---------------- - -# 64 KB of external RAM, starting after internal RAM (ATmega128!), -# used for variables (.data/.bss) and heap (malloc()). -#EXTMEMOPTS = -Wl,-Tdata=0x801100,--defsym=__heap_end=0x80ffff - -# 64 KB of external RAM, starting after internal RAM (ATmega128!), -# only used for heap (malloc()). -#EXTMEMOPTS = -Wl,--section-start,.data=0x801100,--defsym=__heap_end=0x80ffff - -EXTMEMOPTS = - - - -#---------------- Linker Options ---------------- -# -Wl,...: tell GCC to pass this to linker. -# -Map: create map file -# --cref: add cross reference to map file -LDFLAGS = -Wl,-Map=$(TARGET).map,--cref -LDFLAGS += -Wl,--relax -LDFLAGS += -Wl,--gc-sections -LDFLAGS += $(EXTMEMOPTS) -LDFLAGS += $(patsubst %,-L%,$(EXTRALIBDIRS)) -LDFLAGS += $(PRINTF_LIB) $(SCANF_LIB) $(MATH_LIB) -#LDFLAGS += -T linker_script.x - - - -#---------------- Programming Options (avrdude) ---------------- - -# Programming hardware -# Type: avrdude -c ? -# to get a full listing. -# -AVRDUDE_PROGRAMMER = avrispmkii - -# com1 = serial port. Use lpt1 to connect to parallel port. -AVRDUDE_PORT = usb - -AVRDUDE_WRITE_FLASH = -U flash:w:$(TARGET).hex -#AVRDUDE_WRITE_EEPROM = -U eeprom:w:$(TARGET).eep - - -# Uncomment the following if you want avrdude's erase cycle counter. -# Note that this counter needs to be initialized first using -Yn, -# see avrdude manual. -#AVRDUDE_ERASE_COUNTER = -y - -# Uncomment the following if you do /not/ wish a verification to be -# performed after programming the device. -#AVRDUDE_NO_VERIFY = -V - -# Increase verbosity level. Please use this when submitting bug -# reports about avrdude. See -# to submit bug reports. -#AVRDUDE_VERBOSE = -v -v - -AVRDUDE_FORCE = -F - -AVRDUDE_FLAGS = -p $(MCU_AVRDUDE) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER) -AVRDUDE_FLAGS += $(AVRDUDE_NO_VERIFY) -AVRDUDE_FLAGS += $(AVRDUDE_VERBOSE) -AVRDUDE_FLAGS += $(AVRDUDE_ERASE_COUNTER) -AVRDUDE_FLAGS += $(AVRDUDE_FORCE) - - - -#---------------- Debugging Options ---------------- - -# For simulavr only - target MCU frequency. -DEBUG_MFREQ = $(F_CPU) - -# Set the DEBUG_UI to either gdb or insight. -# DEBUG_UI = gdb -DEBUG_UI = insight - -# Set the debugging back-end to either avarice, simulavr. -DEBUG_BACKEND = avarice -#DEBUG_BACKEND = simulavr - -# GDB Init Filename. -GDBINIT_FILE = __avr_gdbinit - -# When using avarice settings for the JTAG -JTAG_DEV = /dev/com1 - -# Debugging port used to communicate between GDB / avarice / simulavr. -DEBUG_PORT = 4242 - -# Debugging host used to communicate between GDB / avarice / simulavr, normally -# just set to localhost unless doing some sort of crazy debugging when -# avarice is running on a different computer. -DEBUG_HOST = localhost - - - -#============================================================================ - - -# Define programs and commands. -SHELL = sh -CC = avr-gcc -OBJCOPY = avr-objcopy -OBJDUMP = avr-objdump -SIZE = avr-size -AR = avr-ar rcs -NM = avr-nm -AVRDUDE = avrdude -REMOVE = rm -f -REMOVEDIR = rm -rf -COPY = cp -WINSHELL = cmd - -# Define Messages -# English -MSG_ERRORS_NONE = Errors: none -MSG_BEGIN = -------- begin -------- -MSG_END = -------- end -------- -MSG_SIZE_BEFORE = Size before: -MSG_SIZE_AFTER = Size after: -MSG_COFF = Converting to AVR COFF: -MSG_EXTENDED_COFF = Converting to AVR Extended COFF: -MSG_FLASH = Creating load file for Flash: -MSG_EEPROM = Creating load file for EEPROM: -MSG_EXTENDED_LISTING = Creating Extended Listing: -MSG_SYMBOL_TABLE = Creating Symbol Table: -MSG_LINKING = Linking: -MSG_COMPILING = Compiling C: -MSG_COMPILING_CPP = Compiling C++: -MSG_ASSEMBLING = Assembling: -MSG_CLEANING = Cleaning project: -MSG_CREATING_LIBRARY = Creating library: - - - - -# Define all object files. -OBJ = $(SRC:%.c=$(OBJDIR)/%.o) $(CPPSRC:%.cpp=$(OBJDIR)/%.o) $(ASRC:%.S=$(OBJDIR)/%.o) - -# Define all listing files. -LST = $(SRC:%.c=$(OBJDIR)/%.lst) $(CPPSRC:%.cpp=$(OBJDIR)/%.lst) $(ASRC:%.S=$(OBJDIR)/%.lst) - - -# Compiler flags to generate dependency files. -GENDEPFLAGS = -MMD -MP -MF .dep/$(@F).d - - -# Combine all necessary flags and optional flags. -# Add target processor to flags. -ALL_CFLAGS = -mmcu=$(MCU) -I. $(CFLAGS) $(GENDEPFLAGS) -ALL_CPPFLAGS = -mmcu=$(MCU) -I. -x c++ $(CPPFLAGS) $(GENDEPFLAGS) -ALL_ASFLAGS = -mmcu=$(MCU) -I. -x assembler-with-cpp $(ASFLAGS) - - - - - -# Default target. -#all: begin gccversion sizebefore build checkinvalidevents showliboptions showtarget sizeafter end -all: begin gccversion sizebefore build showliboptions showtarget sizeafter end - -# Change the build target to build a HEX file or a library. -build: elf hex eep lss sym asm -#build: lib - - -elf: $(TARGET).elf -hex: $(TARGET).hex -eep: $(TARGET).eep -lss: $(TARGET).lss -sym: $(TARGET).sym -asm: $(TARGET).s -LIBNAME=lib$(TARGET).a -lib: $(LIBNAME) - - - -# Eye candy. -# AVR Studio 3.x does not check make's exit code but relies on -# the following magic strings to be generated by the compile job. -begin: - @echo - @echo $(MSG_BEGIN) - -end: - @echo $(MSG_END) - @echo - - -# Display size of file. -HEXSIZE = $(SIZE) --target=$(FORMAT) $(TARGET).hex -ELFSIZE = $(SIZE) $(MCU_FLAG) $(FORMAT_FLAG) $(TARGET).elf -MCU_FLAG = $(shell $(SIZE) --help | grep -- --mcu > /dev/null && echo --mcu=$(MCU) ) -FORMAT_FLAG = $(shell $(SIZE) --help | grep -- --format=.*avr > /dev/null && echo --format=avr ) - -sizebefore: - @if test -f $(TARGET).elf; then echo; echo $(MSG_SIZE_BEFORE); $(ELFSIZE); \ - 2>/dev/null; echo; fi - -sizeafter: - @if test -f $(TARGET).elf; then echo; echo $(MSG_SIZE_AFTER); $(ELFSIZE); \ - 2>/dev/null; echo; fi - -#$(LUFA_PATH)/LUFA/LUFA_Events.lst: -# @make -C $(LUFA_PATH)/LUFA/ LUFA_Events.lst - -#checkinvalidevents: $(LUFA_PATH)/LUFA/LUFA_Events.lst -# @echo -# @echo Checking for invalid events... -# @$(shell) avr-nm $(OBJ) | sed -n -e 's/^.*EVENT_/EVENT_/p' | \ -# grep -F -v --file=$(LUFA_PATH)/LUFA/LUFA_Events.lst > InvalidEvents.tmp || true -# @sed -n -e 's/^/ WARNING - INVALID EVENT NAME: /p' InvalidEvents.tmp -# @if test -s InvalidEvents.tmp; then exit 1; fi - -showliboptions: - @echo - @echo ---- Compile Time Library Options ---- - @for i in $(LUFA_OPTS:-D%=%); do \ - echo $$i; \ - done - @echo -------------------------------------- - -showtarget: - @echo - @echo --------- Target Information --------- - @echo AVR Model: $(MCU) - @echo Board: $(BOARD) - @echo Clock: $(F_CPU)Hz CPU, $(F_CLOCK)Hz Master - @echo -------------------------------------- - - -# Display compiler version information. -gccversion : - @$(CC) --version - - -# Program the device. -program: $(TARGET).hex $(TARGET).eep - $(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FLASH) $(AVRDUDE_WRITE_EEPROM) - -flip: $(TARGET).hex - batchisp -hardware usb -device $(MCU_DFU) -operation erase f - batchisp -hardware usb -device $(MCU_DFU) -operation loadbuffer $(TARGET).hex program - batchisp -hardware usb -device $(MCU_DFU) -operation start reset 0 - -dfu: $(TARGET).hex - dfu-programmer $(MCU_DFU) erase - dfu-programmer $(MCU_DFU) flash --debug 1 $(TARGET).hex - dfu-programmer $(MCU_DFU) reset - - -flip-ee: $(TARGET).hex $(TARGET).eep - $(COPY) $(TARGET).eep $(TARGET)eep.hex - batchisp -hardware usb -device $(MCU_DFU) -operation memory EEPROM erase - batchisp -hardware usb -device $(MCU_DFU) -operation memory EEPROM loadbuffer $(TARGET)eep.hex program - batchisp -hardware usb -device $(MCU_DFU) -operation start reset 0 - $(REMOVE) $(TARGET)eep.hex - -dfu-ee: $(TARGET).hex $(TARGET).eep - dfu-programmer $(MCU_DFU) flash-eeprom --debug 1 --suppress-bootloader-mem $(TARGET).eep - dfu-programmer $(MCU_DFU) reset - - -# Generate avr-gdb config/init file which does the following: -# define the reset signal, load the target file, connect to target, and set -# a breakpoint at main(). -gdb-config: - @$(REMOVE) $(GDBINIT_FILE) - @echo define reset >> $(GDBINIT_FILE) - @echo SIGNAL SIGHUP >> $(GDBINIT_FILE) - @echo end >> $(GDBINIT_FILE) - @echo file $(TARGET).elf >> $(GDBINIT_FILE) - @echo target remote $(DEBUG_HOST):$(DEBUG_PORT) >> $(GDBINIT_FILE) -ifeq ($(DEBUG_BACKEND),simulavr) - @echo load >> $(GDBINIT_FILE) -endif - @echo break main >> $(GDBINIT_FILE) - -debug: gdb-config $(TARGET).elf -ifeq ($(DEBUG_BACKEND), avarice) - @echo Starting AVaRICE - Press enter when "waiting to connect" message displays. - @$(WINSHELL) /c start avarice --jtag $(JTAG_DEV) --erase --program --file \ - $(TARGET).elf $(DEBUG_HOST):$(DEBUG_PORT) - @$(WINSHELL) /c pause - -else - @$(WINSHELL) /c start simulavr --gdbserver --device $(MCU) --clock-freq \ - $(DEBUG_MFREQ) --port $(DEBUG_PORT) -endif - @$(WINSHELL) /c start avr-$(DEBUG_UI) --command=$(GDBINIT_FILE) - - - - -# Convert ELF to COFF for use in debugging / simulating in AVR Studio or VMLAB. -COFFCONVERT = $(OBJCOPY) --debugging -COFFCONVERT += --change-section-address .data-0x800000 -COFFCONVERT += --change-section-address .bss-0x800000 -COFFCONVERT += --change-section-address .noinit-0x800000 -COFFCONVERT += --change-section-address .eeprom-0x810000 - - - -coff: $(TARGET).elf - @echo - @echo $(MSG_COFF) $(TARGET).cof - $(COFFCONVERT) -O coff-avr $< $(TARGET).cof - - -extcoff: $(TARGET).elf - @echo - @echo $(MSG_EXTENDED_COFF) $(TARGET).cof - $(COFFCONVERT) -O coff-ext-avr $< $(TARGET).cof - - - -# Create final output files (.hex, .eep) from ELF output file. -%.hex: %.elf - @echo - @echo $(MSG_FLASH) $@ - $(OBJCOPY) -O $(FORMAT) -R .eeprom -R .fuse -R .lock $< $@ - -%.eep: %.elf - @echo - @echo $(MSG_EEPROM) $@ - -$(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" \ - --change-section-lma .eeprom=0 --no-change-warnings -O $(FORMAT) $< $@ || exit 0 - -# Create extended listing file from ELF output file. -%.lss: %.elf - @echo - @echo $(MSG_EXTENDED_LISTING) $@ - $(OBJDUMP) -h -S -z $< > $@ - -# Create a symbol table from ELF output file. -%.sym: %.elf - @echo - @echo $(MSG_SYMBOL_TABLE) $@ - $(NM) -n $< > $@ - - - -# Create library from object files. -.SECONDARY : $(TARGET).a -.PRECIOUS : $(OBJ) -%.a: $(OBJ) - @echo - @echo $(MSG_CREATING_LIBRARY) $@ - $(AR) $@ $(OBJ) - - -# Link: create ELF output file from object files. -.SECONDARY : $(TARGET).elf -.PRECIOUS : $(OBJ) -%.elf: $(OBJ) - @echo - @echo $(MSG_LINKING) $@ - $(CC) $(ALL_CFLAGS) $^ --output $@ $(LDFLAGS) - - -# Compile: create object files from C source files. -$(OBJDIR)/%.o : %.c - @echo - @echo $(MSG_COMPILING) $< - $(CC) -c $(ALL_CFLAGS) $< -o $@ - - -# Compile: create object files from C++ source files. -$(OBJDIR)/%.o : %.cpp - @echo - @echo $(MSG_COMPILING_CPP) $< - $(CC) -c $(ALL_CPPFLAGS) $< -o $@ - - -# Compile: create assembler files from C source files. -%.s : %.c - $(CC) -S $(ALL_CFLAGS) $< -o $@ - - -# Compile: create assembler files from C++ source files. -%.s : %.cpp - $(CC) -S $(ALL_CPPFLAGS) $< -o $@ - - -# Assemble: create object files from assembler source files. -$(OBJDIR)/%.o : %.S - @echo - @echo $(MSG_ASSEMBLING) $< - $(CC) -c $(ALL_ASFLAGS) $< -o $@ - - -# Create preprocessed source for use in sending a bug report. -%.i : %.c - $(CC) -E -mmcu=$(MCU) -I. $(CFLAGS) $< -o $@ - - -# Target: clean project. -clean: begin clean_list clean_binary end - -clean_binary: - $(REMOVE) $(TARGET).hex - -clean_list: - @echo $(MSG_CLEANING) - $(REMOVE) $(TARGET).hex - $(REMOVE) $(TARGET).eep - $(REMOVE) $(TARGET).cof - $(REMOVE) $(TARGET).elf - $(REMOVE) $(TARGET).map - $(REMOVE) $(TARGET).sym - $(REMOVE) $(TARGET).lss - $(REMOVE) $(SRC:%.c=$(OBJDIR)/%.o) - $(REMOVE) $(SRC:%.c=$(OBJDIR)/%.lst) - $(REMOVE) $(SRC:.c=.s) - $(REMOVE) $(SRC:.c=.d) - $(REMOVE) $(SRC:.c=.i) - $(REMOVEDIR) .dep - -doxygen: - @echo Generating Project Documentation... - @doxygen Doxygen.conf - @echo Documentation Generation Complete. - -clean_doxygen: - rm -rf Documentation - -# Create object files directory -$(shell mkdir $(OBJDIR) 2>/dev/null) - - -# Include the dependency files. --include $(shell mkdir .dep 2>/dev/null) $(wildcard .dep/*) - - -# Listing of phony targets. -.PHONY : all begin finish end sizebefore sizeafter gccversion \ -build elf hex eep lss sym coff extcoff doxygen clean \ -clean_list clean_doxygen program dfu flip flip-ee dfu-ee \ -debug gdb-config diff --git a/build/linux/work/hardware/arduino/firmwares/arduino-usbserial/readme.txt b/build/linux/work/hardware/arduino/firmwares/arduino-usbserial/readme.txt deleted file mode 100644 index 289326b13..000000000 --- a/build/linux/work/hardware/arduino/firmwares/arduino-usbserial/readme.txt +++ /dev/null @@ -1,13 +0,0 @@ -To setup the project and upload the Arduino usbserial application firmware to an ATMEGA8U2 using the Arduino USB DFU bootloader: -1. unpack the source into LUFA's Projects directory -2. set ARDUINO_MODEL_PID in the makefile as appropriate -3. do "make clean; make" -4. put the 8U2 into USB DFU mode: -4.a. assert and hold the 8U2's RESET line -4.b. assert and hold the 8U2's HWB line -4.c. release the 8U2's RESET line -4.d. release the 8U2's HWB line -5. confirm that the board enumerates as either "Arduino Uno DFU" or "Arduino Mega 2560 DFU" -6. do "make dfu" (OS X or Linux - dfu-programmer must be installed first) or "make flip" (Windows - Flip must be installed first) - -Check that the board enumerates as either "Arduino Uno" or "Arduino Mega 2560". Test by uploading a new Arduino sketch from the Arduino IDE. diff --git a/build/linux/work/hardware/arduino/programmers.txt b/build/linux/work/hardware/arduino/programmers.txt deleted file mode 100644 index c34b88cd2..000000000 --- a/build/linux/work/hardware/arduino/programmers.txt +++ /dev/null @@ -1,26 +0,0 @@ -# See: http://code.google.com/p/arduino/wiki/Platforms - -avrisp.name=AVR ISP -avrisp.communication=serial -avrisp.protocol=stk500v1 - -avrispmkii.name=AVRISP mkII -avrispmkii.communication=usb -avrispmkii.protocol=stk500v2 - -usbtinyisp.name=USBtinyISP -usbtinyisp.protocol=usbtiny - -usbasp.name=USBasp -usbasp.communication=usb -usbasp.protocol=usbasp - -parallel.name=Parallel Programmer -parallel.protocol=dapa -parallel.force=true -# parallel.delay=200 - -arduinoisp.name=Arduino as ISP -arduinoisp.communication=serial -arduinoisp.protocol=stk500v1 -arduinoisp.speed=19200 diff --git a/build/linux/work/hardware/arduino/variants/eightanaloginputs/pins_arduino.h b/build/linux/work/hardware/arduino/variants/eightanaloginputs/pins_arduino.h deleted file mode 100644 index 52b37efc4..000000000 --- a/build/linux/work/hardware/arduino/variants/eightanaloginputs/pins_arduino.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - 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 $ -*/ - -#include "../standard/pins_arduino.h" -#undef NUM_ANALOG_INPUTS -#define NUM_ANALOG_INPUTS 8 diff --git a/build/linux/work/hardware/arduino/variants/leonardo/pins_arduino.h b/build/linux/work/hardware/arduino/variants/leonardo/pins_arduino.h deleted file mode 100644 index 753aa93bb..000000000 --- a/build/linux/work/hardware/arduino/variants/leonardo/pins_arduino.h +++ /dev/null @@ -1,253 +0,0 @@ -/* - 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 ARDUINO_MODEL_USB_PID 0x0801 - -#define TX_RX_LED_INIT DDRD |= (1<<5), DDRB |= (1<<0) -#define TXLED0 PORTD |= (1<<5) -#define TXLED1 PORTD &= ~(1<<5) -#define RXLED0 PORTB |= (1<<0) -#define RXLED1 PORTB &= ~(1<<0) - -static const uint8_t SDA = 2; -static const uint8_t SCL = 3; - -// Map SPI port to 'new' pins D14..D17 -static const uint8_t SS = 17; -static const uint8_t MOSI = 16; -static const uint8_t MISO = 14; -static const uint8_t SCK = 15; - -// Mapping of analog pins as digital I/O -// A6-A11 share with digital pins -static const uint8_t A0 = 18; -static const uint8_t A1 = 19; -static const uint8_t A2 = 20; -static const uint8_t A3 = 21; -static const uint8_t A4 = 22; -static const uint8_t A5 = 23; -static const uint8_t A6 = 24; // D4 -static const uint8_t A7 = 25; // D6 -static const uint8_t A8 = 26; // D8 -static const uint8_t A9 = 27; // D9 -static const uint8_t A10 = 28; // D10 -static const uint8_t A11 = 29; // D12 - -// __AVR_ATmega32U4__ has an unusual mapping of pins to channels -extern const uint8_t PROGMEM analog_pin_to_channel_PGM[]; -#define analogPinToChannel(P) ( pgm_read_byte( analog_pin_to_channel_PGM + (P) ) ) - -#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 ATMEGA32U4 / ARDUINO LEONARDO -// -// D0 PD2 RXD1/INT2 -// D1 PD3 TXD1/INT3 -// D2 PD1 SDA SDA/INT1 -// D3# PD0 PWM8/SCL OC0B/SCL/INT0 -// D4 A6 PD4 ADC8 -// D5# PC6 ??? OC3A/#OC4A -// D6# A7 PD7 FastPWM #OC4D/ADC10 -// D7 PE6 INT6/AIN0 -// -// D8 A8 PB4 ADC11/PCINT4 -// D9# A9 PB5 PWM16 OC1A/#OC4B/ADC12/PCINT5 -// D10# A10 PB6 PWM16 OC1B/0c4B/ADC13/PCINT6 -// D11# PB7 PWM8/16 0C0A/OC1C/#RTS/PCINT7 -// D12 A11 PD6 T1/#OC4D/ADC9 -// D13# PC7 PWM10 CLK0/OC4A -// -// A0 D18 PF7 ADC7 -// A1 D19 PF6 ADC6 -// A2 D20 PF5 ADC5 -// A3 D21 PF4 ADC4 -// A4 D22 PF1 ADC1 -// A5 D23 PF0 ADC0 -// -// New pins D14..D17 to map SPI port to digital pins -// -// MISO D14 PB3 MISO,PCINT3 -// SCK D15 PB1 SCK,PCINT1 -// MOSI D16 PB2 MOSI,PCINT2 -// SS D17 PB0 RXLED,SS/PCINT0 -// -// TXLED PD5 -// RXLED PB0 -// HWB PE2 HWB - -// 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, - (uint16_t) &DDRE, - (uint16_t) &DDRF, -}; - -const uint16_t PROGMEM port_to_output_PGM[] = { - NOT_A_PORT, - NOT_A_PORT, - (uint16_t) &PORTB, - (uint16_t) &PORTC, - (uint16_t) &PORTD, - (uint16_t) &PORTE, - (uint16_t) &PORTF, -}; - -const uint16_t PROGMEM port_to_input_PGM[] = { - NOT_A_PORT, - NOT_A_PORT, - (uint16_t) &PINB, - (uint16_t) &PINC, - (uint16_t) &PIND, - (uint16_t) &PINE, - (uint16_t) &PINF, -}; - -const uint8_t PROGMEM digital_pin_to_port_PGM[30] = { - PD, // D0 - PD2 - PD, // D1 - PD3 - PD, // D2 - PD1 - PD, // D3 - PD0 - PD, // D4 - PD4 - PC, // D5 - PC6 - PD, // D6 - PD7 - PE, // D7 - PE6 - - PB, // D8 - PB4 - PB, // D9 - PB5 - PB, // D10 - PB6 - PB, // D11 - PB7 - PD, // D12 - PD6 - PC, // D13 - PC7 - - PB, // D14 - MISO - PB3 - PB, // D15 - SCK - PB1 - PB, // D16 - MOSI - PB2 - PB, // D17 - SS - PB0 - - PF, // D18 - A0 - PF7 - PF, // D19 - A1 - PF6 - PF, // D20 - A2 - PF5 - PF, // D21 - A3 - PF4 - PF, // D22 - A4 - PF1 - PF, // D23 - A5 - PF0 - - PD, // D24 / D4 - A6 - PD4 - PD, // D25 / D6 - A7 - PD7 - PB, // D26 / D8 - A8 - PB4 - PB, // D27 / D9 - A9 - PB5 - PB, // D28 / D10 - A10 - PB6 - PD, // D29 / D12 - A11 - PD6 -}; - -const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[30] = { - _BV(2), // D0 - PD2 - _BV(3), // D1 - PD3 - _BV(1), // D2 - PD1 - _BV(0), // D3 - PD0 - _BV(4), // D4 - PD4 - _BV(6), // D5 - PC6 - _BV(7), // D6 - PD7 - _BV(6), // D7 - PE6 - - _BV(4), // D8 - PB4 - _BV(5), // D9 - PB5 - _BV(6), // D10 - PB6 - _BV(7), // D11 - PB7 - _BV(6), // D12 - PD6 - _BV(7), // D13 - PC7 - - _BV(3), // D14 - MISO - PB3 - _BV(1), // D15 - SCK - PB1 - _BV(2), // D16 - MOSI - PB2 - _BV(0), // D17 - SS - PB0 - - _BV(7), // D18 - A0 - PF7 - _BV(6), // D19 - A1 - PF6 - _BV(5), // D20 - A2 - PF5 - _BV(4), // D21 - A3 - PF4 - _BV(1), // D22 - A4 - PF1 - _BV(0), // D23 - A5 - PF0 - - _BV(4), // D24 / D4 - A6 - PD4 - _BV(7), // D25 / D6 - A7 - PD7 - _BV(4), // D26 / D8 - A8 - PB4 - _BV(5), // D27 / D9 - A9 - PB5 - _BV(6), // D28 / D10 - A10 - PB6 - _BV(6), // D29 / D12 - A11 - PD6 -}; - -const uint8_t PROGMEM digital_pin_to_timer_PGM[16] = { - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - TIMER0B, /* 3 */ - NOT_ON_TIMER, - TIMER3A, /* 5 */ - TIMER4D, /* 6 */ - NOT_ON_TIMER, - - NOT_ON_TIMER, - TIMER1A, /* 9 */ - TIMER1B, /* 10 */ - TIMER0A, /* 11 */ - - NOT_ON_TIMER, - TIMER4A, /* 13 */ - - NOT_ON_TIMER, - NOT_ON_TIMER, -}; - -const uint8_t PROGMEM analog_pin_to_channel_PGM[12] = { - 7, // A0 PF7 ADC7 - 6, // A1 PF6 ADC6 - 5, // A2 PF5 ADC5 - 4, // A3 PF4 ADC4 - 1, // A4 PF1 ADC1 - 0, // A5 PF0 ADC0 - 8, // A6 D4 PD4 ADC8 - 10, // A7 D6 PD7 ADC10 - 11, // A8 D8 PB4 ADC11 - 12, // A9 D9 PB5 ADC12 - 13, // A10 D10 PB6 ADC13 - 9 // A11 D12 PD6 ADC9 -}; - -#endif /* ARDUINO_MAIN */ -#endif /* Pins_Arduino_h */ diff --git a/build/linux/work/hardware/arduino/variants/mega/pins_arduino.h b/build/linux/work/hardware/arduino/variants/mega/pins_arduino.h deleted file mode 100644 index 5a9b4cb09..000000000 --- a/build/linux/work/hardware/arduino/variants/mega/pins_arduino.h +++ /dev/null @@ -1,363 +0,0 @@ -/* - 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 70 -#define NUM_ANALOG_INPUTS 16 -#define analogInputToDigitalPin(p) ((p < 16) ? (p) + 54 : -1) -#define digitalPinHasPWM(p) (((p) >= 2 && (p) <= 13) || ((p) >= 44 && (p)<= 46)) - -static const uint8_t SS = 53; -static const uint8_t MOSI = 51; -static const uint8_t MISO = 50; -static const uint8_t SCK = 52; - -static const uint8_t SDA = 20; -static const uint8_t SCL = 21; -static const uint8_t LED_BUILTIN = 13; - -static const uint8_t A0 = 54; -static const uint8_t A1 = 55; -static const uint8_t A2 = 56; -static const uint8_t A3 = 57; -static const uint8_t A4 = 58; -static const uint8_t A5 = 59; -static const uint8_t A6 = 60; -static const uint8_t A7 = 61; -static const uint8_t A8 = 62; -static const uint8_t A9 = 63; -static const uint8_t A10 = 64; -static const uint8_t A11 = 65; -static const uint8_t A12 = 66; -static const uint8_t A13 = 67; -static const uint8_t A14 = 68; -static const uint8_t A15 = 69; - -// A majority of the pins are NOT PCINTs, SO BE WARNED (i.e. you cannot use them as receive pins) -// Only pins available for RECEIVE (TRANSMIT can be on any pin): -// (I've deliberately left out pin mapping to the Hardware USARTs - seems senseless to me) -// Pins: 10, 11, 12, 13, 50, 51, 52, 53, 62, 63, 64, 65, 66, 67, 68, 69 - -#define digitalPinToPCICR(p) ( (((p) >= 10) && ((p) <= 13)) || \ - (((p) >= 50) && ((p) <= 53)) || \ - (((p) >= 62) && ((p) <= 69)) ? (&PCICR) : ((uint8_t *)0) ) - -#define digitalPinToPCICRbit(p) ( (((p) >= 10) && ((p) <= 13)) || (((p) >= 50) && ((p) <= 53)) ? 0 : \ - ( (((p) >= 62) && ((p) <= 69)) ? 2 : \ - 0 ) ) - -#define digitalPinToPCMSK(p) ( (((p) >= 10) && ((p) <= 13)) || (((p) >= 50) && ((p) <= 53)) ? (&PCMSK0) : \ - ( (((p) >= 62) && ((p) <= 69)) ? (&PCMSK2) : \ - ((uint8_t *)0) ) ) - -#define digitalPinToPCMSKbit(p) ( (((p) >= 10) && ((p) <= 13)) ? ((p) - 6) : \ - ( ((p) == 50) ? 3 : \ - ( ((p) == 51) ? 2 : \ - ( ((p) == 52) ? 1 : \ - ( ((p) == 53) ? 0 : \ - ( (((p) >= 62) && ((p) <= 69)) ? ((p) - 62) : \ - 0 ) ) ) ) ) ) - -#ifdef ARDUINO_MAIN - -const uint16_t PROGMEM port_to_mode_PGM[] = { - NOT_A_PORT, - (uint16_t) &DDRA, - (uint16_t) &DDRB, - (uint16_t) &DDRC, - (uint16_t) &DDRD, - (uint16_t) &DDRE, - (uint16_t) &DDRF, - (uint16_t) &DDRG, - (uint16_t) &DDRH, - NOT_A_PORT, - (uint16_t) &DDRJ, - (uint16_t) &DDRK, - (uint16_t) &DDRL, -}; - -const uint16_t PROGMEM port_to_output_PGM[] = { - NOT_A_PORT, - (uint16_t) &PORTA, - (uint16_t) &PORTB, - (uint16_t) &PORTC, - (uint16_t) &PORTD, - (uint16_t) &PORTE, - (uint16_t) &PORTF, - (uint16_t) &PORTG, - (uint16_t) &PORTH, - NOT_A_PORT, - (uint16_t) &PORTJ, - (uint16_t) &PORTK, - (uint16_t) &PORTL, -}; - -const uint16_t PROGMEM port_to_input_PGM[] = { - NOT_A_PIN, - (uint16_t) &PINA, - (uint16_t) &PINB, - (uint16_t) &PINC, - (uint16_t) &PIND, - (uint16_t) &PINE, - (uint16_t) &PINF, - (uint16_t) &PING, - (uint16_t) &PINH, - NOT_A_PIN, - (uint16_t) &PINJ, - (uint16_t) &PINK, - (uint16_t) &PINL, -}; - -const uint8_t PROGMEM digital_pin_to_port_PGM[] = { - // PORTLIST - // ------------------------------------------- - PE , // PE 0 ** 0 ** USART0_RX - PE , // PE 1 ** 1 ** USART0_TX - PE , // PE 4 ** 2 ** PWM2 - PE , // PE 5 ** 3 ** PWM3 - PG , // PG 5 ** 4 ** PWM4 - PE , // PE 3 ** 5 ** PWM5 - PH , // PH 3 ** 6 ** PWM6 - PH , // PH 4 ** 7 ** PWM7 - PH , // PH 5 ** 8 ** PWM8 - PH , // PH 6 ** 9 ** PWM9 - PB , // PB 4 ** 10 ** PWM10 - PB , // PB 5 ** 11 ** PWM11 - PB , // PB 6 ** 12 ** PWM12 - PB , // PB 7 ** 13 ** PWM13 - PJ , // PJ 1 ** 14 ** USART3_TX - PJ , // PJ 0 ** 15 ** USART3_RX - PH , // PH 1 ** 16 ** USART2_TX - PH , // PH 0 ** 17 ** USART2_RX - PD , // PD 3 ** 18 ** USART1_TX - PD , // PD 2 ** 19 ** USART1_RX - PD , // PD 1 ** 20 ** I2C_SDA - PD , // PD 0 ** 21 ** I2C_SCL - PA , // PA 0 ** 22 ** D22 - PA , // PA 1 ** 23 ** D23 - PA , // PA 2 ** 24 ** D24 - PA , // PA 3 ** 25 ** D25 - PA , // PA 4 ** 26 ** D26 - PA , // PA 5 ** 27 ** D27 - PA , // PA 6 ** 28 ** D28 - PA , // PA 7 ** 29 ** D29 - PC , // PC 7 ** 30 ** D30 - PC , // PC 6 ** 31 ** D31 - PC , // PC 5 ** 32 ** D32 - PC , // PC 4 ** 33 ** D33 - PC , // PC 3 ** 34 ** D34 - PC , // PC 2 ** 35 ** D35 - PC , // PC 1 ** 36 ** D36 - PC , // PC 0 ** 37 ** D37 - PD , // PD 7 ** 38 ** D38 - PG , // PG 2 ** 39 ** D39 - PG , // PG 1 ** 40 ** D40 - PG , // PG 0 ** 41 ** D41 - PL , // PL 7 ** 42 ** D42 - PL , // PL 6 ** 43 ** D43 - PL , // PL 5 ** 44 ** D44 - PL , // PL 4 ** 45 ** D45 - PL , // PL 3 ** 46 ** D46 - PL , // PL 2 ** 47 ** D47 - PL , // PL 1 ** 48 ** D48 - PL , // PL 0 ** 49 ** D49 - PB , // PB 3 ** 50 ** SPI_MISO - PB , // PB 2 ** 51 ** SPI_MOSI - PB , // PB 1 ** 52 ** SPI_SCK - PB , // PB 0 ** 53 ** SPI_SS - PF , // PF 0 ** 54 ** A0 - PF , // PF 1 ** 55 ** A1 - PF , // PF 2 ** 56 ** A2 - PF , // PF 3 ** 57 ** A3 - PF , // PF 4 ** 58 ** A4 - PF , // PF 5 ** 59 ** A5 - PF , // PF 6 ** 60 ** A6 - PF , // PF 7 ** 61 ** A7 - PK , // PK 0 ** 62 ** A8 - PK , // PK 1 ** 63 ** A9 - PK , // PK 2 ** 64 ** A10 - PK , // PK 3 ** 65 ** A11 - PK , // PK 4 ** 66 ** A12 - PK , // PK 5 ** 67 ** A13 - PK , // PK 6 ** 68 ** A14 - PK , // PK 7 ** 69 ** A15 -}; - -const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = { - // PIN IN PORT - // ------------------------------------------- - _BV( 0 ) , // PE 0 ** 0 ** USART0_RX - _BV( 1 ) , // PE 1 ** 1 ** USART0_TX - _BV( 4 ) , // PE 4 ** 2 ** PWM2 - _BV( 5 ) , // PE 5 ** 3 ** PWM3 - _BV( 5 ) , // PG 5 ** 4 ** PWM4 - _BV( 3 ) , // PE 3 ** 5 ** PWM5 - _BV( 3 ) , // PH 3 ** 6 ** PWM6 - _BV( 4 ) , // PH 4 ** 7 ** PWM7 - _BV( 5 ) , // PH 5 ** 8 ** PWM8 - _BV( 6 ) , // PH 6 ** 9 ** PWM9 - _BV( 4 ) , // PB 4 ** 10 ** PWM10 - _BV( 5 ) , // PB 5 ** 11 ** PWM11 - _BV( 6 ) , // PB 6 ** 12 ** PWM12 - _BV( 7 ) , // PB 7 ** 13 ** PWM13 - _BV( 1 ) , // PJ 1 ** 14 ** USART3_TX - _BV( 0 ) , // PJ 0 ** 15 ** USART3_RX - _BV( 1 ) , // PH 1 ** 16 ** USART2_TX - _BV( 0 ) , // PH 0 ** 17 ** USART2_RX - _BV( 3 ) , // PD 3 ** 18 ** USART1_TX - _BV( 2 ) , // PD 2 ** 19 ** USART1_RX - _BV( 1 ) , // PD 1 ** 20 ** I2C_SDA - _BV( 0 ) , // PD 0 ** 21 ** I2C_SCL - _BV( 0 ) , // PA 0 ** 22 ** D22 - _BV( 1 ) , // PA 1 ** 23 ** D23 - _BV( 2 ) , // PA 2 ** 24 ** D24 - _BV( 3 ) , // PA 3 ** 25 ** D25 - _BV( 4 ) , // PA 4 ** 26 ** D26 - _BV( 5 ) , // PA 5 ** 27 ** D27 - _BV( 6 ) , // PA 6 ** 28 ** D28 - _BV( 7 ) , // PA 7 ** 29 ** D29 - _BV( 7 ) , // PC 7 ** 30 ** D30 - _BV( 6 ) , // PC 6 ** 31 ** D31 - _BV( 5 ) , // PC 5 ** 32 ** D32 - _BV( 4 ) , // PC 4 ** 33 ** D33 - _BV( 3 ) , // PC 3 ** 34 ** D34 - _BV( 2 ) , // PC 2 ** 35 ** D35 - _BV( 1 ) , // PC 1 ** 36 ** D36 - _BV( 0 ) , // PC 0 ** 37 ** D37 - _BV( 7 ) , // PD 7 ** 38 ** D38 - _BV( 2 ) , // PG 2 ** 39 ** D39 - _BV( 1 ) , // PG 1 ** 40 ** D40 - _BV( 0 ) , // PG 0 ** 41 ** D41 - _BV( 7 ) , // PL 7 ** 42 ** D42 - _BV( 6 ) , // PL 6 ** 43 ** D43 - _BV( 5 ) , // PL 5 ** 44 ** D44 - _BV( 4 ) , // PL 4 ** 45 ** D45 - _BV( 3 ) , // PL 3 ** 46 ** D46 - _BV( 2 ) , // PL 2 ** 47 ** D47 - _BV( 1 ) , // PL 1 ** 48 ** D48 - _BV( 0 ) , // PL 0 ** 49 ** D49 - _BV( 3 ) , // PB 3 ** 50 ** SPI_MISO - _BV( 2 ) , // PB 2 ** 51 ** SPI_MOSI - _BV( 1 ) , // PB 1 ** 52 ** SPI_SCK - _BV( 0 ) , // PB 0 ** 53 ** SPI_SS - _BV( 0 ) , // PF 0 ** 54 ** A0 - _BV( 1 ) , // PF 1 ** 55 ** A1 - _BV( 2 ) , // PF 2 ** 56 ** A2 - _BV( 3 ) , // PF 3 ** 57 ** A3 - _BV( 4 ) , // PF 4 ** 58 ** A4 - _BV( 5 ) , // PF 5 ** 59 ** A5 - _BV( 6 ) , // PF 6 ** 60 ** A6 - _BV( 7 ) , // PF 7 ** 61 ** A7 - _BV( 0 ) , // PK 0 ** 62 ** A8 - _BV( 1 ) , // PK 1 ** 63 ** A9 - _BV( 2 ) , // PK 2 ** 64 ** A10 - _BV( 3 ) , // PK 3 ** 65 ** A11 - _BV( 4 ) , // PK 4 ** 66 ** A12 - _BV( 5 ) , // PK 5 ** 67 ** A13 - _BV( 6 ) , // PK 6 ** 68 ** A14 - _BV( 7 ) , // PK 7 ** 69 ** A15 -}; - -const uint8_t PROGMEM digital_pin_to_timer_PGM[] = { - // TIMERS - // ------------------------------------------- - NOT_ON_TIMER , // PE 0 ** 0 ** USART0_RX - NOT_ON_TIMER , // PE 1 ** 1 ** USART0_TX - TIMER3B , // PE 4 ** 2 ** PWM2 - TIMER3C , // PE 5 ** 3 ** PWM3 - TIMER0B , // PG 5 ** 4 ** PWM4 - TIMER3A , // PE 3 ** 5 ** PWM5 - TIMER4A , // PH 3 ** 6 ** PWM6 - TIMER4B , // PH 4 ** 7 ** PWM7 - TIMER4C , // PH 5 ** 8 ** PWM8 - TIMER2B , // PH 6 ** 9 ** PWM9 - TIMER2A , // PB 4 ** 10 ** PWM10 - TIMER1A , // PB 5 ** 11 ** PWM11 - TIMER1B , // PB 6 ** 12 ** PWM12 - TIMER0A , // PB 7 ** 13 ** PWM13 - NOT_ON_TIMER , // PJ 1 ** 14 ** USART3_TX - NOT_ON_TIMER , // PJ 0 ** 15 ** USART3_RX - NOT_ON_TIMER , // PH 1 ** 16 ** USART2_TX - NOT_ON_TIMER , // PH 0 ** 17 ** USART2_RX - NOT_ON_TIMER , // PD 3 ** 18 ** USART1_TX - NOT_ON_TIMER , // PD 2 ** 19 ** USART1_RX - NOT_ON_TIMER , // PD 1 ** 20 ** I2C_SDA - NOT_ON_TIMER , // PD 0 ** 21 ** I2C_SCL - NOT_ON_TIMER , // PA 0 ** 22 ** D22 - NOT_ON_TIMER , // PA 1 ** 23 ** D23 - NOT_ON_TIMER , // PA 2 ** 24 ** D24 - NOT_ON_TIMER , // PA 3 ** 25 ** D25 - NOT_ON_TIMER , // PA 4 ** 26 ** D26 - NOT_ON_TIMER , // PA 5 ** 27 ** D27 - NOT_ON_TIMER , // PA 6 ** 28 ** D28 - NOT_ON_TIMER , // PA 7 ** 29 ** D29 - NOT_ON_TIMER , // PC 7 ** 30 ** D30 - NOT_ON_TIMER , // PC 6 ** 31 ** D31 - NOT_ON_TIMER , // PC 5 ** 32 ** D32 - NOT_ON_TIMER , // PC 4 ** 33 ** D33 - NOT_ON_TIMER , // PC 3 ** 34 ** D34 - NOT_ON_TIMER , // PC 2 ** 35 ** D35 - NOT_ON_TIMER , // PC 1 ** 36 ** D36 - NOT_ON_TIMER , // PC 0 ** 37 ** D37 - NOT_ON_TIMER , // PD 7 ** 38 ** D38 - NOT_ON_TIMER , // PG 2 ** 39 ** D39 - NOT_ON_TIMER , // PG 1 ** 40 ** D40 - NOT_ON_TIMER , // PG 0 ** 41 ** D41 - NOT_ON_TIMER , // PL 7 ** 42 ** D42 - NOT_ON_TIMER , // PL 6 ** 43 ** D43 - TIMER5C , // PL 5 ** 44 ** D44 - TIMER5B , // PL 4 ** 45 ** D45 - TIMER5A , // PL 3 ** 46 ** D46 - NOT_ON_TIMER , // PL 2 ** 47 ** D47 - NOT_ON_TIMER , // PL 1 ** 48 ** D48 - NOT_ON_TIMER , // PL 0 ** 49 ** D49 - NOT_ON_TIMER , // PB 3 ** 50 ** SPI_MISO - NOT_ON_TIMER , // PB 2 ** 51 ** SPI_MOSI - NOT_ON_TIMER , // PB 1 ** 52 ** SPI_SCK - NOT_ON_TIMER , // PB 0 ** 53 ** SPI_SS - NOT_ON_TIMER , // PF 0 ** 54 ** A0 - NOT_ON_TIMER , // PF 1 ** 55 ** A1 - NOT_ON_TIMER , // PF 2 ** 56 ** A2 - NOT_ON_TIMER , // PF 3 ** 57 ** A3 - NOT_ON_TIMER , // PF 4 ** 58 ** A4 - NOT_ON_TIMER , // PF 5 ** 59 ** A5 - NOT_ON_TIMER , // PF 6 ** 60 ** A6 - NOT_ON_TIMER , // PF 7 ** 61 ** A7 - NOT_ON_TIMER , // PK 0 ** 62 ** A8 - NOT_ON_TIMER , // PK 1 ** 63 ** A9 - NOT_ON_TIMER , // PK 2 ** 64 ** A10 - NOT_ON_TIMER , // PK 3 ** 65 ** A11 - NOT_ON_TIMER , // PK 4 ** 66 ** A12 - NOT_ON_TIMER , // PK 5 ** 67 ** A13 - NOT_ON_TIMER , // PK 6 ** 68 ** A14 - NOT_ON_TIMER , // PK 7 ** 69 ** A15 -}; - -#endif - -#endif \ No newline at end of file diff --git a/build/linux/work/hardware/arduino/variants/micro/pins_arduino.h b/build/linux/work/hardware/arduino/variants/micro/pins_arduino.h deleted file mode 100644 index c9f25eb12..000000000 --- a/build/linux/work/hardware/arduino/variants/micro/pins_arduino.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - 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 $ -*/ - -#include "../leonardo/pins_arduino.h" -#undef ARDUINO_MODEL_USB_PID -#define ARDUINO_MODEL_USB_PID 0x0035 \ No newline at end of file diff --git a/build/linux/work/hardware/arduino/variants/standard/pins_arduino.h b/build/linux/work/hardware/arduino/variants/standard/pins_arduino.h deleted file mode 100644 index 30b426630..000000000 --- a/build/linux/work/hardware/arduino/variants/standard/pins_arduino.h +++ /dev/null @@ -1,218 +0,0 @@ -/* - 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; -static const uint8_t LED_BUILTIN = 13; - -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))) - -#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.) - -// ATMEL ATMEGA1280 / ARDUINO -// -// 0-7 PE0-PE7 works -// 8-13 PB0-PB5 works -// 14-21 PA0-PA7 works -// 22-29 PH0-PH7 works -// 30-35 PG5-PG0 works -// 36-43 PC7-PC0 works -// 44-51 PJ7-PJ0 works -// 52-59 PL7-PL0 works -// 60-67 PD7-PD0 works -// A0-A7 PF0-PF7 -// A8-A15 PK0-PK7 - - -// 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 - -#endif diff --git a/build/linux/work/hardware/tools/avr/bin.gcc/avr-cpp b/build/linux/work/hardware/tools/avr/bin.gcc/avr-cpp deleted file mode 100755 index bdf79f62a34eacd23775a16cf027380a96846618..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 230392 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

    E`zy{zz!P|GVN-4qt8l0DQs0g?vt0 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 diff --git a/build/linux/work/hardware/tools/avr/bin.gcc/avr-g++ b/build/linux/work/hardware/tools/avr/bin.gcc/avr-g++ deleted file mode 100755 index 6a09b25e277d5f3e02642298c1202d4bd179ba3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 230392 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�JGT!;1|8U-lN$Pfje-_+Q*@shLSSvU@fD1q>fZ&jF1GJ&o|A zYe0mdNfaXVpVDNs-^AAtpWox9nogRW3ErDTd}$NYvvVZ}bWV9Lh6tQ5`jW{vzt&5M zgI!McLrTw5O}|XzXU^68lKCX)%kk*f5WoD3`)w(wWzmIz-*+RJ^!!3&P(Cog$@1wO z$lb&T5l=xMt&@-a?zrqc_-SVTYq$^-sal9hxq#t`-4pQ9GWJ=KAGs)sz4O?|jkF=% z%k*W<)fpBYumZ%59gc%V|&wG zROtCFI1DFN@L9h?@a>;N=aPB*UDT9#jPOSY5~#PjP>;A!wIioYz%v5tL;gP)KX%4% z&%?1LJnzY)R1Ci7+Z;*aOwWyY+(KUm!rNe=VGB|^w;x`O+@8c1TfP{EMot1r;*)p+ z>>?aldtm3I6Fcu4*^Te9Gd>LD`9WZ;{yuQdF2ITNcxCQ;NKG4X_fPJjosUj)-|R3C z;o)-iwsH2H&g$1a(>8udndCNp$sD@vH$49BH7_1BMbFjFZ@=NtAHO!k$zOiQOL$9V zoG(&^aA1*;Il|4zIW;drEOeOvBDJ{noZ7pia}$(!iDzAZPY`Wtzc z<=;=r#x6uu_CHxfJR^0*l@nVLx|iN7uJq)?_xhNkeI|1?-Zl_1K9F5L@i)jGe8aXy z!^aCpURVHsX4%LK=g>VLZ;;_}sgr>mbBIhO3yphVar(TreBTook>C5wsMFZl>@;TX z0O(!s0KWXsza`Mw1Li2B(8TA84(ug}Xs$a9NakmFHXXNjU5S?Wa2CeV$p`oVp8H+_ z_@VE~@RcfFV}sZ4##{Fz7sq#UuodrWf*s|fdr=wr>wz0Hp0n|`73Vv6Bn1Ps@m6+F z4sPQdZ{^4dZPuV^+rx)d_`(Vvu|m;=515^4xiFdHGk;^PccLYg!|90bxNT>CT0`q? z+b_h~!u_cHhXL?F>`p9N zJ`g_}X;^u?Ph~bjK=u=R4{vJHfcLO_^p5z-cTFcTdkP-0GUFDGP0y$3$*VJ{J;gtP zeViQcn2joEFMM!Y>jjuj0@~<;vhcrupX{%7=WB6Te1y z{@vjE)b}2b$SG(X+>^u7a!49lLC#6bA!)RMdbWKu&F477#Wc6zX}AtdITv=|Bybh9 zK|NGG_=B^|px*df}+E-K>@!=3j)gB6`YpMc=VkA~0dy2Me+;vYi3Q+gHJ8I+)Ud!{ubL5T5$(ehxc-OS&%4v9PYtILejHaQow&-Ms9<%1s;n>Xl zNPT1WhkQ_V-z+>tp8qPO)D$z5tbXS9=}d@Me~NU}%Ly=m#@r@`fA+ z-fAGS?QVaJ{1HJC@+S%xaP)j^4#;`$H7EeiGoeQO{Shq@0GMcz;x)pUjrWN2uc?5_ z$o&`0|02jBrY$#fe*RUEKrAouVDa3{$t2)&pd8hfYa2Tmc6!|NfG0x^%{*IL;MzaG&r!Z8%g?TQtf} zbh-zpy?Jcre^6c?#bY49LIhsV>7HLJC!UE9)$veU6i;1bW=<1j_~CO+MsrAH86MqP zg2%n`cxZCvb8WflW2Y|q39hZhPZ3_4TJ~ zs~>iWh9TeBwAp$V1}OK4mNI~HHg};s(;^zD`r*kla);aYbj-s2eTM!9s)zIPFa0xU z#Whyb4(xnk>CnSQ?DjNSS_y?mjIsV`D81rJ-+0u#PKo;i_+n~+!E-3DMHt-9m(Yvx zxP0`e5RLbjp9Q(E*;}06OJ5Pac*HWleI9fY?x6tVNKDiC39QeK+*9qji%k{dW6tDR zR(}=LZ^zg!x?&dKx3K4}{1pmsAx!sBVu{Qk#=s^o_U7)eX3vS6F|T%){-bu53>glLFRH zkrZ4+VE7N_%ec8X|G)dyS0XRu{~xh+Uir^)H~3Gf{4@A}1+pyQ{|a#Pxcn#c!E*A& zZC-eW*D(Al(54J0ZQ5drF#KCydz5Q3Fyg=AN#%9NSjD4rF*E%0T4weQlj}rZ7s#Do zuSCBR&?^^__peN^jLm8#X{P+_#SZLUo4<%s$S&nT<`lVQf?el}|3vN{;q(<#nXy%8 z{T0$dHOv->{LdLZw(9J{(ECj2^QRct(+#$r2g@eDf*3PCe#KZEGUwqZ}q0S|wX!q1^qL z$(+ZPG-#UaQwUnQ)GV1H3WGuP>yKIewP)*eP=veJX5_b$CmamoPM$-Vt6;Oh7<%7~ zrrc9N_gXui#0&#iGglyn<4G!cT$HqH|8=M5e!l3X{2$Rbw?}`-r%Z9hMFaVc z+zvd(jv7Sib{-sQ&pkACB8r!av4a9i03!puQX?O*#a@mNLsveEVQpK(5ljkiX1Q<$ z0EV5&iQA&gGAl;gH|P5aCanuk5)sXw?00A_I-MoQjx#*YlOOpa z!^CYj=4%-DuRODDtafhxafkpa`zNgpPnM6qWXL(lu86lvnY?bytQlK>U(48zgH5>y zn;IULoKLSqHGu>R?&^xtp2%-lm2}uFp5^*@0=# zv3xDUz$i?o(7LgS1d@43Y6dN&0z~cxS>zArQ(!Esg9eiPdqGM|L+m@(<3adi`A-5% zOGEZP++gsk>+nqQQCGk8j8Ctu#9pAKoMvICS3~Q4*H0dr?g08=`TH=0gt8KXTOq-F zmfRD}XTHhj;PsEo3&?x(zd!&bQQJ@c=`X;aJ1~((jf3gqtv9kQ$-B>Y-TSwgOr@AW z=8WZ|RTK;8uir4yo{gA$?YQ|i$Quk1f0%~Tu}AU`N=(a)vvHGFNA78Ph8Az!?ztGJ ztJBI>1?7%FW9>al9+MTc6dXwb;sOt}08 zG8-ReEKhg{??odQqM`hq2vHWuTW_Ku!gw)b<%-PA(f!zE*6{P}hrp(hL({>^X-m1a zY7(2B*E5qEXYy0bj}3RC6IcrMMfLp?_hY5ntq-|*f8tgIVe)`Ks(L8Je%x|KWsiA7 z?!~s;(;3WSkI10fOz5fAjsAi*{3UM(aq_Pd`mx3JXOrH0=EMiZ)UWT%OSb~d3){xd zy5VH@qYr1$Tlr82UXZ`5oJeXVVi=&uR2rt)5x*q}B5rrI3p0-b^ELAO74+$My_QZ`pIzw5Hs>`PcF8 z8=3Pk@^6tB*nU3hR{FoQzIf6(&V*V0gI(iaKU8s%Bb#@P1*hpwir3`rw*O*(3yqzb z50(8#G7B2F-&{He?fvA!JgjubFevA#Z!sBDbG``#fs(c;Qa+onhOaGpq;1dkvrf!! zKZ7GbunIGZ@%%HNr(Czd&~bY-x>5cJRwhIGIfoj{ocs>}(!$dGXTAyrg9Rb;7NlJA z4-`h6D}Q4fUf)J<&dM)i<;-EfK9@F}5W1Iz96F$!O?Os)s0n)dsp_XDdcjOvzWmdl z!KlakTbujs*p?-{LhTQ`p1BUUh`nb7{5aN$DQR=x6$kbD*aIm0T$6NgBMo3b0*qDSRI><4h?$}=<2$u>9QrVvE7jBW00xo~rpLAGPK zJ^GaSY|lN}e)lhDNq;@IlLWNwIsMCUu&W047+&*;OdjbN>xAK^vB1Y1mwK{l{B!n>#rUf*$mZ77X9o zqUkCO&)N)OD95b)i71C99ffHte=iryCckC)jA_plz$__C+fh3y-hpk&wmM1`uQifsqu;F4ndDkoXB`K zp*)+=QFM4{TU28U@%DNnn(T}1xd$^n(7q_`Gnv7$)~bdh+bi3mKL85Yc4p-tLN;ba z09H$wf<(@{3*;Q8!9@q4ithgPEF^@XXr-k5*{3i`xe_&*ZJYdx$Q4PX%6crn2*hEi z`5vqteBt=?z0;6|JK(dBY$a`aekDkgJqnnh7AI~L9L3dk2S6e67206ve{6cb$tvCf6N_7C5p@z60dbFjnw=dn(RF9s#|X38)X%(c#)+>`(Ir=hsULg)u9bS)O+ z017GuJ5!s0mfX1$Zxf~Dtfx^-mT4fM*N2?Ubrh!4*_oGtCp*v)LL%RaCKN<9arJ&Q7#Q zlZFPI!{#}3h1}Fvy?^4zSVH#db8Hi$AI@yyp!`*!Yv*&bt~;ac#=EwmXtMJNhRzu; zJpK7hDE zR>nEFBDN{_dlu?ZvmSywMny`l-^i}35j`AjuQ0&=I}K8utiIFo*Rpc3f;j-G+9*=B za~tF{!Oh_8TqvS_ram6RX-8PYclF8y0$T;y_=elu+g#1DSl;fs7YRGCLFz_v@0@=V z5#drvI68iVmAP*hI52su=v&-Ei|bmkE3$m|^T6Kp%)KzfH{*+zX&h3KemV1M_z*R- zX&>dZeAicIz?@`+77JwMyWh?PxZ`)%Ss3l`+{-P<5Ixi524y1*`S{}QXDJzJ2(4*$ z#t8*e{ZRz)gdL9f0L*z7I{?P96n}Qp&X=a~-sw%88$H#6Lbu^5kL&QduXN&Q@NJMY zXaJlX$h;Oi$2K_`sBwwJaYhr@IQmrPHLdvZCF{^+AbAv1I}FOVtYPb=%eDrLvvF*Zse13TUGc#tE-OkBzTET)%+uX= ztO>aq(f19eL6K0XeXJJH0dy@Gi**Qs>ZeRaO~iq~=)0ZUmSDB}D@bBV5KNt{Wx+IY z24VLaPQUZ-!RZIlPr|RY^#t_N{HuIrTL_8Y{WEX_BaW+DP}kicBiB54f^Uzy`fe;e z2o*ex*?SIOQ9hzFBmYfok>>@>&1fTNZ?GkisnN9nZ61a;$aNfkZsH?`9#2^33FlpM z(26L@Dbl4BOq({08lO4j!zW-;sO11vIpA z`*uALQ6Yq+Y4d9?dWa5=Zn=8Wc&u{{hWKc8<+&7cK)aBZfRr5tt>M|jxqI(^>THbu zI;J<3fB0VTW#SPCmKoooKRR}!+aFEDz%7yIZF9I+=QlX+C3R{RuJa$qF&B}>i6y|$ zvo{|_)!5>U$qAmmPeU9aEk{{jkn%=~6YI2m^jYxGEwimbmtRtYKLj93&`r*Cf)#~`Og(#Gg2yo_=J?f zvb2DmU>_zipTtODOvdK*B1~0Qn67@6$W9f+2^H9X_&IdB+p(INZz#x1a#6|`1DEX| zIjcswLmj!3=daG)-O8y@3vQ497j}}IRtNff&Yz`!G~Ek2D48qbisdI4qF2NLy1S_4 z^E*LSZf-~JDopPB=8QMaMIfrHF+_K~Q3fO9jhqf28*i*)AR_D4ZB)07?s#LTdN-};MZesZ`#0Zs_J${K z1F0Cr<$jM@!Rp+`faSj$-OF1DDDk^>*J4z3dbQw#RSYD6eUPzL1UY6 z13u1M{*XP-A3g;1uvg)-bhh36KcTd@&&Aii_aGY+_7Q|}di6cPipfA>uO}?}DretK zF6?H31^ohx&P`$05|%ma`?L%DCWN(M40Zi1NDBs)Nu+_l4JMs_3Bs8FkRjo8fXbJV zkuZ!5d52--LjFfAI{)19BxlA{NGqW*+0WI(p}s*=#f^JtJE%D< z8vB-aJ;n@y5L@bLH{aESaH!_aX_*BaRTx{}o)0j2`EFi6B4dp^HQ)jRy>YrgZ{af##}wRwIsr2yCx~nM8KLb2B}z(g8i@AT%WTjB}oz zCm?u@iARvQlL0b~bAb7qfF!>eJYd+|v9jC0ftq8~!u%(s_h><`Ehr&|pxiTUN=E`Z z^S|3`3ide@j&d-3WB#Waz6aqj_w78`$SFjllb<2^;B5Aoa|i1*hqJ*P(T+QxMXnYU zIA&sccDZ8N1uP88^Nk^pk;6#sSpGIhgC+T^F3C@@A9LkHQmxTcw5#ObC8>%LKpYcm z0E7CKiqLiI_nSOn_&b(w@#XnNH_sss>pX^j6)Ey(`XKLgAv;K&Pkylv;PzWl9s8Ql zX3(>=fIWfu>iyNvOe{e-`S-0yN#u{vc^Dg8+t{r3Kg@I1Vv37-?DS)Y(bOMB_SOQ2 z=7FWaRVP0?k4YwpOmcBAfYKOc1`6?j+ZU3g354PeP_`~r;skMtjw`LD6JVXPv3Eo?{bb16HY z?90EGJjmU%r+HSx;q8m14`Z3?X)$VK!7w7m#D`{OymtXrhC=oo!2Dp(MK8dZWy}>k zY0$RlFgEec!nor%Pk%mpE6myRL)Fi$-m_!o>OI+6`Px0m2Z$FEXDI(edU28V>gjEF z|6)!@^)I;dsSG2$w(0}zds=Z%$60Uw9mMyJ6X%W2xu|U3C^nC z;1S0Mo`B({?OC9BsEzZIyYcYyp4vCHVUy$CkDkzmw*wd5U4H8gH-US2!wX3a@Q)1e zZvcF9T^sIo7vTFi6Peq#2xmgy!xXz=x1NIhWDmK(<0%Z>&He5|_?N*y=TE`!qTY88 z*xa-m!*(HvbKN~NPlG8DWxS_t(L=Y7pj|835P#eugEswf$Pg9r0*G}J76sdGnDx|e z=Q$B9596@bbDx=kp70jLaf6D~{=|zM&SSkFYiQ4n-k-rF2(NnOp3`y7$n#5idbqp= zuXNlqZS?-^Z=M#xTYEci6lbHo;mJAj^|)_!dvtyo!a&Xr)8t^$Il}h;^D#=rha}eB z>6<+fV>05vh;ncKV~`XGc5r+uqHSLN*%SW7&*tGKi&a0RW2`%3?}4D3W`KRK9gALU z%DvQ{`+eKpFX9f12lJbA$QqmG-avDCBhozv$;Du&>DcLya9yvhVKN1qg4Ht=TP&`K z85NtEyj`-|=(yg`F%HI|vo?YbZu!i-?vA;MsM!bEwsW%V*x|M@ynguHvFv|QvtMyP zIL9RUB)LLej|$emY0h+~BE2FcKNV@GKa%LpMtWnRigYNE%!E?0XtFmEzc$wGR8}s< zzjP|Pv^OgME2B;#8FtpE5q3ip`}hZ>15L>Cv=Vz+U^X-hBw6%@l2>E67NT5#tCJTq25>~6dOiNIuprc z(}9@5R5BV%r$d?eKrHQ?OR_5}YkK5ownJJpYt1*@;VkWr4J}P%`}=*-eG!*5z*kgN zL>D-fNhch)rNHN4D%KMp#z%TN8di$%IwPf|Uho>X!GyqfJ)DDCdYrbIH9N;%PFw!d2>peLR%Fdgnfa#Hjjhd_IxlOzxP7A&8A>^|mCGt?oG|1l zY;sC0fT(2?QdcX0B$#TI)4XPNXM0EMWt%#i*0nhu?H66vblKa~BSDdYu6S=YnN5cx zU0tczP&^{611=OXIWX8C%fyTch!sbN??u+#gI^nQ!#J38enMewPt)XGR4^0Mqsf;+` z!Bjkvfl&3w!sIrRnGnc)Z()c^B+x~=QUBp|wns#DLu82)-Z03Ye*A1?#l%whfGlgv zNzxlhr(*+M{fz2&Kv{MmmdLO=7liwz*$%|hY~@Z^m;_4BJ@?!I;6(+17qwryeqDRV zTBj?XK(QGK#P&_f1g8RRe*^&tBOU2X|jj69o_0(1sr4PBJyOz~dxd@k8Im?)+5e$3%F91!FwQf-xQe!I)Z)H^C^6(NkhdC-N#Gn8;TP!Kj9kg>5L6 z)3Q>9T~<@7u*+&n7Iv9W1r-v9n9?LHuPQ+}QdN~sR+1CTYD#eeF{SY}lqLfbTY|*e zs!}3W=PBw!Uewi=%Baq#_Je6kGQF<0l!PIsbWWvMR99P)57l-4hVBvAP!)|Nib|5i z6lH|b0oBErCsE6aMzQHGtBICsyUS{P`o^Qrq{}f# zaj35GwOp^S5S3F?@2ia|alSH5iSyUJ7b(mwk)i2Y7^JR)kn(v_@5l; z6A03u0c$Gz`kabwgUNJ!ctyBnQ|Fqs?Hf0(U93$_F|4DkhiOtr$z9ZhT3${ZJnl9=Xly2&rj(m;g! z3G+)B^U+iiftd13#2`x^j>6L&>&jvV*XtyiYd4G;iI@Qw?_ey^9ZN(p*KxwD8G

    zrnvgm6-hHw03>Nf0Gala6oQV_RwpbF!w^3|hZsGa>5iv>w@1I22IA&24D-$nnD9!N zoukqdjbXZ%*zAO}h>RvN!^ZpzpK)7ClvqqJ3{xXaS0sfA8!)zqeWA!7jW08~5+!aGnK(-Ik1{H<3`CD6@6Nc4^^Il9vw}yQs zVeJ{?!vFx(6LuD}eqot|^&p11YzC8NwloO?J7Xd*FwLMsI!!3Zr-=lj(rqb1WFo2I z1_%u)(H%(@LZnf%ussTH7r>o069*vRHxORK*@6I0p$A}Ebi!-sGg`xbm?q;dZI6NQ zB33z9Q)mVwn6HbQPD9k<8I-S^QXC$Pbw?7JILWi0VHmfP6vgmhoRTyc9~4Jzdlxat zwT(F8R`Jsela57F(LT~6i3?3LE)+^iqn2y4K~uWKjTBoV>oE}GuTf*+F_6i$zxYAp zk042kVhgi!VYrZNyZV#S&7hI2xh5NrK?7Zb&r~d(%%VY20VSoX-5|EcbOikpY?*^B zow2m=0}_z{0%P`}3mdHP6SWFsP^MebZXM`K_M2d98V%DRiv&;xXvEq!fxFFwb;oIf zLoXu`)~8~cNyQq+FN?1BQ=sRP+^Tnrfw+u*Pms+!KNMKJ6Ou zH$icyBA$03BDlPO*f8`k4bQ$bmNP-Ntt6Sk?^34);n=)cvj z81RVovoNf$JC)vK%%Ua&;|J4VR)hz4I28;1b-l=eZ8nw|a^gKyC}}Xl{R+qWA!1Mw z{S<7dB;mQ*eyLfZj$*JPQfELs?0BYPTlZpQb4jS8BUEvTQ$Z24M$wAP97qqkABa?l zHo!<1263?a!O*xQ6v@C@QPFJ{Y(P~!l}w0zb_kY9icIL7iu5^Rt2b?hpzRi)=sPi4 zE>zPd&@GzX*&joX9!h7s2C%de!Fob}Kh|)1vEVa^%qwTFjma7idM*%>&ZM%k5|QSW zWc-6&(i&^AE&w1_hr24_lw8Sh6B#s)kjJ7TLKYAT@QA%$AWbmVhG0Zp!6ll-3qo98 z;Tly}ES3NYs1z(MVWle6wKasX78x26K?Mfwc~*qb;6urtP_iqXlof%BiYs6b#=ruD z1Jc2a(vDM@UxD>lqKs^V5Ukqp&$KR~H`JYs8Nx(n#o`NFvw=e&9<|FmUCHjPCWUWd zOt3kQA1<(VMu~9qedod}s>2OeUQvag#oMbEEqq61AY{?v`M{Y;CPO{3ExtgjWf&N_^+KC+pZq80vQ9mOtBh06+Qd2c%}UUMNZ##!RLPpaXDrMp+01l!b7tZL_{^7t4youPVq$={NN+ z6%PqS#Y3FQS5BI#C+V@G3CVHWr>jq81RaX^CNRZ;=8Z)o)Udwsq)1-8CvKXKn{GjP z7^1L1wVF!S&UblNaSR@xN z9peJ#6c{(&#WMv&IK#dIE!@AFioQYiV}x||8-p5I{TBETn1rhK%?m^Jua%ohIC&5C zK{3T3fMzhl*`wJY5eW@Kd&bzCjfO$AxVe%_LgT++1mw!uaS|wasANPCd*?bSk}F+g5rzRB19QYxuG5?J_-1 z@3>;gwkzIw<<&{F;qLADO2-(HiS4*j>GYFU@NMaI3CwIA!~h4%!LJwsl!ihJ*%TLq zhm>&(D1zO}s$vO=5W`Wk9cp7KnH~j`1Pd^hHPx!cNdkw`Vde%tdxB!~(_u{l zu*R`Cs)a3TlU4>%2CK-Y!5g$dczhxf4q+^_e6;d2l7P%&bRbqHiF)#V3lxvy%kq z;yx`%o!b7Szt<`j0XEDci2;0w04DS2r*9xKILJXpS1hxIvkp)uqc(PpwgrSRjGJu} z7jcDRY)5kWq}6H3M4gMg8NQqH`AtCu3`@oOp=>Z>v&>(!R`CiN$1RsCNu7_{EkXsj ztR6M`lQSh5`^p9|)vbQHKqtFWr}z{H_Ydm_X~P&8&5V-i4tbCeGRR0l7i{Vi`;+O~btwbAl%Pw@9km6;u>HT#2P!vt?hb09l zj}9_@DGjrVrnj^s9b}bD2R_dF(z!xuN7PVzG9PyvAx4Ht*qfBGz~`9^3sJTt)fOT1 zYcXtK-h}OV=v9eTFd#imuZ1a%kNpPY(joLu7{8l=Oldr{G#10Nj^UIu8k}ImL#05i z$6zvNKcjkCi{r3797L~LNgCZcCEhjA7^yhM1ch5%&Cr4PF&=@nC?guhB$xI}>*z`h zq{V3N!`PHgqi<%Z%vjqDdkx>Qc@ZNwPD{L$mS3*DXrPEBnk)o~I3JkhHUq5APUF5ebv{JiKA5(z#GVK4P^^2v~ z&eH{45{mbrBLp`w2<`?)P+ymaR;n&9j>q=p39}Q{1)hRS+vSi~w1O|c{%4oP-GQKm z)?P6+84)o3z7;3Zhb@u?c&w)*z8MpwA&3)Nl-V;Fx+a^%G7WnU+oc!_k`Y}gF{zYt zw^~F2x6@s>Ktt`vG`HI{M6D255_Jy6DK7N_i3Oc&19+^r*^Ffhkrl(CbVY5#fNSxv za5ni8DZLVCX;D1M(9||al%2G=ifEgKAk+aw&NetE#vjTvjDd&lVlNPkwKBlwI2~QD z-R7sEJ#5yxqRD=nv_s#IJ8cfZem!s zHWQWEYg7_t=FjvpGYa=E359#`e*pj2;Qxjtl%BB6M+Zb%MY5SBCp_3Q(7$!IOtv*E z)63IJP4iH}*xuiMuv<0+n-B0}@3Nh*&kiL~02Efqa(h&E4t9nhr3r6XiH-*5zc;$T zV$Oicjw2YgB+b4UWPA2)Q`4SVdr1fbGBJq9V%Wgz$X49$6b4o)cTP~jecjrZfIn1K zR>g3uu=&G2B~DSzTxn}4oK!wWg>7q%&+TlbKa_;DCn5u@Jf#P9^_{6W%r1@flnG{c z$e_d)IbaR(>{IL~W1I|C^Q<(&Nk8N1HG7e~}>2 zqyGnpa%uH8DF$;bG)GfUn-H%F|IgCplBk4PJ_hJA!5ImytBrV#+a$B*bjJ^ejj2IE z*X~}Bjn^JsYz6V&_EwjwifygiS8rdvdPT*;;I58EA?z~nwuV@5!S0YnJIvs@V%xmd z75D)j{H$JKLit;ODn&x(rJC6}%bHKRKY^(Pa(7`mjhgIvu|hqw>NCXz7- zhR~sKtL6rz^Dy$DbzsGb%)*=6Z}%nS_MGig_LUVa>4_%>%8G%IAMJ{YuFCih=Idp( zqN0~!vrhyGp%AvbVC3nUKQQcgg$PcR%)Q++i*`tv3Ub;uFHkP>d1}#4JdtFWq7?4g zk=pa;vBUCG>S$h%S+EXsCI$|J zH?^ro)VcX0=xL}tH8CC|4*dbV3z$MI+%pr~2ueeD;F zCP+Nz^c$|!n*Hf0r zhAoPJD5$?5F4h$m?F4u1U_W0Vnqca-^JCSE5fhNoSI~@JuFbHu{J(njR}+R%{}<}j zNX#qIL8iXkCL~RYsjW;0g?6f*Gs3jkbmakYDjZZq{7liHYaFtq$I9Bgt z1K1B984O2K+-`<3pH2(RNo)2}L6}wbn@jdng4@L*C-CZu;;63sQ;;mHS-jmPyZDDo zwj7Hrn&+~bKPAt)+CM4JKLuRQI2I+bu68pz8;Avq!|hBkD8u}Q5Vw5kYU~vRH#9(w zwpR!IH39$fLVr!Y#a!)SCZd`^!kRiSVMA3~YQZB!802~D$uHL%^?UX1059HLOi}3P zr450Q+JHY;j=Dg>{S+~a`eG~;sjTv4RlCeb`2}@8k7)!xrkEq1b-oZON!@ z5U>jrumg>&z>muYYN~xm3`PDBlX28nOcOFNB_!*sZQ*kPHHPzrbhX& z^*GKR#9R=>236}LP}*_8UtM>BheM8J`-&(s=<}0So?rJ;n2=W>fm9#sum?L5sv54Z zs;aK4@}$Y|-=~R%Cpd3jm=Aax$XSH50523e-hc=W4&jgb4PG)>z|UGSeN`+pYf+e^ z^h1JibPuO?;xWkTMtGALAXIE?;!ih!V&Wg*=cW8f@F%5%h%`MJ{$vGgn4j13=k5HN z*JLa~=G3D7))T}yhO-tu7W-t3$K@#83MT3xriJF*6-X3fH<`U<@ForX@%QsqtkCsi zAn5AF>U$-Z5f>>w1}rl9AbOD^#abvA5iz2PrnkdfW_-P|1W&ZYw%aqaE5iM~__hNn zdn(hEPgj_M6$LcJ<2;#Lkizq3YQQ=^r&`IWif!w_8%`;8fQAv49F5X_>gJ?m!C5{T z<~tUy__j691KiHnj1i1?C{?`zC%Gi3GFc&&t$@;ZNo*!jU0p1)hDi}wQ!H}1MlLTB zi6Mrhtf{w=W=ON$qmftTs24*Vp^-rr-UH;oK%)6kEV{-<*A$IjW}}xCjjpxPwZUle zr$$*&Q;Y>Qby~{0sbtmGYQFp^7F}H{g{rNst}Pb5%tkMp8Xc`)ZldL5YHCDF<)rx$ zh}N+f^RCCOC`GGXID%>q(k%?(FwKfqjmkignh{tjLncuZECM5IHL|u?WW7e#7mIXr z4VF#NDoM4)BI`A>zE~t~-?G(Nj4QP^8Xp0kGGE-nWm4m#NHi|OGST=b7Om~2)@?7o zHd?Qd^~EC57aGL)2q3oia=Fzd^$KyUsVWM&T)2byxmYtv65|RC*?^+N~7BgX$^G!N5r&fTUQ(R@VuMhz$~G z($*U8SJ%}Rt2hiyh5K*=r8lXU+tka8r#AJD!EDjg^)_|Us>gs=^KK}by1}MyD31!xXAEezPs49j5lQD^hTcmt-M!(brJ0r>y`cO#;w`fY6 zw0K&rHC#egj4I6L6nC*&<5goex_I7(r+7z%M8O2hxa?VpzT;fj6(>Hb~fo~aH3LltpWEY=lJ%p-d+>58wAHAH?Hb34Oh2^JSMhH1BYF(OUnz4%%;&SQ5}6p>KH z+c5cuNr!9sup`MH0Icb5spzU$BS!z|3N8qCBP5FuGwT;Vu9XN~{B@Uo-Noh#yV7gu zku6nI_U2&I&b9%u@4%3=_&navcAk5!5X}-B7N2LYgc7hV4D6B5UXhO8Dpoibwznix z+~w?@F@$tY2}30T!5Tq;rKMO8y}rddtaah`C~rHHEpWxQ=IzbR%!=Dwa96tT_7Jmq zD->>)y)TI3mVDi~MfCIDy29M>M30zsU_TNHniF}>! z#}co8D}GnEV7FWgKDgy$^;<(EK>m;}6~lQ;BIsSVy|=f!3%{_sb*14(lRZ6fhSeP! zNH1Fv?rtG)8-AMMwk$qx{o?bQgn~GK-!3~Gw)G5TyLM9Y~C$O){8IJAM|E39ue7oRlA zQD+_*2~}K#7~EWhU(=i-@*Um2R%3m2?`Zj zfzLz}5Z5i36ssy0Uf$HPzLi=oxFWp`TnXsAuFAAg4Fwx^sQIoIh(rkHX=|A#r#%Uf2FhYcSw5xYPi!U=^-Sv~tsfl+n#RW}lH8 z5w`~ec*P~`#V`TmEr^7<3oaynpg?|V_{Nu|)K4-FV96T$DqPiro9L`h?r+f;o)q$8 za7m8ei}TcjHqk&f;qwVtgeA85@+N)7sW)M4iUJ)jHSj|fQ0EdCPY6RiWQAa{VQ!oa zcW=d!_juIs&h}A$cVSnfc%QuN|G8vDDL!1-Rh&P6y}mH~=v9UOAim#~z_TQ3(v_8n z58^51f8ff({Hxws=r5J-C55Yw82BCP-lFcW)wSur7bxd@Hx$q3Q&$uZ-(Mp9zPB6r zaJAxa&-sQ9aH!7>fWvH zPt|=!-8nZJeCMlsvAPj;uT}TM>fWO6chvp0y3R)po-@_0QFpbved^wz?#I-2 z>i$mMIUiTPsoSdVRqAe2_ao~5v%23__m}Fvr0(lJVelr_}wHx<63& zH|n1FNrPv;x^GhV?doRL-K*~B)xBHYpQ-!2y07_^!B?a18g={CeUG~PRlf7;en!K; zsqS~x{e`+OsC(*72LE~LUa0P6>dyJLiLX*O*j|GEUQKtky21D@$BEyj@z<9~|GwkI zf8aRrf2Z+(UjqN9juZdc^Si=KW*C6tJDqhzg)vlD-nO@ zapKR`_=*zg&p%Fl&2i!{I8OY^518_;4CFrz1?7Jm-Wkv*Hh%8SCjCwSZrmV$-lTXh z3gEYJHhk`Pi>L323It66xcbZlFZ^8;%oi)6IRL zIDJ;XjRx?W(m9URPo?6m{wo!4^#^c0);yCf2 zK2H4Sj}!k-$BDn?IPu>&PP{Gm5v~7kDZH&;%ePy8VB{khZ~KSu2h!Q}HvFm|7Rr~6 zKb|}Ew?FJ|I*p+WZT;DbTB_l14Af(b`db6xZ&Cl{f$+Dfzf0YpeBQ`MO#RoWd!4#B zsQZCH_-E7~g#U_$e^p&e|845eXg_Yl4`}$20Q^tY|9BvLLjC`x?(funR^3A%H081M zpYRXHe}=j?-?{2PTV2bCbJTxsAUv%8dUY-S7WH?iYw@p9|5btTsQL%gwRncrzgt~P z&wJJXq_%Gx{!tD8d;tC*)&E6xEj?dX|2G2g`_z9|ApAb-SJ&eCx%z*ruBHF?>M#GS z;kTvpO!Y6)da>c>Yj{%t{!;aC4uoG<0{-tc{Br^Lo7I0*$4xfhJ2m`}x|aU?1K|&< z{~>jcsB8H!ss5J&;nO~6%Kv(GE&O@vUlj^L@4YPY;B@ zLH$Ae6&k)&?Rpk}Si>s=c5S~(hIuJgh z{u=_}A5{O}2Esq7{;#TQ>HnJg4+Y@At^NlC;SZ_b_6t_eJfh*h3&208{?l~+X6x&< z>OWImi^s;FrQx@!oW1sorrt;D8U^I9)gM}5{0r58_&npkK>byVjQ+G#nv$MyBcqi~czm+iS%;Sdc!z`IU1?f)Wxbg0#CCjmQ{>JfiWXjxO${TT=@WoCT51_pn@1V78!VkRI?ZGd+Jh%F-_`eRXzX5JN zuX;@--+1DBeeg>ziA4Zk2JFJ)iW?%`-FU+cpc^8+y(#Q=#Is(hSSFjo`|@~(5fp+k z^4ZVlzHsHY+`_LRe8&=(;?p;P*M8C%oAVnlf^5YDjMyz8h;czG7JX%_0AH*~5d^ns z_9if1#?}gMFJn*!m4Mq@V@%T(=?>d^4M*{e1;diVh89d3%#%K0o()&{LBI9k?#y%)8!X6CiI?|ourmY#WlI_DPj+?TwG);LQo|Rb($3ng zSi;{rVCv2W3xGb7!Y3G&1nw!|Gf#Mzk@vhCC|kkAiEm7X!Z^BRUR6REfxG#GU0_3z zC|+0G&>h2LmN zk<9kuJy7^?tFiko;ReWEe|NYK4^fIZ%R_TULBnn%DT@--47#IPJfSC93gYnA z8ZuLpkmF%I64=Y9O*N1laOu~VVMMs4O)DmV1cgT4xN8uX|&c{4d#o|o{HNX{VDja zk1AQ4gX~$t19>PpUIOu<;GUwSybi)ZJRlgSF2i>M8<9{j-Z-4X3xNobMu*K!=7k?m z3$Zr%suo@~h+$t_9L<#A2*ta183? zy@wwqZgV2JC4upX5n)0nP;==t-%ggdI~l}olhTN>8@pRch`t@_igsVV03|``NRN4L zt6=oOqMMtr-4Ax8^5BveVh4p@2)a7cjhVz|@Zm*EXW@BeJnUs<dz1?B^U?>5|SG8!_|28 z3ALd3#OFoo@X_Gru+WYt72J4z@O-(g7%B3ko12Sy;7z>!1^pTaj$Ri+UvdjZU%1*8 z=6-1w7!>oVaYSKoDBUeop6yVj94e?rdlAwGB$D76wEol}baPwrx*5l#Q^3Q$n0HVw z_uvSKa~a+d?@i!2GP#=n90Z*c+8o=8;}U3NfZ+Vfd?cfI5eE8{dJO7^acDrOKzT?* zq5UDkMJTH%WITZf1yEi**wBsF)zD;xYCJ>$ZbjMm5TSjSK)x~Y!W)Bl^;k0NLSLJP zpBeKTicDU{?m`#|!q^3?8&FHkvh2{cw{Fni?57V`{xPgf=t?&?Ct$y<6utVrGc?c=Qb42@rY6%51B z9&WFe$9cM4pR|6BLUZN06cQukb379P&qT^iNFuhyX{IWcS~TOokmwS=puCN#$Ga45Z!$vZoPEo_XtfFqNgyGst$d2hb3PW@%4mdIz^C`|gh^o7*Hyi~M`k_QU zFWJy7(kS;*>XIX*a!_J)$k(0BvZtyium;63dE@lQ7m$f@e&Pp0C)aNS5H-lD2om7^ zLKMiztO-C*!wDnCOFCi{(GarZ5xn-9#z+CLi1kqcVV1)(34Osxb8d?`W#;DI59)M! z&((NQ^4LtJK%2!#qcSYRbcNCjlq~Uf3oIr{3>%ahfnyiQHZOW zQof=4U|zB@7$TzH`R=9-!5~6j5#qSKCl*QdZ$%bhHw6bz!EjoIm!%MlyN5LxaF{dd zSq)=XAt4AHz$Bh;(xboZslizrX?ZXYVEj!Tg|>)?N}!*&M7E}#HDZSgMM4rMFK7{q z2W{REK^J6AbiqgqjhZx|V)^u70FP{`O=Q;5lY@!=%rC#MiIrJ`TNVGE!YVZ{sC>PbE zB8tLkzHh@hmuJtj!F*{QOs(3F{ADJVq*MLIoV9J1MjL?S4Fbv7rzp@`tz)O3hDJkc@%E@7s^%qRILUl?`ZE0GQB zID>UeuO8zwzWN5!UYWDJkfgefe9-=xO`$g{W;c!?XrSm3xkHa*1<{11aUNO6A@OTP z+z5(632G!mV!0VY8c1Ij_R?e*nZTqXh){g;z-j1Q@#^c8)Qg1h&)^yLhR~niJ26x9-g1~Zr) znXhb06~6|!<0SQ~LiMMXnOF?#C(@+jLr`Zd?$rq_e)MoW;*E4S$6|xFvi&8La5Z0W z%q0lS9K>{wxDXeUCb8O^k(Qc?dWy~=`k`xKHEgqH=<{^3syrJ3vT-UA6G;&-H#FM?y9;IyerVj{i?M@DrF+bI zNLIBJm}erHQ{gE|H^lU;U_SJ@frDKDP1I;#$yBNwY5~g`q8vpAl2EmM(xUxdbkUrD zVZ1*8m7f z4gn?DG<)t9vsyud3o?4}ep%oVDpD({rlZ)3h)}QCt4T1G{0-K-hd_YR+ZEq>OQafhvsa z64Kyh;grlpu$I&C%UnPy5#Gg=KCiu*(ieousm~|VOk&3Dsym4lxR@aJ`N(>idbxud z$bFntppL127;lsYuFudVJdqs@9f+jxp6{w!4^BfkQ36aB^(P$EkuE9?3ev3H6QFlW zWvU90f>7ZceMttb6>N*7Uk zOc0Ifgr`=N%UK{6GENJGz_`GNh+wYqpv@buz?zm>u%_^bq5-lvC1P0rMWVc57z?_R z>6jZ(6NZR|VJAm8#vn9Z8w4goIyg5B9eyEcZU7q?2CKAf6qwp{01G2ow9jZt$Sh&u z!*oj~>aLeYcgag4w{SFK;(36*-XRMaI!xj>%yOtgDsGMBR6UOU9?Oba_DNWQRu z3ym@)Q|)X5HrIYyrhC#7z6IU9n3g3E7~5s%FJh&Ww{sEW6FVDIN}Tvy-7Y!#!qZy^ zx{@+NG|*`D<`M%py&J;L*@Vi7K&DNu!axf!^DWcD1+HKL#|yE`GF}L?kX23wVbKJm z8l6dVc_fpRd6e#ZcGkwsBhSVkx_q^LGZcyK5S-$UL6d|)P1}tY^!LTV;Iz+hk01<^ zyIlj7@ya>{SVEf&li~Uj@KA?HnSR(bv7#Y-19|;;UY278Q9^{~(2jM74|(0*Y76=~ zGp8XW9F>u;`J{$5U&%q((=e6v2Y|J*eMCX9&=BVoO%fQxmifde0Co^`?K;vmq38^B z`rnOm;!P(^cSF`_0tvO4pabovC_FC@;~m1~TOPE8p&7wOQ;r@5`j#H6hSUEtEu*bpWRKK5W-Kr5ArO>ulrC4#UGBZO9tf*mW6aT^#BZ+70W_vPx@Pf!y z%3C&3a-qz|$+SSZ?OJG%PE=HZHgf}2H^Oh$D@|_J+D0GVqcw4s^1=lHYW=QctZyJJ zgHd{;!`SnJ^A22b@38?m0^yBMF^i*!FbDR3LO~NZxPN33L6X$NVtPD8S29v z8**a`0nuNWMgAVCwkQW<(jtk_)Cr8oY$QX_!m?VR_C-uSv3o@J_4wlkXldpJJ_SiA zphMiD)-xoFBBt2-o$1Rar03fbi%I5J{m(DIOHukd{tVaPE0(YZ7hdv&0H_7?y9N%_8W)|7dp8>v)QCg}7Fw>d>ev}o08`+?$3d3FXt@-z*WbofAx zF}e#GX2hWLmI0bs0L%O7FyMs9IbnOr7dE%4lC)z;&Nk3fOGCiq6?Rn_IqLin6m#9x zL~yzxT`(5h9P|TNS#X-6$TBflne}WD4*Xy#7$z~(sld9@)$6hnMy^$|nUT@**?^I= zeAYMUM}zw@Y(jc)@BcFWY*=nSV5W0FxH;12u^0hjapKcr<)=c&)5(VVhK3c@4GmQ$ zy)UG;O3CnrO$|{@{n%5=9gNh6Jd52$;do=3}{ zc9Epo-PA1ZQ|h;<#-}?@nf3VGUfn1EjKYskpXD6GpW`(8puErWSDSo}9x(3s^b;)n z3=hh2W~%443UA}ar=KkFJ&tpN4Wnz}?fHq_2dCh-ApT^|sM24d`B?m==wCI3o-#{+ z0bc8|=edr$^h|qM`t3QaOI&(fc#E>Ywdb=2@3rNfZt)kuS&u!3b(0J4;xEe2;Q5a6 z=`MVu#p!o9Dcy4pS$bUfqWHTMeq#V0{6Ei+*M8e`1os8tdn`b}wdbL1u%-X{67myM zdY%j5hwK-nKX`u4;vcdZ23&iNVBxssk6T|w<+D%ev1rDp&yf0^Q$j!orobEgpr#rSj=e*v8J*z*x1E`CEl>Z@pZubD#s%$F_imMQQrPtP`mzuBe7 z<$qEBTwfZ0QFwd)>#&R8$UmyC`tA9b&H#SUQ%wCkpHaLcF8oX<1WH=8x5$h}3+TF8;g7iRWzIZ6^eFtJ z0r;;eeA)fBy`1WtBN*G{_o@K=y$avx!k_4z3&=9XFNu6VZ`AXtHfVhMOlLkk*O!1l ztoS|nIZg#UXpcqz9-9JxvUA?cz#mokL6`p7&H})fqW_Nye~Sx$inCBCG5q=Eu0sBw zbh_cAC3bxJY0jdTq33Lcf7Hc)s*4IhS`96AXxwep=Hz|Cd z3xArk1n}o5{*Il6@N1{g|0*Z^GW5Sg;cs&BpX5~f@E?9xA^y0+=Uwa7@>~@t z@36u*{+n0cD!@CA;s442{4RwbcHw6`)quA0e>hOy4=B8##1F?OHE>JG+ou%%W*7e) zXPFQGeF1s+XN5oF!k^*P0=|^I-KX$n-?8PL?JW1<|9YT)Cl$Wag)ejJeDL@z_-D!|+Ja$i7x z5(>|}`8Phj%y}c+Qv4ZK_`NRvlbkmJew~*0wm|*vQure-{9LCI@K*ls48VU%;pcwW zmiIM|IRRkI#a?6JBHZXamQm&k@a2ia&Fw zz@O~2BXKGC^Ax^PUC!6u4EP?cbl8-8eEKO)r$jc&Z+!s&-YNJ`asCf^Zv!9YRppOgLV!R+2yborW~a23&@zy| z*wPkoLPCKGB?a1|Mad+YBvX=^ab^OcMUA#1Dzs5?rCK$*RncEvQ@5_{ZdapQEvsFP zT36JnQLBsE)u>g`0{MT>%e`~wnU~^cfBXOJ=l>rqH*=rwbMCq4o_p>&=icX;TY{v%vKLS7|_qkb5uV){3|_tD1fh1e80oj znpb)FlY#NQT=7R7{w#B+haV5nzfSSv4nNmy1K!&6RG`1>6%Po1$ezC%e?dM)=gaK{ z_-W=fz?agu?TWAcrj_ShvmN-UYX6T0>{Yga{&dqS{NUfhPekdqI{Gg$QNV0}p9;`_ zgVG;#_?f27!;c5#f4|~K9Dc4L53iIz^S6p0clc?h1Nc($)FTD`tu^${pi=VuoZ{=g zW#u`8X6>4fOY0ir?q(^Gr9;R-U5)dH$jZ|8d|;@&7^r zey+Kz48FEb`gzRpGu!L{-ug372l%-}@l{V-`Ba-8;H`Y{XWr*Z#oJ2K|6Y74#s7_p zk2v}>tv^O#Ou^@7#qV?YT9X8-l>Tfh;Af^u0bh!r9f}`z^v^P{WiDj>S|6|v{g(c> zt$b#fH1J(IACCp(d7t8!Is6nuZ(}GW&$nCp%mev{b4?b1m*Rg&@!gL8EYs)FUmLJj zk1Br1;pZF5jahzr0{VPZ@na5uzS-sBp9%E$XNs@;4=bN@O+WBfK92|HmpNB(tqwom zP~P0~gFo{==O}*2;b)t>86o3!I6(h$#g9AuIp!YV?R*>y@ZY5PwcoM)&oz61zeLB^ z1oUC6;`<$bhIt+ErTFhq{IJ8%GOzde*&2|4pW*@G59LFUD=n!H_Y~k~n}IU;`xSrO z@iWi75qN7Ko(;(7VZ|>yX5};6yvf6l2ITWu#kV?qmAMyqEB|K#`uPRL4?FxEb06@f z=KHr5Kj!e&=FPxE{uL1_Ud1y6|4@AKPL!qO`EkW> zb@Z#vyMVX$;ZVR{eYSx9TywAt{ihT^;ON(ycLQ(bc`_iMA1Z#t;cLv_c>FX6^zGM* zKko1|&3k~i@;CR8H<$aIQhfb0R-W_BAzZfj$^d@u`GUJpOY$Ec1m4Q0DuBOHaovvo zbn{-|Th%^S2k`a!`GU>e2Yd`j@l&jkT~4k~`c(Vt_6 zfw${vcR=3`D}LPJ&o++&Z|6%x06(I5W&!`udirUUrS##eieENn<$sp>d*Dm?GshI) z>hROdW89d?XCR)5=dUS#+~I4@mw~tP$zujz z#uRVsNuQs@ms0ZoeF1)sIa&rk?Ij||+GnjiXPbZH#)SXMfIQDre8l0;GhgxW!vTG} zR`CqMKeS$d6{YM-*xFqA@&bIVd5ZBljQ`iIir?q>sWt!30O9}f06*;o^lQx5%Fxdg z;AfhzGhXQj=Hr`+;77~Qe~01^JN|3TH-Imt4U6F0AFLCE`$HJ;_H59^=GE}Ha9Nvc{ZT`&niCR@U`YYJbZIty#83g&s_7J zGW?u%k?_GJ@ejpE$I9T(Q+%t(&v${h@uQ_<%f*U6(YRIyGrpR4u7`! zJ`)r9n1KG=T)=;gc?S4W0oPm)^RAhC&(3cAQ_X)*^j$8gK z&3_Wm2!5ODkHrrc$VblK;`$7}P5-g{e6|2T)BJ)lkp)!L2lV;NicdLyW|?0C*Ua}6 z{_`Eh|3XXJkNy?Ig#V|!{!;bSko411qV-PYf4Qym%X1Y!c6VT!25<`~i3nj}#$q{zLI~zp(mzj`?F5`oB^9T8E!y z{=|f3e2=MrV#n89EOZAPezrML0#EnMRs0c$KhONR1b#B=mnweD;p@y_O5iI{zfSQR zwWR#d3#cz;Z+9rJ?w3|R)67ZWt^Hpdn2%Y-M;v~(ImP_Q{HhJ;&s!AF5d1^)@w7+Z z*4y&I0zBrU;OAHjmDZj-qWFD|pY!F1uZ)b>^8tVI-xNRU@H5RM9!%lCA<*Aria+7- zGYpQP7guKR^=twEG9Mw&^*;ah@8=cY@+&L<8K$xfeX~GtgC2fL8GN~UoKYqTOEFmsRBP%e@sCBFH`(Jho5Pt18;PF*%QDwD}Kb`XPX&} zm+`$OFkW{k-u##4f4(`(!!Hi#XF~DI9R31R?cpyC;P)x+u)|+yW_tJ&0snKq(m&zw zvrUbM-xBEW2NnNuEh#@d3;0s=_sfd2`b7DeTESP?Ix6ja`G(@x{@Th%o@X&8GNTy& zM~Xk>@ZxWj!at|@;|@R5%=P;FOu#>ULGiV}vHaAUd5o9&cswA_nU@IeTrHohm|^Av zUuwO$PH`=c{%mtL@K!(92KceRTh#CH<^8LhmHv>!PcwC1f1eMm*YOilEB#}RevLT~^h@bOyW;D{tvqL$^UKI5tN3LOe~!5T_*QWTEt^h%4k&)W;hjAx zy1su{@xu;(wzWS+@&BawF^4bjKYUg3Rll|U75@api_-s|;u{>k)?Dn3*Ve#%d`|J* z4nNZ@0KO=3Nb3c~@AL4Nc=R6*=<|$Ah3{d9pKUJn@FM~JyioCD4v+Ky9{!Ply;`dH z+TU6E%r-Ce@DBz0yGrpb4qsb#ytXL5-{I$##owj)!wz3#7J2+!8sO({#g97tOmjKo z#XdL%)j!^<_`2WQ{{v}n#IBoQ(P8UU*4O!yvi_*v#^55GQupQre`KiK}BZ?5t1tpWYNQt=TFukl*Z@x4XyBMx6@u4VcW z9^c?U-HN|kOY&E*1HP2K{TszuI&^+%8Sr*}vGun6KLz-C=6b;w^>4qR__{w@`OGjk z0AEUf{$24Ahd;;MScdQ_CM}<= zm}ORpeB`cxd|stEJKm%ZO+c2Kze&XpD?d+GoNbyteg*^mJ*GHw!s^3CX0?ZZC@^0d z6qmzaXl??2lKR`t0sh~j{Iodwb!Lr6fAK(mzW1Ao|B#k^{vUX&|BnUc`)3q))Zu5F zb!G6+DsI5>bH2G5_)_z6(n68TQHQ_4yh895c1)ZpY7zvi@O*(jRvC*=(6h>D#UXerB0l!A~jtKE=OV z%O@+&GMj+6_P;-%pPy3PnBzy{UyN5#`|x?iNB&~vUuU*>^p^$Zqy2r%eutO!y_Em_ zU8O(l@bk^>pkGRV#uY#A@HOTR;7i#PQ!jkm@uvB{75Gx}oUi!vwWR#aE6dQowt)T& z^D5vGf7vGU%2kSQdBMuF#@q?KosUlk#%q(}2OWO4*~auGzU~OvlbGU19Ny*6i;izX z@l_{%?RIQ&_ro#{u4v2R8d-|z4jm=56Wcx?&r^J~QqJNz6I^Y}j! zz*j61zQ-J1>v+JPbSr+X!_PE5EKl(_QYufb!U*nC{D8yHF})uC zz5xBVD}LDFr=X_-DnBdib=5za~KcONy_X)WrHu`xhDDt^9+N;AzD#bNFhL1->;1)bBr0 ze7D2TG=0D?(Ch01{Qp+*Lk@qg+3E3rK|uc1my6!m=AW#nF}up}e?b9$j_GH-oxzrp zlnshM>iEI=f8Z_pxqy9cJ=mB>fX;8<4SXs4pD4gjHTMX7kHyyqK)fBtu|&M*D~`Ue!(?daE- z0lp~nt4i^fulFl{*x_fHH+uNT1NgsF{0WDjW8MUODfxU+@%59fe9klXmcjo}@vRPD zW9|dK=;DY@{95rN4nNntxeWcuSBO53JN#_37kI00ErI!Rw&Lq5E&p@OTRePSV7^?g z__Ypyj@bu1^ppP`3*eg+pK^GYUn;s@+@|;uhZlbm@+sABxwy6BM3Q~K&<)1`|5A8=kfQz-7Z+YTP?Q%i? zJ*IR|IQkcwK_({pzcnzv!v*xEzZkEg@*h!r!&EEJ^7v83_dEPK=3O2?4+rMgFBCuO z@RIK>6)*fn@u6v!pZVt9OkeaZa$mlDwkmF)!`HKai2fEGuW`kNsx1A*W%08Y%lsN} zc;|oC_yc9_?d6I;;_%bVgPwe<_U7|{wc?LE{A}}H4?hyC&%@gqp#S%ZKkV>l zo4;ke^mjPW->)kExWmsi4}18I0R1t=Tiv4lua5vR@u9P2r}%m;DV{nE{D5UJP`+Gox%dd@|Al@4DPK1#e#G%}midIoPfviK zZHhnc@Up*IDjvB@@uBLRd^FxEY7g&K{8oo|`yEB`4=VnM!@GE=DE?8!pK$oI%%{Bm z9t-Ht=Pds-E&ub(FyqDkr&K;vRe}GWR(z|&*P2I5;HmoOiXU?LdFIoM7k$nKbaS>`d&FSTA@r1(P)Khu21lA;~;U#{DJQ?2- z;Qy_Pud22D=i@DX>JsV0yA@Au)91;GbIjwo2zx@8-N&w9e^-F7GXElYhxPwBqWBia z&rI_<;9Gr=_xF>EA9VN{^Z7FP?ZXos+wq!jo&dg8@vQ-Uh$w!*;cLy8Jp5w;`kNGg z#Nn&Vmp%N!0R3%>H*<3QJn7;01oS_n_+<`1*Bk}j%70IQpM8q&cKB)L-+)hOe^w$IeN(bJ$mAl)hWw_R~t z9sN1x+su#X!$FllRndRD6mJPpe(XPRp_F}oli~**{aNNaW$^D({E(KkKXQy3)_AQt zFutEr+)+n=y7{h$e@yXQ1u7$oKjH8*%=bKeRY2dKQhfbG|zhYd4c|RD!%p{+uzydXM)e;!+zPV_>{v}o1d4#zs2(J@UzT+di+!d z_&KC_+aCG<$IHZ?*X)=$Eor|El;_hsXJUkN<4}efYNG z4?Fxk^PGpz2FB}GiXU@$m%l2?(kaE)ooo3okDqmw=yQw1&oI9!)8F$If5_qInsMOm z`qC5VZ-e4T9e$4aE%#UEi*G+^Oq&&d!r`mT?>u~PeY{2Sq4R8iXPe)9_V}bd;SMjyyTmEazpMWnqxRB4^ zSpFS;zBvJWD+#a2=aY&bcK9jg&%l?m&yOkon8VLEfARRg@1FL&R=%qETzoytyukQK z9?pIVT_F8jtL2jw3(QH6{_=o4pHcdU9lpk#^6*au?89@4Kko47nA0BqNML-YTrK(^ zy3ooW&l3UP>@?bPE@idiZ7uEBQ2Y-4Uu*09@&d)TIQp~AqzXca{_hLObE)F{9sVp+ z;olI4nN1#0AI?UG%EhE!`GTw9{r~S!er_51_bL9Uho8rI;eY)=yHyD;->LZ81(tuD{|CO5 zJU^iLWez{foDIC4?~eq=>r;wPIs9yM4)c@8hWqkG#gA%9{!d*Q{I3;v#L=H=&h_{? z7_cX&6km0T?eBT!JP$t}(C2esw#xBFf6)HX`M|>-=3TJ!Yq8?jI{H=S0>R_o+{fat zReZO@pKUH=q}b0x0se1M{9%WmZC>Kx_XYTm7VtmaTm*cn^|43s#~l4?6Jq+JKNsAa zuRnJe(62TZ3qIFb@2`D|ue#LAU-Gx5?A4Isw>rG!hfCrALGeQlUu!P)_QF%l}mKQd}q{&z~zk;_%gGA@J6pd?+x!&s)4ZUsP-Ag?~?q zxj&~~yNbUIIQq3_5#vRFx&z}?r})Dj{&JyDA~CfA{N;+bEt39U0eq?cu2B4_qhD>Wx;kn-mSRE zOYQhde1ZNJ-zKn0^zWn+4 zImI7y__^j9rf)UQwk+kh6yLDW_P5%+%;Ud0!2gdG-|Fz?pI`g6;>R3*wzpl7p2k4)t_yLEXYHslGg8_LiQ2bGcpKfmS z@bv+H!ipbv_$ss9!w(1a|2oCjEwcTcWmb6jM*{e@ijO#aty$^e2i}~o53f>uzr*AF zzlT2@kWaVbhaG;piFo+Rz=Ay4=cV zx@q$84+Z4&FN%*i{7lpA;U5X~_bJ79JNz88+QSbA@MDTU5!j|Av+dcX% zf%sz5^{ZF}BMv{)+yQ*4_@Y+v;|@Q|Z1w1$42;*siVrQZ{he)I>ERa#`g@Jy*E;-6 z^C}O2UtoNj6hGkb=b1Y_{8)gW?TSC@;kSAC!2tdq#aAu0{LeM72ENpO%An#~9KOc9 zrVM^a@sDar`(N8Veue__`HJFF9{pAiUmcLo_Y{BF;b)pC@YdTH5A^pJia+Y`vrHTC zrTm}2DE@@QpJ&?3;LpBc73*6=gO%smro-dsXkfl9QTz%mX}>H6yp3lc3-Eu3;#wX3 zd8X6DpA4)=hZQ&K@E4gb55F%U|6ZkEb*1IM)^vOL{s2F3Q2a87uQqYUOT2b0K>vW^ zyB+>Ka~JTX|mNv%|v=1o#lvEdN*8{#Ke^ufMec{-3t|JNyij z@c7}u_x>4E{Gh|vm}D9JxZ;N$eu_zz!T(9|V-8`;$J5H-Hqo3_6Yw)pEvARe1pSRnKzcfze(|}4lnU#h}f zz7g+}ytfSgQN_0?p2q9GGWgFbe!$_Unm3ohe_rv!ioXy1+*1ZW>tWHiC98*IRxh|4@ql4#lrk{QbzclpC*6?XMk6$`=tH zDiN`De)+uuysUSn@W%`AZhVW<|GnY|U4Lhpcd>qkFeQ!Ium0F%{7n^=%U4mg`_S{S z2L;cH<>RS(hT>;yNzX&Qy99mG=|ze=>iDt04<6$6=$P7btN#s(Kko4Md4~|^SABjc zCWt6Lbb}pVd!C^XPd?^G#p6%@(EDj0EYaT(5L=7j-&+D70Y0kuh~sCrd7mert%3DA ztN1-y((_gidH8Js{M!|G$kDGh@AvS&dE-@X5Hst>pN z_N9*s{vVYu`}@dt`i27j%rnZ*2}j@Bs|b^SD&T+qr{b3_xAL*i*9hL{iT?hx;#(bl zvU!B%A1N9Ff6L0#;pO?4)*xa1{+!}R9A2ImhCM9$`GLx(YK7(B&ff^*j|Acuvtkw3 zM*{d#^yhs{$*x|)~meRMCia&9N_;rd8t+euy z^=Ls+Zj9Na__b$Pc%ln6 zeTj}_dtYxXk&SgM4yB^$XfOSCAbrAN{u)}&#mW`ScSd{qVk@U_j%5WH%f{07YABlw z@pbUBITj1G#d?yvLY?3v8fs7Wrg{Jl^~5t-Vu=aT-P}~TartZeVj1cv8i^({yJG2; z(;G9HSUMZZcE>`tj@rmU(NIfYHj8eA7KRt1K{N)eBNgh1XQFLAu}m2n+|TA@D3Qz( zygi!kAZ|$W#Lilc89D3S7}Rh+LYNbN$LYStKi8J-s>B8HdoLA-xdV70-5u zNM0*LQ4j(#E1Pwlp}YDZ1&hRZb;Wna5{ng%@7d^%Sc3Z677JZT<8V`Gc}JW?($OJ* z(M1wWEYU&Yq(6J3V7C*a7u%Ig?*Q-ZJ$)T9NIKiiOcR|o%M*RQZ6sU>F4WbNY>W1U zqM(tj%XH2)*J2V!MJ9-qlu8cA=I`z3qi&cXjt_Sw`OAPG-#oE{Fh1g##FsB zi=@StH1Nz^0&EeZ-LYr~NO#6*R3I2IzB?4fsP$!H9VUD;brUp`>D|KOhKgAkK^(C}dz@&aQ>1lh2)|>VjzzPf-gqWMx)S7}OR027 zGoZUZ4sziQ&7n3(Dc+SJwaVxu1*^{`&+&;Y+t05P6DnN+kr7D6|>?U=v{Kv?*w-r5d?F6kj9 z6cItC>@+r8x}j7VsAPLLnFk08LWbNrZX~&f!gs{_v*{=X7hQ~k@*OY^p=etYz0Y=& zl^|WnLZ^FrLhaCsu2^VSH#AfPOfqG4hq^SbS{LTY9*<(=bpX=DD}6k=nZ8Ua-X2f( zWrzhfZ@n=XENDYVM>>Y75AHpDI+pEYiv?9p_qF3ojBOXqNwRg(bUM1*cG$ZwmBgUK z285zL@hA^Jw6LSEx0lqei_KofZ^tT0v^NFgL|O!`YfmO%W%@9r=zTicPF4?fm^82w zwqJ1=Xh@CtAR$NF+o>0ro{%EigftT!${_Pc62#bp^+af6+g&u1cE-X@m=zhQ92p=Y z(-tG~Vj9KL?XeVTRoiZ!QC-n=TNDG)p2TFO8Dsg7af>ISsZ=_dO2=t_M6=m+9Lh}d z3^&nO(8rTgdlcpuEp_%KcuHf)lW3Mk5PC`i%hm5<$?AsFu)dCTj}0ky!$T zUa}5-Z5gZ@5CnP%sWx44MPB>(?o-;;orGfc#-g-HL8Ci6F&Yp?c2^8~w{G)BA`rUr z`sRQIOtgAaq%Y#fu z)`|r^$wb#(y{QE>9~SJyVz{HQU7ZiRLkX<6q)k1^_8mM(wBjwcW8-Szazqn62<%Pp znn3PFs(W`P-i{@JOpc1r=QoZ8AM=}RKmtlmol^O#l_6D#rPE-QCK!zd)K%66RD?VA zTbK+~hpf-NQ5Z04%grB*AS@EiL{h*cRD^U3epBu{v=NhFCuTw3eE`9Sf>k9OjA81e z=^2W4($vQKhUG9uQ_veXn%|!3Bni>#g2fDr3(V1Camp4$YqQ-+xKijEl%)q2gl$~D zUA0DU`*t@sw{Nen&za^$i+mQvaCrSru;=Gikrb>3wWA&nuMYY8EZl~%@<1(NPP)K( zM|@|TMuuz(+{0v%aoibC_OOuHM6bp?WIM&vFO%I3yO8d~TJFh7><^4utT&b24ZGI? zdkDh_F~b#2hhjY#(R=}W^8zCW`b1nYYoK>!vk(wwkWvaq#U zVQ*By(u=QqL}o=cTMe9eX6OPHVOPpwOWSAiqV?%k-bl) zX6FUgCAToE@SK<+3n(%xDH>VbkBNn0Bm3GJPs5p%nUrjA?@On}Hy~bEu8nI2@$=7!@{d+1=a)Z#*z}64}nBaEuf9H=FJx1>!%*s^d;fN?MYMYBZ6A z>j>|QiP-i_KNT1|wr$s}C7gtuhV>J)X0759LA?7UX; z^gr)PV5RDbW7bD|^85hjH^9a1OUI$eFi5b!y|C}(+ABS)c;5V!{#sEfFcaEMrhqzg zRk$PGh4I@Ri%Rs9$0tq0a8E4J<=Oyg9uMa)@XC@~i&!(nN$pr75)9u_R;7#DY1@-R ztK+rL7BFWwJCg9+Xswqif$`yG&!>+iqDMt$d1CXE?u1us$Gh3-JwiHv(spBJB@lkG z*~ybrZatJWou)@T5zoeAXu#+QOqXaEoaQfBb!6KBPzF<*}%cY#$ zX{J#Fn1<|0i27OIqBEWB6^de3v9e*MV4sD&xC|JQo_g~toRH-7V~@ZSBlIrbDd;{eM6 zU&d2rYbEm9^%`WKwl{7aLU=%N#PQ%AHp<#5=Vb7ZdF?}O(&5~SX0rx1%%)J96;55S zSU(ate*e#ukAR;;AvFbbi#Su@@nh+E86uS+t+%keBwH~vHX8;<28+lmUb-nP4v8g^ zXV1%wQ!<;>*v8|7+)m8n-oBn}JnTh%rQ<)b`wOt@$I^)fdBe^&66++nx1mfsriQ1l z97!jVi7-4)r2VpNzB4S;{9~_O z;TLN!7GDlBX|)y0X(QuMrYDJ2wKtmHfeWz3X}Ae-Uh9cI-OB{Mb~(Nz$q|48`8RC)Ncv&P zkqE*wz}yMkw?xvkn(e{@qPYN?p45QX*(8FbPD+>(Bk(u65k(*&mmd;Zx)h-BD3JYz zHN*^H`%Q~TZ?r$&+t&*hFP)`;5eX)CCUSFJ69{&23i*JS*a7ib^|4AAq9k5U?xH`$ zcRJ3Fjc+5}RL#UOWU_wid}MtmPLbDQwQ{+Myw#rkTQ!Bqg+p+bPrg5eED zD1XA{ET@s&1#)5%F-n?6(-MYw<3Lnhz@3gI)5s#Dqp$~ga*%wQ8;gac9kk5Iz+t{d zVb6Kg7C^6qZ=^dq5kePw;wvKKn(;e+d?t4q%4Hv;TZE;X4T*Z{L+E{Y1_duIKfjm!w z`o#`LZaL4JG-%uE6^{y$=7bVEs|ZTOopV#uPljQAKsLHZr;9JA1vv+J0hB>AWNHaL zxx|nJ;5`)V0r3U_rPVpYMckzm1}QDwI^pOi=C@Pieh&s&YqNMRuE_KuHBMG_mu`ZJ^5*UE zu%udI>0U(Ya6}+Miug%Sp*uV>ydFf`a{1dl{n4bLgvZnx*%a7xq_;ZQWx&*KQneF# z(z0Szg>1NlJOvXq7gurzck#wdvJYv-Ze;wC9H&NLEu+Y{lY#Nc=CucVj7bCEDAg_Y z7;wZo@Lp*xC9*QXq8xlPO`DHbGY@vfwc_z0KglyYv@~n1XQMm)%0V9XU@(lYQqS_m(lk8Eu*_1W>4$jwp-vGaVzMCcN9!fl`B zjVH}+anQgY&l!$#d1ld8SDvHB?FqkFM7^v;v@eSk898>=th1iw;juNB>`HJHkV;3p zU>^PX#`cd#hj-&-2MH;QSU>Vq5F!t;?Jwy;PcoT;HrdpM+BHa92LQ?qHQ0%~3Aq=2 z$l1aIXC#rtbkx6ajts`NFCosZ$2aeXQ?Sb>&?=$qNmJCrEK}CP&s7wqpYyN1mbhCY z2jK_lWw%=*TkAZO!kACj3fj9|GQYss4vdcWhMV$o3{02x+)-8U+HL!>VEp#eu`co` z(r(0w5vQd)IlE4K)bv@GpuGBGGB}h6gvrOL1GZAS8|x*AbBniHFNp|jE|ca~E5)s$ z%NHW4MwAz0)#{BS-(&6GV#ts-6=iTpSv;cP5}FQ+kVYg-gXXoZ5d`nLkzwZ`4=U4$ zU2^cgyO&cBh?hE6v@g3pR8Ou)(;`a#OWhS$VBbz^*{=#m`})IiSlG~Vij`JQUrlD$ zi^iZ&WPUMoDAuAg2m%zbnQ+H)oGyWoad>8Rf}$hgl?lf zC~cn(xR5+JV5bXwegVy5rm^opJ>n*qgK)TMedFfMEsa~&;v@*Hy}!90<{*%cVSsbl zN^s{E;2rW}fX+j_e0qU)%n&j`%be?2&pA5so?~*b;tcL52E``Gu3=evt4X?8D_6lkhz> zYMKI|Wv)HeK|A;y2Sj&9p_LS>Vy+-tfWVvwNi01`Sq(Ey-q{12`e30(vC`=x2FCwa5s>KqFIrnKynG* zC#}Gfk~T8Phtl?YDO?P3KP*L#CYne)uJE*>_#>p5&_bG@^e4k1l*11-57Xc}<#K5@7}I413;)FsVP zKJDP*I7f%pKj?b5L3E@lzz4&lHU ztQ5jd&iZU_ynS`f;mqXgK^vlu3=Z1SbOcE9D5T>ZeXK-SS+LuM&3l*iGc9rv{tev> z7Y=hpmql#j^OmY?z`=r`AFuOS`mM2z*^s^a@yd6Y2bcN&ma9DdbV% zGQyl`vIog*~fm- z=FBEa)KVPla}F<-Op`+xKZL&RGB>P#bkg=)I1}9&>j*EmH>{k# z0SVnu?mJB+O#xG&k_H;bm(n;nUOB7$E3fqF_MnqND)Oy zoDPyyb~v|I+qp!ZfGmr-X=MG!6xM)z|K6?+8iPUg`RtRVHFzC_U1pnY&z{-&zwqS? zp`*HGhCxO!ODFj#l%>d#0-+4_gKQKNpiM=(S2yxF#SDGrcmz%sSvBbl3=YiV%IP$x zq$5(n7KY&zzQ`SFh7Doc;$2}nZh<5s={O8B&AmSL!zf&nHfbOUk9nBwiJjRkgh!48 z=iSQF-n}xJ4r9ipqFv%O=BADSa4d*uFga)fnZ^FmtlaAL5p7w3nN zV#K%3ct4FL?ziV#Xj@!j>rmkxFcqZL&`Aieg_jwgehA=kG=g1o>1%QqR##R0^|0;m zxDa7FSFa=1*4Nb~EOXL9Ta=r5sgxz3*9V=+;m(dWsC6QXqw$j#5K736B$*o$+#c2Ae)V_X}Z9B{-heFW@O#@3@b`3PKiF;YxhmqHBlV&Bp!v% zjNZnX?=|WoCX&VT~;C8idbDXGUl^OcA=Ca@lim zi)8@hR2&6&7$X{%vMextyZ$ua(YWcRtB@F=v#-#0Uy=k2cUsZHh2vBe4lKeBhBLc+ z+mbkdrXNdBFtT}N@01LPXJyLK6}Q3qD=zQNhpp*ZBae(`SJ-6&pU@w2Be2#eirbOgwnLL!_DqdGu$oxMh6rmnN6mz!!#D z&0y`w@y1puRKKl{yRz-JMKq6d=13aO&(lz9S8NH#x|o$%5b$6~E@thc(;cK~5?Ld? zO@|C2XHJxb**DHbqm);rp=1k$2wjYm#Gz48hi?M;&{bg;tAJWH6{pSDAdhoP^cFNk z2ae?E2bl;Mw=Vk#k=0N3s?I1z>PzIDBDAdQ0ozpDF0Tc2LDwbQ5#M#=hQpoGF0W0J zna1hAmDAbzr{e?O!0=)NFN4#P=skIXlwl-7vd-WElQ_}=kbG`9%iTr$Yl(%dzqD|| z`z{!!NW&u41E| z4v~Meo=c^DWqL@^MYW_el)~AikNH7|{F-<-uB4GBPslCg&={n?@X#%% z3xn#XaSf+o-Obzt@aoZ6HYt)) z&ot0JEqB<9K|D{HD!r}Hr-KD9!zpN5{$dFv+>xpmayaKfYZ(&vB8H!koi zXyGOT=nB3$iMRxY^pC?XIs=N++mZrcfmnSx13Er&$F>d!o@)_4-7|;?)8H*=jvt%Y zG;8hQeB8v_gziiex%9L}B~BLgL`TnV71`w_e?I`Lx+4L9nRJ_+1j^sg1Mz(c*^h#N zaLy5N6h+;b*Yb4Rx(zMs*EOx%;_o)RIA1}AoZdyIq@LQkVsVbQ>=FqTEd=@JK*5t5oTv5cg&eLDb~4j3%bnaya2oV&3aK zu|a@+IHXI(Td)r(IGXN$N_(tWPUQC_qKQ55@%F&`=qy5m6C^nTEwrJCoCcH+QwaT_ zMHwdy$y-|BZOjp$?3>wDB@-ss6}}K9CCE?310+cHWA%1ZKmhO#koe^_2(*z(j&8p|meMKz?}p3`d;b{+3DQWDZ}2+NnHhsP1G!*!r% z)#2E}3xlsrGn&LjahHVsbfK(xWRZrZgeJ$Q&kk2 zPzPv_fi|4r9@-~B?K(huoQCjum!HBxjaz9zY(k!zvUuI|lylw)8+b0!u+ea0flg%T zpai~C5&}Ei_C7F?*AC|bGhr~yTR=FBSS0@hm*vMT(FjE8$a>yZ0ruF0d*s>a*>L`5_nN64IV|9FzR|u10^--K zzcV@%FHpLRx@i3Y@I_lH&UR2}$`hFs3xg&{3U9t;o%WafA6nu4)g;r0AQG?8NZ?qh z#MAc85iSO^)3AuYm1{e1=_W=xk*%dCfyn^MF*RAgRh%*+x$YI*Pd0@Df9fx9uDDej zx2pR>`x)gRM2SRq4Z3}15C@@?@Vs%Lg zP1eDS>yfQu_y}|yozk2l*v&9qa2McNh?Cpa7w^epDWQA?9v!vg1N(xfHNt#!04Wy) z>KpXo4b4Hq36P642h%Zfj<^B2FPBBppe~O@?y5ckf;;6t2)unq7?S2h3E#AtmPha> zFL^<;G}k$qLK`>yN()Xx@F4{FV4R$#BsFppL`}MF>G!oEvd2-BVr=PoIX3JT=ky8Z z2FOo^W~Y$BjwYalwCTZb1@U7ZZ~p*?m*LP#XJO=>sgbmUGdxbOnA0=6Uv|JH6~sOz zZT9l}KFZuLsZf``D@}tK!Fb4KKu%J5D|c?!fITg{PUrG584?uMltc{6P6HxNIoJ&U zk=+d5o`Blx@bEs5U1;Tamu5f6-4r`c>nNY7AeC#`wC?uCEvq>q6dMm~ZEln+^B|Zw^TldW;q?#(avmyv7m*l08n1LbZx7u(NhCXkI(*R-fhi5nM`m#O6YnFQZI^sozD7n~d* z3zA#aMJHI3aRIJ_oE?Fk#WKeSqjlevRukRaXYTmu5a{647E!b<1t^2>#=nved0Mf6 zjUsmXme|%Uq58%YIe8nR?V*jELt7WwKqC-Ey7h%k0H$_~)4ZfJ8@>0|xP2`;Mg|*^ zh}*|1c>jeawhd`%;|QxNJHL=Tok1nR9i%xnr&;_)lpvp2#Ki+bJcZZ?WcR^# z#Kq=#3?bTY?+d(|hhl>IH8}qY1M87o>ivy(*{II2EiBSLykWfBB_}Lo5E30c;aqfx z^XhaC!5tgb2Sr@;$CesNwA?Nw{12^}}D-SKZ`@aRNDxEfBxU zoDQJ_pk({Vee9-(RDs9aaA?UE_c9mWk(;4x!LyLZK65UpJ;v+3<7ksS498~;Ls8nt z!{HdPN}dTXvvl+v`360V$GS*zU!P3w;8=|04ci&Yy^Vm~G&X2R=d;VtDKWas$rY#R zk%@<^VBcPd_m`!pZ+XLv)^r?@=b@7r4#f#{T~~ND!O=VZG$Y)Ep~c287J3+BxD1Gr zb1oBEe5i@*hs(22I6)={nqbe36+3q=f};HQ|DAK!L3%lVr@+gB1x1HAu8L z`Y_#*^u>`u@=zs@O!LA=VfD`Sn@+v)Ti|kMb;VM;O(;6MWM8L7iecAK61coakEX0_ zj`BtnskR$>@$7XR5#b~d{o>pR?1N>5-vG(6M{Zw$bu$d3 zjJI(1hBIIl8{>R@kD>t>PO_VbxXJzJQ^@=-HVNb`(DE-Q#GI$1iFzTRmX4>5*^DKC zOi~z2VkX&68B@G^PJ$B%)#DCH9(`jPzf95|D^rh<>^+|D?`p@xdHxv|`y?Uh4{1wM z-Znz&!go^K84X<%rf`EyHxc2N4DkCZN*po->wI4#wCu0Fk=B3Sk(3Oe3kEob27j_L zVx*8I;z#f$MQT?SdUY9pHs#J=MtkWP8LbkSQuHh^t@6mgM#Fp@&MvwV=$5g&dA3&c z5K9M$>Qh7H_~z*=F=G924~J8tQC3r5x9!TgNgkLcpWU7i7C)*NI>m+qCX~;NQ`}4I zjXq)>=GVhz!q8576)Z&tB#ff;Xl-y9j6B5Ijm3njapDk1&P7P1@b-Qe3DYWyaK0!r zz&GJAr-q@HiZnoHix97L^^r#@ud<`y(LP@yNkP^dPPyF_@8_;G(M@=tBX4bT+t~47 z1z{K0Q&)Ld1m0{0M^Wjd7c|<>$kS*z`;mLP&nEZ*hi;)UnSSKY^D~lVw+DIDG;_c~ zjz6Tx84!JOGDgTxX+wX|FHR`c^Ek#<36IV19{p~I|$>bBIiJIF!&#hl^R;XHF{ zG~c;Ja*}yBf}6trDqcx#w-U(Lw64;ByUC*M<+qi~fcf1Q-O`Of*F&TgRbrZ0wDge` zY{OBme9ANn-AhP$>vnCzi#nGJ@0D9ZYPZZW{<C2uo``}u$>*<@_?dihJ;Y?X7( z)(nu1jY212%RMN~1AfP?Jb$4}J-_-xjkG?Piic34zVz%5CZ?q5SxT@^deBr(63WR1 zI@aoCV>D;IzG(wI2U`DmoXCISO(*gJ^)xm78T!VDj+DN|Cy>I#ZZ3w8b`1D+Ib<(v zM8@~omk`i8&H)@~+{8~sQj477?b%Igz@~;;TCj^YtG44cB3Qk!L@aP`zrabgbQW(I z+l-UPwD{3+dz*QNoV>Ii-nBq6yYs$j_egibu+gjCpz(r^Cn#DYqr@UYo4gS!PNg7= z+he@!hz>;3iF0gSuUox(HB-QL1A0RT+9YqVfXK!=uvS(gwr-g@z zS5-dj*O$O^W7q=&eZJov)u%w392qaBv~!S`Z5tPWdDskRtT{~JJ4qaHUO0D1{f8an zTs?2=hApiXxhJ=#Z=uKaFhpc7uxF~v5uRJ7$0o^UAaRI9p{6MCYYa5`!Hu3<40qxQTl$(? zu`s1%ZMPd+K=2)6?bNs+IE2N)Oc2R|j=mU<7V&I%?iG-BXV<2SERNS5=cv+3Ph0m* za03ycaYRGG8%zNwRLPDk=)#t&zF*qLBeIuhpP#5*K#uhSPo!%eg{F^qgZ%pmbWVq!@74$!YY!BH1qAu@ z;IUj#?pblCoIneA?4|&!eGgN1-?UL25s2AK^e2vN!XKjctb?m8TfX=?Z{gjhC@4Op z7Qumyf9Tk!I3O+(TAVu&BQN8QX57zlxVX>rJRli3jkIXt6&{icwT~ZgsK)(m6ldI; zQGNc~%j1$q1-C@i5P2S06;@YX5^}1I#S1&(90lTS5`Ast%5dWp<>_m%D3H>obsi!` z9ByiA$39lE?OS&V4C)8`)YY9xDw zU%tVEq%`ts-D#4M0QJLMKCz+C36D4gyo$kg5rr>%cj+NtXa-@ zL=^`kWYc5ln|4oGCvuK|n{PZsGjo=`XrZlUpNIxfAx5pZv6Qiw{I%mdLB* zpfDu{P5Z%$qdpjoH2YT_c>I>^I#fo^Zn!aYYGvh69t0L)-(fStmJZ%1&wRc94~%30+pUW1B(L( zl`=BCu!;0@{IDRz9VOw>kU{-(DsTA?;8@=L&U4l{c>{wzzDI2|avGHH%AdZlftV8R z5I+qwq3GBRKd_FW*J+BEJX<=PR}RqO*NefkleZ#j5CHb+l|tn3&|72wTXBgEU|3|F zNS7btfJD__gL|Nhx4D^qkI8u-`7b*mq2@M!?XIhg#2WkiL(WMdiL6S-x_d)wn#Awj zzP-IaiXVC4Q;CqDb;{AWm<{(d`{2zOOzFEDniEvu`<#Yp0b>0TfM!RyJ2<9{CAOg0$*BxMgsPWcyhp-32ZhB{}1^cMM5%rg9x5#|u3 zvgzR^(OJBtm42&39xN5=#?X5(_*4l9A{wStC;xT_Z{E`D1Tm?)<aanHjM$cq}jQH*lTHY+=_^O?rgwp3s?Ll(qj9NLZv+sco?bKHQ z>B|Yb`w~0IPoZPRBy!4;(r&*yA_t#~U(cEUd}|X0@Ra4k)iz2iVRwK-X($dJ1(&0W zaJn$)8s1yo5ss|>ioHY!DPj(G4$yEX#pdk12hSdZ1*{2_>h8gIJ382vCJ-41{(%nUMCdo#sM@_sfO@8Wx*90& z{Y);lq!V4>k#p%*?);(_`#KY%>A4UpFPtUdWRZ)ZD0-&fdV@|7S8aGgO_O$XhwD#I z^lk*seEtD;en(#_R8L_BV&?YkFj4%3LOp(|hKwZ5QjmKU{eZ=KI4C?-rF};)_n@$i zT5yLAp+E#vD6jpZ_@<3F-9#-a*ypz>o}bDN?Yt^?4?magyvEcGP#^qUqP~VqD@c{r+|szklXFq}o3}Ks+MHwhMf>Ua zD7dk_{BOr;zC3ZhNWZrh3_yAMj<13n!+3FcT9VZ-{`-ddHY@uJ1>WPw20sME8#?y& zeUz8R>m@KitnlQ#<9wq)pm6Tpfw+&}?~ip;e^rs9dgg@22q|5f8xCSyM%Yhh>X zC4GJ1I{ocMp72PXV zTmq5}Wq0B2a(aF)9OqviJcA#L6r5$-$}${>kkfb#m{KSv4jl$Y1;hY3=+zRV2~$eP zdv&u#eo!&U1BoIWrxQ?C7HFmXFJG3_44;mkrzyc1ZHFjd{La#Ru4rAwsHM&V4?2E)Wjtuwqw)d^r&~zKpMRZ1h^-16DgkfE5w5aw=L~PGu`EI=Xkp!&aIMjd}XqgG? z>$v#!95H?a56K~oV~9)B2rzp>^_-W6;p5Pqvk)tny#mv2C(^>i=SF#r2bkj3o;*I< zwPABh>>;=1n_DXne)59Z$My-{hr>_Zs?zvkvU12E8v)PD#tra3@Qh6_79;ruRI81L7&n z1{+sF-`l#tI9+4CfD=g)uwy~NEB_=Voqn|gqi<8^MNsl1E|?-$8BJ&1@9v!mJ?dg{ zTmzm2wylaFisP;?z%{#f){+O;8Qlr7V#shF059;p{`z9=SrOqEH?Iz~T9iMFzy4(& z+T#yel zS}#bo1E9e!9jqQ(_?+dTplwYPegw##FcxRe;P->nOUKm3^PfHKCYUrGLYMCU$=MAsq?g1+LuW$1shB8Lm}zdQr?M*nO4)6?F=uYf0vn`3>?CL z51Q?pHg4SFZZHu$9=2TGoz13hSV~+hfxazCrn{En4NsXR-PzurmFAiyS1-BB;E@JA z(_nAOD}VL-2!9_w!*U>ii##v)TRNr6(ZGFY+MdN3ZO48uRhDYs*1zvB!f*8nDeu$o z>$QCT&r<(dEn|Ulxqi2FN|kkrv*nn!XG>cjEG@k@#oOz<_4_|+`6ewbzEnAHQlp{I zm$h6yS-#JlA!Tc2emOB!zSn8_scG{4sVP$4S1skOTE1M%-<&1&wydv_?|;;G9-JrN zUq4sM>N!$=WkTfrh1v3bi{d5}m!2v0|Dx?QDDFMAQomW-ePNb-uf9s_ulWB)dG?j% z`|;dTx&EsqQl`UFwrjaLAct#TR-RrE|3CG;6o3Cy?ft(^_kwFh&XoaqKYjK84*CC2 z%j1hW499RRm=HWep=;mYK2_4-(Rd;9TEJ0w+y!PnwRJEai~$gm*Veb*XQGd z^!~Se|Nip-JA6KWV?Ldkf$#rY`WxiqB{$^r9lZXG>fcwio6i3}Q_wjLHbBk_; z;kYA5_q63n(VVw6fVZTC1j?UJ#j2zc8)+g|7DIm?AdN;+_UE7&3U z`$!nayF7~gdpFxSPXLJ^c9EY0E+P!q0zi0W3S}sYp|Ef3o)FM{Wf9m61TVz8JW)8q zY}wG#ylxW}X3J{)vozbAGE1?aCVx=Sz%}$wy3K6mkJ;5`>|6Cx@e~f!U^_YY%%8#0 zF>D;^$tomfkZCavmpe92+lKh1(*RntUwji^;s-YUL?F_TcwmT*9k-NoCno+fV%f{_3>snUlQhYc?Q{*z`_9!Bzd_pg_c#$fC&}<*f zu4p`KZjf`Dh(_h$H{K47)L3YtS$IRp>_p~ghrwC9t5{MoL)Uhuq_7jcL^=F6u^WS0 zj=n{{kL;Cl?9Eb+YB{3ifR-sOOOQ7eRTU=xe@#`ZDpytEf0g<5#lPKJ)nLl~Z{DQB z|K;NcCwu>^7(Ao@ISLgGrf#zLzlypu`k%eOqLf(v|5HDyVshn_sne>a&p4}kX3ebH z*>mR3n}7B>b?2UU{skAlKb`pV zUtTzQ>hy&9@AkiORa5ioo7Svdck?UOZ@6V+%dML>Z@KOEJGQ>^Rnq^`*Z)`af5v5* z%ka#Dw+_%b2Yz%2Ys+Olefpvw*?Psz4&2?~eR5(DSHBp6OYNQ7B{qYN!NHL(w6?Nz5HMo^|u z9z!|2{nUi1Mt$q4i8_?6D3_redE2RpRx00qYT^*eq5IJe%3+kpQHBnIznS=sGD78p zrzWT6F=)XfH; zvvD8F@wulb`cV$g10H3|eBe=zo((%S2YOL=dZGcPIT!R%hES$Z4xrqJatP%R$`O=D zP>!J-McHs3+Cw>rvUV=&&p$n}7G-S+_oED<+=sFO$k~dZKDR`n~A%L_NyE zrKcxaP>!JNrtb}CALS6rA(Ue%kDwe!If~L;d3xeF)uXIB8}%qdR9*$Sp&WkM>4{d9 zqbU1Pj-ec+>nIPStiAU1#0bg=%3~-;P@bUr>(HNbAb*tgD2Gr+P>!K&MHyNKdMH~_ z4$}1-z!%Ca#WAw`rp&_#+uqSHDiK-&8Y%Ht9q69mIbv3nFF-N}_A;djwwxQ2%SHFT&4Ls7_rHF(-;#C%Vtk^-Ck> ze7e4|1{y8xRif=d)U!yMbM+UXei-#n5>WZL27g|I`hm+L=4O<{$EupT`zJq8vAQO- zs-}MblmnH`H4Tk5%kG`Fcj}s&2r&3i`#r#qzBFPQsp2N-7uDZ~`q09NxsvM9zU}Wr zsBcAmn(A+@8J@Ja;@-*hH$Io*zsGTX4A+}c5+4V^Lf!t!%{8IMntJeX@07ijgnJg( z8x}>(`|!8JHTtOilWAP4F+QWfeO+<;E1GNSfV;PHFJE7b>qD1E%tbWD@tVj3757ix zKV|RKd#4?!B)P0d{m9~oc|TnjxvX+BAqk0Gnrm7}G}H)WiT~~czIAEDypbw!ABnOK zcOIy`fAZ>@`bL&!b4`Tq+K=^*J|wrtao;%Z`v_I6%gOU;)DJa8Og+`Fm3orHbEqFh z{TC|n1>?E5qG{&TRS!(Q<=$!gryiJcKUI?)=0V6qFN>HT;%{^F-pTh?uCEF0$IbZA z^=oi_;M$1!7**U>6C#9O=5g7A>kZdooM~KaJ8Sn(xp(TO`zIfuR)o$TqO&YwZlj9T z`zNnGP_c!iZLdFs>tne7ZmPI>f5qO(;6pAmACJ@h*O$Kj46cW6D1M#feiGM5aQ*kx zqCZ{%iPJbdAl>Kjx(4`>mq*N^Quhr_lA-c$B)RnfKi;I{b@SfJd#Bu5({i9h%+%@ITM&aBCe+r!k}>WDc=^{nS>RnPZgszK8u_f8@DPXX7uCSrbrzs=1=_|}>R zY6f5F`g6G6vNmGg$=CD8^-|PT12~TB-SDXl^Hp2Bp*bWko<~7x4QQy!TF(>i2Ur)N-kcb!+HC^TQ9!7lx^>=9hF*{`T z(gfc>`9Q_mng$xrr+^zuM$BH~U&b?Mm+Y7hyRjkiESE~m#fDw5(?tK~{gY{28V*$K zg}9jCOL4umKffO&&*i8eLH(2X+s>0#oe0FwHe4Uv9Wj5P4i(d{RDqgse-F}qdm`qm zM0fT6DeX0p1C?ZK$kb3BKGgo>#MkR0<`7k=K7nu6Cu;v0TsN=B`UPLKNc(HBjukLK z<1-J9jPH$@SK@DLk4ZlkqrT-W5wjwUFLvBv%fxtye$f3}fE#=aug8EJ`ccH3!r!@m$z+4Q+&{(IS+KJ;u`$-80u4~e>Ev2JL)=BdBlP z-YDa&c7;ekf%+lTA5cAd051BA`A;+tPvX9YXroz!zh!*j?|JsKWBPfqIi@6hBh+g6f|^eJkqc;BWh( z`sYzUfcg+sdUUF5phtmvlGCNAA3=RFJ)!H(xL%vo_5*hL8eH$d^%SnJa&i>?bSp(} z6?X9w$>kwxH`QnskOZt=t=*4#csm*O12mT0f8fTmjRwn``*8nJZ~7VyroH=c|50Cy zdhX9H@ZS+uQ9r6-SX)tFM|^H27l@3as0>|SjOznC8_my%+RgV@?615XpvimT*fSsN zaXq!G(Og8=Rj%BB)DNQmeAj>I(fyOxa%?2pY$dR!riE@6y?6-s4flhd-e==6s2zo5 zj3d6D0B&@5qxm4!aJ=%0ng%akd6xLPyV1O-#Pv#eD7E)Anji3Waw>0y$0dFg(Z3Ye z$8r7BbX~@QG6B4lkvyAmeRxl!d4jI1y`uZJp?=_Xs@FGTb)Wjmnuhx;_D(r4ne~1T zu18+qXcp1bxtZ+ih6gGRRBl0}OMxX(W4S&ITc301 z?0;^l8JQ%4qx-fIy}kK*N%v)m9_oL`_mSTNfBW7k_Y78+L-MNea; z{bz>!l+!1-Z z$}yg3zU~xx?)jqIqjKNBAI{|TT7v35D(N*zU#kN21C?)6dm`VUa@=n!?-zO33-YB? zl_&bmVUZ7t{C<_o`bxW6POl}X-YH3+kaYj>AF-zlm7fv0d$H(N39wyt9Qi@yvB(Qr ziN2q0%2d+RxVO9HTJif*(a$AnLW7q3R*{d1e3J@%xz}ZCIgNz;DDwPlInK{CKdPIP zvq!d_@-#oI<<%R6{aEGk&7A2PzO8sAjSp*i^#wpjKP=nmUKCrK!T^9SePK6p8 z!$preb!g~oi51-W=4`Lx#f7ng3!{v*@6r(Gx;DNt#Cgvw3B#?EC6f>So{_8T5hsA= z8ogV+h;6T*t7y=Ep@DPN4I%3C*Tnvc@`;!fL%fJEP5O4%I3LFPc0;hn}z$P%W9R7h3 zumJ1?b_2`60pJjD1UL#D2TlT~fYZPxFmn_910!Go*a_?gmVpDnA>asb6gUo?1Wo~` zflXlMX7~q2zyh!n*bOWL2Y^Gs5#T6r95@M_0!{;)z|0Ex2S&gGuoKt~ECUCCL% zC~zD&37i5>1DiniFNN=pgmLDr69J>c0p~OS2l(Wj{W7gbxy6Mm)_9YBUkCnzc^oV_ zl(uJS&)ysCP~LbdeV=mty8U>tL*BW4X&%R+)rL1??2%V6ym)Wg9>>+ShSy*WjM z_Zh?EeEyZ;4I3WU0d>QB)$rK=P8J_T4F$*<9{qBBAi2%(XzwTEw`A&t>xNmwJ6BED zAJ;$CyVLi1*4)2rkKDm@J?96~_Sn8lF}|@J9frsIW2ND>oATuhyI{RZy??=9rPBx zoz@?Ny#1FT9|leUOW+UAg!Ia<0pA0bkv{WVkhh-?=q?0gKKFpP7q~#mqk9oWzPLA; zPi}R{w{pgro5U*Y3 zlO5}M%ac|A3)Op$J@NrkAL!w{`fwW{GYw+c*Ay4 zOZk>qLC}LgYY122UAf7i_pgrmpu6=gvBc!88iJgUU3%j@Ov!C>p>rhl`&wd&>Au>7 z>j!ck<-9>Vw+QWm>_w^1{r5!>9tvjW_T$ut*xex)S_jnU{yc`m3KVqw*0NKdWp*0UctoK1$~=; zi2Y~DT2<8N`M?D9`#`ky&+>1P^rSw|8}eAN@_a(|bxyGLr=3{qg!3cMTh1;Mp#=H~ zvEYl>iaX?$)NkM%paK0HGY%zmi@9^2okl;qGWN{u%Ajy=XS&5W--lG^&n#2^aX!=- z4tkuY$)|tD_sNAaS^w@pF(e%b`rmvUko+7kfcpiL`t|i;T&(Mtg(SRd9Ga**Wb}tO z2L0iULH~75(B9gm_CwUY0sX+1_QLs0YdJ`4eX;$if7Ix=LBH)U>c3<3^U%*j-}5;p=t-Q|FU&*Vb$LjSq`tv+dSe~{?+rIR6-jL7xp@<@lR~++`hNmGfiThl diff --git a/build/linux/work/hardware/tools/avr/bin.gcc/avr-gcc b/build/linux/work/hardware/tools/avr/bin.gcc/avr-gcc deleted file mode 100755 index 5668e7adafa2f3bbdbd0d8ceddb0d58057008f63..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 230400 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 z51�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

    %W3=3n!f<=LuxT=#|5w`)80 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 diff --git a/build/linux/work/hardware/tools/avr/bin/avr-ar b/build/linux/work/hardware/tools/avr/bin/avr-ar deleted file mode 100755 index ffbccd04eff9480ed31b92f242a25e18ac4725cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 575152 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¨A-FCBl~aI^UJPI? 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 ~8>6__h8tS?mE|Lz^diMs{NQ`pGtev^!H^E*; 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

    #PWY473S&$4?G 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 N!~cgU$?sPC{{?vyt^)u7 diff --git a/build/linux/work/hardware/tools/avr/bin/avr-as b/build/linux/work/hardware/tools/avr/bin/avr-as deleted file mode 100755 index 2d39ec66766e495df0a6f6d497928f058f614809..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 783472 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

    4)KbRk+g3siLdXG`q{_MtE^ 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

    77E-kQ6al+u-g<3OA&{&LP|i zj(Em4p{XmZAMP(tV=ABmPpw70*#>C|dW4*dPqczUOmc8So>l_ZA4cohtIUJc*o z$lBKAh%xJ5kAWCEBqZ=&MPIGMNmJuqkPExv3a_n%nz?e>u}`ou(vNfVqotC&GLx6! zrvPmBL}mdSnVNPOHe$KvWS90QYsAwyZ5@nEn+sd}26DJDBJ~T?s96|f2J1xBzEhSP(AT|a3DOyj&Aa5#0AD4Zi?a+34 zw0b&lBGu9PSTz!t#)%6d1E~(@FFNjb!@u$!9k|&0(^)MRuKJCWDB3D(P;(2C?>oO{ z3oNmA6o#Bo%+7xy?g0tyE9;9>;V#winAoXo9mLTKCPfOyQ|+n)=tw~_RgQZqzYB+R z+IXbusptqQ3J6QPN z%GXI#^upHi&veM&+UY0N`!F#FIEBmAg&})5#l;_PwX!r#Ku4P-EqvPxQy|%`B#E zN*ab*=|@`9mm~2~Z_-gnqor&>8oS_qbZ0#6O)LV#BD^a(CPdj}6+5JKXW z#q9F|vhnu4*zSMXEI8SS{QK|Xy=zr3+=7Ebar~f=61tfb+3}c=HUHuBHjko7YZW2N z`4D9_R2NA2YcW1q2~mtoU?qqjch&ua=;ApY-Z919pEuLj%fHw$-`B&xIA${WDRClQ zm`^4w91CgBYh*rrGN@Euo2kKzw+e@5-62<_F&Rka~pghaL zLeMmohw0mWqEr= z`wsOUeaQxiz55D4+HpENxC%*+)-)ma>it+P4Lv?o! z0-C*t;rTtf7hH;0wY3dxio5hmko|C+-auY*As+PqIzk_u!!m({A=HDq$&F(#?Am3} zL>y!Z^!xBeeCxp&j)8lF1s7RZHZ{h(%>Wjtc&5=U~NJV-56tqAe z__2$g=@-(YwRqf<;Sq5z6Qh%Hdih8TzI?EI&TQ&H-+9JsfFiyjS0cLfuK*O~O~RKy z+*mX1SM`!aHH_C&Lfd?Os+vcNd1=WooHJE%2sAYTQI?2FG!Vjg_FV34Yv(vrSI5<&jYPS~NIbR0KL-T)Z;_AOfc^LUznr#nx6 z6JXzFtN+B~+jjp#XFYKOm%5cN9q?ob^JsV9bhqBmjf$~R=^f|R_NongbbG?X_%}Bal^}hohL-Y)IB%16s3-$N122sz!OhSS#dOJTecfx;SvmQdgvkUw~hDhFfu-v6{@$TG1 z^S(w5n}&MRa^(;hD9cZRF>Tr6trgTdB77m{F^CqMay!uM<9_j&c<`z|qGVb#6aqLx zAF`YM4{w+y&7P* z*6%)k%b!O?Sg_*DezwIk>d=57ttrc|LtCM_3IfovTd6t0g?9v?o5aH0eG4*jXC?c7 zR`vN9b1mL|q>w}wKto}!|79aw_%*m*%WK_Rh<#Vy7;41>bV}3(NGfc%D+sjgMEb=k zzx{En;nH}By9ZHURttUc6wv^7clQ2@x3wBm)$ouUwP8;jyL2U9=J^#KNsM-DA4}=nv^O`h{8jPC%QrgL+36H;}*8b>bW%teoE+0IK=WQV=Jei9zxIO-$hb1 zrE1v~NN{;$Sx?9d0dJ=IcA$_@*@raZU9~V@Y!H)}9pg7X$Z)DazVvz?9eL;Yb1w1T z!`!r%LUf8(gf_70v`0mY^>tn+yYmamSnmxe50Rfh@bvi+bZ72{`;x$`j?x-5wkJ*v z;C)k{3sEK(5q&A-#j$go#%8-1ty$0fj8M(Si&oQ@V?? zr|H|a9_Mj;j-Fq79kzVhd{EqYdJkZBS|&>7nEN=SwpRS3j@X}jBoFTt?PzhPCVIaJ zz6_6(*!k+$};)KUQi*F2f&;ZSQf&6cNrs?KK67mKJ+59mH7(HL) zy0!LO#01d~uq->Ma;K4B0Bu1+5t*u5Ff9jgn2S!k*5vdz$8kZ}h|#pS8gZvl+$|}= zcL=WM$D%yjl}+!XHn7+_hDtQKD_X(+iWdezum|0SqbN1;sY2=OAK2N&HdYPfC4ZF3 z{X7n4A;7@@YBE9q@41-a(Ghs3X9NZvMFqY?s(uaVeP62jkTlp-4IW#v4XbDbtYZnU zIw+7~GVW^lqqHiBSPKEUiqolC1ZfJUt-=js_3vqT?29Qsn6?sk47WD683%5}o^$;q zJXI%00R3}^z%F|CG`1F}BJFj~`E-sg#BmXEBqL`d@32yCN?|m#vFj++gRq&DqNNAB z3@ME3z69U}lcK3^(Uc>aIzEAu9~L)5-1gum3U3#Ht>U&h3a>{hkbm1DMAi#bJ`p2c z!?`a2v;#D!>O;1$=6up@gyP|+{th=19_zpmdubwRg}%N*)A7V-+S>94_C&dPbr5?7 z=X>NJMeNJpM0?E1Xbj>wHrixD^9>k{=Zqq#wg&XXQXibodVnE7uK=VkNsnjO;5%So ze5JUhHErm+#|+zf&9b#X;(HY@GU@5DtzOE>su0op@Tyozi+l1$q5O zQZZe=fo_qwbb2>y-kYfC8LSLLoPaas(br2^@XKQ+edv)S29*bp*cjP6Ebz<{E+;Z{VlA3J2_6+M!kWT6G^l zSH&qII@hu)UJ22^e5&fR;@x^#FL(c`X>QsUO~4s`+_6ewS3Qm-o>`6sz)dIX-tI#2 zwl{4o_QjDTNoQadaKkYy{~4PXqw$g@UNZO|t#Y%!JdN)cV&5)E)l%Sw{g~NlGu+xC zH$1G9HUh^MX?qLlWiK=j1S;P6%xy$r)q8Fo4KY>$R|Q9}vK9CO7|!3ha~WuzK+A+4 zCD2Yb18BFt_`<^6f~%m#aOVeL{LKX>1_W4_(uRx zb9Xv76dZ{%kl$~R{J{oHqj(FFy!wYgw6Tma{DstG01%@RmMj1<2nGm{$j%0U-f%C0 zTfQ+HyZYpl@s%ys1MZFxu+99dECg#^OVIp_EkKcWiv0+fo_z&Gz#HO@7UiQB#eI}r z|4(9^^b@1;gm@oHf~K#7l#fDvQ}z20ps4x^(Xq%UvXbXX&ifFNW9}`){9_`i*Q4YA%>DjXm@IWV>kb}x zQ4Qr&u~fnog&Cs~701%vX$4I@e&pz4qwv%Kq#(0sDER3}Lp#!{eiv^*NJVdF?W7f6 zX4D^v_U^~O14BwULQ3!xcLD#m1xF_h{RyiJec*K53c~JzlC}Z1QG_j*!0zrI?VtxQ z>g4Y8gt4+wf+f@(a)4XBJxzOup*osjtG?f|TIeGISC4W?!VPG*;h})H{~wqf_@gwn z4BxSWVTeg}7O)*B)lJ-JaM*(NErP)8D?PPAW; z12jA&kImul+hduB5%cIx=mLyFe3uJf46N%(sa;4xbsv->R7fPir-b6}b{$fxE?>A0 zqa{GD%s>K zV;)70s4bB_;&F)B5#~*Pvm!by?W6W@;053KBLdxuF;>L2{6|vWkTh2O|Hb20@PMvY z@3nM&7Iey8AnR^p5Urnt>0ln`2?h&^0mbTfqj7FMVJ`A?YB4w&dA%eV0rfD{GYMdA z8;|Z129qjzbXW5z)@B>%SVY+&wt;lcjfy`{im)Y*wY4?H^{4&Jo>YsDBfOO;A;Q5Y zIXOjf$MyhOh8?_$M5dw)`{y5LQw{8et9eb-ZzWW2h66+Q4k}mnr5b)cZ8f?BbcoPc zBFgdaN7nY`Qx<((t_WpR&CvfZpV-eZ@Nf*V=3(>?$;Ma0>@{!{Mz9_5s1Z2)FpFzm zaftYDF}~9CJx(-6{i~`kpxu)yCHOlDoOesS@Q1XYxj@Cf;#4)G2{XPDItOb-wZAtl zrw+sQezp!KVI%`)`A=X7J&EG6mkBuwi-js!f5y#ZQJ?*Qm14xf^7dF__9S@r2Y}PU zy4@Q8V^JAy|M%17{1IIoD93ty9hUjZAzU3IC~`udj=`v1X_b= zr#n#@M-GdFJ?1$B2-7ftHhK96LlE9+iz@I$GP)k8?RU_8*+h^02oQ*o}YcqSfKO62EcxXF%jjP=!*B9Up#h zxfeCy!~m~27gxIx^))A;eo_5X$ilL}ewYR^Z9;wd4){avaTAOOKg7Bxst=Zju&k*t zgEtwQUTPTcpyAkO<%A4Yk%hKb7tX-z_d^^DlK?VVoQ*POoI^!LozfPF@Zg!+PdYRE zBijCr|NHh|(V_jw+1fveDsOLpIR23E_w5gX41M|Zs&}j$bYg3UBVAJy$j@I<20AFblIuBtu? zW6XuW7*-;P-=^=9=?@BmQP|zVYDpi3Gmc2QlBr8=?~jegI~-DBL(> zP59`U^&V))@^eJ_D@A!)LH_T`4-(~n!AHr^-1`4@`JcOU`QH-dX{+b|uYMdF5DIuh zFqk74^xzEM5t{5_Q?>Z)+a1sX-#?{zvXyV2;-tng&WWp)-67cZ73{F!?NlDOHVL1r z!buf6%|RAHZF29pA zJd?ilTi~A|zlLX;+8yz<1uo=`J}>wXEZV(}5?sf5EsAF&5Yl3|`e+*5N$@*BS?gmw zRATfw0yT_7Gw`G0`D70gC%h=09~q-i>J7|V@WoH|19J`kLX!4fyGvdMAi1RVYJ@^` z$<{69UAY}zE}Df$&}Y^Ye_7bbeI%?kA3_25ETiVGV?U5N;W!CD6=lRy%z%9w*q1nORJ#amh@LpYVNfw5 z{?;Yl)-v$HW9yqx1A71nxTXT6i?mr-#EXSNq@aS7VQt}Pumbtk0SFAVloEc!>uCka zO$F&~O$C^Rw1QNVv`Cu)KV=?gik@W>pC4-Xzu>kNJ&Cz?4Oue&9U!5hjbaA)veMGf z=l{gMk`aE7W-c_G#bSqq;^c1B>3YigOVN3GsopE;bc1>3{AzX)<_gp>7d2QKj5rgi z9?RdU{AfgW2*oiVn;Tf(1@Or||BVwO+}&xr=%h=%PXU`rAaYkq&8xVcQ$``%{P)wJ zzrf!+{a6{adS@dB2(-p{y-Tm4eM#|PRH z6#B@xv~)?J&8Y;joT2?hP zU#^85{{<2}B~PY35acU=1zv2fZZE{bVR0gpz=>YeXvG$&b>1S-)`Rm^f>TJ&wt-f^ z4y!p#{dt^1eBPgzK=AUaK-<|%_JKbOm`wj^?x(_+X41pB9GW1U=qVLl=alLOQd@2T zar3v7Cke5O4gdQSE5X{pO`QdxQMOs=K%S1_IwCPv$aahOUvs49UKD=0X zRknEtc*18~yxS6J5=w{iTrRK5v#DpyNzmt8)hW?1!_{qh|p@g@h_ zzMu@pliN^QSsunOWsqAqj_?0evH4&rmecrF8+n29Q<8KamsriM@$)92L8=oioorOq}Vv_oCv%L%FsL+>F^~ zeb%?o_&kgc5#-;yjqjS%KbM95=rrPW^_M?GB+YvT3F~+%B^B36(W;TNWi9my8#)?f?uC3Ku8uoUl= z28&TQHYk7Jidly?qBnxjqmQg;R_OVg*xU`i3!s`?jJe+rHaP#Jd{CHN?#dgM?%V0V zFB!_@a5~gjnB%%`nCe^a(Qk38xuu!D8U*;M__x0>-te6@)K*hZW4QrJ6Jz<7mFULm z(p-E7W|#-xSHRn>IgP#m>=|D&bE>*eE!O8GtGU05Z`u@-l*=Ino>;l^3h^+i6ypM? zzHvS+_$#>L{xDW_@b2(VT&^hmp$)*>|6R2Uc+u__U1&Aun+U!X=P02QFh~3&8>oF~ zvJ#@_KX~w4OlpBRp}SFPglqf4lK@K-oddwqM5&lm34jaG-~gdEO? z{0m^v=aaO&+#+zMc1+>&!Yi8Xn9K9vZRT%Bd7;mvzzBVw^&E7-{b*eY__1;aou|Vt zGQGvsa|_P@X>n;TeHeCj`^6yZf=whM@1;a9>V>0O z9?|Goxf@3`zD9~X=x1~%cgh_n{j)1TTTXbq-3h<+B@L7BS@8^O*Z(n>xfjj%{Mj+Y zup&Ua{RU|1UeZblQZ9O_z0KQI=;?YB(wiVfL^FV>vC)P3k8oIi_QHl{NJb~)AlXjV zo$xfU*j3m|6RB406S?@7?a$YX8hW=ulhCK~1YFlT$B;I>qFdd{t^^?tY$oH_?)U6h zD#fXQ9#7~*0fB&|jOW1%|6~fD$&nH$l}@Q-N@Y?C-NGM}0wMSWc2@*i@tp4mm=;$f z_A-}z0g0%V-l!#>Y8e5(;*q42*DxNlCFYuoM1M7>iaR6}ap5eIS?}Y?8=t1aPJR2i zuj5;3E1`0F^s=!W9T~VDwtqEhb_r(~TPgbV0n6? z1n#2B_cN)E9yL#KlJE;+6z>@xPQ3@gz!6k1YLeTY#4BFH6N^?UnTG- zu^S5ahwu9h<^C{u3I$MZFW{iB8!gJQ*de^Uu^$47C5E(>FT&<6;kv{o+y7(j&Eumg zvIpMoBn?5q8xS-uNYpTf%}EqAkwm*8fo^RSMHCkljWW25GTIF&5E{E%xpQrZ>*$O+ zjw3VZxQ>d5l7uZ0SHun6Kt;Wmh@i--koP@R_jUr~`+eRYkI#p6-C9mnojP^u)TvXa zCjVV1cm!LY5e1H=;EpH_S75T6zE44eA36sEp2e^Fa4yQ}qnwM5RARc3{x55&BM-eU z_F)*&aBr5~9sXCAl=o#xsmaFW5=Z+E&=2kX1?|7ps{!cj{|~0^VXJ-rT!$!#dI*1h zW{7E)BlnKwRWN9VXT!`9N*Uz*cnb*d_S2qfG)QOdJEqfi_5@0&=*)fuxxw{cBRbUx zm3q4*ITT^x=9>-Y+S4KMp@G@GWXH|B3qJeyl#qOjy>AQ4+Fl;Z%n+;QU)=?>_sT+U zq&^`^)`!J(V)ovI8ipY8w-G;kZY*I<%so#1+Cwo7Fk9;F7chDOZtE0R;rdTnkFq#E(fz)MZ~G9H z*&az=5Rgz=isEZq-^}7~_TC%~KXsDsPv%PXYrl`>1tZl{=-$(r^e~4_cGo>YGs@bB z|Ks8%xfkmSY?Xbp#wPc6roGDVDE>l^()|#J60)z2H@ofI)|2+#Kqa9056avjuz@JN z3B=!bv#jR3wON<9hfCJw_GdO4`BNpl9+B)sI_8K7knNAHUM6JzT|zAQX($4ldRdsg zThZPyumJ7JJ|x?*j%rEg*pBe_(`TFj8&GzU_$m@y8 zLQKo;?t>{K`izHV9?e$*DgLK7Nx$mtT$2u?Y0e2ypG~BlYuGj&3a9bT20{lt4@Q-)PCpBD= zS32}3mt($LsLA|G<> zw%iNp-|YQX?s3UIucfWI_P7aHOmcH-XC&)DGVGf<{=@ZQb+%BiK*){RB#PTI4Va~*EX1jJSo2RA5tFu;11 z#@%!UdLJXTT9C`F4{g=KDQad07vT;<5n*L7!nF*aKrV)3c#--=BcN5rqA}yvHMZk& zlqA>X(52B6Ia#0|@J+w~_hpwvo?p(m-UZtnv9A{OXs=RP*>tL3P#KV)&ZLxCnV+bnT z-gBK!8|it}AsX#+(ZU2p3lkQcj|Ru%I^1uz0=EEFZG6>JE1@M5ZoHn|E3!~C&#wGs znQ?a$d%=+*D=x12FHa85i{H&2v#>HZmRH#`emj;kyjOtwi#1jDYc~lNc@#0!QX>l` zTZ)q zmcsM!=pbI@X{mS$pqG-Ltuj3lH`}Vm&^%9V_$qrE={t#&UFIn3YMfG!s{LaT8j?)U zl>!e$)O=!}bSS%h(?R=WuKOR=(@U%c+RU>?fcNnwhjO*;RKo1#xw%cP{rLzdXBOn? z{-lrOTP6A++axJCQdU&1WPeq%`sv)=zI z)Macj-hJnM{cPHef`&#cd_dzCxF zq4F8NtK!d#liLSEr%8Ce_{Md^4`xESUO1CEH;*^lBNa>Qj&Zo2>*@!p`@Iph&ZdFO zq7|Pk{(LV^aXgU z6O=d)C`e<0G^!A`I;Xn(RhouH^%s?$o%v%FU0J{7qDh_mfS|Es4yZ5& zFeLg_;&Gwm?)<4;BMbs=ii2}vc?I0e?1Mk4XhqYE_srF;kD05vgLGC3R=>(xs z={1_ZVv{37&*WSp1}8YL9C`PfNX1PB_|M(SPIOp~pXL3hXhrjkKG{ad0+Ve7quw-g zBLbhX@cgo?6iX7hNIWG(mN8lJ1k7p6tvIXUqpLFzL?@T!wLYmL)29H+T{l`Aw7h|T zx_%9!M_d)}+S*_Ahg}HAiozAQa8wdh_C568>|})s%^Wp+EVx0)L9e^bf#uz~Pt0>~ z`sZc&>2UteRITVDh7P<1tUNmoP+v=p26ZU4ASd2CvD+Wx&NoLML1qUoI^RY zcX9Kuh_7MZ-Dmn5eXm|G?|aE5HY`_;lLM-u4U;~Ut+0~i>?{AsTH@YvzN}u1D+)W| zKfZvu#%$mOSk_DLMB6LXP!0t91d6)yKLuM?LdVU4dkPf3GWzEZ`RRZ!*MCp;J|^cz zY?P8PA7kFdjC8V%MdflnIThc~nfu&r1tH_!rI_)SZLTR>V=O!@$|Xu%f-ff#XE%vG zmovl*`QYUx%7^>?7-3>mEH&o-6`dHD&;Lr=#FjuAKQNh=Kz}cAycalH1#nmTyM{*> zv(}q|iNuUD8dpNID~yG6f=kcDO8s?X?n!{ucwa0z!xbOh)K`BSFXtG~wkUrR{)t?m zg)Q<#LU`$J6cr!c{H4%bL3sAQW=h?RrBHLuL=%IAz}`+AF&Ybt+#TKzeC}W8toteT zIHio+UJ?Oj_Pzz`<2d#4gKEWl`@-NP)I74VQ$*b{8#Es{SOUtHRBrsr0~^beZS1H| zqywOoJr`3yw4?x(gcf&~zsgAjNWYGvJm^vTZab>S5rs2!ux%_%2reduDpneEX9J>M zZloBEO=08N_rjT@5n2QNRc;7I**zVt%XTO@>n+9%SPWZR0Kn-8aB5PpqaXnW%pn#Z zjY{HYz6RFG_orp6I^e09D2*rG9&S?1yiBd%ZhOR0yWAGkP5KMjJCvUDzoloiz&z`+ zu0$Ud>W*CNQTIp=bdr0!zk&qgo5hvUeg10m$5>zC6Pa`OvFs%se{wg5p=*qn@9iOD zGSR%(C%^Ia6V2X>@}T3D5JPK0h>;H^e!ZO7$B8vkM>ETkdk;0{RzSQ>F{bj*WD&2UsF{8WDCWTyK{`WcdG#F>QZCg_reTc?j4e9UJjJ= z!=2lLaF^wLmF)Lb*#1S^u8dzBuKlHKhxxgEd0)K^Jaq)W>b|CtQZL`Izy4>5l5kTs zv|C6oH)8gQw2Tyrf(z|Oc~tmvuC$`pGyE*wfQOPU?@LXw`}sT3Na4f~#rLnpM(QzD zdeArIQv{t8F)tV1(~*$XI43vxjd@!j7pa3A8Mn|9S@c7TL;Ph8u6O*PE3`yppU~pNb)>Ty5h%1othPdnd$@7yWP^@+ z{CMl}aM-8nCZhcD+ys6g+mOFmLc z%D4XjQ+6+;u41W`5;@8VAoXd0J=`kK1YoO`-OtN@N$r!^&#HZsw_louRv>EK$XX|! z1(hC=OG?JV8w>Gpe>BtMo2kQs#=@2CC^mfD?hi5(MZ=$wOFiOYQgqd$?VS)SeP<)i zWgU6Tj&o_ysn<U>WhGKsxl|Um z|Ev@Lg$cl+MrtGV5b9~9x(a(&w~f%PYqFcYM>nR8^&^DDg7aT)*r6%YxNZPMRIxcpq{8A(6V`+kFT*)OX)IM-`Yi&T`hqK;5FC`CA?1Z?&!w*j1k z(ttBnPB{yy;JTNQmYZ1Np}mg4>6VfD8-)buS70&SASr-TAL0T}Eg#RVq^ZygP0sTf6=(Q^TbluIPqyqs8TwJ&fD8(T&B=$rP!E*wqvX zo21!SCRP7_YkWGF>$%=Xw;(qbr1l){;^5ATP#`$x=0X-}-c-3EnyYTZU00wb;Vnuc zt5$g7b_(66!M=Et9yo8jWd4JY{I&rgb!yiHX z?$oN-J*{`D`JDWfqtzhgMN2`WI(y@02%YTYWUzTS`!-JxDvo(ejI_LhWOX~?74bNL z_i4#Gv{z!EwBuA6HE&>EB45X`*iOIH%S$dj80p`OxWx5BnxOaFx5+rvt9!9ZZ&kL+ zsUnZdr{rih-HY!A*-`PTB*TKU5+ZcFWzgCw%cf8JqfCrq1fPoVoryF@CS!>r#Pm1t zsOSJ}O;j1@URt8xLw$X17+ky;?h-8yI_l{7eTK{VN_zJ`W+{#$&Gaht)v1$&(J{Y* z+-lPMs@-zIGw8f1xdmMXzmJhr3()U>~M6iM+jVRq9mabkKLr7VDlpwD`z+P zFkwY^&c7KH+Sg7E?zw!rRiBf!N~xV3s=Do#^D&KgO}FV1GJqBL9vg-k5GLP-&Tph- z4=5~W8!QJpxqS}+NI%F+|FbS%;CLC~s&c~JN>w=_NFap;v7?%UoO8*Uk{nF&%H;Lsdql5d%9j> z_Vnuw-Cxy0)mfK6xaXGR7<=6+;qv64#DIgJ4g7!~>~fSLZ;7#RBq~ND^*;To>=c_? znWJ8jjp1fu$fx9Mov31`0P8@yFh{p2Hva zt%0yuZgL>A;Y2}MVD~fZm(^3jTO@=E`VutA;x-68gp;!h+)E2Hsj2RAF`fU~?tMAE zP&XHjx=kH`^N6L#om4v$R}~+@!)bZNRIV78NLoInVs3})a#4#*6kerTD!P-ZvQd~_5?~9$l;d^1O{ox-30pEqqyy9#-?B^IMflN=NpU2{a zjXY9-{hA!h&+{_0ub&D&E*}w_bk0Py_z1s!wU^VgpTf>snNW>GX9AbZ3(lEQ+{Z}0 z%`8W!kK4EJ?Cu8(db=IOU|~AK15=_5(r;ZE=}XC&+%pJ!)_KpX;P1TolSckb?it|n zhu9&>J;&01BQ=8fiS^dN^ad7lF+e(ka(dTxozNlUt$Wu0gSZ#=JvV`;xnUr|P*FRcdlqhx&Kv`g4fqKE5?D zBMs2dCe|zal}=hZLsL{vQ1yo`PHLQVY%iz%GM`eXvDnJa$K_9{8fm_^H_4IpXBg>~ zx$&+7C6{lpI}$Xi6EY;jq6mX)e^OpTt>rU3A4PiN9D{XQrpbS z;#+8q{Uj4#`pl|_z32A|XT6Q|aG^NfJts@zwDCsjP|(x(7V`o_hJV*Fy2p`$=g6v- z^rF^9@<-pO*K`!&wxzhs4cMpkfg3=aJnb%&iDDJUQQz6iw+SM#?a5grosM!Jjk)6b z=nq|n-$HZ zg??K}PwY9}OHbXUzAG1X1KJYVff?2EUJM(Pt?Zip&Iy#CSf3rhuOWwsx!$>lZUav+ z27~L{frvDnr5CAsSwP6GjL3xBD&mnqi6R>bl}7yV07vi)JYn&rE~9&nJ()50RzPFJ zfAYoNNOw;vPFJotU8x{JSWS@^D3O4ZE49P7BEa()=V%3Qn1=WDMIOARw=n?}H_8%l z#ATQgp&8}^=w0ARe_0K>0YrB_-9(D+M?dL@PgU$CiZ@OXDN7N$;$1T}+ttP-hV01( zA-Riv!Pn5!;^ne0*v!<>Tjz783N0t3BgtKi@4uRED!p|{ZKq;Eg#XLRo!v0g(nXE zas7`2eC`CS+2t%GQrD~3!3|K3GgT(S{`g8r{IkSs{+ny0#m}Rv{tF4XED*YZk228N zSu~apnlP7IjZ|2FI9ugoC?85PvR566`JAv1>8JfFU*ZA-<2LLhMdx9n8WH=UnAD_n z#cVxF!~6+Lu?WiP0{ca|#iIl*pcL5i)#v#bdAbDe3I_g7JQpSwm<7%mO5RHDIz4tt za@PzTCL>2Nq%#&7LS{>j=5Mu8vmYhRB8y9}A zwrZ6SZaImSr-xoTaQ#`18QlK2Kw;j~u^q1dC5DrwQ5(vpIP}ppNbDcyTEVU}%yE^g$iB#;7=Y!l$;j!|7kWN08 zA)-X`k!Ef|V=aP+oP$A7Hj*;W?FrYj4-u|quD z)NK5}iI1=|EN~u{5c|Ob=N<{M87!!G<`87u)P$)(O7YgW^jJmD&eJd{J(<7KOztag zTxcfOG{fi9dVoKWH@WBZSY>k043F>hz)F+#eZ~?+|5|uUOQf0#i)21fuj`rbR}4no z#g-GiJ*O`cN?vlLbN@iVkxgt8WkMv(5FMu_az67qXNH_ zRAZym7vc9eJc0c%Y!V9_mi-#FI3rIEl19p#kZ(ymmLQ_$Xp42RSM(D8hdqV3BeB07 zCtu2=4mK9{$MVVHrfWuW-K!#jRR+RFb?={BWs|a2^r>uAFD)(*rD~BVRWVJ9!Dg|+ zmHmv?@9bh?YkFC5RlLW7T#=(Ef^Dx`{L(Iw+ntf_{zV6%10EA8U^lzw zgtWl8eJo-Ik8TWb={t3hNZjTYH{H(tQRLCRgTM=D7JCl9>gbLxcAN(%C2$y>E*g&4 zQ>PczftSS;^fh#0v_;6heYA4idZgNCbk_Fj+3 zxx|Ofu?5a%@j``a0uXX=CTRcYo7L2kPdB;zm z>K6+qYVf)Ae*Y-tkT|_VjRy*W{46TJ_M-fiG1T}B9}fU=E|>h;pZvuiKB9?X%0n#_ zxR{z1OIt|C*nx_Fu*7NT&gIIfD{h}6aUyOjtvR<3`x0Sq_yQ_0n`Pq7Jc~AFrX6Ho z|8{3=J#j>2q^1Zwagg{`LwDNCKK2fB$%TYdFHr7fWXAQBg82Wy3zrP1jI}q# z_p79+W#LJ{C5HAh(&COkoEh#HbkY95l0mJyqM(Dt=2T9M-B5XD>{`Iq30OI(u2>ek zSV%G%xRxltJztv6VVKgat2rwZ6~MHjSC}mJ$?Jt`A*J)Oh!kgF{!~+pN5`8y#g5uD zWhZ%Z(7_7)4#2Cz@N6O2%+6`Xp=WeW=P1*~**cM`4 zz9`hoX&K3iHdzPW(Bb1eI$f;4vvj%v=}@%KGco=V<#SDeQ$Ump4`iK7yO#8$RHD2e zdqE*Xbt9w6Q7!7&uBah}c zQttzZaK^$w(GUH7l>>})H({xP?tBeWNZWvP6y7~k&?;m>W= zG*Qf?&QzReyOyvnyP08F*qi$xK@Po}aC)UmL17ayRx<<75EC2d+#>1jI{0!*84O4k zQwIeu*?IjyAXbbmnDvP>k|6Er%>5V|R4IDmKS@;Jm+$-gxZ+5YwVqkwlclFR^6h7) zX}cmL^>@lEBk21DP*@>WA=%D}wA&Y*ehspR;=8V#u~&R$A!iJiR_R^(CZe2IXtmCV zepm5J@z?ttCi6Sz3Z}Qk;0)?`?2s5ZTBZ@faE(lwvhAXz-G$Y(^ zYsBixK6bg>Ov?|y*Bb8kdiXuNV)@i*Hy_Cbie*S=nHjg_^!vnqsG0_0;wuF*V_2@< z4g1&F_aikS#i?6|h+{Pc;Q=);kPZ7Hxp{1KrD+yc+el~HsGEkmen27?nrM8}s7yFT z_SVmS%Q49l=(V4QGlMUaO3I{?-0|un9e0xe8Ufjbt&dBOJ$-TKKqSon|YTtl4!xXAS=w2J` zN80uB!WeH8V8v)nDFjz?LoC{FmpnrQuDR1NvM`LsY**wx{PSTyAIkJRh9+%Qu*2M@ z1Wfq7T_JO2^#I1Gnmj)nb7Tcane_pbCW`T`+$x*1op6mWZDS`lZ{Z^_AAG9d5jwXYl9zfR7F4vZ#M;m^XBcm)C}uZYl`- zKf(kEclnWIQ%)r5I94^y4$ z3OW)ow;7ojvaWbvJ|EQnoNlU{riw`eHcSkeu^L{ksD=bIKII`c-d2|v7djYTss5mQ z`yjn)+JjW{GgW{$f9qYq{6K+Xa~Xa>L27+bD)>3vj~r4Z!~cOJcX=hRE~hf{ZWFau zV;k>(U5*wv(0StyX|2oOU&g}hq;PUmPME%s+B^j}4HC-a9ppsGr{_;g;HLE~c#Hr( zwZG7zj{dh=MqVn3;g*p_{K&6t;o9HhLm=>f$sD$ZjUF&8yd3+8sv!Ur=`40Ui5oXa zVnE`;)_Gw#5f0#%!9`vEPnHKI3lVz0&#u}|GqU9$*X1Sd|E>H*9m_|pKG6Zkge!0* zx_gwlE_RJe|H)e}^~X<&TIaHX3Kj8iGSgRC!Nz(=jAxso{?!pbFC6_C|0rr6r1p5a zJ;^#@FMbsKme^UhW-im!v?#K@1Jo{0&5x#EE!2bt#>lX@UJdY=( zo7Lj;H3t8B@%a+=8*T~Al}!ADcjPa3->3HJyf0_-z9f0AsuMpSz>d=X_*XWoe^>bP z&I_^HypX2O!qD|&W6lo(uVM_kn=!mGk-ow!QnvLrER}!>n5pJ6U4h8g<-Zv>IJD1 z=()oSF*v~9{QrXeN>|Bk?li9}6~JXp+rs||n_F9C^QI7y^`|4|PgfCXPY((!9z)Zn z7rC9;?;Kq@Cb+=MBz;$}Q_=sl59;^$Z{n=cIgZ$oxpbnw;r-sX`_wP!3>=|ou-CPp zL5dZl^J6_1*D)*&*yZ^eFCk>FoqJc^&+7c`$-Wy0ory6&6 zWwYN)c4uGvIB-xpo9dj8R8-KHuoC3WakjeOy8MIL^5;wW!-f5+f9>}VSvt2W`)H91 z%)LySbEO-}mQs6y2pv}MkbGOiM-Ldzl>z^hDyRx1aEvf?_~iCTxwP4$d0FnW^a7FD$G!FTB(|XF}8*SrRr!mPXBUis(wv?u$}T9EOY%=<215 zeD$;&@EO0$fe2%ON1MOEr7L#br0gl(bMOb({a@|CQ%(g_eg4my zXX~0DQ+RN}O>J}`N6jlsxjTCMV1~S*RzTUS!e)Nr+VBLh6O zBx=qoie&Pb(^OxJi|vtxkV2k0@=_s*pp3s7`+l65(q`E$$V-h`k`zs$e#iBI=MtGA z?el~6DO&rk`6FVM+N&s9R~OwqYYn>)j5X`&tNrDf?<STkBgD0ZTi!eWEIF(Gq}dSnah_^Mw%a##K`Y0`W9H%V>2JC2Yts zl2ZZE(vW&@c=!7L?ea}%ES}VOJBrtK)%?V676YLn$f{b-!W97%?<>Uq)m-w4^v;ojanL$`56dM03wz2FLKdUJVPxmfnsZdGi@bf$h&WAwK)~3WyA&RUXn} zelw^%Sooc->^0fXp?zNy>!~eZhjx!MJUQyMlwm?Ug~B2iKPrnjEgL)rz>I>^-bQ)f_yByd6)(1sPUf|i6UUXM+;#ssB1OwHWkC0R*SggeR6?_()hu}h?zn@d=!`HvA7X^yogK<7J6JO^tfSh6P*=Gx7A5q zS(7@wQ>0^cd+C$@tY^nXD&D%ehbW(t%ksH~8vkBiy20_$Brtt;X5cr1ar>f|JL9+e ztTZcNW-<%J^0GCdMdil?eXmS-RBG56soiYfnH|01rHUMER(W=IAS*iT?qBn1PLqd8nT4==L+eiBy_&05BIt>U-2W3c7YIJ{q8C$Kl4ta0jGuSf}bRp?5#e#n(|fT>Ft0Nk=d;>85G0we0$;83%qeNV3Z9>lb!rAo^BGDRa42 zd)f>fYR_wg4ovrrBDC*U!1>CWT3-+WI?Hbv&wQ5D?J3GD^ReYpswJ?22>Ivoz-<1| z`DIP6$tvZ#Em7rG#Y(KelLWDbK5?=1P&fY$q&F^M&nUy5?kaV6E?3|QTW+VfeX2lX z(Wao!J{@jHftl~xcT$w@WnNOxJETYtzylS-c-uoN)^ zJ8lDM6^h2IHW4POReoqldMZS2@1<&nW8VvEINnuRmU}=-0b>6mP3=H!+s3kC>8jmN=j+4##n1wk@e^#&Evj_MZMw2Qk=)q)=mGAeBXVWY7 z3_Y&Hc?>q&NRqLjR3e=MgahGsQ2&W&`&b$<@$(o zIrT1{0N93EWNz#sXq!RBt}S?iNc!9BnvU&xoPxSN=Sq8&klfy$oR013OF6`x1KRVo z?vRld&gE)Cg#NFio#7w5eZUB7HC1dyODAcnE>B`Y zzLI^V^jD)OTaV|0Z$&3AS|xMHC$prf zpT@3%jF+i!Tdb=*0kRns(}i;}8+ejqkiB z^~PyHR@*20`ezj(AU95?LC@5A#PE~~2{AlL2vV>DPpANEUZ7DY77=_+2TOPlPbHUH zftOTZuoVce=}*aWa!t{>f&_2Y!7#zeIyjoQ8C1@3oG}K8n=_mpLf|HyI>C-89m?=Y z_UK)_TM;;qczP(@Whg=UXN$?28OZ08vy+^bz#H%NS9#19+j>Si82Df&Mif5o_OJC; zG))&{%@4ih(F(l(`T*b1z^c{#eY0k%Bf6btppiJGe`s8d4;UbQ0wjC;8l;*r`R1TW z)RbOR$8+boiSmPDhTkapbh;on0q30>R}4E1O`w@X1+CgFmHO4n7wWz8qhb& zkJ^-Gd3BwT;yHt4Cd)e%86nD!@<7>+MAgU5ph0>e<`K5oLqcoup6x3J!bMjFLMHqh zGo-HGzwpx%@KdAwYY8;+E&nc&!^!sjutE+3)e1ET>!tr>yu?W{0!p6O@!<0eY?$B{9UM*YdxF;Rac1D} zI;XJH=TuyQ8F*Ibn?T$~g2uw(J?8`-A!K)xUeXoz>#|gLlrOAqqXES%8=GD=#+Y*t zowkO|q)^3=Gfx5k*9y?uk6Hqw2*^KkNFNGBGkG}ucrWZdQF0~+9RUUSnGiqSszJ(7bg{)RkX*`$T7l0=@Su78bSZHt zm;F|tg;2z-RBmx91#T_7+7^E}x9VY1>_yw@Y`Tf{!bo93#XRErQX9T6f^9MG?k1!Y zVvorLi0|~itwC2P_?)I@YQ&&p>Mi!OKex5z22{LNHH>64a6W%!&YI13*^`|Si^A&s zHBd}^zb)ZfI?%IN9%Hso%C;hQZpRjI4N2A!um0AwRdw)6TD|N_7+<}*LCK^ydwp^X z5LZLL{9<)7C-5Nw9*cE8mwmr0Up*kxZ9_l$tEOASc?!wjkyF$eErGiTsqTu%H=cs_ zP$mXxf@dd61Y*QwGMUTl-6c@{!d^G<#juazXU=GleK7&$9NQXljwH1ND*2Ir=^gDJ z4^%@g%r;~Q4Y9iYVL2<~s#s^{^NZZbVE9J~1R)25s+~jmbAY@n`vv>(Z8Y>G{y@jm zTzt3Ke|n-bawW9Ah&Xs-OJFAfm$hynDF0~Q+wH+myr9hL&;YR~F{`@M29{U7-dKTU z%S3oUxn~9LpuH`@pe)1f>v*>ZiIv+{;*`h?SbSm9H5hBwgLrH{b8c?yA*_#b4+@7J zl?TO+L^UC;yiygDV6O|MOjG<*oY}PmcD&hNwUj162U&l1==8(1mZdj-XlohFUbjzc z0r5A3P7pI5doY8<&cpT=2Jf8+Ehe44z!Q^xoeC_mkwaXpt#EO7^ciQTG1qid{h)ed&|D(^={54G>+lMV8 z117lNzEL_+=;U2uS;aIc9-#ouw9Vg)(1TrKZ}2Id1cY)R4hA+5)Y+=a&~0dzR0PNPM>LH`mS z?Z(D8)l+6w6J>D0BJE}s((P930Qu3Xn)^ayqt>9?s8N)wp~OsIk&*fu400)skK^?I z0Q0Z0LMeZYnoes!Z#)xwj>9?%Vi=g%b5QJxus9kqyPYDfU)Y`8XQVgBKgC&!Xa98{ zd1D_~Lyo3V;z4&F)ucDaI1>)|DCGAPpH3~?Q`+Z!d-9`RR6mAIFbQAA-M(fNFNIk- zUEeNFi7Kk;Es}}*^((vPkVmOAVs3ZXHi3lpbQIrdH|Zdf%r~q1wPN;bermrnU+52w zJy=zb-pwz@d@8vQUmSTy%P{q&+!0MXS7TMd2@EF_LFYt3w68}p-aIbc&mP0sOO>6= zauay{_5Qx8Co(byrNt-fVXi?^TO(A~pNwW;0eRGjU2=iKgU2BAw}ufGZX;Fx*)P!^ zje&cROaS>BAOIPAx^=0`m%rx);K0)j^0Hr3tTfr?=LwFsoY+LT7W$U>2zqfjh021sM<;-;AeS{dnB0>a3nljiVwJF#JQ~sZDdV(w5)Es(jqgTBczE$J zX?9SW8M*+@!DK=MK=jC466`Ij9BweUe=bWysJ z9!gl=7gT|$bzwNT(C@Gta`gxdx}pOkeH3v~>zr`tIlp6M)0OH{X)W~`-7cljM0!$6 zOsKb{+PeJch`FN%mu=}Uq$O7GsW;JY_Edpz#d`K!R@DtEqAk|TP8}mXs~Rs6>{{%{ zk3$CHo>RWk;cz`+C@JNj+VWED>sE2;JwF^B?Aerl6J-O)6Au6TaK*II z@grJKQSg+?AF~U1euCEfVtrhm?|#R>pkqC$iK7qadopm~rQZ}+k=gawy=XM|0kW_U zT+!cW^(y2qI%eb9z+r@573^frzq=rlm+&tOReV@?S?eFO{=G>~pWMLx> z-J$UiMq?p#Y%A$-q=M6sx)D}j#d3kZn7?9E2Kbj%aJfGVy}Dx4jNV**>e&|mSBP^A zti5`+K2%dC#H{fZBK1;#EI5k8Q(QG}l=lj%IgJ^LvjE(A(O-PJ!gPMV5t$0VeI)i| z?);DanWDG|R%nHzYPVOLd#lY~g#Oqw+;x|yS37^98B`Uv8 zI!ohW5I}o$%xOGw|A@7X-w%xVJg1!7{uOI!JVtWJ3ZWpy7B;RPL=Ms3>4^D_%YG$? zEH^sh-o^#H_lrn27VlS!k-7miHkKR^d67isywTm&2810!3iUE3+=ZDoThGrrc>aM zV>-@Ct4340Axd>+xPG;Nf~eFR>I{=yr?`!buJPw)@l848Sh6c|SV%ArHXf?@V(NFJ z(rt@`RRPaOhA8*b8!8pdsJX{}SOKMh$v}5f{r2N%X!JEz>jHTjBvwqpmg{NAg{qK! zomaxXg{;ZIC#11k>Pd&h7%M@mWTq8FYClg@7WzOhG0e=?YL_1kxrGu+dmEB>XfHWZ zDpW0)C!p-(09##AwY-rDaC;erm4+X$Y4DoQt-!yD7yL9_L3?Q101B0DuFk{~SmE1m z9}Toz_z2INAwb?$U9tVH+%tiZel)w!OtNRlWjZ9Bo z_Q+{%bjRSW>*#t&cYU$|mla5lK&p;yTn&p+DlUPtjX2wDQtr`OJBjOP^KF%xn(qLJ z(Xb|DZZ;aCo&4}VX@gy)s{Y;|yHbw#T)a_vI5R58SlF|KQBIWunsLNnhd}Fs_W5cJ zDFdn=@0I?V(v5caBUm(Kng1<527UOm`IqB9b))@dArLLMpBt}LJozMgYR`do=vS<` z?9-0*EhS5qz8Hf7=Ox1LR6H+v&x z6y3H2u6KjKaRwxltH?;9XMh$6Hk`Yc4*UUwHZ3-EqbLhp3F*Grbync*7Y6un3CbS& z4@DI;6+`#hH6p@@|A!n!sQVuSy@jDA{hHL?D{uc{ zAJ1rTvQzxm&hFj(>xGCA!Z~juNl2rJrJh{_WV|oM8;B zo^P86xC6pBOU2#%SXC+hW@a?@lts7&wTykT${6S>{jdVtC&_AX zFdv%W#=+8gtn5_2K+`~pWUjKlp|b~4MIbCtugm8;QnhjRkkj}|P7ijPQn)xFa{R|2 zNz3tngDpW(gfAviRJCsf1keyk83ch)B)&1+IbxN)E}O zu7--Wf(%13N(sEaSi?(MY>wO!IQYKt#EVBR);N-O8YXOL8w%}py$HA}0@YA1 zVWz!?UPXWx_7vLEa^NLoS7^_dGFH{U{(#W>pei4@pRoM10^?|m^Uz)yLGWJYdXe3vVrP>;Kv~1BncafNWmB@Nz z3gp#+e)ZHF^#IwKLxLv{(dRH?bZ;8vOeWs_?j_&iM9gi5al7nnsR7)l+f=-6N9Z-; z+wAQqr?`YB7_697cynk+;MV5^(}vpmuD8=W6|$dKC^pwun_pre0G{p77zMAZk2>># ztmy;HtMRi3pf=>zCEry%oz&K(q?UoC;NCu-t#gzIMU1-b^xzTjoh zoW+H>gmL8+;r|r0D-Rv@Ylf_8=mE_#-&3@1=q z?0@Ts=WrJl3rfV4Pellbohji>pOahmK3w_xolu>mO96Fz7I~KMiTeAi>wNJ?~YC=8E=X!mz4B$v1rB`?$S$K73aU=SZ6d^RMBU&*#n4C zi`+p>Q7QY=$1b#lP`8m%9(9TTMBqWG*O1#>1-%halbkA1A9FjECp%ldVBI`6jyrm*d+OG zVzbG2>}&aWfsaJFFZPjqd@Ctc;$kA+ECWARjnjIiNU}{yw5tAGOEu;)Z%aSGZT@3K z`|Tk#MVyd|BdWA`T1QQA5h;s%(I#zD`mQX=A2JHk>FZUgwjb#97;?AoFGE8|7EUch zkG>5y2E34(!{Q(AE5+CJES3R1X{&5b&dG;`Vh`6u3+*eBaq2Vy+$jWLu1^MXR899$ z6QBx*4lljwDd#T=w!$;*e4b*Oc<8mSu>k-$?y&m#+7D+O9F)GZ?Q9Gb<)tAdY}J*1M$R3$ygT924( zq;`T5cfPA@ec*w1c9HTuvgOxE`84GPpGOM>``OLZSPdBaX$ZxgugY{#84;@YGsJ$d z#0uQ`AJLi{sV<7ddZqcydKuhK9SaI#m8g-1JOvT6btju22_ku*vgIaL~Ivc_A1@1GP*i!++u4@$C`E5%WV+c()1Y8hTc4Mejt zwhS+qaLe$Z{P3xyC-(|V%W$#i@Y!9dYDZuuPz&PRpZh=T7z0<3sYBN-ulIsNz)9y@ zmq=@d2EKTqzb}3aQ+Ln=>B5fKeAQ;;uZQfD3S?=C-J@}FX?;7(7GoRK7D88Vqp=Dr z^fU{v+Q%nr|CJE=n}PrUUBK19Ho32OPFreC{BY-=R4;UbLRx8}jg(xjU@6i2+&IF1 zRwgb+VH0*WH_5MH8Aco z`9CA4t@WsS`qIA9&xv=MgYLK)8635H#qRi*&7I(}v{-PZo?;XIo@al%S9E*oJ}5RL z*8(2w{v4~aw{{gv`R@eJ-w@;t8^8U*T%k$S-pfUA^~@oX<6B{kwcQjg4pglhhjGFG zn9+(xH+$YPrr{?L#M!u7h0)pP0!q7Lyu`U2(c=L9@0f<&`{#dO>QfgOE>UXD1MCOQ zs?#sy_$waZF984LD0Our8c z*W&T8C)>eg+537yj{bzlfXsF5x1WazRRE@Lfx6{eyPXQlvK693Lw6ajU90I(mqWs` zH$CT;Gvjc}G8LKm_R30)8|KN4&H z?Mkci3+TzWrl|KPD!5~s2kYPs5stx^J_{c zgt1{*E%8Rf3R+pVnHi8LM^wl~xXb8{FQ3VrF^vqBuc(jJ84b*bouW(eNl&eKe#N$# zbEG~{Tl;=;s~^q2bBPec-o%XVZI>F=Hgb9VC73qA;;#TEzL@gt-sg^@f6~m;iV;17 zd{mnoS|5fE@VB69;jI^=VX)u67hfQ)cVnN0!pNJ!MeX-Nan(#3P)%aJcF;P7}geqOk zGN!m5JU!mP0iEEM428eeW%~QT{;YV0{=7J`evD?@^ZyLH$V_9ywcNgl zO2V1xMfPYND7QySK30CvnZo)|b)kKzG3}b6H_|P5>Wp(+Z>R?}9$v&n{J_`* z{$~9-rp}~unVK&uhZ?ubJB`&w!}c1JJI1KM@B>tnxxUzM&wUz@6*uPB^#w3Z6pb2} z^9xw9{?!h-DAozcUE+V0!UguRozCsn2O|V$U$9lnVSwk8|wA#GZ4Zv)JzvdnU>6F^N6$j%@6(#Gb3< z_mIRMG=4rqxnG}HFL+h+EQPrT?hS{!bZDf`Q{T+OgtQy~rF=6;5M2peCw{%I&k?;h z@Dh8vxNweCx;!uVu-TuRAUF8MUI0L@=0(Azg>BLBHA(^w^F)DVI zkzUWYLPe$Y`d+^DzCzSC$K+94W?GKj?RMs}s9cmvjyWxMRrdOTZcL%QGFL(pFEiXz z)l`di=i9MDF-Gb;8NSSTzo$s3M+e3Yg7-iZ}4y;18toJmx#5Z7=V{j{TK zvlVecSepoKVFI{7(atQvnP$o2+hK&u4^J#V=(&wg)eu zF13$pw!^EWkxj9SuyzpHA|dU_OfDB!OasaH+alNjmr7m!#bL#xp^7cBZWvUGBsZg= zEf||i6Mon5JHW=eL43i6O9{fAFlXFiUyIf{D(?Qa*o_2R?^1k``ims$DWU|Q?%jUo zNgy;v=m(20tLij@vSAjn%NjC}FSoO7x$=34FU2-k)M$>V02N$Wf04(~YUv{`o;sTS zJ$BdB*dvFdY39a&t)=}%Vf0*nX38rL;oU&sAA;+z1bfBx}FW?b}f7Y zN)mayJkCQH_o}vJS4K|ojr3Ob@rDJ!tyT;T$;ZhWFbvD33ca8B%`YFJCDQca19z1kY|3YnCvYq2Rve_B_7 z3+aJvLHvL7E#ua{UM?fX3ZyhtErZDW$ca7VZkEzbl0Vkf^ACMqo+KXR(p5YF+aK(& zM$#Abl(1|uhV~%lkqkt&+3MWI7}t|t;nWpzUz#rF9kFA{-CN~u7@QY07B=&Ole)sOW7(a^+_JRE$VpxQ_=gM)1QO*>iMYQFh8CRw z)W#){z=d8pa~l zIQHrn0!0=Zag07VY_7|_DHyhHWqNXv*gmOX2!wZWX(eJjSkvggT7KPk@m}vNgtWyOmW#kv@DmoP4jPnU=&BNdW|`ooj9a7 zp`~UtQ@^cYC^D3KVo)AsHG7>*x_!Z~G&nPpmy%+|6YLG`U^mICTeL!f#aWY)-Y%5P zvQqBIuB~0Z+OaIJIx}K5emaF78QUVUL&9Y2V$dc{DGFiFf!$5~P-iPylm$*TXiR-2 z1uW6v$h?hztMTa^r$$H!1TRWXeO*Kb9&VE-GHa?Ig)+lg8PbV5y{^Qpw^x02yN{;JG~CsJ#wjYyL-9pq^|DuQR_l8Mqs6-o)& zVo`HmR0!j>;sjr=uqDX0&t#*ZY7J*zREhTLN8MV#=&0|8d8+kS71}HmEc{fh&h{64 zs&+o5N`Mz75{Q0|JR%cFZwfuQx3|LuRW46bGg>o7=VX|nSF}iqe(qIpmOH7Pp9Jly z1wo%;OF5Ente5Y2^6fX+FVIbCB2?{kBGF#v^}9iqV%0vc@V9ahAw;kGv{t@UO;v8j zEsuD;ml%74_bJmUXqS0l{;t&V8vn?9->5rHa-FH8Y*1svBkteD7;rF~3HD+APHy1N z`wC8=GM5$`;pEp_#kqp(Z&6mKp03N&IeCXFUxF3yO||6_TdV4wdqoZRMRQ&*??E)u zY*CZ0h@C{z3nYnb@P!>}Qff^57ET<)R*jv#)*0^~&Ro5fdm^ir*Lza@E;yV$b+yPX~FZ=5;w<<5~tpz3}jMK_OmY zb^BX{#b#A3AjVhy$!3jxJu9pj>A!Ub^O>vH(n$S0RsK2(@pY4QfnyY(5 z-*{QZnm=|lC%T*~Ekw=``X1osAB@L+(zSnRQR_1Z)fG!;9?eKp78&X3v=`-IH^~Ma7%6#&qb9x4 zUB?l6S#jkxHBaxdhYs;d^ZELnTqE^g>0ky|RUoFCozJb`!}!f+v7DMoy?<{C`CHo8 zLl4g!D+->cZNZLZgrM0-oeLnyxSqFKn7lca1G%qF6oN)RSW=>gi|VK~Nyd)HCrC$M zG7kvKp13Oj7M@{rnB$AM3q^k-?MY62Vta0+_A`fz(0$* zLb!(IgCgr3 z#u1WU$6S0GDG^O&Sp4ztWxQMG>vVTi>g^ZqSH$YbK8N~nfLU*i#V6uSp2hx2*xgU; zy{fJF1I{qLNT#4l8R=%fJ0Q+YBnT$@iVQYp6P?pd=E$BoET3nxMF*vFUg^?{6&hX9 ztge8;ce@y8|3rrPrsTdhqnfw7IWdWkcI2ryZ@zkS`ri8(gUo$0zdgeG@msJbO4JRixL4J@St-aty8TTASBUZIGb(5EK=2&Z|9#MB2lC5~B({FyE%XblUBj99Mn z+$S-iOdZTJUa!sW>_<7v)bm|RT0zM^x01$-fuhdi4B}IWIC0vEsNYz7xyNRt#5_@6 zvS7lc`Vy8|-&woq46$)c+e9^JHtt3{AZuL&D9TkYM<6c4R`l(1efWG`XeQexlwG9bfGEvwbF)u}9%rWaH z_KRPm-L%FQm@CDoET!J1F~5Z)4y8EVLGqr>l!Gx23(2jf7Ll~mVowx8^3SjMaAx0# zHJHQ0w_#w1RGwy}o)kLfHJ2ixnpX)giP@X%B@$7df*tbLG%cL<75(l7f>2-_NR*XcsED?_iz zL{>AKl`TKLBWl!akk0g_`5HCf+ONEzNHaF5ee8?2DYATd^Z$yu;rxw4 z%77s|pZ2>ipyxa~1W}E+Zpqu)(~UCmL44s%So$L`JHd#XV$Qp3g-nBXc%MC^Xwu46I+bF{pC7rmiC( z-+KlJu}d)l2C6z*$O2iMkExv|`MD|KZ@o{tm{6Qhm_5jx#NX*76yyn8tGY(l&b|q11KD;Bfs*H>ozdC zA&=XH$#re$!86NcR@N@{5EeTbWW`PdHORAqtJ93MxDd!(`Ls5SXd`_kF)}cV^BA&*Da>I(b2&$`jLt>SXo(~^W2F^(9};rw z%*)gLbL&;_jx6L# z+^FM06+21qpXTCq$Su1Xxuoi#cA67F*3pJjnS@LgfQn^8Mpa~;Q%8YknC za%4eRsmep}taKc@t+yX1D=fIk{+kYz+jkSdg|6ri*!35GDzfwnCLU6B>>4}od63FZ zi)m0~@5DQgVp+&sXc6p}pCM5h+8U|p)Fiea)>Fkz60{yFUL=)Uj~BnLexE8{t$trD zUaNjzE8f5_$2QVO*F)Ppu!v%_1yg$T!>!M@&rdyemyD}fY>qh1niqK`O=3`s{##v|W2kc|8Bsq@+ zNMxWuiezdKieSc$#g|9#>>a1X(v@YKsM+SkezJ_ty zP-C2@exjo}g9O(5Q`B%%&d#oZGmIxj96f6EG-0zp}(BBXKRwEa% z#4}8aBJ5Y81*OzEk0Oe~B07+72MI{0%K3HHG9jczUi+8?M{u*H6h->^BpyxP1vhz_WwrjX1~K~0hT z+EuiUF+euN*DPv_AS&wedclm%C`yQwmJ0@jR_4Mk#F4j zA41uUp<9^osXL);l^Q4Wjc_gk1I#+Br;{~6_&znwS|7IJrD*FOn#FO*tS1$<;N)Cb zSwn%IMYA_%_lN3OQuz904jQ2lN}gXl8D|ly1sfW_&URcM3u0rW_%fH5 z*=La{7flVN@KKW1kgnU-Gc=&x1@nLzhnI z(k*WKt?lUu&Z5q|5BikfKMI{vwP1c`*ND{#i#}#-Nh~COaM7D=VPDIxe7W<0f`L`% z#5y*x^i=unaIiTo#45GSS70q2yOa`Pz%N^br38=61VYKyv7NiNR@8KOGK*e3LAP|yH&kcs2XxMJbxv~JK@M%>7oX4>P7VEeo3?QPxBs9E6zKvU z+;b__`Y)HS|6lDD|K1+FuW5pPxQ4g-X%Eqz1oQOhBA2XnkG4{f9zCJ6g-llYFIjeJ z@J9gHuS+X+*19aj7s;W!^w{N{*>`#MFOdHHMdu!^b9?=nO_A0o-2N#4Vza-OC0I;6 zN{xj`A5ruonLN}B%+L4E2r;u*_M=3HwJk`$W#Rvaw>JTgvPd4dC&xfQ;zVKAfFMD` zN>J3eMu`xeK#&OrWkpw1P!z;lS(pL5AUKI;9Ha4E*JDL@J$BUXg6-*;vLy8Hj0?|D9+UGq+#)z#J2Rn^ti^)-d>k=?q?<1aq^~G=udgUD)4UC1m*N{J&L|hXAjsH+-G%e99MWL;*|H<+ z78>L&yaM^kJLB{Qi#tbX~90y83x{_H*oXG;0D!G+&u^c8o8PV#hed7CFv_mEv~lW24(U zZmA2$$ow*2@3TVkBHqi7XUVhp<*KaSL-*Cp5FDsTA^u-&RwFu8S&(kr)p!fQS<1?^ zM0m~T3T)h~y(Vc3VkT5gT|ufI&iT#4B%j5@#)fDcc0XdAUDO{=bH!`0h9qdPtHH99{7MlF% zQyDX-L0`#cWA9tqhEj)(1tQ|krizHTbM-HxuQV}pu?%#PDFBr&{mPl56b?ooD9q!p zuD@3cb0o=Kf>#eNC*R`6MNAu9$ZID_G;CDN{O^VNE4WZdqda=E{+G!+9UU#}_HpG# zExfDIWK(m&fJ6d{v z6xg8ob17ptxjSXq32adQ@=pZ?){qRcDpyY zMSV^_JQ0MZ#egC3yE{ zBgTW^0aKZzYf;^It*mZ+{KM5>mq7|`2(XR>7NZl?f{QYo zVw+$oI_*2M`{WOazURB^B?<*g-}T+|jC@3RJooNXuxE9O$XY1cr9fkHytKhQANp|VIl2=cC+tdza<8q~*BX0O$0#1epVNsu#NpA6!=s$_ z+aU&{-3!gxY-DkE^NBl-i4H#}CpK>(`Mo1yzdWaklX&XP4 zy;$8 ztQLT~hScKKji*qD$Vhpu4HMxoG4H2DK@uP9V9Z-diJ8Iio@`1$4Lrpr=NehS$%CKa z(;AnhtxrE7I$cZn;In|R@t(B&?WnqX%~EntAQwPNu|Ow>`l1##?`S!Bn}E_3^-@%C zLUIp!`3)Lu5zD?4WHH<$ZGB@Huy;nC%+S_49^_bthcRFWKuKAY`hhy$pYqSpmNMOD zy2*OP{UjLmU*0As6qn%Q)u0F*`76l-j6-|#r}XVf{zOl=Ug;{T_9c5tC+rn20RIWf zV`5S7A!IBnZo-+RcN)CS-?qmX40(iqBxWi4Zfh$x{Y`;z4}_BDR>_QPnj!iBk<={$ zNkuBYDQCj@_pf}^P!(mPHmiCd2lwTbl$j>?gO*Ul|?V?hRfbT)0Z{F9QSg5Vq z>W=WqI~E2)gR9@JuKPWUy*VTCnYLfOyt*zYx=Nap7Mv#I5{#i*+6hMXwT72d*ZCcK zt4^)jMZ2t>#Kjjei7TT&;U7gE;#L>)$jgMtEobcWgnuhxRv(r)y1cD*M&eLg&-XgE zop>hi--3lL8DY+cKjt|kEP{y~nZNQ#ygdiRcB>3PDa4*v%Il;5XkC*)XGyIc~{turQa>m_e62 zSWJ8@7W?FRpYVfgCFEv7_#hz+=(?2OzBzb}S2r!bhO5c@mG^fgpY^h-m#mjnQ}t!Pui+E3D`FX`#MQx9j{pl)tvh?Sh(>cWeLcyBl;eNQ)9qw+(U&BUB-AZ9L z!f7UmIBl<%I(9rKbX;aAw|X}>1@ZjEH9qu5aY_>$dqO#KOA@@ECaz@x?g18WmCIf3 zJ2`S?Le^pExEi%nhPgK=kztG9#(8SU+llv`b|T*$ooJz*{;SALY;4ew8vIWD%hG%K zn@7`|3-%5Hd)0dga&i(ckjs6i_>nRrzQ&D-j~j??$jM6Tyju2S-Z8&Yx%Dt+=lQF3 zc0y-x%`%0d@bT3@^$qpq-fXD1+u1<`lr!V$Ot`xC7C(*NEL^(p1E({`=h14L2173; zK2?57|7aN{iki10>o#cfsMh-aTT@I)n z_u1d6cb$JAjX~UA87ah_pK#t+*L_6ygKm^Ka6h;R;63EHeA0GWO{a;66t8yA_>74~ ze2@PD3Q&4e(Za=FKGALG4riq0Z=S+`yRNgXG|@`ri#?G=lWJR0D>eZ6t?!6)6IQ5} z=;u(?AGj~3f`@&R4^wCyYo*Gg%x7`af^9TmMr@N({tE<#SniQW*dgw}eorO)!0|D> zUQ$nIKb?QjzJ>B!AO^B8{_QT(jpAlc`M8|Fy8D&${9PW4vjS-)+=Dj7$FBqlHBy#) z_%WVL?ql);p{j~Z`NwCa^JzNK7LDeKAz$euQg(vmg(fHzShn&#+#eZ}gyJHBBIX}Y zKq&^@Px@n%-)~;uW}hEKiOIjT&lgEmw@c#lbmh1CU<^E1Vte2}QzfT1#GdlDPT;%~=SxXa!t7U{dMp!yR>sRb(#WuyK6 z(4Epz?@<24Gawn{iC9S~zsyO~;T7j5*+HeMz z?nEvsm2nTFkS~%a1eua?Hs}pIwSy6w5RZ|@OOZdJw3FyVpWJkWpiVN-n=%SQ=gIg9 zJf%{&d2O@+Acnm~=EgGxKQbWVOH!gPU*q>W4Xn^Q3-ys6IV@z@-=*SD@zp3hn6lB5*-~TNj$rdwS?1qd+ot911a?Y1p9ar)`Y2~mjD`D(Tg9s` z$JAXTxId43+8I+%ce(jwnbC)qyEFO#Ue0sn72>5s@-sR9lYuxPoM659Jtn#tjaB{VDh~@-vfH13HrU-%ju+uo@q)tRHx&m&tngjP&?*n&^}#vW!g62iEq` zXaDy%W#t+UrGd)p!%@HwJ=)~ z+R0g{f9b`@ZL342#0md_NKxf=5?sh{_)Ot2ta^qsfOpzth2qY(7D!5v(yO^Ay}LUN zOM#%=4*ulm(aI050aq|OpezCs%A+5I`UYpV3f~Cz;toOM&uN1w)mEL=eiE(nVs9n2 zwDcw1s=?Ml5F4C$(SinMOyNPTZ_U8VAvBhBGmp7eMwcl!D_*Wfhy`*;pL{I%mD`bV zWiK2}aDv#ia?5r+R-1?u=Z6~~;Q`gR=4XbEvLwBM1rLw-+hTVOJ+&E#Tt*igk_Yvi z4z?06w&4?Vg-_g&tTcQp$ayY}-#VrnG2*BL^Ja6C7=OgO!#je(7O$4q28v=OoyRbB zJ5Yi|ZpEJn8Z}Q~rLdAI1F#~gBR~78Y63#D(S?MVN%2FbdpATd5}IxX- zr<7XU1#I;z-RkpCXC}<0xMe3EaOix#9IvPK8*Q@umS7%D?JLE})zZ`agQzO|=qOqE zJw5X~IKRcgUw-F0zxzACJ37DnIKMkNzw@2nVwscna_nzk<2l3;F3%t)F;9zo-vR4U z+~DUd^u1nV?`bd22oH*jZ;+K!xIfptffKo^yp>GZCGpE17I1?K!Ueo&Js5;<@pYDu*&RQK;;w@WF-gEc1 zj23U=pU)eK8qR%oz_0Fqq_0-2wgLy5YSjBz$|UlU|Gb9?K`qIU=du;X41Sv$XtAu7 zn$bm5kD<`lG91Y-^~U*}++vsL*f-JU@)mG_KF5JG=50f<{Eo@rp*|oZNEiX2vJ++uiF9 z`3YV*uE||Pmwq9u*MBul0p9Np;SZbeZxRK%&nEZbVdNhu_bbkiCkr1-MEwKw7ZHs+ znbVkkHO6u=fPhjS?pcs9j;!D~@5`5SbXR{%d#@Q9;6>cBdj*i_A}(@ZnU-aOg~E4t zgufWW-2Es<7APq7j-xa}bEoN-gJv-HJi(qs9F3i{(yV6!g-PvvOa8JAt)I}6oprp& z+zyKLp$f^}{U*8Cd|zOjGM`dK&c?3I6$h`)riXwF%RrScsDQsqjza zf8v*<4#V0+E*S-E?SV~6_YXp`V5ZO%3U8EKu1mQI$Pg*D@dBq*P)dOVVGa7B!Yq84 z5Nu?bKEUQYx3Saw&W-|Sd-Qv9<-F0mvEnJb*5cD4lQ^%vD^=|@sdklAlM@EU;j6h!%E!EgPW{@8Q>F7ri=V}Bp&y8z z+dAGiFLR0hoU-;@@9{oLAxK_t_%ux)Uc9xK>xThpaxGD(s-oXD?)c3x{%*!ui>JrU zNM_KP{LSWM!L(2jKHCS=k$Q12$|>zPgjQ$FchOiN3;$~7P~9L!CcAt+$m=1X3Qmhx z%d}O#p|nxv*21ca9<4KP@s5`i9}m_+Ii8vqLk)~O-4ipcMMm`7}{%l&CH#jC{{{NQl^a|(O3Hb`FAlWQ_!r!$i@v|9B;6c3!s3ye*rRzwe8DYvCNdFz_6jo_CDU!dU0?3_ z8+7~%ua2L-Wc;-r7O1o4GDwSa(G0?YzEf?l{S-OuDMt<~{{v(En7~cq4qUE#zF02T zC>k^05Ql76AIud2Ql+G4DUWde!bmHe`)cG_hVr*0Y;SoZUO=8iKNnu~46b&M;<9$l zDl!Hh>GT`AUUX&b-y?WpG_w2HP?yMVE_CBI8`(`6Jo=BMO<)^9Ula|`vEu7OM2|is zX}es%P&1|^c6Q3mcEsE)fe~SNmLpfd=P+Px1>^)Vf8+?Xd>T0Z^hZZdnX(lXK>Uv% z0Zb_B{d0sHa6I%~Fm?iOs$AdVt?R&eHP`<%?dT;2o(mmQEd@f!rG*Q~n=nuMxe ze%%G}rB9@$f3B2_<<89E4-!lF#BbB+S>+a42lr9xz;&SXGL@|Or?8a?4H^~8uIZro zYvhT``M^|r&^PlA=D#u-7cinZ*x@64GJLncLULqJJK_(L9oge`=*U;|lV)Tle+%6Z zR{;*rmOc{=x7fKXnZ6;*5|h z^wIbUtL=-pqJ|`O%k!Zm5Y#~IDb9vPoq!;3<5%@h$Ph)cB%`^L_-#HDB{H%&X#Kub zzPzQd0Pm1t6tW!it`F31easwZ7GB9TN3W$8qbZNlH| z0`GuABm-XSr>5&Z?(H0Jr`Y-d<%oduA z%GIY#PHXdmGxt45XW_2{)vXyzxz*E7AroD@Yt#I8{F%UeuOpc7sZ?yRV=}r6nDbwA z#x!5#BXh#%>B9<2Kj;(qQm6=Nijj<1rt_xoXN&GqpPTDQ(?DGA{Mh#MvQ%H)`DzMh z@58?1KSFc!W*=1PY3$XRB+pJTCI#YP(dxhBjZ}KO)y=Y-69_mYd zXKe`*TokXo?XS>7MvsRi7jx!lF(PwiLb$Y*r`WG5quc6-zp19w$nKM-9AiQ3Z$Ug4 z5a%<2vJa}~!I>X3yfri+jt|xtJJ*wkG{pbsi&P$be^am)d*C*{aSe>+7M-nRCORsS zMVg0s29ER9JV0*sPnU4LijUGgK7D|U*GDlXZEOCDFed)*3FzdTQ=T#Kl5qF5@yq&+ z`ajgn%z>ALz9C{s^t)usA;M!f)pt6T0 zkWjk^A_>mT2ypp`|G&aRZX|Lqtu_7-|0&(m;Jf=JKDgrkXqJGuI{X{au#0}GLdqGp z+VmzjUQY>|D(~^~7O&(SBsr7GX)Avuw?#GA#QZM|Z{rUH{Sy~hcFad%DPjne8#Kbx zIyu`W7a%<>+L4mYK3sk33D#0ued?+5n|tJBbK3>IiMv3i6F1mZGT`3FSn9-jbUYJ7 z(7JFwl3pkCB4%S&Eb;8cam7q{8FGyI4+AI#;$7MjAXvqAUiVfVLueIW?K@=1E?RBp zQ8vs?WC=92qOwYG2FIdM=c^ej^r;3?DfosKx+{?u*{pifftA0axxGj; zcfr?!D5-tY+ziFTnFZzC8@21wX=f|Qly=TxqO~0*MNa9$D*wUjaHI#h5aPey*Rjl( z8pwYcGM2X|9i=<(e(Oi&!22lZyInRMX26x1HfTIvGo6O593qjAcsGz^N1P7y?BIkn zzfC14-Z8DzLIov&1zO=c_!&{I*RGeN8NMF%*{~2~abWny9-<7hge1 zdg}KfsBwpUw+wkPWN*j25WYyY6~lDA4|rs}t9*BGPZz><=ixtpkow8MI2u#@t?tLgG&F;UJUgTWxL}?-t+8@8; zlpeliW1>$~?py3(l&m*_wtTrHUv2 znMM_ltx_yKO|wwN^{r@^P(@dHJGh#P48lE6xs4)i?Ks4yEg4EZd-Q%8`5Nj{M07BD z4!<2t4&^h2N#dv|wWivS`g^x25sJs3*CGM8aWDBo=j~lO*Ad&nUVygdEZDjwfLs;* zAs9(yOhfGEJX5&LPy|_r%LsNnFM_l5R$-@2+1mVCQ<1-!h zLlpvxm#F``Ho3t41KdOD*`CJ?C!bk6gFnifhDq%LE) zyaQ`8)pD`b=%sAxdYN-y)%%kCPYxkX(Px6*(b$|2bw-IXYAj3jN{6pvV`3M(=PH(A z=mWd4uZFQ8j9vvzTGlf312oRpEk8j2%@eVa2}IK4E7(yiJ13Y)X9`3_v#j8@6vA!* zaCyIt)Od-m@oGtMblct#pc#QF!k(P`hM#h7aw*{FOrL1Mc+7&a=^q$ybnMF3=fl?L z%g^}VAsdYk%0*TeM_@69qiPNt!I8QGr1+8AgP(?4%u1AWOi775nGf6LYjo+W6CFH$ zrcf??lTogb`QE_6q0Bay(e#9jS2IMUAdp3;Sjle(Gm|?)M+%xTySb-RV)N@GHop^O zI|JbX{D3*|s)~6}V(wW2dl|TW5=A8MO3_rq$HvOuKAYF*FxJ+#PV0bgf(;$POLF17 z>YMXXm6$ONQZ<41<{zOf028d^ga!KWjwtX1F{x?hFYo{T)R({V6?MMkN)iGH?>(Jl z)hfB4iaFqM1|es4yfHB@-&b>DHa3CC&+R$?0IPhV#7VqcA}I2sT~c3@_peCs+Wpa2 zvxR!fg_=2@Cj&yk)cQW9geCDJ4LZTaPeWR}BXzG$gA<}0QaA=}w+ zv2b;Yd7s(MdwjbyeGe?e>*8RZQ9n-cP;(Z2@p>fq!0xb%7aAOSOmOC&yURNS^1>tm zig-CW%T2H4_FSv9;=oM=&3XNm&TTlG7H=PVrW4RNj4vUtI2OJX|4=w;r$}9S zZI7p!iNR4upeiTMi?8-VDc)edsMdKOI0zZ~_ar%R*!rVo2I%`x>=z^WZt>3EMYJ2~ zt-@^@=2j;*%c%E-;e9>vTy2B(baNiYmY9|rVEWyKpfD}J9qmkWlDd(^du5bTd-2_4 zo%BpMoh3N^ls9B(s=jb=cIaQw5O=Qhz23x~E5ya-2~nFCjIKnzWSFu^4$hnLer3y2 zz)jc36rQ{LfpjH;H?Ncp2XR_Gng-`p)E5%2^=sc9UkE|uzP6L+R0-7NWC zIt~5o(hnTTG3M_uv#2erN?u#$2%75fs!mfsjSr!?Gar@@IQs4t&$t|L$a_qX<6ffU z`p*?4M3?B$$|HMorcA&SrE4&DCid93QNIUf%oX^Dcil082xyTet9zHJ>dm_;6h%!} zjxD zV;+vZ@G`d3%AFrn_WCr~>l31~maYuv@sPWXjfTT+?HbpvJKHL6wJb#I_lMk!&^+c{ zXSymRz5*xL#9w~{Dm;n{K{_vy-Pyj{7r|GHH+M&0eUx3(k))9%|ox#MjyRaP7Hb!7!(A%5O*K=h9sKePjqrPhZ=u>@e~x zTsM#J|1GFywDIkr)0T5=N8kR{ZD%XX%cVOF$rN9=5!RBDN1XSA%AI%+c&S+99M9DI z>jtU{tsX0{o`&M@n{#BjZ_eU0MTGGZPP1)#D8UoYC?c35r&CMK@=rr__;9;AajgUa z6cf~2piB;6JTj`y<}`qls2h3W8I|R$olY@Cg#2vH#y#43pCPw54W~?Phe8OJ<-+K~=3Uv%KV@}T$=6Sr9TsAN zj_0x3>^k5*pxQC~ihP0F*SUPOcng29w4(G;t|dL@dE^z0!9SlW!y>liO{6n`!sGzD zwE@vri`BFZKUMqAcBV2l$^*xdl27gV(h|z62;j8^Z(j#}J(D=w?8~4(N+`ryqTEF-u1M`h_cK6I_1 z^A|Iwr9?n(nkB<>yr4_wh-%o0S{3 zfqRg`EoaDW;QkW{!W}XjMb_kmhEu$f<4VEZ%eTv%hcLgf>n!F8koYBxQO$WN`f)^Y z70UI!%C_=&(9FLC&IJ1y2L)MkZ1gLXnNYx)7#&#SnG8#!*v3K7K)dBOUQC*=h6h?b z139L6MgDg2)e2jXZE&2ni(J(r3A~JAR*_;KsU?W8oA{JTsRSzcr&$&b=S;R_{8m}sWChY%FW{M+OQzAz{#d5Myg zeuI8yS4gAmCeu6G0pDs*B_4d-+kDEXdE+gVuj90GfBw=p$CL@nj48 zrRg1noDQm_13JuRG)n{d-o(9@?3o*L|OB22tooWhSLAub?vvgcJbDz9} z>#KQ$A5}4l>B)P=7fFHeFg<1e)@+VQJIssZeZnFX6xN@VZ@#%e%r)Pdhh*vnt>`;^ z>Z8)%nkE2_@3Z)mQYQ#F@}lr!)0J!H^|6~-%SxgNN0x*I%xx*#79m&tL@5t9Pu%??`8I{KK(etRk-&_ zcYz6M;)H4Z6-N&OIH|80eLV)=L0!$Ol)>WEz`bXA3EN}tXMwXOPAY-=?Oh9pQJL=^ zN#jvpza`+UC*=QaPe?D^fcx1Ky1;jrtWOzC;y{XlPDI(Rri2!`QfDW0yA&U--^3|@ zonO|`qKJm2RT>XJD`o0ta032Ucl_&34lA+N@oyx68wlc^sN*f3kb0C~n#n5>QF`?F z9U{s)UoEPyy0x+~w3z3RUR?i2X@AXh<{5q@>qPLD1JAK|lk;l{H!7+3{Z$@#&pHXO zG{q=Z%+|&$8Ilce^F>#=1wlw(@5>aS*PG{HpFx^xIEqkV|cKn-y1_NJ+f%t5fTV$cLk2xu>0o;~JhexIZ7w?9OR&Maa&w zPwnULOl&@+$H+dmBk0kXlZVb$qIB zz-YX$kRy`9F|couk8~2Gfp~}I$|PVuX~65ge+A6k>NA(m6AbvTm#$;Er#LVl5f`(e z(tk=`8AcgjM64L8*$QolpROf&-_pJv;RJw=^*fy6<|Dj)L9mZ+-cUgX^wm6%ML?E8 zY?k~*vRQ0K{6Tq1?QGx_pTmhT#pJqFzmJMKd{zC+AT&KTIh!{0*yP}h1E=LqP8^d` zW9=J)6{#GfGDAFfvz?a16212u-_;cO)q57hrFQb@s{G=#xNw`z28BO7-X#zb%uH4~ z82jeBU}Re`-ucRck)QZW8old1t4${WM_n3@|Kq%YRt>Lv1H_W72M9=-`fb(Uz_ZD&s97JF0?J{}(NnQ&%{HwiX{ttBoGPU?8wIn{M@`~&W~ z>G!%!s2;DKC{<#)d;Vi*v|D^RbsJLa=1}r|kyoX`bUFX8+C!45X#4No@3#NW9Ko3X zqvN#gC$w$u-^8zT;YzjtFUt5L=kDMBU=n0XBP)|rs`FRdM@CCV$HxVGs#^2}QTB{I zsc(v$Qg^PDfXOT}xAG}2L*kN1oW4Jb_VC8;cAm;ouE8t~oi#klDd&YD0z~91^LxwUC1Us+?}Gie4Bt<@D2*P z{l>~}ByZ+YlLb*8;g+~uOH_C~a_r2TgtQtfd#JlYw*^s`@1 z(q08~kf8JMBU$cdrWzK!^FXKC5H^yooAlQXXW-tW!zbji7qKDAdjaq@`?!S=|2u3< zXhlJeU?l#&)ukR5)uYu^LQO+N^%ups0@j6@$FGA}9?C0^e3cRE*y7FGXl+8~uUJbk zZ~fRu&0C?Nw1S4#eJ@VcFuNEJ}L{_^|Aj!d(J@+t>(VcS)o z7ByD5$nic+zBr(aDc14z$@JCY$PW>N5Dqb_eRqi-!a)Y8^4;^j?itm5d*biwx44g9 z$5@48bY4OogORcwv`S8)3il#*A3s`*cAn@X#@1-@IEfQ;W`T#I6khxccsVgm9paqoZZFRJ4>>r|Q z$IAXCiJ~kvp9#93gFVOkHU9P(hxVGFJpx&DrdjqyGA&6OOOkVNjk4%_fQ=!3O)@{< zqW7Ux{%k=+SuQw5x0-VXU0uZ(@D00=zVtC7c?w2xQb}+yIbpT96>KMup?hG4l6?>Z zk@(ep!wA)!o#gNM$i&JHBH5g?1b6v$)4E%JVM8@sd?^OhgeWBc`K+(!#w`~~Bx5++ zCxB&oQNb2Fg<_OxqKq(BZfK_Xi6gHEquVh>zE5>^OVyoZLotC83m%Zja+_cXvRhpD zgdBN>{wT)kX0myk)WS18zapAIAJapR&A?>NA-i_n42=NyOh1{Lk{bZaVK1A_ITs61 zo6Vi%Suh*MDwtg@m_gS^RO!J^(-ihYI0vhXsvO+2KS}hW_AgNp(r$?lTLdY#aajPHahvXYsrp4QqibTx|g{h#*rOv<-_?Yu;_QH}C+GwGpH zrv52PGxaM_NEq4!{9=tnWlt^o-aLIg1LlqUV6?|gS;bID880gw7kqBspEf!8$(d^Jx}Ox{#;bjHxoIQlPKqniJE%)0J^G>H)1+@LLW zq#}3GV*N6l7DB(1+JqnG+zx>H#e0iST)0G94=)JvE(t-KJ|GbbMdBrQAGOJEImvIi z@&>x*-zAM<@UZg1Zzk;{wtT%UAFl$rI&a{g_`c%vznY^lID)XZ7Sr#JeXVAtpf0jl z{kf9%2AQv^?A8dcM{#k&+j^vBU}n-Sc$B@iP-~dn*ZCD)NH+7!9+9kX*ru{OBsUR1#YsS0uKG0doXIpZUCnc$gH5EFLSwzliggvS#3c zD~5{HRA?TVNPevBc{`#P;8gs2oL?%(n*>}^IC`+U|8e1$$oj`xxCCJo%)Ms;2ov^* zaAg3sORySFXzs2f6rX@2u*lw^H>3hD!ZWQ#yZkKVc*L<cq`?DRJ0l>? z1*Bk0Kozt2?-fBwek~@%ZGs>1p2!SSSKb`0e6#iBd-kJ5;JlL$%E_#ztsi_jrP)9!ZJ2posijK4E-tj{v^9GL|C z1_-=!H7aCkzl&_m2t7V;h3L(1=D2!u3ro)7doG!;5i)@-uwL>2 zzl0Bnjw$;e#LMOmcf6Sl^AJ^Vdzvf4L{Nf}ZxLVbv5!&}29pmfAqWb6;3_lExdC?6 zGq$&DdP{F5C(%q&bT|x8Y!MyKCeQBB=Z%sS@8=(=gfl{Uq3%EBf6!XawHq7Zr9h5j z{@PmwYyuu!t61VZH2Y_??N=i1oWCp(#QgJ)5VFpVNYiM!2iO@OA^#Wcj5DQTgkT}g z8wYH00a}uC1L6pi8T|%9+1&K^Y_*CK|9~`AI<8?#RNvT9zC)h<@SaQ#PCl#~^sKB< zMe#cEq294LGkiV?EUE60iDda|_G+Q8@#U(98rYbgBVpbKA@~tVg8yii49&Z~htnY| z3{ceqx`H&JTkfH2E{pyVa=8E>?#H8YK-1$nDKck723}#c;`api=YC=M;H4Q{f;*B< z<2d(N+5@ZGAWky|qO^kbMNcbM$I}K_?f1T5l{-~&LZaw;QM-Zo#}ATTZpU%Ft=&K* z<)o7OmHG52XBvGqbLiQf$`TlZVx81eVxvOobJ=G1~%CFYWBmKTjA>Zxd zW}BukZitH>w0TE8>ddYx_kUfcSG+B!bbdi%z93GXncGeA zo_s+UDsRP~`PtpCbYZE?8uO0oDhCwY!4#T^^_xj+kSU(M=Hx@^Lxt3zvG9ukIQ|ML z;~hg86;{vX!-~7IKl62LXta3=9X968&}Kse@k%~UnykB=n*O8sOd)cAzZGwrT-T10 zZts`(qlkagO}Zsq*69Gek{@Y;wy&lFGLBDa!yg@S`DuzGl*C7pY2{pb;EZ^Aq$gh0 z_2Zw(_kONHVZUR4N%tcPB{=Tk?g9{;MV0uwU^=;9yY_yKp95D0XWt#h?CK#m?=fP5 z$pc~FU6c}k?l1JoL+}As_b>P<$@>O*bdLD+0Z2CYm@l60FaJi!RGu{fcciW*l^vU=-{UKdrm&bP-dMb^waHO>3OWHV?fcp( z{YANGE#;M!tIgYT)<2RKe@B;502z|!vfFvg*W$Dxdh8<9jIA+24cLI`-Oj!N|ZuT6JtkO1Mtsm&CJ_1U_?SnG{B@K3aDI z=SH5R$IE_sM!3q_O$zE^T*+S;Danj62 zX=c4y#Saa2=aNVd*{`!?;A%q5ctYu;Bg+H&c>mvazdka)7bclpPbq%92{Q2gGCy`Z z(8GeKZgxAE^%w2n?^L9NN!r1xslDQl2~R)ZzRqphezoMK+r4if!EIj;um;h7G8#r1 zT_k5L=0DAL)!rG)5%FT}3jC+W(M|iw-@l*sTGErz+PL!Jay-KK2#f*ZlgqDX_+{r6 zf3-i`A2m=0LIn4-oa5VqnD_S1%F%01Qx4GYCBJgC>*N*dq+OZtSqje*u`9R93T;_B z1W054snpX0#m}J;ut7vGH+&D#NJvY`pFw**G=v(yIS?}^>TZnC?C>V_sw~?;rkee( zr>Yq?KxnAN+=Rn6+uT89RuyeVWNn{eF8-+<{g(;ca`4fUqH4=(ZY+UzIMQH|Oro9~ zZd?|@IRyv0n0Hy1V?4uachu!eFp{0-yQ$K!_g|zIuTul~9rPuiWa7Ly6HJa&{wvNo~^Qe z8f*b!_}N2+0?XErZsyYsDDJ|y9@Q>l63vu<2s`fA%Jey>XFu|pqQh{{HuTE<*EZS8 z-`dKpW^zZAMqUuyY)Wr)5%mPMh#t9Kd77mkXZ~u*Ve&LCzS0LQ>Ru@F0C`v%+;t&C zh>kiTzC|0VW(4R>gJeG~qn+xTGLQAua*!a0huq}#_8~EzZ~2iU{rE{T0Wo>=4%Ve< z@JRc8N|W0P+3F@^{wwzc!is;Wu6XcK3VtWQV{X;hW($C(%H4DZ=;w$jdjU7%%zyGgc1l zFy&%0H@7InlaCAd<}7v1gokL{^b|y4)M3{r@~cCR@l0~#rmy9PXv(ghB4_SNeb6MZ ztwtAB)KBIv3a5W}?O}3|>X7Sd|AX++MJ6j$Bnll?kZ;YkXP_hRl%2Y5i%EKmrYkS<8oOcZ`*EmC^7l9S?Kdj#UnRnBk78t7@yl$5P|+)t)4zp<_el^>>u9 zZE)ytZyu!5Q%S|8PYF)Y3>9r6D-DspJGh748n^CS0q9SI7`#OxipS5>Cg5|fePE)9 zCwGKX@ruX&MNcq%wR-S_z9>B(CyB4`c!f$I#eb)?T562xJ4i;T>OGhs7OfTfZ)AT1?fL98@ zAB9o?|Lbu)|EjSr^6cy`RD~_?ZzwgP zqkyF7MeS31t50rK>dR}UZlUzbN>m$J$}+RFs$Pd_Rek1j+Y8F4Zod=4Xi zmRj^H7V$SBGo{bQlcQTGa|>k>pQP|3Z_?}t=Qbpsu=}sPs4MS2PCps1`Rda=p>G-` zgrXxMnBLsTx6)14W9Yq2Y}ex$ZhCtpjUXwxe#*K6jp_1R-J0^F-vGo^E)Y8T@iVoo zC%Q$gkDqA{bRGYlO&9(nH`MI0kZK(|k?cA*9<<-p|Naan=Dm~d@DQ`oeno6rcIafR zvo)j+@y$7@5K+NpN#Xnn4V65}xqo_SOZifsJfW?#sFik2qGk%rPB;yZKv!;MMhF%k zI-_`9V8@b-FxN{%BYHQ*kgqI+!5X>gU7Vjvm&}%*H-k~3behR z<~x*n#~c~(m>;mFY7p&tOuMvJi=Zur0_pY{(&E?hTm1t`c#s6sBvlr8VqknRtJP9(YMH)Xq}QmHiu8XJ?Ex_fY}?Gu zV1f3M6iA%~Bp;2KL+EAR4`T2dhZWxjJ^8ZU!d`{G$pMu2OQzH00k53I@H%fxd;?9P z&#;Urz(#U)dz+jq}27;>g<~HV9Y>K#7 z>Dgi0d5J48aBis46#AHX+Rl3FEL+eQe?>NAgs*eQNbBp(&u{K)jg*zV#qCI6&Ej^+ zeb@GQFg+^Y^*%sdUrpa^I&bk_!w>lf#lO%2RyV*OCS~#p-<)CW&du)be0cTlj=q|w zZJkpXll*h$6K9lQ{Y}tL+10cVsNUNl)P?^RgbwDvox+>}T72`2kgn^*yOux3yn}MA z4kA|so(uSDx`7dn*>{pG$Lx1^^aj|ALWc z$bw(g-!dSR&?n~fZ%_}$`ClNj5e<|Q>L=;B8ZsT{eNgI*dmrAEUBJ}+i=UPCw{V{` z@=b>M8tRXECy~a!RzEr`BRFmyCA)jfmW$H)a{x_gM|IPpYdo3ZsqUU$E20JuPJ9V- zT%6Q|YA<0VftszM->~H_SU5=bUwUCa@Q2Pqs-MVpN>?xU)efOFVNbgOLWZej==&LFJj_CQ@f4y~v6XMCE65m^SFDz}Um$=tfNc;0%moa#=D3uJ!x}zP;;WW5;Rjl6@zD;lL zQHr0^7{y50N2GC<-zr_k{14M&u+-m7;#4npKqnLKb_AsBe@U9z2`>P~2!$$PqZ#I^ zViK&daxjjWIi9%;gy4D=YjCp>$U(ub1=OSZ;_) zi7pcw>a!n}SCEJYb{Q%4qX(@-1`qfeKS~ej`w91W3wu7sJhusr&qujUe_y86aU{M75fWFxx*#J<@azY-uXWRl}2 z0YAO!mBCc}d ziqhjgYDoOIESDXkUx@>V_eL`GdagaH299Un1CG^f=<$F2Lm%{#~GN-Mb_6FRMcvzXJ5(xMxrPv~?5$A9q-6fzU? z-FN}<-_g9x_25YYpZ{kn)BTGI=AewFnL#u*|9bb?m3d#yxyW{WgVphxc73V(APMu(d#Y!oq3AXlM6b(KgzZcl@{)$G#9`ziW@3WPp;&{Phnt10OEvZ zIf75o|6doPe0$QNiSAYpmUFC3^7e~I81-+>5N_HHI~vZGP5j_aZK$&YYJr04tM${j zl|x5Cg2foBG2@v>m^}4-5O>W7qcRiTztBRG$==J4_*&&S-t&Nn)A916ugg*BGR%ix zwL^N_WNrCkihJR5oYR&~Wb1fD$VS*F`_FutdhRjEc%t4s{y3|k$4N9UG+jtNO5+3_ z8XH}Ld9LWQLG`11llQr4`cgVU%Pe_!PG2+}h!F~3Y68@$tREtB-&T)o;$4oYif)fD z1fz`;b%Z)vGnaC%xcy^oYikj%)jPFy8XuQz{Ez94mq$M}8^%M{$HQZan<}DTBpz;K z&vC7(T!uMCB*GEMY2|O-&5MKOZ?YYTd0-gvRu~t*ALjQx;EMO{`GWdAra2+Yyc4xryf>0~KiNj? zC#L;kHs+GG|LTjAOZnXXM+7`?jGYzqEYN7@M*>Z(>Pn^FX2(YeFt6|3&b00JK zKf)ZB#Jo@0Ci=rH-rI-d*f!W0*6nKQgC~()(&Laxys?j1NN6~M4p9Kk_S(bfcD_44 zkR)Ft2QnHw!p=vK`QZ5LxpBUlAF0FC3>ha=BP(j~?Xsf$Re->X_P@#>R`f5ti`17A z``IDU1=YLXdoX#X9Q$X?yJC-G=H#kq$*#RDMwE@1{~Nx3QD6PAO@`Vh`~0FkP&AZf zxK36^Sx+(loS;%A-F|&hm&e?^%B&?sa$2`RwA#|tU|PW_p)0dCRmLY5c`nN#; z)`tU?^|$snSBrQS^DY84bRx3DT*1=F`{iu;>7N8kz8WE0F!e69U@^6ruN0{ zpmYFpeY#Edf5Dd>%wr5jBhEBDm&3s$QC1}AjQBPLW7%AnRb2j_Hf3D3uS&Yr@5@MI zL02eGHB`7LF?!t`dA-HY8|{YCNWbM(E{FYOr=4={+1oyURnPGB5QpS=-G8OD$` z#Z3q%;ZBKZ4Z~wo3iu9PUm3eNuQCR?Zx$YU9l8+CV;hIpAKP8b(qk@W^QtGBcWg>d zW$X|6RnZNVS!c+L4Mzkc8@2_D7K^!o2P?nWCcDhR7#8?jnKhk~n>ds-KhuEZ4BTL4 zs@QpJFz0kph-fTKaOlf7TqIn${Nm+{Og#rqJUO`!Mrq;Ij81*2KPB93$!*~q-5*?Ar_M>F|7ILF+^Q2AgkyzfEH>ivc| zx`=OUYK;yqP`5Y?@{1b#bdxPXsnYiEo~~!jz?#GRy5r986pWqCTFm~i`i}$Z0rcSLE~)RH-={TNEd#aft~;RJUxU}WW~xzJ zT_?SXmt;$!TqjKuAyA>@fh0xyhon@TBx{r-!7BhM*kzyw0OUj0Z^Jbd8 zM@;LuX5#;;Z##}I+#o#~+0r8WdXz`E&p5Ag+*V@uZ`Il3@uM-pSmqGQbSme#MkmiP z!;7&znr+L~59(AY&LHYGS_vx=(qVasEnVq&-USej8c7zM%a^IR8N2p_6B;U_aSi16 z{ujY`oj+ zEWPCt-BlaV6{9O9;nwZZcZE0Y5e_CqyV-E*3Iok~(ChHF^vYJ^(5o;i7zQ)I*!f`3 zQl}3}sGf>*0t-@+id?361(o^u6-PhfwI(x0q@Qs&=WxeGTobYem>-BoR*^9d2UEE* ziMy#_3bj}RAhSQn)a&_&wa4Xi&tLUEg9}uvsQ$6e!Ewu={ffH6j;vq1Mw5=ZBSo>> zV{oT|#b-sX$;sd)wzTf+^I=+8M;u{ay zMK8!YX(#+y9xe6G=ePMBxQ2*3Z){}Ff{6>uJ(c6OS7tG?2Vr^@crv$m@1UIgX&lVuN`D7)lG?C6ADuK5e)tORtK?mOl@uh=Its0o2c7|vpE6`@pTf2>FlKTH@gp!!IeGocUvqVcSZ6<#@U7Ys0hOo zA)sPC&A&KLDd`3+x=0Fo&8Bn34)Cox@nhlhJucEbZSZ_!39|63psn2*E@Akyz*ax)Tl$Uca6bjWiKpD|a^e_Y~~OlWY=&k7Ew-^1uP zD%alh*4uZt(xdv9QNOCRB+3l?YG+ZcYC!L6`7z}ZK5ph?@*gnuU&aT2#_=cZ{Tc{i z`M2m?oeE?$pPRcvM1p1ozuLraJD=6ToYcE&GMhP=3*z@PC^7%5PXF#mEFiz7=Z2KL ziwBD`dl5|p`JK$lhh-Vb!@LvdQkUmvU_+PZ3w!{}-e({qi@HIS5sD-7CHHJ0I;82|ZsL#JPWb*OSti6w5SfVkJmVqDGg+FCBm{cfXzY4|u4%BaVvYE`1uPV5sO1bTD&0|mw#-ve{?>1G!_&E1Uo_5*+zh(QH#vo z;5SX4P@+Iev2qdTrpUv86Vz|VQ{Y0{=9QP87M>RG8T@_=SdHlXE#3tbgk>#`lJf@qHa*IXE|m>vY3M-En^ZHRHUMHf4?HnZrj2$}p()UMm^n zSGQw?_qm-#z4r@%jIBVXzmE*?1jg21txIY0m_2`GBXpc5N41%yU~v;NMVBC6gzL^0 zyq0y+aVslTo?8RDh38f(yYvnRmRRl=f5q_m6=PAF7+xRh0j}71J>!|0_kjwze7>l<44?c29=Wv_)ZH&ycwJ!@sN$=kWGx|*$|Vx=0m zeHF_*tAmlXS;1qfkPho_`C}*3dsREn@Y3zP61LQHq$tjlD~M5ooYFX2=7P=+68s6| zaxQBxhR9XlU=il>Pl6er$)SR2$LKg|%vhQ=y0Y|}sSDx8T@=E`uNfW18N~NzVF?ym z6tGl8-)(m5+dIcEO6Z<1%uCRu0}t=fAKO~`jJ z>1`1{MTj!Znx*`fR)SJZ`G)|G$^z6GpPJt@viNWoglPex`{|>c|9{CFk@aCtcWzxH z28x2T86RR8(C#DHOG-X|9J0pTYx>R=F4ba={8qT19x%T*oQ@++1?q+R#`$*+gXe8P z{M>{cf_2TJPg){AkfH=H9}j}eJ@DLMEWF14nyJ5rnAAW!V1(fD#?crcIsv-sSHKIj zF97YVs_5kiy5U{H=$H*v(d)JW{8(hAwebV2E2e}our|+nvM-*n|FQA2D`MBZP%)t2 zq#uirLNwlbY|N~RXunHI(1U^XW)2vICTdR>Y6j{Wplv~02WH?XA*_<^Mi|&Nv?~9Cu_0o;$yV!)ul5s70w*!>6T5C(RV=(~ zxf>TMRu-j}=}reh?`@O>k}A$KNt8(gD20caYiw2S(`Ndx=eDZHR#N`~XAZKWOsybG z97UaLv+Uz;JhYn$pw7eKv&`G?KtI%iwii6XF7h{ur{qN~@~jkzdS{Ux8}fn_j(S&o zU*w64rO;&1kElNSFE+HG*<=$lIXS*NRJ~wx0sL2P`^C|Js=ML`V~G&j`lu*gzX^NYqz((fONTY+8=F1&UPxhx-qm_>8=@hC*`u zAA3!Ti^Ov!XZV%K5rM?LjQ&*!#GNl5({J5V9R&TX=vp{a6 ztg!`m@?|c(vJL%8yo!>4K8)Qxbx>5idclTCoCfWz+=m1(1Wqa^Wr!W$f0>j(PXA9| zPhc{AF*j-W6nSc!Op?wEQuRTUW2$5_Mv9x_fbhApmvjx55?TxYiDLntea-BlFQIRV zF7&$A`No{h1p`5TWWLO7Sn}~$29R(KuuHq?HHq)t9IZ10JmRbB=G@@~Y3?A(9 z9_?~jsiXP_qpB(;{yCBf(*=n4RmL#EX&Zd=#J3D(;hjBliR zX+mcHz7me9#rrJK$UhC+@|E!8m{-R|!@Yvh235ERjL0F1*ld{~_@pyIS6v}9`Yp=9 zCCqJA>_vgEGDZ+CRz(+i>4kMwRnIE1DtmSj`{8* zu=ab0V(Af0P>BrE&ChOa9Ui@$HC3Z_2{z`Iz-XDj$`)&lk?NHqgozEM5^4h%_L=4Z zu)(PRESUq|haz}Us6;5#;<%b>mXGLCh_@nkyXTA1l1hM4k8!1&6w6V3HwvQcs@PZ| zOv>Ml;^6sksr7>F2@b#WuCnCgtL-5h%ZdC4`mWCHMZwJYpQU7){0jHV;dS~iHvsA3 z=AR-`uusy0{IhFI+Z|AH8b!jNB{rx)l;mH!-jaMUY3vNM%d6wKs%Ga)v(YsoM5iqs z3$Lu#^!hkL^lwwS+b>pj_cJh1tcdUql0Wrbh&=nz18{dc8<_eozBHwnIz`xtivioOdr@6Lj*Hvbuox-q*Ae?gmF>a8WCDoyS~^h6e^ zZ521>O2oM6#?Y`Tgmp~bY<8O}-?+kxk?c>=WtBToSa=0}*XcpxqRU&{_1X6YGn#@$ z&GqFc@OD{wou^XNMmEotm0X+T0>r$Hu)6ZOoA_@{Q=PXx{fC@;opB_6Ih)QPBQyMM z6=tTTnHh*ET`9yM`tnENs_)WVS-NWS@w|yMptLHwEZj9dmq~W$W`MnTSbLsH~rq5nSMoC`rG|f;(}O`ETQ@;}YUh9oDMkelE_GzB%ojA>$gz zws&q}e)4Q>?goY&E`k#KFhv1YRdZF*@?d1+E{1kG+XhD+IT}Ahz)H+Eomm}i>6`g_ z?N9%I&sVd~*FtB$PNDz*GGD<+Ylo$onKDbhd+wBl7t7uo2+2m;9L(U2_b-0|?KPwc z6Z?OK_lEz8?{^93mvIo%WL zR((aUee$(*XaPq^Q}aW8s;?;D2SG?X#h=nn>Cl|eQDhZ3{Uz6P%zKEN-{FTv4Z+xq z{KRY&@&qA`R6cAkTWww}kiVZ?>|eW1+C4ufbkGl}_$eHQa?;c@cp{K0TlM4B}(SSrr^GjP|wj_9B$SA3jEK z&X?Dsv^^bvN8g;G0rwxLx*|7S_B8q?8-h$*f zw7vcu?<0u?3LH`OH)*ixyzxkn=f=-f2hratJPeiodZhO!L6jAwwEmuG+n=5PEFHT; z7yh+t|4;Lu#2=4wHraFLba^!9y;s|TK0E74da{ty&wk^V`8$;P4m26BfaAca^ElLn zXuo-1nbIe8{+;^m_OIXm|4`r31JoPHp>J7VtJXN{OW}9map5{}Jt#h;eu1s8^HEP5 zp>+CL-xmM*u@U(-tEU|ic{`(e)2-1F@|vur|CsmpZvW}^lj~3EUATcP1@?!Sx0h2s z%t0KB;tSb&Q}it5`^tKHE)#h^b{IFn>xP!c2Ibc@-FRf-jL5Q#=%BQCNizPAo$((8 zK9m(G9nth$SFK1*sm`>h`b{=oVq{FgfQe;xjg!TO<`{Bu9~Rp52ji<(7}bmw3Dp0kE8fZZQi-`~CO@;4?SG9%vu6Q}VSX$gL^UwymY?S7HdX21Bmw)4N_1*I3> zOrBAYCH?5U-{98VZywz7_Lb71Yy^mg9YX{9K3IsmV>84K_uKvLaNb_dc*5@~@GhPX zL!SsnSBClp+icZr{%?^JD#n7BCIO_zul)O+)$s2=>HBv=o=%uUvWQ;1)huQpm5uTe zuh|ce_y<{jpyTEF!6xKM|4glPe$IjG${lY*5BA9Ca0Y^4ep0tIT{5S!)?!RJBD<$H=e3q*on>b;Ta zAX2jTcK%x9n0KhmP;}+X9i=deeww@x^WUT(mR-XiE+dA1r$-QJ`xo#D4IK=U`)FmC z&ldeZjJsM+UfRF)ysVu;_<3b^KExa=fnRam0xq!zD%)lo zc!?o-F|N+3Ee}_X8N_`bJr_?s2B5#^NRR!tB)`O!EGJ1^xxa=-!n}&M{4)z3EdWOWS9ec_(nG){DMayErM; zMKeS?Dz{yMD$RFBajd_|_v=i)T{zNa;N4K>UZZQS24!e_dYR{ZXWpgXg}x_aFkyea z>eLu^jSDcRb1f+IHz&SqL3-FA{iP*E;q*wK@l@Y>Mk6tS?~ui}3BCg|cwC)}2i%(O z0{r-Vqo)bfg0|ap@w^T^m7H1r)cz9u4nepZvt8?mLD~`-IE?>5gSi|0%IeKPfL zKc^EN+Flg?%Cr~L?G@5VoO1&ny+EUv#-`IzU?$kk;CGH`YSvysT)a07-&slSxyf7n zg4FpVPC14pW@(*(n_eczGZy&m+ZTKKJzbT<&%A&^TguOG2Y#dV(7*pSb?nL1acJju zxfMD6yN~_*C_TtG7ewt*8E!XmHyPYPmP+5ej%Xid_qd#2R{6!dmKW5}@9alRMk0I} z+b^-HnDKvrv6HoV@#@v5QTBlgF)#|<&QNh~4CCyWm(VoS=w_yj&6D%u|H5wQ%c({x zl1U@}h8b67?xk7$TWBP*al7+)g~E+5;GTikz>HXf*OLwFd@rF3*6FV=)BvG35y$XV z*+L;YIT;8Yce<52neBbaIBBg zwW;n&bnj*PO~2iX?K+&d2FYBg*HMIj$)jDZd}f!P30a$_9vPjm zMOxTz4bgJ{aNU_r-H*mte;nV`N`E6Hv`bHs9_VDH|G`-4cS_f$10C|?Tj}Ru2C4p1 zQtZGMe%Rrx=M24@{y;ox(}7n>W7oXx7qYd#)xFQytBqgL&Vhnq=~G&|`e}Y#nQj_- zyv<{Qdo9mDlNTLbWj?cR5mafNoup=VlD)XUJ@mb41Qx8G|CO`7%x{;Bj33l?xz{gM zEE7cToxiW0I9%1^0$^FmdlYcsQ~{hm;=e=*ep&Vg@TJHfOM6ZrJ;(l$FqS;rcn$ye zV`FOL?r>qCJwf?Io_?swThags=buk?F;Bo*$9LyG63`t!;JHNVNC#H%xM+WQCax9F zD%^AAWz#h!c+)<~m+-PJh0YWI1b{vGK6$sR=gLnyFvI_Pi+-*Cok^agnR;Bok9#|@b^q(yuY~v# z$L=-3xoYr3fRL@`z>Ny^h+WWchtkgu%phrX(V+Zr(-}(2t9keKsflb6>9;$wYA+8o-dEdv z?QXt)FUje^7Ji&-^h@af$2|?=)I2xR=^)3Fk%9~7=A_71lAxV~o+t?) z3yjvlV?2AwxATZMv0Z&V5AJtnJ0_?9GNOmr&ROZ>Is30?`U;2bqwqJ1;0}+D=3kwN zZ#P>}h;(|t4lf?NmfbkKpH#^6P{y(R8cZISi2pg7zGqjP#02o0)$|DI=LW@ZhVr8& z!b2^oa$X7m_(OMz&B@4jviTlSBKj(G?-tZ65c6VxSx^*<%Y>1~-Ga*Zk@OLLb^U#p z$0vAnOB@Mmv67tFmwJL)HA;dapRX0RHJSW+`iM(GXABKkscWD={a#7oFeqw9okT8g zPP~kMvUOfCN}-Pe3|kFXO{|MW8)mXF zOTACOh?LL7YYevz&y$(V)b+h|n;Fmc*fLkV%Dj1-J4^pnv6S<=>l8xZj#c1TRm%!# zt|ru$wcXcgzCr%pfVbDwzQgj|?O*-O-)P_cY=r5LGTmZgo=PuQ_oT2Kc)H_jB&D9B zjSt;t687-CK=OVUy}Ap2ky34P5h_E}o*E=7ne6hz@`_G!nWj$) zN{|+Og=69#w%s}F1>uU>2I8oVml=`f@yTSy3lWM*x~g2p6W4T3l%e!{ zai)xkGo?h<7iUUu{P@>qPRm7A^g6E*v1ff$A6Ha2lP{c@?eFhd$#%t^1CZeCw}IoU zxoz0RtKSCS@%V09;oQ$qHNvX>LJLV6?RnhgqIIyNu0GM3*hSM&fKI346 z3+4TB>9=^Y*WykfmJrRF^;R4&0@DplYidGiGY?ylHY6O zg$x|`RK*NEBg%o7=#arvmWl87sj}5=b1c!$b5GEU`97KN1MBs>xR-ka#y#46*Dkh_ ze^Uu6(mKPC+k{a(hV)yzUg*9SNA28^{ED=5nu4og<9TS`yx2+m7OaticT=!4nS_n6 z=dgr(l42HkWGRzI74wgkELC2@ecAAb7=;2i@i|;IoUdOgxu%r3qNp4C2CmSrh{~i! z$Fe7vxbyJ@@cAnc$pSxH+Xis=R&sdd`(?`O<*8D>FKA`Tcg@s(7{zh)D{;Teh3_uO zApg3ID~4u?Ud99FZ}81v?ifm&Y1aMGwELggqMz}-UObFV_-{LKn--O3eXK=6>jqP5 zX10`U#77wXC2r7syC_qknH=Rv8w1LH42;32+5;Nc$giAb*yG47+(WRcHjNTL5mP@VdWn~`>dd@(tnvypRu1kRI7WO-rk{*_GI_3yh&b#=N0?d4;J$uAUx!Ac-5V5N#z$4u55}xo0d-z9%s{$92VBPpE zu+)w31Lwe_C1a0Mg~jZ_{pBbB{csg-2v3p84pd3Xgf+YH9`AV|hkNZFhe}Exj(i5b zZ{aEZ8ZJ;j%2U4;;@(pAfvf?0xTJ8m$IJZy8~BJ9xws_o8V~VuTtJBTfM41-o*s}x z2Z)e~8zlx4+jj?%W>1T2?;i#hX0Lyt#EEXc;q%jnmU^y|6$_4mSgqFa4T~ld25$@?<@KBfrxuSINThDeVdDMTv0OyJprC-CDA6I!W$*wCYqgaTJW-gnYZ zbLfQwt#1vHaP?Vwz3JS^=mqEj3cIx9ML{x4r{7t(h(v`>AIq1fGbbsXHj-uszR=9O zenyzbG#$d=kktxd)VeNKd4 z5}klyV}oO3yj8=)250`qAWhQUZQ?6Ftx}%5H%RV%WXjLTT9apPlGejd=ip}tUH2Ds z?7`jmapkP9PuG4V6u3P}aeny{2ST~e`c1mT)%}XqOrYu0HM1G7qa2CaP-h1Y7jWqn z1Uic!3D|AYwsh;F=U@DN-r|?}=llw+!F243#p}hSburB}7RVol=D_pg0vaQ4&&3;M zXW*ku-r3dCZ_`*B4F2MImImYD{Powu`C)rhFl?U%%grira0o?)%_;+fRk3<&VNFfq zW#*&p^M=03|H(3EDq{JUVP0hAmdbGI_&N;&AtJvjJ8B zq_)Rp-auB#X79K75241VM}*OL81dL^bZI+cjBiIl4oQ{b_tVWeL=a53w!MZu*xTpz z;@4;Fy$6Jw07lLJepuj#=e+WVJMYRcN4XU=$(FMpqg!Y>`z6>zkY(S(T(O=zYkK9! zLGmb$X#4UOQas?pJ=mG!!DWH7&hUf414J8Gz-jQB*rUyUM0XE6laBp23+H4NLu8h{ zB5yrs{0LtAnf=SNZy&%OX+x*>cJ<*M?rf3anr_Wx$+17|vp#4S{Kv!p80TG4R^Xo(n!`hSd`fzpQG@aPhg<^QHnCwRe5@P2qU(|_-Zf~Ndnvi#rh z;D6ajCLE!CW^iYyPf2_*zB6om7UeA{!E;8=JzrSdQgT!_hVi9`$xLM~=^E>fMdCnz z3Oy=?Vk?awd${ojaUW}r?Et9U2j(c88Xu0YpV4n2AMb;mBUQ01aj$0l=Z=e#X7?hJ zq@Vr$p5q$M4&}3ZUJ~DDoZ+cQx44OqO@2G@>AyX?9PG5n8Bq8lcYJ&D%X2ER6j~O|c9up)j$FCz$<<+C|Q1&l(hyppIm>DrBGvd_DCePNv z(zhyCoi>8o2}-wl^fp_&&22aO?}Oie27dxHZAW|>oYyeqiPn)`?M!_~8aqV#bQO8< zH<6cgZ6$JLLPoBXKEStd6=pE}QESVx^Ho~YYm4LWV)`m;d)<@cJU*8*-q5O8`uOKp zbTZ^*$oDd?)B+K!$5@HOsOpFtjxFI-PFMI%52VNfQhLMP(&*cL!1X|_mwEC;=PQZM z$6mbw75@+WbNIhJE%**se79@7LebqI(Vu1fVBc#?=HSQTP>SodNb((g*Le0iJ>P5W zb)DjA%oMq7C9gv%vlfo3*}0tCl6#7VhQv;B+4;-tM;6J7d}?s#a^hPR^UW^(=1L-` zR(z(RDiAnll9hm|@MGA%!ZS@a8@|jtgo~srK4YLllnQefpYv^{s8OX)2o#EU^VGj5 z-V$9;qIo!Sev&ANH*1bpVxu|TGC~Z&>Lz0)Zv!RuK&=X#@)W&2ShmEI|JKwii(4G6 zTgQiUL#gnHgfb9&2o*P+Ra0R23DcGI4QdRBqh*0QMwH3%V&j`6HomF!*UX&xfOa&@ z3Kqm$qxOWdwq@u?wZX)zMPde;H>yS!`|@Gv5!OOy`ZUi#`=DNm+uqX)t+7aaJ{JE5 zM8Rf&vcAfpuCzj(b&~&38{G&tEq@n8GFZv;;dHx4!xik#6$XXQ!%2vy`RaL8xhIhz z^C9api2)Ymyj(X9)L7!nyF>Y;wvw`#viAQcXGWX)p2V5vE*Ld@yX8=M5ql(OM;VwQ zF4{6KSV*RGBg!C)aNr=_bIl_CRACoGM`eS=rXL}Kdo0?J^fx;bQf1ZPyPlMzDVimu zm!7u0BPA=oY?qj-t*mLnn5kfQR2BVfA^eeG_ zOu=3Z5rAMNUB9@O_xem;Zb^mwlL=K;uS15b*wUlKaw&bYoE40cPaC|3d!F^~CTZza z=mmN%TF;5oV&@`KBI#waedafQg^nRytEKS~og1v=tt3Y6k-@~CgRSJbAd=YA(@M7T z5N;$ShHQOU$txg7)9^O#K(OZC06Ln-L_j&zU$-Zt`oZ_}gogUgVHK6XR&s#8bGMfF zegyA!py+qHg`c{I8k>fHPZcxD>In;QaHO%_R9+~}*6kPiHrO<5=g@V)PR-yY z!^RSbJF#a!?mm+&>2?5wcOe&=dG#2QI^ch(S4JhBJ4(3HJsEa{sguHK(0rQOf2F3> zUR4i_jqNL*J^Aad)@P-csz8SK zdC>oI3T5m-`nSscz2&GYJ}Yq8pXg_Ajr@CNaG{+~xUN!mUkAd&{I3<>xY}9Mr-W#( z(1i0x27IZAyzrLjME!E8jW@kFdz8xdnJr~rYRm9k5M@|N@vLb4t zmApt$tQvgZqe$i+e($7~lgUT`_c7%sC94Y#gF$aT0Cev-($Ic~*H`E?KXQ;j^Dz1B-F?3{kXA}_s7Q3tTeZzWgJ z+Z;{;%ZK z?lFGpi1pMCx0E-pLk2;soDTW7Fh=V#r67TQe0_@{65jQJ`>BW_ekrykvkWkJVds-?+EJw-xK^@jbX> zxjP}J_S68XtMB)^dnoYbMru8}oZ4*I-0ebEBT!;sX#~m`wxrx5X?eQcD~!m#$>+y5a0l3|znB@kpK>OQ7gagXcx5~-?ZK+5)5 z#g}ICKtj|IX5TF#Q@wow!l85|8LiZ16pt8fRmVldj*HpmM1fEAGKRx*1BiCBg!B>2OepRE>saLC~mJYG{Uw*FudujcY?~r9^)kWE6urfA@8fkI^Z8 zF_By&%BM)4iviLZA=Unv`TOuirgkg!=J!-z>-AmOE;i%YolY{;5&}O>Emm@q0L?kz z~FDtS=X6hGVfC-fK7(hG!V9g+cy~MqRiWmnlyZa(!;p&U^ zmxxZwcJ!A3l-=z*S+$Az(s1LXzseT3@}rgdyP)Omh@YojH_6kUm#PM9ioCRcjt2WY z@tw>}t1#R@N;P)rD-Zj$->?t5_1e-N3pB&ov`6lOl+H2E^oUReFwX~&l1SsiYVIEW z61Ymg2#s!H)c8#JFBt;)ue(z;)8L3^iUa=lfR~B=C`_QlaCS$MQJF_$P@!b8f0Y1f zdGhoO*M^L_?~4H%tzz7G@;McvX8aWT$h>hB!Eg4c9*1W;xRU-S>LA_2t=ZjWh$6vv zbiPdmHG$#1N&xxuJL{`k$)XI9Tq#q48Ry!~63?X`gPYq0Ji16bQ@_==$@tB4E9pyV zzmkr5Z^Axw{0wsB((xq)8hGMCp+jx4+*ORuVRrYXl({{;IuSccPYs5aV?WE-r`ym7 z>x5N(Pn^-JS>q`-76T2==*RA?ttn`ZV@KNH%>5eiGp@q%y2h6&X;2ZmDPtST^Mv6iznp6Bi_)SbXFwc1p zcyv8Z=t{bY)P;R>NT8B$*adQAj-13YQsY!pywocmf7X1+Yx|4gckflJ$+c&O&coG= zO+yX^*j;pO_<;y`yn)oKq&E_zLA=g-@<1?p4c(`{z)N}@fs4RsrPCKJN9~eWW)j|M z0x7ax^Fhn3fg1A3IY;uCmEipXyK#1uvmaKp-O&>bbXrIpLu%$+#Z&+5-T-GtRZ~;AY0?rIOgQ&Jq_qqbgW zDEJ3N5p|{Y;9#W&&@2+l+?V;B!LK5N-w2>GaK@T z;l8|A;2R$o(UFVY-HHMAtBUuAd`})K?avXnZogbS9wm?1QLW^UR0y8ImO0dC#>qug z>dLm3Cx<+^ajkbdU`Wt+z-(0`Sre+ z>i6$RGw}1=&;0L9&W$?PH-IhqjoaBlnk4XtoB1mPPwB9VAS+f%!`XWH_VVEg`g!ih zlotmgS40JPgw6{+FQc0)pJf*KrsXzB;`!DT+dX>Uhj1XocaNStEc>*;If+I}>}r|i zr=phFrR{XD3J8)~{zB=BrN{@Tn`Vs3M#Ki^401}mITZ;Nd-rrC1}>+Vp5`JRUXFd0 zsqF`5x9m_AT$VflSlKCZ?!;RPVXG_)VCJufH06^eL5SqM%U$Bu!qH_7?MF->Xf0gV zG6D}olW!LJlG#)APM_an*CXWz(Oy z<4kR>h!M|mRN>6`(swW<+z(e@`&fTNm>AtC50T|`~G64Xir|& zo=^TpfhV4np4=&EdDS4o=t#*oX|G?Nb3_1cSxAm-FDrBWigf9$b15Qx;dZB9_Mb+V zsF*ZNGg#m~Py2j$f=_n7d`j^D8n$rn&^*W~zGvJ25Ba`UzMJc^_%8di>N@xr9M7CR zNGsMvxA43~4`j#&YhF8}+HZd*|CQuv4a~gz1f`3!`8zFnUZ;|)f7oLVAZ7gxaSiN7 zco}!|XWBo6O6cS-AQ$UOtXSVIFKQpJQ3GF;sl^`r#$C)Ic4>?J_+DmsPsu&Fcu)OJ zl6~)~$4JBPMsxn$d+PU^p7oy681U*^R(h#^Dm_h(8rbyIG5olb%+OIiCGhC&d=P)6T4(MDBF0ul?Vx+Skq^XQqdNs}w0>*IGacpESsf8;*#4m5R91P*t zkwX(ZV0)U)1qR=91X(xN+8~B(Kgh98wh&8pF0YASCKnb=2xA?xdyKkGunz~#t-*;+ zHSzt!Rg+O>4$`iY3+ie>MNfLG{l3I=lY?6bhA3N`AS`!^c!wa3JPGM0m7F6TNN3UK zX5q63Y<3Q-334u4blC%>4$cQ$-s}u{M@h$^i1imQbcu>9SswCBl_&b< z|Le{QJ8TfMflojS^wJhdaDsD5myK*!E)OyDscbZ-4k4Y*Rdn>a^jGXGI{)N5`WkQa zo-<$i3X%cd+j;yvQ$AWXfwkplyt~^>q9;G?(g$u8dk@B7vmTWInGuO;X6zr8iX-@y zUPr#L*fLX=;)h;~hjK=*?eQD^UN8Id_Usb9pjh_ndxR7|p_*fdM%2;VsAJx~{C@zU zF4jUkSI#kYl0UkX{RWA+M8b``P4DgVon?P-rx_>fx1JGA=mR|YUf~t@hq3Nb&{W5W zyH13_47&mj+od;n;X}t78|4s%n30F38rfL!^_Win4cvlsDm(H3gR!t38P7|@QZQ24 z3cLEjKVjwRU}ws%K1wJ;->8pgF-t;qj%0;(xe!pc|5rG#y~?n-8ouBc0W?nhvgYY)*=!0PI%NAUDqusXqR5f_KuI?gy(DJ06l$~RGNbuPl( zpmlS*;Y?Y?n)U1(JT{CE;nMCK7_4M3mXBG30UgCg6%9Oybu&wLEBQ6^vYbwf_x4lF zI-i=2-N;HFBIC%*erAyvD{6vPN{*+>I<$G4;-Y+LB|i{s{OU1otOL9lH{xMqkFt`h zWlLvYYt4WMM z`9W3<-GLG?3-0&jfk&0~8LGU^M@Hd~O%$sdU5Uw`Pi9@PyHNd|7I64S-A2T%;~|6v zXal-R487@99zQ3lYhchkqT`vKmD`Y34-X z=;i#xOwmw}r>6AJIWpv&u>JoyT~0n-$~yl>Q)eUy!|A&ppWp3K*ZdGqUBs7Lsf>^DraIV zlCL8RpKcVBz}7=%=cp z4LwU=;TzpZJx{3?O+A0jsi*fde0To(xbn@Nl2>hn!Z$aeYYF}2zGiP~r(ea~)a(`*Tx1Z9*P<)E&Xi7gHs^UvHsdK|jNh(M zaMzm)&mT*QXU{*V(W&rmFm>)`4f5VL(;%*Zw9x`Lh^uqLvF=hdi zna_o)CP$$?f{%7V`i$HVPuxXyNKV^|rn@N?$xa=q(hI^7~*NU0Vmjqe)=vo+i)y^;IFHi3DxS})Q@8~Kg4q%V8$-g5FsbCn{ ztd=z`KWdjd(@YK_c=Au0qeoBxWsUIN1;YV;HdYu@O|~DN@6?b|$rkXl1vwRJvaOSB zSxfs7lI@di%=V}7y;;`#sdaODHw|NFyl%hznt9y*(V8D#_7#$$m8gKUcE#fHC*Yd* zFeZ^DBc=F^+h7uJ-C)WeFXg$nvip7##Q?cMJm#8t6$&Qd=2xvDPO(C25J-1tAPof4 zKKgbieOLC9_HeSD6{~%^^AE@!&L0P#NH}>GPbH#*cDnD++%Mx@k5DO&9;~}KNG>5H zIAn_VNq6V@2j~bKoH(E3$2PZ;|5RafQQtD|Zo`!-v;-BIeQdk-qJ{}$_D0jkL<=XB zBzAY3J}|w?kn?%tNBS?2S|ns)reEBPZd0dPXY>9lm(!~{`hMA5F1Io_Py?vXl7(ih zyZ7$2iH?8=254?@jvP*oyCeB4*~P7lXz=F`t<+2~iKf57q3GRc)i+VA_8ZZq%fY>` zfaF)#@r-Y66z?ZVI$pw}kU}eIQzq5m5w-i*N!zB4A@ubGhG%W??56I&2+_i5x|=ok z4~+7j?@InvxR@&_#9F5tPa7|a z`ILj9%H5)+_n#cZ6h@cVR=NjhW`(21zvoaDrQr5Y)chd&^|K2osIjxG)mu-|932KAewhKlDz25w(NSew(a$U(jNS zHPi2Vce<8Rya=<-;i(o7?RaZTddFE!Lr*xXsr!LAEz+9RocyiCQ7fMzAwGzGzKQht zF5Is@((iSw0;SmK6_F}D9EYtXj#Shd_Gy%Ri2A)_rNsoZlM&9gX*)GT;X#RwR>H}* zZc$8Bbl7v7fe^LJxxssoGw(t6ga}z>V`VI4_zW42NoIH$w{_?i!p4Y$>PXIyMhZuZ zS0xC($!TP=6S!t{INWcw9zy;2wt&2;f>S6B~i? zfjZK1ET=ZeuXGt_f(Zy`*AC)$5WfH(QOPfOi~ve)m|sRj?MQw{@;ip#F%Tz|9x0zE6JR~f1f6lxve-7PVqM9KEnCeJZ5ylWO_& zwM7oP92g8N`>q$)f!0;J;&$%I zf3IuB!$`(us#ZVM00R2VIsToUaMxBY$~ zD;^Z)P(xD#$P~EuAvX-6<{LuYzB!jrQ0dH^vFCmXcWV@-mNlAPi(<-fE}|F$fjN!H zb$1nJ=oL1sj#=$3WLm5@+P?gj+W1jbI(u2<^R{1WZIN^|_rY}12g;lt#37Z-cuVIDKE0UHT z2HywH08pp=67n*WvDwR*cZy8@POr$ec49PxeAYZ^=4fu+6E%S#D%X3zc z)KEQg78v4F3G20T+W~)GKae{_?w0vOhf&ccAR(xM^hb&z5{eQzo4?KyJM*T1|}X4Y75f1Y$kzDDODx1WDZIAAI3@VMj5S|~j>@L|dc zSES@@w0l3)HuKc*ijIbMPLan*@dga45gvN>r|?0%2GcCUbUCqyV1=vcR}!#;qk1#H zM4XRbH7U;9tLXBDBiT7-M%xcy3Uy0HvR`YU4*nlddkNG;buTbP2bxTe5|OXF;A@Y= z|9FZz#XP%$OlkH?n}(A%JIFn6>}!l0L>e7BMcbBarETDczp_EA*s0DzD^@EEbGGBeaB^Q;cpdX{=f;NI)S;_!-m7!ufdoxHp# zFF+|?FQdQJUCTRr9GvsuhPlJ2LdLC4LsC@p(Ls;cdHf-@`gUE9CisM^)k&eH4FfjKbAt5qr@!v2^l4FG#F1wFofpzgGBK_p% zT4T07KOd!Y1Kr=ucBAhtn*)2h$=Pjcc<6)@KM{ro zo?F#2iNYLC`5>_;KWf!|p&cpbe*qU^hbG-xmqwraLT@2{4Pxmy4dhQ3k)-#b!w1YF zlj4#vPgFS~&Y@o&7#0sQdBaEK46+O>7PZ^`8brK#;D6#Xs53skQ*QD9!so*xSgR`l z%{cSPyI$z=9?lmTgZ{d`(Bmm+YUT$#=vf00ceWP%h75dyUghkX=n5pRHsh?E(;eM8 zl&0hDHpBla%q7p!j5ncbu~+6cR^`my1LWHwEec1(OE1147Y}V z<^ECZbmYDMub#$1ZZ4dbbEeLbAfD;SULYr2mJXnebWLc>rP^G!t5uT_g`k- z@0u^)hxqSy^;+qkv`PLEMMLSp%DQ5m`yOpD^jjjFlGuW}d0oqFSw=qzq zy=B6V%^E{Wl4so`$>>?SD@np%jPOZunq2aU(9iMzHu{Wze{SP8N7+Nwe?))@4H>lu zMLCf^HJaX|YrT2o@e;m`q(39MttvAfB#b0vKPqD1sf?Gnz9cUeiEv;Ce#30xM5wZXP04Snp{ z7ioOc*vZkVJ+Tq8uLE{SrmKou1Hb%*5g}YyFYU^a3Yqb1s=6st)i&15ZO@w2d70FA zCG{cc*Bt$?aho_rU~ewcxKm+ns|%ALW>G^wF{&sLcTxGyGx~5V`Xs!0&$-@z{YrW~dPX8U0LrV|+8DhSVyB%Q>E?eOWMS zU#oNayt_b$9*bRw{F0E8sOoYChg9n0jxXsHYwjzQm5cj2+PW|wC)$WT!=>$FLn@aI zKlah4iM;;7nc6NpzIeV0*!*2|Uwn-MMXhDM&V)e)Rw^VDSe75|P^x6Yb6KgcrT)g1 zLcE+F@yC%IM$)=*HKXn)uGP8;K{e6Yfk{{Dj|%{43~uoyk^BvA0X2H%BZ<9`xfeN} zmv&aHtN1XoYp1BlHDQc(WvsLX&0q+X!kl-|lRMl){Y^Cg`!H9PI=8;Nr=#kkzQOor z$QGIKv31L#S@_Ya&GoFL#h)N*{hG-1(#Ljn05r)8mBQ(dSqgqdlu4&X@r}hI{XUB1 zZwJ^7%bMNS7=OrX)2TgBhfJr&zDF94)Nc*+2l`b^Tuz#uA5+5381MoQT*E!_6v%6_ zRauoo0ZtNR#YMwk+Pt_^rh^*);6%&)GOb-gCe7j8$7e$fY%s-(f1nys%VpWTJ0JgqUtK#= zEK+*D`(i_i%Hwr4FdOLU_h}<`72TMA7J3RDOs>U7yT3qk;acMP&e!NbB1WH>evwKX zfkb&IXDh`o_a^1qR_FR7_~W18ryQNpt7jLgoWm&0Wwlts1J-(D! za`w5EiH*Ub`H6SYx7NkCG2R!g5#5xDnXIMJs>`s(pDNtV83s*^x21Qr6w^y6BF~)H z1;7`Vpo6HGknwkhE3xyHuAhi*Q$2vfG7?wEjus{@mhJ4b#$cKq&u7u=(kCs)8dB^` zqd(QKi4Z<(XJIh@4X1GmD%L^ZIb9M?0rni^Y;m}d5I#djmdv@|pUI~}ai_=IvI-xM z5poRVWa;&t@b3)9Nhtj#r#@q2qr?D*juE>HyNc4hqd+9sEUHJ<%QL!$3z1wraF6b} z$c}aKEvBdDoBn+AErDMHd|BNA{|?}X?Zc(bPl(sl=%1;1o<3$5h?zT$3Fg#D`aM^D zh`=L^>OkzDX=Qb32Wr$njgTS7GVrQ&CZd?N-5-KvK{f2dMR+DTd%l65LPz+r&sFfH zDwlk$OS^I(ap>aEC2rX@(gmh|djvy=E*Tg@nTBhp6Gv-=Sag{a4~8WYHw5Y3R*s*o zcAIbO=t!?o2gS_(Ug&~IdRORty;gQqxN+O_!0I%`ED&Z`>Q6EDBxw63mysl@ue(~; zr#ABhQ8gw`7H5N3tkgp+gUAwk(VXIcOxZ=~!PXjMzQi6KZo2U+^bJAwn#T6t;2pc7 zv0aYF#4c@YKZ;-YD|UWkdr*>o-Pqnoe$QxZKU#iIYiyUJ__324+gZNk#eUJ)-cx>$ zlZ7~2qp~|8>{=e1;#_jOxSXtPn~<}~ltRa>p3gqesm{$zSf;vM7fp0{&3CiG=snb;Jx zl8&I8m|Y|NVx?Bfq#--3H8S3;)U*0Nx`3D!N%2%~Xy4De>2I3&s@1Y|nRC>#PYVg^ z*UEAYoZs3ACgEew>swBQ7;@?Uz1b1e0KzESqWgsl2RSuZ*UW_1xYvP7*4#IRx%fQD z>B~23;kW`{N))rx;B5V`ET_gx!$q1;4fAgh)p6xFLwecQhz!nHshn2pKo5Ospu_Um zNe)VTxO&u($CsnY2lZ0?s@7rVJEcDdpT{y3+DVi9Y-;R1?Cgk>qe{ ziVit;`W3RuIKaHDB?^g^SB5Dceha})zQ`|?4y&&r9mEUNmTa)1C&%9~yeS}E~!*ZpbE_(?yrE+T)s ztG`k2=nRlUQzVb)%Z&EgU9`7uc53*j+ zlfOc1$HgWkv%5Cl$4%O&T)2eV5}Wq=M3~1pri---fBaQ{eWlm#-_dTfemUbt0U3CY zFYYC>UdhNiY1hj*L5LE2kYFYl{7x_^ltJv1T1Rwxc)2T*3caIA>%eoQP2Z&hWOV;R z3Th9To)Ol`^v>O6bz*ObzNF-T=D5z}caN3vAl%G38QcYWvod$yevO^&W3+({v|RQ7 zNP4FypT$|-Q}#tM7274@z0m_Ob^TXzFWG_yA#@KZL#Li3vEDbi&6n&<+Lf3yjH}{()^B7N~vS&AKs z>@!+>3p2mC8)W%8bbchgSGWTOv0^7p8$HUoyHQ+%pXe)kqO!*EBIA8OH3^}^4uvd+ zFJuRu4RdR57e@X*o8|YunzLE12L;vq^ZFM?&lS6FPy?Y7M>U0C;Z=&g4PTm)0y(Q~lw&tau2D0_Q zS7bOD=uYRaUY>^~PgR?B<1BsnICiqBeIx@!=qfiU%PJAi4R$KqWQ!Y_xjww>8d}cX zLZUQ<^Fu+Oy?lQr-L@XtFYE6>JIhDOJT$FR<-A3=2z>k?oL^$uL-j>(EwM+9XDGAb z_X3I|n`nT?6N3FSBf9gkFME4w*?rq-mF_Z?;6g9Ex?-ZpF>!Qt79JxhvQ5rOC|SJs zFANWu5 zS{t=scwL z*2_-F8$Bv&&z}#5VoOcF$b+^oVkdQ6KnN>&H>rp#)deJ)0{v>oiSx46d8Yx{{WR|W zGEdCYY=LJkJpqU5WAbCO?1m>uqHnHQkRP8?A^gB)a;^Cb@?*PX8Djdgk^Igdu2%^- zreY_(v>`3MR6SEZeA_6`Q&{?T_ZmI2zKni5#EGNb)8u8p^?*V z_nTh~4gxuFGX|rFmG8MqL+{Zr*U2~DiUkU;BzNXt6f^lPkp*I z5xDMfj8{0lbJ0va%#w2&sZz#@-TOc(;GagCNSYluQj*fdyq-|Z`YjV7TmxNyKqtt$ z64kF?Yh=PIiFJ(;w8mPvN4rh*rgVuW8m8A~n+` zvx3ny*1Xo*8X*yY24Rp1udc=Z-da0S($ckIx$;Hs6`fb;OuTcigadrwFbxM79|O=w zh0IN1*4#@4P^ALWwW5{8zyQz-S^P19uQ#q)osYSgU^Q4V1~DtiWw%KwFUa0QcoyFd z-W0~AYiU{A-~8{{^F+~f_r6Z)3Q^HZ-xO5r!T;qaYIAJkeg=f;&v3ezE^Gbr4L#l` zQ-Rw|4zpsNWX8&m_=}2dL44JBG3XWt#fCW_l+2L0eX{bi>2b~pttU*o@`W58a)zf@ zWyrULy38bVZ#2v*>pA^=5i4&_B$xxDbD4O>H2|BrdQDw=XPuZmnA(;B ztGF)Rx37~_T?$t%p&b^%iD;2LVIRcaC4moXAX|8a#5XMCVC>T>VHqdB{$5gu@^d_G zGA%lm7FE0gb1!Xc^2QVQ2N6FKQR~iB5p3u$ncCd!e8}5+BmXq-O9R0f1NU$(qT^Cx z29;F2;{J*x?2ok4!53?FZCN2qQ7ml?b3)FG45((P-1$~aFmN6|V%_`Jr59py z9c9B=qu_BkY+iR()~z^eEz7T~T7JX2$b{vqi#RBe-tEs%@|l<(8GTkRna{<~K6{K- z$odmco{jjH+#Q~<4)bf5j&PqfE1K=VUk)YQY5Fa+xFHGIoW2?K675Cio-@N@6|j=* z{}5g+Et_~PvR^b7|K3|T5M}t3qOlV@<-RhL`)nz`)VY+*t%2jIPX4^OsG&u&T8C_l z5#D*uIM}8&P?*WnJT|mQW&}TjJ5*KSnmp2_fTS1kn>nAFIarB+${Q!X01FQ>6>{?e zJ@HGAZ|RV}iM?z?_5R=@-1aL)wM55I+sW8*6&-E@CJ_0FMOI645+U=ryv_0ZPtk7q z^)F>{PFxyReKJG53rb?n;%bM2p}}}*wtu|448Y`jQ1}{|cOmsRoLU|$1(#p*Y%X;3 z;adxbaUI&3`4pHad`zK>7$d?%pv$cahf}0Au(s6OtbF}4nMMKu0b1EFcD3n}(WV36 zTk4OecQ#93+)F9>lg4Wxn;IUM(O#;H-RnVaIIyadfGk#8(tVuNh7+P)5Y$6HnI;MEOQI^$b57{4X>3ADY3x6#U73 zq{*ENpV;h)Z9y~aF1x&0=tY&^Uno@)R#PeGJaQ>j;si)66<^?7OBK$-B|d?k#ic=P zCneztD>%V%!zpNqGk-#1=oDp}T4bI)HXmfd@_kNUdmUFznVKz{UmkjLaTC_)`+=T<>0uIrbGwKP`wxCn*N$km-R!S%l$2kd~YB5dPH&C6VBr# zF+Q+Ii@i`69b5|GIVw*I+xyNU<_BvcvCfU|hyKLx? z>3?V$H9+KzcD-|q)YI~(wjqG^Qi4g#KucT!^IBwv#c zT|x^2nAxBQbJE6|2*?gJ@{NFVz-?&1-jg4(V;b5o1a6jr zERc5MFZm2KZKD{ZMl*Pa=hNi)K?aTt5NlzH5aBy%`}T(R{+J{&0^!#~)9mU44wCbZ zR_ZW@Q;1mIR?_(81b#EUANpq35-Y_{zBl>zr&9M#I?Ttv#gg%iQR7=?pip`>u0lUt za6(>a*_I;rWr~HHWWOOj@G}yHcm9YxCC@vOXHmHk#ky9j-gG|OJtW||yBEZq^o9<88pG~*+$Az>}G+VUL8v8J<7UiB*P!>9-cRJqLqAu z7wb<^{tvwrKW?Cf5?_@V3HJyRf+G7_bB`vS$+rIsJ}342ge6jUQi&lFZW_nUu%ea7 zEkP^K%o}=LYyiD8^!nJb2GE+JI#+MwSQ+VN*lhh+=CTG#QH)v8N`4N@48_Y@!Xggs zA8nd|efLq(S%f{J>0?)oHtaElHqn*uo+s=f)P}tDsm~WQ_g->3j}X7ky@K*o$&is) zS^JUMyTnJ(oJqK2ChVct5e5mO3BJCBnF+?uQ1CU#o(i&A`7gfe5U{8(6X3T9^X)_X zTglgfU1tYAJ3tRKTB+^Qzq?jjESHGGs3-^ePxFt7d;)2A))aH_r83h^bgGR&SG%tUh^E{y-+*wkM8BALE7_YF7go8lP9|`W)(4|Er zs|?GF$hK<@bekX~Ri2cw8EV{;$H*0aJQ~0mo*GDYGM`N5x~7v>Ne{aD`_%j>11B>E zk2QUizs|j$YGprtMZTT`6`>!@k?_`B@r*S*BQhSAd!A5NzLdWMNvk8veSmCGO*K2e zeZ)#7c(0$Z@vNqziS|jW2GvFg=w~JS3;7U~8asf`TFLLMWEax8)p=II@3_@j_zZtj zEBPd;R8T0qH)Nod6qqVHbgmblhTc2R739Bi{`ni`uENBZxEKUBk%o#ySVRyOvCN7) z9eAD8_$R{!i#en#Vm((405LZ3@ckiDHsm+kR5)Xj#cWYMFPl?XuiR_-3|&HvZ+3?r zjlRlRv}n_BMXBns4?l-m3dj|6JB^f-Tu0LOl5FBicD8Og$(GyzE6~J6BH)etVyVt+ z%kw#q76&IEEX&1LUnT?-;grN%e&Wk4Ib<#vZAAst4h zk}y)keH+XD(CM-8&>2?h3nmzuFa7!YQQ-I@CMY82{r~v*ytjU@h~Bc$+OJ$WM;%JM zS?t~h{@L=e&8C{ArY-mRWhvs^O>uXYmfLI1$Y_weMN^9T8J%lQB_-}TuEMBOH?mSmq2o0uZ{iu;c zzvZl`3Q~6Lx4#GYB@oW9Ue*E5T0e*LU-@1FgqBFo*koKLCsC+ngd{Rs$$*u_QIc4{ zPvU7L!j=_Z`i`-TSB<{YFe|^@N=@T)D6unN_PP@*3N#e6c@7vSTsKUPtUL}~u(%sF zW_F+x+s25L9n?vi49g_+i8Fr(+=L&^!aSMMzMz=s`&M!zPcZ19Jf>U-hVXi`Sf;a2 zoECN%vGl3`^36;`Ozn9w3&U`6q-k_{L*?n>?ns2)o5@dv-T2UuJ(}b4JwEw;zr6IC zV?xDM%W>4Td$EP$d3M|eIS`$*|1DI{I=II1f)2^-4vOSuZ5#0#_ER7z%TeTbOqLZv6J!E7&<*<-O<`sq2pfk zS@en^Ve4QOqtcr9-Dp{DpO|qFS|V%`#@D4T{f+E@vhT9J-*T`x0!z#h;OtZ}oe33d z^9hIDR4d13lj|uobO5n-S;Uf7Ftl1CP>Q4kxx+#3P==iFYwQ4npOqR1sV{Gq@CQ(w zy)&cbnm7~L{$-9Jj-W_fgtz1|D@L9h+6VYL%u`C#C^?FqW6;lxV$kOuE}@mBjOhIo zWo2z89|n|J7h}HVSsNwI6hcc|qj>OKfZR)cnC2Y5#4jB#+I0~RUEc|H-G)){uU(8$ za9Uk@QMjAz;mlgdO39W0tDrHRRzdVv#{LlhPxkS#?D`(pjavgkj#uJhIsg2MetElU zip3Behf;I+lwNae-cK|sPlU5>IZBF|N95>eJiK_4DWot zj_Rj5cySTjgLK^a z>p3eGq)2vsXQf24`r|M|Y%3)y8!f z{WP=L=}#V!1K0~NEmlEMvy)G&wU)L?p;G9YCM73Wpy{BrmHnktJx86Q^idRj*MO@dV89`Ok>=@sN}+#|K?d+Hm? zAs;;b!YQQE(9V?@XIA-QsF)3SNb5KJ^ zn>&yn$Fg^v*SIw=Z%2N(YioE}M@hKrb|;@2B295@jvKP$|NliT_rEfrjQ*oWT%2VV zoJh!hn88zmsujbICvq_ay)AFDMD7;U-9IxAsA=~s3MSeEh90N!;`f3ZmlxH?hFk@A zRyiC{H>Xci_->;A&nk1y;jGKAoB9R?u<>p|o;2<$6^bV1T%W?7yIjWq9*IF?>bcPC zj|;V*4#}j;9%ADj*~^xE@yq3=q-DEHy!J9|Ww{Q0mu)SAlxV$>GTL>Q`zokr>DRbN z9mJ9nKhL`97Omq5#Ynuw8uy4hnZZLA51fA=JKm5kXh^s6an?L?t9@E7HQ$SOtf5!q z9_9073@m3{pV;H;r?CSPdmvz5+`BIr4A~z}nt)N7t|oT;Xd;h}LUUfMn@ zIY#L!+^_9Ui9dnRcGr5yTkJk$@NC>8t9ed1C|oi8SSc)4csTrYx|EylnG-zx?|ba$ z_%|X?v*;(b4x+0HJlu~3cg3%9k9zA3Xxt;-dRFQW)Zt;XcDH*7Z-(Bc_q)19-uGp@ z4|I0}B!hX0%V~Xml~#Q0!#Cy1+}BBv;cKOuXpy9@-5qY4)DaGJh&`~n0|uIY8Z+9# z6U2&E9E^9bvyXjjZ$GBG&-?-JHTLO8a~o^!lfMJbX#8BDNRM~@p0&JNgCG`q?L(_; zIu$p4J(}Xs3cTp;{SsTtaKtstydWs`pF#I?MhRj`-2DaN#;v=dzA%-XGBFU{dq7_vl`+cPn|Zw)e)JN$y4U4?KhV80 z^Xkgl-=DBVNIG*CL79?m%G{+1G~2Zoop za!k+HM+CZ{`S$%lHcoN42pEsR5~oE{S>l)c54S+sr^PabJidyW3jI<`4qUnN^GgAa@L zV`dF>`;i~clJt9Fk}OlW3>r7Dft*sWr2m2=sarE zE=G&_@L_b}|H0(@Y{-X{y+bdu85*3X>s*z6pRp9BmX+Yh4tjbt=} zV}_?s^Zigl)^jHvfm)^eqTzlU#MYK*D{v-0kLt0fBTmF-H=e`ap(RCB5_(Y(R&!t5 zEuHoYL+5J)*k5Xyq*JM35T`rMQ5P_|LAyiS)_deQVUZ7GlS40!e1CG@OX4HkcC630 zA7rjV*yX%Q0oLSlPE=2URmoOJ)q_}~*vDx4{eb+$o-^mX4pUL)I;y26lKU1ocXloq zZ#C;H7Hvy}xk4Aa|9(J1US;+#*^mC5^Vqw?>2Y)#o-x1O$dPT7bO}YYttQ8;F?>zM z(nkDMWmY~JUYHYY>{zOAHM});EaO@9-U8mRf7qkfWS4v5e<&_yoZeo~iRz6}n=0)1 zj;K9*_bZ67n!H5ElsI7|cR8cLk44H+4AI2K9pQc}qsR{{lGws6j_7k@Yd_T6TL{f7 zIz$#K$)$0i4g7j+KjS|5GMKy|6h>sU9p=s7c7Hj9%OEt~rw@|{s=x`(1JD(r@G)cg z&wz+bcs<;>cM!#6y?D0I;MnD>VU}D&Zj6#>rS7I^c-f~#;ikqK65z8-D5eUq8}P?% zYv7BW{p8?~_hFk(A2n=+zuGDN?M(W@PU&(MUFgEVZoH~ro^uEKL(2`yVajmM}%V z(@}~pYr~e}({!!y)_hqLZ@^8FidU1#wCCy5_3M9fzb=plbA66GgZbWz5(nocmWXvI zkLaYFTL-sCPnA{$Zv4I<9$;m>qyuw!1`YUW-}u-2zH7JU?DvmKf9p7SYtI`Kk%q`s z0pB|Bsr&YrLBzihdFiyuyInI#WUjiqWXGH4|A)z6>F2-8p zr{AB$ffjE(;|%0^<(a(A63W{icrm>+3YWe3VXnk5Q9Wk6GZL3wL?tUq?09oz_vg)v zb$&#UZg(ydpoy6!;h$-8oaz33<>`LxS`0{d+hpo?nB)!PP+&I}1Yyqv>z* z{FFXx`S>lJV-57Zk|}?Nj+O@C=us7+XT!{b8sU%lzr#&qIQhE48FnAC5U+D~sz zd$ep!XowKi*}`7<4^iTjuFivGhMh~q5%X*YHb!Nkqg~W@c>4PnibHutXWHGJu-z!) zN24Y#*v*rNXL|jK!-AOn3$W)lz9zrnDxyO622j|(QH$8k#q!2kFVT#gb$DW`Cbkln z+93fO##(8&<$L-@!6w!%LIZh`rl_9=5G#R*b5DqaWW($u z7Bn4kUlCu^ABwT|3F@HJ{(iCOIlWIiMRKadbT(ZeN!9%|iNoa&@?OUUXC>B6&mrvK z*YZxrz$7rUJ0vA_C??PSRR+B0M0ndO6hF*rMo(JO5@v&1jmhqJBsvpL1(8ggre%I?)X9B=r zi943EMP|mF^1H|(27l*xI53`pjOh!*s2rOUJv(Y^MRF`~W}SU)iSF(_Pt|%Tuj0d~ z-A9zEU|Toj8QNc{>XYfei`WA`!lyCXG~i>QQ`k-!oSzn)oj2~)IgL}2z&B_6Fu+ph z0_Cx$qWiQ^VW{}5bk6|^y@@23{0t^Te|DU1h@B!}N)!xMdKMFJ<04<&S|kRqyhNx( z?lH+NEoZ`LT`<&ie*-z>z+f=kbdo`I+2#Ug;bF2a(e{55wy%c_1@)hUiyDcZ5d|2{PCZAB&hi9cON0_xW8hY&Q zVWrOJT~A*usn4`k#8$S1+=uN!?=;_!_BPB=`i!Q>ISkSLMB$6b{idjb=zZuBIa+|I zel7Rv0Y5g{V*SJRa8d4x)L+X=8QJi^G&}eeVbE|FWNbRGa8JXj)36SLCko!ta*GZ^ z%hU2?6U_=IHt&!Ezr05$c4veXOn=f^R5&emEd<=|^hW;_*;f>uFtak^`Nr3a&n~CE z!=hYIi{c5s`0>ZgACcEe!n-zcu(eBg*%yV0FY?0^+BdBiAVJSJ zHC&$`Lsx}*4c8Z3i$0qgsn3O;zaW>FAzheXsz`?KoZ7olQEKX0Al*(^FX;kDIIRm2 zO))Y^`_;c4qk&S__i0yEd!pQo5M#ND@xb}^I%FV69oXxW2G%g&mkq^*=x_w{P%dkJ z4URC(S%WBqIUiHv2y-r2ERvP5Nn7uPUaiB0l^9;LSvqvYD$G3n)1O6M)Mz^{+`|k# zT0`vASjm3WzzVZO==;WR#OAWySv6YnSSc~kWY@{rOBD9;F3;*WKF~WrS5R;sCkhA< zX`0h8Mw-auYUl5BOg;DA;(cA=Ty`N}`{T~8?kW$TXEH=3)s*>EaYOoVcc$N*60h@WBTkXm0I?rRgB~8QIs)sH-t>#WxN)|r;R9-tIlWZ-OY+Xsvc5jC zhyIq-8<|>LmO}fSndCUA3WJJzoiQdTk#O=de&sRoEBBo6-Hzuoeog{${!BS;wUW`q zlvC;4${{claGuvOh+A%tm@R2dJvk&jyO=0}5u|FR+Y^j@`7Ch807q;u9-N3ACX@Vy zBM|t6zxxbT-OsPllxnOL&X)kbsIRJ68*Vo$7XH9S#cE->;W`w9f44i&&q7y|Ia>9d zah^xmRKteH2+#RmIY-jKP^*Lw%X6{%DgUdfOpRtpmyErP(@`4J;CrWiy7mWzaJKUp z!H^AvPT7Mo=pu3oxA1 zc+_K6@>*Nz{6gN%C^*LCvKEesIEV5qypz~mnArGJ*Y%-!b$uiI^l0|(5S`zpcVu`4 zoNI5BL1#Sikqc;TLMLO7o6}RA;R)X;jdH7%^N8<|LkA_op4Jhne=U*dbj}r{8O|uY z#kj|{l7P9ysP;mlp%di(vDtY}f2p=DB6!?o1^@PQ*@$?2D$yho!+K*&!}-`if?~f9q%ZQT1R)Oc@=qL9DML15e1a z2ltnhbl?bn?7+VU$SSK$l9({vQ=&qX25E{BVLL>da|J^_>kR9zctOSns}%0{*ebw3 zjGY*^F;mVewmAou4y=<@jzaMG9FKPG5$V7}9-Q~jl1^nA=rr%i7<0>qQ^QTvFxG&d zsNid8sNRktTaOs4*6YrsbcZACNMn9aW1{xpI1Q+?2Y%6Ce6WI6axg62PU~E_K zpb~`PVo}MQe`Ed??j1!Vn#Sa-*~z(>lYF7{NB6%Y&gerxSBlL=z`KF|04^W{UYjoHh>08O(|_R5 zum~S+n2%nx@=iqm-{wBZ`M>N3bN2KOzCjZfA51V5q-b}IplfHF2>w+Y+#9ANj*GEq zm)kT&!25bDX=X`Bj*n%P=O@Uzcf^l{_GC#K{1lFCPYb`mag7lhOjk1uK{xm9aeu3f zav@3Xv&TW}&K4Gj#Ls0E;iJVFkREE1!PsKZADiOFZxE0m6@qhwOW_E`v3SeYI#ykA zE;g&~d5_EC9}Xl$nZ!hw3^nW>)ifa*8zS3^Op(Hzg{P64yB=14HuQ%)b8rhVA&2qT zN}Fc|&`97yJ@z20kwr_7vt^c}J3;1DvyW?!VDqud4$G| z{HOR_c_Q$yHt;Xwxd;A7dGp{uTH%Mc=`^E~?)Kccd2rt%Wr6$U-1;zG2j?o%-GG5! z;&;AxzmAUk5zwiWQaq6yk){AWt(F$YGD$=ZY#2Mr$myE0m=tWdwkLlw#kZ^z%1%@Z>-ey~SrkMiE{0*!E&v3mO3HXZ`)sVug*?E*;aS3A8KpF^D zcrG{aWKIW(hVPs78ZZ6u{nAhJ(m&VLG6HE%l4itZOq+>4&~{$0g!n8hTpYHyn7)0%JyBLEvh5QtE-}$($8HBQSUHoSj zUA6US!0{}9Qo5Kb>TpsB`br zH)ZZM9WQh5W1cfV-X-fxs`v|%Ai)j#eU5&AG56gB)dGYS)MAJNCmfh;4Q0B<9Ty** z`6KTDZS*&yFM${plhjGqZ0(N_Ek_dx^)Sr@vVF+A<(hNnHN5FlAFPnJCj$;U*%xW69#nj8a` zcu;z6rSq}|9dl}fgAlpv)I~GGn_ogbmFh-!^aIBsuMV*I*BKE1rwEnf>%nqMGwNTX zDsx6(KsweH_av^V05+Yf!zivNR;D6`%?=Amk3Wfmn33e3Dvnf(kG;_)Xn$734kr{B z5(G0VlDbw;$0xs}7RL=cF6X`ppmbz+Vp~a~(;rT3WwU<_Im3y)CFby`xpz=<`pN0I zNA65)E#37>;(hMLkk>UhY3y3R@GZt$sv?DGe!Di{I*5LmK#|tHD~9_J75lB|_hqEt z3;jOh|BYzf{LZEUqJbu^M9n4*H}Eam1=QH6C@PiJ6pxIZxi$bYf3Dg4byF!1ov$)X~w@z+$d@Erjsb`~1LLE-9TP$CbYgxHi<(~dhJCn&_2 zuX>cem|mY{LVD{|uPC)SdWLmmKF~>P=sOiEjc~C=auI2Ch5fzwy=JA-a$0p4(p=6` zb{P$1zONND0GYQ>d!>&M{^0L#7HSy1ARq+t@v$-u8P>tJBs+6U92=r8o}zDcrK!PV zcyj87WN?=UXakSLH0gHlVCJ)x&%7>sVC_#d^)tb%J!_?mZ^ZeIU$(DS@!e~|}jnb4BY^PcEyuZ8>GL$vrDe8%)7H^d{bnc1~GP2AX2f=KN3d-WQr zQZ8CS2_SGZ=ARd+lV1ELnb(V(Y0JA!pn-Zp_{5TM!??aD$A6o6>m}kz|H6z%zn9H# z_Wm&SprhZh_qA=>!7~T_Mb|5Be-dF!q%w#|jv2^_g0{!^OO%_|+m`H?DEFRcLQ+r8 z-p)A6e!IagDfE2FcDeQ#2JtI{_FFa{Z8tt``<98!+x3`%S453Ecuhln3Nkr5Eb zW~4^X9Re}k92|s`$z1n^FO)*KpF(2E4!-Lcxb+#x=m{#tKCVY2kUpw5yKli#(WDLv zJFiW3wi3WkgC;nq1__|x-m^#eoyL*UC<(JAO2T!)kSGFe(Qwt#gBjRAQ^nOonKlB~Lw{fGa#t*4kzMJ?<(R4_9cLW~^*P21V%g#gkEpp~wFq0Xe$%cP;CEg>Q5?wz> zkY`KIiP6vg*ebj{r{PbEe%ZSn9l9l7+go4=$(WoVEH5Y9c{=iD+qT?y)}XxaCrV8P z3WV14k&vl&Y z;8OwcU3d0vDvz+Sk6o_w8^3FJ^0=ybC$yF@7TLw;*@nH{Z8ziofWCwQ*$KNh^8vY# zqtNYBviJ5R*7`-{>46WGfBccK^C9Ecd^ATIWo(ig007G8g_&@xke4RU*5r@y(=3gh z3jJI`0i7&=Xk#>42 znWL4suJm2X;1;bE*zc$k%XFH)nIV3h!N8YA5y-Sa>fYQTuUjB$bCma{CD-d?>JJ% zXF&l2BmpWIfHz5z!zD0*Ll^>72+6NZupmRC;YW@@1qnN>s4YGr4YU=nh22i`1XwMEPl8K6~rjqz>w4R9(xCD zJ6|P0_z8T5S!hcr3UL?E<47t1gNa3P^0tz{)$-d#4*b~t>1P1P2;Veb@Cg6RYfpj} zXMI=qQ`mb1|A)h~1fP&fQv>diglZJn-(&*V>98zI4U+c5f|ISJ*jb>i?~~B>rBJf4 zeJFXV^W0~Dj9&`P`U$4)6rV!|aSI2YqG|)z=F9b0uCI4b5ot6vx{R@wEbY9i_@jCl zUGD}^K`;N|HXp28ZPGe%;>Xffv9|R#!`k%|K$Yq8GB24+m@d)8hXu%U!QbH`d^-4K1Toh)3K5P{qLm**8d`c82UB(-$8l$ zU!L>yzr1~|{uhRvrBkD~zD3IB>wg<}PLn%=i$^g~Fcu;wr}VcE_dtZ=*GTxPR@JFk#MMQH#D4l#=CRfm0+9G$* zWUiQ)!#6Q(bl=q0fJ!NI;bA(Z!7re_MgS5>;;(B(w6u9~ivPlMX8HS~KgrF%-jfeK z^^Xr@L~0Kb*8iMfdf@E>hpYng`J&q7!QbVn;SAP;cbNdP^f&&32X9i<$ww7Z-z3pm zJoKy~XbDm$jUnCHlvrKRRD2RCuG>$iF3mIz9U=)wK)J@1P6PYN-0({hUUV|m0}D)) zA~7rgO@=NhGzXsInQ8=$9DmEMznf(Jy>EV2V!f9$SYO8@GGl(%vmf)i7FV2hWco41 zJUyt+*UL%I9IA;)`V4%)ZZq_rfpzV!Vv;b*rHa3yRcr@xcLW)FTm%=+QxVT<6ggAM zkCFY3vBK_UlOvkJY&U#3z_{xukTp|@)9UI6n2RSX5ZeB3wDDf~XZI^#Ddn5B{98W&K4;Kny@ryt$O7e|Ch42Su=*6(plamCEaGgH<$*)Id>asA98Z z9eea5mhFI+UE%KIMp8113EKS$AGkA()mj|-kS!u&8x|9~p3)T?dIVoFjOgyG!u*8W z;=f{Kp9_G(h$}SVYE8J4Y1MUO+|wmN%=9s$^lfv?^*i1R7u_HOxy?O75M7djHS-Sn_eT23HjKbXE84W*>w_jv@us>X4I^69PSMhD*`|#IOSnu}f4&R>jY6TG|i;v6R81xf;=5b!V^;f}(h;^QRYgF=+-B|J$GL{11U z-|EN1lglPnL@QP{j32<4kxQXz9|50sORVI(9~BVAy`*;RsI@{TR$>fEPm6QoNK9fZ zbTa^j@IV{itLe8r+^q4!up7F3;pv4CE&z89o(>0j3aA+_)`C{8vk8H=$q<~ z=bc*XboJn;O?vP4p~ia7kP$H>TK(pHf@`|mY+75e!(Q)BOlYBSUk1tkopr7@1NsX^QT-9mh0L%GI z+8oaKaerFoeO`1P=peu34Knis1rl&G&^vUX<#95V@oyhgMx06a^agpPkipxK%94Us zutB_aQQM(ZBoW%-WG(Y8cCt{B#6h^vtDosHnRa{Ce{O#L4PK5+bzc3c!KbaP5Y2nz z^%TZ*bt112))0OeHqM6};yo=@IvWZ3M4Y!J&eyJgGJOU`XT40kKkKf~$jz{G#EV27 z$Z-1R0iVDFBr<#n7wuH9v(j)lc9=DViEcJI!uOHY@FIKe)-%$RcPw}P4p-&Y#{E6x zTd%P%5*^$^@_hVLJ2fZ>3GUjIuI;-67tQNACHRJzQX&99wVEi{@5~#e_%U?x@t*zZ zg43Egx|kjD=%SNsLKguLE%O7L#2|6;-?wXBB<(M)sc^%hcE00# z6K4?{;|ZRT4*~GwYu!0gl9u$9Ss=_#C%|@@00h$G zlel6)Z_sChN5PpdKv$MNb&e{XOCQ^GmfsvKjZ|!RfA9tFHB9f`6Z^T$bY@?UKjE9z z0iW4z-FimC#o@O25nc*ob!*+V>F@g8GAgbg;A>#!6=pKP2n^JT9=rIY2l>SxEUiD|Z{20YKv+p{nV-_v3}SqcO8d1os_K7~&gDTOX`IdF=6^DNBT_q6!SEEQjV z4TRhyZ8c+GxN{TfICTcp4*defbEmClHMHK_}MX#={Y)b|4V?PK>6^X&v(3v3}OW+?|(W{VT8x*^4a0rnZ? zIu5O82(l0^Zn)a)hV@b<%BchU+BW zmz$z}T{ULCQdQyLx2l2zJ+N0I;N|9GHx2f{Ye8-1iZvJ{_EuI9d=Sa}7#$gacMocH* z3#cCHSKy=H_tLJwqlb$Y?wfRsz)BD9^3o-8B)NxV(=~?B!hKcdJ%0DnV}Y-AyrL-N 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ᙱ~)6|3VsceqBg>8nHJ`|n-0(m5McBS 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 z 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

    `_!Zm$=08UM!RW{F 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 NWBu<(m6*2v{|9DA+@1gc diff --git a/build/linux/work/hardware/tools/avr/bin/avr-c++ b/build/linux/work/hardware/tools/avr/bin/avr-c++ deleted file mode 120000 index 8d64688b2..000000000 --- a/build/linux/work/hardware/tools/avr/bin/avr-c++ +++ /dev/null @@ -1 +0,0 @@ -avr-g++ \ No newline at end of file diff --git a/build/linux/work/hardware/tools/avr/bin/avr-c++filt b/build/linux/work/hardware/tools/avr/bin/avr-c++filt deleted file mode 100755 index a33b9042876f2e4a876336e7835f5ec482a684b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 546352 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 z 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

    >Vxb}nM<9c)q)SVa#P#;>Zw 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 diff --git a/build/linux/work/hardware/tools/avr/bin/avr-cpp b/build/linux/work/hardware/tools/avr/bin/avr-cpp deleted file mode 100755 index be49cffa5..000000000 --- a/build/linux/work/hardware/tools/avr/bin/avr-cpp +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -export LD_LIBRARY_PATH="`dirname "$0"`/../lib" -exec -a "$0" "`dirname "$0"`/../bin.gcc/avr-cpp" "$@" diff --git a/build/linux/work/hardware/tools/avr/bin/avr-g++ b/build/linux/work/hardware/tools/avr/bin/avr-g++ deleted file mode 100755 index a62a5a1d2..000000000 --- a/build/linux/work/hardware/tools/avr/bin/avr-g++ +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -export LD_LIBRARY_PATH="`dirname "$0"`/../lib" -exec -a "$0" "`dirname "$0"`/../bin.gcc/avr-g++" "$@" diff --git a/build/linux/work/hardware/tools/avr/bin/avr-gcc b/build/linux/work/hardware/tools/avr/bin/avr-gcc deleted file mode 100755 index c3ff2dcf8..000000000 --- a/build/linux/work/hardware/tools/avr/bin/avr-gcc +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -export LD_LIBRARY_PATH="`dirname "$0"`/../lib" -exec -a "$0" "`dirname "$0"`/../bin.gcc/avr-gcc" "$@" diff --git a/build/linux/work/hardware/tools/avr/bin/avr-gcc-4.3.2 b/build/linux/work/hardware/tools/avr/bin/avr-gcc-4.3.2 deleted file mode 120000 index daf521dd3..000000000 --- a/build/linux/work/hardware/tools/avr/bin/avr-gcc-4.3.2 +++ /dev/null @@ -1 +0,0 @@ -avr-gcc \ No newline at end of file diff --git a/build/linux/work/hardware/tools/avr/bin/avr-gccbug b/build/linux/work/hardware/tools/avr/bin/avr-gccbug deleted file mode 100755 index 6698ea09c..000000000 --- a/build/linux/work/hardware/tools/avr/bin/avr-gccbug +++ /dev/null @@ -1,558 +0,0 @@ -#!/bin/sh -# Submit a problem report to a GNATS site. -# Copyright (C) 1993, 2000, 2001, 2002, 2003, 2007 Free Software Foundation, Inc. -# Contributed by Brendan Kehoe (brendan@cygnus.com), based on a -# version written by Heinz G. Seidl (hgs@cygnus.com). -# -# This file is part of GNU GNATS. -# -# GNU GNATS 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, or (at your option) -# any later version. -# -# GNU GNATS 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 GNU GNATS; see the file COPYING3. If not see -# . - -# The version of this send-pr. -VERSION=3.113 - -# The submitter-id for your site. -SUBMITTER=net - -# The default mail address for PR submissions. -GNATS_ADDR=gcc-gnats@gcc.gnu.org - -# The default release for this host. -# We have to guess at what program_transform_name might have done. -# "sed 1q" because neither "head -1" nor "head -n 1" is universal, argh. - -DEFAULT_GCC="`echo $0 | sed -e 's/bug//'`" -DEFAULT_RELEASE="`$DEFAULT_GCC --version | sed 1q`" - -# The default organization. -DEFAULT_ORGANIZATION= - -# What mailer to use. This must come after the config file, since it is -# host-dependent. -# Copied from cvsbug -if [ -f /usr/sbin/sendmail ]; then - MAIL_AGENT="/usr/sbin/sendmail -oi -t" -else - MAIL_AGENT="/usr/lib/sendmail -oi -t" -fi -MAILER=`echo $MAIL_AGENT | sed -e 's, .*,,'` -if [ ! -f "$MAILER" ] ; then - echo "$COMMAND: Cannot file mail program \"$MAILER\"." - echo "$COMMAND: Please fix the MAIL_AGENT entry in the $COMMAND file." - exit 1 -fi - - -# How to read the passwd database. -PASSWD="cat /etc/passwd" - -ECHON=bsd - -if [ $ECHON = bsd ] ; then - ECHON1="echo -n" - ECHON2= -elif [ $ECHON = sysv ] ; then - ECHON1=echo - ECHON2='\c' -else - ECHON1=echo - ECHON2= -fi - -# - -if [ -z "$TMPDIR" ]; then - TMPDIR=/tmp -else - if [ "`echo $TMPDIR | grep '/$'`" != "" ]; then - TMPDIR="`echo $TMPDIR | sed -e 's,/$,,'`" - fi -fi - -if [ yes = yes ]; then - TEMP0=`mktemp $TMPDIR/poXXXXXX` || exit 1 - TEMP=`mktemp $TMPDIR/pXXXXXX` || exit 1 - BAD=`mktemp $TMPDIR/pbadXXXXXX` || exit 1 - REF=`mktemp $TMPDIR/pfXXXXXX` || exit 1 - REMOVE_TEMP="rm -f $TEMP0 $TEMP $BAD $REF" -else - TEMPD=$TMPDIR/pd$$ - TEMP0=$TEMPD/po$$ - TEMP=$TEMPD/p$$ - BAD=$TEMPD/pbad$$ - REF=$TEMPD/pf$$ - mkdir $TEMPD || exit 1 - REMOVE_TEMP="rm -rf $TEMPD" -fi - -# find a user name -if [ "$LOGNAME" = "" ]; then - if [ "$USER" != "" ]; then - LOGNAME="$USER" - else - LOGNAME="UNKNOWN" - fi -fi - -FROM="$LOGNAME" -REPLY_TO="${REPLY_TO:-${REPLYTO:-$LOGNAME}}" - -# Find out the name of the originator of this PR. -if [ -n "$NAME" ]; then - ORIGINATOR="$NAME" -elif [ -f $HOME/.fullname ]; then - ORIGINATOR="`sed -e '1q' $HOME/.fullname`" -else - # Must use temp file due to incompatibilities in quoting behavior - # and to protect shell metacharacters in the expansion of $LOGNAME - $PASSWD | grep "^$LOGNAME:" | awk -F: '{print $5}' | sed -e 's/,.*//' > $TEMP0 - ORIGINATOR="`cat $TEMP0`" - rm -f $TEMP0 -fi - -if [ -n "$ORGANIZATION" ]; then - if [ -f "$ORGANIZATION" ]; then - ORGANIZATION="`cat $ORGANIZATION`" - fi -else - if [ -n "$DEFAULT_ORGANIZATION" ]; then - ORGANIZATION="$DEFAULT_ORGANIZATION" - elif [ -f $HOME/.organization ]; then - ORGANIZATION="`cat $HOME/.organization`" - fi -fi - -# If they don't have a preferred editor set, then use -if [ -z "$VISUAL" ]; then - if [ -z "$EDITOR" ]; then - EDIT=vi - else - EDIT="$EDITOR" - fi -else - EDIT="$VISUAL" -fi - -# Find out some information. -SYSTEM=`( [ -f /bin/uname ] && /bin/uname -a ) || \ - ( [ -f /usr/bin/uname ] && /usr/bin/uname -a ) || echo ""` -ARCH=`[ -f /bin/arch ] && /bin/arch` -MACHINE=`[ -f /bin/machine ] && /bin/machine` - -COMMAND=`echo $0 | sed -e 's,.*/,,'` -USAGE="Usage: $COMMAND [-PVL] [-t address] [-f filename] [-s severity] - [-c address] [--request-id] [--version]" -REMOVE= -BATCH= -CC= -SEVERITY_C= - -while [ $# -gt 0 ]; do - case "$1" in - -r) ;; # Ignore for backward compat. - -t | --to) if [ $# -eq 1 ]; then echo "$USAGE"; $REMOVE_TEMP; exit 1; fi - shift ; GNATS_ADDR="$1" - EXPLICIT_GNATS_ADDR=true - ;; - -f | --file) if [ $# -eq 1 ]; then echo "$USAGE"; $REMOVE_TEMP; exit 1; fi - shift ; IN_FILE="$1" - if [ "$IN_FILE" != "-" -a ! -r "$IN_FILE" ]; then - echo "$COMMAND: cannot read $IN_FILE" - $REMOVE_TEMP - exit 1 - fi - ;; - -b | --batch) BATCH=true ;; - -c | --cc) if [ $# -eq 1 ]; then echo "$USAGE"; $REMOVE_TEMP; exit 1; fi - shift ; CC="$1" - ;; - -s | --severity) if [ $# -eq 1 ]; then echo "$USAGE"; $REMOVE_TEMP; exit 1; fi - shift ; SEVERITY_C="$1" - ;; - -p | -P | --print) PRINT=true ;; - -L | --list) FORMAT=norm ;; - -l | -CL | --lisp) FORMAT=lisp ;; - --request-id) REQUEST_ID=true ;; - -h | --help) echo "$USAGE"; $REMOVE_TEMP; exit 0 ;; - -V | --version) cat < max) { max = length($0); } } - END {print max + 1;}'` - c=`expr 70 / $l` - if [ $c -eq 0 ]; then c=1; fi - echo "$CATEGORIES" | \ - awk 'BEGIN {print "Known categories:"; i = 0 } - { printf ("%-'$l'.'$l's", $0); if ((++i % '$c') == 0) { print "" } } - END { print ""; }' - $REMOVE_TEMP - exit 0 - ;; -esac - -ORIGINATOR_C='' -ORGANIZATION_C='' -SYNOPSIS_C='' -if [ -z "$SEVERITY_C" ]; then - SEVERITY_C='<[ non-critical | serious | critical ] (one line)>' -fi -PRIORITY_C='<[ low | medium ] (one line)>' -CATEGORY_C='' -RELEASE_C='' -ENVIRONMENT_C='' -DESCRIPTION_C='' -HOW_TO_REPEAT_C='' -FIX_C='' - -# Catch some signals. ($xs kludge needed by Sun /bin/sh) -xs=0 -trap '$REMOVE_TEMP; exit $xs' 0 -trap 'echo "$COMMAND: Aborting ..."; $REMOVE_TEMP; xs=1; exit' 1 3 13 15 - -# If they told us to use a specific file, then do so. -if [ -n "$IN_FILE" ]; then - if [ "$IN_FILE" = "-" ]; then - # The PR is coming from the standard input. - if [ -n "$EXPLICIT_GNATS_ADDR" ]; then - sed -e "s;^[Tt][Oo]:.*;To: $GNATS_ADDR;" > $TEMP - else - cat > $TEMP - fi - else - # Use the file they named. - if [ -n "$EXPLICIT_GNATS_ADDR" ]; then - sed -e "s;^[Tt][Oo]:.*;To: $GNATS_ADDR;" $IN_FILE > $TEMP - else - cat $IN_FILE > $TEMP - fi - fi -else - - if [ -n "$PR_FORM" -a -z "$PRINT_INTERN" ]; then - # If their PR_FORM points to a bogus entry, then bail. - if [ ! -f "$PR_FORM" -o ! -r "$PR_FORM" -o ! -s "$PR_FORM" ]; then - echo "$COMMAND: can't seem to read your template file (\`$PR_FORM'), ignoring PR_FORM" - sleep 1 - PRINT_INTERN=bad_prform - fi - fi - - if [ -n "$PR_FORM" -a -z "$PRINT_INTERN" ]; then - cp $PR_FORM $TEMP || - ( echo "$COMMAND: could not copy $PR_FORM" ; xs=1; exit ) - else - for file in $TEMP $REF ; do - cat > $file << '__EOF__' -SEND-PR: -*- send-pr -*- -SEND-PR: Lines starting with `SEND-PR' will be removed automatically, as -SEND-PR: will all comments (text enclosed in `<' and `>'). -SEND-PR: -SEND-PR: Please consult the GCC manual if you are not sure how to -SEND-PR: fill out a problem report. -SEND-PR: Note that the Synopsis field is mandatory. The Subject (for -SEND-PR: the mail) will be made the same as Synopsis unless explicitly -SEND-PR: changed. -SEND-PR: -SEND-PR: Choose from the following categories: -SEND-PR: -__EOF__ - - # Format the categories so they fit onto lines. - l=`echo "$CATEGORIES" | \ - awk 'BEGIN {max = 0; } { if (length($0) > max) { max = length($0); } } - END {print max + 1;}'` - c=`expr 61 / $l` - if [ $c -eq 0 ]; then c=1; fi - echo "$CATEGORIES" | \ - awk 'BEGIN {printf "SEND-PR: "; i = 0 } - { printf ("%-'$l'.'$l's", $0); - if ((++i % '$c') == 0) { printf "\nSEND-PR: " } } - END { printf "\nSEND-PR:\n"; }' >> $file - - cat >> $file << __EOF__ -To: $GNATS_ADDR -Subject: -From: $FROM -Reply-To: $REPLYTO -Cc: $CC -X-send-pr-version: $VERSION -X-GNATS-Notify: - - ->Submitter-Id: $SUBMITTER ->Originator: $ORIGINATOR ->Organization: ${ORGANIZATION-$ORGANIZATION_C} ->Confidential: no -SEND-PR: Leave "Confidential" as "no"; all GCC PRs are public. ->Synopsis: $SYNOPSIS_C ->Severity: $SEVERITY_C -SEND-PR: critical GCC is completely not operational; no work-around known. -SEND-PR: serious GCC is not working properly; a work-around is possible. -SEND-PR: non-critical Report indicates minor problem. ->Priority: $PRIORITY_C -SEND-PR: medium The problem should be solved in the next release. -SEND-PR: low The problem should be solve in a future release. ->Category: $CATEGORY_C ->Class: <[ doc-bug | accepts-illegal | rejects-legal | wrong-code | ice-on-legal-code| ice-on-illegal-code | pessimizes-code | sw-bug | change-request | support ] (one line)> -SEND-PR: doc-bug The documentation is incorrect. -SEND-PR: accepts-illegal GCC fails to reject erroneous code. -SEND-PR: rejects-legal GCC gives an error message for correct code. -SEND-PR: wrong-code The machine code generated by gcc is incorrect. -SEND-PR: ice-on-legal-code GCC gives an Internal Compiler Error (ICE) -SEND-PR: for correct code -SEND-PR: ice-on-illegal-code GCC gives an ICE instead of reporting an error -SEND-PR: pessimizes-code GCC misses an important optimization opportunity -SEND-PR: sw-bug Software bug of some other class than above -SEND-PR: change-request A feature in GCC is missing. -SEND-PR: support I need help with gcc. ->Release: ${DEFAULT_RELEASE-$RELEASE_C} ->Environment: -`[ -n "$SYSTEM" ] && echo System: $SYSTEM` -`[ -n "$ARCH" ] && echo Architecture: $ARCH` -`[ -n "$MACHINE" ] && echo Machine: $MACHINE` - $ENVIRONMENT_C -host: x86_64-pc-linux-gnu -build: x86_64-pc-linux-gnu -target: avr-unknown-none -__EOF__ - cat >> $file << \__EOF__ -configured with: ../src/configure -v --enable-languages=c,c++ --prefix=/usr/lib --infodir=/usr/share/info --mandir=/usr/share/man --bindir=/usr/bin --libexecdir=/usr/lib --libdir=/usr/lib --enable-shared --with-system-zlib --enable-long-long --enable-nls --without-included-gettext --disable-checking --disable-libssp --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=avr -__EOF__ - cat >> $file << __EOF__ ->Description: - $DESCRIPTION_C ->How-To-Repeat: - $HOW_TO_REPEAT_C ->Fix: - $FIX_C -__EOF__ - done - fi - - if [ "$PRINT" = true -o "$PRINT_INTERN" = true ]; then - cat $TEMP - xs=0; exit - fi - - chmod u+w $TEMP - if [ -z "$REQUEST_ID" ]; then - eval $EDIT $TEMP - else - ed -s $TEMP << '__EOF__' -/^Subject/s/^Subject:.*/Subject: request for a customer id/ -/^>Category/s/^>Category:.*/>Category: send-pr/ -w -q -__EOF__ - fi - - if cmp -s $REF $TEMP ; then - echo "$COMMAND: problem report not filled out, therefore not sent" - xs=1; exit - fi -fi - -# -# Check the enumeration fields - -# This is a "sed-subroutine" with one keyword parameter -# (with workaround for Sun sed bug) -# -SED_CMD=' -/$PATTERN/{ -s||| -s|<.*>|| -s|^[ ]*|| -s|[ ]*$|| -p -q -}' - - -while [ -z "$REQUEST_ID" ]; do - CNT=0 - - # 1) Confidential - # - PATTERN=">Confidential:" - CONFIDENTIAL=`eval sed -n -e "\"$SED_CMD\"" $TEMP` - case "$CONFIDENTIAL" in - no) CNT=`expr $CNT + 1` ;; - *) echo "$COMMAND: \`$CONFIDENTIAL' is not a valid value for \`Confidential'." ;; - esac - # - # 2) Severity - # - PATTERN=">Severity:" - SEVERITY=`eval sed -n -e "\"$SED_CMD\"" $TEMP` - case "$SEVERITY" in - ""|non-critical|serious|critical) CNT=`expr $CNT + 1` ;; - *) echo "$COMMAND: \`$SEVERITY' is not a valid value for \`Severity'." - esac - # - # 3) Priority - # - PATTERN=">Priority:" - PRIORITY=`eval sed -n -e "\"$SED_CMD\"" $TEMP` - case "$PRIORITY" in - ""|low|medium) CNT=`expr $CNT + 1` ;; - high) echo "$COMMAND: \`Priority: high' is reserved for GCC maintainers." ;; - *) echo "$COMMAND: \`$PRIORITY' is not a valid value for \`Priority'." - esac - # - # 4) Category - # - PATTERN=">Category:" - CATEGORY=`eval sed -n -e "\"$SED_CMD\"" $TEMP` - FOUND= - for C in $CATEGORIES - do - if [ "$C" = "$CATEGORY" ]; then FOUND=true ; break ; fi - done - if [ -n "$FOUND" ]; then - CNT=`expr $CNT + 1` - else - if [ -z "$CATEGORY" ]; then - echo "$COMMAND: you must include a Category: field in your report." - else - echo "$COMMAND: \`$CATEGORY' is not a known category." - fi - fi - # - # 5) Class - # - PATTERN=">Class:" - CLASS=`eval sed -n -e "\"$SED_CMD\"" $TEMP` - case "$CLASS" in - ""|doc-bug|accepts-illegal|rejects-legal|wrong-code|ice-on-legal-code|ice-on-illegal-code|pessimizes-code|sw-bug|change-request|support) CNT=`expr $CNT + 1` ;; - *) echo "$COMMAND: \`$CLASS' is not a valid value for \`Class'." - esac - # - # 6) Check that synopsis is not empty - # - if grep "^>Synopsis:[ ]*${SYNOPSIS_C}\$" $TEMP > /dev/null - then - echo "$COMMAND: Synopsis must not be empty." - else - CNT=`expr $CNT + 1` - fi - - [ $CNT -lt 6 -a -z "$BATCH" ] && - echo "Errors were found with the problem report." - - while true; do - if [ -z "$BATCH" ]; then - $ECHON1 "a)bort, e)dit or s)end? $ECHON2" - read input - else - if [ $CNT -eq 6 ]; then - input=s - else - input=a - fi - fi - case "$input" in - a*) - if [ -z "$BATCH" ]; then - echo "$COMMAND: the problem report remains in $BAD and is not sent." - REMOVE_TEMP="rm -f $TEMP0 $TEMP $REF" - mv $TEMP $BAD - else - echo "$COMMAND: the problem report is not sent." - fi - xs=1; exit - ;; - e*) - eval $EDIT $TEMP - continue 2 - ;; - s*) - break 2 - ;; - esac - done -done - -# -# Make sure the mail has got a Subject. If not, use the same as -# in Synopsis. -# - -if grep '^Subject:[ ]*$' $TEMP > /dev/null -then - SYNOPSIS=`grep '^>Synopsis:' $TEMP | sed -e 's/^>Synopsis:[ ]*//'` - ed -s $TEMP << __EOF__ -/^Subject:/s/:.*\$/: $SYNOPSIS/ -w -q -__EOF__ -fi - -# -# Remove comments and send the problem report -# (we have to use patterns, where the comment contains regex chars) -# -# /^>Originator:/s;$ORIGINATOR;; -sed -e " -/^SEND-PR:/d -/^>Organization:/,/^>[A-Za-z-]*:/s;$ORGANIZATION_C;; -/^>Confidential:/s;<.*>;; -/^>Synopsis:/s;$SYNOPSIS_C;; -/^>Severity:/s;<.*>;; -/^>Priority:/s;<.*>;; -/^>Category:/s;$CATEGORY_C;; -/^>Class:/s;<.*>;; -/^>Release:/,/^>[A-Za-z-]*:/s;$RELEASE_C;; -/^>Environment:/,/^>[A-Za-z-]*:/s;$ENVIRONMENT_C;; -/^>Description:/,/^>[A-Za-z-]*:/s;$DESCRIPTION_C;; -/^>How-To-Repeat:/,/^>[A-Za-z-]*:/s;$HOW_TO_REPEAT_C;; -/^>Fix:/,/^>[A-Za-z-]*:/s;$FIX_C;; -" $TEMP > $REF - -if $MAIL_AGENT < $REF; then - echo "$COMMAND: problem report sent" - xs=0; exit -else - echo "$COMMAND: mysterious mail failure." - if [ -z "$BATCH" ]; then - echo "$COMMAND: the problem report remains in $BAD and is not sent." - REMOVE_TEMP="rm -f $TEMP0 $TEMP $REF" - mv $REF $BAD - else - echo "$COMMAND: the problem report is not sent." - fi - xs=1; exit -fi diff --git a/build/linux/work/hardware/tools/avr/bin/avr-ld b/build/linux/work/hardware/tools/avr/bin/avr-ld deleted file mode 100755 index 33625ebfd00c4e564fe56e50d5d814e1ba8dc972..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 914736 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