From 42eea47f07c555acd96a4406931ba9751455f020 Mon Sep 17 00:00:00 2001 From: mitchellhansen Date: Sun, 2 Feb 2020 17:54:12 -0800 Subject: [PATCH] removed intermediate files --- BaseMake.mk | 7 +- .../hardware/arduino/avr/cores/arduino/CDC.d | 12 - .../arduino/avr/cores/arduino/CDC.lst | 19 - .../hardware/arduino/avr/cores/arduino/CDC.o | Bin 18228 -> 0 bytes .../avr/cores/arduino/HardwareSerial.d | 14 - .../avr/cores/arduino/HardwareSerial.lst | 1056 --- .../avr/cores/arduino/HardwareSerial.o | Bin 27580 -> 0 bytes .../avr/cores/arduino/HardwareSerial0.d | 14 - .../avr/cores/arduino/HardwareSerial0.lst | 655 -- .../avr/cores/arduino/HardwareSerial0.o | Bin 22604 -> 0 bytes .../avr/cores/arduino/HardwareSerial1.d | 14 - .../avr/cores/arduino/HardwareSerial1.lst | 19 - .../avr/cores/arduino/HardwareSerial1.o | Bin 18576 -> 0 bytes .../avr/cores/arduino/HardwareSerial2.d | 14 - .../avr/cores/arduino/HardwareSerial2.lst | 19 - .../avr/cores/arduino/HardwareSerial2.o | Bin 18576 -> 0 bytes .../avr/cores/arduino/HardwareSerial3.d | 14 - .../avr/cores/arduino/HardwareSerial3.lst | 19 - .../avr/cores/arduino/HardwareSerial3.o | Bin 18576 -> 0 bytes .../arduino/avr/cores/arduino/IPAddress.d | 14 - .../arduino/avr/cores/arduino/IPAddress.lst | 568 -- .../arduino/avr/cores/arduino/IPAddress.o | Bin 25580 -> 0 bytes .../arduino/avr/cores/arduino/PluggableUSB.d | 13 - .../avr/cores/arduino/PluggableUSB.lst | 19 - .../arduino/avr/cores/arduino/PluggableUSB.o | Bin 18252 -> 0 bytes .../arduino/avr/cores/arduino/Print.d | 12 - .../arduino/avr/cores/arduino/Print.lst | 1795 ---- .../arduino/avr/cores/arduino/Print.o | Bin 35656 -> 0 bytes .../arduino/avr/cores/arduino/Stream.d | 12 - .../arduino/avr/cores/arduino/Stream.lst | 1767 ---- .../arduino/avr/cores/arduino/Stream.o | Bin 30928 -> 0 bytes .../hardware/arduino/avr/cores/arduino/Tone.d | 12 - .../arduino/avr/cores/arduino/Tone.lst | 1428 ---- .../hardware/arduino/avr/cores/arduino/Tone.o | Bin 25380 -> 0 bytes .../arduino/avr/cores/arduino/USBCore.d | 13 - .../arduino/avr/cores/arduino/USBCore.lst | 19 - .../arduino/avr/cores/arduino/USBCore.o | Bin 18240 -> 0 bytes .../arduino/avr/cores/arduino/WInterrupts.d | 6 - .../arduino/avr/cores/arduino/WInterrupts.lst | 540 -- .../arduino/avr/cores/arduino/WInterrupts.o | Bin 9040 -> 0 bytes .../arduino/avr/cores/arduino/WMath.d | 2 - .../arduino/avr/cores/arduino/WMath.lst | 307 - .../arduino/avr/cores/arduino/WMath.o | Bin 6872 -> 0 bytes .../arduino/avr/cores/arduino/WString.d | 3 - .../arduino/avr/cores/arduino/WString.lst | 7240 ----------------- .../arduino/avr/cores/arduino/WString.o | Bin 57160 -> 0 bytes .../hardware/arduino/avr/cores/arduino/abi.d | 2 - .../arduino/avr/cores/arduino/abi.lst | 75 - .../hardware/arduino/avr/cores/arduino/abi.o | Bin 5008 -> 0 bytes .../arduino/avr/cores/arduino/hooks.d | 2 - .../arduino/avr/cores/arduino/hooks.lst | 62 - .../arduino/avr/cores/arduino/hooks.o | Bin 3976 -> 0 bytes .../hardware/arduino/avr/cores/arduino/main.d | 13 - .../arduino/avr/cores/arduino/main.lst | 87 - .../hardware/arduino/avr/cores/arduino/main.o | Bin 18620 -> 0 bytes .../hardware/arduino/avr/cores/arduino/new.d | 2 - .../arduino/avr/cores/arduino/new.lst | 99 - .../hardware/arduino/avr/cores/arduino/new.o | Bin 5276 -> 0 bytes .../arduino/avr/cores/arduino/wiring.d | 6 - .../arduino/avr/cores/arduino/wiring.lst | 803 -- .../arduino/avr/cores/arduino/wiring.o | Bin 10868 -> 0 bytes .../arduino/avr/cores/arduino/wiring_analog.d | 6 - .../avr/cores/arduino/wiring_analog.lst | 546 -- .../arduino/avr/cores/arduino/wiring_analog.o | Bin 9440 -> 0 bytes .../avr/cores/arduino/wiring_digital.d | 6 - .../avr/cores/arduino/wiring_digital.lst | 731 -- .../avr/cores/arduino/wiring_digital.o | Bin 11472 -> 0 bytes .../arduino/avr/cores/arduino/wiring_pulse.d | 7 - .../avr/cores/arduino/wiring_pulse.lst | 532 -- .../arduino/avr/cores/arduino/wiring_pulse.o | Bin 10020 -> 0 bytes .../arduino/avr/cores/arduino/wiring_shift.d | 6 - .../avr/cores/arduino/wiring_shift.lst | 242 - .../arduino/avr/cores/arduino/wiring_shift.o | Bin 8564 -> 0 bytes .../arduino/avr/libraries/SPI/src/SPI.d | 14 - .../arduino/avr/libraries/SPI/src/SPI.lst | 511 -- .../arduino/avr/libraries/SPI/src/SPI.o | Bin 23676 -> 0 bytes arduino/libraries/SoftPWM/SoftPWM.d | 15 - arduino/libraries/SoftPWM/SoftPWM.lst | 1084 --- arduino/libraries/SoftPWM/SoftPWM.o | Bin 25560 -> 0 bytes main.cpp | 6 + 80 files changed, 11 insertions(+), 20492 deletions(-) delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/CDC.d delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/CDC.lst delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/CDC.o delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/HardwareSerial.d delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/HardwareSerial.lst delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/HardwareSerial.o delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/HardwareSerial0.d delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/HardwareSerial0.lst delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/HardwareSerial0.o delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/HardwareSerial1.d delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/HardwareSerial1.lst delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/HardwareSerial1.o delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/HardwareSerial2.d delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/HardwareSerial2.lst delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/HardwareSerial2.o delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/HardwareSerial3.d delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/HardwareSerial3.lst delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/HardwareSerial3.o delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/IPAddress.d delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/IPAddress.lst delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/IPAddress.o delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/PluggableUSB.d delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/PluggableUSB.lst delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/PluggableUSB.o delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/Print.d delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/Print.lst delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/Print.o delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/Stream.d delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/Stream.lst delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/Stream.o delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/Tone.d delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/Tone.lst delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/Tone.o delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/USBCore.d delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/USBCore.lst delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/USBCore.o delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/WInterrupts.d delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/WInterrupts.lst delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/WInterrupts.o delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/WMath.d delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/WMath.lst delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/WMath.o delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/WString.d delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/WString.lst delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/WString.o delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/abi.d delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/abi.lst delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/abi.o delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/hooks.d delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/hooks.lst delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/hooks.o delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/main.d delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/main.lst delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/main.o delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/new.d delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/new.lst delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/new.o delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/wiring.d delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/wiring.lst delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/wiring.o delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/wiring_analog.d delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/wiring_analog.lst delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/wiring_analog.o delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/wiring_digital.d delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/wiring_digital.lst delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/wiring_digital.o delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/wiring_pulse.d delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/wiring_pulse.lst delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/wiring_pulse.o delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/wiring_shift.d delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/wiring_shift.lst delete mode 100644 arduino/hardware/arduino/avr/cores/arduino/wiring_shift.o delete mode 100644 arduino/hardware/arduino/avr/libraries/SPI/src/SPI.d delete mode 100644 arduino/hardware/arduino/avr/libraries/SPI/src/SPI.lst delete mode 100644 arduino/hardware/arduino/avr/libraries/SPI/src/SPI.o delete mode 100644 arduino/libraries/SoftPWM/SoftPWM.d delete mode 100644 arduino/libraries/SoftPWM/SoftPWM.lst delete mode 100644 arduino/libraries/SoftPWM/SoftPWM.o diff --git a/BaseMake.mk b/BaseMake.mk index 8159e6e..3633f1a 100644 --- a/BaseMake.mk +++ b/BaseMake.mk @@ -1,6 +1,6 @@ # This Makefile includes the Arduino core sources. (Set ARDDIR here:) -ARDDIR = /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8/ +ARDDIR = ./arduino ### These macros pertain to compiler flags # Target file name (without extension). @@ -33,8 +33,10 @@ ARDLIBS2 = SPI ### These macros pertain to supporting Arduino libs ifndef NO_ARDUINO LDFLAGS += -lm # -lm = math library + ARDLIBDIR = $(ARDDIR)/libraries ARDLIBDIR2 = $(ARDDIR)/hardware/arduino/avr/libraries + ARDCOREDIR = $(ARDDIR)/hardware/arduino/avr/cores/arduino ifeq ($(MCU),atmega328p) @@ -48,6 +50,7 @@ ifndef NO_ARDUINO ifeq ($(MCU),attiny85) EXTRAINCDIRS += $(ARDDIR)/hardware/attiny/variants/tiny8 endif + # add Arduino sources and include directories to PSRC and EXTRAINCDIRS SRC += $(wildcard $(ARDCOREDIR)/*.c) @@ -76,7 +79,7 @@ FORMAT = ihex # 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 = $(ARDDIR)/hardware/arduino/avr/cores/arduino/wiring_pulse.S +ASRC = # Optional compiler flags. # -g: generate debugging information (for GDB, or for COFF conversion) diff --git a/arduino/hardware/arduino/avr/cores/arduino/CDC.d b/arduino/hardware/arduino/avr/cores/arduino/CDC.d deleted file mode 100644 index 9dac81f..0000000 --- a/arduino/hardware/arduino/avr/cores/arduino/CDC.d +++ /dev/null @@ -1,12 +0,0 @@ -CDC.o CDC.d : \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/CDC.cpp \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/USBAPI.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Arduino.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/binary.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WCharacter.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Printable.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8/hardware/arduino/avr/variants/standard/pins_arduino.h diff --git a/arduino/hardware/arduino/avr/cores/arduino/CDC.lst b/arduino/hardware/arduino/avr/cores/arduino/CDC.lst deleted file mode 100644 index efd3949..0000000 --- a/arduino/hardware/arduino/avr/cores/arduino/CDC.lst +++ /dev/null @@ -1,19 +0,0 @@ - 1 .file "CDC.cpp" - 2 __SP_H__ = 0x3e - 3 __SP_L__ = 0x3d - 4 __SREG__ = 0x3f - 5 __tmp_reg__ = 0 - 6 __zero_reg__ = 1 - 9 .text - 10 .Ltext0: - 146 .Letext0: - 147 .ident "GCC: (GNU) 5.4.0" -DEFINED SYMBOLS - *ABS*:0000000000000000 CDC.cpp - /tmp/ccIE7uOI.s:2 *ABS*:000000000000003e __SP_H__ - /tmp/ccIE7uOI.s:3 *ABS*:000000000000003d __SP_L__ - /tmp/ccIE7uOI.s:4 *ABS*:000000000000003f __SREG__ - /tmp/ccIE7uOI.s:5 *ABS*:0000000000000000 __tmp_reg__ - /tmp/ccIE7uOI.s:6 *ABS*:0000000000000001 __zero_reg__ - -NO UNDEFINED SYMBOLS diff --git a/arduino/hardware/arduino/avr/cores/arduino/CDC.o b/arduino/hardware/arduino/avr/cores/arduino/CDC.o deleted file mode 100644 index 90cf0ac327ce86040241e8887b3e54b96da5a13a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18228 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 diff --git a/arduino/hardware/arduino/avr/cores/arduino/HardwareSerial.d b/arduino/hardware/arduino/avr/cores/arduino/HardwareSerial.d deleted file mode 100644 index 30b6f9f..0000000 --- a/arduino/hardware/arduino/avr/cores/arduino/HardwareSerial.d +++ /dev/null @@ -1,14 +0,0 @@ -HardwareSerial.o HardwareSerial.d : \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Arduino.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/binary.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WCharacter.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Printable.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/USBAPI.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8/hardware/arduino/avr/variants/standard/pins_arduino.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_private.h diff --git a/arduino/hardware/arduino/avr/cores/arduino/HardwareSerial.lst b/arduino/hardware/arduino/avr/cores/arduino/HardwareSerial.lst deleted file mode 100644 index 4ca63b7..0000000 --- a/arduino/hardware/arduino/avr/cores/arduino/HardwareSerial.lst +++ /dev/null @@ -1,1056 +0,0 @@ - 1 .file "HardwareSerial.cpp" - 2 __SP_H__ = 0x3e - 3 __SP_L__ = 0x3d - 4 __SREG__ = 0x3f - 5 __tmp_reg__ = 0 - 6 __zero_reg__ = 1 - 9 .text - 10 .Ltext0: - 135 .global _ZN14HardwareSerial9availableEv - 137 _ZN14HardwareSerial9availableEv: - 138 .stabd 46,0,0 - 1:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** /* - 2:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** HardwareSerial.cpp - Hardware serial library for Wiring - 3:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** Copyright (c) 2006 Nicholas Zambetti. All right reserved. - 4:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** - 5:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** This library is free software; you can redistribute it and/or - 6:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** modify it under the terms of the GNU Lesser General Public - 7:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** License as published by the Free Software Foundation; either - 8:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** version 2.1 of the License, or (at your option) any later version. - 9:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** - 10:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** This library is distributed in the hope that it will be useful, - 11:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** but WITHOUT ANY WARRANTY; without even the implied warranty of - 12:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - 13:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** Lesser General Public License for more details. - 14:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** - 15:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** You should have received a copy of the GNU Lesser General Public - 16:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** License along with this library; if not, write to the Free Software - 17:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - 18:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** - 19:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** Modified 23 November 2006 by David A. Mellis - 20:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** Modified 28 September 2010 by Mark Sproul - 21:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** Modified 14 August 2012 by Alarus - 22:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** Modified 3 December 2013 by Matthijs Kooijman - 23:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** */ - 24:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** - 25:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** #include - 26:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** #include - 27:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** #include - 28:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** #include - 29:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** #include - 30:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** #include "Arduino.h" - 31:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** - 32:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** #include "HardwareSerial.h" - 33:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** #include "HardwareSerial_private.h" - 34:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** - 35:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // this next line disables the entire HardwareSerial.cpp, - 36:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // this is so I can support Attiny series and any other chip without a uart - 37:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** #if defined(HAVE_HWSERIAL0) || defined(HAVE_HWSERIAL1) || defined(HAVE_HWSERIAL2) || defined(HAVE_H - 38:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** - 39:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // SerialEvent functions are weak, so when the user doesn't define them, - 40:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // the linker just sets their address to 0 (which is checked below). - 41:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // The Serialx_available is just a wrapper around Serialx.available(), - 42:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // but we can refer to it weakly so we don't pull in the entire - 43:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // HardwareSerial instance if the user doesn't also refer to it. - 44:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** #if defined(HAVE_HWSERIAL0) - 45:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** void serialEvent() __attribute__((weak)); - 46:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** bool Serial0_available() __attribute__((weak)); - 47:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** #endif - 48:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** - 49:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** #if defined(HAVE_HWSERIAL1) - 50:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** void serialEvent1() __attribute__((weak)); - 51:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** bool Serial1_available() __attribute__((weak)); - 52:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** #endif - 53:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** - 54:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** #if defined(HAVE_HWSERIAL2) - 55:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** void serialEvent2() __attribute__((weak)); - 56:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** bool Serial2_available() __attribute__((weak)); - 57:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** #endif - 58:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** - 59:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** #if defined(HAVE_HWSERIAL3) - 60:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** void serialEvent3() __attribute__((weak)); - 61:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** bool Serial3_available() __attribute__((weak)); - 62:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** #endif - 63:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** - 64:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** void serialEventRun(void) - 65:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** { - 66:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** #if defined(HAVE_HWSERIAL0) - 67:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** if (Serial0_available && serialEvent && Serial0_available()) serialEvent(); - 68:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** #endif - 69:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** #if defined(HAVE_HWSERIAL1) - 70:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** if (Serial1_available && serialEvent1 && Serial1_available()) serialEvent1(); - 71:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** #endif - 72:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** #if defined(HAVE_HWSERIAL2) - 73:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** if (Serial2_available && serialEvent2 && Serial2_available()) serialEvent2(); - 74:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** #endif - 75:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** #if defined(HAVE_HWSERIAL3) - 76:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** if (Serial3_available && serialEvent3 && Serial3_available()) serialEvent3(); - 77:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** #endif - 78:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** } - 79:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** - 80:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // macro to guard critical sections when needed for large TX buffer sizes - 81:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** #if (SERIAL_TX_BUFFER_SIZE>256) - 82:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** #define TX_BUFFER_ATOMIC ATOMIC_BLOCK(ATOMIC_RESTORESTATE) - 83:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** #else - 84:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** #define TX_BUFFER_ATOMIC - 85:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** #endif - 86:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** - 87:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // Actual interrupt handlers ////////////////////////////////////////////////////////////// - 88:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** - 89:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** void HardwareSerial::_tx_udr_empty_irq(void) - 90:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** { - 91:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // If interrupts are enabled, there must be more data in the output - 92:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // buffer. Send the next byte - 93:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** unsigned char c = _tx_buffer[_tx_buffer_tail]; - 94:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** _tx_buffer_tail = (_tx_buffer_tail + 1) % SERIAL_TX_BUFFER_SIZE; - 95:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** - 96:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** *_udr = c; - 97:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** - 98:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // clear the TXC bit -- "can be cleared by writing a one to its bit - 99:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // location". This makes sure flush() won't return until the bytes - 100:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // actually got written. Other r/w bits are preserved, and zeroes - 101:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // written to the rest. - 102:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** - 103:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** #ifdef MPCM0 - 104:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** *_ucsra = ((*_ucsra) & ((1 << U2X0) | (1 << MPCM0))) | (1 << TXC0); - 105:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** #else - 106:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** *_ucsra = ((*_ucsra) & ((1 << U2X0) | (1 << TXC0))); - 107:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** #endif - 108:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** - 109:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** if (_tx_buffer_head == _tx_buffer_tail) { - 110:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // Buffer empty, so disable interrupts - 111:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** cbi(*_ucsrb, UDRIE0); - 112:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** } - 113:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** } - 114:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** - 115:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // Public Methods ////////////////////////////////////////////////////////////// - 116:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** - 117:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** void HardwareSerial::begin(unsigned long baud, byte config) - 118:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** { - 119:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // Try u2x mode first - 120:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** uint16_t baud_setting = (F_CPU / 4 / baud - 1) / 2; - 121:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** *_ucsra = 1 << U2X0; - 122:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** - 123:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // hardcoded exception for 57600 for compatibility with the bootloader - 124:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // shipped with the Duemilanove and previous boards and the firmware - 125:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // on the 8U2 on the Uno and Mega 2560. Also, The baud_setting cannot - 126:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // be > 4095, so switch back to non-u2x mode if the baud rate is too - 127:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // low. - 128:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** if (((F_CPU == 16000000UL) && (baud == 57600)) || (baud_setting >4095)) - 129:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** { - 130:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** *_ucsra = 0; - 131:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** baud_setting = (F_CPU / 8 / baud - 1) / 2; - 132:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** } - 133:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** - 134:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // assign the baud_setting, a.k.a. ubrr (USART Baud Rate Register) - 135:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** *_ubrrh = baud_setting >> 8; - 136:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** *_ubrrl = baud_setting; - 137:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** - 138:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** _written = false; - 139:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** - 140:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** //set the data bits, parity, and stop bits - 141:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** #if defined(__AVR_ATmega8__) - 142:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** config |= 0x80; // select UCSRC register (shared with UBRRH) - 143:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** #endif - 144:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** *_ucsrc = config; - 145:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** - 146:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** sbi(*_ucsrb, RXEN0); - 147:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** sbi(*_ucsrb, TXEN0); - 148:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** sbi(*_ucsrb, RXCIE0); - 149:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** cbi(*_ucsrb, UDRIE0); - 150:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** } - 151:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** - 152:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** void HardwareSerial::end() - 153:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** { - 154:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // wait for transmission of outgoing data - 155:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** flush(); - 156:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** - 157:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** cbi(*_ucsrb, RXEN0); - 158:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** cbi(*_ucsrb, TXEN0); - 159:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** cbi(*_ucsrb, RXCIE0); - 160:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** cbi(*_ucsrb, UDRIE0); - 161:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** - 162:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // clear any received data - 163:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** _rx_buffer_head = _rx_buffer_tail; - 164:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** } - 165:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** - 166:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** int HardwareSerial::available(void) - 167:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** { - 140 .LM0: - 141 .LFBB1: - 142 /* prologue: function */ - 143 /* frame size = 0 */ - 144 /* stack size = 0 */ - 145 .L__stack_usage = 0 - 146 0000 FC01 movw r30,r24 - 168:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** return ((unsigned int)(SERIAL_RX_BUFFER_SIZE + _rx_buffer_head - _rx_buffer_tail)) % SERIAL_RX_BU - 148 .LM1: - 149 0002 918D ldd r25,Z+25 - 150 0004 228D ldd r18,Z+26 - 151 0006 892F mov r24,r25 - 152 0008 90E0 ldi r25,0 - 153 000a 805C subi r24,-64 - 154 000c 9F4F sbci r25,-1 - 155 000e 821B sub r24,r18 - 156 0010 9109 sbc r25,__zero_reg__ - 169:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** } - 158 .LM2: - 159 0012 8F73 andi r24,63 - 160 0014 9927 clr r25 - 161 0016 0895 ret - 163 .Lscope1: - 165 .stabd 78,0,0 - 168 .global _ZN14HardwareSerial4peekEv - 170 _ZN14HardwareSerial4peekEv: - 171 .stabd 46,0,0 - 170:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** - 171:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** int HardwareSerial::peek(void) - 172:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** { - 173 .LM3: - 174 .LFBB2: - 175 /* prologue: function */ - 176 /* frame size = 0 */ - 177 /* stack size = 0 */ - 178 .L__stack_usage = 0 - 179 0018 FC01 movw r30,r24 - 173:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** if (_rx_buffer_head == _rx_buffer_tail) { - 181 .LM4: - 182 001a 918D ldd r25,Z+25 - 183 001c 828D ldd r24,Z+26 - 184 001e 9817 cp r25,r24 - 185 0020 01F0 breq .L4 - 174:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** return -1; - 175:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** } else { - 176:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** return _rx_buffer[_rx_buffer_tail]; - 187 .LM5: - 188 0022 828D ldd r24,Z+26 - 189 0024 E80F add r30,r24 - 190 0026 F11D adc r31,__zero_reg__ - 191 0028 858D ldd r24,Z+29 - 192 002a 90E0 ldi r25,0 - 193 002c 0895 ret - 194 .L4: - 174:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** return -1; - 196 .LM6: - 197 002e 8FEF ldi r24,lo8(-1) - 198 0030 9FEF ldi r25,lo8(-1) - 177:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** } - 178:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** } - 200 .LM7: - 201 0032 0895 ret - 203 .Lscope2: - 205 .stabd 78,0,0 - 208 .global _ZN14HardwareSerial4readEv - 210 _ZN14HardwareSerial4readEv: - 211 .stabd 46,0,0 - 179:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** - 180:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** int HardwareSerial::read(void) - 181:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** { - 213 .LM8: - 214 .LFBB3: - 215 /* prologue: function */ - 216 /* frame size = 0 */ - 217 /* stack size = 0 */ - 218 .L__stack_usage = 0 - 219 0034 FC01 movw r30,r24 - 220 .LBB38: - 182:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // if the head isn't ahead of the tail, we don't have any characters - 183:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** if (_rx_buffer_head == _rx_buffer_tail) { - 222 .LM9: - 223 0036 918D ldd r25,Z+25 - 224 0038 828D ldd r24,Z+26 - 225 003a 9817 cp r25,r24 - 226 003c 01F0 breq .L8 - 227 .LBB39: - 184:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** return -1; - 185:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** } else { - 186:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** unsigned char c = _rx_buffer[_rx_buffer_tail]; - 229 .LM10: - 230 003e 828D ldd r24,Z+26 - 231 0040 DF01 movw r26,r30 - 232 0042 A80F add r26,r24 - 233 0044 B11D adc r27,__zero_reg__ - 234 0046 5D96 adiw r26,29 - 235 0048 8C91 ld r24,X - 187:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** _rx_buffer_tail = (rx_buffer_index_t)(_rx_buffer_tail + 1) % SERIAL_RX_BUFFER_SIZE; - 237 .LM11: - 238 004a 928D ldd r25,Z+26 - 239 004c 9F5F subi r25,lo8(-(1)) - 240 004e 9F73 andi r25,lo8(63) - 241 0050 928F std Z+26,r25 - 188:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** return c; - 243 .LM12: - 244 0052 90E0 ldi r25,0 - 245 0054 0895 ret - 246 .L8: - 247 .LBE39: - 184:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** return -1; - 249 .LM13: - 250 0056 8FEF ldi r24,lo8(-1) - 251 0058 9FEF ldi r25,lo8(-1) - 252 .LBE38: - 189:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** } - 190:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** } - 254 .LM14: - 255 005a 0895 ret - 260 .Lscope3: - 262 .stabd 78,0,0 - 265 .global _ZN14HardwareSerial17availableForWriteEv - 267 _ZN14HardwareSerial17availableForWriteEv: - 268 .stabd 46,0,0 - 191:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** - 192:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** int HardwareSerial::availableForWrite(void) - 193:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** { - 270 .LM15: - 271 .LFBB4: - 272 /* prologue: function */ - 273 /* frame size = 0 */ - 274 /* stack size = 0 */ - 275 .L__stack_usage = 0 - 194:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** tx_buffer_index_t head; - 195:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** tx_buffer_index_t tail; - 196:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** - 197:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** TX_BUFFER_ATOMIC { - 198:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** head = _tx_buffer_head; - 277 .LM16: - 278 005c FC01 movw r30,r24 - 279 005e 538D ldd r21,Z+27 - 199:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** tail = _tx_buffer_tail; - 281 .LM17: - 282 0060 448D ldd r20,Z+28 - 283 0062 252F mov r18,r21 - 284 0064 30E0 ldi r19,0 - 285 0066 842F mov r24,r20 - 286 0068 90E0 ldi r25,0 - 200:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** } - 201:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** if (head >= tail) return SERIAL_TX_BUFFER_SIZE - 1 - head + tail; - 288 .LM18: - 289 006a 821B sub r24,r18 - 290 006c 930B sbc r25,r19 - 291 006e 5417 cp r21,r20 - 292 0070 00F0 brlo .L10 - 294 .LM19: - 295 0072 CF96 adiw r24,63 - 296 0074 0895 ret - 297 .L10: - 202:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** return tail - head - 1; - 299 .LM20: - 300 0076 0197 sbiw r24,1 - 203:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** } - 302 .LM21: - 303 0078 0895 ret - 309 .Lscope4: - 311 .stabd 78,0,0 - 313 .weak _Z14serialEventRunv - 315 _Z14serialEventRunv: - 316 .stabd 46,0,0 - 65:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** #if defined(HAVE_HWSERIAL0) - 318 .LM22: - 319 .LFBB5: - 320 /* prologue: function */ - 321 /* frame size = 0 */ - 322 /* stack size = 0 */ - 323 .L__stack_usage = 0 - 67:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** #endif - 325 .LM23: - 326 007a 80E0 ldi r24,lo8(gs(_Z17Serial0_availablev)) - 327 007c 90E0 ldi r25,hi8(gs(_Z17Serial0_availablev)) - 328 007e 892B or r24,r25 - 329 0080 01F0 breq .L12 - 67:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** #endif - 331 .LM24: - 332 0082 80E0 ldi r24,lo8(gs(_Z11serialEventv)) - 333 0084 90E0 ldi r25,hi8(gs(_Z11serialEventv)) - 334 0086 892B or r24,r25 - 335 0088 01F0 breq .L12 - 67:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** #endif - 337 .LM25: - 338 008a 0E94 0000 call _Z17Serial0_availablev - 339 008e 8111 cpse r24,__zero_reg__ - 67:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** #endif - 341 .LM26: - 342 0090 0C94 0000 jmp _Z11serialEventv - 343 .L12: - 344 0094 0895 ret - 346 .Lscope5: - 348 .stabd 78,0,0 - 351 .global _ZN14HardwareSerial17_tx_udr_empty_irqEv - 353 _ZN14HardwareSerial17_tx_udr_empty_irqEv: - 354 .stabd 46,0,0 - 90:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // If interrupts are enabled, there must be more data in the output - 356 .LM27: - 357 .LFBB6: - 358 /* prologue: function */ - 359 /* frame size = 0 */ - 360 /* stack size = 0 */ - 361 .L__stack_usage = 0 - 362 0096 FC01 movw r30,r24 - 93:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** _tx_buffer_tail = (_tx_buffer_tail + 1) % SERIAL_TX_BUFFER_SIZE; - 364 .LM28: - 365 0098 848D ldd r24,Z+28 - 366 009a DF01 movw r26,r30 - 367 009c A80F add r26,r24 - 368 009e B11D adc r27,__zero_reg__ - 369 00a0 A35A subi r26,-93 - 370 00a2 BF4F sbci r27,-1 - 371 00a4 2C91 ld r18,X - 94:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** - 373 .LM29: - 374 00a6 848D ldd r24,Z+28 - 375 00a8 90E0 ldi r25,0 - 376 00aa 0196 adiw r24,1 - 377 00ac 8F73 andi r24,63 - 378 00ae 9927 clr r25 - 379 00b0 848F std Z+28,r24 - 96:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** - 381 .LM30: - 382 00b2 A689 ldd r26,Z+22 - 383 00b4 B789 ldd r27,Z+23 - 384 00b6 2C93 st X,r18 - 104:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** #else - 386 .LM31: - 387 00b8 A089 ldd r26,Z+16 - 388 00ba B189 ldd r27,Z+17 - 389 00bc 8C91 ld r24,X - 390 00be 8370 andi r24,lo8(3) - 391 00c0 8064 ori r24,lo8(64) - 392 00c2 8C93 st X,r24 - 109:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // Buffer empty, so disable interrupts - 394 .LM32: - 395 00c4 938D ldd r25,Z+27 - 396 00c6 848D ldd r24,Z+28 - 397 00c8 9813 cpse r25,r24 - 398 00ca 00C0 rjmp .L22 - 399 .LBB42: - 400 .LBB43: - 111:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** } - 402 .LM33: - 403 00cc 0288 ldd __tmp_reg__,Z+18 - 404 00ce F389 ldd r31,Z+19 - 405 00d0 E02D mov r30,__tmp_reg__ - 406 00d2 8081 ld r24,Z - 407 00d4 8F7D andi r24,lo8(-33) - 408 00d6 8083 st Z,r24 - 409 .L22: - 410 00d8 0895 ret - 411 .LBE43: - 412 .LBE42: - 417 .Lscope6: - 419 .stabd 78,0,0 - 423 .global _ZN14HardwareSerial5writeEh - 425 _ZN14HardwareSerial5writeEh: - 426 .stabd 46,0,0 - 204:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** - 205:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** void HardwareSerial::flush() - 206:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** { - 207:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // If we have never written a byte, no need to flush. This special - 208:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // case is needed since there is no way to force the TXC (transmit - 209:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // complete) bit to 1 during initialization - 210:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** if (!_written) - 211:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** return; - 212:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** - 213:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** while (bit_is_set(*_ucsrb, UDRIE0) || bit_is_clear(*_ucsra, TXC0)) { - 214:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** if (bit_is_clear(SREG, SREG_I) && bit_is_set(*_ucsrb, UDRIE0)) - 215:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // Interrupts are globally disabled, but the DR empty - 216:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // interrupt should be enabled, so poll the DR empty flag to - 217:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // prevent deadlock - 218:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** if (bit_is_set(*_ucsra, UDRE0)) - 219:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** _tx_udr_empty_irq(); - 220:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** } - 221:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // If we get here, nothing is queued anymore (DRIE is disabled) and - 222:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // the hardware finished tranmission (TXC is set). - 223:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** } - 224:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** - 225:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** size_t HardwareSerial::write(uint8_t c) - 226:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** { - 428 .LM34: - 429 .LFBB7: - 430 00da EF92 push r14 - 431 00dc FF92 push r15 - 432 00de 0F93 push r16 - 433 00e0 1F93 push r17 - 434 00e2 CF93 push r28 - 435 00e4 DF93 push r29 - 436 /* prologue: function */ - 437 /* frame size = 0 */ - 438 /* stack size = 6 */ - 439 .L__stack_usage = 6 - 440 00e6 EC01 movw r28,r24 - 227:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** _written = true; - 442 .LM35: - 443 00e8 81E0 ldi r24,lo8(1) - 444 00ea 888F std Y+24,r24 - 445 .LBB65: - 228:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // If the buffer and the data register is empty, just write the byte - 229:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // to the data register and be done. This shortcut helps - 230:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // significantly improve the effective datarate at high (> - 231:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // 500kbit/s) bitrates, where interrupt overhead becomes a slowdown. - 232:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** if (_tx_buffer_head == _tx_buffer_tail && bit_is_set(*_ucsra, UDRE0)) { - 447 .LM36: - 448 00ec 9B8D ldd r25,Y+27 - 449 00ee 8C8D ldd r24,Y+28 - 450 00f0 9813 cpse r25,r24 - 451 00f2 00C0 rjmp .L25 - 453 .LM37: - 454 00f4 E889 ldd r30,Y+16 - 455 00f6 F989 ldd r31,Y+17 - 456 00f8 8081 ld r24,Z - 457 00fa 85FD sbrc r24,5 - 458 00fc 00C0 rjmp .L26 - 459 .L25: - 460 00fe F62E mov r15,r22 - 461 .LBE65: - 462 .LBB72: - 463 .LBB73: - 233:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // If TXC is cleared before writing UDR and the previous byte - 234:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // completes before writing to UDR, TXC will be set but a byte - 235:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // is still being transmitted causing flush() to return too soon. - 236:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // So writing UDR must happen first. - 237:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // Writing UDR and clearing TC must be done atomically, otherwise - 238:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // interrupts might delay the TXC clear so the byte written to UDR - 239:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // is transmitted (setting TXC) before clearing TXC. Then TXC will - 240:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // be cleared when no bytes are left, causing flush() to hang - 241:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** ATOMIC_BLOCK(ATOMIC_RESTORESTATE) { - 242:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** *_udr = c; - 243:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** #ifdef MPCM0 - 244:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** *_ucsra = ((*_ucsra) & ((1 << U2X0) | (1 << MPCM0))) | (1 << TXC0); - 245:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** #else - 246:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** *_ucsra = ((*_ucsra) & ((1 << U2X0) | (1 << TXC0))); - 247:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** #endif - 248:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** } - 249:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** return 1; - 250:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** } - 251:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** tx_buffer_index_t i = (_tx_buffer_head + 1) % SERIAL_TX_BUFFER_SIZE; - 465 .LM38: - 466 0100 0B8D ldd r16,Y+27 - 467 0102 10E0 ldi r17,0 - 468 0104 0F5F subi r16,-1 - 469 0106 1F4F sbci r17,-1 - 470 0108 0F73 andi r16,63 - 471 010a 1127 clr r17 - 472 010c E02E mov r14,r16 - 473 .L28: - 252:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** - 253:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // If the output buffer is full, there's nothing for it other than to - 254:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // wait for the interrupt handler to empty it a bit - 255:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** while (i == _tx_buffer_tail) { - 475 .LM39: - 476 010e 8C8D ldd r24,Y+28 - 477 0110 E812 cpse r14,r24 - 478 0112 00C0 rjmp .L27 - 256:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** if (bit_is_clear(SREG, SREG_I)) { - 480 .LM40: - 481 0114 0FB6 in __tmp_reg__,__SREG__ - 482 0116 07FC sbrc __tmp_reg__,7 - 483 0118 00C0 rjmp .L28 - 257:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // Interrupts are disabled, so we'll have to poll the data - 258:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // register empty flag ourselves. If it is set, pretend an - 259:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // interrupt has happened and call the handler to free up - 260:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // space for us. - 261:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** if(bit_is_set(*_ucsra, UDRE0)) - 485 .LM41: - 486 011a E889 ldd r30,Y+16 - 487 011c F989 ldd r31,Y+17 - 488 011e 8081 ld r24,Z - 489 0120 85FF sbrs r24,5 - 490 0122 00C0 rjmp .L28 - 262:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** _tx_udr_empty_irq(); - 492 .LM42: - 493 0124 CE01 movw r24,r28 - 494 0126 0E94 0000 call _ZN14HardwareSerial17_tx_udr_empty_irqEv - 495 012a 00C0 rjmp .L28 - 496 .L27: - 263:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** } else { - 264:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // nop, the interrupt handler will free up space for us - 265:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** } - 266:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** } - 267:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** - 268:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** _tx_buffer[_tx_buffer_head] = c; - 498 .LM43: - 499 012c 8B8D ldd r24,Y+27 - 500 012e FE01 movw r30,r28 - 501 0130 E80F add r30,r24 - 502 0132 F11D adc r31,__zero_reg__ - 503 0134 E35A subi r30,-93 - 504 0136 FF4F sbci r31,-1 - 505 0138 F082 st Z,r15 - 506 .LBB74: - 269:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** - 270:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // make atomic to prevent execution of ISR between setting the - 271:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // head pointer and setting the interrupt flag resulting in buffer - 272:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // retransmission - 273:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** ATOMIC_BLOCK(ATOMIC_RESTORESTATE) { - 508 .LM44: - 509 013a 9FB7 in r25,__SREG__ - 510 .LBB75: - 511 .LBB76: - 513 .Ltext1: - 1:/usr/lib/avr/include/util/atomic.h **** /* Copyright (c) 2007 Dean Camera - 2:/usr/lib/avr/include/util/atomic.h **** All rights reserved. - 3:/usr/lib/avr/include/util/atomic.h **** - 4:/usr/lib/avr/include/util/atomic.h **** Redistribution and use in source and binary forms, with or without - 5:/usr/lib/avr/include/util/atomic.h **** modification, are permitted provided that the following conditions are met: - 6:/usr/lib/avr/include/util/atomic.h **** - 7:/usr/lib/avr/include/util/atomic.h **** * Redistributions of source code must retain the above copyright - 8:/usr/lib/avr/include/util/atomic.h **** notice, this list of conditions and the following disclaimer. - 9:/usr/lib/avr/include/util/atomic.h **** - 10:/usr/lib/avr/include/util/atomic.h **** * Redistributions in binary form must reproduce the above copyright - 11:/usr/lib/avr/include/util/atomic.h **** notice, this list of conditions and the following disclaimer in - 12:/usr/lib/avr/include/util/atomic.h **** the documentation and/or other materials provided with the - 13:/usr/lib/avr/include/util/atomic.h **** distribution. - 14:/usr/lib/avr/include/util/atomic.h **** - 15:/usr/lib/avr/include/util/atomic.h **** * Neither the name of the copyright holders nor the names of - 16:/usr/lib/avr/include/util/atomic.h **** contributors may be used to endorse or promote products derived - 17:/usr/lib/avr/include/util/atomic.h **** from this software without specific prior written permission. - 18:/usr/lib/avr/include/util/atomic.h **** - 19:/usr/lib/avr/include/util/atomic.h **** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - 20:/usr/lib/avr/include/util/atomic.h **** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - 21:/usr/lib/avr/include/util/atomic.h **** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - 22:/usr/lib/avr/include/util/atomic.h **** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - 23:/usr/lib/avr/include/util/atomic.h **** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - 24:/usr/lib/avr/include/util/atomic.h **** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - 25:/usr/lib/avr/include/util/atomic.h **** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - 26:/usr/lib/avr/include/util/atomic.h **** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - 27:/usr/lib/avr/include/util/atomic.h **** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - 28:/usr/lib/avr/include/util/atomic.h **** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - 29:/usr/lib/avr/include/util/atomic.h **** POSSIBILITY OF SUCH DAMAGE. - 30:/usr/lib/avr/include/util/atomic.h **** */ - 31:/usr/lib/avr/include/util/atomic.h **** - 32:/usr/lib/avr/include/util/atomic.h **** /* $Id$ */ - 33:/usr/lib/avr/include/util/atomic.h **** - 34:/usr/lib/avr/include/util/atomic.h **** #ifndef _UTIL_ATOMIC_H_ - 35:/usr/lib/avr/include/util/atomic.h **** #define _UTIL_ATOMIC_H_ 1 - 36:/usr/lib/avr/include/util/atomic.h **** - 37:/usr/lib/avr/include/util/atomic.h **** #include - 38:/usr/lib/avr/include/util/atomic.h **** #include - 39:/usr/lib/avr/include/util/atomic.h **** - 40:/usr/lib/avr/include/util/atomic.h **** #if !defined(__DOXYGEN__) - 41:/usr/lib/avr/include/util/atomic.h **** /* Internal helper functions. */ - 42:/usr/lib/avr/include/util/atomic.h **** static __inline__ uint8_t __iSeiRetVal(void) - 43:/usr/lib/avr/include/util/atomic.h **** { - 44:/usr/lib/avr/include/util/atomic.h **** sei(); - 45:/usr/lib/avr/include/util/atomic.h **** return 1; - 46:/usr/lib/avr/include/util/atomic.h **** } - 47:/usr/lib/avr/include/util/atomic.h **** - 48:/usr/lib/avr/include/util/atomic.h **** static __inline__ uint8_t __iCliRetVal(void) - 49:/usr/lib/avr/include/util/atomic.h **** { - 50:/usr/lib/avr/include/util/atomic.h **** cli(); - 515 .LM45: - 516 /* #APP */ - 517 ; 50 "/usr/lib/avr/include/util/atomic.h" 1 - 518 013c F894 cli - 519 ; 0 "" 2 - 520 /* #NOAPP */ - 521 .LBE76: - 522 .LBE75: - 524 .Ltext2: - 274:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** _tx_buffer_head = i; - 526 .LM46: - 527 013e 0B8F std Y+27,r16 - 275:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** sbi(*_ucsrb, UDRIE0); - 529 .LM47: - 530 0140 EA89 ldd r30,Y+18 - 531 0142 FB89 ldd r31,Y+19 - 532 0144 8081 ld r24,Z - 533 0146 8062 ori r24,lo8(32) - 534 0148 00C0 rjmp .L36 - 535 .L26: - 536 .LBE74: - 537 .LBE73: - 538 .LBE72: - 539 .LBB77: - 540 .LBB66: - 541 .LBB67: - 241:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** *_udr = c; - 543 .LM48: - 544 014a 9FB7 in r25,__SREG__ - 545 .LBB68: - 546 .LBB69: - 548 .Ltext3: - 550 .LM49: - 551 /* #APP */ - 552 ; 50 "/usr/lib/avr/include/util/atomic.h" 1 - 553 014c F894 cli - 554 ; 0 "" 2 - 555 /* #NOAPP */ - 556 .LBE69: - 557 .LBE68: - 559 .Ltext4: - 242:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** #ifdef MPCM0 - 561 .LM50: - 562 014e EE89 ldd r30,Y+22 - 563 0150 FF89 ldd r31,Y+23 - 564 0152 6083 st Z,r22 - 244:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** #else - 566 .LM51: - 567 0154 E889 ldd r30,Y+16 - 568 0156 F989 ldd r31,Y+17 - 569 0158 8081 ld r24,Z - 570 015a 8370 andi r24,lo8(3) - 571 015c 8064 ori r24,lo8(64) - 572 .L36: - 573 015e 8083 st Z,r24 - 574 .LBB70: - 575 .LBB71: - 577 .Ltext5: - 51:/usr/lib/avr/include/util/atomic.h **** return 1; - 52:/usr/lib/avr/include/util/atomic.h **** } - 53:/usr/lib/avr/include/util/atomic.h **** - 54:/usr/lib/avr/include/util/atomic.h **** static __inline__ void __iSeiParam(const uint8_t *__s) - 55:/usr/lib/avr/include/util/atomic.h **** { - 56:/usr/lib/avr/include/util/atomic.h **** sei(); - 57:/usr/lib/avr/include/util/atomic.h **** __asm__ volatile ("" ::: "memory"); - 58:/usr/lib/avr/include/util/atomic.h **** (void)__s; - 59:/usr/lib/avr/include/util/atomic.h **** } - 60:/usr/lib/avr/include/util/atomic.h **** - 61:/usr/lib/avr/include/util/atomic.h **** static __inline__ void __iCliParam(const uint8_t *__s) - 62:/usr/lib/avr/include/util/atomic.h **** { - 63:/usr/lib/avr/include/util/atomic.h **** cli(); - 64:/usr/lib/avr/include/util/atomic.h **** __asm__ volatile ("" ::: "memory"); - 65:/usr/lib/avr/include/util/atomic.h **** (void)__s; - 66:/usr/lib/avr/include/util/atomic.h **** } - 67:/usr/lib/avr/include/util/atomic.h **** - 68:/usr/lib/avr/include/util/atomic.h **** static __inline__ void __iRestore(const uint8_t *__s) - 69:/usr/lib/avr/include/util/atomic.h **** { - 70:/usr/lib/avr/include/util/atomic.h **** SREG = *__s; - 579 .LM52: - 580 0160 9FBF out __SREG__,r25 - 71:/usr/lib/avr/include/util/atomic.h **** __asm__ volatile ("" ::: "memory"); - 582 .LM53: - 583 .LBE71: - 584 .LBE70: - 585 .LBE67: - 586 .LBE66: - 587 .LBE77: - 589 .Ltext6: - 276:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** } - 277:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** - 278:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** return 1; - 279:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** } - 591 .LM54: - 592 0162 81E0 ldi r24,lo8(1) - 593 0164 90E0 ldi r25,0 - 594 /* epilogue start */ - 595 0166 DF91 pop r29 - 596 0168 CF91 pop r28 - 597 016a 1F91 pop r17 - 598 016c 0F91 pop r16 - 599 016e FF90 pop r15 - 600 0170 EF90 pop r14 - 601 0172 0895 ret - 612 .Lscope7: - 614 .stabd 78,0,0 - 617 .global _ZN14HardwareSerial5flushEv - 619 _ZN14HardwareSerial5flushEv: - 620 .stabd 46,0,0 - 206:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // If we have never written a byte, no need to flush. This special - 622 .LM55: - 623 .LFBB8: - 624 0174 CF93 push r28 - 625 0176 DF93 push r29 - 626 /* prologue: function */ - 627 /* frame size = 0 */ - 628 /* stack size = 2 */ - 629 .L__stack_usage = 2 - 630 0178 EC01 movw r28,r24 - 210:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** return; - 632 .LM56: - 633 017a 888D ldd r24,Y+24 - 634 017c 8823 tst r24 - 635 017e 01F0 breq .L37 - 636 .L53: - 637 .LBB80: - 638 .LBB81: - 213:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** if (bit_is_clear(SREG, SREG_I) && bit_is_set(*_ucsrb, UDRIE0)) - 640 .LM57: - 641 0180 EA89 ldd r30,Y+18 - 642 0182 FB89 ldd r31,Y+19 - 643 .L44: - 644 0184 8081 ld r24,Z - 645 0186 85FD sbrc r24,5 - 646 0188 00C0 rjmp .L39 - 647 018a A889 ldd r26,Y+16 - 648 018c B989 ldd r27,Y+17 - 649 018e 8C91 ld r24,X - 650 0190 86FD sbrc r24,6 - 651 0192 00C0 rjmp .L37 - 652 .L39: - 214:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // Interrupts are globally disabled, but the DR empty - 654 .LM58: - 655 0194 0FB6 in __tmp_reg__,__SREG__ - 656 0196 07FC sbrc __tmp_reg__,7 - 657 0198 00C0 rjmp .L44 - 658 019a 8081 ld r24,Z - 659 019c 85FF sbrs r24,5 - 660 019e 00C0 rjmp .L44 - 218:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** _tx_udr_empty_irq(); - 662 .LM59: - 663 01a0 A889 ldd r26,Y+16 - 664 01a2 B989 ldd r27,Y+17 - 665 01a4 8C91 ld r24,X - 666 01a6 85FF sbrs r24,5 - 667 01a8 00C0 rjmp .L44 - 219:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** } - 669 .LM60: - 670 01aa CE01 movw r24,r28 - 671 01ac 0E94 0000 call _ZN14HardwareSerial17_tx_udr_empty_irqEv - 672 01b0 00C0 rjmp .L53 - 673 .L37: - 674 /* epilogue start */ - 675 .LBE81: - 676 .LBE80: - 223:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** - 678 .LM61: - 679 01b2 DF91 pop r29 - 680 01b4 CF91 pop r28 - 681 01b6 0895 ret - 683 .Lscope8: - 685 .stabd 78,0,0 - 690 .global _ZN14HardwareSerial5beginEmh - 692 _ZN14HardwareSerial5beginEmh: - 693 .stabd 46,0,0 - 118:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // Try u2x mode first - 695 .LM62: - 696 .LFBB9: - 697 01b8 CF92 push r12 - 698 01ba DF92 push r13 - 699 01bc EF92 push r14 - 700 01be FF92 push r15 - 701 01c0 1F93 push r17 - 702 01c2 CF93 push r28 - 703 01c4 DF93 push r29 - 704 /* prologue: function */ - 705 /* frame size = 0 */ - 706 /* stack size = 7 */ - 707 .L__stack_usage = 7 - 708 01c6 EC01 movw r28,r24 - 709 01c8 6A01 movw r12,r20 - 710 01ca 7B01 movw r14,r22 - 711 01cc 122F mov r17,r18 - 121:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** - 713 .LM63: - 714 01ce E889 ldd r30,Y+16 - 715 01d0 F989 ldd r31,Y+17 - 716 01d2 82E0 ldi r24,lo8(2) - 717 01d4 8083 st Z,r24 - 128:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** { - 719 .LM64: - 720 01d6 4115 cp r20,__zero_reg__ - 721 01d8 514E sbci r21,-31 - 722 01da 6105 cpc r22,__zero_reg__ - 723 01dc 7105 cpc r23,__zero_reg__ - 724 01de 01F0 breq .L55 - 120:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** *_ucsra = 1 << U2X0; - 726 .LM65: - 727 01e0 60E0 ldi r22,0 - 728 01e2 79E0 ldi r23,lo8(9) - 729 01e4 8DE3 ldi r24,lo8(61) - 730 01e6 90E0 ldi r25,0 - 731 01e8 A701 movw r20,r14 - 732 01ea 9601 movw r18,r12 - 733 01ec 0E94 0000 call __udivmodsi4 - 734 01f0 DA01 movw r26,r20 - 735 01f2 C901 movw r24,r18 - 736 01f4 0197 sbiw r24,1 - 737 01f6 A109 sbc r26,__zero_reg__ - 738 01f8 B109 sbc r27,__zero_reg__ - 739 01fa B695 lsr r27 - 740 01fc A795 ror r26 - 741 01fe 9795 ror r25 - 742 0200 8795 ror r24 - 743 0202 9C01 movw r18,r24 - 128:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** { - 745 .LM66: - 746 0204 2115 cp r18,__zero_reg__ - 747 0206 80E1 ldi r24,16 - 748 0208 3807 cpc r19,r24 - 749 020a 00F0 brlo .L56 - 750 .L55: - 130:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** baud_setting = (F_CPU / 8 / baud - 1) / 2; - 752 .LM67: - 753 020c E889 ldd r30,Y+16 - 754 020e F989 ldd r31,Y+17 - 755 0210 1082 st Z,__zero_reg__ - 131:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** } - 757 .LM68: - 758 0212 60E8 ldi r22,lo8(-128) - 759 0214 74E8 ldi r23,lo8(-124) - 760 0216 8EE1 ldi r24,lo8(30) - 761 0218 90E0 ldi r25,0 - 762 021a A701 movw r20,r14 - 763 021c 9601 movw r18,r12 - 764 021e 0E94 0000 call __udivmodsi4 - 765 0222 DA01 movw r26,r20 - 766 0224 C901 movw r24,r18 - 767 0226 0197 sbiw r24,1 - 768 0228 A109 sbc r26,__zero_reg__ - 769 022a B109 sbc r27,__zero_reg__ - 770 022c B695 lsr r27 - 771 022e A795 ror r26 - 772 0230 9795 ror r25 - 773 0232 8795 ror r24 - 774 0234 9C01 movw r18,r24 - 775 .L56: - 135:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** *_ubrrl = baud_setting; - 777 .LM69: - 778 0236 EC85 ldd r30,Y+12 - 779 0238 FD85 ldd r31,Y+13 - 780 023a 3083 st Z,r19 - 136:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** - 782 .LM70: - 783 023c EE85 ldd r30,Y+14 - 784 023e FF85 ldd r31,Y+15 - 785 0240 2083 st Z,r18 - 138:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** - 787 .LM71: - 788 0242 188E std Y+24,__zero_reg__ - 144:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** - 790 .LM72: - 791 0244 EC89 ldd r30,Y+20 - 792 0246 FD89 ldd r31,Y+21 - 793 0248 1083 st Z,r17 - 146:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** sbi(*_ucsrb, TXEN0); - 795 .LM73: - 796 024a EA89 ldd r30,Y+18 - 797 024c FB89 ldd r31,Y+19 - 798 024e 8081 ld r24,Z - 799 0250 8061 ori r24,lo8(16) - 800 0252 8083 st Z,r24 - 147:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** sbi(*_ucsrb, RXCIE0); - 802 .LM74: - 803 0254 EA89 ldd r30,Y+18 - 804 0256 FB89 ldd r31,Y+19 - 805 0258 8081 ld r24,Z - 806 025a 8860 ori r24,lo8(8) - 807 025c 8083 st Z,r24 - 148:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** cbi(*_ucsrb, UDRIE0); - 809 .LM75: - 810 025e EA89 ldd r30,Y+18 - 811 0260 FB89 ldd r31,Y+19 - 812 0262 8081 ld r24,Z - 813 0264 8068 ori r24,lo8(-128) - 814 0266 8083 st Z,r24 - 149:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** } - 816 .LM76: - 817 0268 EA89 ldd r30,Y+18 - 818 026a FB89 ldd r31,Y+19 - 819 026c 8081 ld r24,Z - 820 026e 8F7D andi r24,lo8(-33) - 821 0270 8083 st Z,r24 - 822 /* epilogue start */ - 150:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** - 824 .LM77: - 825 0272 DF91 pop r29 - 826 0274 CF91 pop r28 - 827 0276 1F91 pop r17 - 828 0278 FF90 pop r15 - 829 027a EF90 pop r14 - 830 027c DF90 pop r13 - 831 027e CF90 pop r12 - 832 0280 0895 ret - 837 .Lscope9: - 839 .stabd 78,0,0 - 842 .global _ZN14HardwareSerial3endEv - 844 _ZN14HardwareSerial3endEv: - 845 .stabd 46,0,0 - 153:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** // wait for transmission of outgoing data - 847 .LM78: - 848 .LFBB10: - 849 0282 CF93 push r28 - 850 0284 DF93 push r29 - 851 /* prologue: function */ - 852 /* frame size = 0 */ - 853 /* stack size = 2 */ - 854 .L__stack_usage = 2 - 855 0286 EC01 movw r28,r24 - 155:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** - 857 .LM79: - 858 0288 E881 ld r30,Y - 859 028a F981 ldd r31,Y+1 - 860 028c 0680 ldd __tmp_reg__,Z+6 - 861 028e F781 ldd r31,Z+7 - 862 0290 E02D mov r30,__tmp_reg__ - 863 0292 0995 icall - 157:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** cbi(*_ucsrb, TXEN0); - 865 .LM80: - 866 0294 EA89 ldd r30,Y+18 - 867 0296 FB89 ldd r31,Y+19 - 868 0298 8081 ld r24,Z - 869 029a 8F7E andi r24,lo8(-17) - 870 029c 8083 st Z,r24 - 158:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** cbi(*_ucsrb, RXCIE0); - 872 .LM81: - 873 029e EA89 ldd r30,Y+18 - 874 02a0 FB89 ldd r31,Y+19 - 875 02a2 8081 ld r24,Z - 876 02a4 877F andi r24,lo8(-9) - 877 02a6 8083 st Z,r24 - 159:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** cbi(*_ucsrb, UDRIE0); - 879 .LM82: - 880 02a8 EA89 ldd r30,Y+18 - 881 02aa FB89 ldd r31,Y+19 - 882 02ac 8081 ld r24,Z - 883 02ae 8F77 andi r24,lo8(127) - 884 02b0 8083 st Z,r24 - 160:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** - 886 .LM83: - 887 02b2 EA89 ldd r30,Y+18 - 888 02b4 FB89 ldd r31,Y+19 - 889 02b6 8081 ld r24,Z - 890 02b8 8F7D andi r24,lo8(-33) - 891 02ba 8083 st Z,r24 - 163:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** } - 893 .LM84: - 894 02bc 8A8D ldd r24,Y+26 - 895 02be 898F std Y+25,r24 - 896 /* epilogue start */ - 164:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.cpp **** - 898 .LM85: - 899 02c0 DF91 pop r29 - 900 02c2 CF91 pop r28 - 901 02c4 0895 ret - 903 .Lscope10: - 905 .stabd 78,0,0 - 906 .weak _ZTV14HardwareSerial - 907 .section .rodata._ZTV14HardwareSerial,"aG",@progbits,_ZTV14HardwareSerial,comdat - 910 _ZTV14HardwareSerial: - 911 0000 0000 .word 0 - 912 0002 0000 .word 0 - 913 0004 0000 .word gs(_ZN14HardwareSerial5writeEh) - 914 0006 0000 .word gs(_ZN5Print5writeEPKhj) - 915 0008 0000 .word gs(_ZN14HardwareSerial17availableForWriteEv) - 916 000a 0000 .word gs(_ZN14HardwareSerial5flushEv) - 917 000c 0000 .word gs(_ZN14HardwareSerial9availableEv) - 918 000e 0000 .word gs(_ZN14HardwareSerial4readEv) - 919 0010 0000 .word gs(_ZN14HardwareSerial4peekEv) - 934 .weak _Z11serialEventv - 935 .weak _Z17Serial0_availablev - 936 .text - 938 .Letext0: - 939 .ident "GCC: (GNU) 5.4.0" - 940 .global __do_copy_data -DEFINED SYMBOLS - *ABS*:0000000000000000 HardwareSerial.cpp - /tmp/cciFHRb7.s:2 *ABS*:000000000000003e __SP_H__ - /tmp/cciFHRb7.s:3 *ABS*:000000000000003d __SP_L__ - /tmp/cciFHRb7.s:4 *ABS*:000000000000003f __SREG__ - /tmp/cciFHRb7.s:5 *ABS*:0000000000000000 __tmp_reg__ - /tmp/cciFHRb7.s:6 *ABS*:0000000000000001 __zero_reg__ - /tmp/cciFHRb7.s:137 .text:0000000000000000 _ZN14HardwareSerial9availableEv - /tmp/cciFHRb7.s:170 .text:0000000000000018 _ZN14HardwareSerial4peekEv - /tmp/cciFHRb7.s:210 .text:0000000000000034 _ZN14HardwareSerial4readEv - /tmp/cciFHRb7.s:267 .text:000000000000005c _ZN14HardwareSerial17availableForWriteEv - /tmp/cciFHRb7.s:315 .text:000000000000007a _Z14serialEventRunv - /tmp/cciFHRb7.s:353 .text:0000000000000096 _ZN14HardwareSerial17_tx_udr_empty_irqEv - /tmp/cciFHRb7.s:425 .text:00000000000000da _ZN14HardwareSerial5writeEh - /tmp/cciFHRb7.s:619 .text:0000000000000174 _ZN14HardwareSerial5flushEv - /tmp/cciFHRb7.s:692 .text:00000000000001b8 _ZN14HardwareSerial5beginEmh - /tmp/cciFHRb7.s:844 .text:0000000000000282 _ZN14HardwareSerial3endEv - /tmp/cciFHRb7.s:910 .rodata._ZTV14HardwareSerial:0000000000000000 _ZTV14HardwareSerial - -UNDEFINED SYMBOLS -_Z17Serial0_availablev -_Z11serialEventv -__udivmodsi4 -_ZN5Print5writeEPKhj -__do_copy_data diff --git a/arduino/hardware/arduino/avr/cores/arduino/HardwareSerial.o b/arduino/hardware/arduino/avr/cores/arduino/HardwareSerial.o deleted file mode 100644 index d377bd08617e934da05aec40d84c3c8bec153257..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27580 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 diff --git a/arduino/hardware/arduino/avr/cores/arduino/HardwareSerial0.d b/arduino/hardware/arduino/avr/cores/arduino/HardwareSerial0.d deleted file mode 100644 index cdd73e3..0000000 --- a/arduino/hardware/arduino/avr/cores/arduino/HardwareSerial0.d +++ /dev/null @@ -1,14 +0,0 @@ -HardwareSerial0.o HardwareSerial0.d : \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Arduino.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/binary.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WCharacter.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Printable.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/USBAPI.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8/hardware/arduino/avr/variants/standard/pins_arduino.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_private.h diff --git a/arduino/hardware/arduino/avr/cores/arduino/HardwareSerial0.lst b/arduino/hardware/arduino/avr/cores/arduino/HardwareSerial0.lst deleted file mode 100644 index 8020f43..0000000 --- a/arduino/hardware/arduino/avr/cores/arduino/HardwareSerial0.lst +++ /dev/null @@ -1,655 +0,0 @@ - 1 .file "HardwareSerial0.cpp" - 2 __SP_H__ = 0x3e - 3 __SP_L__ = 0x3d - 4 __SREG__ = 0x3f - 5 __tmp_reg__ = 0 - 6 __zero_reg__ = 1 - 9 .text - 10 .Ltext0: - 132 .section .text._ZN5Print17availableForWriteEv,"axG",@progbits,_ZN5Print17availableForWriteEv,comda - 135 .weak _ZN5Print17availableForWriteEv - 137 _ZN5Print17availableForWriteEv: - 138 .stabd 46,0,0 - 140 .Ltext1: - 1:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** /* - 2:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** Print.h - Base class that provides print() and println() - 3:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** Copyright (c) 2008 David A. Mellis. All right reserved. - 4:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** - 5:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** This library is free software; you can redistribute it and/or - 6:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** modify it under the terms of the GNU Lesser General Public - 7:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** License as published by the Free Software Foundation; either - 8:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** version 2.1 of the License, or (at your option) any later version. - 9:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** - 10:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** This library is distributed in the hope that it will be useful, - 11:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** but WITHOUT ANY WARRANTY; without even the implied warranty of - 12:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - 13:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** Lesser General Public License for more details. - 14:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** - 15:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** You should have received a copy of the GNU Lesser General Public - 16:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** License along with this library; if not, write to the Free Software - 17:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - 18:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** */ - 19:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** - 20:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** #ifndef Print_h - 21:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** #define Print_h - 22:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** - 23:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** #include - 24:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** #include // for size_t - 25:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** - 26:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** #include "WString.h" - 27:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** #include "Printable.h" - 28:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** - 29:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** #define DEC 10 - 30:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** #define HEX 16 - 31:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** #define OCT 8 - 32:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** #ifdef BIN // Prevent warnings if BIN is previously defined in "iotnx4.h" or similar - 33:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** #undef BIN - 34:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** #endif - 35:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** #define BIN 2 - 36:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** - 37:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** class Print - 38:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** { - 39:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** private: - 40:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** int write_error; - 41:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t printNumber(unsigned long, uint8_t); - 42:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t printFloat(double, uint8_t); - 43:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** protected: - 44:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** void setWriteError(int err = 1) { write_error = err; } - 45:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** public: - 46:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** Print() : write_error(0) {} - 47:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** - 48:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** int getWriteError() { return write_error; } - 49:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** void clearWriteError() { setWriteError(0); } - 50:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** - 51:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** virtual size_t write(uint8_t) = 0; - 52:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t write(const char *str) { - 53:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** if (str == NULL) return 0; - 54:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** return write((const uint8_t *)str, strlen(str)); - 55:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** } - 56:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** virtual size_t write(const uint8_t *buffer, size_t size); - 57:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t write(const char *buffer, size_t size) { - 58:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** return write((const uint8_t *)buffer, size); - 59:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** } - 60:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** - 61:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** // default to zero, meaning "a single write may block" - 62:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** // should be overriden by subclasses with buffering - 63:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** virtual int availableForWrite() { return 0; } - 142 .LM0: - 143 .LFBB1: - 144 /* prologue: function */ - 145 /* frame size = 0 */ - 146 /* stack size = 0 */ - 147 .L__stack_usage = 0 - 149 .LM1: - 150 0000 80E0 ldi r24,0 - 151 0002 90E0 ldi r25,0 - 152 0004 0895 ret - 154 .Lscope1: - 156 .stabd 78,0,0 - 157 .section .text._ZN5Print5flushEv,"axG",@progbits,_ZN5Print5flushEv,comdat - 160 .weak _ZN5Print5flushEv - 162 _ZN5Print5flushEv: - 163 .stabd 46,0,0 - 64:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** - 65:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t print(const __FlashStringHelper *); - 66:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t print(const String &); - 67:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t print(const char[]); - 68:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t print(char); - 69:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t print(unsigned char, int = DEC); - 70:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t print(int, int = DEC); - 71:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t print(unsigned int, int = DEC); - 72:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t print(long, int = DEC); - 73:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t print(unsigned long, int = DEC); - 74:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t print(double, int = 2); - 75:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t print(const Printable&); - 76:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** - 77:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t println(const __FlashStringHelper *); - 78:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t println(const String &s); - 79:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t println(const char[]); - 80:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t println(char); - 81:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t println(unsigned char, int = DEC); - 82:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t println(int, int = DEC); - 83:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t println(unsigned int, int = DEC); - 84:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t println(long, int = DEC); - 85:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t println(unsigned long, int = DEC); - 86:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t println(double, int = 2); - 87:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t println(const Printable&); - 88:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t println(void); - 89:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** - 90:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** virtual void flush() { /* Empty implementation for backward compatibility */ } - 165 .LM2: - 166 .LFBB2: - 167 /* prologue: function */ - 168 /* frame size = 0 */ - 169 /* stack size = 0 */ - 170 .L__stack_usage = 0 - 171 0000 0895 ret - 173 .Lscope2: - 175 .stabd 78,0,0 - 176 .text - 178 .global __vector_18 - 180 __vector_18: - 181 .stabd 46,0,0 - 183 .Ltext2: - 1:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** /* - 2:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** HardwareSerial0.cpp - Hardware serial library for Wiring - 3:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** Copyright (c) 2006 Nicholas Zambetti. All right reserved. - 4:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** - 5:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** This library is free software; you can redistribute it and/or - 6:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** modify it under the terms of the GNU Lesser General Public - 7:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** License as published by the Free Software Foundation; either - 8:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** version 2.1 of the License, or (at your option) any later version. - 9:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** - 10:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** This library is distributed in the hope that it will be useful, - 11:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** but WITHOUT ANY WARRANTY; without even the implied warranty of - 12:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - 13:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** Lesser General Public License for more details. - 14:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** - 15:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** You should have received a copy of the GNU Lesser General Public - 16:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** License along with this library; if not, write to the Free Software - 17:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - 18:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** - 19:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** Modified 23 November 2006 by David A. Mellis - 20:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** Modified 28 September 2010 by Mark Sproul - 21:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** Modified 14 August 2012 by Alarus - 22:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** Modified 3 December 2013 by Matthijs Kooijman - 23:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** */ - 24:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** - 25:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** #include "Arduino.h" - 26:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** #include "HardwareSerial.h" - 27:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** #include "HardwareSerial_private.h" - 28:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** - 29:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** // Each HardwareSerial is defined in its own file, sine the linker pulls - 30:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** // in the entire file when any element inside is used. --gc-sections can - 31:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** // additionally cause unused symbols to be dropped, but ISRs have the - 32:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** // "used" attribute so are never dropped and they keep the - 33:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** // HardwareSerial instance in as well. Putting each instance in its own - 34:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** // file prevents the linker from pulling in any unused instances in the - 35:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** // first place. - 36:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** - 37:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** #if defined(HAVE_HWSERIAL0) - 38:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** - 39:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** #if defined(USART_RX_vect) - 40:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** ISR(USART_RX_vect) - 41:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** #elif defined(USART0_RX_vect) - 42:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** ISR(USART0_RX_vect) - 43:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** #elif defined(USART_RXC_vect) - 44:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** ISR(USART_RXC_vect) // ATmega8 - 45:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** #else - 46:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** #error "Don't know what the Data Received vector is called for Serial" - 47:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** #endif - 48:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** { - 185 .LM3: - 186 .LFBB3: - 188 .LM4: - 189 0000 1F92 push r1 - 190 0002 0F92 push r0 - 191 0004 0FB6 in r0,__SREG__ - 192 0006 0F92 push r0 - 193 0008 1124 clr __zero_reg__ - 194 000a 2F93 push r18 - 195 000c 8F93 push r24 - 196 000e 9F93 push r25 - 197 0010 EF93 push r30 - 198 0012 FF93 push r31 - 199 /* prologue: Signal */ - 200 /* frame size = 0 */ - 201 /* stack size = 8 */ - 202 .L__stack_usage = 8 - 203 .LBB22: - 204 .LBB23: - 206 .Ltext3: - 1:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** /* - 2:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** HardwareSerial_private.h - Hardware serial library for Wiring - 3:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** Copyright (c) 2006 Nicholas Zambetti. All right reserved. - 4:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** - 5:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** This library is free software; you can redistribute it and/or - 6:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** modify it under the terms of the GNU Lesser General Public - 7:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** License as published by the Free Software Foundation; either - 8:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** version 2.1 of the License, or (at your option) any later version. - 9:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** - 10:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** This library is distributed in the hope that it will be useful, - 11:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** but WITHOUT ANY WARRANTY; without even the implied warranty of - 12:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - 13:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** Lesser General Public License for more details. - 14:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** - 15:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** You should have received a copy of the GNU Lesser General Public - 16:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** License along with this library; if not, write to the Free Software - 17:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - 18:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** - 19:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** Modified 23 November 2006 by David A. Mellis - 20:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** Modified 28 September 2010 by Mark Sproul - 21:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** Modified 14 August 2012 by Alarus - 22:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** */ - 23:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** - 24:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** #include "wiring_private.h" - 25:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** - 26:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** // this next line disables the entire HardwareSerial.cpp, - 27:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** // this is so I can support Attiny series and any other chip without a uart - 28:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** #if defined(HAVE_HWSERIAL0) || defined(HAVE_HWSERIAL1) || defined(HAVE_HWSERIAL2) || defined(HAVE_H - 29:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** - 30:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** // Ensure that the various bit positions we use are available with a 0 - 31:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** // postfix, so we can always use the values for UART0 for all UARTs. The - 32:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** // alternative, passing the various values for each UART to the - 33:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** // HardwareSerial constructor also works, but makes the code bigger and - 34:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** // slower. - 35:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** #if !defined(TXC0) - 36:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** #if defined(TXC) - 37:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** // Some chips like ATmega8 don't have UPE, only PE. The other bits are - 38:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** // named as expected. - 39:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** #if !defined(UPE) && defined(PE) - 40:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** #define UPE PE - 41:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** #endif - 42:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** // On ATmega8, the uart and its bits are not numbered, so there is no TXC0 etc. - 43:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** #define TXC0 TXC - 44:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** #define RXEN0 RXEN - 45:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** #define TXEN0 TXEN - 46:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** #define RXCIE0 RXCIE - 47:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** #define UDRIE0 UDRIE - 48:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** #define U2X0 U2X - 49:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** #define UPE0 UPE - 50:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** #define UDRE0 UDRE - 51:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** #elif defined(TXC1) - 52:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** // Some devices have uart1 but no uart0 - 53:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** #define TXC0 TXC1 - 54:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** #define RXEN0 RXEN1 - 55:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** #define TXEN0 TXEN1 - 56:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** #define RXCIE0 RXCIE1 - 57:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** #define UDRIE0 UDRIE1 - 58:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** #define U2X0 U2X1 - 59:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** #define UPE0 UPE1 - 60:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** #define UDRE0 UDRE1 - 61:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** #else - 62:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** #error No UART found in HardwareSerial.cpp - 63:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** #endif - 64:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** #endif // !defined TXC0 - 65:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** - 66:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** // Check at compiletime that it is really ok to use the bit positions of - 67:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** // UART0 for the other UARTs as well, in case these values ever get - 68:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** // changed for future hardware. - 69:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** #if defined(TXC1) && (TXC1 != TXC0 || RXEN1 != RXEN0 || RXCIE1 != RXCIE0 || \ - 70:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** UDRIE1 != UDRIE0 || U2X1 != U2X0 || UPE1 != UPE0 || \ - 71:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** UDRE1 != UDRE0) - 72:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** #error "Not all bit positions for UART1 are the same as for UART0" - 73:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** #endif - 74:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** #if defined(TXC2) && (TXC2 != TXC0 || RXEN2 != RXEN0 || RXCIE2 != RXCIE0 || \ - 75:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** UDRIE2 != UDRIE0 || U2X2 != U2X0 || UPE2 != UPE0 || \ - 76:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** UDRE2 != UDRE0) - 77:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** #error "Not all bit positions for UART2 are the same as for UART0" - 78:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** #endif - 79:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** #if defined(TXC3) && (TXC3 != TXC0 || RXEN3 != RXEN0 || RXCIE3 != RXCIE0 || \ - 80:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** UDRIE3 != UDRIE0 || U3X3 != U3X0 || UPE3 != UPE0 || \ - 81:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** UDRE3 != UDRE0) - 82:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** #error "Not all bit positions for UART3 are the same as for UART0" - 83:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** #endif - 84:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** - 85:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** // Constructors //////////////////////////////////////////////////////////////// - 86:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** - 87:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** HardwareSerial::HardwareSerial( - 88:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** volatile uint8_t *ubrrh, volatile uint8_t *ubrrl, - 89:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** volatile uint8_t *ucsra, volatile uint8_t *ucsrb, - 90:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** volatile uint8_t *ucsrc, volatile uint8_t *udr) : - 91:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** _ubrrh(ubrrh), _ubrrl(ubrrl), - 92:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** _ucsra(ucsra), _ucsrb(ucsrb), _ucsrc(ucsrc), - 93:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** _udr(udr), - 94:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** _rx_buffer_head(0), _rx_buffer_tail(0), - 95:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** _tx_buffer_head(0), _tx_buffer_tail(0) - 96:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** { - 97:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** } - 98:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** - 99:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** // Actual interrupt handlers ////////////////////////////////////////////////////////////// - 100:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** - 101:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** void HardwareSerial::_rx_complete_irq(void) - 102:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** { - 103:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** if (bit_is_clear(*_ucsra, UPE0)) { - 208 .LM5: - 209 0014 E091 0000 lds r30,Serial+16 - 210 0018 F091 0000 lds r31,Serial+16+1 - 211 001c 8081 ld r24,Z - 212 001e E091 0000 lds r30,Serial+22 - 213 0022 F091 0000 lds r31,Serial+22+1 - 214 0026 82FD sbrc r24,2 - 215 0028 00C0 rjmp .L4 - 216 .LBE23: - 217 .LBB24: - 218 .LBB25: - 104:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** // No Parity error, read byte and store it in the buffer if there is - 105:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** // room - 106:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** unsigned char c = *_udr; - 220 .LM6: - 221 002a 9081 ld r25,Z - 107:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** rx_buffer_index_t i = (unsigned int)(_rx_buffer_head + 1) % SERIAL_RX_BUFFER_SIZE; - 223 .LM7: - 224 002c 8091 0000 lds r24,Serial+25 - 225 0030 8F5F subi r24,lo8(-(1)) - 226 0032 8F73 andi r24,lo8(63) - 108:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** - 109:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** // if we should be storing the received character into the location - 110:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** // just before the tail (meaning that the head would advance to the - 111:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** // current location of the tail), we're about to overflow the buffer - 112:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** // and so we don't write the character or advance the head. - 113:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** if (i != _rx_buffer_tail) { - 228 .LM8: - 229 0034 2091 0000 lds r18,Serial+26 - 230 0038 8217 cp r24,r18 - 231 003a 01F0 breq .L3 - 114:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** _rx_buffer[_rx_buffer_head] = c; - 233 .LM9: - 234 003c E091 0000 lds r30,Serial+25 - 235 0040 F0E0 ldi r31,0 - 236 0042 E050 subi r30,lo8(-(Serial)) - 237 0044 F040 sbci r31,hi8(-(Serial)) - 238 0046 958F std Z+29,r25 - 115:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** _rx_buffer_head = i; - 240 .LM10: - 241 0048 8093 0000 sts Serial+25,r24 - 242 004c 00C0 rjmp .L3 - 243 .L4: - 244 .LBE25: - 245 .LBE24: - 246 .LBB26: - 116:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** } - 117:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** } else { - 118:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** // Parity error, read byte but discard it - 119:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** *_udr; - 248 .LM11: - 249 004e 8081 ld r24,Z - 250 .L3: - 251 /* epilogue start */ - 252 .LBE26: - 253 .LBE22: - 255 .Ltext4: - 49:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** Serial._rx_complete_irq(); - 50:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** } - 257 .LM12: - 258 0050 FF91 pop r31 - 259 0052 EF91 pop r30 - 260 0054 9F91 pop r25 - 261 0056 8F91 pop r24 - 262 0058 2F91 pop r18 - 263 005a 0F90 pop r0 - 264 005c 0FBE out __SREG__,r0 - 265 005e 0F90 pop r0 - 266 0060 1F90 pop r1 - 267 0062 1895 reti - 273 .Lscope3: - 275 .stabd 78,0,0 - 277 .global __vector_19 - 279 __vector_19: - 280 .stabd 46,0,0 - 51:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** - 52:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** #if defined(UART0_UDRE_vect) - 53:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** ISR(UART0_UDRE_vect) - 54:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** #elif defined(UART_UDRE_vect) - 55:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** ISR(UART_UDRE_vect) - 56:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** #elif defined(USART0_UDRE_vect) - 57:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** ISR(USART0_UDRE_vect) - 58:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** #elif defined(USART_UDRE_vect) - 59:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** ISR(USART_UDRE_vect) - 60:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** #else - 61:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** #error "Don't know what the Data Register Empty vector is called for Serial" - 62:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** #endif - 63:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** { - 282 .LM13: - 283 .LFBB4: - 284 0064 1F92 push r1 - 285 0066 0F92 push r0 - 286 0068 0FB6 in r0,__SREG__ - 287 006a 0F92 push r0 - 288 006c 1124 clr __zero_reg__ - 289 006e 2F93 push r18 - 290 0070 3F93 push r19 - 291 0072 4F93 push r20 - 292 0074 5F93 push r21 - 293 0076 6F93 push r22 - 294 0078 7F93 push r23 - 295 007a 8F93 push r24 - 296 007c 9F93 push r25 - 297 007e AF93 push r26 - 298 0080 BF93 push r27 - 299 0082 EF93 push r30 - 300 0084 FF93 push r31 - 301 /* prologue: Signal */ - 302 /* frame size = 0 */ - 303 /* stack size = 15 */ - 304 .L__stack_usage = 15 - 64:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** Serial._tx_udr_empty_irq(); - 306 .LM14: - 307 0086 80E0 ldi r24,lo8(Serial) - 308 0088 90E0 ldi r25,hi8(Serial) - 309 008a 0E94 0000 call _ZN14HardwareSerial17_tx_udr_empty_irqEv - 310 /* epilogue start */ - 65:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** } - 312 .LM15: - 313 008e FF91 pop r31 - 314 0090 EF91 pop r30 - 315 0092 BF91 pop r27 - 316 0094 AF91 pop r26 - 317 0096 9F91 pop r25 - 318 0098 8F91 pop r24 - 319 009a 7F91 pop r23 - 320 009c 6F91 pop r22 - 321 009e 5F91 pop r21 - 322 00a0 4F91 pop r20 - 323 00a2 3F91 pop r19 - 324 00a4 2F91 pop r18 - 325 00a6 0F90 pop r0 - 326 00a8 0FBE out __SREG__,r0 - 327 00aa 0F90 pop r0 - 328 00ac 1F90 pop r1 - 329 00ae 1895 reti - 331 .Lscope4: - 333 .stabd 78,0,0 - 335 .global _Z17Serial0_availablev - 337 _Z17Serial0_availablev: - 338 .stabd 46,0,0 - 66:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** - 67:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** #if defined(UBRRH) && defined(UBRRL) - 68:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** HardwareSerial Serial(&UBRRH, &UBRRL, &UCSRA, &UCSRB, &UCSRC, &UDR); - 69:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** #else - 70:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** HardwareSerial Serial(&UBRR0H, &UBRR0L, &UCSR0A, &UCSR0B, &UCSR0C, &UDR0); - 71:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** #endif - 72:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** - 73:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** // Function that can be weakly referenced by serialEventRun to prevent - 74:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** // pulling in this file if it's not otherwise used. - 75:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** bool Serial0_available() { - 340 .LM16: - 341 .LFBB5: - 342 /* prologue: function */ - 343 /* frame size = 0 */ - 344 /* stack size = 0 */ - 345 .L__stack_usage = 0 - 76:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** return Serial.available(); - 347 .LM17: - 348 00b0 80E0 ldi r24,lo8(Serial) - 349 00b2 90E0 ldi r25,hi8(Serial) - 350 00b4 0E94 0000 call _ZN14HardwareSerial9availableEv - 351 00b8 21E0 ldi r18,lo8(1) - 352 00ba 892B or r24,r25 - 353 00bc 01F4 brne .L9 - 354 00be 20E0 ldi r18,0 - 355 .L9: - 77:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp **** } - 357 .LM18: - 358 00c0 822F mov r24,r18 - 359 00c2 0895 ret - 361 .Lscope5: - 363 .stabd 78,0,0 - 364 .section .text.startup,"ax",@progbits - 367 _GLOBAL__sub_I___vector_18: - 368 .stabd 46,0,0 - 370 .LM19: - 371 .LFBB6: - 372 /* prologue: function */ - 373 /* frame size = 0 */ - 374 /* stack size = 0 */ - 375 .L__stack_usage = 0 - 376 .LBB36: - 377 .LBB37: - 378 .LBB38: - 379 .LBB39: - 380 .LBB40: - 381 .LBB41: - 382 .LBB42: - 384 .Ltext5: - 46:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** - 386 .LM20: - 387 0000 E0E0 ldi r30,lo8(Serial) - 388 0002 F0E0 ldi r31,hi8(Serial) - 389 0004 1382 std Z+3,__zero_reg__ - 390 0006 1282 std Z+2,__zero_reg__ - 391 .LBE42: - 392 .LBE41: - 394 .Ltext6: - 1:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** /* - 2:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** Stream.h - base class for character-based streams. - 3:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** Copyright (c) 2010 David A. Mellis. All right reserved. - 4:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** - 5:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** This library is free software; you can redistribute it and/or - 6:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** modify it under the terms of the GNU Lesser General Public - 7:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** License as published by the Free Software Foundation; either - 8:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** version 2.1 of the License, or (at your option) any later version. - 9:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** - 10:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** This library is distributed in the hope that it will be useful, - 11:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** but WITHOUT ANY WARRANTY; without even the implied warranty of - 12:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - 13:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** Lesser General Public License for more details. - 14:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** - 15:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** You should have received a copy of the GNU Lesser General Public - 16:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** License along with this library; if not, write to the Free Software - 17:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - 18:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** - 19:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** parsing functions based on TextFinder library by Michael Margolis - 20:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** */ - 21:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** - 22:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** #ifndef Stream_h - 23:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** #define Stream_h - 24:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** - 25:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** #include - 26:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** #include "Print.h" - 27:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** - 28:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** // compatability macros for testing - 29:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** /* - 30:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** #define getInt() parseInt() - 31:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** #define getInt(ignore) parseInt(ignore) - 32:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** #define getFloat() parseFloat() - 33:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** #define getFloat(ignore) parseFloat(ignore) - 34:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** #define getString( pre_string, post_string, buffer, length) - 35:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** readBytesBetween( pre_string, terminator, buffer, length) - 36:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** */ - 37:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** - 38:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** // This enumeration provides the lookahead options for parseInt(), parseFloat() - 39:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** // The rules set out here are used until either the first valid character is found - 40:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** // or a time out occurs due to lack of input. - 41:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** enum LookaheadMode{ - 42:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** SKIP_ALL, // All invalid characters are ignored. - 43:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** SKIP_NONE, // Nothing is skipped, and the stream is not touched unless the first waiting c - 44:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** SKIP_WHITESPACE // Only tabs, spaces, line feeds & carriage returns are skipped. - 45:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** }; - 46:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** - 47:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** #define NO_IGNORE_CHAR '\x01' // a char not found in a valid ASCII numeric field - 48:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** - 49:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** class Stream : public Print - 50:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** { - 51:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** protected: - 52:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** unsigned long _timeout; // number of milliseconds to wait for the next char before abortin - 53:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** unsigned long _startMillis; // used for timeout measurement - 54:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** int timedRead(); // read stream with timeout - 55:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** int timedPeek(); // peek stream with timeout - 56:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** int peekNextDigit(LookaheadMode lookahead, bool detectDecimal); // returns the next numeric dig - 57:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** - 58:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** public: - 59:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** virtual int available() = 0; - 60:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** virtual int read() = 0; - 61:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** virtual int peek() = 0; - 62:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** - 63:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h **** Stream() {_timeout=1000;} - 396 .LM21: - 397 0008 88EE ldi r24,lo8(-24) - 398 000a 93E0 ldi r25,lo8(3) - 399 000c A0E0 ldi r26,0 - 400 000e B0E0 ldi r27,0 - 401 0010 8483 std Z+4,r24 - 402 0012 9583 std Z+5,r25 - 403 0014 A683 std Z+6,r26 - 404 0016 B783 std Z+7,r27 - 405 .LBE40: - 406 .LBE39: - 408 .Ltext7: - 95:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h **** { - 410 .LM22: - 411 0018 80E0 ldi r24,lo8(_ZTV14HardwareSerial+4) - 412 001a 90E0 ldi r25,hi8(_ZTV14HardwareSerial+4) - 413 001c 9183 std Z+1,r25 - 414 001e 8083 st Z,r24 - 415 0020 85EC ldi r24,lo8(-59) - 416 0022 90E0 ldi r25,0 - 417 0024 9587 std Z+13,r25 - 418 0026 8487 std Z+12,r24 - 419 0028 84EC ldi r24,lo8(-60) - 420 002a 90E0 ldi r25,0 - 421 002c 9787 std Z+15,r25 - 422 002e 8687 std Z+14,r24 - 423 0030 80EC ldi r24,lo8(-64) - 424 0032 90E0 ldi r25,0 - 425 0034 918B std Z+17,r25 - 426 0036 808B std Z+16,r24 - 427 0038 81EC ldi r24,lo8(-63) - 428 003a 90E0 ldi r25,0 - 429 003c 938B std Z+19,r25 - 430 003e 828B std Z+18,r24 - 431 0040 82EC ldi r24,lo8(-62) - 432 0042 90E0 ldi r25,0 - 433 0044 958B std Z+21,r25 - 434 0046 848B std Z+20,r24 - 435 0048 86EC ldi r24,lo8(-58) - 436 004a 90E0 ldi r25,0 - 437 004c 978B std Z+23,r25 - 438 004e 868B std Z+22,r24 - 439 0050 118E std Z+25,__zero_reg__ - 440 0052 128E std Z+26,__zero_reg__ - 441 0054 138E std Z+27,__zero_reg__ - 442 0056 148E std Z+28,__zero_reg__ - 443 0058 0895 ret - 444 .LBE38: - 445 .LBE37: - 446 .LBE36: - 448 .Lscope6: - 450 .stabd 78,0,0 - 451 .global __do_global_ctors - 452 .section .ctors,"a",@progbits - 453 .p2align 1 - 454 0000 0000 .word gs(_GLOBAL__sub_I___vector_18) - 455 .global Serial - 456 .section .bss - 459 Serial: - 460 0000 0000 0000 .zero 157 - 460 0000 0000 - 460 0000 0000 - 460 0000 0000 - 460 0000 0000 - 476 .text - 478 .Letext0: - 479 .ident "GCC: (GNU) 5.4.0" - 480 .global __do_clear_bss -DEFINED SYMBOLS - *ABS*:0000000000000000 HardwareSerial0.cpp - /tmp/ccH77AAm.s:2 *ABS*:000000000000003e __SP_H__ - /tmp/ccH77AAm.s:3 *ABS*:000000000000003d __SP_L__ - /tmp/ccH77AAm.s:4 *ABS*:000000000000003f __SREG__ - /tmp/ccH77AAm.s:5 *ABS*:0000000000000000 __tmp_reg__ - /tmp/ccH77AAm.s:6 *ABS*:0000000000000001 __zero_reg__ - /tmp/ccH77AAm.s:137 .text._ZN5Print17availableForWriteEv:0000000000000000 _ZN5Print17availableForWriteEv - /tmp/ccH77AAm.s:162 .text._ZN5Print5flushEv:0000000000000000 _ZN5Print5flushEv - /tmp/ccH77AAm.s:180 .text:0000000000000000 __vector_18 - /tmp/ccH77AAm.s:459 .bss:0000000000000000 Serial - /tmp/ccH77AAm.s:279 .text:0000000000000064 __vector_19 - /tmp/ccH77AAm.s:337 .text:00000000000000b0 _Z17Serial0_availablev - /tmp/ccH77AAm.s:367 .text.startup:0000000000000000 _GLOBAL__sub_I___vector_18 - -UNDEFINED SYMBOLS -_ZN14HardwareSerial17_tx_udr_empty_irqEv -_ZN14HardwareSerial9availableEv -_ZTV14HardwareSerial -__do_global_ctors -__do_clear_bss diff --git a/arduino/hardware/arduino/avr/cores/arduino/HardwareSerial0.o b/arduino/hardware/arduino/avr/cores/arduino/HardwareSerial0.o deleted file mode 100644 index d540f8dc63dc2af6134942e013f76065e970a4ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22604 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 diff --git a/arduino/hardware/arduino/avr/cores/arduino/HardwareSerial1.d b/arduino/hardware/arduino/avr/cores/arduino/HardwareSerial1.d deleted file mode 100644 index d732e10..0000000 --- a/arduino/hardware/arduino/avr/cores/arduino/HardwareSerial1.d +++ /dev/null @@ -1,14 +0,0 @@ -HardwareSerial1.o HardwareSerial1.d : \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial1.cpp \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Arduino.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/binary.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WCharacter.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Printable.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/USBAPI.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8/hardware/arduino/avr/variants/standard/pins_arduino.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial_private.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_private.h diff --git a/arduino/hardware/arduino/avr/cores/arduino/HardwareSerial1.lst b/arduino/hardware/arduino/avr/cores/arduino/HardwareSerial1.lst deleted file mode 100644 index c0ab533..0000000 --- a/arduino/hardware/arduino/avr/cores/arduino/HardwareSerial1.lst +++ /dev/null @@ -1,19 +0,0 @@ - 1 .file "HardwareSerial1.cpp" - 2 __SP_H__ = 0x3e - 3 __SP_L__ = 0x3d - 4 __SREG__ = 0x3f - 5 __tmp_reg__ = 0 - 6 __zero_reg__ = 1 - 9 .text - 10 .Ltext0: - 147 .Letext0: - 148 .ident "GCC: (GNU) 5.4.0" -DEFINED SYMBOLS - *ABS*:0000000000000000 HardwareSerial1.cpp - /tmp/cclmScwq.s:2 *ABS*:000000000000003e __SP_H__ - /tmp/cclmScwq.s:3 *ABS*:000000000000003d __SP_L__ - /tmp/cclmScwq.s:4 *ABS*:000000000000003f __SREG__ - /tmp/cclmScwq.s:5 *ABS*:0000000000000000 __tmp_reg__ - /tmp/cclmScwq.s:6 *ABS*:0000000000000001 __zero_reg__ - -NO UNDEFINED SYMBOLS diff --git a/arduino/hardware/arduino/avr/cores/arduino/HardwareSerial1.o b/arduino/hardware/arduino/avr/cores/arduino/HardwareSerial1.o deleted file mode 100644 index 57eac56d9cf27ded4188af908c191abc600e0bb4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18576 zcma)EU5sSMRlds_9I!+9GY^T0$HIhdXLqLW?f+?y+1cG0?__6pC)>LU#6YX3`_4?S zd%DN{GrMb%#2AMt2v8D)@`8j!00Dv*BZVLFf)vO@UJw$(h=4$OK_Da>frQAz@||<) z|K8i)mS+0vTc^Hr>eQ)Ib?a95XSQ~?&zw0E>DQU46WLEu^!9cXeHMjP7C09@5xq~9 z|5Eh&i&69xt`DNexRhix{%znF_-YjWG2UNS_?r%X5{mTo#KCtQJah0D9Q;oXe(pOg z&&v+}1qc73gQK%nzUAO64jw!BR~`Ht4*p>@TiZW&@S6_)O$UG7!T;mnC%@D3e8j<< z4(>Vl4F~_0gTLpyI{4cT zUU{G8{FsBs4*s%(|H{Gt;ov8}+wznh{7DCY-obA<_+K3SgWqF$o^kM&gI{*=8xH;o z)FEW0H@$WFc#Q1L+LkV8r-XMN?J@%r-A8_yo9sHbw zR~_7R@TP-5=HQNlf7-#RgU1fO=U}pMpzMsU_NIe-y=mG>r^DVTUhSWpL~BQr<8G$9wYl27FdB{*_v=;v>e||o(xtDj z^-ia2{mC>n_1E&uIqdh7ZhvxoG90CY)u`KrE%T(hK0jAJAD1>R&XQ_-%D7!_mmBKU zhM<*89J!>_E?3L)YL_dH{QhD%nh(d_(_VKpoXuH7rL^%p$g8Cd{vVMcqxAmDXfi%r z8B7-Yqm<=prHxyab`vHT5vR1CEj@teL`5T82+NtZS=yLYr)h7r4(+Yd2DP(QYG0@% zje4_9{~PV|a6`R4JnkKe5I)g`cEl#~zr}bqJRGNk70nx$$su*+xH3G_F2~w+-n*j7 zGO+6_iMT#y2JK4_w4-bdbOQGib%0jq$n_B)(y8$I#aUCBDE`tagRH>n1?#PVo^nV=o%I;~QqTx-ooXB+eD=&U$tw&MgYu_EYl zBhoM}6ejiocsYJiSA2p7)K%5d$`WI8uNn;>YZ^?3J3fRfYJ+6stKt{~wl0q&T=^sFp_ z9d=Rz4=PUz>4)X`-7z% z<0{tSY#f(oR0UqQLK#WxeruFzN7g#q8`e4_?wVaI;w-}j>+Mri_!Hl%+6x)Yc zf8_OuYg}F*WK;!S4+G1#wPxLKjWX@XSXZ;XkrOYDnKj!ZMWNzK+g{1Bf?F3hv1U7o ztDH`T0|}^7bdP4Nt|YFS>La`d*>`_38F7u8n)xnZ`GM){biP08p3Fh;;6yEw&?mH- zs=@aMoJFHS+8Gic#nNWw1aWzg#(Q3E6ew$W+bvSZXeRVOJ ztJM#$hNkIpuoxN)Pc;j2{c1N>)#2V*Q&*2`C9I}s1t9h5b0wh*NYoAk4CwNb6y7-) zYhL)C41zzYjdl1-wGoSjrWS&Ws0sB_M9Wxn8IGaLl@hHi;<}cGpKuvoAYpr1yhDD# z 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 z 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 diff --git a/arduino/hardware/arduino/avr/cores/arduino/IPAddress.d b/arduino/hardware/arduino/avr/cores/arduino/IPAddress.d deleted file mode 100644 index 4612d98..0000000 --- a/arduino/hardware/arduino/avr/cores/arduino/IPAddress.d +++ /dev/null @@ -1,14 +0,0 @@ -IPAddress.o IPAddress.d : \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8/hardware/arduino/avr/cores/arduino/Arduino.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8/hardware/arduino/avr/cores/arduino/binary.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8/hardware/arduino/avr/cores/arduino/WCharacter.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8/hardware/arduino/avr/cores/arduino/WString.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8/hardware/arduino/avr/cores/arduino/HardwareSerial.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8/hardware/arduino/avr/cores/arduino/Stream.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8/hardware/arduino/avr/cores/arduino/Print.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8/hardware/arduino/avr/cores/arduino/Printable.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8/hardware/arduino/avr/cores/arduino/USBAPI.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8/hardware/arduino/avr/cores/arduino/Arduino.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8/hardware/arduino/avr/variants/standard/pins_arduino.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8/hardware/arduino/avr/cores/arduino/IPAddress.h diff --git a/arduino/hardware/arduino/avr/cores/arduino/IPAddress.lst b/arduino/hardware/arduino/avr/cores/arduino/IPAddress.lst deleted file mode 100644 index 8a1e288..0000000 --- a/arduino/hardware/arduino/avr/cores/arduino/IPAddress.lst +++ /dev/null @@ -1,568 +0,0 @@ - 1 .file "IPAddress.cpp" - 2 __SP_H__ = 0x3e - 3 __SP_L__ = 0x3d - 4 __SREG__ = 0x3f - 5 __tmp_reg__ = 0 - 6 __zero_reg__ = 1 - 9 .text - 10 .Ltext0: - 137 .global _ZNK9IPAddress7printToER5Print - 139 _ZNK9IPAddress7printToER5Print: - 140 .stabd 46,0,0 - 1:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** /* - 2:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** IPAddress.cpp - Base class that provides IPAddress - 3:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** Copyright (c) 2011 Adrian McEwen. All right reserved. - 4:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** - 5:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** This library is free software; you can redistribute it and/or - 6:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** modify it under the terms of the GNU Lesser General Public - 7:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** License as published by the Free Software Foundation; either - 8:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** version 2.1 of the License, or (at your option) any later version. - 9:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** - 10:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** This library is distributed in the hope that it will be useful, - 11:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** but WITHOUT ANY WARRANTY; without even the implied warranty of - 12:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - 13:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** Lesser General Public License for more details. - 14:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** - 15:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** You should have received a copy of the GNU Lesser General Public - 16:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** License along with this library; if not, write to the Free Software - 17:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - 18:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** */ - 19:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** - 20:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** #include - 21:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** #include - 22:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** - 23:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** IPAddress::IPAddress() - 24:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** { - 25:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** _address.dword = 0; - 26:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** } - 27:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** - 28:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** IPAddress::IPAddress(uint8_t first_octet, uint8_t second_octet, uint8_t third_octet, uint8_t fourth - 29:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** { - 30:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** _address.bytes[0] = first_octet; - 31:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** _address.bytes[1] = second_octet; - 32:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** _address.bytes[2] = third_octet; - 33:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** _address.bytes[3] = fourth_octet; - 34:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** } - 35:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** - 36:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** IPAddress::IPAddress(uint32_t address) - 37:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** { - 38:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** _address.dword = address; - 39:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** } - 40:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** - 41:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** IPAddress::IPAddress(const uint8_t *address) - 42:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** { - 43:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** memcpy(_address.bytes, address, sizeof(_address.bytes)); - 44:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** } - 45:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** - 46:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** bool IPAddress::fromString(const char *address) - 47:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** { - 48:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** uint16_t acc = 0; // Accumulator - 49:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** uint8_t dots = 0; - 50:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** - 51:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** while (*address) - 52:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** { - 53:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** char c = *address++; - 54:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** if (c >= '0' && c <= '9') - 55:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** { - 56:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** acc = acc * 10 + (c - '0'); - 57:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** if (acc > 255) { - 58:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** // Value out of [0..255] range - 59:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** return false; - 60:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** } - 61:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** } - 62:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** else if (c == '.') - 63:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** { - 64:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** if (dots == 3) { - 65:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** // Too much dots (there must be 3 dots) - 66:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** return false; - 67:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** } - 68:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** _address.bytes[dots++] = acc; - 69:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** acc = 0; - 70:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** } - 71:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** else - 72:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** { - 73:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** // Invalid char - 74:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** return false; - 75:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** } - 76:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** } - 77:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** - 78:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** if (dots != 3) { - 79:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** // Too few dots (there must be 3 dots) - 80:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** return false; - 81:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** } - 82:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** _address.bytes[3] = acc; - 83:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** return true; - 84:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** } - 85:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** - 86:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** IPAddress& IPAddress::operator=(const uint8_t *address) - 87:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** { - 88:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** memcpy(_address.bytes, address, sizeof(_address.bytes)); - 89:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** return *this; - 90:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** } - 91:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** - 92:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** IPAddress& IPAddress::operator=(uint32_t address) - 93:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** { - 94:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** _address.dword = address; - 95:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** return *this; - 96:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** } - 97:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** - 98:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** bool IPAddress::operator==(const uint8_t* addr) const - 99:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** { - 100:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** return memcmp(addr, _address.bytes, sizeof(_address.bytes)) == 0; - 101:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** } - 102:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** - 103:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** size_t IPAddress::printTo(Print& p) const - 104:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** { - 142 .LM0: - 143 .LFBB1: - 144 0000 8F92 push r8 - 145 0002 9F92 push r9 - 146 0004 AF92 push r10 - 147 0006 BF92 push r11 - 148 0008 CF92 push r12 - 149 000a DF92 push r13 - 150 000c EF92 push r14 - 151 000e FF92 push r15 - 152 0010 0F93 push r16 - 153 0012 1F93 push r17 - 154 0014 CF93 push r28 - 155 0016 DF93 push r29 - 156 /* prologue: function */ - 157 /* frame size = 0 */ - 158 /* stack size = 12 */ - 159 .L__stack_usage = 12 - 160 0018 7C01 movw r14,r24 - 161 001a 8B01 movw r16,r22 - 162 001c 4C01 movw r8,r24 - 163 001e 82E0 ldi r24,2 - 164 0020 880E add r8,r24 - 165 0022 911C adc r9,__zero_reg__ - 166 0024 5701 movw r10,r14 - 167 0026 E5E0 ldi r30,5 - 168 0028 AE0E add r10,r30 - 169 002a B11C adc r11,__zero_reg__ - 105:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** size_t n = 0; - 171 .LM1: - 172 002c C0E0 ldi r28,0 - 173 002e D0E0 ldi r29,0 - 174 .L2: - 175 .LBB27: - 106:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** for (int i =0; i < 3; i++) - 107:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** { - 108:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** n += p.print(_address.bytes[i], DEC); - 177 .LM2: - 178 0030 F401 movw r30,r8 - 179 0032 6191 ld r22,Z+ - 180 0034 4F01 movw r8,r30 - 181 0036 4AE0 ldi r20,lo8(10) - 182 0038 50E0 ldi r21,0 - 183 003a C801 movw r24,r16 - 184 003c 0E94 0000 call _ZN5Print5printEhi - 185 0040 6C01 movw r12,r24 - 109:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** n += p.print('.'); - 187 .LM3: - 188 0042 6EE2 ldi r22,lo8(46) - 189 0044 C801 movw r24,r16 - 190 0046 0E94 0000 call _ZN5Print5printEc - 191 004a 8C0D add r24,r12 - 192 004c 9D1D adc r25,r13 - 193 004e C80F add r28,r24 - 194 0050 D91F adc r29,r25 - 106:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** for (int i =0; i < 3; i++) - 196 .LM4: - 197 0052 8A14 cp r8,r10 - 198 0054 9B04 cpc r9,r11 - 199 0056 01F4 brne .L2 - 200 .LBE27: - 110:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** } - 111:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** n += p.print(_address.bytes[3], DEC); - 202 .LM5: - 203 0058 4AE0 ldi r20,lo8(10) - 204 005a 50E0 ldi r21,0 - 205 005c F701 movw r30,r14 - 206 005e 6581 ldd r22,Z+5 - 207 0060 C801 movw r24,r16 - 208 0062 0E94 0000 call _ZN5Print5printEhi - 112:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** return n; - 113:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** } - 210 .LM6: - 211 0066 8C0F add r24,r28 - 212 0068 9D1F adc r25,r29 - 213 /* epilogue start */ - 214 006a DF91 pop r29 - 215 006c CF91 pop r28 - 216 006e 1F91 pop r17 - 217 0070 0F91 pop r16 - 218 0072 FF90 pop r15 - 219 0074 EF90 pop r14 - 220 0076 DF90 pop r13 - 221 0078 CF90 pop r12 - 222 007a BF90 pop r11 - 223 007c AF90 pop r10 - 224 007e 9F90 pop r9 - 225 0080 8F90 pop r8 - 226 0082 0895 ret - 228 .Lscope1: - 230 .stabd 78,0,0 - 233 .global _ZN9IPAddressC2Ev - 235 _ZN9IPAddressC2Ev: - 236 .stabd 46,0,0 - 23:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** { - 238 .LM7: - 239 .LFBB2: - 240 /* prologue: function */ - 241 /* frame size = 0 */ - 242 /* stack size = 0 */ - 243 .L__stack_usage = 0 - 244 .LBB28: - 23:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** { - 246 .LM8: - 247 0084 20E0 ldi r18,lo8(_ZTV9IPAddress+4) - 248 0086 30E0 ldi r19,hi8(_ZTV9IPAddress+4) - 249 0088 FC01 movw r30,r24 - 250 008a 3183 std Z+1,r19 - 251 008c 2083 st Z,r18 - 25:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** } - 253 .LM9: - 254 008e 1282 std Z+2,__zero_reg__ - 255 0090 1382 std Z+3,__zero_reg__ - 256 0092 1482 std Z+4,__zero_reg__ - 257 0094 1582 std Z+5,__zero_reg__ - 258 0096 0895 ret - 259 .LBE28: - 261 .Lscope2: - 263 .stabd 78,0,0 - 264 .global _ZN9IPAddressC1Ev - 265 .set _ZN9IPAddressC1Ev,_ZN9IPAddressC2Ev - 272 .global _ZN9IPAddressC2Ehhhh - 274 _ZN9IPAddressC2Ehhhh: - 275 .stabd 46,0,0 - 28:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** { - 277 .LM10: - 278 .LFBB3: - 279 0098 0F93 push r16 - 280 /* prologue: function */ - 281 /* frame size = 0 */ - 282 /* stack size = 1 */ - 283 .L__stack_usage = 1 - 284 009a FC01 movw r30,r24 - 285 .LBB29: - 28:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** { - 287 .LM11: - 288 009c 80E0 ldi r24,lo8(_ZTV9IPAddress+4) - 289 009e 90E0 ldi r25,hi8(_ZTV9IPAddress+4) - 290 00a0 9183 std Z+1,r25 - 291 00a2 8083 st Z,r24 - 30:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** _address.bytes[1] = second_octet; - 293 .LM12: - 294 00a4 6283 std Z+2,r22 - 31:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** _address.bytes[2] = third_octet; - 296 .LM13: - 297 00a6 4383 std Z+3,r20 - 32:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** _address.bytes[3] = fourth_octet; - 299 .LM14: - 300 00a8 2483 std Z+4,r18 - 33:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** } - 302 .LM15: - 303 00aa 0583 std Z+5,r16 - 304 /* epilogue start */ - 305 .LBE29: - 34:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** - 307 .LM16: - 308 00ac 0F91 pop r16 - 309 00ae 0895 ret - 311 .Lscope3: - 313 .stabd 78,0,0 - 314 .global _ZN9IPAddressC1Ehhhh - 315 .set _ZN9IPAddressC1Ehhhh,_ZN9IPAddressC2Ehhhh - 319 .global _ZN9IPAddressC2Em - 321 _ZN9IPAddressC2Em: - 322 .stabd 46,0,0 - 36:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** { - 324 .LM17: - 325 .LFBB4: - 326 /* prologue: function */ - 327 /* frame size = 0 */ - 328 /* stack size = 0 */ - 329 .L__stack_usage = 0 - 330 .LBB30: - 36:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** { - 332 .LM18: - 333 00b0 20E0 ldi r18,lo8(_ZTV9IPAddress+4) - 334 00b2 30E0 ldi r19,hi8(_ZTV9IPAddress+4) - 335 00b4 FC01 movw r30,r24 - 336 00b6 3183 std Z+1,r19 - 337 00b8 2083 st Z,r18 - 38:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** } - 339 .LM19: - 340 00ba 4283 std Z+2,r20 - 341 00bc 5383 std Z+3,r21 - 342 00be 6483 std Z+4,r22 - 343 00c0 7583 std Z+5,r23 - 344 00c2 0895 ret - 345 .LBE30: - 347 .Lscope4: - 349 .stabd 78,0,0 - 350 .global _ZN9IPAddressC1Em - 351 .set _ZN9IPAddressC1Em,_ZN9IPAddressC2Em - 355 .global _ZN9IPAddressC2EPKh - 357 _ZN9IPAddressC2EPKh: - 358 .stabd 46,0,0 - 41:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** { - 360 .LM20: - 361 .LFBB5: - 362 /* prologue: function */ - 363 /* frame size = 0 */ - 364 /* stack size = 0 */ - 365 .L__stack_usage = 0 - 366 .LBB31: - 41:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** { - 368 .LM21: - 369 00c4 DC01 movw r26,r24 - 370 00c6 80E0 ldi r24,lo8(_ZTV9IPAddress+4) - 371 00c8 90E0 ldi r25,hi8(_ZTV9IPAddress+4) - 372 00ca 8D93 st X+,r24 - 373 00cc 9D93 st X+,r25 - 43:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** } - 375 .LM22: - 376 00ce 84E0 ldi r24,lo8(4) - 377 00d0 FB01 movw r30,r22 - 378 0: - 379 00d2 0190 ld r0,Z+ - 380 00d4 0D92 st X+,r0 - 381 00d6 8A95 dec r24 - 382 00d8 01F4 brne 0b - 383 00da 0895 ret - 384 .LBE31: - 386 .Lscope5: - 388 .stabd 78,0,0 - 389 .global _ZN9IPAddressC1EPKh - 390 .set _ZN9IPAddressC1EPKh,_ZN9IPAddressC2EPKh - 394 .global _ZN9IPAddress10fromStringEPKc - 396 _ZN9IPAddress10fromStringEPKc: - 397 .stabd 46,0,0 - 47:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** uint16_t acc = 0; // Accumulator - 399 .LM23: - 400 .LFBB6: - 401 /* prologue: function */ - 402 /* frame size = 0 */ - 403 /* stack size = 0 */ - 404 .L__stack_usage = 0 - 405 00dc DC01 movw r26,r24 - 49:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** - 407 .LM24: - 408 00de 90E0 ldi r25,0 - 48:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** uint8_t dots = 0; - 410 .LM25: - 411 00e0 20E0 ldi r18,0 - 412 00e2 30E0 ldi r19,0 - 413 00e4 8AE0 ldi r24,lo8(10) - 414 .L10: - 51:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** { - 416 .LM26: - 417 00e6 FB01 movw r30,r22 - 418 00e8 4191 ld r20,Z+ - 419 00ea BF01 movw r22,r30 - 420 00ec 4423 tst r20 - 421 00ee 01F0 breq .L11 - 422 .LBB32: - 54:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** { - 424 .LM27: - 425 00f0 50ED ldi r21,lo8(-48) - 426 00f2 540F add r21,r20 - 427 00f4 5A30 cpi r21,lo8(10) - 428 00f6 00F4 brsh .L12 - 429 00f8 829F mul r24,r18 - 430 00fa F001 movw r30,r0 - 431 00fc 839F mul r24,r19 - 432 00fe F00D add r31,r0 - 433 0100 1124 clr __zero_reg__ - 434 0102 9F01 movw r18,r30 - 435 0104 2053 subi r18,48 - 436 0106 3109 sbc r19,__zero_reg__ - 56:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** if (acc > 255) { - 438 .LM28: - 439 0108 240F add r18,r20 - 440 010a 311D adc r19,__zero_reg__ - 57:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** // Value out of [0..255] range - 442 .LM29: - 443 010c 2F3F cpi r18,-1 - 444 010e 3105 cpc r19,__zero_reg__ - 445 0110 01F0 breq .L10 - 446 0112 00F0 brlo .L10 - 447 0114 00C0 rjmp .L18 - 448 .L12: - 62:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** { - 450 .LM30: - 451 0116 4E32 cpi r20,lo8(46) - 452 0118 01F4 brne .L18 - 64:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** // Too much dots (there must be 3 dots) - 454 .LM31: - 455 011a 9330 cpi r25,lo8(3) - 456 011c 01F0 breq .L18 - 68:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** acc = 0; - 458 .LM32: - 459 011e FD01 movw r30,r26 - 460 0120 E90F add r30,r25 - 461 0122 F11D adc r31,__zero_reg__ - 462 0124 2283 std Z+2,r18 - 463 0126 9F5F subi r25,lo8(-(1)) - 69:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** } - 465 .LM33: - 466 0128 20E0 ldi r18,0 - 467 012a 30E0 ldi r19,0 - 468 012c 00C0 rjmp .L10 - 469 .L11: - 470 .LBE32: - 78:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** // Too few dots (there must be 3 dots) - 472 .LM34: - 473 012e 9330 cpi r25,lo8(3) - 474 0130 01F4 brne .L18 - 82:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** return true; - 476 .LM35: - 477 0132 1596 adiw r26,5 - 478 0134 2C93 st X,r18 - 83:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** } - 480 .LM36: - 481 0136 81E0 ldi r24,lo8(1) - 482 0138 0895 ret - 483 .L18: - 484 .LBB33: - 59:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** } - 486 .LM37: - 487 013a 80E0 ldi r24,0 - 488 .LBE33: - 84:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** - 490 .LM38: - 491 013c 0895 ret - 496 .Lscope6: - 498 .stabd 78,0,0 - 502 .global _ZN9IPAddressaSEPKh - 504 _ZN9IPAddressaSEPKh: - 505 .stabd 46,0,0 - 87:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** memcpy(_address.bytes, address, sizeof(_address.bytes)); - 507 .LM39: - 508 .LFBB7: - 509 /* prologue: function */ - 510 /* frame size = 0 */ - 511 /* stack size = 0 */ - 512 .L__stack_usage = 0 - 88:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** return *this; - 514 .LM40: - 515 013e DC01 movw r26,r24 - 516 0140 1296 adiw r26,2 - 517 0142 24E0 ldi r18,lo8(4) - 518 0144 FB01 movw r30,r22 - 519 0: - 520 0146 0190 ld r0,Z+ - 521 0148 0D92 st X+,r0 - 522 014a 2A95 dec r18 - 523 014c 01F4 brne 0b - 90:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** - 525 .LM41: - 526 014e 0895 ret - 528 .Lscope7: - 530 .stabd 78,0,0 - 534 .global _ZN9IPAddressaSEm - 536 _ZN9IPAddressaSEm: - 537 .stabd 46,0,0 - 93:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** _address.dword = address; - 539 .LM42: - 540 .LFBB8: - 541 /* prologue: function */ - 542 /* frame size = 0 */ - 543 /* stack size = 0 */ - 544 .L__stack_usage = 0 - 94:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** return *this; - 546 .LM43: - 547 0150 FC01 movw r30,r24 - 548 0152 4283 std Z+2,r20 - 549 0154 5383 std Z+3,r21 - 550 0156 6483 std Z+4,r22 - 551 0158 7583 std Z+5,r23 - 96:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** - 553 .LM44: - 554 015a 0895 ret - 556 .Lscope8: - 558 .stabd 78,0,0 - 562 .global _ZNK9IPAddresseqEPKh - 564 _ZNK9IPAddresseqEPKh: - 565 .stabd 46,0,0 - 99:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** return memcmp(addr, _address.bytes, sizeof(_address.bytes)) == 0; - 567 .LM45: - 568 .LFBB9: - 569 /* prologue: function */ - 570 /* frame size = 0 */ - 571 /* stack size = 0 */ - 572 .L__stack_usage = 0 - 573 015c 9B01 movw r18,r22 - 100:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** } - 575 .LM46: - 576 015e BC01 movw r22,r24 - 577 0160 6E5F subi r22,-2 - 578 0162 7F4F sbci r23,-1 - 579 0164 44E0 ldi r20,lo8(4) - 580 0166 50E0 ldi r21,0 - 581 0168 C901 movw r24,r18 - 582 016a 0E94 0000 call memcmp - 583 016e 21E0 ldi r18,lo8(1) - 584 0170 892B or r24,r25 - 585 0172 01F0 breq .L22 - 586 0174 20E0 ldi r18,0 - 587 .L22: - 101:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/IPAddress.cpp **** - 589 .LM47: - 590 0176 822F mov r24,r18 - 591 0178 0895 ret - 593 .Lscope9: - 595 .stabd 78,0,0 - 596 .section .text.startup,"ax",@progbits - 599 _GLOBAL__sub_I__ZN9IPAddressC2Ev: - 600 .stabd 46,0,0 - 602 .LM48: - 603 .LFBB10: - 604 /* prologue: function */ - 605 /* frame size = 0 */ - 606 /* stack size = 0 */ - 607 .L__stack_usage = 0 - 608 0000 0895 ret - 610 .Lscope10: - 612 .stabd 78,0,0 - 613 .weak _ZTV9IPAddress - 614 .section .rodata._ZTV9IPAddress,"aG",@progbits,_ZTV9IPAddress,comdat - 617 _ZTV9IPAddress: - 618 0000 0000 .word 0 - 619 0002 0000 .word 0 - 620 0004 0000 .word gs(_ZNK9IPAddress7printToER5Print) - 635 .text - 637 .Letext0: - 638 .ident "GCC: (GNU) 5.4.0" - 639 .global __do_copy_data -DEFINED SYMBOLS - *ABS*:0000000000000000 IPAddress.cpp - /tmp/ccXbDAfz.s:2 *ABS*:000000000000003e __SP_H__ - /tmp/ccXbDAfz.s:3 *ABS*:000000000000003d __SP_L__ - /tmp/ccXbDAfz.s:4 *ABS*:000000000000003f __SREG__ - /tmp/ccXbDAfz.s:5 *ABS*:0000000000000000 __tmp_reg__ - /tmp/ccXbDAfz.s:6 *ABS*:0000000000000001 __zero_reg__ - /tmp/ccXbDAfz.s:139 .text:0000000000000000 _ZNK9IPAddress7printToER5Print - /tmp/ccXbDAfz.s:235 .text:0000000000000084 _ZN9IPAddressC2Ev - /tmp/ccXbDAfz.s:617 .rodata._ZTV9IPAddress:0000000000000000 _ZTV9IPAddress - /tmp/ccXbDAfz.s:235 .text:0000000000000084 _ZN9IPAddressC1Ev - /tmp/ccXbDAfz.s:274 .text:0000000000000098 _ZN9IPAddressC2Ehhhh - /tmp/ccXbDAfz.s:274 .text:0000000000000098 _ZN9IPAddressC1Ehhhh - /tmp/ccXbDAfz.s:321 .text:00000000000000b0 _ZN9IPAddressC2Em - /tmp/ccXbDAfz.s:321 .text:00000000000000b0 _ZN9IPAddressC1Em - /tmp/ccXbDAfz.s:357 .text:00000000000000c4 _ZN9IPAddressC2EPKh - /tmp/ccXbDAfz.s:357 .text:00000000000000c4 _ZN9IPAddressC1EPKh - /tmp/ccXbDAfz.s:396 .text:00000000000000dc _ZN9IPAddress10fromStringEPKc - /tmp/ccXbDAfz.s:504 .text:000000000000013e _ZN9IPAddressaSEPKh - /tmp/ccXbDAfz.s:536 .text:0000000000000150 _ZN9IPAddressaSEm - /tmp/ccXbDAfz.s:564 .text:000000000000015c _ZNK9IPAddresseqEPKh - /tmp/ccXbDAfz.s:599 .text.startup:0000000000000000 _GLOBAL__sub_I__ZN9IPAddressC2Ev - -UNDEFINED SYMBOLS -_ZN5Print5printEhi -_ZN5Print5printEc -memcmp -__do_copy_data diff --git a/arduino/hardware/arduino/avr/cores/arduino/IPAddress.o b/arduino/hardware/arduino/avr/cores/arduino/IPAddress.o deleted file mode 100644 index 53d93e12d3a9d1deb69bf801fd70c0bb8b486f37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25580 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 YnFqXsj^9x#+#odsO>R zL^m!*(TDJS5Ix4Nu|@wX=x6z96#XVXUsLp7TJ#eTq@QnC^eu}%w&o{ zxogp{So9Yx`b~>2pEZ4-v*;s>{&9=`1&jV5%+~rJS@f$G{Yw`8WsClIi+is0^O{Qy1OX2A-{cRZ0QS=hi zPci)&rf)F+uQUAvOn-^#zh?R`nEnr@Kl}m0|1YN3nf`gEcbNVzraMf3gy|vE-_7(x zrmr#m8%*yq{rgPsG5vL>Z!!HQ)3=#^=1G$Kkm+ZcmK?alwB*2u=?l#B#(Cm@gXy0t z5q*y7*O@+G`j43wTYega^|eU+^981V7gZ>VzQpu8^FNjl&ywjEnQk%t3e%UE{xzo2 z2|s^=;`|y@QS?=d{+dPqi$y=O=(jBTam)c4=K~h~?H0Xe(d!nSSai#xuUa&zI8b^< z`{U)|Veep^-tAo8?4O)OTSwF5bnAF_v^AeDXZ>`mHybQRlj()oFsW==%~z-QC*x^v zFwZ#R&BkWq!gw@UKB!gPr(0V`z`5U>Wq4b?)7e&kI!m+uTRB}0`~9TbpB|r##_3=) z>UN>XBB^XI&XqRe^^2G0Nu@Pox>ahG>guNjM#Gm_e93yNR4K_%t5ml550<0xVl?TV z_PXQIe8CdR>le=hyt00g|BpzKar$6wJe?e_4W>&tjrpqU7jKta4XBW@Sgo~u>kw`e z5%qi{G-uSt`o(!=miETmkltLsNOm^YTNlbnz1C>a|Mk`e+)!(cj(dl~gx}~vD`FM- zzvW~;I-I0~HH{mW$RRc5xDq_lD#hA$&ZmOOBe3hsiMT#y1no-zw4!_u1cBp30np+s zzCMyef(oBsnl}WwOw38OYMYZ;fv6ZOD&UM&T-}dWDNBoxZ5bS5cxkRpssb)CI9g!_ zXhphDb3Ib7HR>bSnff&ZD^41%IDtzH3qqc;)H4eOiG2WE&R_HupCA)1%?XKJ*l?9I zYKAFCdB+8TU)0EftTi1&Q33g9sem*@6s?d4pqxims3|E0GhPp*sWg?~+N0@gktJ<{ zq$TU|>5c%!r?oX5kfYo|(o+)LQiI`HSOPuFfJ{`T!o&)UjI4p2AU6q8H~D2CK}y=~ zVnO%Xtk;(jogm2+LrmBVV7DWCYyfW0F(H2x6IYzf^1L|YjV&(Yv_+c2l8{Onk1w{Y z0-%j|8FSpq``~6JyPe)*EvI1F_?rE}T$XZW<8W4v+jF8kuN$Tur*XegDzhW6or#9g zE@QXVG!ZdsW{f#4OjJ0*SYMYr*Tn>h6<4b6^!v+WPT`6P4r?F)R=XDtZqG59Xap0> zg7e~%Y2USYys%_EIk8?;T*e%?35tnf-XEce*vf@skQ3#3-A^oIYt^{lD3#ff)2?cw z5y%%y&8mq=QL5P7CMp3f*gD_DstFQzIh~FMl2Gf>eVVblQn;!rM)>rq@4<9B<{niw z^IgF51Jl>(;$Yl8SpeYSiCQEfCbXKW!uLb2qR}AjkE#9KWH}y#d0mj;cjCh|h?%yb zRH(tncpBH%BU%GykKs#tTxRCDrn%uckwMJnF>Mqt%>s8aoU?_hSkMhn9ZHMMzOjk zib-2$WL<36;`~-|fg>|BxGs*UDa)j*X%%D9K5Y&# zM6g?Ew2nrHNBZ{$eor4P(#aql=x5kLG_Zl_c8AM(295wgyTNEU)Z)wllSOJ%4J~+l z8P_=Po8m88UoFdtJTfC{vl}Zd;h}lu<>hpt_At=3)|#cq>Q}v`8H`S~a719Uo2c&a z)rsTj|0XekG6gf&Ts;E3b^%cP| zl=Wh{O6--Sy??#mN_I#T?YBKqq@rexEmmJEWP5>DBr`_szW9A?d?T#H?dzRxffj&v zwXk?|Y9Od#=ZG4J5j!bHR5%zhqVizg?Oq%A=0_3%71RP>#mxY7k>*uT^Zo0qy6223 zj5Hfl5YD1t#!XKd&FG7zt=|eCqO4IMDkGbbNIb%p)$O8Liy z@++SG8D~!Z${~#7f>rhp3+4MmG2_h157%+jR}zdfiB<9kh4O2j{TV0AADH@{pfnZx z-yLvQ6HF6U?RH_T@pd&|;7?b1S;z+@H z^-7NwOo8Mxg`+3Dnsg<-FwadfkM`h%ivmTbAFgI73NnG{=}qE6Gm8bTrm9}2ttSZ{ zEZ&fg%PNbtp_nU!AZlu43~yNGF=|B^#WlY_o%C@qElWXf-1)%>8d?(s*II7?<$yxQ zY9QNUZy@+MPE?iSH4M)!>^3i(eUQ*JqCt2pG05sXl_|kZQ;jjAEF}!&x-}kjGbb^N z@N-vD2}ip|NMo6gS6iAF0$E4eY_4eU^k0wPP#N^Y!p0HOQ@ zK$e=7+#qoQLb-|lSz1s^3g#sVNqRyvMkAnInt|0dnyTZSU0b9yC=g57ic<^ zlN}cF9_=;kmoXfp#*!v?cy`tq_jo-5E?hRG;ijan0k43Zs^OEnM4$rP=hM&e;>&-7~WSL+-+ z&7QvO%cRg+tv=4vVVp_23J0w|&a;`jY=PrN29vE(o(pmw1~{J$>ozvJ8PG86p~Wg8 z**%=#9sU)Z3Ix@NmA?&}F<`#v%@*^IkMx4gbA4Pg3|S`*e6B=zfmdrXS(~d$p+lBK zMd_jxoeYXKY3SBWjTW7b@2I5`olQGKRz{m1b#Bendej7gDksFx)5R4V(JMjTB2#TT zoI$NtJk1QLeNT4OdUkv9hb2JJ*3PKW15tq-i!)=_5F8WBGFMrommiL2m1F_J!Oda1 zxQr7pHQsTU>|iQW^l-;%vQ#m(z)_|-0<_B-8o9lHbWi-Yn6leuv))5xomaCwaV521 zT_q-tE!6gYUy15>=L>bVhI4GkrdTc5b;P}tt8!OWV-M29(M0L$7ci}za2}AeTuafn|i_;Rm;dip?8)-kjj1q>fu%A<#PKGOvE= z?S?&Kf+*o}W575AxE{!6HYZN@TuP!hqCAOeH}ei62~hG5$8(Ea&oB0i&{EjP%Zc;?-GtGVb-& zL_#m4Y%RSSs49|^aH6}a?vNDw%%)R7W>hhic#xHK)=WQ`=SfvnI8} z3gK4z)02m^x@A-<*A2gDLipfL}IE%uFwGdAp?^d)uG5DsO8tp?H&ZThB;5F!S%TAc;n1zH6N8 z>YoZXbh*eW$;!G1hAm;*3(*r!Lk5i>X>c~nuJu* zH6pBvvw6?s;+0WRwB&_Vz6;(RsV;t$=%qXloS-VQ1W}8;JZvJTGO*Bp4+_|#2=PHq zz$tVUpjZ=kq=i(Gxh0^AyvNFSiDhaFsiLb%&?)r79z|k>SNNnTJ_% zQCJn{{2-5;$eB|}6*&OPcZstuIaTy(C#Z^hW|hZH!scru-KciNr(oh$9_WP_*6w1?%~jU~PUai=#U6L`u@uo%LWN&8;X zgk}}CKzjx6yyQ*_Z}8YrcqE={MT-Yrx#5B@V_*lF>5upTjV`av3OG=~6$d6&QcbkM zwiuC3%nY7DBV3o*$JS=C-Rdqz$LSOSk_$CZR&M@a-;Q&p8>2D4*kRfbE!+yCE`!_f zATQAp6hbbOiQ0iniB6C)63hI?9NINA5Velu-}lq>r3_Rrz%y=YRoo{aZ{il#)zP6^ zQzqDk6sW-?5HY4tTs5*vC9RJDAD11xc3gIn*M3LG!Ua*TqJHyf)h=gqUZphPg1 zs#o-zXPlGWQTalNo8axy3Tf_wO8dHGKvZGJ&~Z`KI!z~(!U-D@mrQqM&JaUK`B1H} zG?I$GMvB$hk#%N-Y^YFw9AVM=gpE{dqXLkG?%Gg6qJoHzAeesFl;C2Yc*tH6#7n3~rM%*1W0B8_AnN?yA=S&YWwdir7qEuMmh_~w3AUDq8AuEEPFkJ}OjivNG!^ z8mmbe15MV(Qi+|Nu$o-C05N2H|7NEf$JXi;J7YTfYQ6fsT$S+^zo^sM?q3|mrRc`3 z&MuR2bYr)3i^(MFT)ECvIqF>9VXA>=drUQ>oe~q3XeVZ(8to)Z)S{g-6ZL4P!bBt5 zsWO3HH6oHyv{PpSUjl#r%9ZW4bI;$ryS`T4tZd@@=Kc?V312;YEPC{|-G0{jD;Z+|Cfe6?HsJbL@1pgyL51-^VcUO#yBb`zx0!I%G-X5`Pa z5&k%Z^>a4DADPH~N4wkY>~~-2cCiZsu_wgs_VY|EaD#i69y0xjbT(DLMA5eb_lz=c z&7v0&sh>xi^M}Wa-T^)rGxA) zGT|Lb@+bL6TVC;cXx}}p`1p?ofG*;D25tD08i<_y6!Fnt5YX7fNqi5Wgw}&1gFpKa zZQvi#m++5%KHA1VeB#e-@N>;q$M0Gu$cX;_2>opt{i9`F!ULjps{Zd4`TH|AAGLoA z{@HjhK(72X2jSFs^l4}9`>saOpW_++EJuVtE5SN`5TB&4jrTS1UBff|qw)S9zgbHk diff --git a/arduino/hardware/arduino/avr/cores/arduino/Print.d b/arduino/hardware/arduino/avr/cores/arduino/Print.d deleted file mode 100644 index ea85376..0000000 --- a/arduino/hardware/arduino/avr/cores/arduino/Print.d +++ /dev/null @@ -1,12 +0,0 @@ -Print.o Print.d : \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Arduino.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/binary.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WCharacter.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Printable.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/USBAPI.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8/hardware/arduino/avr/variants/standard/pins_arduino.h diff --git a/arduino/hardware/arduino/avr/cores/arduino/Print.lst b/arduino/hardware/arduino/avr/cores/arduino/Print.lst deleted file mode 100644 index 2b9fa9e..0000000 --- a/arduino/hardware/arduino/avr/cores/arduino/Print.lst +++ /dev/null @@ -1,1795 +0,0 @@ - 1 .file "Print.cpp" - 2 __SP_H__ = 0x3e - 3 __SP_L__ = 0x3d - 4 __SREG__ = 0x3f - 5 __tmp_reg__ = 0 - 6 __zero_reg__ = 1 - 9 .text - 10 .Ltext0: - 132 .section .text._ZN5Print17availableForWriteEv,"axG",@progbits,_ZN5Print17availableForWriteEv,comda - 135 .weak _ZN5Print17availableForWriteEv - 137 _ZN5Print17availableForWriteEv: - 138 .stabd 46,0,0 - 140 .Ltext1: - 1:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** /* - 2:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** Print.h - Base class that provides print() and println() - 3:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** Copyright (c) 2008 David A. Mellis. All right reserved. - 4:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** - 5:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** This library is free software; you can redistribute it and/or - 6:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** modify it under the terms of the GNU Lesser General Public - 7:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** License as published by the Free Software Foundation; either - 8:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** version 2.1 of the License, or (at your option) any later version. - 9:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** - 10:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** This library is distributed in the hope that it will be useful, - 11:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** but WITHOUT ANY WARRANTY; without even the implied warranty of - 12:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - 13:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** Lesser General Public License for more details. - 14:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** - 15:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** You should have received a copy of the GNU Lesser General Public - 16:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** License along with this library; if not, write to the Free Software - 17:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - 18:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** */ - 19:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** - 20:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** #ifndef Print_h - 21:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** #define Print_h - 22:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** - 23:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** #include - 24:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** #include // for size_t - 25:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** - 26:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** #include "WString.h" - 27:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** #include "Printable.h" - 28:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** - 29:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** #define DEC 10 - 30:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** #define HEX 16 - 31:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** #define OCT 8 - 32:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** #ifdef BIN // Prevent warnings if BIN is previously defined in "iotnx4.h" or similar - 33:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** #undef BIN - 34:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** #endif - 35:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** #define BIN 2 - 36:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** - 37:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** class Print - 38:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** { - 39:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** private: - 40:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** int write_error; - 41:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t printNumber(unsigned long, uint8_t); - 42:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t printFloat(double, uint8_t); - 43:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** protected: - 44:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** void setWriteError(int err = 1) { write_error = err; } - 45:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** public: - 46:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** Print() : write_error(0) {} - 47:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** - 48:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** int getWriteError() { return write_error; } - 49:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** void clearWriteError() { setWriteError(0); } - 50:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** - 51:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** virtual size_t write(uint8_t) = 0; - 52:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t write(const char *str) { - 53:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** if (str == NULL) return 0; - 54:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** return write((const uint8_t *)str, strlen(str)); - 55:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** } - 56:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** virtual size_t write(const uint8_t *buffer, size_t size); - 57:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t write(const char *buffer, size_t size) { - 58:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** return write((const uint8_t *)buffer, size); - 59:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** } - 60:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** - 61:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** // default to zero, meaning "a single write may block" - 62:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** // should be overriden by subclasses with buffering - 63:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** virtual int availableForWrite() { return 0; } - 142 .LM0: - 143 .LFBB1: - 144 /* prologue: function */ - 145 /* frame size = 0 */ - 146 /* stack size = 0 */ - 147 .L__stack_usage = 0 - 149 .LM1: - 150 0000 80E0 ldi r24,0 - 151 0002 90E0 ldi r25,0 - 152 0004 0895 ret - 154 .Lscope1: - 156 .stabd 78,0,0 - 157 .section .text._ZN5Print5flushEv,"axG",@progbits,_ZN5Print5flushEv,comdat - 160 .weak _ZN5Print5flushEv - 162 _ZN5Print5flushEv: - 163 .stabd 46,0,0 - 64:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** - 65:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t print(const __FlashStringHelper *); - 66:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t print(const String &); - 67:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t print(const char[]); - 68:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t print(char); - 69:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t print(unsigned char, int = DEC); - 70:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t print(int, int = DEC); - 71:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t print(unsigned int, int = DEC); - 72:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t print(long, int = DEC); - 73:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t print(unsigned long, int = DEC); - 74:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t print(double, int = 2); - 75:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t print(const Printable&); - 76:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** - 77:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t println(const __FlashStringHelper *); - 78:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t println(const String &s); - 79:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t println(const char[]); - 80:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t println(char); - 81:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t println(unsigned char, int = DEC); - 82:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t println(int, int = DEC); - 83:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t println(unsigned int, int = DEC); - 84:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t println(long, int = DEC); - 85:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t println(unsigned long, int = DEC); - 86:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t println(double, int = 2); - 87:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t println(const Printable&); - 88:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** size_t println(void); - 89:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** - 90:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** virtual void flush() { /* Empty implementation for backward compatibility */ } - 165 .LM2: - 166 .LFBB2: - 167 /* prologue: function */ - 168 /* frame size = 0 */ - 169 /* stack size = 0 */ - 170 .L__stack_usage = 0 - 171 0000 0895 ret - 173 .Lscope2: - 175 .stabd 78,0,0 - 176 .text - 180 .global _ZN5Print5writeEPKhj - 182 _ZN5Print5writeEPKhj: - 183 .stabd 46,0,0 - 185 .Ltext2: - 1:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** /* - 2:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** Print.cpp - Base class that provides print() and println() - 3:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** Copyright (c) 2008 David A. Mellis. All right reserved. - 4:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 5:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** This library is free software; you can redistribute it and/or - 6:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** modify it under the terms of the GNU Lesser General Public - 7:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** License as published by the Free Software Foundation; either - 8:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** version 2.1 of the License, or (at your option) any later version. - 9:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 10:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** This library is distributed in the hope that it will be useful, - 11:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** but WITHOUT ANY WARRANTY; without even the implied warranty of - 12:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - 13:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** Lesser General Public License for more details. - 14:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 15:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** You should have received a copy of the GNU Lesser General Public - 16:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** License along with this library; if not, write to the Free Software - 17:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - 18:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 19:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** Modified 23 November 2006 by David A. Mellis - 20:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** Modified 03 August 2015 by Chuck Todd - 21:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** */ - 22:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 23:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** #include - 24:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** #include - 25:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** #include - 26:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** #include - 27:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** #include "Arduino.h" - 28:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 29:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** #include "Print.h" - 30:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 31:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** // Public Methods ////////////////////////////////////////////////////////////// - 32:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 33:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** /* default implementation: may be overridden */ - 34:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** size_t Print::write(const uint8_t *buffer, size_t size) - 35:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** { - 187 .LM3: - 188 .LFBB3: - 190 .LM4: - 191 0000 CF92 push r12 - 192 0002 DF92 push r13 - 193 0004 EF92 push r14 - 194 0006 FF92 push r15 - 195 0008 0F93 push r16 - 196 000a 1F93 push r17 - 197 000c CF93 push r28 - 198 000e DF93 push r29 - 199 /* prologue: function */ - 200 /* frame size = 0 */ - 201 /* stack size = 8 */ - 202 .L__stack_usage = 8 - 203 0010 6C01 movw r12,r24 - 204 0012 7A01 movw r14,r20 - 205 0014 8B01 movw r16,r22 - 36:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** size_t n = 0; - 207 .LM5: - 208 0016 C0E0 ldi r28,0 - 209 0018 D0E0 ldi r29,0 - 210 .L5: - 37:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** while (size--) { - 212 .LM6: - 213 001a CE15 cp r28,r14 - 214 001c DF05 cpc r29,r15 - 215 001e 01F0 breq .L4 - 38:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** if (write(*buffer++)) n++; - 217 .LM7: - 218 0020 D801 movw r26,r16 - 219 0022 6D91 ld r22,X+ - 220 0024 8D01 movw r16,r26 - 221 0026 D601 movw r26,r12 - 222 0028 ED91 ld r30,X+ - 223 002a FC91 ld r31,X - 224 002c 0190 ld __tmp_reg__,Z+ - 225 002e F081 ld r31,Z - 226 0030 E02D mov r30,__tmp_reg__ - 227 0032 C601 movw r24,r12 - 228 0034 0995 icall - 229 0036 892B or r24,r25 - 230 0038 01F0 breq .L6 - 232 .LM8: - 233 003a 2196 adiw r28,1 - 37:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** while (size--) { - 235 .LM9: - 236 003c 00C0 rjmp .L5 - 237 .L6: - 238 003e 7E01 movw r14,r28 - 239 .L4: - 39:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** else break; - 40:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** } - 41:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** return n; - 42:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** } - 241 .LM10: - 242 0040 C701 movw r24,r14 - 243 /* epilogue start */ - 244 0042 DF91 pop r29 - 245 0044 CF91 pop r28 - 246 0046 1F91 pop r17 - 247 0048 0F91 pop r16 - 248 004a FF90 pop r15 - 249 004c EF90 pop r14 - 250 004e DF90 pop r13 - 251 0050 CF90 pop r12 - 252 0052 0895 ret - 254 .Lscope3: - 256 .stabd 78,0,0 - 257 .section .text._ZN5Print5writeEPKc,"axG",@progbits,_ZN5Print5writeEPKc,comdat - 261 .weak _ZN5Print5writeEPKc - 263 _ZN5Print5writeEPKc: - 264 .stabd 46,0,0 - 266 .Ltext3: - 52:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** if (str == NULL) return 0; - 268 .LM11: - 269 .LFBB4: - 270 /* prologue: function */ - 271 /* frame size = 0 */ - 272 /* stack size = 0 */ - 273 .L__stack_usage = 0 - 53:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** return write((const uint8_t *)str, strlen(str)); - 275 .LM12: - 276 0000 6115 cp r22,__zero_reg__ - 277 0002 7105 cpc r23,__zero_reg__ - 278 0004 01F0 breq .L9 - 54:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** } - 280 .LM13: - 281 0006 FB01 movw r30,r22 - 282 0: - 283 0008 0190 ld __tmp_reg__,Z+ - 284 000a 0020 tst __tmp_reg__ - 285 000c 01F4 brne 0b - 286 000e 3197 sbiw r30,1 - 287 0010 AF01 movw r20,r30 - 288 0012 461B sub r20,r22 - 289 0014 570B sbc r21,r23 - 290 0016 DC01 movw r26,r24 - 291 0018 ED91 ld r30,X+ - 292 001a FC91 ld r31,X - 293 001c 0280 ldd __tmp_reg__,Z+2 - 294 001e F381 ldd r31,Z+3 - 295 0020 E02D mov r30,__tmp_reg__ - 296 0022 0994 ijmp - 297 .L9: - 55:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** virtual size_t write(const uint8_t *buffer, size_t size); - 299 .LM14: - 300 0024 80E0 ldi r24,0 - 301 0026 90E0 ldi r25,0 - 302 0028 0895 ret - 304 .Lscope4: - 306 .stabd 78,0,0 - 307 .text - 311 .global _ZN5Print5printEPK19__FlashStringHelper - 313 _ZN5Print5printEPK19__FlashStringHelper: - 314 .stabd 46,0,0 - 316 .Ltext4: - 43:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 44:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** size_t Print::print(const __FlashStringHelper *ifsh) - 45:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** { - 318 .LM15: - 319 .LFBB5: - 320 0054 EF92 push r14 - 321 0056 FF92 push r15 - 322 0058 0F93 push r16 - 323 005a 1F93 push r17 - 324 005c CF93 push r28 - 325 005e DF93 push r29 - 326 /* prologue: function */ - 327 /* frame size = 0 */ - 328 /* stack size = 6 */ - 329 .L__stack_usage = 6 - 330 0060 8C01 movw r16,r24 - 331 0062 7B01 movw r14,r22 - 46:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** PGM_P p = reinterpret_cast(ifsh); - 47:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** size_t n = 0; - 333 .LM16: - 334 0064 C0E0 ldi r28,0 - 335 0066 D0E0 ldi r29,0 - 336 .L12: - 337 .LBB56: - 338 .LBB57: - 48:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** while (1) { - 49:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** unsigned char c = pgm_read_byte(p++); - 340 .LM17: - 341 0068 F701 movw r30,r14 - 342 006a EC0F add r30,r28 - 343 006c FD1F adc r31,r29 - 344 /* #APP */ - 345 ; 49 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino - 346 006e 6491 lpm r22, Z - 347 - 348 ; 0 "" 2 - 349 /* #NOAPP */ - 350 .LBE57: - 50:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** if (c == 0) break; - 352 .LM18: - 353 0070 6623 tst r22 - 354 0072 01F0 breq .L11 - 51:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** if (write(c)) n++; - 356 .LM19: - 357 0074 D801 movw r26,r16 - 358 0076 ED91 ld r30,X+ - 359 0078 FC91 ld r31,X - 360 007a 0190 ld __tmp_reg__,Z+ - 361 007c F081 ld r31,Z - 362 007e E02D mov r30,__tmp_reg__ - 363 0080 C801 movw r24,r16 - 364 0082 0995 icall - 365 0084 892B or r24,r25 - 366 0086 01F0 breq .L11 - 368 .LM20: - 369 0088 2196 adiw r28,1 - 370 .LBE56: - 48:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** while (1) { - 372 .LM21: - 373 008a 00C0 rjmp .L12 - 374 .L11: - 52:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** else break; - 53:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** } - 54:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** return n; - 55:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** } - 376 .LM22: - 377 008c CE01 movw r24,r28 - 378 /* epilogue start */ - 379 008e DF91 pop r29 - 380 0090 CF91 pop r28 - 381 0092 1F91 pop r17 - 382 0094 0F91 pop r16 - 383 0096 FF90 pop r15 - 384 0098 EF90 pop r14 - 385 009a 0895 ret - 390 .Lscope5: - 392 .stabd 78,0,0 - 396 .global _ZN5Print5printERK6String - 398 _ZN5Print5printERK6String: - 399 .stabd 46,0,0 - 56:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 57:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** size_t Print::print(const String &s) - 58:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** { - 401 .LM23: - 402 .LFBB6: - 403 /* prologue: function */ - 404 /* frame size = 0 */ - 405 /* stack size = 0 */ - 406 .L__stack_usage = 0 - 407 .LBB60: - 408 .LBB61: - 410 .Ltext5: - 58:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h **** } - 412 .LM24: - 413 009c DB01 movw r26,r22 - 414 009e 1496 adiw r26,4 - 415 00a0 4D91 ld r20,X+ - 416 00a2 5C91 ld r21,X - 417 00a4 1597 sbiw r26,4+1 - 418 00a6 6D91 ld r22,X+ - 419 00a8 7C91 ld r23,X - 420 00aa DC01 movw r26,r24 - 421 00ac ED91 ld r30,X+ - 422 00ae FC91 ld r31,X - 423 00b0 0280 ldd __tmp_reg__,Z+2 - 424 00b2 F381 ldd r31,Z+3 - 425 00b4 E02D mov r30,__tmp_reg__ - 426 00b6 0994 ijmp - 427 .LBE61: - 428 .LBE60: - 430 .Lscope6: - 432 .stabd 78,0,0 - 436 .global _ZN5Print5printEPKc - 438 _ZN5Print5printEPKc: - 439 .stabd 46,0,0 - 441 .Ltext6: - 59:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** return write(s.c_str(), s.length()); - 60:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** } - 61:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 62:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** size_t Print::print(const char str[]) - 63:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** { - 443 .LM25: - 444 .LFBB7: - 445 /* prologue: function */ - 446 /* frame size = 0 */ - 447 /* stack size = 0 */ - 448 .L__stack_usage = 0 - 64:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** return write(str); - 450 .LM26: - 451 00b8 0C94 0000 jmp _ZN5Print5writeEPKc - 453 .Lscope7: - 455 .stabd 78,0,0 - 459 .global _ZN5Print5printEc - 461 _ZN5Print5printEc: - 462 .stabd 46,0,0 - 65:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** } - 66:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 67:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** size_t Print::print(char c) - 68:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** { - 464 .LM27: - 465 .LFBB8: - 466 /* prologue: function */ - 467 /* frame size = 0 */ - 468 /* stack size = 0 */ - 469 .L__stack_usage = 0 - 69:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** return write(c); - 471 .LM28: - 472 00bc DC01 movw r26,r24 - 473 00be ED91 ld r30,X+ - 474 00c0 FC91 ld r31,X - 475 00c2 0190 ld __tmp_reg__,Z+ - 476 00c4 F081 ld r31,Z - 477 00c6 E02D mov r30,__tmp_reg__ - 478 00c8 0994 ijmp - 480 .Lscope8: - 482 .stabd 78,0,0 - 486 .global _ZN5Print5printERK9Printable - 488 _ZN5Print5printERK9Printable: - 489 .stabd 46,0,0 - 70:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** } - 71:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 72:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** size_t Print::print(unsigned char b, int base) - 73:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** { - 74:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** return print((unsigned long) b, base); - 75:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** } - 76:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 77:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** size_t Print::print(int n, int base) - 78:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** { - 79:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** return print((long) n, base); - 80:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** } - 81:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 82:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** size_t Print::print(unsigned int n, int base) - 83:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** { - 84:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** return print((unsigned long) n, base); - 85:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** } - 86:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 87:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** size_t Print::print(long n, int base) - 88:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** { - 89:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** if (base == 0) { - 90:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** return write(n); - 91:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** } else if (base == 10) { - 92:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** if (n < 0) { - 93:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** int t = print('-'); - 94:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** n = -n; - 95:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** return printNumber(n, 10) + t; - 96:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** } - 97:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** return printNumber(n, 10); - 98:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** } else { - 99:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** return printNumber(n, base); - 100:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** } - 101:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** } - 102:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 103:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** size_t Print::print(unsigned long n, int base) - 104:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** { - 105:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** if (base == 0) return write(n); - 106:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** else return printNumber(n, base); - 107:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** } - 108:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 109:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** size_t Print::print(double n, int digits) - 110:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** { - 111:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** return printFloat(n, digits); - 112:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** } - 113:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 114:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** size_t Print::println(const __FlashStringHelper *ifsh) - 115:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** { - 116:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** size_t n = print(ifsh); - 117:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** n += println(); - 118:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** return n; - 119:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** } - 120:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 121:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** size_t Print::print(const Printable& x) - 122:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** { - 491 .LM29: - 492 .LFBB9: - 493 /* prologue: function */ - 494 /* frame size = 0 */ - 495 /* stack size = 0 */ - 496 .L__stack_usage = 0 - 497 00ca DB01 movw r26,r22 - 123:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** return x.printTo(*this); - 499 .LM30: - 500 00cc ED91 ld r30,X+ - 501 00ce FC91 ld r31,X - 502 00d0 1197 sbiw r26,1 - 503 00d2 0190 ld __tmp_reg__,Z+ - 504 00d4 F081 ld r31,Z - 505 00d6 E02D mov r30,__tmp_reg__ - 506 00d8 BC01 movw r22,r24 - 507 00da CD01 movw r24,r26 - 508 00dc 0994 ijmp - 510 .Lscope9: - 512 .stabd 78,0,0 - 513 .section .rodata.str1.1,"aMS",@progbits,1 - 514 .LC0: - 515 0000 0D0A 00 .string "\r\n" - 516 .text - 519 .global _ZN5Print7printlnEv - 521 _ZN5Print7printlnEv: - 522 .stabd 46,0,0 - 124:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** } - 125:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 126:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** size_t Print::println(void) - 127:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** { - 524 .LM31: - 525 .LFBB10: - 526 /* prologue: function */ - 527 /* frame size = 0 */ - 528 /* stack size = 0 */ - 529 .L__stack_usage = 0 - 128:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** return write("\r\n"); - 531 .LM32: - 532 00de 60E0 ldi r22,lo8(.LC0) - 533 00e0 70E0 ldi r23,hi8(.LC0) - 534 00e2 0C94 0000 jmp _ZN5Print5writeEPKc - 536 .Lscope10: - 538 .stabd 78,0,0 - 542 .global _ZN5Print7printlnEPK19__FlashStringHelper - 544 _ZN5Print7printlnEPK19__FlashStringHelper: - 545 .stabd 46,0,0 - 115:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** size_t n = print(ifsh); - 547 .LM33: - 548 .LFBB11: - 549 00e6 0F93 push r16 - 550 00e8 1F93 push r17 - 551 00ea CF93 push r28 - 552 00ec DF93 push r29 - 553 /* prologue: function */ - 554 /* frame size = 0 */ - 555 /* stack size = 4 */ - 556 .L__stack_usage = 4 - 557 00ee EC01 movw r28,r24 - 116:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** n += println(); - 559 .LM34: - 560 00f0 0E94 0000 call _ZN5Print5printEPK19__FlashStringHelper - 561 00f4 8C01 movw r16,r24 - 117:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** return n; - 563 .LM35: - 564 00f6 CE01 movw r24,r28 - 565 00f8 0E94 0000 call _ZN5Print7printlnEv - 119:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 567 .LM36: - 568 00fc 800F add r24,r16 - 569 00fe 911F adc r25,r17 - 570 /* epilogue start */ - 571 0100 DF91 pop r29 - 572 0102 CF91 pop r28 - 573 0104 1F91 pop r17 - 574 0106 0F91 pop r16 - 575 0108 0895 ret - 577 .Lscope11: - 579 .stabd 78,0,0 - 583 .global _ZN5Print7printlnERK6String - 585 _ZN5Print7printlnERK6String: - 586 .stabd 46,0,0 - 129:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** } - 130:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 131:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** size_t Print::println(const String &s) - 132:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** { - 588 .LM37: - 589 .LFBB12: - 590 010a 0F93 push r16 - 591 010c 1F93 push r17 - 592 010e CF93 push r28 - 593 0110 DF93 push r29 - 594 /* prologue: function */ - 595 /* frame size = 0 */ - 596 /* stack size = 4 */ - 597 .L__stack_usage = 4 - 598 0112 EC01 movw r28,r24 - 133:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** size_t n = print(s); - 600 .LM38: - 601 0114 0E94 0000 call _ZN5Print5printERK6String - 602 0118 8C01 movw r16,r24 - 134:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** n += println(); - 604 .LM39: - 605 011a CE01 movw r24,r28 - 606 011c 0E94 0000 call _ZN5Print7printlnEv - 135:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** return n; - 136:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** } - 608 .LM40: - 609 0120 800F add r24,r16 - 610 0122 911F adc r25,r17 - 611 /* epilogue start */ - 612 0124 DF91 pop r29 - 613 0126 CF91 pop r28 - 614 0128 1F91 pop r17 - 615 012a 0F91 pop r16 - 616 012c 0895 ret - 618 .Lscope12: - 620 .stabd 78,0,0 - 624 .global _ZN5Print7printlnEPKc - 626 _ZN5Print7printlnEPKc: - 627 .stabd 46,0,0 - 137:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 138:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** size_t Print::println(const char c[]) - 139:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** { - 629 .LM41: - 630 .LFBB13: - 631 012e 0F93 push r16 - 632 0130 1F93 push r17 - 633 0132 CF93 push r28 - 634 0134 DF93 push r29 - 635 /* prologue: function */ - 636 /* frame size = 0 */ - 637 /* stack size = 4 */ - 638 .L__stack_usage = 4 - 639 0136 EC01 movw r28,r24 - 640 .LBB62: - 641 .LBB63: - 64:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** } - 643 .LM42: - 644 0138 0E94 0000 call _ZN5Print5writeEPKc - 645 013c 8C01 movw r16,r24 - 646 .LBE63: - 647 .LBE62: - 140:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** size_t n = print(c); - 141:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** n += println(); - 649 .LM43: - 650 013e CE01 movw r24,r28 - 651 0140 0E94 0000 call _ZN5Print7printlnEv - 142:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** return n; - 143:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** } - 653 .LM44: - 654 0144 800F add r24,r16 - 655 0146 911F adc r25,r17 - 656 /* epilogue start */ - 657 0148 DF91 pop r29 - 658 014a CF91 pop r28 - 659 014c 1F91 pop r17 - 660 014e 0F91 pop r16 - 661 0150 0895 ret - 663 .Lscope13: - 665 .stabd 78,0,0 - 669 .global _ZN5Print7printlnEc - 671 _ZN5Print7printlnEc: - 672 .stabd 46,0,0 - 144:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 145:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** size_t Print::println(char c) - 146:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** { - 674 .LM45: - 675 .LFBB14: - 676 0152 0F93 push r16 - 677 0154 1F93 push r17 - 678 0156 CF93 push r28 - 679 0158 DF93 push r29 - 680 /* prologue: function */ - 681 /* frame size = 0 */ - 682 /* stack size = 4 */ - 683 .L__stack_usage = 4 - 684 015a EC01 movw r28,r24 - 147:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** size_t n = print(c); - 686 .LM46: - 687 015c 0E94 0000 call _ZN5Print5printEc - 688 0160 8C01 movw r16,r24 - 148:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** n += println(); - 690 .LM47: - 691 0162 CE01 movw r24,r28 - 692 0164 0E94 0000 call _ZN5Print7printlnEv - 149:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** return n; - 150:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** } - 694 .LM48: - 695 0168 800F add r24,r16 - 696 016a 911F adc r25,r17 - 697 /* epilogue start */ - 698 016c DF91 pop r29 - 699 016e CF91 pop r28 - 700 0170 1F91 pop r17 - 701 0172 0F91 pop r16 - 702 0174 0895 ret - 704 .Lscope14: - 706 .stabd 78,0,0 - 710 .global _ZN5Print7printlnERK9Printable - 712 _ZN5Print7printlnERK9Printable: - 713 .stabd 46,0,0 - 151:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 152:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** size_t Print::println(unsigned char b, int base) - 153:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** { - 154:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** size_t n = print(b, base); - 155:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** n += println(); - 156:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** return n; - 157:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** } - 158:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 159:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** size_t Print::println(int num, int base) - 160:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** { - 161:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** size_t n = print(num, base); - 162:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** n += println(); - 163:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** return n; - 164:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** } - 165:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 166:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** size_t Print::println(unsigned int num, int base) - 167:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** { - 168:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** size_t n = print(num, base); - 169:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** n += println(); - 170:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** return n; - 171:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** } - 172:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 173:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** size_t Print::println(long num, int base) - 174:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** { - 175:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** size_t n = print(num, base); - 176:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** n += println(); - 177:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** return n; - 178:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** } - 179:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 180:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** size_t Print::println(unsigned long num, int base) - 181:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** { - 182:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** size_t n = print(num, base); - 183:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** n += println(); - 184:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** return n; - 185:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** } - 186:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 187:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** size_t Print::println(double num, int digits) - 188:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** { - 189:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** size_t n = print(num, digits); - 190:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** n += println(); - 191:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** return n; - 192:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** } - 193:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 194:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** size_t Print::println(const Printable& x) - 195:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** { - 715 .LM49: - 716 .LFBB15: - 717 0176 0F93 push r16 - 718 0178 1F93 push r17 - 719 017a CF93 push r28 - 720 017c DF93 push r29 - 721 /* prologue: function */ - 722 /* frame size = 0 */ - 723 /* stack size = 4 */ - 724 .L__stack_usage = 4 - 725 017e EC01 movw r28,r24 - 196:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** size_t n = print(x); - 727 .LM50: - 728 0180 0E94 0000 call _ZN5Print5printERK9Printable - 729 0184 8C01 movw r16,r24 - 197:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** n += println(); - 731 .LM51: - 732 0186 CE01 movw r24,r28 - 733 0188 0E94 0000 call _ZN5Print7printlnEv - 198:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** return n; - 199:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** } - 735 .LM52: - 736 018c 800F add r24,r16 - 737 018e 911F adc r25,r17 - 738 /* epilogue start */ - 739 0190 DF91 pop r29 - 740 0192 CF91 pop r28 - 741 0194 1F91 pop r17 - 742 0196 0F91 pop r16 - 743 0198 0895 ret - 745 .Lscope15: - 747 .stabd 78,0,0 - 751 .global _ZN5Print11printNumberEmh - 753 _ZN5Print11printNumberEmh: - 754 .stabd 46,0,0 - 200:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 201:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** // Private Methods ///////////////////////////////////////////////////////////// - 202:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 203:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** size_t Print::printNumber(unsigned long n, uint8_t base) - 204:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** { - 756 .LM53: - 757 .LFBB16: - 758 019a 8F92 push r8 - 759 019c 9F92 push r9 - 760 019e AF92 push r10 - 761 01a0 BF92 push r11 - 762 01a2 EF92 push r14 - 763 01a4 FF92 push r15 - 764 01a6 0F93 push r16 - 765 01a8 1F93 push r17 - 766 01aa CF93 push r28 - 767 01ac DF93 push r29 - 768 01ae CDB7 in r28,__SP_L__ - 769 01b0 DEB7 in r29,__SP_H__ - 770 01b2 A197 sbiw r28,33 - 771 01b4 0FB6 in __tmp_reg__,__SREG__ - 772 01b6 F894 cli - 773 01b8 DEBF out __SP_H__,r29 - 774 01ba 0FBE out __SREG__,__tmp_reg__ - 775 01bc CDBF out __SP_L__,r28 - 776 /* prologue: function */ - 777 /* frame size = 33 */ - 778 /* stack size = 43 */ - 779 .L__stack_usage = 43 - 780 01be 7C01 movw r14,r24 - 781 01c0 FA01 movw r30,r20 - 782 01c2 CB01 movw r24,r22 - 205:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** char buf[8 * sizeof(long) + 1]; // Assumes 8-bit chars plus zero byte. - 206:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** char *str = &buf[sizeof(buf) - 1]; - 207:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 208:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** *str = '\0'; - 784 .LM54: - 785 01c4 19A2 std Y+33,__zero_reg__ - 209:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 210:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** // prevent crash if called with base == 1 - 211:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** if (base < 2) base = 10; - 787 .LM55: - 788 01c6 2230 cpi r18,lo8(2) - 789 01c8 00F4 brsh .L30 - 790 01ca 2AE0 ldi r18,lo8(10) - 791 .L30: - 792 01cc 8E01 movw r16,r28 - 793 01ce 0F5D subi r16,-33 - 794 01d0 1F4F sbci r17,-1 - 795 .LBB64: - 212:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 213:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** do { - 214:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** char c = n % base; - 797 .LM56: - 798 01d2 822E mov r8,r18 - 799 01d4 912C mov r9,__zero_reg__ - 800 01d6 A12C mov r10,__zero_reg__ - 801 01d8 B12C mov r11,__zero_reg__ - 802 .L33: - 803 01da BF01 movw r22,r30 - 804 01dc A501 movw r20,r10 - 805 01de 9401 movw r18,r8 - 806 01e0 0E94 0000 call __udivmodsi4 - 215:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** n /= base; - 808 .LM57: - 809 01e4 F901 movw r30,r18 - 810 01e6 CA01 movw r24,r20 - 216:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 217:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** *--str = c < 10 ? c + '0' : c + 'A' - 10; - 812 .LM58: - 813 01e8 0150 subi r16,1 - 814 01ea 1109 sbc r17,__zero_reg__ - 815 01ec 6A30 cpi r22,lo8(10) - 816 01ee 00F4 brsh .L31 - 818 .LM59: - 819 01f0 605D subi r22,lo8(-(48)) - 820 01f2 00C0 rjmp .L32 - 821 .L31: - 823 .LM60: - 824 01f4 695C subi r22,lo8(-(55)) - 825 .L32: - 827 .LM61: - 828 01f6 D801 movw r26,r16 - 829 01f8 6C93 st X,r22 - 830 .LBE64: - 213:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** char c = n % base; - 832 .LM62: - 833 01fa 232B or r18,r19 - 834 01fc 242B or r18,r20 - 835 01fe 252B or r18,r21 - 836 0200 01F4 brne .L33 - 218:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** } while(n); - 219:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 220:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** return write(str); - 838 .LM63: - 839 0202 B801 movw r22,r16 - 840 0204 C701 movw r24,r14 - 841 0206 0E94 0000 call _ZN5Print5writeEPKc - 842 /* epilogue start */ - 221:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** } - 844 .LM64: - 845 020a A196 adiw r28,33 - 846 020c 0FB6 in __tmp_reg__,__SREG__ - 847 020e F894 cli - 848 0210 DEBF out __SP_H__,r29 - 849 0212 0FBE out __SREG__,__tmp_reg__ - 850 0214 CDBF out __SP_L__,r28 - 851 0216 DF91 pop r29 - 852 0218 CF91 pop r28 - 853 021a 1F91 pop r17 - 854 021c 0F91 pop r16 - 855 021e FF90 pop r15 - 856 0220 EF90 pop r14 - 857 0222 BF90 pop r11 - 858 0224 AF90 pop r10 - 859 0226 9F90 pop r9 - 860 0228 8F90 pop r8 - 861 022a 0895 ret - 867 .Lscope16: - 869 .stabd 78,0,0 - 873 .global _ZN5Print5printEmi - 875 _ZN5Print5printEmi: - 876 .stabd 46,0,0 - 104:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** if (base == 0) return write(n); - 878 .LM65: - 879 .LFBB17: - 880 /* prologue: function */ - 881 /* frame size = 0 */ - 882 /* stack size = 0 */ - 883 .L__stack_usage = 0 - 105:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** else return printNumber(n, base); - 885 .LM66: - 886 022c 2115 cp r18,__zero_reg__ - 887 022e 3105 cpc r19,__zero_reg__ - 888 0230 01F4 brne .L36 - 889 .LBB67: - 890 .LBB68: - 891 0232 DC01 movw r26,r24 - 892 0234 ED91 ld r30,X+ - 893 0236 FC91 ld r31,X - 894 0238 0190 ld __tmp_reg__,Z+ - 895 023a F081 ld r31,Z - 896 023c E02D mov r30,__tmp_reg__ - 897 023e 642F mov r22,r20 - 898 0240 0994 ijmp - 899 .L36: - 900 .LBE68: - 901 .LBE67: - 106:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** } - 903 .LM67: - 904 0242 0C94 0000 jmp _ZN5Print11printNumberEmh - 906 .Lscope17: - 908 .stabd 78,0,0 - 913 .global _ZN5Print5printEhi - 915 _ZN5Print5printEhi: - 916 .stabd 46,0,0 - 73:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** return print((unsigned long) b, base); - 918 .LM68: - 919 .LFBB18: - 920 /* prologue: function */ - 921 /* frame size = 0 */ - 922 /* stack size = 0 */ - 923 .L__stack_usage = 0 - 924 0246 9A01 movw r18,r20 - 74:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** } - 926 .LM69: - 927 0248 462F mov r20,r22 - 928 024a 50E0 ldi r21,0 - 929 024c 60E0 ldi r22,0 - 930 024e 70E0 ldi r23,0 - 931 0250 0C94 0000 jmp _ZN5Print5printEmi - 933 .Lscope18: - 935 .stabd 78,0,0 - 940 .global _ZN5Print7printlnEhi - 942 _ZN5Print7printlnEhi: - 943 .stabd 46,0,0 - 153:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** size_t n = print(b, base); - 945 .LM70: - 946 .LFBB19: - 947 0254 0F93 push r16 - 948 0256 1F93 push r17 - 949 0258 CF93 push r28 - 950 025a DF93 push r29 - 951 /* prologue: function */ - 952 /* frame size = 0 */ - 953 /* stack size = 4 */ - 954 .L__stack_usage = 4 - 955 025c EC01 movw r28,r24 - 154:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** n += println(); - 957 .LM71: - 958 025e 0E94 0000 call _ZN5Print5printEhi - 959 0262 8C01 movw r16,r24 - 155:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** return n; - 961 .LM72: - 962 0264 CE01 movw r24,r28 - 963 0266 0E94 0000 call _ZN5Print7printlnEv - 157:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 965 .LM73: - 966 026a 800F add r24,r16 - 967 026c 911F adc r25,r17 - 968 /* epilogue start */ - 969 026e DF91 pop r29 - 970 0270 CF91 pop r28 - 971 0272 1F91 pop r17 - 972 0274 0F91 pop r16 - 973 0276 0895 ret - 975 .Lscope19: - 977 .stabd 78,0,0 - 982 .global _ZN5Print5printEji - 984 _ZN5Print5printEji: - 985 .stabd 46,0,0 - 83:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** return print((unsigned long) n, base); - 987 .LM74: - 988 .LFBB20: - 989 /* prologue: function */ - 990 /* frame size = 0 */ - 991 /* stack size = 0 */ - 992 .L__stack_usage = 0 - 993 0278 9A01 movw r18,r20 - 84:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** } - 995 .LM75: - 996 027a AB01 movw r20,r22 - 997 027c 60E0 ldi r22,0 - 998 027e 70E0 ldi r23,0 - 999 0280 0C94 0000 jmp _ZN5Print5printEmi - 1001 .Lscope20: - 1003 .stabd 78,0,0 - 1008 .global _ZN5Print7printlnEji - 1010 _ZN5Print7printlnEji: - 1011 .stabd 46,0,0 - 167:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** size_t n = print(num, base); - 1013 .LM76: - 1014 .LFBB21: - 1015 0284 0F93 push r16 - 1016 0286 1F93 push r17 - 1017 0288 CF93 push r28 - 1018 028a DF93 push r29 - 1019 /* prologue: function */ - 1020 /* frame size = 0 */ - 1021 /* stack size = 4 */ - 1022 .L__stack_usage = 4 - 1023 028c EC01 movw r28,r24 - 168:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** n += println(); - 1025 .LM77: - 1026 028e 0E94 0000 call _ZN5Print5printEji - 1027 0292 8C01 movw r16,r24 - 169:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** return n; - 1029 .LM78: - 1030 0294 CE01 movw r24,r28 - 1031 0296 0E94 0000 call _ZN5Print7printlnEv - 171:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 1033 .LM79: - 1034 029a 800F add r24,r16 - 1035 029c 911F adc r25,r17 - 1036 /* epilogue start */ - 1037 029e DF91 pop r29 - 1038 02a0 CF91 pop r28 - 1039 02a2 1F91 pop r17 - 1040 02a4 0F91 pop r16 - 1041 02a6 0895 ret - 1043 .Lscope21: - 1045 .stabd 78,0,0 - 1050 .global _ZN5Print7printlnEmi - 1052 _ZN5Print7printlnEmi: - 1053 .stabd 46,0,0 - 181:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** size_t n = print(num, base); - 1055 .LM80: - 1056 .LFBB22: - 1057 02a8 0F93 push r16 - 1058 02aa 1F93 push r17 - 1059 02ac CF93 push r28 - 1060 02ae DF93 push r29 - 1061 /* prologue: function */ - 1062 /* frame size = 0 */ - 1063 /* stack size = 4 */ - 1064 .L__stack_usage = 4 - 1065 02b0 EC01 movw r28,r24 - 182:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** n += println(); - 1067 .LM81: - 1068 02b2 0E94 0000 call _ZN5Print5printEmi - 1069 02b6 8C01 movw r16,r24 - 183:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** return n; - 1071 .LM82: - 1072 02b8 CE01 movw r24,r28 - 1073 02ba 0E94 0000 call _ZN5Print7printlnEv - 185:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 1075 .LM83: - 1076 02be 800F add r24,r16 - 1077 02c0 911F adc r25,r17 - 1078 /* epilogue start */ - 1079 02c2 DF91 pop r29 - 1080 02c4 CF91 pop r28 - 1081 02c6 1F91 pop r17 - 1082 02c8 0F91 pop r16 - 1083 02ca 0895 ret - 1085 .Lscope22: - 1087 .stabd 78,0,0 - 1092 .global _ZN5Print5printEli - 1094 _ZN5Print5printEli: - 1095 .stabd 46,0,0 - 88:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** if (base == 0) { - 1097 .LM84: - 1098 .LFBB23: - 1099 02cc CF92 push r12 - 1100 02ce DF92 push r13 - 1101 02d0 EF92 push r14 - 1102 02d2 FF92 push r15 - 1103 02d4 0F93 push r16 - 1104 02d6 1F93 push r17 - 1105 02d8 CF93 push r28 - 1106 02da DF93 push r29 - 1107 /* prologue: function */ - 1108 /* frame size = 0 */ - 1109 /* stack size = 8 */ - 1110 .L__stack_usage = 8 - 1111 .LBB80: - 89:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** return write(n); - 1113 .LM85: - 1114 02dc 2115 cp r18,__zero_reg__ - 1115 02de 3105 cpc r19,__zero_reg__ - 1116 02e0 01F4 brne .L43 - 90:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** } else if (base == 10) { - 1118 .LM86: - 1119 02e2 DC01 movw r26,r24 - 1120 02e4 ED91 ld r30,X+ - 1121 02e6 FC91 ld r31,X - 1122 02e8 0190 ld __tmp_reg__,Z+ - 1123 02ea F081 ld r31,Z - 1124 02ec E02D mov r30,__tmp_reg__ - 1125 02ee 642F mov r22,r20 - 1126 /* epilogue start */ - 1127 .LBE80: - 101:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 1129 .LM87: - 1130 02f0 DF91 pop r29 - 1131 02f2 CF91 pop r28 - 1132 02f4 1F91 pop r17 - 1133 02f6 0F91 pop r16 - 1134 02f8 FF90 pop r15 - 1135 02fa EF90 pop r14 - 1136 02fc DF90 pop r13 - 1137 02fe CF90 pop r12 - 1138 .LBB87: - 90:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** } else if (base == 10) { - 1140 .LM88: - 1141 0300 0994 ijmp - 1142 .L43: - 1143 .LBB81: - 91:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** if (n < 0) { - 1145 .LM89: - 1146 0302 2A30 cpi r18,10 - 1147 0304 3105 cpc r19,__zero_reg__ - 1148 0306 01F4 brne .L44 - 1149 .LBB82: - 1150 .LBB83: - 92:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** int t = print('-'); - 1152 .LM90: - 1153 0308 77FF sbrs r23,7 - 1154 030a 00C0 rjmp .L45 - 1155 030c 6A01 movw r12,r20 - 1156 030e 7B01 movw r14,r22 - 1157 0310 EC01 movw r28,r24 - 1158 .LBE83: - 1159 .LBE82: - 1160 .LBE81: - 1161 .LBE87: - 1162 .LBB88: - 1163 .LBB89: - 93:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** n = -n; - 1165 .LM91: - 1166 0312 6DE2 ldi r22,lo8(45) - 1167 0314 0E94 0000 call _ZN5Print5printEc - 1168 0318 8C01 movw r16,r24 - 95:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** } - 1170 .LM92: - 1171 031a 4427 clr r20 - 1172 031c 5527 clr r21 - 1173 031e BA01 movw r22,r20 - 1174 0320 4C19 sub r20,r12 - 1175 0322 5D09 sbc r21,r13 - 1176 0324 6E09 sbc r22,r14 - 1177 0326 7F09 sbc r23,r15 - 1178 0328 2AE0 ldi r18,lo8(10) - 1179 032a CE01 movw r24,r28 - 1180 032c 0E94 0000 call _ZN5Print11printNumberEmh - 1181 0330 800F add r24,r16 - 1182 0332 911F adc r25,r17 - 1183 /* epilogue start */ - 1184 .LBE89: - 1185 .LBE88: - 101:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 1187 .LM93: - 1188 0334 DF91 pop r29 - 1189 0336 CF91 pop r28 - 1190 0338 1F91 pop r17 - 1191 033a 0F91 pop r16 - 1192 033c FF90 pop r15 - 1193 033e EF90 pop r14 - 1194 0340 DF90 pop r13 - 1195 0342 CF90 pop r12 - 1196 0344 0895 ret - 1197 .L45: - 1198 .LBB90: - 1199 .LBB85: - 1200 .LBB84: - 97:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** } else { - 1202 .LM94: - 1203 0346 2AE0 ldi r18,lo8(10) - 1204 .L44: - 1205 /* epilogue start */ - 1206 .LBE84: - 1207 .LBE85: - 1208 .LBE90: - 101:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 1210 .LM95: - 1211 0348 DF91 pop r29 - 1212 034a CF91 pop r28 - 1213 034c 1F91 pop r17 - 1214 034e 0F91 pop r16 - 1215 0350 FF90 pop r15 - 1216 0352 EF90 pop r14 - 1217 0354 DF90 pop r13 - 1218 0356 CF90 pop r12 - 1219 .LBB91: - 1220 .LBB86: - 99:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** } - 1222 .LM96: - 1223 0358 0C94 0000 jmp _ZN5Print11printNumberEmh - 1224 .LBE86: - 1225 .LBE91: - 1227 .Lscope23: - 1229 .stabd 78,0,0 - 1234 .global _ZN5Print5printEii - 1236 _ZN5Print5printEii: - 1237 .stabd 46,0,0 - 78:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** return print((long) n, base); - 1239 .LM97: - 1240 .LFBB24: - 1241 /* prologue: function */ - 1242 /* frame size = 0 */ - 1243 /* stack size = 0 */ - 1244 .L__stack_usage = 0 - 1245 035c 9A01 movw r18,r20 - 79:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** } - 1247 .LM98: - 1248 035e AB01 movw r20,r22 - 1249 0360 770F lsl r23 - 1250 0362 660B sbc r22,r22 - 1251 0364 770B sbc r23,r23 - 1252 0366 0C94 0000 jmp _ZN5Print5printEli - 1254 .Lscope24: - 1256 .stabd 78,0,0 - 1261 .global _ZN5Print7printlnEii - 1263 _ZN5Print7printlnEii: - 1264 .stabd 46,0,0 - 160:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** size_t n = print(num, base); - 1266 .LM99: - 1267 .LFBB25: - 1268 036a 0F93 push r16 - 1269 036c 1F93 push r17 - 1270 036e CF93 push r28 - 1271 0370 DF93 push r29 - 1272 /* prologue: function */ - 1273 /* frame size = 0 */ - 1274 /* stack size = 4 */ - 1275 .L__stack_usage = 4 - 1276 0372 EC01 movw r28,r24 - 161:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** n += println(); - 1278 .LM100: - 1279 0374 0E94 0000 call _ZN5Print5printEii - 1280 0378 8C01 movw r16,r24 - 162:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** return n; - 1282 .LM101: - 1283 037a CE01 movw r24,r28 - 1284 037c 0E94 0000 call _ZN5Print7printlnEv - 164:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 1286 .LM102: - 1287 0380 800F add r24,r16 - 1288 0382 911F adc r25,r17 - 1289 /* epilogue start */ - 1290 0384 DF91 pop r29 - 1291 0386 CF91 pop r28 - 1292 0388 1F91 pop r17 - 1293 038a 0F91 pop r16 - 1294 038c 0895 ret - 1296 .Lscope25: - 1298 .stabd 78,0,0 - 1303 .global _ZN5Print7printlnEli - 1305 _ZN5Print7printlnEli: - 1306 .stabd 46,0,0 - 174:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** size_t n = print(num, base); - 1308 .LM103: - 1309 .LFBB26: - 1310 038e 0F93 push r16 - 1311 0390 1F93 push r17 - 1312 0392 CF93 push r28 - 1313 0394 DF93 push r29 - 1314 /* prologue: function */ - 1315 /* frame size = 0 */ - 1316 /* stack size = 4 */ - 1317 .L__stack_usage = 4 - 1318 0396 EC01 movw r28,r24 - 175:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** n += println(); - 1320 .LM104: - 1321 0398 0E94 0000 call _ZN5Print5printEli - 1322 039c 8C01 movw r16,r24 - 176:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** return n; - 1324 .LM105: - 1325 039e CE01 movw r24,r28 - 1326 03a0 0E94 0000 call _ZN5Print7printlnEv - 178:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 1328 .LM106: - 1329 03a4 800F add r24,r16 - 1330 03a6 911F adc r25,r17 - 1331 /* epilogue start */ - 1332 03a8 DF91 pop r29 - 1333 03aa CF91 pop r28 - 1334 03ac 1F91 pop r17 - 1335 03ae 0F91 pop r16 - 1336 03b0 0895 ret - 1338 .Lscope26: - 1340 .stabd 78,0,0 - 1341 .global __unordsf2 - 1342 .section .rodata.str1.1 - 1343 .LC1: - 1344 0003 6E61 6E00 .string "nan" - 1345 .global __lesf2 - 1346 .LC2: - 1347 0007 696E 6600 .string "inf" - 1348 .global __gtsf2 - 1349 .LC3: - 1350 000b 6F76 6600 .string "ovf" - 1351 .global __ltsf2 - 1352 .global __divsf3 - 1353 .global __addsf3 - 1354 .global __fixunssfsi - 1355 .global __floatunsisf - 1356 .global __subsf3 - 1357 .global __mulsf3 - 1358 .text - 1363 .global _ZN5Print10printFloatEdh - 1365 _ZN5Print10printFloatEdh: - 1366 .stabd 46,0,0 - 222:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 223:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** size_t Print::printFloat(double number, uint8_t digits) - 224:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** { - 1368 .LM107: - 1369 .LFBB27: - 1370 03b2 7F92 push r7 - 1371 03b4 8F92 push r8 - 1372 03b6 9F92 push r9 - 1373 03b8 AF92 push r10 - 1374 03ba BF92 push r11 - 1375 03bc CF92 push r12 - 1376 03be DF92 push r13 - 1377 03c0 EF92 push r14 - 1378 03c2 FF92 push r15 - 1379 03c4 0F93 push r16 - 1380 03c6 1F93 push r17 - 1381 03c8 CF93 push r28 - 1382 03ca DF93 push r29 - 1383 /* prologue: function */ - 1384 /* frame size = 0 */ - 1385 /* stack size = 13 */ - 1386 .L__stack_usage = 13 - 1387 03cc 8C01 movw r16,r24 - 1388 03ce 6A01 movw r12,r20 - 1389 03d0 7B01 movw r14,r22 - 1390 03d2 722E mov r7,r18 - 225:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** size_t n = 0; - 226:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 227:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** if (isnan(number)) return print("nan"); - 1392 .LM108: - 1393 03d4 9A01 movw r18,r20 - 1394 03d6 AB01 movw r20,r22 - 1395 03d8 C701 movw r24,r14 - 1396 03da B601 movw r22,r12 - 1397 03dc 0E94 0000 call __unordsf2 - 1398 03e0 8823 tst r24 - 1399 03e2 01F0 breq .L69 - 1400 .LBB114: - 1401 .LBB115: - 64:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** } - 1403 .LM109: - 1404 03e4 60E0 ldi r22,lo8(.LC1) - 1405 03e6 70E0 ldi r23,hi8(.LC1) - 1406 03e8 00C0 rjmp .L72 - 1407 .L69: - 1408 .LBE115: - 1409 .LBE114: - 228:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** if (isinf(number)) return print("inf"); - 1411 .LM110: - 1412 03ea 4601 movw r8,r12 - 1413 03ec 5701 movw r10,r14 - 1414 03ee E894 clt - 1415 03f0 B7F8 bld r11,7 - 1416 03f2 2FEF ldi r18,lo8(-1) - 1417 03f4 3FEF ldi r19,lo8(-1) - 1418 03f6 4FE7 ldi r20,lo8(127) - 1419 03f8 5FE7 ldi r21,lo8(127) - 1420 03fa C501 movw r24,r10 - 1421 03fc B401 movw r22,r8 - 1422 03fe 0E94 0000 call __unordsf2 - 1423 0402 8111 cpse r24,__zero_reg__ - 1424 0404 00C0 rjmp .L54 - 1425 0406 2FEF ldi r18,lo8(-1) - 1426 0408 3FEF ldi r19,lo8(-1) - 1427 040a 4FE7 ldi r20,lo8(127) - 1428 040c 5FE7 ldi r21,lo8(127) - 1429 040e C501 movw r24,r10 - 1430 0410 B401 movw r22,r8 - 1431 0412 0E94 0000 call __lesf2 - 1432 0416 1816 cp __zero_reg__,r24 - 1433 0418 04F4 brge .L54 - 1434 .LBB116: - 1435 .LBB117: - 64:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** } - 1437 .LM111: - 1438 041a 60E0 ldi r22,lo8(.LC2) - 1439 041c 70E0 ldi r23,hi8(.LC2) - 1440 041e 00C0 rjmp .L72 - 1441 .L54: - 1442 .LBE117: - 1443 .LBE116: - 229:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** if (number > 4294967040.0) return print ("ovf"); // constant determined empirically - 1445 .LM112: - 1446 0420 2FEF ldi r18,lo8(-1) - 1447 0422 3FEF ldi r19,lo8(-1) - 1448 0424 4FE7 ldi r20,lo8(127) - 1449 0426 5FE4 ldi r21,lo8(79) - 1450 0428 C701 movw r24,r14 - 1451 042a B601 movw r22,r12 - 1452 042c 0E94 0000 call __gtsf2 - 1453 0430 1816 cp __zero_reg__,r24 - 1454 0432 04F4 brge .L70 - 1455 .L57: - 1456 .LBB118: - 1457 .LBB119: - 64:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** } - 1459 .LM113: - 1460 0434 60E0 ldi r22,lo8(.LC3) - 1461 0436 70E0 ldi r23,hi8(.LC3) - 1462 .L72: - 1463 0438 C801 movw r24,r16 - 1464 /* epilogue start */ - 1465 .LBE119: - 1466 .LBE118: - 230:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** if (number <-4294967040.0) return print ("ovf"); // constant determined empirically - 231:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 232:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** // Handle negative numbers - 233:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** if (number < 0.0) - 234:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** { - 235:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** n += print('-'); - 236:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** number = -number; - 237:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** } - 238:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 239:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** // Round correctly so that print(1.999, 2) prints as "2.00" - 240:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** double rounding = 0.5; - 241:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** for (uint8_t i=0; i 0) { - 253:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** n += print('.'); - 254:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** } - 255:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 256:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** // Extract digits from the remainder one at a time - 257:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** while (digits-- > 0) - 258:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** { - 259:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** remainder *= 10.0; - 260:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** unsigned int toPrint = (unsigned int)(remainder); - 261:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** n += print(toPrint); - 262:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** remainder -= toPrint; - 263:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** } - 264:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 265:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** return n; - 266:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** } - 1468 .LM114: - 1469 043a DF91 pop r29 - 1470 043c CF91 pop r28 - 1471 043e 1F91 pop r17 - 1472 0440 0F91 pop r16 - 1473 0442 FF90 pop r15 - 1474 0444 EF90 pop r14 - 1475 0446 DF90 pop r13 - 1476 0448 CF90 pop r12 - 1477 044a BF90 pop r11 - 1478 044c AF90 pop r10 - 1479 044e 9F90 pop r9 - 1480 0450 8F90 pop r8 - 1481 0452 7F90 pop r7 - 1482 .LBB121: - 1483 .LBB120: - 64:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** } - 1485 .LM115: - 1486 0454 0C94 0000 jmp _ZN5Print5writeEPKc - 1487 .L70: - 1488 .LBE120: - 1489 .LBE121: - 230:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** if (number <-4294967040.0) return print ("ovf"); // constant determined empirically - 1491 .LM116: - 1492 0458 2FEF ldi r18,lo8(-1) - 1493 045a 3FEF ldi r19,lo8(-1) - 1494 045c 4FE7 ldi r20,lo8(127) - 1495 045e 5FEC ldi r21,lo8(-49) - 1496 0460 C701 movw r24,r14 - 1497 0462 B601 movw r22,r12 - 1498 0464 0E94 0000 call __ltsf2 - 1499 0468 87FD sbrc r24,7 - 1500 046a 00C0 rjmp .L57 - 1501 .LBB122: - 1502 .LBB123: - 233:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** { - 1504 .LM117: - 1505 046c 20E0 ldi r18,0 - 1506 046e 30E0 ldi r19,0 - 1507 0470 A901 movw r20,r18 - 1508 0472 C701 movw r24,r14 - 1509 0474 B601 movw r22,r12 - 1510 0476 0E94 0000 call __ltsf2 - 1511 047a 87FF sbrs r24,7 - 1512 047c 00C0 rjmp .L71 - 235:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** number = -number; - 1514 .LM118: - 1515 047e 6DE2 ldi r22,lo8(45) - 1516 0480 C801 movw r24,r16 - 1517 0482 0E94 0000 call _ZN5Print5printEc - 1518 0486 EC01 movw r28,r24 - 236:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** } - 1520 .LM119: - 1521 0488 F7FA bst r15,7 - 1522 048a F094 com r15 - 1523 048c F7F8 bld r15,7 - 1524 048e F094 com r15 - 1525 0490 00C0 rjmp .L58 - 1526 .L71: - 225:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** - 1528 .LM120: - 1529 0492 C0E0 ldi r28,0 - 1530 0494 D0E0 ldi r29,0 - 1531 .L58: - 1532 .LBB124: - 241:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** rounding /= 10.0; - 1534 .LM121: - 1535 0496 B12C mov r11,__zero_reg__ - 1536 .LBE124: - 240:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.cpp **** for (uint8_t i=0; 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 z zn&nL9;r=|_mvHawTZ4NZ^xtWS|99v;)5!1Y*uD2H)IwoRUtvX|fX}7?tg>Kr?}Y-Y z_?E{+af9G%iW6mb<6iejT+@a<)tNIVP$noBaE_=KqFhTrG<^rI zH+uLcVAAm0@*ERRcmw{!!T$c3*9w$xe7{EVb4YSDhlo*@W6cr8EO#RN8KldYqnPQP z#LBX+- zbvmRq{d`<`QU{JheTq5eyhAa^n<2%tWlAw=KB$;u&TWcG^PpnVeBMi+2Btnop&va4 zC-Dkg=isEy%W*vsr}Ig(V(NCehldn%?5Zl}xV23&b-3N5xzkJEPi+6Rmw67DI{XaR z12|dlxR{^dKh`_(^Z1Xtbz;!?H(*zGChnQugzE`BIT^!oGB9~E{f#)ulQX|lfXS2i zO~8(4Gw=zmENM&@m}M`=HHVXBIm>DXW?AC3z^)z#iE}K8aT=IBS#Fb;zD?72<9a>Q zLBn|4sp+@jdN)qWeHhpKaGs!lO6x&j^1Kt*N15I(qRd|64vU{61`X@zd%)!LR*b3B zOlPCSageyn;v-5=9gYLt35#v|iNwnDbYk#fT&0PX&k|zgvjUj9VHlS&o%9^*H<3p1 zwTc-JoYSR9kE02v!_R;w#Xrh`;}G#2i(m5aEKEq7H2p*mHz~%&G~+*(CGI4Cz2(zK ztW)K6z)gyW6;q|E(hyG(tDg6G_yG?;2Hd1H`#k)#Vwy9pn0??u#ZACR6w~c95sc)s z1bCj}9$^0cN~W`aI~$n#5a)=sAG@4bml%T{9tUpH^lcvAt{CFY9>w#4?^L`H_ r zBz}}w4~>__)ZVs=g~i^nB(>nihl+Cl;W3w_bcXl?s;J9NqpGDC!_7U z^!dQ_KWWm6IsPwE{6^pvikpDfD(3p|Dq!*o+mu~6fkXJ`hE{{k?qot z1EwvcIoZSW6`zmvv|`T3mH@LX@d^)b@$d~E{Z7RzK!1l~?i<{z^u!N)_<)BGdGs$S z=G<`BT&wdS@QI2y0yin<*xd|FJ&8L#JnZ4BM?azqnoLiSP07(;lAo z=npF9{Pc+8J-{=uh?kfF=HH(s=6=X2z|@nNe~Z@P%RM~k(T^*B5cJy=KMK5E@fU&j zDCQjXPGIsRzR$z^J^Z{!e^{~XhhQ6ydOnBqIK_v6PgcxH>U_nVSEm)v0$!q+`yeY6 zzY%z?;vDc*iaGZ#DdwDfi(<~ZZ&1uR_D*2hLVSmZpY-rE9{mBu+)Fv6n0rbuDLwJ5 z6D&{SP7mjSX*<*V6m!16PBH)X_^{$B;HqNoQB46;PvRXOe$2!BJo={1Y<+~eU@z|@~Kmn(i6cu+Cd9OH_A2E0u%*A3ehHv#Wa%(?xY ziWdXlrUcCJMi<0xh^=Ym}>z}l&SOWz{e@R6ZmAs_W;jV z`~YxTG1m@D6z>IIp?DwgTE$NTU#0jN;F99~z*`g_2EIWt=k_}lbA51!;!}X{RlE@R zVa3aV_bTQZ#+S{a<_BJb~U7d=_C$E_Mh<(6}0pfKYp7QVx zkN$QK-=moOj}It4@nasI_V7WE{)l3(b!K9+&-&U1JWuiUz^5qQ34As%^(5Z!VVGu) z!k9WAS6l>R>S>sMv~I?8zJ4^y@?hT4D9;1aB6GB^aZF2P>nPs$$F(|Pufq;a6ifXr zRlN0VT4c|rWqqY$S|k;3YfF)Sext((QA_anDS1ycMilIfT80!8atMEz1bJl&r+S%| zjEdK^!WF@eQwx6iJX#!ssvGclZCvbpHUIr@5TQE@jvNqug=&(&|3!cDjMFVanxmsD z>(S*sIxfHJ(XI06&hzM+fH8G3tVavbn@F~RX`2Bv+lMAz<>0W{<{jX1;9RSqXNgF9cpZClY@VNON;u>1)0qhFm& zK=Z^Y=sWs|?BVq5#VzqM8sArqhCU*tquUsx8v>mcAz488z8Kvw=oSiv{m=2c9=E<7 zJ8wk)iZt4RDOO;|UBE1p#mQqg_+dH|9L(eScX~ZamAVUbtS5JnhQ|XqeYy8SZW?Kn z%lLJE-UrMw%;RxC_+jV^4kwpod_O+}e$NC{p= 0) return c; - 167 .LM3: - 168 0024 97FF sbrs r25,7 - 169 0026 00C0 rjmp .L2 - 38:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** } while(millis() - _startMillis < _timeout); - 171 .LM4: - 172 0028 0E94 0000 call millis - 35:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** do { - 174 .LM5: - 175 002c 0885 ldd r16,Y+8 - 176 002e 1985 ldd r17,Y+9 - 177 0030 2A85 ldd r18,Y+10 - 178 0032 3B85 ldd r19,Y+11 - 179 0034 DC01 movw r26,r24 - 180 0036 CB01 movw r24,r22 - 181 0038 801B sub r24,r16 - 182 003a 910B sbc r25,r17 - 183 003c A20B sbc r26,r18 - 184 003e B30B sbc r27,r19 - 185 0040 0C81 ldd r16,Y+4 - 186 0042 1D81 ldd r17,Y+5 - 187 0044 2E81 ldd r18,Y+6 - 188 0046 3F81 ldd r19,Y+7 - 189 0048 8017 cp r24,r16 - 190 004a 9107 cpc r25,r17 - 191 004c A207 cpc r26,r18 - 192 004e B307 cpc r27,r19 - 193 0050 00F0 brlo .L3 - 39:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** return -1; // -1 indicates timeout - 195 .LM6: - 196 0052 8FEF ldi r24,lo8(-1) - 197 0054 9FEF ldi r25,lo8(-1) - 198 .L2: - 199 /* epilogue start */ - 40:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** } - 201 .LM7: - 202 0056 DF91 pop r29 - 203 0058 CF91 pop r28 - 204 005a 1F91 pop r17 - 205 005c 0F91 pop r16 - 206 005e 0895 ret - 211 .Lscope1: - 213 .stabd 78,0,0 - 216 .global _ZN6Stream9timedPeekEv - 218 _ZN6Stream9timedPeekEv: - 219 .stabd 46,0,0 - 41:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** - 42:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // protected method to peek stream with timeout - 43:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** int Stream::timedPeek() - 44:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** { - 221 .LM8: - 222 .LFBB2: - 223 0060 0F93 push r16 - 224 0062 1F93 push r17 - 225 0064 CF93 push r28 - 226 0066 DF93 push r29 - 227 /* prologue: function */ - 228 /* frame size = 0 */ - 229 /* stack size = 4 */ - 230 .L__stack_usage = 4 - 231 0068 EC01 movw r28,r24 - 45:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** int c; - 46:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** _startMillis = millis(); - 233 .LM9: - 234 006a 0E94 0000 call millis - 235 006e 6887 std Y+8,r22 - 236 0070 7987 std Y+9,r23 - 237 0072 8A87 std Y+10,r24 - 238 0074 9B87 std Y+11,r25 - 239 .L9: - 47:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** do { - 48:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** c = peek(); - 241 .LM10: - 242 0076 E881 ld r30,Y - 243 0078 F981 ldd r31,Y+1 - 244 007a 0484 ldd __tmp_reg__,Z+12 - 245 007c F585 ldd r31,Z+13 - 246 007e E02D mov r30,__tmp_reg__ - 247 0080 CE01 movw r24,r28 - 248 0082 0995 icall - 49:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** if (c >= 0) return c; - 250 .LM11: - 251 0084 97FF sbrs r25,7 - 252 0086 00C0 rjmp .L8 - 50:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** } while(millis() - _startMillis < _timeout); - 254 .LM12: - 255 0088 0E94 0000 call millis - 47:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** do { - 257 .LM13: - 258 008c 0885 ldd r16,Y+8 - 259 008e 1985 ldd r17,Y+9 - 260 0090 2A85 ldd r18,Y+10 - 261 0092 3B85 ldd r19,Y+11 - 262 0094 DC01 movw r26,r24 - 263 0096 CB01 movw r24,r22 - 264 0098 801B sub r24,r16 - 265 009a 910B sbc r25,r17 - 266 009c A20B sbc r26,r18 - 267 009e B30B sbc r27,r19 - 268 00a0 0C81 ldd r16,Y+4 - 269 00a2 1D81 ldd r17,Y+5 - 270 00a4 2E81 ldd r18,Y+6 - 271 00a6 3F81 ldd r19,Y+7 - 272 00a8 8017 cp r24,r16 - 273 00aa 9107 cpc r25,r17 - 274 00ac A207 cpc r26,r18 - 275 00ae B307 cpc r27,r19 - 276 00b0 00F0 brlo .L9 - 51:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** return -1; // -1 indicates timeout - 278 .LM14: - 279 00b2 8FEF ldi r24,lo8(-1) - 280 00b4 9FEF ldi r25,lo8(-1) - 281 .L8: - 282 /* epilogue start */ - 52:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** } - 284 .LM15: - 285 00b6 DF91 pop r29 - 286 00b8 CF91 pop r28 - 287 00ba 1F91 pop r17 - 288 00bc 0F91 pop r16 - 289 00be 0895 ret - 294 .Lscope2: - 296 .stabd 78,0,0 - 301 .global _ZN6Stream13peekNextDigitE13LookaheadModeb - 303 _ZN6Stream13peekNextDigitE13LookaheadModeb: - 304 .stabd 46,0,0 - 53:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** - 54:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // returns peek of the next digit in the stream or -1 if timeout - 55:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // discards non-numeric characters - 56:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** int Stream::peekNextDigit(LookaheadMode lookahead, bool detectDecimal) - 57:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** { - 306 .LM16: - 307 .LFBB3: - 308 00c0 0F93 push r16 - 309 00c2 1F93 push r17 - 310 00c4 CF93 push r28 - 311 00c6 DF93 push r29 - 312 /* prologue: function */ - 313 /* frame size = 0 */ - 314 /* stack size = 4 */ - 315 .L__stack_usage = 4 - 316 00c8 EC01 movw r28,r24 - 317 00ca 162F mov r17,r22 - 318 00cc 042F mov r16,r20 - 319 .L18: - 58:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** int c; - 59:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** while (1) { - 60:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** c = timedPeek(); - 321 .LM17: - 322 00ce CE01 movw r24,r28 - 323 00d0 0E94 0000 call _ZN6Stream9timedPeekEv - 61:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** - 62:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** if( c < 0 || - 325 .LM18: - 326 00d4 97FD sbrc r25,7 - 327 00d6 00C0 rjmp .L13 - 329 .LM19: - 330 00d8 8D32 cpi r24,45 - 331 00da 9105 cpc r25,__zero_reg__ - 332 00dc 01F0 breq .L20 - 63:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** c == '-' || - 334 .LM20: - 335 00de 9C01 movw r18,r24 - 336 00e0 2053 subi r18,48 - 337 00e2 3109 sbc r19,__zero_reg__ - 338 00e4 2A30 cpi r18,10 - 339 00e6 3105 cpc r19,__zero_reg__ - 340 00e8 00F0 brlo .L13 - 64:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** (c >= '0' && c <= '9') || - 342 .LM21: - 343 00ea 0023 tst r16 - 344 00ec 01F0 breq .L14 - 65:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** (detectDecimal && c == '.')) return c; - 346 .LM22: - 347 00ee 8E32 cpi r24,46 - 348 00f0 9105 cpc r25,__zero_reg__ - 349 00f2 01F0 breq .L22 - 350 .L14: - 66:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** - 67:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** switch( lookahead ){ - 352 .LM23: - 353 00f4 1130 cpi r17,lo8(1) - 354 00f6 01F0 breq .L24 - 355 00f8 1230 cpi r17,lo8(2) - 356 00fa 01F4 brne .L15 - 68:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** case SKIP_NONE: return -1; // Fail code. - 69:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** case SKIP_WHITESPACE: - 70:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** switch( c ){ - 358 .LM24: - 359 00fc 8D30 cpi r24,13 - 360 00fe 9105 cpc r25,__zero_reg__ - 361 0100 01F0 breq .L15 - 362 0102 04F4 brge .L17 - 363 0104 0997 sbiw r24,9 - 364 0106 0297 sbiw r24,2 - 365 0108 00F0 brlo .L15 - 366 010a 00C0 rjmp .L24 - 367 .L17: - 368 010c 8097 sbiw r24,32 - 369 010e 01F4 brne .L24 - 370 .L15: - 71:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** case ' ': - 72:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** case '\t': - 73:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** case '\r': - 74:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** case '\n': break; - 75:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** default: return -1; // Fail code. - 76:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** } - 77:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** case SKIP_ALL: - 78:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** break; - 79:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** } - 80:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** read(); // discard non-numeric - 372 .LM25: - 373 0110 E881 ld r30,Y - 374 0112 F981 ldd r31,Y+1 - 375 0114 0284 ldd __tmp_reg__,Z+10 - 376 0116 F385 ldd r31,Z+11 - 377 0118 E02D mov r30,__tmp_reg__ - 378 011a CE01 movw r24,r28 - 379 011c 0995 icall - 59:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** c = timedPeek(); - 381 .LM26: - 382 011e 00C0 rjmp .L18 - 383 .L20: - 384 0120 8DE2 ldi r24,lo8(45) - 385 0122 00C0 rjmp .L34 - 386 .L22: - 387 0124 8EE2 ldi r24,lo8(46) - 388 .L34: - 389 0126 90E0 ldi r25,0 - 390 0128 00C0 rjmp .L13 - 391 .L24: - 75:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** } - 393 .LM27: - 394 012a 8FEF ldi r24,lo8(-1) - 395 012c 9FEF ldi r25,lo8(-1) - 396 .L13: - 397 /* epilogue start */ - 81:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** } - 82:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** } - 399 .LM28: - 400 012e DF91 pop r29 - 401 0130 CF91 pop r28 - 402 0132 1F91 pop r17 - 403 0134 0F91 pop r16 - 404 0136 0895 ret - 409 .Lscope3: - 411 .stabd 78,0,0 - 415 .global _ZN6Stream10setTimeoutEm - 417 _ZN6Stream10setTimeoutEm: - 418 .stabd 46,0,0 - 83:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** - 84:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // Public Methods - 85:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** ////////////////////////////////////////////////////////////// - 86:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** - 87:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** void Stream::setTimeout(unsigned long timeout) // sets the maximum number of milliseconds to wait - 88:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** { - 420 .LM29: - 421 .LFBB4: - 422 /* prologue: function */ - 423 /* frame size = 0 */ - 424 /* stack size = 0 */ - 425 .L__stack_usage = 0 - 89:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** _timeout = timeout; - 427 .LM30: - 428 0138 FC01 movw r30,r24 - 429 013a 4483 std Z+4,r20 - 430 013c 5583 std Z+5,r21 - 431 013e 6683 std Z+6,r22 - 432 0140 7783 std Z+7,r23 - 433 0142 0895 ret - 435 .Lscope4: - 437 .stabd 78,0,0 - 442 .global _ZN6Stream8parseIntE13LookaheadModec - 444 _ZN6Stream8parseIntE13LookaheadModec: - 445 .stabd 46,0,0 - 90:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** } - 91:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** - 92:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // find returns true if the target string is found - 93:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** bool Stream::find(char *target) - 94:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** { - 95:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** return findUntil(target, strlen(target), NULL, 0); - 96:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** } - 97:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** - 98:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // reads data from the stream until the target string of given length is found - 99:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // returns true if target string is found, false if timed out - 100:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** bool Stream::find(char *target, size_t length) - 101:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** { - 102:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** return findUntil(target, length, NULL, 0); - 103:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** } - 104:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** - 105:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // as find but search ends if the terminator string is found - 106:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** bool Stream::findUntil(char *target, char *terminator) - 107:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** { - 108:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** return findUntil(target, strlen(target), terminator, strlen(terminator)); - 109:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** } - 110:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** - 111:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // reads data from the stream until the target string of the given length is found - 112:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // search terminated if the terminator string is found - 113:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // returns true if target string is found, false if terminated or timed out - 114:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** bool Stream::findUntil(char *target, size_t targetLen, char *terminator, size_t termLen) - 115:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** { - 116:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** if (terminator == NULL) { - 117:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** MultiTarget t[1] = {{target, targetLen, 0}}; - 118:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** return findMulti(t, 1) == 0 ? true : false; - 119:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** } else { - 120:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** MultiTarget t[2] = {{target, targetLen, 0}, {terminator, termLen, 0}}; - 121:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** return findMulti(t, 2) == 0 ? true : false; - 122:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** } - 123:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** } - 124:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** - 125:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // returns the first valid (long) integer value from the current position. - 126:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // lookahead determines how parseInt looks ahead in the stream. - 127:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // See LookaheadMode enumeration at the top of the file. - 128:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // Lookahead is terminated by the first character that is not a valid part of an integer. - 129:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // Once parsing commences, 'ignore' will be skipped in the stream. - 130:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** long Stream::parseInt(LookaheadMode lookahead, char ignore) - 131:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** { - 447 .LM31: - 448 .LFBB5: - 449 0144 BF92 push r11 - 450 0146 CF92 push r12 - 451 0148 DF92 push r13 - 452 014a EF92 push r14 - 453 014c FF92 push r15 - 454 014e 0F93 push r16 - 455 0150 1F93 push r17 - 456 0152 CF93 push r28 - 457 0154 DF93 push r29 - 458 /* prologue: function */ - 459 /* frame size = 0 */ - 460 /* stack size = 9 */ - 461 .L__stack_usage = 9 - 462 0156 8C01 movw r16,r24 - 463 0158 C42F mov r28,r20 - 132:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** bool isNegative = false; - 133:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** long value = 0; - 134:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** int c; - 135:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** - 136:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** c = peekNextDigit(lookahead, false); - 465 .LM32: - 466 015a 40E0 ldi r20,0 - 467 015c 0E94 0000 call _ZN6Stream13peekNextDigitE13LookaheadModeb - 468 0160 FC01 movw r30,r24 - 137:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // ignore non numeric leading characters - 138:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** if(c < 0) - 470 .LM33: - 471 0162 97FD sbrc r25,7 - 472 0164 00C0 rjmp .L41 - 473 0166 C12C mov r12,__zero_reg__ - 474 0168 D12C mov r13,__zero_reg__ - 475 016a 7601 movw r14,r12 - 476 016c B12C mov r11,__zero_reg__ - 139:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** return 0; // zero returned if timeout - 140:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** - 141:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** do{ - 142:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** if(c == ignore) - 478 .LM34: - 479 016e D0E0 ldi r29,0 - 480 .L38: - 481 0170 EC17 cp r30,r28 - 482 0172 FD07 cpc r31,r29 - 483 0174 01F0 breq .L39 - 143:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** ; // ignore this character - 144:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** else if(c == '-') - 485 .LM35: - 486 0176 ED32 cpi r30,45 - 487 0178 F105 cpc r31,__zero_reg__ - 488 017a 01F0 breq .L42 - 145:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** isNegative = true; - 146:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** else if(c >= '0' && c <= '9') // is c a digit? - 490 .LM36: - 491 017c CF01 movw r24,r30 - 492 017e C097 sbiw r24,48 - 493 0180 0A97 sbiw r24,10 - 494 0182 00F4 brsh .L39 - 147:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** value = value * 10 + c - '0'; - 496 .LM37: - 497 0184 AAE0 ldi r26,lo8(10) - 498 0186 B0E0 ldi r27,0 - 499 0188 A701 movw r20,r14 - 500 018a 9601 movw r18,r12 - 501 018c 0E94 0000 call __muluhisi3 - 502 0190 6F01 movw r12,r30 - 503 0192 FF0F lsl r31 - 504 0194 EE08 sbc r14,r14 - 505 0196 FF08 sbc r15,r15 - 506 0198 DC01 movw r26,r24 - 507 019a CB01 movw r24,r22 - 508 019c 8C0D add r24,r12 - 509 019e 9D1D adc r25,r13 - 510 01a0 AE1D adc r26,r14 - 511 01a2 BF1D adc r27,r15 - 512 01a4 6C01 movw r12,r24 - 513 01a6 7D01 movw r14,r26 - 514 01a8 20E3 ldi r18,48 - 515 01aa C21A sub r12,r18 - 516 01ac D108 sbc r13,__zero_reg__ - 517 01ae E108 sbc r14,__zero_reg__ - 518 01b0 F108 sbc r15,__zero_reg__ - 519 01b2 00C0 rjmp .L39 - 520 .L42: - 145:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** isNegative = true; - 522 .LM38: - 523 01b4 BB24 clr r11 - 524 01b6 B394 inc r11 - 525 .L39: - 148:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** read(); // consume the character we got with peek - 527 .LM39: - 528 01b8 D801 movw r26,r16 - 529 01ba ED91 ld r30,X+ - 530 01bc FC91 ld r31,X - 531 01be 0284 ldd __tmp_reg__,Z+10 - 532 01c0 F385 ldd r31,Z+11 - 533 01c2 E02D mov r30,__tmp_reg__ - 534 01c4 C801 movw r24,r16 - 535 01c6 0995 icall - 149:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** c = timedPeek(); - 537 .LM40: - 538 01c8 C801 movw r24,r16 - 539 01ca 0E94 0000 call _ZN6Stream9timedPeekEv - 540 01ce FC01 movw r30,r24 - 150:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** } - 151:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** while( (c >= '0' && c <= '9') || c == ignore ); - 542 .LM41: - 543 01d0 C097 sbiw r24,48 - 544 01d2 0A97 sbiw r24,10 - 545 01d4 00F0 brlo .L38 - 547 .LM42: - 548 01d6 CE17 cp r28,r30 - 549 01d8 DF07 cpc r29,r31 - 550 01da 01F0 breq .L38 - 152:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** - 153:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** if(isNegative) - 552 .LM43: - 553 01dc BB20 tst r11 - 554 01de 01F0 breq .L43 - 154:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** value = -value; - 556 .LM44: - 557 01e0 6627 clr r22 - 558 01e2 7727 clr r23 - 559 01e4 CB01 movw r24,r22 - 560 01e6 6C19 sub r22,r12 - 561 01e8 7D09 sbc r23,r13 - 562 01ea 8E09 sbc r24,r14 - 563 01ec 9F09 sbc r25,r15 - 564 01ee 00C0 rjmp .L37 - 565 .L41: - 139:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** - 567 .LM45: - 568 01f0 60E0 ldi r22,0 - 569 01f2 70E0 ldi r23,0 - 570 01f4 CB01 movw r24,r22 - 571 01f6 00C0 rjmp .L37 - 572 .L43: - 573 01f8 C701 movw r24,r14 - 574 01fa B601 movw r22,r12 - 575 .L37: - 576 /* epilogue start */ - 155:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** return value; - 156:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** } - 578 .LM46: - 579 01fc DF91 pop r29 - 580 01fe CF91 pop r28 - 581 0200 1F91 pop r17 - 582 0202 0F91 pop r16 - 583 0204 FF90 pop r15 - 584 0206 EF90 pop r14 - 585 0208 DF90 pop r13 - 586 020a CF90 pop r12 - 587 020c BF90 pop r11 - 588 020e 0895 ret - 594 .Lscope5: - 596 .stabd 78,0,0 - 597 .global __mulsf3 - 598 .global __floatsisf - 603 .global _ZN6Stream10parseFloatE13LookaheadModec - 605 _ZN6Stream10parseFloatE13LookaheadModec: - 606 .stabd 46,0,0 - 157:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** - 158:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // as parseInt but returns a floating point value - 159:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** float Stream::parseFloat(LookaheadMode lookahead, char ignore) - 160:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** { - 608 .LM47: - 609 .LFBB6: - 610 0210 4F92 push r4 - 611 0212 5F92 push r5 - 612 0214 6F92 push r6 - 613 0216 7F92 push r7 - 614 0218 AF92 push r10 - 615 021a BF92 push r11 - 616 021c CF92 push r12 - 617 021e DF92 push r13 - 618 0220 EF92 push r14 - 619 0222 FF92 push r15 - 620 0224 0F93 push r16 - 621 0226 1F93 push r17 - 622 0228 CF93 push r28 - 623 022a DF93 push r29 - 624 /* prologue: function */ - 625 /* frame size = 0 */ - 626 /* stack size = 14 */ - 627 .L__stack_usage = 14 - 628 022c 5C01 movw r10,r24 - 629 022e 042F mov r16,r20 - 161:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** bool isNegative = false; - 162:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** bool isFraction = false; - 163:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** long value = 0; - 164:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** int c; - 165:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** float fraction = 1.0; - 166:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** - 167:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** c = peekNextDigit(lookahead, true); - 631 .LM48: - 632 0230 41E0 ldi r20,lo8(1) - 633 0232 0E94 0000 call _ZN6Stream13peekNextDigitE13LookaheadModeb - 634 0236 FC01 movw r30,r24 - 168:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // ignore non numeric leading characters - 169:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** if(c < 0) - 636 .LM49: - 637 0238 97FD sbrc r25,7 - 638 023a 00C0 rjmp .L52 - 639 023c 412C mov r4,__zero_reg__ - 640 023e 512C mov r5,__zero_reg__ - 641 0240 80E8 ldi r24,lo8(-128) - 642 0242 682E mov r6,r24 - 643 0244 8FE3 ldi r24,lo8(63) - 644 0246 782E mov r7,r24 - 645 0248 C12C mov r12,__zero_reg__ - 646 024a D12C mov r13,__zero_reg__ - 647 024c 7601 movw r14,r12 - 648 024e C0E0 ldi r28,0 - 649 0250 D0E0 ldi r29,0 - 170:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** return 0; // zero returned if timeout - 171:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** - 172:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** do{ - 173:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** if(c == ignore) - 651 .LM50: - 652 0252 10E0 ldi r17,0 - 653 .L46: - 654 0254 E017 cp r30,r16 - 655 0256 F107 cpc r31,r17 - 656 0258 01F0 breq .L47 - 174:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** ; // ignore - 175:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** else if(c == '-') - 658 .LM51: - 659 025a ED32 cpi r30,45 - 660 025c F105 cpc r31,__zero_reg__ - 661 025e 01F0 breq .L53 - 176:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** isNegative = true; - 177:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** else if (c == '.') - 663 .LM52: - 664 0260 EE32 cpi r30,46 - 665 0262 F105 cpc r31,__zero_reg__ - 666 0264 01F0 breq .L54 - 178:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** isFraction = true; - 179:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** else if(c >= '0' && c <= '9') { // is c a digit? - 668 .LM53: - 669 0266 CF01 movw r24,r30 - 670 0268 C097 sbiw r24,48 - 671 026a 0A97 sbiw r24,10 - 672 026c 00F4 brsh .L47 - 180:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** value = value * 10 + c - '0'; - 674 .LM54: - 675 026e AAE0 ldi r26,lo8(10) - 676 0270 B0E0 ldi r27,0 - 677 0272 A701 movw r20,r14 - 678 0274 9601 movw r18,r12 - 679 0276 0E94 0000 call __muluhisi3 - 680 027a 6F01 movw r12,r30 - 681 027c FF0F lsl r31 - 682 027e EE08 sbc r14,r14 - 683 0280 FF08 sbc r15,r15 - 684 0282 C60E add r12,r22 - 685 0284 D71E adc r13,r23 - 686 0286 E81E adc r14,r24 - 687 0288 F91E adc r15,r25 - 688 028a 80E3 ldi r24,48 - 689 028c C81A sub r12,r24 - 690 028e D108 sbc r13,__zero_reg__ - 691 0290 E108 sbc r14,__zero_reg__ - 692 0292 F108 sbc r15,__zero_reg__ - 181:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** if(isFraction) - 694 .LM55: - 695 0294 CC23 tst r28 - 696 0296 01F0 breq .L47 - 182:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** fraction *= 0.1; - 698 .LM56: - 699 0298 2DEC ldi r18,lo8(-51) - 700 029a 3CEC ldi r19,lo8(-52) - 701 029c 4CEC ldi r20,lo8(-52) - 702 029e 5DE3 ldi r21,lo8(61) - 703 02a0 C301 movw r24,r6 - 704 02a2 B201 movw r22,r4 - 705 02a4 0E94 0000 call __mulsf3 - 706 02a8 2B01 movw r4,r22 - 707 02aa 3C01 movw r6,r24 - 708 02ac 00C0 rjmp .L47 - 709 .L53: - 176:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** else if (c == '.') - 711 .LM57: - 712 02ae D1E0 ldi r29,lo8(1) - 713 02b0 00C0 rjmp .L47 - 714 .L54: - 178:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** else if(c >= '0' && c <= '9') { // is c a digit? - 716 .LM58: - 717 02b2 C1E0 ldi r28,lo8(1) - 718 .L47: - 183:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** } - 184:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** read(); // consume the character we got with peek - 720 .LM59: - 721 02b4 D501 movw r26,r10 - 722 02b6 ED91 ld r30,X+ - 723 02b8 FC91 ld r31,X - 724 02ba 0284 ldd __tmp_reg__,Z+10 - 725 02bc F385 ldd r31,Z+11 - 726 02be E02D mov r30,__tmp_reg__ - 727 02c0 C501 movw r24,r10 - 728 02c2 0995 icall - 185:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** c = timedPeek(); - 730 .LM60: - 731 02c4 C501 movw r24,r10 - 732 02c6 0E94 0000 call _ZN6Stream9timedPeekEv - 733 02ca FC01 movw r30,r24 - 186:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** } - 187:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** while( (c >= '0' && c <= '9') || (c == '.' && !isFraction) || c == ignore ); - 735 .LM61: - 736 02cc C097 sbiw r24,48 - 737 02ce 0A97 sbiw r24,10 - 738 02d0 00F0 brlo .L46 - 740 .LM62: - 741 02d2 EE32 cpi r30,46 - 742 02d4 F105 cpc r31,__zero_reg__ - 743 02d6 01F4 brne .L49 - 745 .LM63: - 746 02d8 CC23 tst r28 - 747 02da 01F4 brne .+2 - 748 02dc 00C0 rjmp .L46 - 749 .L49: - 751 .LM64: - 752 02de 0E17 cp r16,r30 - 753 02e0 1F07 cpc r17,r31 - 754 02e2 01F4 brne .+2 - 755 02e4 00C0 rjmp .L46 - 188:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** - 189:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** if(isNegative) - 757 .LM65: - 758 02e6 DD23 tst r29 - 759 02e8 01F0 breq .L50 - 190:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** value = -value; - 761 .LM66: - 762 02ea F094 com r15 - 763 02ec E094 com r14 - 764 02ee D094 com r13 - 765 02f0 C094 com r12 - 766 02f2 C11C adc r12,__zero_reg__ - 767 02f4 D11C adc r13,__zero_reg__ - 768 02f6 E11C adc r14,__zero_reg__ - 769 02f8 F11C adc r15,__zero_reg__ - 770 .L50: - 191:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** if(isFraction) - 192:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** return value * fraction; - 772 .LM67: - 773 02fa C701 movw r24,r14 - 774 02fc B601 movw r22,r12 - 191:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** if(isFraction) - 776 .LM68: - 777 02fe CC23 tst r28 - 778 0300 01F0 breq .L51 - 780 .LM69: - 781 0302 0E94 0000 call __floatsisf - 782 0306 A301 movw r20,r6 - 783 0308 9201 movw r18,r4 - 784 030a 0E94 0000 call __mulsf3 - 785 030e 00C0 rjmp .L45 - 786 .L51: - 193:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** else - 194:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** return value; - 788 .LM70: - 789 0310 0E94 0000 call __floatsisf - 790 0314 00C0 rjmp .L45 - 791 .L52: - 170:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** - 793 .LM71: - 794 0316 60E0 ldi r22,0 - 795 0318 70E0 ldi r23,0 - 796 031a CB01 movw r24,r22 - 797 .L45: - 798 /* epilogue start */ - 195:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** } - 800 .LM72: - 801 031c DF91 pop r29 - 802 031e CF91 pop r28 - 803 0320 1F91 pop r17 - 804 0322 0F91 pop r16 - 805 0324 FF90 pop r15 - 806 0326 EF90 pop r14 - 807 0328 DF90 pop r13 - 808 032a CF90 pop r12 - 809 032c BF90 pop r11 - 810 032e AF90 pop r10 - 811 0330 7F90 pop r7 - 812 0332 6F90 pop r6 - 813 0334 5F90 pop r5 - 814 0336 4F90 pop r4 - 815 0338 0895 ret - 824 .Lscope6: - 826 .stabd 78,0,0 - 830 .global _ZN6Stream9readBytesEPcj - 832 _ZN6Stream9readBytesEPcj: - 833 .stabd 46,0,0 - 196:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** - 197:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // read characters from stream into buffer - 198:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // terminates if length characters have been read, or timeout (see setTimeout) - 199:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // returns the number of characters placed in the buffer - 200:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // the buffer is NOT null terminated. - 201:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // - 202:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** size_t Stream::readBytes(char *buffer, size_t length) - 203:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** { - 835 .LM73: - 836 .LFBB7: - 837 033a CF92 push r12 - 838 033c DF92 push r13 - 839 033e EF92 push r14 - 840 0340 FF92 push r15 - 841 0342 0F93 push r16 - 842 0344 1F93 push r17 - 843 0346 CF93 push r28 - 844 0348 DF93 push r29 - 845 /* prologue: function */ - 846 /* frame size = 0 */ - 847 /* stack size = 8 */ - 848 .L__stack_usage = 8 - 849 034a 6C01 movw r12,r24 - 850 034c 7A01 movw r14,r20 - 851 034e 8B01 movw r16,r22 - 204:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** size_t count = 0; - 853 .LM74: - 854 0350 C0E0 ldi r28,0 - 855 0352 D0E0 ldi r29,0 - 856 .L66: - 205:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** while (count < length) { - 858 .LM75: - 859 0354 CE15 cp r28,r14 - 860 0356 DF05 cpc r29,r15 - 861 0358 01F0 breq .L65 - 862 .LBB20: - 206:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** int c = timedRead(); - 864 .LM76: - 865 035a C601 movw r24,r12 - 866 035c 0E94 0000 call _ZN6Stream9timedReadEv - 207:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** if (c < 0) break; - 868 .LM77: - 869 0360 97FD sbrc r25,7 - 870 0362 00C0 rjmp .L67 - 208:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** *buffer++ = (char)c; - 872 .LM78: - 873 0364 F801 movw r30,r16 - 874 0366 8193 st Z+,r24 - 875 0368 8F01 movw r16,r30 - 209:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** count++; - 877 .LM79: - 878 036a 2196 adiw r28,1 - 879 .LBE20: - 205:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** int c = timedRead(); - 881 .LM80: - 882 036c 00C0 rjmp .L66 - 883 .L67: - 884 036e 7E01 movw r14,r28 - 885 .L65: - 210:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** } - 211:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** return count; - 212:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** } - 887 .LM81: - 888 0370 C701 movw r24,r14 - 889 /* epilogue start */ - 890 0372 DF91 pop r29 - 891 0374 CF91 pop r28 - 892 0376 1F91 pop r17 - 893 0378 0F91 pop r16 - 894 037a FF90 pop r15 - 895 037c EF90 pop r14 - 896 037e DF90 pop r13 - 897 0380 CF90 pop r12 - 898 0382 0895 ret - 903 .Lscope7: - 905 .stabd 78,0,0 - 910 .global _ZN6Stream14readBytesUntilEcPcj - 912 _ZN6Stream14readBytesUntilEcPcj: - 913 .stabd 46,0,0 - 213:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** - 214:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** - 215:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // as readBytes with terminator character - 216:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // terminates if length characters have been read, timeout, or if the terminator character detecte - 217:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // returns the number of characters placed in the buffer (0 means no valid data found) - 218:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** - 219:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** size_t Stream::readBytesUntil(char terminator, char *buffer, size_t length) - 220:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** { - 915 .LM82: - 916 .LFBB8: - 917 0384 AF92 push r10 - 918 0386 BF92 push r11 - 919 0388 CF92 push r12 - 920 038a DF92 push r13 - 921 038c EF92 push r14 - 922 038e FF92 push r15 - 923 0390 0F93 push r16 - 924 0392 1F93 push r17 - 925 0394 CF93 push r28 - 926 0396 DF93 push r29 - 927 /* prologue: function */ - 928 /* frame size = 0 */ - 929 /* stack size = 10 */ - 930 .L__stack_usage = 10 - 221:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** if (length < 1) return 0; - 932 .LM83: - 933 0398 2115 cp r18,__zero_reg__ - 934 039a 3105 cpc r19,__zero_reg__ - 935 039c 01F0 breq .L71 - 936 039e 8901 movw r16,r18 - 937 03a0 5C01 movw r10,r24 - 938 03a2 6A01 movw r12,r20 - 939 03a4 C0E0 ldi r28,0 - 940 03a6 D0E0 ldi r29,0 - 941 .LBB21: - 222:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** size_t index = 0; - 223:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** while (index < length) { - 224:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** int c = timedRead(); - 225:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** if (c < 0 || c == terminator) break; - 943 .LM84: - 944 03a8 E62E mov r14,r22 - 945 03aa F12C mov r15,__zero_reg__ - 946 .L70: - 224:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** if (c < 0 || c == terminator) break; - 948 .LM85: - 949 03ac C501 movw r24,r10 - 950 03ae 0E94 0000 call _ZN6Stream9timedReadEv - 952 .LM86: - 953 03b2 97FD sbrc r25,7 - 954 03b4 00C0 rjmp .L73 - 956 .LM87: - 957 03b6 8E15 cp r24,r14 - 958 03b8 9F05 cpc r25,r15 - 959 03ba 01F0 breq .L73 - 226:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** *buffer++ = (char)c; - 961 .LM88: - 962 03bc F601 movw r30,r12 - 963 03be 8193 st Z+,r24 - 964 03c0 6F01 movw r12,r30 - 227:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** index++; - 966 .LM89: - 967 03c2 2196 adiw r28,1 - 968 .LBE21: - 223:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** int c = timedRead(); - 970 .LM90: - 971 03c4 0C17 cp r16,r28 - 972 03c6 1D07 cpc r17,r29 - 973 03c8 01F4 brne .L70 - 974 03ca C801 movw r24,r16 - 975 03cc 00C0 rjmp .L69 - 976 .L71: - 221:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** size_t index = 0; - 978 .LM91: - 979 03ce 80E0 ldi r24,0 - 980 03d0 90E0 ldi r25,0 - 981 03d2 00C0 rjmp .L69 - 982 .L73: - 983 03d4 CE01 movw r24,r28 - 984 .L69: - 985 /* epilogue start */ - 228:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** } - 229:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** return index; // return number of characters, not including null terminator - 230:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** } - 987 .LM92: - 988 03d6 DF91 pop r29 - 989 03d8 CF91 pop r28 - 990 03da 1F91 pop r17 - 991 03dc 0F91 pop r16 - 992 03de FF90 pop r15 - 993 03e0 EF90 pop r14 - 994 03e2 DF90 pop r13 - 995 03e4 CF90 pop r12 - 996 03e6 BF90 pop r11 - 997 03e8 AF90 pop r10 - 998 03ea 0895 ret - 1006 .Lscope8: - 1008 .stabd 78,0,0 - 1009 .section .rodata.str1.1,"aMS",@progbits,1 - 1010 .LC0: - 1011 0000 00 .string "" - 1012 .text - 1015 .global _ZN6Stream10readStringEv - 1017 _ZN6Stream10readStringEv: - 1018 .stabd 46,0,0 - 231:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** - 232:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** String Stream::readString() - 233:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** { - 1020 .LM93: - 1021 .LFBB9: - 1022 03ec 0F93 push r16 - 1023 03ee 1F93 push r17 - 1024 03f0 CF93 push r28 - 1025 03f2 DF93 push r29 - 1026 /* prologue: function */ - 1027 /* frame size = 0 */ - 1028 /* stack size = 4 */ - 1029 .L__stack_usage = 4 - 1030 03f4 EC01 movw r28,r24 - 1031 03f6 8B01 movw r16,r22 - 234:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** String ret; - 1033 .LM94: - 1034 03f8 60E0 ldi r22,lo8(.LC0) - 1035 03fa 70E0 ldi r23,hi8(.LC0) - 1036 03fc 0E94 0000 call _ZN6StringC1EPKc - 1037 .L78: - 235:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** int c = timedRead(); - 1039 .LM95: - 1040 0400 C801 movw r24,r16 - 1041 0402 0E94 0000 call _ZN6Stream9timedReadEv - 236:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** while (c >= 0) - 1043 .LM96: - 1044 0406 97FD sbrc r25,7 - 1045 0408 00C0 rjmp .L75 - 1046 .LBB22: - 1047 .LBB23: - 1049 .Ltext1: - 1:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** /* - 2:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** WString.h - String library for Wiring & Arduino - 3:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** ...mostly rewritten by Paul Stoffregen... - 4:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** Copyright (c) 2009-10 Hernando Barragan. All right reserved. - 5:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** Copyright 2011, Paul Stoffregen, paul@pjrc.com - 6:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** - 7:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** This library is free software; you can redistribute it and/or - 8:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** modify it under the terms of the GNU Lesser General Public - 9:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** License as published by the Free Software Foundation; either - 10:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** version 2.1 of the License, or (at your option) any later version. - 11:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** - 12:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** This library is distributed in the hope that it will be useful, - 13:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** but WITHOUT ANY WARRANTY; without even the implied warranty of - 14:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - 15:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** Lesser General Public License for more details. - 16:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** - 17:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** You should have received a copy of the GNU Lesser General Public - 18:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** License along with this library; if not, write to the Free Software - 19:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - 20:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** */ - 21:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** - 22:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** #ifndef String_class_h - 23:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** #define String_class_h - 24:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** #ifdef __cplusplus - 25:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** - 26:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** #include - 27:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** #include - 28:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** #include - 29:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** #include - 30:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** - 31:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** // When compiling programs with this class, the following gcc parameters - 32:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** // dramatically increase performance and memory (RAM) efficiency, typically - 33:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** // with little or no increase in code size. - 34:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** // -felide-constructors - 35:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** // -std=c++0x - 36:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** - 37:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** class __FlashStringHelper; - 38:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** #define F(string_literal) (reinterpret_cast(PSTR(string_literal))) - 39:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** - 40:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** // An inherited class for holding the result of a concatenation. These - 41:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** // result objects are assumed to be writable by subsequent concatenations. - 42:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** class StringSumHelper; - 43:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** - 44:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** // The string class - 45:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** class String - 46:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** { - 47:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** // use a function pointer to allow for "if (s)" without the - 48:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** // complications of an operator bool(). for more information, see: - 49:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** // http://www.artima.com/cppsource/safebool.html - 50:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** typedef void (String::*StringIfHelperType)() const; - 51:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** void StringIfHelper() const {} - 52:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** - 53:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** public: - 54:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** // constructors - 55:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** // creates a copy of the initial value. - 56:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** // if the initial value is null or invalid, or if memory allocation - 57:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** // fails, the string will be marked as invalid (i.e. "if (s)" will - 58:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** // be false). - 59:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** String(const char *cstr = ""); - 60:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** String(const String &str); - 61:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** String(const __FlashStringHelper *str); - 62:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** #if __cplusplus >= 201103L || defined(__GXX_EXPERIMENTAL_CXX0X__) - 63:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** String(String &&rval); - 64:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** String(StringSumHelper &&rval); - 65:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** #endif - 66:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** explicit String(char c); - 67:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** explicit String(unsigned char, unsigned char base=10); - 68:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** explicit String(int, unsigned char base=10); - 69:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** explicit String(unsigned int, unsigned char base=10); - 70:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** explicit String(long, unsigned char base=10); - 71:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** explicit String(unsigned long, unsigned char base=10); - 72:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** explicit String(float, unsigned char decimalPlaces=2); - 73:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** explicit String(double, unsigned char decimalPlaces=2); - 74:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** ~String(void); - 75:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** - 76:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** // memory management - 77:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** // return true on success, false on failure (in which case, the string - 78:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** // is left unchanged). reserve(0), if successful, will validate an - 79:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** // invalid string (i.e., "if (s)" will be true afterwards) - 80:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** unsigned char reserve(unsigned int size); - 81:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** inline unsigned int length(void) const {return len;} - 82:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** - 83:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** // creates a copy of the assigned value. if the value is null or - 84:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** // invalid, or if the memory allocation fails, the string will be - 85:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** // marked as invalid ("if (s)" will be false). - 86:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** String & operator = (const String &rhs); - 87:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** String & operator = (const char *cstr); - 88:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** String & operator = (const __FlashStringHelper *str); - 89:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** #if __cplusplus >= 201103L || defined(__GXX_EXPERIMENTAL_CXX0X__) - 90:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** String & operator = (String &&rval); - 91:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** String & operator = (StringSumHelper &&rval); - 92:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** #endif - 93:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** - 94:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** // concatenate (works w/ built-in types) - 95:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** - 96:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** // returns true on success, false on failure (in which case, the string - 97:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** // is left unchanged). if the argument is null or invalid, the - 98:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** // concatenation is considered unsucessful. - 99:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** unsigned char concat(const String &str); - 100:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** unsigned char concat(const char *cstr); - 101:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** unsigned char concat(char c); - 102:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** unsigned char concat(unsigned char c); - 103:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** unsigned char concat(int num); - 104:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** unsigned char concat(unsigned int num); - 105:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** unsigned char concat(long num); - 106:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** unsigned char concat(unsigned long num); - 107:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** unsigned char concat(float num); - 108:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** unsigned char concat(double num); - 109:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** unsigned char concat(const __FlashStringHelper * str); - 110:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** - 111:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** // if there's not enough memory for the concatenated value, the string - 112:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** // will be left unchanged (but this isn't signalled in any way) - 113:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** String & operator += (const String &rhs) {concat(rhs); return (*this);} - 114:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** String & operator += (const char *cstr) {concat(cstr); return (*this);} - 115:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** String & operator += (char c) {concat(c); return (*this);} - 1051 .LM97: - 1052 040a 682F mov r22,r24 - 1053 040c CE01 movw r24,r28 - 1054 040e 0E94 0000 call _ZN6String6concatEc - 1055 0412 00C0 rjmp .L78 - 1056 .L75: - 1057 .LBE23: - 1058 .LBE22: - 1060 .Ltext2: - 237:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** { - 238:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** ret += (char)c; - 239:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** c = timedRead(); - 240:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** } - 241:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** return ret; - 242:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** } - 1062 .LM98: - 1063 0414 CE01 movw r24,r28 - 1064 /* epilogue start */ - 1065 0416 DF91 pop r29 - 1066 0418 CF91 pop r28 - 1067 041a 1F91 pop r17 - 1068 041c 0F91 pop r16 - 1069 041e 0895 ret - 1074 .Lscope9: - 1076 .stabd 78,0,0 - 1080 .global _ZN6Stream15readStringUntilEc - 1082 _ZN6Stream15readStringUntilEc: - 1083 .stabd 46,0,0 - 243:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** - 244:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** String Stream::readStringUntil(char terminator) - 245:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** { - 1085 .LM99: - 1086 .LFBB10: - 1087 0420 EF92 push r14 - 1088 0422 FF92 push r15 - 1089 0424 0F93 push r16 - 1090 0426 1F93 push r17 - 1091 0428 CF93 push r28 - 1092 042a DF93 push r29 - 1093 /* prologue: function */ - 1094 /* frame size = 0 */ - 1095 /* stack size = 6 */ - 1096 .L__stack_usage = 6 - 1097 042c EC01 movw r28,r24 - 1098 042e 7B01 movw r14,r22 - 1099 0430 042F mov r16,r20 - 246:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** String ret; - 1101 .LM100: - 1102 0432 60E0 ldi r22,lo8(.LC0) - 1103 0434 70E0 ldi r23,hi8(.LC0) - 1104 0436 0E94 0000 call _ZN6StringC1EPKc - 247:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** int c = timedRead(); - 1106 .LM101: - 1107 043a C701 movw r24,r14 - 1108 043c 0E94 0000 call _ZN6Stream9timedReadEv - 248:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** while (c >= 0 && c != terminator) - 1110 .LM102: - 1111 0440 10E0 ldi r17,0 - 1112 .L81: - 1113 0442 97FD sbrc r25,7 - 1114 0444 00C0 rjmp .L79 - 1116 .LM103: - 1117 0446 8017 cp r24,r16 - 1118 0448 9107 cpc r25,r17 - 1119 044a 01F0 breq .L79 - 1120 .LBB24: - 1121 .LBB25: - 1123 .Ltext3: - 1125 .LM104: - 1126 044c 682F mov r22,r24 - 1127 044e CE01 movw r24,r28 - 1128 0450 0E94 0000 call _ZN6String6concatEc - 1129 .LBE25: - 1130 .LBE24: - 1132 .Ltext4: - 249:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** { - 250:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** ret += (char)c; - 251:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** c = timedRead(); - 1134 .LM105: - 1135 0454 C701 movw r24,r14 - 1136 0456 0E94 0000 call _ZN6Stream9timedReadEv - 248:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** while (c >= 0 && c != terminator) - 1138 .LM106: - 1139 045a 00C0 rjmp .L81 - 1140 .L79: - 252:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** } - 253:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** return ret; - 254:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** } - 1142 .LM107: - 1143 045c CE01 movw r24,r28 - 1144 /* epilogue start */ - 1145 045e DF91 pop r29 - 1146 0460 CF91 pop r28 - 1147 0462 1F91 pop r17 - 1148 0464 0F91 pop r16 - 1149 0466 FF90 pop r15 - 1150 0468 EF90 pop r14 - 1151 046a 0895 ret - 1156 .Lscope10: - 1158 .stabd 78,0,0 - 1163 .global _ZN6Stream9findMultiEPNS_11MultiTargetEi - 1165 _ZN6Stream9findMultiEPNS_11MultiTargetEi: - 1166 .stabd 46,0,0 - 255:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** - 256:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** int Stream::findMulti( struct Stream::MultiTarget *targets, int tCount) { - 1168 .LM108: - 1169 .LFBB11: - 1170 046c 4F92 push r4 - 1171 046e 5F92 push r5 - 1172 0470 6F92 push r6 - 1173 0472 7F92 push r7 - 1174 0474 8F92 push r8 - 1175 0476 9F92 push r9 - 1176 0478 AF92 push r10 - 1177 047a BF92 push r11 - 1178 047c CF92 push r12 - 1179 047e DF92 push r13 - 1180 0480 EF92 push r14 - 1181 0482 FF92 push r15 - 1182 0484 0F93 push r16 - 1183 0486 1F93 push r17 - 1184 0488 CF93 push r28 - 1185 048a DF93 push r29 - 1186 /* prologue: function */ - 1187 /* frame size = 0 */ - 1188 /* stack size = 16 */ - 1189 .L__stack_usage = 16 - 1190 048c 8C01 movw r16,r24 - 1191 048e EB01 movw r28,r22 - 1192 .LBB26: - 257:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // any zero length target string automatically matches and would make - 258:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // a mess of the rest of the algorithm. - 259:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** for (struct MultiTarget *t = targets; t < targets+tCount; ++t) { - 1194 .LM109: - 1195 0490 86E0 ldi r24,lo8(6) - 1196 0492 849F mul r24,r20 - 1197 0494 4001 movw r8,r0 - 1198 0496 859F mul r24,r21 - 1199 0498 900C add r9,r0 - 1200 049a 1124 clr __zero_reg__ - 1201 049c 860E add r8,r22 - 1202 049e 971E adc r9,r23 - 1203 04a0 FB01 movw r30,r22 - 1204 .L86: - 1206 .LM110: - 1207 04a2 E815 cp r30,r8 - 1208 04a4 F905 cpc r31,r9 - 1209 04a6 00F4 brsh .L102 - 260:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** if (t->len <= 0) - 1211 .LM111: - 1212 04a8 8281 ldd r24,Z+2 - 1213 04aa 9381 ldd r25,Z+3 - 1214 04ac 892B or r24,r25 - 1215 04ae 01F0 breq .L109 - 259:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** if (t->len <= 0) - 1217 .LM112: - 1218 04b0 3696 adiw r30,6 - 1219 04b2 00C0 rjmp .L86 - 1220 .L110: - 1221 .LBE26: - 1222 .LBB27: - 1223 .LBB28: - 1224 .LBB29: - 261:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** return t - targets; - 262:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** } - 263:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** - 264:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** while (1) { - 265:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** int c = timedRead(); - 266:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** if (c < 0) - 267:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** return -1; - 268:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** - 269:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** for (struct MultiTarget *t = targets; t < targets+tCount; ++t) { - 270:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // the simple case is if we match, deal with that first. - 271:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** if (c == t->str[t->index]) { - 1226 .LM113: - 1227 04b4 6081 ld r22,Z - 1228 04b6 7181 ldd r23,Z+1 - 1229 04b8 4481 ldd r20,Z+4 - 1230 04ba 5581 ldd r21,Z+5 - 1231 04bc DB01 movw r26,r22 - 1232 04be A40F add r26,r20 - 1233 04c0 B51F adc r27,r21 - 1234 04c2 2C91 ld r18,X - 1235 04c4 30E0 ldi r19,0 - 1236 04c6 8217 cp r24,r18 - 1237 04c8 9307 cpc r25,r19 - 1238 04ca 01F4 brne .L87 - 272:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** if (++t->index == t->len) - 1240 .LM114: - 1241 04cc 4F5F subi r20,-1 - 1242 04ce 5F4F sbci r21,-1 - 1243 04d0 5583 std Z+5,r21 - 1244 04d2 4483 std Z+4,r20 - 1245 04d4 2281 ldd r18,Z+2 - 1246 04d6 3381 ldd r19,Z+3 - 1247 04d8 4217 cp r20,r18 - 1248 04da 5307 cpc r21,r19 - 1249 04dc 01F0 breq .L109 - 1250 .L89: - 1251 .LBE29: - 269:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // the simple case is if we match, deal with that first. - 1253 .LM115: - 1254 04de 3696 adiw r30,6 - 1255 .L96: - 269:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // the simple case is if we match, deal with that first. - 1257 .LM116: - 1258 04e0 E815 cp r30,r8 - 1259 04e2 F905 cpc r31,r9 - 1260 04e4 00F0 brlo .L110 - 1261 .L102: - 1262 .LBE28: - 265:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** if (c < 0) - 1264 .LM117: - 1265 04e6 C801 movw r24,r16 - 1266 04e8 0E94 0000 call _ZN6Stream9timedReadEv - 266:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** return -1; - 1268 .LM118: - 1269 04ec 97FD sbrc r25,7 - 1270 04ee 00C0 rjmp .L97 - 1271 04f0 FE01 movw r30,r28 - 1272 04f2 00C0 rjmp .L96 - 1273 .L109: - 1274 .LBB32: - 1275 .LBB31: - 273:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** return t - targets; - 1277 .LM119: - 1278 04f4 EC1B sub r30,r28 - 1279 04f6 FD0B sbc r31,r29 - 1280 04f8 F595 asr r31 - 1281 04fa E795 ror r30 - 1282 04fc 2BEA ldi r18,lo8(-85) - 1283 04fe 3AEA ldi r19,lo8(-86) - 1284 0500 E29F mul r30,r18 - 1285 0502 C001 movw r24,r0 - 1286 0504 E39F mul r30,r19 - 1287 0506 900D add r25,r0 - 1288 0508 F29F mul r31,r18 - 1289 050a 900D add r25,r0 - 1290 050c 1124 clr r1 - 1291 050e 00C0 rjmp .L85 - 1292 .L87: - 274:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** else - 275:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** continue; - 276:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** } - 277:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** - 278:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // if not we need to walk back and see if we could have matched further - 279:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // down the stream (ie '1112' doesn't match the first position in '11112' - 280:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // but it will match the second position so we can't just reset the current - 281:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // index to 0 when we find a mismatch. - 282:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** if (t->index == 0) - 1294 .LM120: - 1295 0510 4115 cp r20,__zero_reg__ - 1296 0512 5105 cpc r21,__zero_reg__ - 1297 0514 01F0 breq .L89 - 1298 .L105: - 1299 .LBB30: - 283:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** continue; - 284:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** - 285:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** int origIndex = t->index; - 286:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** do { - 287:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** --t->index; - 1301 .LM121: - 1302 0516 C480 ldd r12,Z+4 - 1303 0518 D580 ldd r13,Z+5 - 1304 051a 9601 movw r18,r12 - 1305 051c 2150 subi r18,1 - 1306 051e 3109 sbc r19,__zero_reg__ - 1307 0520 3583 std Z+5,r19 - 1308 0522 2483 std Z+4,r18 - 288:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // first check if current char works against the new current index - 289:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** if (c != t->str[t->index]) - 1310 .LM122: - 1311 0524 DB01 movw r26,r22 - 1312 0526 A20F add r26,r18 - 1313 0528 B31F adc r27,r19 - 1314 052a AC91 ld r26,X - 1315 052c B0E0 ldi r27,0 - 1316 052e 8A17 cp r24,r26 - 1317 0530 9B07 cpc r25,r27 - 1318 0532 01F4 brne .L91 - 290:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** continue; - 291:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** - 292:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // if it's the only char then we're good, nothing more to check - 293:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** if (t->index == 0) { - 1320 .LM123: - 1321 0534 2115 cp r18,__zero_reg__ - 1322 0536 3105 cpc r19,__zero_reg__ - 1323 0538 01F0 breq .L108 - 1324 053a 5B01 movw r10,r22 - 1325 053c 7A01 movw r14,r20 - 1326 053e E21A sub r14,r18 - 1327 0540 F30A sbc r15,r19 - 1328 0542 E60E add r14,r22 - 1329 0544 F71E adc r15,r23 - 294:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** t->index++; - 295:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** break; - 296:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** } - 297:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** - 298:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // otherwise we need to check the rest of the found string - 299:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** int diff = origIndex - t->index; - 300:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** size_t i; - 301:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** for (i = 0; i < t->index; ++i) { - 1331 .LM124: - 1332 0546 412C mov r4,__zero_reg__ - 1333 0548 512C mov r5,__zero_reg__ - 1334 .L94: - 302:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** if (t->str[i] != t->str[i + diff]) - 1336 .LM125: - 1337 054a D501 movw r26,r10 - 1338 054c 6D90 ld r6,X+ - 1339 054e 5D01 movw r10,r26 - 1340 0550 D701 movw r26,r14 - 1341 0552 7D90 ld r7,X+ - 1342 0554 7D01 movw r14,r26 - 1343 0556 6710 cpse r6,r7 - 1344 0558 00C0 rjmp .L93 - 301:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** if (t->str[i] != t->str[i + diff]) - 1346 .LM126: - 1347 055a BFEF ldi r27,-1 - 1348 055c 4B1A sub r4,r27 - 1349 055e 5B0A sbc r5,r27 - 1350 0560 4216 cp r4,r18 - 1351 0562 5306 cpc r5,r19 - 1352 0564 00F0 brlo .L94 - 1353 .L93: - 303:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** break; - 304:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** } - 305:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** - 306:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // if we successfully got through the previous loop then our current - 307:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // index is good. - 308:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** if (i == t->index) { - 1355 .LM127: - 1356 0566 2415 cp r18,r4 - 1357 0568 3505 cpc r19,r5 - 1358 056a 01F4 brne .L105 - 1359 .L108: - 309:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** t->index++; - 1361 .LM128: - 1362 056c D582 std Z+5,r13 - 1363 056e C482 std Z+4,r12 - 310:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** break; - 1365 .LM129: - 1366 0570 00C0 rjmp .L89 - 1367 .L91: - 1368 .LBE30: - 286:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** --t->index; - 1370 .LM130: - 1371 0572 232B or r18,r19 - 1372 0574 01F4 brne .L105 - 1373 0576 00C0 rjmp .L89 - 1374 .L97: - 1375 .LBE31: - 1376 .LBE32: - 267:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** - 1378 .LM131: - 1379 0578 8FEF ldi r24,lo8(-1) - 1380 057a 9FEF ldi r25,lo8(-1) - 1381 .L85: - 1382 /* epilogue start */ - 1383 .LBE27: - 311:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** } - 312:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** - 313:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // otherwise we just try the next index - 314:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** } while (t->index); - 315:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** } - 316:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** } - 317:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // unreachable - 318:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** return -1; - 319:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** } - 1385 .LM132: - 1386 057c DF91 pop r29 - 1387 057e CF91 pop r28 - 1388 0580 1F91 pop r17 - 1389 0582 0F91 pop r16 - 1390 0584 FF90 pop r15 - 1391 0586 EF90 pop r14 - 1392 0588 DF90 pop r13 - 1393 058a CF90 pop r12 - 1394 058c BF90 pop r11 - 1395 058e AF90 pop r10 - 1396 0590 9F90 pop r9 - 1397 0592 8F90 pop r8 - 1398 0594 7F90 pop r7 - 1399 0596 6F90 pop r6 - 1400 0598 5F90 pop r5 - 1401 059a 4F90 pop r4 - 1402 059c 0895 ret - 1410 .Lscope11: - 1412 .stabd 78,0,0 - 1418 _ZN6Stream9findUntilEPcjS0_j.part.0.constprop.1: - 1419 .stabd 46,0,0 - 114:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** { - 1421 .LM133: - 1422 .LFBB12: - 1423 059e CF93 push r28 - 1424 05a0 DF93 push r29 - 1425 05a2 00D0 rcall . - 1426 05a4 00D0 rcall . - 1427 05a6 00D0 rcall . - 1428 05a8 CDB7 in r28,__SP_L__ - 1429 05aa DEB7 in r29,__SP_H__ - 1430 /* prologue: function */ - 1431 /* frame size = 6 */ - 1432 /* stack size = 8 */ - 1433 .L__stack_usage = 8 - 1434 .LBB33: - 117:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** return findMulti(t, 1) == 0 ? true : false; - 1436 .LM134: - 1437 05ac FE01 movw r30,r28 - 1438 05ae 3196 adiw r30,1 - 1439 05b0 26E0 ldi r18,lo8(6) - 1440 05b2 DF01 movw r26,r30 - 1441 0: - 1442 05b4 1D92 st X+,__zero_reg__ - 1443 05b6 2A95 dec r18 - 1444 05b8 01F4 brne 0b - 1445 05ba 7A83 std Y+2,r23 - 1446 05bc 6983 std Y+1,r22 - 1447 05be 5C83 std Y+4,r21 - 1448 05c0 4B83 std Y+3,r20 - 118:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** } else { - 1450 .LM135: - 1451 05c2 41E0 ldi r20,lo8(1) - 1452 05c4 50E0 ldi r21,0 - 1453 05c6 BF01 movw r22,r30 - 1454 05c8 0E94 0000 call _ZN6Stream9findMultiEPNS_11MultiTargetEi - 1455 05cc 21E0 ldi r18,lo8(1) - 1456 05ce 892B or r24,r25 - 1457 05d0 01F0 breq .L112 - 1458 05d2 20E0 ldi r18,0 - 1459 .L112: - 1460 .LBE33: - 123:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** - 1462 .LM136: - 1463 05d4 822F mov r24,r18 - 1464 /* epilogue start */ - 1465 05d6 2696 adiw r28,6 - 1466 05d8 0FB6 in __tmp_reg__,__SREG__ - 1467 05da F894 cli - 1468 05dc DEBF out __SP_H__,r29 - 1469 05de 0FBE out __SREG__,__tmp_reg__ - 1470 05e0 CDBF out __SP_L__,r28 - 1471 05e2 DF91 pop r29 - 1472 05e4 CF91 pop r28 - 1473 05e6 0895 ret - 1478 .Lscope12: - 1480 .stabd 78,0,0 - 1485 .global _ZN6Stream4findEPcj - 1487 _ZN6Stream4findEPcj: - 1488 .stabd 46,0,0 - 101:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** return findUntil(target, length, NULL, 0); - 1490 .LM137: - 1491 .LFBB13: - 1492 /* prologue: function */ - 1493 /* frame size = 0 */ - 1494 /* stack size = 0 */ - 1495 .L__stack_usage = 0 - 1496 .LBB34: - 1497 .LBB35: - 1498 05e8 0C94 0000 jmp _ZN6Stream9findUntilEPcjS0_j.part.0.constprop.1 - 1499 .LBE35: - 1500 .LBE34: - 1502 .Lscope13: - 1504 .stabd 78,0,0 - 1508 .global _ZN6Stream4findEPc - 1510 _ZN6Stream4findEPc: - 1511 .stabd 46,0,0 - 94:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** return findUntil(target, strlen(target), NULL, 0); - 1513 .LM138: - 1514 .LFBB14: - 1515 /* prologue: function */ - 1516 /* frame size = 0 */ - 1517 /* stack size = 0 */ - 1518 .L__stack_usage = 0 - 95:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** } - 1520 .LM139: - 1521 05ec FB01 movw r30,r22 - 1522 0: - 1523 05ee 0190 ld __tmp_reg__,Z+ - 1524 05f0 0020 tst __tmp_reg__ - 1525 05f2 01F4 brne 0b - 1526 05f4 3197 sbiw r30,1 - 1527 05f6 AF01 movw r20,r30 - 1528 05f8 461B sub r20,r22 - 1529 05fa 570B sbc r21,r23 - 1530 .LBB36: - 1531 .LBB37: - 1532 05fc 0C94 0000 jmp _ZN6Stream9findUntilEPcjS0_j.part.0.constprop.1 - 1533 .LBE37: - 1534 .LBE36: - 1536 .Lscope14: - 1538 .stabd 78,0,0 - 1545 .global _ZN6Stream9findUntilEPcjS0_j - 1547 _ZN6Stream9findUntilEPcjS0_j: - 1548 .stabd 46,0,0 - 115:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** if (terminator == NULL) { - 1550 .LM140: - 1551 .LFBB15: - 1552 0600 FF92 push r15 - 1553 0602 0F93 push r16 - 1554 0604 1F93 push r17 - 1555 0606 CF93 push r28 - 1556 0608 DF93 push r29 - 1557 060a CDB7 in r28,__SP_L__ - 1558 060c DEB7 in r29,__SP_H__ - 1559 060e 2C97 sbiw r28,12 - 1560 0610 0FB6 in __tmp_reg__,__SREG__ - 1561 0612 F894 cli - 1562 0614 DEBF out __SP_H__,r29 - 1563 0616 0FBE out __SREG__,__tmp_reg__ - 1564 0618 CDBF out __SP_L__,r28 - 1565 /* prologue: function */ - 1566 /* frame size = 12 */ - 1567 /* stack size = 17 */ - 1568 .L__stack_usage = 17 - 1569 .LBB38: - 116:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** MultiTarget t[1] = {{target, targetLen, 0}}; - 1571 .LM141: - 1572 061a 2115 cp r18,__zero_reg__ - 1573 061c 3105 cpc r19,__zero_reg__ - 1574 061e 01F4 brne .L119 - 1575 .LBE38: - 1576 0620 0E94 0000 call _ZN6Stream9findUntilEPcjS0_j.part.0.constprop.1 - 1577 0624 282F mov r18,r24 - 1578 0626 00C0 rjmp .L120 - 1579 .L119: - 1580 .LBB40: - 1581 .LBB39: - 120:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** return findMulti(t, 2) == 0 ? true : false; - 1583 .LM142: - 1584 0628 FE01 movw r30,r28 - 1585 062a 3196 adiw r30,1 - 1586 062c ACE0 ldi r26,lo8(12) - 1587 062e FA2E mov r15,r26 - 1588 0630 DF01 movw r26,r30 - 1589 0: - 1590 0632 1D92 st X+,__zero_reg__ - 1591 0634 FA94 dec r15 - 1592 0636 01F4 brne 0b - 1593 0638 7A83 std Y+2,r23 - 1594 063a 6983 std Y+1,r22 - 1595 063c 5C83 std Y+4,r21 - 1596 063e 4B83 std Y+3,r20 - 1597 0640 3887 std Y+8,r19 - 1598 0642 2F83 std Y+7,r18 - 1599 0644 1A87 std Y+10,r17 - 1600 0646 0987 std Y+9,r16 - 121:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** } - 1602 .LM143: - 1603 0648 42E0 ldi r20,lo8(2) - 1604 064a 50E0 ldi r21,0 - 1605 064c BF01 movw r22,r30 - 1606 064e 0E94 0000 call _ZN6Stream9findMultiEPNS_11MultiTargetEi - 1607 0652 21E0 ldi r18,lo8(1) - 1608 0654 892B or r24,r25 - 1609 0656 01F0 breq .L120 - 1610 0658 20E0 ldi r18,0 - 1611 .L120: - 1612 .LBE39: - 1613 .LBE40: - 123:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** - 1615 .LM144: - 1616 065a 822F mov r24,r18 - 1617 /* epilogue start */ - 1618 065c 2C96 adiw r28,12 - 1619 065e 0FB6 in __tmp_reg__,__SREG__ - 1620 0660 F894 cli - 1621 0662 DEBF out __SP_H__,r29 - 1622 0664 0FBE out __SREG__,__tmp_reg__ - 1623 0666 CDBF out __SP_L__,r28 - 1624 0668 DF91 pop r29 - 1625 066a CF91 pop r28 - 1626 066c 1F91 pop r17 - 1627 066e 0F91 pop r16 - 1628 0670 FF90 pop r15 - 1629 0672 0895 ret - 1634 .Lscope15: - 1636 .stabd 78,0,0 - 1641 .global _ZN6Stream9findUntilEPcS0_ - 1643 _ZN6Stream9findUntilEPcS0_: - 1644 .stabd 46,0,0 - 107:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** return findUntil(target, strlen(target), terminator, strlen(terminator)); - 1646 .LM145: - 1647 .LFBB16: - 1648 0674 0F93 push r16 - 1649 0676 1F93 push r17 - 1650 /* prologue: function */ - 1651 /* frame size = 0 */ - 1652 /* stack size = 2 */ - 1653 .L__stack_usage = 2 - 1654 0678 9A01 movw r18,r20 - 108:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** } - 1656 .LM146: - 1657 067a FA01 movw r30,r20 - 1658 0: - 1659 067c 0190 ld __tmp_reg__,Z+ - 1660 067e 0020 tst __tmp_reg__ - 1661 0680 01F4 brne 0b - 1662 0682 3197 sbiw r30,1 - 1663 0684 8F01 movw r16,r30 - 1664 0686 041B sub r16,r20 - 1665 0688 150B sbc r17,r21 - 1666 068a FB01 movw r30,r22 - 1667 0: - 1668 068c 0190 ld __tmp_reg__,Z+ - 1669 068e 0020 tst __tmp_reg__ - 1670 0690 01F4 brne 0b - 1671 0692 3197 sbiw r30,1 - 1672 0694 AF01 movw r20,r30 - 1673 0696 461B sub r20,r22 - 1674 0698 570B sbc r21,r23 - 1675 069a 0E94 0000 call _ZN6Stream9findUntilEPcjS0_j - 1676 /* epilogue start */ - 109:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** - 1678 .LM147: - 1679 069e 1F91 pop r17 - 1680 06a0 0F91 pop r16 - 1681 06a2 0895 ret - 1683 .Lscope16: - 1685 .stabd 78,0,0 - 1701 .Letext0: - 1702 .ident "GCC: (GNU) 5.4.0" - 1703 .global __do_copy_data -DEFINED SYMBOLS - *ABS*:0000000000000000 Stream.cpp - /tmp/ccRQLXEs.s:2 *ABS*:000000000000003e __SP_H__ - /tmp/ccRQLXEs.s:3 *ABS*:000000000000003d __SP_L__ - /tmp/ccRQLXEs.s:4 *ABS*:000000000000003f __SREG__ - /tmp/ccRQLXEs.s:5 *ABS*:0000000000000000 __tmp_reg__ - /tmp/ccRQLXEs.s:6 *ABS*:0000000000000001 __zero_reg__ - /tmp/ccRQLXEs.s:135 .text:0000000000000000 _ZN6Stream9timedReadEv - /tmp/ccRQLXEs.s:218 .text:0000000000000060 _ZN6Stream9timedPeekEv - /tmp/ccRQLXEs.s:303 .text:00000000000000c0 _ZN6Stream13peekNextDigitE13LookaheadModeb - /tmp/ccRQLXEs.s:417 .text:0000000000000138 _ZN6Stream10setTimeoutEm - /tmp/ccRQLXEs.s:444 .text:0000000000000144 _ZN6Stream8parseIntE13LookaheadModec - /tmp/ccRQLXEs.s:605 .text:0000000000000210 _ZN6Stream10parseFloatE13LookaheadModec - /tmp/ccRQLXEs.s:832 .text:000000000000033a _ZN6Stream9readBytesEPcj - /tmp/ccRQLXEs.s:912 .text:0000000000000384 _ZN6Stream14readBytesUntilEcPcj - /tmp/ccRQLXEs.s:1017 .text:00000000000003ec _ZN6Stream10readStringEv - /tmp/ccRQLXEs.s:1082 .text:0000000000000420 _ZN6Stream15readStringUntilEc - /tmp/ccRQLXEs.s:1165 .text:000000000000046c _ZN6Stream9findMultiEPNS_11MultiTargetEi - /tmp/ccRQLXEs.s:1418 .text:000000000000059e _ZN6Stream9findUntilEPcjS0_j.part.0.constprop.1 - /tmp/ccRQLXEs.s:1487 .text:00000000000005e8 _ZN6Stream4findEPcj - /tmp/ccRQLXEs.s:1510 .text:00000000000005ec _ZN6Stream4findEPc - /tmp/ccRQLXEs.s:1547 .text:0000000000000600 _ZN6Stream9findUntilEPcjS0_j - /tmp/ccRQLXEs.s:1643 .text:0000000000000674 _ZN6Stream9findUntilEPcS0_ - -UNDEFINED SYMBOLS -millis -__muluhisi3 -__mulsf3 -__floatsisf -_ZN6StringC1EPKc -_ZN6String6concatEc -__do_copy_data diff --git a/arduino/hardware/arduino/avr/cores/arduino/Stream.o b/arduino/hardware/arduino/avr/cores/arduino/Stream.o deleted file mode 100644 index cb275690c11a88cd657f0473de94a845b07142ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30928 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 diff --git a/arduino/hardware/arduino/avr/cores/arduino/Tone.d b/arduino/hardware/arduino/avr/cores/arduino/Tone.d deleted file mode 100644 index 3faba95..0000000 --- a/arduino/hardware/arduino/avr/cores/arduino/Tone.d +++ /dev/null @@ -1,12 +0,0 @@ -Tone.o Tone.d : \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Arduino.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/binary.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WCharacter.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Printable.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/USBAPI.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8/hardware/arduino/avr/variants/standard/pins_arduino.h diff --git a/arduino/hardware/arduino/avr/cores/arduino/Tone.lst b/arduino/hardware/arduino/avr/cores/arduino/Tone.lst deleted file mode 100644 index fd20d69..0000000 --- a/arduino/hardware/arduino/avr/cores/arduino/Tone.lst +++ /dev/null @@ -1,1428 +0,0 @@ - 1 .file "Tone.cpp" - 2 __SP_H__ = 0x3e - 3 __SP_L__ = 0x3d - 4 __SREG__ = 0x3f - 5 __tmp_reg__ = 0 - 6 __zero_reg__ = 1 - 9 .text - 10 .Ltext0: - 135 .global _Z4tonehjm - 137 _Z4tonehjm: - 138 .stabd 46,0,0 - 1:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** /* Tone.cpp - 2:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 3:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** A Tone Generator Library - 4:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 5:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** Written by Brett Hagman - 6:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 7:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** This library is free software; you can redistribute it and/or - 8:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** modify it under the terms of the GNU Lesser General Public - 9:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** License as published by the Free Software Foundation; either - 10:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** version 2.1 of the License, or (at your option) any later version. - 11:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 12:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** This library is distributed in the hope that it will be useful, - 13:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** but WITHOUT ANY WARRANTY; without even the implied warranty of - 14:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - 15:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** Lesser General Public License for more details. - 16:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 17:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** You should have received a copy of the GNU Lesser General Public - 18:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** License along with this library; if not, write to the Free Software - 19:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - 20:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 21:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** Version Modified By Date Comments - 22:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** ------- ----------- -------- -------- - 23:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** 0001 B Hagman 09/08/02 Initial coding - 24:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** 0002 B Hagman 09/08/18 Multiple pins - 25:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** 0003 B Hagman 09/08/18 Moved initialization from constructor to begin() - 26:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** 0004 B Hagman 09/09/26 Fixed problems with ATmega8 - 27:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** 0005 B Hagman 09/11/23 Scanned prescalars for best fit on 8 bit timers - 28:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** 09/11/25 Changed pin toggle method to XOR - 29:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** 09/11/25 Fixed timer0 from being excluded - 30:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** 0006 D Mellis 09/12/29 Replaced objects with functions - 31:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** 0007 M Sproul 10/08/29 Changed #ifdefs from cpu to register - 32:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** 0008 S Kanemoto 12/06/22 Fixed for Leonardo by @maris_HY - 33:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** 0009 J Reucker 15/04/10 Issue #292 Fixed problems with ATmega8 (thanks to Pete62) - 34:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** 0010 jipp 15/04/13 added additional define check #2923 - 35:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** *************************************************/ - 36:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 37:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #include - 38:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #include - 39:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #include "Arduino.h" - 40:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #include "pins_arduino.h" - 41:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 42:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #if defined(__AVR_ATmega8__) || defined(__AVR_ATmega128__) - 43:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #define TCCR2A TCCR2 - 44:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #define TCCR2B TCCR2 - 45:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #define COM2A1 COM21 - 46:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #define COM2A0 COM20 - 47:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #define OCR2A OCR2 - 48:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #define TIMSK2 TIMSK - 49:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #define OCIE2A OCIE2 - 50:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #define TIMER2_COMPA_vect TIMER2_COMP_vect - 51:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #define TIMSK1 TIMSK - 52:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #endif - 53:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 54:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** // timerx_toggle_count: - 55:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** // > 0 - duration specified - 56:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** // = 0 - stopped - 57:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** // < 0 - infinitely (until stop() method called, or new play() called) - 58:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 59:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #if !defined(__AVR_ATmega8__) - 60:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** volatile long timer0_toggle_count; - 61:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** volatile uint8_t *timer0_pin_port; - 62:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** volatile uint8_t timer0_pin_mask; - 63:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #endif - 64:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 65:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** volatile long timer1_toggle_count; - 66:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** volatile uint8_t *timer1_pin_port; - 67:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** volatile uint8_t timer1_pin_mask; - 68:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** volatile long timer2_toggle_count; - 69:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** volatile uint8_t *timer2_pin_port; - 70:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** volatile uint8_t timer2_pin_mask; - 71:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 72:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #if defined(TIMSK3) - 73:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** volatile long timer3_toggle_count; - 74:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** volatile uint8_t *timer3_pin_port; - 75:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** volatile uint8_t timer3_pin_mask; - 76:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #endif - 77:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 78:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #if defined(TIMSK4) - 79:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** volatile long timer4_toggle_count; - 80:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** volatile uint8_t *timer4_pin_port; - 81:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** volatile uint8_t timer4_pin_mask; - 82:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #endif - 83:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 84:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #if defined(TIMSK5) - 85:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** volatile long timer5_toggle_count; - 86:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** volatile uint8_t *timer5_pin_port; - 87:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** volatile uint8_t timer5_pin_mask; - 88:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #endif - 89:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 90:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 91:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) - 92:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 93:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #define AVAILABLE_TONE_PINS 1 - 94:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #define USE_TIMER2 - 95:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 96:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** const uint8_t PROGMEM tone_pin_to_timer_PGM[] = { 2 /*, 3, 4, 5, 1, 0 */ }; - 97:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** static uint8_t tone_pins[AVAILABLE_TONE_PINS] = { 255 /*, 255, 255, 255, 255, 255 */ }; - 98:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 99:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #elif defined(__AVR_ATmega8__) - 100:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 101:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #define AVAILABLE_TONE_PINS 1 - 102:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #define USE_TIMER2 - 103:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 104:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** const uint8_t PROGMEM tone_pin_to_timer_PGM[] = { 2 /*, 1 */ }; - 105:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** static uint8_t tone_pins[AVAILABLE_TONE_PINS] = { 255 /*, 255 */ }; - 106:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 107:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #elif defined(__AVR_ATmega32U4__) - 108:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 109:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #define AVAILABLE_TONE_PINS 1 - 110:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #define USE_TIMER3 - 111:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 112:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** const uint8_t PROGMEM tone_pin_to_timer_PGM[] = { 3 /*, 1 */ }; - 113:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** static uint8_t tone_pins[AVAILABLE_TONE_PINS] = { 255 /*, 255 */ }; - 114:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 115:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #else - 116:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 117:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #define AVAILABLE_TONE_PINS 1 - 118:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #define USE_TIMER2 - 119:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 120:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** // Leave timer 0 to last. - 121:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** const uint8_t PROGMEM tone_pin_to_timer_PGM[] = { 2 /*, 1, 0 */ }; - 122:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** static uint8_t tone_pins[AVAILABLE_TONE_PINS] = { 255 /*, 255, 255 */ }; - 123:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 124:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #endif - 125:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 126:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 127:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 128:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** static int8_t toneBegin(uint8_t _pin) - 129:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** { - 130:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** int8_t _timer = -1; - 131:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 132:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** // if we're already using the pin, the timer should be configured. - 133:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** for (int i = 0; i < AVAILABLE_TONE_PINS; i++) { - 134:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** if (tone_pins[i] == _pin) { - 135:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** return pgm_read_byte(tone_pin_to_timer_PGM + i); - 136:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** } - 137:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** } - 138:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 139:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** // search for an unused timer. - 140:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** for (int i = 0; i < AVAILABLE_TONE_PINS; i++) { - 141:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** if (tone_pins[i] == 255) { - 142:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** tone_pins[i] = _pin; - 143:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** _timer = pgm_read_byte(tone_pin_to_timer_PGM + i); - 144:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** break; - 145:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** } - 146:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** } - 147:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 148:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** if (_timer != -1) - 149:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** { - 150:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** // Set timer specific stuff - 151:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** // All timers in CTC mode - 152:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** // 8 bit timers will require changing prescalar values, - 153:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** // whereas 16 bit timers are set to either ck/1 or ck/64 prescalar - 154:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** switch (_timer) - 155:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** { - 156:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #if defined(TCCR0A) && defined(TCCR0B) && defined(WGM01) - 157:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** case 0: - 158:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** // 8 bit timer - 159:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** TCCR0A = 0; - 160:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** TCCR0B = 0; - 161:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** bitWrite(TCCR0A, WGM01, 1); - 162:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** bitWrite(TCCR0B, CS00, 1); - 163:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** timer0_pin_port = portOutputRegister(digitalPinToPort(_pin)); - 164:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** timer0_pin_mask = digitalPinToBitMask(_pin); - 165:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** break; - 166:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #endif - 167:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 168:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #if defined(TCCR1A) && defined(TCCR1B) && defined(WGM12) - 169:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** case 1: - 170:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** // 16 bit timer - 171:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** TCCR1A = 0; - 172:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** TCCR1B = 0; - 173:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** bitWrite(TCCR1B, WGM12, 1); - 174:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** bitWrite(TCCR1B, CS10, 1); - 175:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** timer1_pin_port = portOutputRegister(digitalPinToPort(_pin)); - 176:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** timer1_pin_mask = digitalPinToBitMask(_pin); - 177:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** break; - 178:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #endif - 179:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 180:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #if defined(TCCR2A) && defined(TCCR2B) - 181:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** case 2: - 182:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** // 8 bit timer - 183:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** // TCCR2A = 0; - 184:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** // TCCR2B = 0; - 185:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** // bitWrite(TCCR2A, WGM21, 1); - 186:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** // bitWrite(TCCR2B, CS20, 1); - 187:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** // timer2_pin_port = portOutputRegister(digitalPinToPort(_pin)); - 188:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** // timer2_pin_mask = digitalPinToBitMask(_pin); - 189:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** break; - 190:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #endif - 191:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 192:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #if defined(TCCR3A) && defined(TCCR3B) && defined(TIMSK3) - 193:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** case 3: - 194:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** // 16 bit timer - 195:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** TCCR3A = 0; - 196:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** TCCR3B = 0; - 197:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** bitWrite(TCCR3B, WGM32, 1); - 198:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** bitWrite(TCCR3B, CS30, 1); - 199:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** timer3_pin_port = portOutputRegister(digitalPinToPort(_pin)); - 200:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** timer3_pin_mask = digitalPinToBitMask(_pin); - 201:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** break; - 202:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #endif - 203:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 204:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #if defined(TCCR4A) && defined(TCCR4B) && defined(TIMSK4) - 205:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** case 4: - 206:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** // 16 bit timer - 207:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** TCCR4A = 0; - 208:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** TCCR4B = 0; - 209:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #if defined(WGM42) - 210:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** bitWrite(TCCR4B, WGM42, 1); - 211:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #elif defined(CS43) - 212:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** // TODO this may not be correct - 213:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** // atmega32u4 - 214:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** bitWrite(TCCR4B, CS43, 1); - 215:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #endif - 216:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** bitWrite(TCCR4B, CS40, 1); - 217:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** timer4_pin_port = portOutputRegister(digitalPinToPort(_pin)); - 218:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** timer4_pin_mask = digitalPinToBitMask(_pin); - 219:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** break; - 220:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #endif - 221:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 222:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #if defined(TCCR5A) && defined(TCCR5B) && defined(TIMSK5) - 223:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** case 5: - 224:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** // 16 bit timer - 225:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** TCCR5A = 0; - 226:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** TCCR5B = 0; - 227:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** bitWrite(TCCR5B, WGM52, 1); - 228:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** bitWrite(TCCR5B, CS50, 1); - 229:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** timer5_pin_port = portOutputRegister(digitalPinToPort(_pin)); - 230:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** timer5_pin_mask = digitalPinToBitMask(_pin); - 231:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** break; - 232:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #endif - 233:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** } - 234:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** } - 235:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 236:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** return _timer; - 237:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** } - 238:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 239:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 240:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 241:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** // frequency (in hertz) and duration (in milliseconds). - 242:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 243:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** void tone(uint8_t _pin, unsigned int frequency, unsigned long duration) - 244:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** { - 140 .LM0: - 141 .LFBB1: - 142 0000 4F92 push r4 - 143 0002 5F92 push r5 - 144 0004 6F92 push r6 - 145 0006 7F92 push r7 - 146 0008 8F92 push r8 - 147 000a 9F92 push r9 - 148 000c AF92 push r10 - 149 000e BF92 push r11 - 150 0010 CF92 push r12 - 151 0012 DF92 push r13 - 152 0014 EF92 push r14 - 153 0016 FF92 push r15 - 154 0018 0F93 push r16 - 155 001a 1F93 push r17 - 156 001c CF93 push r28 - 157 001e DF93 push r29 - 158 0020 00D0 rcall . - 159 0022 00D0 rcall . - 160 0024 1F92 push __zero_reg__ - 161 0026 CDB7 in r28,__SP_L__ - 162 0028 DEB7 in r29,__SP_H__ - 163 /* prologue: function */ - 164 /* frame size = 5 */ - 165 /* stack size = 21 */ - 166 .L__stack_usage = 21 - 167 002a 8B01 movw r16,r22 - 168 002c 2901 movw r4,r18 - 169 002e 3A01 movw r6,r20 - 170 .LBB21: - 171 .LBB22: - 172 .LBB23: - 173 .LBB24: - 134:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** return pgm_read_byte(tone_pin_to_timer_PGM + i); - 175 .LM1: - 176 0030 9091 0000 lds r25,_ZL9tone_pins - 177 0034 8917 cp r24,r25 - 178 0036 01F0 breq .L2 - 179 .LBE24: - 180 .LBE23: - 181 .LBB28: - 182 .LBB29: - 141:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** tone_pins[i] = _pin; - 184 .LM2: - 185 0038 9F3F cpi r25,lo8(-1) - 186 003a 01F0 breq .+2 - 187 003c 00C0 rjmp .L1 - 188 003e 00C0 rjmp .L46 - 189 .L2: - 190 .LBE29: - 191 .LBE28: - 192 .LBB33: - 193 .LBB27: - 194 .LBB25: - 195 .LBB26: - 135:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** } - 197 .LM3: - 198 0040 E0E0 ldi r30,lo8(_ZL21tone_pin_to_timer_PGM) - 199 0042 F0E0 ldi r31,hi8(_ZL21tone_pin_to_timer_PGM) - 200 /* #APP */ - 201 ; 135 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduin - 202 0044 2491 lpm r18, Z - 203 - 204 ; 0 "" 2 - 205 /* #NOAPP */ - 206 0046 2D83 std Y+5,r18 - 207 0048 00C0 rjmp .L5 - 208 .L46: - 209 .LBE26: - 210 .LBE25: - 211 .LBE27: - 212 .LBE33: - 213 .LBB34: - 214 .LBB32: - 215 .LBB30: - 142:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** _timer = pgm_read_byte(tone_pin_to_timer_PGM + i); - 217 .LM4: - 218 004a 8093 0000 sts _ZL9tone_pins,r24 - 219 .LBB31: - 143:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** break; - 221 .LM5: - 222 004e E0E0 ldi r30,lo8(_ZL21tone_pin_to_timer_PGM) - 223 0050 F0E0 ldi r31,hi8(_ZL21tone_pin_to_timer_PGM) - 224 /* #APP */ - 225 ; 143 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduin - 226 0052 9491 lpm r25, Z - 227 - 228 ; 0 "" 2 - 229 /* #NOAPP */ - 230 0054 9D83 std Y+5,r25 - 231 .LBE31: - 232 .LBE30: - 233 .LBE32: - 234 .LBE34: - 235 .LBB35: - 148:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** { - 237 .LM6: - 238 0056 9F3F cpi r25,lo8(-1) - 239 0058 01F4 brne .+2 - 240 005a 00C0 rjmp .L1 - 241 .LBB36: - 154:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** { - 243 .LM7: - 244 005c 9923 tst r25 - 245 005e 01F0 breq .L6 - 246 0060 9130 cpi r25,lo8(1) - 247 0062 01F0 breq .+2 - 248 0064 00C0 rjmp .L5 - 249 .LBB37: - 171:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** TCCR1B = 0; - 251 .LM8: - 252 0066 1092 8000 sts 128,__zero_reg__ - 172:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** bitWrite(TCCR1B, WGM12, 1); - 254 .LM9: - 255 006a 1092 8100 sts 129,__zero_reg__ - 173:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** bitWrite(TCCR1B, CS10, 1); - 257 .LM10: - 258 006e 9091 8100 lds r25,129 - 259 0072 9860 ori r25,lo8(8) - 260 0074 9093 8100 sts 129,r25 - 174:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** timer1_pin_port = portOutputRegister(digitalPinToPort(_pin)); - 262 .LM11: - 263 0078 9091 8100 lds r25,129 - 264 007c 9160 ori r25,lo8(1) - 265 007e 9093 8100 sts 129,r25 - 266 .LBB38: - 267 .LBB39: - 175:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** timer1_pin_mask = digitalPinToBitMask(_pin); - 269 .LM12: - 270 0082 282F mov r18,r24 - 271 0084 30E0 ldi r19,0 - 272 0086 F901 movw r30,r18 - 273 0088 E050 subi r30,lo8(-(digital_pin_to_port_PGM)) - 274 008a F040 sbci r31,hi8(-(digital_pin_to_port_PGM)) - 275 /* #APP */ - 276 ; 175 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduin - 277 008c E491 lpm r30, Z - 278 - 279 ; 0 "" 2 - 280 /* #NOAPP */ - 281 .LBE39: - 282 008e F0E0 ldi r31,0 - 283 0090 EE0F lsl r30 - 284 0092 FF1F rol r31 - 285 0094 E050 subi r30,lo8(-(port_to_output_PGM)) - 286 0096 F040 sbci r31,hi8(-(port_to_output_PGM)) - 287 /* #APP */ - 288 ; 175 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduin - 289 0098 4591 lpm r20, Z+ - 290 009a 5491 lpm r21, Z - 291 - 292 ; 0 "" 2 - 293 /* #NOAPP */ - 294 .LBE38: - 295 009c 5093 0000 sts timer1_pin_port+1,r21 - 296 00a0 4093 0000 sts timer1_pin_port,r20 - 297 .LBB40: - 176:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** break; - 299 .LM13: - 300 00a4 F901 movw r30,r18 - 301 00a6 E050 subi r30,lo8(-(digital_pin_to_bit_mask_PGM)) - 302 00a8 F040 sbci r31,hi8(-(digital_pin_to_bit_mask_PGM)) - 303 /* #APP */ - 304 ; 176 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduin - 305 00aa E491 lpm r30, Z - 306 - 307 ; 0 "" 2 - 308 /* #NOAPP */ - 309 00ac E093 0000 sts timer1_pin_mask,r30 - 310 .LBE40: - 311 .LBE37: - 312 .LBE36: - 313 .LBE35: - 314 .LBE22: - 315 .LBE21: - 245:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** uint8_t prescalarbits = 0b001; - 246:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** long toggle_count = 0; - 247:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** uint32_t ocr = 0; - 248:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** int8_t _timer; - 249:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 250:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** _timer = toneBegin(_pin); - 251:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 252:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** if (_timer >= 0) - 253:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** { - 254:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** // Set the pinMode as OUTPUT - 255:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** pinMode(_pin, OUTPUT); - 317 .LM14: - 318 00b0 61E0 ldi r22,lo8(1) - 319 00b2 0E94 0000 call pinMode - 320 00b6 21E0 ldi r18,lo8(1) - 321 00b8 2D83 std Y+5,r18 - 322 00ba 00C0 rjmp .L9 - 323 .L6: - 324 .LBB48: - 325 .LBB47: - 326 .LBB46: - 327 .LBB45: - 328 .LBB44: - 159:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** TCCR0B = 0; - 330 .LM15: - 331 00bc 14BC out 0x24,__zero_reg__ - 160:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** bitWrite(TCCR0A, WGM01, 1); - 333 .LM16: - 334 00be 15BC out 0x25,__zero_reg__ - 161:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** bitWrite(TCCR0B, CS00, 1); - 336 .LM17: - 337 00c0 94B5 in r25,0x24 - 338 00c2 9260 ori r25,lo8(2) - 339 00c4 94BD out 0x24,r25 - 162:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** timer0_pin_port = portOutputRegister(digitalPinToPort(_pin)); - 341 .LM18: - 342 00c6 95B5 in r25,0x25 - 343 00c8 9160 ori r25,lo8(1) - 344 00ca 95BD out 0x25,r25 - 345 .LBB41: - 346 .LBB42: - 163:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** timer0_pin_mask = digitalPinToBitMask(_pin); - 348 .LM19: - 349 00cc 282F mov r18,r24 - 350 00ce 30E0 ldi r19,0 - 351 00d0 F901 movw r30,r18 - 352 00d2 E050 subi r30,lo8(-(digital_pin_to_port_PGM)) - 353 00d4 F040 sbci r31,hi8(-(digital_pin_to_port_PGM)) - 354 /* #APP */ - 355 ; 163 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduin - 356 00d6 E491 lpm r30, Z - 357 - 358 ; 0 "" 2 - 359 /* #NOAPP */ - 360 .LBE42: - 361 00d8 F0E0 ldi r31,0 - 362 00da EE0F lsl r30 - 363 00dc FF1F rol r31 - 364 00de E050 subi r30,lo8(-(port_to_output_PGM)) - 365 00e0 F040 sbci r31,hi8(-(port_to_output_PGM)) - 366 /* #APP */ - 367 ; 163 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduin - 368 00e2 4591 lpm r20, Z+ - 369 00e4 5491 lpm r21, Z - 370 - 371 ; 0 "" 2 - 372 /* #NOAPP */ - 373 .LBE41: - 374 00e6 5093 0000 sts timer0_pin_port+1,r21 - 375 00ea 4093 0000 sts timer0_pin_port,r20 - 376 .LBB43: - 164:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** break; - 378 .LM20: - 379 00ee F901 movw r30,r18 - 380 00f0 E050 subi r30,lo8(-(digital_pin_to_bit_mask_PGM)) - 381 00f2 F040 sbci r31,hi8(-(digital_pin_to_bit_mask_PGM)) - 382 /* #APP */ - 383 ; 164 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduin - 384 00f4 E491 lpm r30, Z - 385 - 386 ; 0 "" 2 - 387 /* #NOAPP */ - 388 00f6 E093 0000 sts timer0_pin_mask,r30 - 389 00fa 1D82 std Y+5,__zero_reg__ - 390 00fc 00C0 rjmp .L8 - 391 .L5: - 392 .LBE43: - 393 .LBE44: - 394 .LBE45: - 395 .LBE46: - 396 .LBE47: - 397 .LBE48: - 252:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** { - 399 .LM21: - 400 00fe 9D81 ldd r25,Y+5 - 401 0100 97FD sbrc r25,7 - 402 0102 00C0 rjmp .L1 - 403 .L8: - 405 .LM22: - 406 0104 61E0 ldi r22,lo8(1) - 407 0106 0E94 0000 call pinMode - 256:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 257:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** // if we are using an 8 bit timer, scan through prescalars to find the best fit - 258:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** if (_timer == 0 || _timer == 2) - 409 .LM23: - 410 010a 8D81 ldd r24,Y+5 - 411 010c 8D7F andi r24,lo8(-3) - 412 010e 01F0 breq .+2 - 413 0110 00C0 rjmp .L9 - 259:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** { - 260:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** ocr = F_CPU / frequency / 2 - 1; - 415 .LM24: - 416 0112 4801 movw r8,r16 - 417 0114 A12C mov r10,__zero_reg__ - 418 0116 B12C mov r11,__zero_reg__ - 419 0118 60E0 ldi r22,0 - 420 011a 72E1 ldi r23,lo8(18) - 421 011c 8AE7 ldi r24,lo8(122) - 422 011e 90E0 ldi r25,0 - 423 0120 A501 movw r20,r10 - 424 0122 9401 movw r18,r8 - 425 0124 0E94 0000 call __divmodsi4 - 426 0128 2983 std Y+1,r18 - 427 012a 3A83 std Y+2,r19 - 428 012c 4B83 std Y+3,r20 - 429 012e 5C83 std Y+4,r21 - 430 0130 6901 movw r12,r18 - 431 0132 7A01 movw r14,r20 - 432 0134 21E0 ldi r18,1 - 433 0136 C21A sub r12,r18 - 434 0138 D108 sbc r13,__zero_reg__ - 435 013a E108 sbc r14,__zero_reg__ - 436 013c F108 sbc r15,__zero_reg__ - 261:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** prescalarbits = 0b001; // ck/1: same for both timers - 262:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** if (ocr > 255) - 438 .LM25: - 439 013e 8FEF ldi r24,-1 - 440 0140 C816 cp r12,r24 - 441 0142 D104 cpc r13,__zero_reg__ - 442 0144 E104 cpc r14,__zero_reg__ - 443 0146 F104 cpc r15,__zero_reg__ - 444 0148 01F0 breq .+2 - 445 014a 00F4 brsh .+2 - 446 014c 00C0 rjmp .L33 - 263:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** { - 264:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** ocr = F_CPU / frequency / 2 / 8 - 1; - 448 .LM26: - 449 014e 60E4 ldi r22,lo8(64) - 450 0150 72E4 ldi r23,lo8(66) - 451 0152 8FE0 ldi r24,lo8(15) - 452 0154 90E0 ldi r25,0 - 453 0156 A501 movw r20,r10 - 454 0158 9401 movw r18,r8 - 455 015a 0E94 0000 call __divmodsi4 - 456 015e 6901 movw r12,r18 - 457 0160 7A01 movw r14,r20 - 458 0162 91E0 ldi r25,1 - 459 0164 C91A sub r12,r25 - 460 0166 D108 sbc r13,__zero_reg__ - 461 0168 E108 sbc r14,__zero_reg__ - 462 016a F108 sbc r15,__zero_reg__ - 265:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** prescalarbits = 0b010; // ck/8: same for both timers - 266:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 267:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** if (_timer == 2 && ocr > 255) - 464 .LM27: - 465 016c 2D81 ldd r18,Y+5 - 466 016e 2230 cpi r18,lo8(2) - 467 0170 01F4 brne .L12 - 469 .LM28: - 470 0172 8FEF ldi r24,-1 - 471 0174 C816 cp r12,r24 - 472 0176 D104 cpc r13,__zero_reg__ - 473 0178 E104 cpc r14,__zero_reg__ - 474 017a F104 cpc r15,__zero_reg__ - 475 017c 01F0 breq .+2 - 476 017e 00F4 brsh .+2 - 477 0180 00C0 rjmp .L13 - 268:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** { - 269:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** ocr = F_CPU / frequency / 2 / 32 - 1; - 479 .LM29: - 480 0182 60E9 ldi r22,lo8(-112) - 481 0184 70ED ldi r23,lo8(-48) - 482 0186 83E0 ldi r24,lo8(3) - 483 0188 90E0 ldi r25,0 - 484 018a A501 movw r20,r10 - 485 018c 9401 movw r18,r8 - 486 018e 0E94 0000 call __divmodsi4 - 487 0192 6901 movw r12,r18 - 488 0194 7A01 movw r14,r20 - 489 0196 91E0 ldi r25,1 - 490 0198 C91A sub r12,r25 - 491 019a D108 sbc r13,__zero_reg__ - 492 019c E108 sbc r14,__zero_reg__ - 493 019e F108 sbc r15,__zero_reg__ - 270:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** prescalarbits = 0b011; - 271:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** } - 272:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 273:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** if (ocr > 255) - 495 .LM30: - 496 01a0 2FEF ldi r18,-1 - 497 01a2 C216 cp r12,r18 - 498 01a4 D104 cpc r13,__zero_reg__ - 499 01a6 E104 cpc r14,__zero_reg__ - 500 01a8 F104 cpc r15,__zero_reg__ - 501 01aa 01F0 breq .+4 - 502 01ac 00F0 brlo .+2 - 503 01ae 00C0 rjmp .L14 - 504 01b0 00C0 rjmp .L18 - 505 .L12: - 506 01b2 8FEF ldi r24,-1 - 507 01b4 C816 cp r12,r24 - 508 01b6 D104 cpc r13,__zero_reg__ - 509 01b8 E104 cpc r14,__zero_reg__ - 510 01ba F104 cpc r15,__zero_reg__ - 511 01bc 01F0 breq .L34 - 512 01be 00F0 brlo .L34 - 274:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** { - 275:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** ocr = F_CPU / frequency / 2 / 64 - 1; - 514 .LM31: - 515 01c0 68E4 ldi r22,lo8(72) - 516 01c2 78EE ldi r23,lo8(-24) - 517 01c4 81E0 ldi r24,lo8(1) - 518 01c6 90E0 ldi r25,0 - 519 01c8 A501 movw r20,r10 - 520 01ca 9401 movw r18,r8 - 521 01cc 0E94 0000 call __divmodsi4 - 522 01d0 6901 movw r12,r18 - 523 01d2 7A01 movw r14,r20 - 524 01d4 91E0 ldi r25,1 - 525 01d6 C91A sub r12,r25 - 526 01d8 D108 sbc r13,__zero_reg__ - 527 01da E108 sbc r14,__zero_reg__ - 528 01dc F108 sbc r15,__zero_reg__ - 276:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** prescalarbits = _timer == 0 ? 0b011 : 0b100; - 530 .LM32: - 531 01de 2D81 ldd r18,Y+5 - 532 01e0 2223 tst r18 - 533 01e2 01F4 brne .+2 - 534 01e4 00C0 rjmp .L16 - 535 01e6 00C0 rjmp .L47 - 536 .L33: - 261:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** if (ocr > 255) - 538 .LM33: - 539 01e8 81E0 ldi r24,lo8(1) - 540 01ea 00C0 rjmp .L11 - 541 .L34: - 265:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 543 .LM34: - 544 01ec 82E0 ldi r24,lo8(2) - 545 .L11: - 277:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 278:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** if (_timer == 2 && ocr > 255) - 279:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** { - 280:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** ocr = F_CPU / frequency / 2 / 128 - 1; - 281:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** prescalarbits = 0b101; - 282:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** } - 283:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 284:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** if (ocr > 255) - 285:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** { - 286:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** ocr = F_CPU / frequency / 2 / 256 - 1; - 287:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** prescalarbits = _timer == 0 ? 0b100 : 0b110; - 288:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** if (ocr > 255) - 289:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** { - 290:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** // can't do any better than /1024 - 291:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** ocr = F_CPU / frequency / 2 / 1024 - 1; - 292:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** prescalarbits = _timer == 0 ? 0b101 : 0b111; - 293:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** } - 294:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** } - 295:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** } - 296:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** } - 297:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 298:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #if defined(TCCR0B) - 299:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** if (_timer == 0) - 547 .LM35: - 548 01ee 9D81 ldd r25,Y+5 - 549 01f0 9111 cpse r25,__zero_reg__ - 550 01f2 00C0 rjmp .L18 - 551 .L28: - 300:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** { - 301:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** TCCR0B = (TCCR0B & 0b11111000) | prescalarbits; - 553 .LM36: - 554 01f4 95B5 in r25,0x25 - 555 01f6 987F andi r25,lo8(-8) - 556 01f8 892B or r24,r25 - 557 01fa 85BD out 0x25,r24 - 558 01fc 00C0 rjmp .L18 - 559 .L9: - 302:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** } - 303:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** else - 304:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #endif - 305:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #if defined(TCCR2B) - 306:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** { - 307:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** // TCCR2B = (TCCR2B & 0b11111000) | prescalarbits; - 308:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** } - 309:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #else - 310:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** { - 311:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** // dummy place holder to make the above ifdefs work - 312:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** } - 313:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #endif - 314:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** } - 315:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** else - 316:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** { - 317:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** // two choices for the 16 bit timers: ck/1 or ck/64 - 318:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** ocr = F_CPU / frequency / 2 - 1; - 561 .LM37: - 562 01fe 4801 movw r8,r16 - 563 0200 A12C mov r10,__zero_reg__ - 564 0202 B12C mov r11,__zero_reg__ - 565 0204 60E0 ldi r22,0 - 566 0206 72E1 ldi r23,lo8(18) - 567 0208 8AE7 ldi r24,lo8(122) - 568 020a 90E0 ldi r25,0 - 569 020c A501 movw r20,r10 - 570 020e 9401 movw r18,r8 - 571 0210 0E94 0000 call __divmodsi4 - 572 0214 6901 movw r12,r18 - 573 0216 7A01 movw r14,r20 - 574 0218 81E0 ldi r24,1 - 575 021a C81A sub r12,r24 - 576 021c D108 sbc r13,__zero_reg__ - 577 021e E108 sbc r14,__zero_reg__ - 578 0220 F108 sbc r15,__zero_reg__ - 319:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 320:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** prescalarbits = 0b001; - 321:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** if (ocr > 0xffff) - 580 .LM38: - 581 0222 C114 cp r12,__zero_reg__ - 582 0224 D104 cpc r13,__zero_reg__ - 583 0226 91E0 ldi r25,1 - 584 0228 E906 cpc r14,r25 - 585 022a F104 cpc r15,__zero_reg__ - 586 022c 00F0 brlo .L35 - 322:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** { - 323:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** ocr = F_CPU / frequency / 2 / 64 - 1; - 588 .LM39: - 589 022e 68E4 ldi r22,lo8(72) - 590 0230 78EE ldi r23,lo8(-24) - 591 0232 81E0 ldi r24,lo8(1) - 592 0234 90E0 ldi r25,0 - 593 0236 A501 movw r20,r10 - 594 0238 9401 movw r18,r8 - 595 023a 0E94 0000 call __divmodsi4 - 596 023e 6901 movw r12,r18 - 597 0240 7A01 movw r14,r20 - 598 0242 81E0 ldi r24,1 - 599 0244 C81A sub r12,r24 - 600 0246 D108 sbc r13,__zero_reg__ - 601 0248 E108 sbc r14,__zero_reg__ - 602 024a F108 sbc r15,__zero_reg__ - 324:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** prescalarbits = 0b011; - 604 .LM40: - 605 024c 83E0 ldi r24,lo8(3) - 606 024e 00C0 rjmp .L20 - 607 .L35: - 320:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** if (ocr > 0xffff) - 609 .LM41: - 610 0250 81E0 ldi r24,lo8(1) - 611 .L20: - 325:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** } - 326:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 327:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** if (_timer == 1) - 613 .LM42: - 614 0252 9D81 ldd r25,Y+5 - 615 0254 9130 cpi r25,lo8(1) - 616 0256 01F4 brne .L18 - 328:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** { - 329:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #if defined(TCCR1B) - 330:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** TCCR1B = (TCCR1B & 0b11111000) | prescalarbits; - 618 .LM43: - 619 0258 9091 8100 lds r25,129 - 620 025c 987F andi r25,lo8(-8) - 621 025e 892B or r24,r25 - 622 0260 8093 8100 sts 129,r24 - 331:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #endif - 332:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** } - 333:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #if defined(TCCR3B) - 334:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** else if (_timer == 3) - 335:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** TCCR3B = (TCCR3B & 0b11111000) | prescalarbits; - 336:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #endif - 337:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #if defined(TCCR4B) - 338:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** else if (_timer == 4) - 339:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** TCCR4B = (TCCR4B & 0b11111000) | prescalarbits; - 340:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #endif - 341:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #if defined(TCCR5B) - 342:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** else if (_timer == 5) - 343:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** TCCR5B = (TCCR5B & 0b11111000) | prescalarbits; - 344:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #endif - 345:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 346:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** } - 347:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 348:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 349:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** // Calculate the toggle count - 350:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** if (duration > 0) - 624 .LM44: - 625 0264 4114 cp r4,__zero_reg__ - 626 0266 5104 cpc r5,__zero_reg__ - 627 0268 6104 cpc r6,__zero_reg__ - 628 026a 7104 cpc r7,__zero_reg__ - 629 026c 01F4 brne .L21 - 351:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** { - 352:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** toggle_count = 2 * frequency * duration / 1000; - 353:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** } - 354:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** else - 355:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** { - 356:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** toggle_count = -1; - 631 .LM45: - 632 026e 2FEF ldi r18,lo8(-1) - 633 0270 3FEF ldi r19,lo8(-1) - 634 0272 A901 movw r20,r18 - 635 0274 00C0 rjmp .L22 - 636 .L14: - 275:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** prescalarbits = _timer == 0 ? 0b011 : 0b100; - 638 .LM46: - 639 0276 68E4 ldi r22,lo8(72) - 640 0278 78EE ldi r23,lo8(-24) - 641 027a 81E0 ldi r24,lo8(1) - 642 027c 90E0 ldi r25,0 - 643 027e A501 movw r20,r10 - 644 0280 9401 movw r18,r8 - 645 0282 0E94 0000 call __divmodsi4 - 646 0286 6901 movw r12,r18 - 647 0288 7A01 movw r14,r20 - 648 028a 91E0 ldi r25,1 - 649 028c C91A sub r12,r25 - 650 028e D108 sbc r13,__zero_reg__ - 651 0290 E108 sbc r14,__zero_reg__ - 652 0292 F108 sbc r15,__zero_reg__ - 278:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** { - 654 .LM47: - 655 0294 2FEF ldi r18,-1 - 656 0296 C216 cp r12,r18 - 657 0298 D104 cpc r13,__zero_reg__ - 658 029a E104 cpc r14,__zero_reg__ - 659 029c F104 cpc r15,__zero_reg__ - 660 029e 01F0 breq .+2 - 661 02a0 00F4 brsh .+2 - 662 02a2 00C0 rjmp .L13 - 280:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** prescalarbits = 0b101; - 664 .LM48: - 665 02a4 64E2 ldi r22,lo8(36) - 666 02a6 74EF ldi r23,lo8(-12) - 667 02a8 80E0 ldi r24,0 - 668 02aa 90E0 ldi r25,0 - 669 02ac A501 movw r20,r10 - 670 02ae 9401 movw r18,r8 - 671 02b0 0E94 0000 call __divmodsi4 - 672 02b4 6901 movw r12,r18 - 673 02b6 7A01 movw r14,r20 - 674 02b8 81E0 ldi r24,1 - 675 02ba C81A sub r12,r24 - 676 02bc D108 sbc r13,__zero_reg__ - 677 02be E108 sbc r14,__zero_reg__ - 678 02c0 F108 sbc r15,__zero_reg__ - 284:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** { - 680 .LM49: - 681 02c2 9FEF ldi r25,-1 - 682 02c4 C916 cp r12,r25 - 683 02c6 D104 cpc r13,__zero_reg__ - 684 02c8 E104 cpc r14,__zero_reg__ - 685 02ca F104 cpc r15,__zero_reg__ - 686 02cc 01F0 breq .+4 - 687 02ce 00F0 brlo .+2 - 688 02d0 00C0 rjmp .L29 - 689 .L18: - 350:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** { - 691 .LM50: - 692 02d2 4114 cp r4,__zero_reg__ - 693 02d4 5104 cpc r5,__zero_reg__ - 694 02d6 6104 cpc r6,__zero_reg__ - 695 02d8 7104 cpc r7,__zero_reg__ - 696 02da 01F0 breq .L36 - 697 .L21: - 352:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** } - 699 .LM51: - 700 02dc D801 movw r26,r16 - 701 02de AA0F lsl r26 - 702 02e0 BB1F rol r27 - 703 02e2 A301 movw r20,r6 - 704 02e4 9201 movw r18,r4 - 705 02e6 0E94 0000 call __muluhisi3 - 706 02ea 28EE ldi r18,lo8(-24) - 707 02ec 33E0 ldi r19,lo8(3) - 708 02ee 40E0 ldi r20,0 - 709 02f0 50E0 ldi r21,0 - 710 02f2 0E94 0000 call __udivmodsi4 - 711 02f6 00C0 rjmp .L23 - 712 .L36: - 714 .LM52: - 715 02f8 2FEF ldi r18,lo8(-1) - 716 02fa 3FEF ldi r19,lo8(-1) - 717 02fc A901 movw r20,r18 - 718 .L23: - 357:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** } - 358:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 359:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** // Set the OCR for the given timer, - 360:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** // set the toggle count, - 361:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** // then turn on the interrupts - 362:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** switch (_timer) - 720 .LM53: - 721 02fe 8D81 ldd r24,Y+5 - 722 0300 8823 tst r24 - 723 0302 01F0 breq .L25 - 724 0304 8130 cpi r24,lo8(1) - 725 0306 01F0 breq .+2 - 726 0308 00C0 rjmp .L1 - 727 030a 00C0 rjmp .L22 - 728 .L25: - 363:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** { - 364:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 365:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #if defined(OCR0A) && defined(TIMSK0) && defined(OCIE0A) - 366:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** case 0: - 367:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** OCR0A = ocr; - 730 .LM54: - 731 030c C7BC out 0x27,r12 - 368:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** timer0_toggle_count = toggle_count; - 733 .LM55: - 734 030e 2093 0000 sts timer0_toggle_count,r18 - 735 0312 3093 0000 sts timer0_toggle_count+1,r19 - 736 0316 4093 0000 sts timer0_toggle_count+2,r20 - 737 031a 5093 0000 sts timer0_toggle_count+3,r21 - 369:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** bitWrite(TIMSK0, OCIE0A, 1); - 739 .LM56: - 740 031e 8091 6E00 lds r24,110 - 741 0322 8260 ori r24,lo8(2) - 742 0324 8093 6E00 sts 110,r24 - 370:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** break; - 744 .LM57: - 745 0328 00C0 rjmp .L1 - 746 .L22: - 371:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #endif - 372:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 373:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** case 1: - 374:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #if defined(OCR1A) && defined(TIMSK1) && defined(OCIE1A) - 375:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** OCR1A = ocr; - 748 .LM58: - 749 032a D092 8900 sts 136+1,r13 - 750 032e C092 8800 sts 136,r12 - 376:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** timer1_toggle_count = toggle_count; - 752 .LM59: - 753 0332 2093 0000 sts timer1_toggle_count,r18 - 754 0336 3093 0000 sts timer1_toggle_count+1,r19 - 755 033a 4093 0000 sts timer1_toggle_count+2,r20 - 756 033e 5093 0000 sts timer1_toggle_count+3,r21 - 377:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** bitWrite(TIMSK1, OCIE1A, 1); - 758 .LM60: - 759 0342 8091 6F00 lds r24,111 - 760 0346 8260 ori r24,lo8(2) - 761 0348 8093 6F00 sts 111,r24 - 378:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #elif defined(OCR1A) && defined(TIMSK) && defined(OCIE1A) - 379:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** // this combination is for at least the ATmega32 - 380:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** OCR1A = ocr; - 381:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** timer1_toggle_count = toggle_count; - 382:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** bitWrite(TIMSK, OCIE1A, 1); - 383:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #endif - 384:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** break; - 385:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 386:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #if defined(OCR2A) && defined(TIMSK2) && defined(OCIE2A) - 387:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** case 2: - 388:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** // OCR2A = ocr; - 389:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** // timer2_toggle_count = toggle_count; - 390:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** // bitWrite(TIMSK2, OCIE2A, 1); - 391:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** break; - 392:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #endif - 393:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 394:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #if defined(OCR3A) && defined(TIMSK3) && defined(OCIE3A) - 395:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** case 3: - 396:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** OCR3A = ocr; - 397:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** timer3_toggle_count = toggle_count; - 398:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** bitWrite(TIMSK3, OCIE3A, 1); - 399:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** break; - 400:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #endif - 401:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 402:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #if defined(OCR4A) && defined(TIMSK4) && defined(OCIE4A) - 403:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** case 4: - 404:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** OCR4A = ocr; - 405:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** timer4_toggle_count = toggle_count; - 406:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** bitWrite(TIMSK4, OCIE4A, 1); - 407:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** break; - 408:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #endif - 409:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 410:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #if defined(OCR5A) && defined(TIMSK5) && defined(OCIE5A) - 411:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** case 5: - 412:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** OCR5A = ocr; - 413:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** timer5_toggle_count = toggle_count; - 414:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** bitWrite(TIMSK5, OCIE5A, 1); - 415:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** break; - 416:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #endif - 417:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 418:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** } - 419:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** } - 420:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** } - 763 .LM61: - 764 034c 00C0 rjmp .L1 - 765 .L13: - 350:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** { - 767 .LM62: - 768 034e 4114 cp r4,__zero_reg__ - 769 0350 5104 cpc r5,__zero_reg__ - 770 0352 6104 cpc r6,__zero_reg__ - 771 0354 7104 cpc r7,__zero_reg__ - 772 0356 01F4 brne .+2 - 773 0358 00C0 rjmp .L1 - 774 035a 00C0 rjmp .L21 - 775 .L29: - 286:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** prescalarbits = _timer == 0 ? 0b100 : 0b110; - 777 .LM63: - 778 035c 62E1 ldi r22,lo8(18) - 779 035e 7AE7 ldi r23,lo8(122) - 780 0360 80E0 ldi r24,0 - 781 0362 90E0 ldi r25,0 - 782 0364 A501 movw r20,r10 - 783 0366 9401 movw r18,r8 - 784 0368 0E94 0000 call __divmodsi4 - 785 036c 6901 movw r12,r18 - 786 036e 7A01 movw r14,r20 - 787 0370 81E0 ldi r24,1 - 788 0372 C81A sub r12,r24 - 789 0374 D108 sbc r13,__zero_reg__ - 790 0376 E108 sbc r14,__zero_reg__ - 791 0378 F108 sbc r15,__zero_reg__ - 288:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** { - 793 .LM64: - 794 037a 8FEF ldi r24,-1 - 795 037c C816 cp r12,r24 - 796 037e D104 cpc r13,__zero_reg__ - 797 0380 E104 cpc r14,__zero_reg__ - 798 0382 F104 cpc r15,__zero_reg__ - 799 0384 01F0 breq .+2 - 800 0386 00F4 brsh .+2 - 801 0388 00C0 rjmp .L18 - 291:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** prescalarbits = _timer == 0 ? 0b101 : 0b111; - 803 .LM65: - 804 038a 8981 ldd r24,Y+1 - 805 038c 9A81 ldd r25,Y+2 - 806 038e AB81 ldd r26,Y+3 - 807 0390 BC81 ldd r27,Y+4 - 808 0392 3AE0 ldi r19,10 - 809 1: - 810 0394 B595 asr r27 - 811 0396 A795 ror r26 - 812 0398 9795 ror r25 - 813 039a 8795 ror r24 - 814 039c 3A95 dec r19 - 815 039e 01F4 brne 1b - 816 03a0 6C01 movw r12,r24 - 817 03a2 7D01 movw r14,r26 - 818 03a4 21E0 ldi r18,1 - 819 03a6 C21A sub r12,r18 - 820 03a8 D108 sbc r13,__zero_reg__ - 821 03aa E108 sbc r14,__zero_reg__ - 822 03ac F108 sbc r15,__zero_reg__ - 823 03ae 00C0 rjmp .L18 - 824 .L47: - 284:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** { - 826 .LM66: - 827 03b0 9FEF ldi r25,-1 - 828 03b2 C916 cp r12,r25 - 829 03b4 D104 cpc r13,__zero_reg__ - 830 03b6 E104 cpc r14,__zero_reg__ - 831 03b8 F104 cpc r15,__zero_reg__ - 832 03ba 01F0 breq .+2 - 833 03bc 00F4 brsh .L29 - 276:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 835 .LM67: - 836 03be 84E0 ldi r24,lo8(4) - 837 03c0 00C0 rjmp .L11 - 838 .L16: - 284:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** { - 840 .LM68: - 841 03c2 2FEF ldi r18,-1 - 842 03c4 C216 cp r12,r18 - 843 03c6 D104 cpc r13,__zero_reg__ - 844 03c8 E104 cpc r14,__zero_reg__ - 845 03ca F104 cpc r15,__zero_reg__ - 846 03cc 01F0 breq .L48 - 847 03ce 00F0 brlo .L48 - 286:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** prescalarbits = _timer == 0 ? 0b100 : 0b110; - 849 .LM69: - 850 03d0 62E1 ldi r22,lo8(18) - 851 03d2 7AE7 ldi r23,lo8(122) - 852 03d4 80E0 ldi r24,0 - 853 03d6 90E0 ldi r25,0 - 854 03d8 A501 movw r20,r10 - 855 03da 9401 movw r18,r8 - 856 03dc 0E94 0000 call __divmodsi4 - 857 03e0 6901 movw r12,r18 - 858 03e2 7A01 movw r14,r20 - 859 03e4 81E0 ldi r24,1 - 860 03e6 C81A sub r12,r24 - 861 03e8 D108 sbc r13,__zero_reg__ - 862 03ea E108 sbc r14,__zero_reg__ - 863 03ec F108 sbc r15,__zero_reg__ - 288:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** { - 865 .LM70: - 866 03ee 9FEF ldi r25,-1 - 867 03f0 C916 cp r12,r25 - 868 03f2 D104 cpc r13,__zero_reg__ - 869 03f4 E104 cpc r14,__zero_reg__ - 870 03f6 F104 cpc r15,__zero_reg__ - 871 03f8 01F0 breq .L49 - 872 03fa 00F0 brlo .L49 - 291:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** prescalarbits = _timer == 0 ? 0b101 : 0b111; - 874 .LM71: - 875 03fc 8981 ldd r24,Y+1 - 876 03fe 9A81 ldd r25,Y+2 - 877 0400 AB81 ldd r26,Y+3 - 878 0402 BC81 ldd r27,Y+4 - 879 0404 2AE0 ldi r18,10 - 880 1: - 881 0406 B595 asr r27 - 882 0408 A795 ror r26 - 883 040a 9795 ror r25 - 884 040c 8795 ror r24 - 885 040e 2A95 dec r18 - 886 0410 01F4 brne 1b - 887 0412 6C01 movw r12,r24 - 888 0414 7D01 movw r14,r26 - 889 0416 21E0 ldi r18,1 - 890 0418 C21A sub r12,r18 - 891 041a D108 sbc r13,__zero_reg__ - 892 041c E108 sbc r14,__zero_reg__ - 893 041e F108 sbc r15,__zero_reg__ - 292:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** } - 895 .LM72: - 896 0420 85E0 ldi r24,lo8(5) - 897 0422 00C0 rjmp .L28 - 898 .L49: - 287:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** if (ocr > 255) - 900 .LM73: - 901 0424 84E0 ldi r24,lo8(4) - 902 0426 00C0 rjmp .L28 - 903 .L48: - 276:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 905 .LM74: - 906 0428 83E0 ldi r24,lo8(3) - 907 042a 00C0 rjmp .L28 - 908 .L1: - 909 /* epilogue start */ - 911 .LM75: - 912 042c 0F90 pop __tmp_reg__ - 913 042e 0F90 pop __tmp_reg__ - 914 0430 0F90 pop __tmp_reg__ - 915 0432 0F90 pop __tmp_reg__ - 916 0434 0F90 pop __tmp_reg__ - 917 0436 DF91 pop r29 - 918 0438 CF91 pop r28 - 919 043a 1F91 pop r17 - 920 043c 0F91 pop r16 - 921 043e FF90 pop r15 - 922 0440 EF90 pop r14 - 923 0442 DF90 pop r13 - 924 0444 CF90 pop r12 - 925 0446 BF90 pop r11 - 926 0448 AF90 pop r10 - 927 044a 9F90 pop r9 - 928 044c 8F90 pop r8 - 929 044e 7F90 pop r7 - 930 0450 6F90 pop r6 - 931 0452 5F90 pop r5 - 932 0454 4F90 pop r4 - 933 0456 0895 ret - 945 .Lscope1: - 947 .stabd 78,0,0 - 950 .global _Z12disableTimerh - 952 _Z12disableTimerh: - 953 .stabd 46,0,0 - 421:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 422:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 423:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** // XXX: this function only works properly for timer 2 (the only one we use - 424:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** // currently). for the others, it should end the tone, but won't restore - 425:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** // proper PWM functionality for the timer. - 426:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** void disableTimer(uint8_t _timer) - 427:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** { - 955 .LM76: - 956 .LFBB2: - 957 /* prologue: function */ - 958 /* frame size = 0 */ - 959 /* stack size = 0 */ - 960 .L__stack_usage = 0 - 428:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** switch (_timer) - 962 .LM77: - 963 0458 8823 tst r24 - 964 045a 01F0 breq .L52 - 965 045c 8130 cpi r24,lo8(1) - 966 045e 01F0 breq .L53 - 967 0460 0895 ret - 968 .L52: - 429:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** { - 430:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** case 0: - 431:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #if defined(TIMSK0) - 432:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** TIMSK0 = 0; - 970 .LM78: - 971 0462 1092 6E00 sts 110,__zero_reg__ - 433:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #elif defined(TIMSK) - 434:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** TIMSK = 0; // atmega32 - 435:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #endif - 436:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** break; - 973 .LM79: - 974 0466 0895 ret - 975 .L53: - 976 .LBB51: - 977 .LBB52: - 437:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 438:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #if defined(TIMSK1) && defined(OCIE1A) - 439:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** case 1: - 440:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** bitWrite(TIMSK1, OCIE1A, 0); - 979 .LM80: - 980 0468 8091 6F00 lds r24,111 - 981 046c 8D7F andi r24,lo8(-3) - 982 046e 8093 6F00 sts 111,r24 - 983 0472 0895 ret - 984 .LBE52: - 985 .LBE51: - 987 .Lscope2: - 989 .stabd 78,0,0 - 992 .global _Z6noToneh - 994 _Z6noToneh: - 995 .stabd 46,0,0 - 441:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** break; - 442:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #endif - 443:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 444:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** case 2: - 445:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #if defined(TIMSK2) && defined(OCIE2A) - 446:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** // bitWrite(TIMSK2, OCIE2A, 0); // disable interrupt - 447:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #endif - 448:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #if defined(TCCR2A) && defined(WGM20) - 449:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** // TCCR2A = (1 << WGM20); - 450:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #endif - 451:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #if defined(TCCR2B) && defined(CS22) - 452:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** // TCCR2B = (TCCR2B & 0b11111000) | (1 << CS22); - 453:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #endif - 454:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #if defined(OCR2A) - 455:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** // OCR2A = 0; - 456:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #endif - 457:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** break; - 458:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 459:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #if defined(TIMSK3) && defined(OCIE3A) - 460:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** case 3: - 461:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** bitWrite(TIMSK3, OCIE3A, 0); - 462:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** break; - 463:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #endif - 464:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 465:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #if defined(TIMSK4) && defined(OCIE4A) - 466:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** case 4: - 467:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** bitWrite(TIMSK4, OCIE4A, 0); - 468:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** break; - 469:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #endif - 470:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 471:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #if defined(TIMSK5) && defined(OCIE5A) - 472:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** case 5: - 473:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** bitWrite(TIMSK5, OCIE5A, 0); - 474:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** break; - 475:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** #endif - 476:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** } - 477:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** } - 478:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 479:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 480:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** void noTone(uint8_t _pin) - 481:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** { - 997 .LM81: - 998 .LFBB3: - 999 0474 CF93 push r28 - 1000 /* prologue: function */ - 1001 /* frame size = 0 */ - 1002 /* stack size = 1 */ - 1003 .L__stack_usage = 1 - 1004 0476 C82F mov r28,r24 - 1005 .LBB53: - 1006 .LBB54: - 482:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** int8_t _timer = -1; - 483:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 484:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** for (int i = 0; i < AVAILABLE_TONE_PINS; i++) { - 485:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** if (tone_pins[i] == _pin) { - 1008 .LM82: - 1009 0478 8091 0000 lds r24,_ZL9tone_pins - 1010 047c C813 cpse r28,r24 - 1011 047e 00C0 rjmp .L56 - 1012 .LBB55: - 1013 .LBB56: - 486:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** _timer = pgm_read_byte(tone_pin_to_timer_PGM + i); - 1015 .LM83: - 1016 0480 E0E0 ldi r30,lo8(_ZL21tone_pin_to_timer_PGM) - 1017 0482 F0E0 ldi r31,hi8(_ZL21tone_pin_to_timer_PGM) - 1018 /* #APP */ - 1019 ; 486 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduin - 1020 0484 8491 lpm r24, Z - 1021 - 1022 ; 0 "" 2 - 1023 /* #NOAPP */ - 1024 .LBE56: - 487:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** tone_pins[i] = 255; - 1026 .LM84: - 1027 0486 9FEF ldi r25,lo8(-1) - 1028 0488 9093 0000 sts _ZL9tone_pins,r25 - 488:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** break; - 1030 .LM85: - 1031 048c 00C0 rjmp .L55 - 1032 .L56: - 1033 .LBE55: - 1034 .LBE54: - 1035 .LBE53: - 482:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 1037 .LM86: - 1038 048e 8FEF ldi r24,lo8(-1) - 1039 .L55: - 489:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** } - 490:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** } - 491:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 492:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** disableTimer(_timer); - 1041 .LM87: - 1042 0490 0E94 0000 call _Z12disableTimerh - 493:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** - 494:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** digitalWrite(_pin, 0); - 1044 .LM88: - 1045 0494 60E0 ldi r22,0 - 1046 0496 8C2F mov r24,r28 - 1047 /* epilogue start */ - 495:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** } - 1049 .LM89: - 1050 0498 CF91 pop r28 - 494:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Tone.cpp **** } - 1052 .LM90: - 1053 049a 0C94 0000 jmp digitalWrite - 1058 .Lscope3: - 1060 .stabd 78,0,0 - 1061 .data - 1064 _ZL9tone_pins: - 1065 0000 FF .byte -1 - 1066 .section .progmem.data,"a",@progbits - 1069 _ZL21tone_pin_to_timer_PGM: - 1070 0000 02 .byte 2 - 1071 .global timer2_pin_mask - 1072 .section .bss - 1075 timer2_pin_mask: - 1076 0000 00 .zero 1 - 1077 .global timer2_pin_port - 1080 timer2_pin_port: - 1081 0001 0000 .zero 2 - 1082 .global timer2_toggle_count - 1085 timer2_toggle_count: - 1086 0003 0000 0000 .zero 4 - 1087 .global timer1_pin_mask - 1090 timer1_pin_mask: - 1091 0007 00 .zero 1 - 1092 .global timer1_pin_port - 1095 timer1_pin_port: - 1096 0008 0000 .zero 2 - 1097 .global timer1_toggle_count - 1100 timer1_toggle_count: - 1101 000a 0000 0000 .zero 4 - 1102 .global timer0_pin_mask - 1105 timer0_pin_mask: - 1106 000e 00 .zero 1 - 1107 .global timer0_pin_port - 1110 timer0_pin_port: - 1111 000f 0000 .zero 2 - 1112 .global timer0_toggle_count - 1115 timer0_toggle_count: - 1116 0011 0000 0000 .zero 4 - 1142 .text - 1144 .Letext0: - 1145 .ident "GCC: (GNU) 5.4.0" - 1146 .global __do_copy_data - 1147 .global __do_clear_bss -DEFINED SYMBOLS - *ABS*:0000000000000000 Tone.cpp - /tmp/cc4wHWXh.s:2 *ABS*:000000000000003e __SP_H__ - /tmp/cc4wHWXh.s:3 *ABS*:000000000000003d __SP_L__ - /tmp/cc4wHWXh.s:4 *ABS*:000000000000003f __SREG__ - /tmp/cc4wHWXh.s:5 *ABS*:0000000000000000 __tmp_reg__ - /tmp/cc4wHWXh.s:6 *ABS*:0000000000000001 __zero_reg__ - /tmp/cc4wHWXh.s:137 .text:0000000000000000 _Z4tonehjm - /tmp/cc4wHWXh.s:1064 .data:0000000000000000 _ZL9tone_pins - /tmp/cc4wHWXh.s:1069 .progmem.data:0000000000000000 _ZL21tone_pin_to_timer_PGM - /tmp/cc4wHWXh.s:1095 .bss:0000000000000008 timer1_pin_port - /tmp/cc4wHWXh.s:1090 .bss:0000000000000007 timer1_pin_mask - /tmp/cc4wHWXh.s:1110 .bss:000000000000000f timer0_pin_port - /tmp/cc4wHWXh.s:1105 .bss:000000000000000e timer0_pin_mask - /tmp/cc4wHWXh.s:1115 .bss:0000000000000011 timer0_toggle_count - /tmp/cc4wHWXh.s:1100 .bss:000000000000000a timer1_toggle_count - /tmp/cc4wHWXh.s:952 .text:0000000000000458 _Z12disableTimerh - /tmp/cc4wHWXh.s:994 .text:0000000000000474 _Z6noToneh - /tmp/cc4wHWXh.s:1075 .bss:0000000000000000 timer2_pin_mask - /tmp/cc4wHWXh.s:1080 .bss:0000000000000001 timer2_pin_port - /tmp/cc4wHWXh.s:1085 .bss:0000000000000003 timer2_toggle_count - -UNDEFINED SYMBOLS -digital_pin_to_port_PGM -port_to_output_PGM -digital_pin_to_bit_mask_PGM -pinMode -__divmodsi4 -__muluhisi3 -__udivmodsi4 -digitalWrite -__do_copy_data -__do_clear_bss diff --git a/arduino/hardware/arduino/avr/cores/arduino/Tone.o b/arduino/hardware/arduino/avr/cores/arduino/Tone.o deleted file mode 100644 index c65cb9d02d9b2b3253f7a325ce26bdf36ced4fc8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25380 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 diff --git a/arduino/hardware/arduino/avr/cores/arduino/USBCore.d b/arduino/hardware/arduino/avr/cores/arduino/USBCore.d deleted file mode 100644 index b49aeb2..0000000 --- a/arduino/hardware/arduino/avr/cores/arduino/USBCore.d +++ /dev/null @@ -1,13 +0,0 @@ -USBCore.o USBCore.d : \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/USBCore.cpp \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/USBAPI.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Arduino.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/binary.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WCharacter.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/HardwareSerial.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Print.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Printable.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8/hardware/arduino/avr/variants/standard/pins_arduino.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/PluggableUSB.h diff --git a/arduino/hardware/arduino/avr/cores/arduino/USBCore.lst b/arduino/hardware/arduino/avr/cores/arduino/USBCore.lst deleted file mode 100644 index ebb5764..0000000 --- a/arduino/hardware/arduino/avr/cores/arduino/USBCore.lst +++ /dev/null @@ -1,19 +0,0 @@ - 1 .file "USBCore.cpp" - 2 __SP_H__ = 0x3e - 3 __SP_L__ = 0x3d - 4 __SREG__ = 0x3f - 5 __tmp_reg__ = 0 - 6 __zero_reg__ = 1 - 9 .text - 10 .Ltext0: - 146 .Letext0: - 147 .ident "GCC: (GNU) 5.4.0" -DEFINED SYMBOLS - *ABS*:0000000000000000 USBCore.cpp - /tmp/cc3aPVgB.s:2 *ABS*:000000000000003e __SP_H__ - /tmp/cc3aPVgB.s:3 *ABS*:000000000000003d __SP_L__ - /tmp/cc3aPVgB.s:4 *ABS*:000000000000003f __SREG__ - /tmp/cc3aPVgB.s:5 *ABS*:0000000000000000 __tmp_reg__ - /tmp/cc3aPVgB.s:6 *ABS*:0000000000000001 __zero_reg__ - -NO UNDEFINED SYMBOLS diff --git a/arduino/hardware/arduino/avr/cores/arduino/USBCore.o b/arduino/hardware/arduino/avr/cores/arduino/USBCore.o deleted file mode 100644 index ff2aa89d33163e090c20ab8b0d579f2b3dbd19c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18240 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 wY`o_oSN?*7Fl#*ev@`bH - 28:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** #include - 29:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** #include - 30:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** #include - 31:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** #include - 32:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** - 33:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** #include "wiring_private.h" - 34:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** - 35:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** static void nothing(void) { - 137 .LM0: - 138 .LFBB1: - 139 /* prologue: function */ - 140 /* frame size = 0 */ - 141 /* stack size = 0 */ - 142 .L__stack_usage = 0 - 143 0000 0895 ret - 145 .Lscope1: - 147 .stabd 78,0,0 - 152 .global attachInterrupt - 154 attachInterrupt: - 155 .stabd 46,0,0 - 36:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** } - 37:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** - 38:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** static volatile voidFuncPtr intFunc[EXTERNAL_NUM_INTERRUPTS] = { - 39:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** #if EXTERNAL_NUM_INTERRUPTS > 8 - 40:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** #warning There are more than 8 external interrupts. Some callbacks may not be initialized. - 41:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** nothing, - 42:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** #endif - 43:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** #if EXTERNAL_NUM_INTERRUPTS > 7 - 44:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** nothing, - 45:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** #endif - 46:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** #if EXTERNAL_NUM_INTERRUPTS > 6 - 47:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** nothing, - 48:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** #endif - 49:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** #if EXTERNAL_NUM_INTERRUPTS > 5 - 50:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** nothing, - 51:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** #endif - 52:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** #if EXTERNAL_NUM_INTERRUPTS > 4 - 53:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** nothing, - 54:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** #endif - 55:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** #if EXTERNAL_NUM_INTERRUPTS > 3 - 56:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** nothing, - 57:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** #endif - 58:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** #if EXTERNAL_NUM_INTERRUPTS > 2 - 59:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** nothing, - 60:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** #endif - 61:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** #if EXTERNAL_NUM_INTERRUPTS > 1 - 62:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** nothing, - 63:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** #endif - 64:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** #if EXTERNAL_NUM_INTERRUPTS > 0 - 65:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** nothing, - 66:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** #endif - 67:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** }; - 68:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** // volatile static voidFuncPtr twiIntFunc; - 69:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** - 70:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** void attachInterrupt(uint8_t interruptNum, void (*userFunc)(void), int mode) { - 157 .LM1: - 158 .LFBB2: - 159 /* prologue: function */ - 160 /* frame size = 0 */ - 161 /* stack size = 0 */ - 162 .L__stack_usage = 0 - 71:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** if(interruptNum < EXTERNAL_NUM_INTERRUPTS) { - 164 .LM2: - 165 0002 8230 cpi r24,lo8(2) - 166 0004 00F4 brsh .L2 - 72:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** intFunc[interruptNum] = userFunc; - 168 .LM3: - 169 0006 E82F mov r30,r24 - 170 0008 F0E0 ldi r31,0 - 171 000a EE0F lsl r30 - 172 000c FF1F rol r31 - 173 000e E050 subi r30,lo8(-(intFunc)) - 174 0010 F040 sbci r31,hi8(-(intFunc)) - 175 0012 7183 std Z+1,r23 - 176 0014 6083 st Z,r22 - 73:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** - 74:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** // Configure the interrupt mode (trigger on low input, any change, rising - 75:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** // edge, or falling edge). The mode constants were chosen to correspond - 76:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** // to the configuration bits in the hardware register, so we simply shift - 77:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** // the mode into place. - 78:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** - 79:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** // Enable the interrupt. - 80:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** - 81:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** switch (interruptNum) { - 178 .LM4: - 179 0016 8130 cpi r24,lo8(1) - 180 0018 01F0 breq .L5 - 82:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** #if defined(__AVR_ATmega32U4__) - 83:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** // I hate doing this, but the register assignment differs between the 1280/2560 - 84:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** // and the 32U4. Since avrlib defines registers PCMSK1 and PCMSK2 that aren't - 85:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** // even present on the 32U4 this is the only way to distinguish between them. - 86:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** case 0: - 87:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WInterrupts.c **** EICRA = (EICRA & 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 howbig) { - 182 .LM9: - 183 0050 6217 cp r22,r18 - 184 0052 7307 cpc r23,r19 - 185 0054 8407 cpc r24,r20 - 186 0056 9507 cpc r25,r21 - 187 0058 04F4 brge .L8 - 188 005a 8901 movw r16,r18 - 189 005c 9A01 movw r18,r20 - 190 005e 6B01 movw r12,r22 - 191 0060 7C01 movw r14,r24 - 46:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WMath.cpp **** return howsmall; - 47:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WMath.cpp **** } - 48:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WMath.cpp **** long diff = howbig - howsmall; - 49:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WMath.cpp **** return random(diff) + howsmall; - 193 .LM10: - 194 0062 C901 movw r24,r18 - 195 0064 B801 movw r22,r16 - 196 0066 6C19 sub r22,r12 - 197 0068 7D09 sbc r23,r13 - 198 006a 8E09 sbc r24,r14 - 199 006c 9F09 sbc r25,r15 - 200 006e 0E94 0000 call _Z6randoml - 201 0072 6C0D add r22,r12 - 202 0074 7D1D adc r23,r13 - 203 0076 8E1D adc r24,r14 - 204 0078 9F1D adc r25,r15 - 205 .L8: - 206 /* epilogue start */ - 50:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WMath.cpp **** } - 208 .LM11: - 209 007a 1F91 pop r17 - 210 007c 0F91 pop r16 - 211 007e FF90 pop r15 - 212 0080 EF90 pop r14 - 213 0082 DF90 pop r13 - 214 0084 CF90 pop r12 - 215 0086 0895 ret - 217 .Lscope3: - 219 .stabd 78,0,0 - 226 .global _Z3maplllll - 228 _Z3maplllll: - 229 .stabd 46,0,0 - 51:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WMath.cpp **** - 52:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WMath.cpp **** long map(long x, long in_min, long in_max, long out_min, long out_max) - 53:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WMath.cpp **** { - 231 .LM12: - 232 .LFBB4: - 233 0088 4F92 push r4 - 234 008a 5F92 push r5 - 235 008c 6F92 push r6 - 236 008e 7F92 push r7 - 237 0090 AF92 push r10 - 238 0092 BF92 push r11 - 239 0094 CF92 push r12 - 240 0096 DF92 push r13 - 241 0098 EF92 push r14 - 242 009a FF92 push r15 - 243 009c 0F93 push r16 - 244 009e 1F93 push r17 - 245 00a0 CF93 push r28 - 246 00a2 DF93 push r29 - 247 00a4 CDB7 in r28,__SP_L__ - 248 00a6 DEB7 in r29,__SP_H__ - 249 /* prologue: function */ - 250 /* frame size = 0 */ - 251 /* stack size = 14 */ - 252 .L__stack_usage = 14 - 253 00a8 2901 movw r4,r18 - 254 00aa 3A01 movw r6,r20 - 54:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WMath.cpp **** return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; - 256 .LM13: - 257 00ac 9B01 movw r18,r22 - 258 00ae AC01 movw r20,r24 - 259 00b0 2419 sub r18,r4 - 260 00b2 3509 sbc r19,r5 - 261 00b4 4609 sbc r20,r6 - 262 00b6 5709 sbc r21,r7 - 263 00b8 8989 ldd r24,Y+17 - 264 00ba 9A89 ldd r25,Y+18 - 265 00bc AB89 ldd r26,Y+19 - 266 00be BC89 ldd r27,Y+20 - 267 00c0 BC01 movw r22,r24 - 268 00c2 CD01 movw r24,r26 - 269 00c4 6A19 sub r22,r10 - 270 00c6 7B09 sbc r23,r11 - 271 00c8 8C09 sbc r24,r12 - 272 00ca 9D09 sbc r25,r13 - 273 00cc 0E94 0000 call __mulsi3 - 274 00d0 A801 movw r20,r16 - 275 00d2 9701 movw r18,r14 - 276 00d4 2419 sub r18,r4 - 277 00d6 3509 sbc r19,r5 - 278 00d8 4609 sbc r20,r6 - 279 00da 5709 sbc r21,r7 - 280 00dc 0E94 0000 call __divmodsi4 - 281 00e0 CA01 movw r24,r20 - 282 00e2 B901 movw r22,r18 - 283 00e4 6A0D add r22,r10 - 284 00e6 7B1D adc r23,r11 - 285 00e8 8C1D adc r24,r12 - 286 00ea 9D1D adc r25,r13 - 287 /* epilogue start */ - 55:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WMath.cpp **** } - 289 .LM14: - 290 00ec DF91 pop r29 - 291 00ee CF91 pop r28 - 292 00f0 1F91 pop r17 - 293 00f2 0F91 pop r16 - 294 00f4 FF90 pop r15 - 295 00f6 EF90 pop r14 - 296 00f8 DF90 pop r13 - 297 00fa CF90 pop r12 - 298 00fc BF90 pop r11 - 299 00fe AF90 pop r10 - 300 0100 7F90 pop r7 - 301 0102 6F90 pop r6 - 302 0104 5F90 pop r5 - 303 0106 4F90 pop r4 - 304 0108 0895 ret - 307 .Lscope4: - 309 .stabd 78,0,0 - 312 .global _Z8makeWordj - 314 _Z8makeWordj: - 315 .stabd 46,0,0 - 56:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WMath.cpp **** - 57:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WMath.cpp **** unsigned int makeWord(unsigned int w) { return w; } - 317 .LM15: - 318 .LFBB5: - 319 /* prologue: function */ - 320 /* frame size = 0 */ - 321 /* stack size = 0 */ - 322 .L__stack_usage = 0 - 324 .LM16: - 325 010a 0895 ret - 327 .Lscope5: - 329 .stabd 78,0,0 - 333 .global _Z8makeWordhh - 335 _Z8makeWordhh: - 336 .stabd 46,0,0 - 58:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WMath.cpp **** unsigned int makeWord(unsigned char h, unsigned char l) { return (h << 8) | l; } - 338 .LM17: - 339 .LFBB6: - 340 /* prologue: function */ - 341 /* frame size = 0 */ - 342 /* stack size = 0 */ - 343 .L__stack_usage = 0 - 345 .LM18: - 346 010c 70E0 ldi r23,0 - 347 010e 9B01 movw r18,r22 - 348 0110 382B or r19,r24 - 349 0112 C901 movw r24,r18 - 350 0114 0895 ret - 352 .Lscope6: - 354 .stabd 78,0,0 - 356 .Letext0: - 357 .ident "GCC: (GNU) 5.4.0" -DEFINED SYMBOLS - *ABS*:0000000000000000 WMath.cpp - /tmp/ccjDyHpf.s:2 *ABS*:000000000000003e __SP_H__ - /tmp/ccjDyHpf.s:3 *ABS*:000000000000003d __SP_L__ - /tmp/ccjDyHpf.s:4 *ABS*:000000000000003f __SREG__ - /tmp/ccjDyHpf.s:5 *ABS*:0000000000000000 __tmp_reg__ - /tmp/ccjDyHpf.s:6 *ABS*:0000000000000001 __zero_reg__ - /tmp/ccjDyHpf.s:84 .text:0000000000000000 _Z10randomSeedm - /tmp/ccjDyHpf.s:113 .text:0000000000000010 _Z6randoml - /tmp/ccjDyHpf.s:166 .text:0000000000000044 _Z6randomll - /tmp/ccjDyHpf.s:228 .text:0000000000000088 _Z3maplllll - /tmp/ccjDyHpf.s:314 .text:000000000000010a _Z8makeWordj - /tmp/ccjDyHpf.s:335 .text:000000000000010c _Z8makeWordhh - -UNDEFINED SYMBOLS -srandom -random -__divmodsi4 -__mulsi3 diff --git a/arduino/hardware/arduino/avr/cores/arduino/WMath.o b/arduino/hardware/arduino/avr/cores/arduino/WMath.o deleted file mode 100644 index 71f99712b6871a6aad0de021e2818cb327adc146..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6872 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 - 49:/usr/lib/avr/include/stdlib.h **** - 50:/usr/lib/avr/include/stdlib.h **** #ifndef __ptr_t - 51:/usr/lib/avr/include/stdlib.h **** #define __ptr_t void * - 52:/usr/lib/avr/include/stdlib.h **** #endif - 53:/usr/lib/avr/include/stdlib.h **** #endif /* !__DOXYGEN__ */ - 54:/usr/lib/avr/include/stdlib.h **** - 55:/usr/lib/avr/include/stdlib.h **** #ifdef __cplusplus - 56:/usr/lib/avr/include/stdlib.h **** extern "C" { - 57:/usr/lib/avr/include/stdlib.h **** #endif - 58:/usr/lib/avr/include/stdlib.h **** - 59:/usr/lib/avr/include/stdlib.h **** /** \file */ - 60:/usr/lib/avr/include/stdlib.h **** - 61:/usr/lib/avr/include/stdlib.h **** /** \defgroup avr_stdlib : General utilities - 62:/usr/lib/avr/include/stdlib.h **** \code #include \endcode - 63:/usr/lib/avr/include/stdlib.h **** - 64:/usr/lib/avr/include/stdlib.h **** This file declares some basic C macros and functions as - 65:/usr/lib/avr/include/stdlib.h **** defined by the ISO standard, plus some AVR-specific extensions. - 66:/usr/lib/avr/include/stdlib.h **** */ - 67:/usr/lib/avr/include/stdlib.h **** - 68:/usr/lib/avr/include/stdlib.h **** /*@{*/ - 69:/usr/lib/avr/include/stdlib.h **** /** Result type for function div(). */ - 70:/usr/lib/avr/include/stdlib.h **** typedef struct { - 71:/usr/lib/avr/include/stdlib.h **** int quot; /**< The Quotient. */ - 72:/usr/lib/avr/include/stdlib.h **** int rem; /**< The Remainder. */ - 73:/usr/lib/avr/include/stdlib.h **** } div_t; - 74:/usr/lib/avr/include/stdlib.h **** - 75:/usr/lib/avr/include/stdlib.h **** /** Result type for function ldiv(). */ - 76:/usr/lib/avr/include/stdlib.h **** typedef struct { - 77:/usr/lib/avr/include/stdlib.h **** long quot; /**< The Quotient. */ - 78:/usr/lib/avr/include/stdlib.h **** long rem; /**< The Remainder. */ - 79:/usr/lib/avr/include/stdlib.h **** } ldiv_t; - 80:/usr/lib/avr/include/stdlib.h **** - 81:/usr/lib/avr/include/stdlib.h **** /** Comparision function type for qsort(), just for convenience. */ - 82:/usr/lib/avr/include/stdlib.h **** typedef int (*__compar_fn_t)(const void *, const void *); - 83:/usr/lib/avr/include/stdlib.h **** - 84:/usr/lib/avr/include/stdlib.h **** #ifndef __DOXYGEN__ - 85:/usr/lib/avr/include/stdlib.h **** - 86:/usr/lib/avr/include/stdlib.h **** #ifndef __ATTR_CONST__ - 87:/usr/lib/avr/include/stdlib.h **** # define __ATTR_CONST__ __attribute__((__const__)) - 88:/usr/lib/avr/include/stdlib.h **** #endif - 89:/usr/lib/avr/include/stdlib.h **** - 90:/usr/lib/avr/include/stdlib.h **** #ifndef __ATTR_MALLOC__ - 91:/usr/lib/avr/include/stdlib.h **** # define __ATTR_MALLOC__ __attribute__((__malloc__)) - 92:/usr/lib/avr/include/stdlib.h **** #endif - 93:/usr/lib/avr/include/stdlib.h **** - 94:/usr/lib/avr/include/stdlib.h **** #ifndef __ATTR_NORETURN__ - 95:/usr/lib/avr/include/stdlib.h **** # define __ATTR_NORETURN__ __attribute__((__noreturn__)) - 96:/usr/lib/avr/include/stdlib.h **** #endif - 97:/usr/lib/avr/include/stdlib.h **** - 98:/usr/lib/avr/include/stdlib.h **** #ifndef __ATTR_PURE__ - 99:/usr/lib/avr/include/stdlib.h **** # define __ATTR_PURE__ __attribute__((__pure__)) - 100:/usr/lib/avr/include/stdlib.h **** #endif - 101:/usr/lib/avr/include/stdlib.h **** - 102:/usr/lib/avr/include/stdlib.h **** #ifndef __ATTR_GNU_INLINE__ - 103:/usr/lib/avr/include/stdlib.h **** # ifdef __GNUC_STDC_INLINE__ - 104:/usr/lib/avr/include/stdlib.h **** # define __ATTR_GNU_INLINE__ __attribute__((__gnu_inline__)) - 105:/usr/lib/avr/include/stdlib.h **** # else - 106:/usr/lib/avr/include/stdlib.h **** # define __ATTR_GNU_INLINE__ - 107:/usr/lib/avr/include/stdlib.h **** # endif - 108:/usr/lib/avr/include/stdlib.h **** #endif - 109:/usr/lib/avr/include/stdlib.h **** - 110:/usr/lib/avr/include/stdlib.h **** #endif - 111:/usr/lib/avr/include/stdlib.h **** - 112:/usr/lib/avr/include/stdlib.h **** /** The abort() function causes abnormal program termination to occur. - 113:/usr/lib/avr/include/stdlib.h **** This realization disables interrupts and jumps to _exit() function - 114:/usr/lib/avr/include/stdlib.h **** with argument equal to 1. In the limited AVR environment, execution is - 115:/usr/lib/avr/include/stdlib.h **** effectively halted by entering an infinite loop. */ - 116:/usr/lib/avr/include/stdlib.h **** extern void abort(void) __ATTR_NORETURN__; - 117:/usr/lib/avr/include/stdlib.h **** - 118:/usr/lib/avr/include/stdlib.h **** /** The abs() function computes the absolute value of the integer \c i. - 119:/usr/lib/avr/include/stdlib.h **** \note The abs() and labs() functions are builtins of gcc. - 120:/usr/lib/avr/include/stdlib.h **** */ - 121:/usr/lib/avr/include/stdlib.h **** extern int abs(int __i) __ATTR_CONST__; - 122:/usr/lib/avr/include/stdlib.h **** #ifndef __DOXYGEN__ - 123:/usr/lib/avr/include/stdlib.h **** #define abs(__i) __builtin_abs(__i) - 124:/usr/lib/avr/include/stdlib.h **** #endif - 125:/usr/lib/avr/include/stdlib.h **** - 126:/usr/lib/avr/include/stdlib.h **** /** The labs() function computes the absolute value of the long integer - 127:/usr/lib/avr/include/stdlib.h **** \c i. - 128:/usr/lib/avr/include/stdlib.h **** \note The abs() and labs() functions are builtins of gcc. - 129:/usr/lib/avr/include/stdlib.h **** */ - 130:/usr/lib/avr/include/stdlib.h **** extern long labs(long __i) __ATTR_CONST__; - 131:/usr/lib/avr/include/stdlib.h **** #ifndef __DOXYGEN__ - 132:/usr/lib/avr/include/stdlib.h **** #define labs(__i) __builtin_labs(__i) - 133:/usr/lib/avr/include/stdlib.h **** #endif - 134:/usr/lib/avr/include/stdlib.h **** - 135:/usr/lib/avr/include/stdlib.h **** /** - 136:/usr/lib/avr/include/stdlib.h **** The bsearch() function searches an array of \c nmemb objects, the - 137:/usr/lib/avr/include/stdlib.h **** initial member of which is pointed to by \c base, for a member - 138:/usr/lib/avr/include/stdlib.h **** that matches the object pointed to by \c key. The size of each - 139:/usr/lib/avr/include/stdlib.h **** member of the array is specified by \c size. - 140:/usr/lib/avr/include/stdlib.h **** - 141:/usr/lib/avr/include/stdlib.h **** The contents of the array should be in ascending sorted order - 142:/usr/lib/avr/include/stdlib.h **** according to the comparison function referenced by \c compar. - 143:/usr/lib/avr/include/stdlib.h **** The \c compar routine is expected to have two arguments which - 144:/usr/lib/avr/include/stdlib.h **** point to the key object and to an array member, in that order, - 145:/usr/lib/avr/include/stdlib.h **** and should return an integer less than, equal to, or greater than - 146:/usr/lib/avr/include/stdlib.h **** zero if the key object is found, respectively, to be less than, - 147:/usr/lib/avr/include/stdlib.h **** to match, or be greater than the array member. - 148:/usr/lib/avr/include/stdlib.h **** - 149:/usr/lib/avr/include/stdlib.h **** The bsearch() function returns a pointer to a matching member of - 150:/usr/lib/avr/include/stdlib.h **** the array, or a null pointer if no match is found. If two - 151:/usr/lib/avr/include/stdlib.h **** members compare as equal, which member is matched is unspecified. - 152:/usr/lib/avr/include/stdlib.h **** */ - 153:/usr/lib/avr/include/stdlib.h **** extern void *bsearch(const void *__key, const void *__base, size_t __nmemb, - 154:/usr/lib/avr/include/stdlib.h **** size_t __size, int (*__compar)(const void *, const void *)); - 155:/usr/lib/avr/include/stdlib.h **** - 156:/usr/lib/avr/include/stdlib.h **** /* __divmodhi4 and __divmodsi4 from libgcc.a */ - 157:/usr/lib/avr/include/stdlib.h **** /** - 158:/usr/lib/avr/include/stdlib.h **** The div() function computes the value \c num/denom and returns - 159:/usr/lib/avr/include/stdlib.h **** the quotient and remainder in a structure named \c div_t that - 160:/usr/lib/avr/include/stdlib.h **** contains two int members named \c quot and \c rem. - 161:/usr/lib/avr/include/stdlib.h **** */ - 162:/usr/lib/avr/include/stdlib.h **** extern div_t div(int __num, int __denom) __asm__("__divmodhi4") __ATTR_CONST__; - 163:/usr/lib/avr/include/stdlib.h **** /** - 164:/usr/lib/avr/include/stdlib.h **** The ldiv() function computes the value \c num/denom and returns - 165:/usr/lib/avr/include/stdlib.h **** the quotient and remainder in a structure named \c ldiv_t that - 166:/usr/lib/avr/include/stdlib.h **** contains two long integer members named \c quot and \c rem. - 167:/usr/lib/avr/include/stdlib.h **** */ - 168:/usr/lib/avr/include/stdlib.h **** extern ldiv_t ldiv(long __num, long __denom) __asm__("__divmodsi4") __ATTR_CONST__; - 169:/usr/lib/avr/include/stdlib.h **** - 170:/usr/lib/avr/include/stdlib.h **** /** - 171:/usr/lib/avr/include/stdlib.h **** The qsort() function is a modified partition-exchange sort, or - 172:/usr/lib/avr/include/stdlib.h **** quicksort. - 173:/usr/lib/avr/include/stdlib.h **** - 174:/usr/lib/avr/include/stdlib.h **** The qsort() function sorts an array of \c nmemb objects, the - 175:/usr/lib/avr/include/stdlib.h **** initial member of which is pointed to by \c base. The size of - 176:/usr/lib/avr/include/stdlib.h **** each object is specified by \c size. The contents of the array - 177:/usr/lib/avr/include/stdlib.h **** base are sorted in ascending order according to a comparison - 178:/usr/lib/avr/include/stdlib.h **** function pointed to by \c compar, which requires two arguments - 179:/usr/lib/avr/include/stdlib.h **** pointing to the objects being compared. - 180:/usr/lib/avr/include/stdlib.h **** - 181:/usr/lib/avr/include/stdlib.h **** The comparison function must return an integer less than, equal - 182:/usr/lib/avr/include/stdlib.h **** to, or greater than zero if the first argument is considered to - 183:/usr/lib/avr/include/stdlib.h **** be respectively less than, equal to, or greater than the second. - 184:/usr/lib/avr/include/stdlib.h **** */ - 185:/usr/lib/avr/include/stdlib.h **** extern void qsort(void *__base, size_t __nmemb, size_t __size, - 186:/usr/lib/avr/include/stdlib.h **** __compar_fn_t __compar); - 187:/usr/lib/avr/include/stdlib.h **** - 188:/usr/lib/avr/include/stdlib.h **** /** - 189:/usr/lib/avr/include/stdlib.h **** The strtol() function converts the string in \c nptr to a long - 190:/usr/lib/avr/include/stdlib.h **** value. The conversion is done according to the given base, which - 191:/usr/lib/avr/include/stdlib.h **** must be between 2 and 36 inclusive, or be the special value 0. - 192:/usr/lib/avr/include/stdlib.h **** - 193:/usr/lib/avr/include/stdlib.h **** The string may begin with an arbitrary amount of white space (as - 194:/usr/lib/avr/include/stdlib.h **** determined by isspace()) followed by a single optional \c '+' or \c '-' - 195:/usr/lib/avr/include/stdlib.h **** sign. If \c base is zero or 16, the string may then include a - 196:/usr/lib/avr/include/stdlib.h **** \c "0x" prefix, and the number will be read in base 16; otherwise, - 197:/usr/lib/avr/include/stdlib.h **** a zero base is taken as 10 (decimal) unless the next character is - 198:/usr/lib/avr/include/stdlib.h **** \c '0', in which case it is taken as 8 (octal). - 199:/usr/lib/avr/include/stdlib.h **** - 200:/usr/lib/avr/include/stdlib.h **** The remainder of the string is converted to a long value in the - 201:/usr/lib/avr/include/stdlib.h **** obvious manner, stopping at the first character which is not a - 202:/usr/lib/avr/include/stdlib.h **** valid digit in the given base. (In bases above 10, the letter \c 'A' - 203:/usr/lib/avr/include/stdlib.h **** in either upper or lower case represents 10, \c 'B' represents 11, - 204:/usr/lib/avr/include/stdlib.h **** and so forth, with \c 'Z' representing 35.) - 205:/usr/lib/avr/include/stdlib.h **** - 206:/usr/lib/avr/include/stdlib.h **** If \c endptr is not NULL, strtol() stores the address of the first - 207:/usr/lib/avr/include/stdlib.h **** invalid character in \c *endptr. If there were no digits at all, - 208:/usr/lib/avr/include/stdlib.h **** however, strtol() stores the original value of \c nptr in \c - 209:/usr/lib/avr/include/stdlib.h **** *endptr. (Thus, if \c *nptr is not \c '\\0' but \c **endptr is \c '\\0' - 210:/usr/lib/avr/include/stdlib.h **** on return, the entire string was valid.) - 211:/usr/lib/avr/include/stdlib.h **** - 212:/usr/lib/avr/include/stdlib.h **** The strtol() function returns the result of the conversion, unless - 213:/usr/lib/avr/include/stdlib.h **** the value would underflow or overflow. If no conversion could be - 214:/usr/lib/avr/include/stdlib.h **** performed, 0 is returned. If an overflow or underflow occurs, \c - 215:/usr/lib/avr/include/stdlib.h **** errno is set to \ref avr_errno "ERANGE" and the function return value - 216:/usr/lib/avr/include/stdlib.h **** is clamped to \c LONG_MIN or \c LONG_MAX, respectively. - 217:/usr/lib/avr/include/stdlib.h **** */ - 218:/usr/lib/avr/include/stdlib.h **** extern long strtol(const char *__nptr, char **__endptr, int __base); - 219:/usr/lib/avr/include/stdlib.h **** - 220:/usr/lib/avr/include/stdlib.h **** /** - 221:/usr/lib/avr/include/stdlib.h **** The strtoul() function converts the string in \c nptr to an - 222:/usr/lib/avr/include/stdlib.h **** unsigned long value. The conversion is done according to the - 223:/usr/lib/avr/include/stdlib.h **** given base, which must be between 2 and 36 inclusive, or be the - 224:/usr/lib/avr/include/stdlib.h **** special value 0. - 225:/usr/lib/avr/include/stdlib.h **** - 226:/usr/lib/avr/include/stdlib.h **** The string may begin with an arbitrary amount of white space (as - 227:/usr/lib/avr/include/stdlib.h **** determined by isspace()) followed by a single optional \c '+' or \c '-' - 228:/usr/lib/avr/include/stdlib.h **** sign. If \c base is zero or 16, the string may then include a - 229:/usr/lib/avr/include/stdlib.h **** \c "0x" prefix, and the number will be read in base 16; otherwise, - 230:/usr/lib/avr/include/stdlib.h **** a zero base is taken as 10 (decimal) unless the next character is - 231:/usr/lib/avr/include/stdlib.h **** \c '0', in which case it is taken as 8 (octal). - 232:/usr/lib/avr/include/stdlib.h **** - 233:/usr/lib/avr/include/stdlib.h **** The remainder of the string is converted to an unsigned long value - 234:/usr/lib/avr/include/stdlib.h **** in the obvious manner, stopping at the first character which is - 235:/usr/lib/avr/include/stdlib.h **** not a valid digit in the given base. (In bases above 10, the - 236:/usr/lib/avr/include/stdlib.h **** letter \c 'A' in either upper or lower case represents 10, \c 'B' - 237:/usr/lib/avr/include/stdlib.h **** represents 11, and so forth, with \c 'Z' representing 35.) - 238:/usr/lib/avr/include/stdlib.h **** - 239:/usr/lib/avr/include/stdlib.h **** If \c endptr is not NULL, strtoul() stores the address of the first - 240:/usr/lib/avr/include/stdlib.h **** invalid character in \c *endptr. If there were no digits at all, - 241:/usr/lib/avr/include/stdlib.h **** however, strtoul() stores the original value of \c nptr in \c - 242:/usr/lib/avr/include/stdlib.h **** *endptr. (Thus, if \c *nptr is not \c '\\0' but \c **endptr is \c '\\0' - 243:/usr/lib/avr/include/stdlib.h **** on return, the entire string was valid.) - 244:/usr/lib/avr/include/stdlib.h **** - 245:/usr/lib/avr/include/stdlib.h **** The strtoul() function return either the result of the conversion - 246:/usr/lib/avr/include/stdlib.h **** or, if there was a leading minus sign, the negation of the result - 247:/usr/lib/avr/include/stdlib.h **** of the conversion, unless the original (non-negated) value would - 248:/usr/lib/avr/include/stdlib.h **** overflow; in the latter case, strtoul() returns ULONG_MAX, and \c - 249:/usr/lib/avr/include/stdlib.h **** errno is set to \ref avr_errno "ERANGE". If no conversion could - 250:/usr/lib/avr/include/stdlib.h **** be performed, 0 is returned. - 251:/usr/lib/avr/include/stdlib.h **** */ - 252:/usr/lib/avr/include/stdlib.h **** extern unsigned long strtoul(const char *__nptr, char **__endptr, int __base); - 253:/usr/lib/avr/include/stdlib.h **** - 254:/usr/lib/avr/include/stdlib.h **** /** - 255:/usr/lib/avr/include/stdlib.h **** The atol() function converts the initial portion of the string - 256:/usr/lib/avr/include/stdlib.h **** pointed to by \p s to long integer representation. In contrast to - 257:/usr/lib/avr/include/stdlib.h **** - 258:/usr/lib/avr/include/stdlib.h **** \code strtol(s, (char **)NULL, 10); \endcode - 259:/usr/lib/avr/include/stdlib.h **** - 260:/usr/lib/avr/include/stdlib.h **** this function does not detect overflow (\c errno is not changed and - 261:/usr/lib/avr/include/stdlib.h **** the result value is not predictable), uses smaller memory (flash and - 262:/usr/lib/avr/include/stdlib.h **** stack) and works more quickly. - 263:/usr/lib/avr/include/stdlib.h **** */ - 264:/usr/lib/avr/include/stdlib.h **** extern long atol(const char *__s) __ATTR_PURE__; - 265:/usr/lib/avr/include/stdlib.h **** - 266:/usr/lib/avr/include/stdlib.h **** /** - 267:/usr/lib/avr/include/stdlib.h **** The atoi() function converts the initial portion of the string - 268:/usr/lib/avr/include/stdlib.h **** pointed to by \p s to integer representation. In contrast to - 269:/usr/lib/avr/include/stdlib.h **** - 270:/usr/lib/avr/include/stdlib.h **** \code (int)strtol(s, (char **)NULL, 10); \endcode - 271:/usr/lib/avr/include/stdlib.h **** - 272:/usr/lib/avr/include/stdlib.h **** this function does not detect overflow (\c errno is not changed and - 273:/usr/lib/avr/include/stdlib.h **** the result value is not predictable), uses smaller memory (flash and - 274:/usr/lib/avr/include/stdlib.h **** stack) and works more quickly. - 275:/usr/lib/avr/include/stdlib.h **** */ - 276:/usr/lib/avr/include/stdlib.h **** extern int atoi(const char *__s) __ATTR_PURE__; - 277:/usr/lib/avr/include/stdlib.h **** - 278:/usr/lib/avr/include/stdlib.h **** /** - 279:/usr/lib/avr/include/stdlib.h **** The exit() function terminates the application. Since there is no - 280:/usr/lib/avr/include/stdlib.h **** environment to return to, \c status is ignored, and code execution - 281:/usr/lib/avr/include/stdlib.h **** will eventually reach an infinite loop, thereby effectively halting - 282:/usr/lib/avr/include/stdlib.h **** all code processing. Before entering the infinite loop, interrupts - 283:/usr/lib/avr/include/stdlib.h **** are globally disabled. - 284:/usr/lib/avr/include/stdlib.h **** - 285:/usr/lib/avr/include/stdlib.h **** In a C++ context, global destructors will be called before halting - 286:/usr/lib/avr/include/stdlib.h **** execution. - 287:/usr/lib/avr/include/stdlib.h **** */ - 288:/usr/lib/avr/include/stdlib.h **** extern void exit(int __status) __ATTR_NORETURN__; - 289:/usr/lib/avr/include/stdlib.h **** - 290:/usr/lib/avr/include/stdlib.h **** /** - 291:/usr/lib/avr/include/stdlib.h **** The malloc() function allocates \c size bytes of memory. - 292:/usr/lib/avr/include/stdlib.h **** If malloc() fails, a NULL pointer is returned. - 293:/usr/lib/avr/include/stdlib.h **** - 294:/usr/lib/avr/include/stdlib.h **** Note that malloc() does \e not initialize the returned memory to - 295:/usr/lib/avr/include/stdlib.h **** zero bytes. - 296:/usr/lib/avr/include/stdlib.h **** - 297:/usr/lib/avr/include/stdlib.h **** See the chapter about \ref malloc "malloc() usage" for implementation - 298:/usr/lib/avr/include/stdlib.h **** details. - 299:/usr/lib/avr/include/stdlib.h **** */ - 300:/usr/lib/avr/include/stdlib.h **** extern void *malloc(size_t __size) __ATTR_MALLOC__; - 301:/usr/lib/avr/include/stdlib.h **** - 302:/usr/lib/avr/include/stdlib.h **** /** - 303:/usr/lib/avr/include/stdlib.h **** The free() function causes the allocated memory referenced by \c - 304:/usr/lib/avr/include/stdlib.h **** ptr to be made available for future allocations. If \c ptr is - 305:/usr/lib/avr/include/stdlib.h **** NULL, no action occurs. - 306:/usr/lib/avr/include/stdlib.h **** */ - 307:/usr/lib/avr/include/stdlib.h **** extern void free(void *__ptr); - 308:/usr/lib/avr/include/stdlib.h **** - 309:/usr/lib/avr/include/stdlib.h **** /** - 310:/usr/lib/avr/include/stdlib.h **** \c malloc() \ref malloc_tunables "tunable". - 311:/usr/lib/avr/include/stdlib.h **** */ - 312:/usr/lib/avr/include/stdlib.h **** extern size_t __malloc_margin; - 313:/usr/lib/avr/include/stdlib.h **** - 314:/usr/lib/avr/include/stdlib.h **** /** - 315:/usr/lib/avr/include/stdlib.h **** \c malloc() \ref malloc_tunables "tunable". - 316:/usr/lib/avr/include/stdlib.h **** */ - 317:/usr/lib/avr/include/stdlib.h **** extern char *__malloc_heap_start; - 318:/usr/lib/avr/include/stdlib.h **** - 319:/usr/lib/avr/include/stdlib.h **** /** - 320:/usr/lib/avr/include/stdlib.h **** \c malloc() \ref malloc_tunables "tunable". - 321:/usr/lib/avr/include/stdlib.h **** */ - 322:/usr/lib/avr/include/stdlib.h **** extern char *__malloc_heap_end; - 323:/usr/lib/avr/include/stdlib.h **** - 324:/usr/lib/avr/include/stdlib.h **** /** - 325:/usr/lib/avr/include/stdlib.h **** Allocate \c nele elements of \c size each. Identical to calling - 326:/usr/lib/avr/include/stdlib.h **** \c malloc() using nele * size as argument, except the - 327:/usr/lib/avr/include/stdlib.h **** allocated memory will be cleared to zero. - 328:/usr/lib/avr/include/stdlib.h **** */ - 329:/usr/lib/avr/include/stdlib.h **** extern void *calloc(size_t __nele, size_t __size) __ATTR_MALLOC__; - 330:/usr/lib/avr/include/stdlib.h **** - 331:/usr/lib/avr/include/stdlib.h **** /** - 332:/usr/lib/avr/include/stdlib.h **** The realloc() function tries to change the size of the region - 333:/usr/lib/avr/include/stdlib.h **** allocated at \c ptr to the new \c size value. It returns a - 334:/usr/lib/avr/include/stdlib.h **** pointer to the new region. The returned pointer might be the - 335:/usr/lib/avr/include/stdlib.h **** same as the old pointer, or a pointer to a completely different - 336:/usr/lib/avr/include/stdlib.h **** region. - 337:/usr/lib/avr/include/stdlib.h **** - 338:/usr/lib/avr/include/stdlib.h **** The contents of the returned region up to either the old or the new - 339:/usr/lib/avr/include/stdlib.h **** size value (whatever is less) will be identical to the contents of - 340:/usr/lib/avr/include/stdlib.h **** the old region, even in case a new region had to be allocated. - 341:/usr/lib/avr/include/stdlib.h **** - 342:/usr/lib/avr/include/stdlib.h **** It is acceptable to pass \c ptr as NULL, in which case realloc() - 343:/usr/lib/avr/include/stdlib.h **** will behave identical to malloc(). - 344:/usr/lib/avr/include/stdlib.h **** - 345:/usr/lib/avr/include/stdlib.h **** If the new memory cannot be allocated, realloc() returns NULL, and - 346:/usr/lib/avr/include/stdlib.h **** the region at \c ptr will not be changed. - 347:/usr/lib/avr/include/stdlib.h **** */ - 348:/usr/lib/avr/include/stdlib.h **** extern void *realloc(void *__ptr, size_t __size) __ATTR_MALLOC__; - 349:/usr/lib/avr/include/stdlib.h **** - 350:/usr/lib/avr/include/stdlib.h **** extern double strtod(const char *__nptr, char **__endptr); - 351:/usr/lib/avr/include/stdlib.h **** - 352:/usr/lib/avr/include/stdlib.h **** /** \ingroup avr_stdlib - 353:/usr/lib/avr/include/stdlib.h **** \fn double atof (const char *nptr) - 354:/usr/lib/avr/include/stdlib.h **** - 355:/usr/lib/avr/include/stdlib.h **** The atof() function converts the initial portion of the string pointed - 356:/usr/lib/avr/include/stdlib.h **** to by \a nptr to double representation. - 357:/usr/lib/avr/include/stdlib.h **** - 358:/usr/lib/avr/include/stdlib.h **** It is equivalent to calling - 359:/usr/lib/avr/include/stdlib.h **** \code strtod(nptr, (char **)0); \endcode - 360:/usr/lib/avr/include/stdlib.h **** */ - 361:/usr/lib/avr/include/stdlib.h **** extern double atof(const char *__nptr); - 362:/usr/lib/avr/include/stdlib.h **** - 363:/usr/lib/avr/include/stdlib.h **** /** Highest number that can be generated by rand(). */ - 364:/usr/lib/avr/include/stdlib.h **** #define RAND_MAX 0x7FFF - 365:/usr/lib/avr/include/stdlib.h **** - 366:/usr/lib/avr/include/stdlib.h **** /** - 367:/usr/lib/avr/include/stdlib.h **** The rand() function computes a sequence of pseudo-random integers in the - 368:/usr/lib/avr/include/stdlib.h **** range of 0 to \c RAND_MAX (as defined by the header file ). - 369:/usr/lib/avr/include/stdlib.h **** - 370:/usr/lib/avr/include/stdlib.h **** The srand() function sets its argument \c seed as the seed for a new - 371:/usr/lib/avr/include/stdlib.h **** sequence of pseudo-random numbers to be returned by rand(). These - 372:/usr/lib/avr/include/stdlib.h **** sequences are repeatable by calling srand() with the same seed value. - 373:/usr/lib/avr/include/stdlib.h **** - 374:/usr/lib/avr/include/stdlib.h **** If no seed value is provided, the functions are automatically seeded with - 375:/usr/lib/avr/include/stdlib.h **** a value of 1. - 376:/usr/lib/avr/include/stdlib.h **** - 377:/usr/lib/avr/include/stdlib.h **** In compliance with the C standard, these functions operate on - 378:/usr/lib/avr/include/stdlib.h **** \c int arguments. Since the underlying algorithm already uses - 379:/usr/lib/avr/include/stdlib.h **** 32-bit calculations, this causes a loss of precision. See - 380:/usr/lib/avr/include/stdlib.h **** \c random() for an alternate set of functions that retains full - 381:/usr/lib/avr/include/stdlib.h **** 32-bit precision. - 382:/usr/lib/avr/include/stdlib.h **** */ - 383:/usr/lib/avr/include/stdlib.h **** extern int rand(void); - 384:/usr/lib/avr/include/stdlib.h **** /** - 385:/usr/lib/avr/include/stdlib.h **** Pseudo-random number generator seeding; see rand(). - 386:/usr/lib/avr/include/stdlib.h **** */ - 387:/usr/lib/avr/include/stdlib.h **** extern void srand(unsigned int __seed); - 388:/usr/lib/avr/include/stdlib.h **** - 389:/usr/lib/avr/include/stdlib.h **** /** - 390:/usr/lib/avr/include/stdlib.h **** Variant of rand() that stores the context in the user-supplied - 391:/usr/lib/avr/include/stdlib.h **** variable located at \c ctx instead of a static library variable - 392:/usr/lib/avr/include/stdlib.h **** so the function becomes re-entrant. - 393:/usr/lib/avr/include/stdlib.h **** */ - 394:/usr/lib/avr/include/stdlib.h **** extern int rand_r(unsigned long *__ctx); - 395:/usr/lib/avr/include/stdlib.h **** /*@}*/ - 396:/usr/lib/avr/include/stdlib.h **** - 397:/usr/lib/avr/include/stdlib.h **** /*@{*/ - 398:/usr/lib/avr/include/stdlib.h **** /** \name Non-standard (i.e. non-ISO C) functions. - 399:/usr/lib/avr/include/stdlib.h **** \ingroup avr_stdlib - 400:/usr/lib/avr/include/stdlib.h **** */ - 401:/usr/lib/avr/include/stdlib.h **** /** - 402:/usr/lib/avr/include/stdlib.h **** \brief Convert an integer to a string. - 403:/usr/lib/avr/include/stdlib.h **** - 404:/usr/lib/avr/include/stdlib.h **** The function itoa() converts the integer value from \c val into an - 405:/usr/lib/avr/include/stdlib.h **** ASCII representation that will be stored under \c s. The caller - 406:/usr/lib/avr/include/stdlib.h **** is responsible for providing sufficient storage in \c s. - 407:/usr/lib/avr/include/stdlib.h **** - 408:/usr/lib/avr/include/stdlib.h **** \note The minimal size of the buffer \c s depends on the choice of - 409:/usr/lib/avr/include/stdlib.h **** radix. For example, if the radix is 2 (binary), you need to supply a buffer - 410:/usr/lib/avr/include/stdlib.h **** with a minimal length of 8 * sizeof (int) + 1 characters, i.e. one - 411:/usr/lib/avr/include/stdlib.h **** character for each bit plus one for the string terminator. Using a larger - 412:/usr/lib/avr/include/stdlib.h **** radix will require a smaller minimal buffer size. - 413:/usr/lib/avr/include/stdlib.h **** - 414:/usr/lib/avr/include/stdlib.h **** \warning If the buffer is too small, you risk a buffer overflow. - 415:/usr/lib/avr/include/stdlib.h **** - 416:/usr/lib/avr/include/stdlib.h **** Conversion is done using the \c radix as base, which may be a - 417:/usr/lib/avr/include/stdlib.h **** number between 2 (binary conversion) and up to 36. If \c radix - 418:/usr/lib/avr/include/stdlib.h **** is greater than 10, the next digit after \c '9' will be the letter - 419:/usr/lib/avr/include/stdlib.h **** \c 'a'. - 420:/usr/lib/avr/include/stdlib.h **** - 421:/usr/lib/avr/include/stdlib.h **** If radix is 10 and val is negative, a minus sign will be prepended. - 422:/usr/lib/avr/include/stdlib.h **** - 423:/usr/lib/avr/include/stdlib.h **** The itoa() function returns the pointer passed as \c s. - 424:/usr/lib/avr/include/stdlib.h **** */ - 425:/usr/lib/avr/include/stdlib.h **** #ifdef __DOXYGEN__ - 426:/usr/lib/avr/include/stdlib.h **** extern char *itoa(int val, char *s, int radix); - 427:/usr/lib/avr/include/stdlib.h **** #else - 428:/usr/lib/avr/include/stdlib.h **** extern __inline__ __ATTR_GNU_INLINE__ - 429:/usr/lib/avr/include/stdlib.h **** char *itoa (int __val, char *__s, int __radix) - 430:/usr/lib/avr/include/stdlib.h **** { - 126 .LM0: - 127 .LFBB1: - 128 /* prologue: function */ - 129 /* frame size = 0 */ - 130 /* stack size = 0 */ - 131 .L__stack_usage = 0 - 132 .LBB39: - 431:/usr/lib/avr/include/stdlib.h **** if (!__builtin_constant_p (__radix)) { - 432:/usr/lib/avr/include/stdlib.h **** extern char *__itoa (int, char *, int); - 433:/usr/lib/avr/include/stdlib.h **** return __itoa (__val, __s, __radix); - 134 .LM1: - 135 0000 0C94 0000 jmp __itoa - 136 .LBE39: - 138 .Lscope1: - 140 .stabd 78,0,0 - 141 .section .text.ltoa,"axG",@progbits,ltoa,comdat - 146 .weak ltoa - 148 ltoa: - 149 .stabd 46,0,0 - 434:/usr/lib/avr/include/stdlib.h **** } else if (__radix < 2 || __radix > 36) { - 435:/usr/lib/avr/include/stdlib.h **** *__s = 0; - 436:/usr/lib/avr/include/stdlib.h **** return __s; - 437:/usr/lib/avr/include/stdlib.h **** } else { - 438:/usr/lib/avr/include/stdlib.h **** extern char *__itoa_ncheck (int, char *, unsigned char); - 439:/usr/lib/avr/include/stdlib.h **** return __itoa_ncheck (__val, __s, __radix); - 440:/usr/lib/avr/include/stdlib.h **** } - 441:/usr/lib/avr/include/stdlib.h **** } - 442:/usr/lib/avr/include/stdlib.h **** #endif - 443:/usr/lib/avr/include/stdlib.h **** - 444:/usr/lib/avr/include/stdlib.h **** /** - 445:/usr/lib/avr/include/stdlib.h **** \ingroup avr_stdlib - 446:/usr/lib/avr/include/stdlib.h **** - 447:/usr/lib/avr/include/stdlib.h **** \brief Convert a long integer to a string. - 448:/usr/lib/avr/include/stdlib.h **** - 449:/usr/lib/avr/include/stdlib.h **** The function ltoa() converts the long integer value from \c val into an - 450:/usr/lib/avr/include/stdlib.h **** ASCII representation that will be stored under \c s. The caller - 451:/usr/lib/avr/include/stdlib.h **** is responsible for providing sufficient storage in \c s. - 452:/usr/lib/avr/include/stdlib.h **** - 453:/usr/lib/avr/include/stdlib.h **** \note The minimal size of the buffer \c s depends on the choice of - 454:/usr/lib/avr/include/stdlib.h **** radix. For example, if the radix is 2 (binary), you need to supply a buffer - 455:/usr/lib/avr/include/stdlib.h **** with a minimal length of 8 * sizeof (long int) + 1 characters, i.e. one - 456:/usr/lib/avr/include/stdlib.h **** character for each bit plus one for the string terminator. Using a larger - 457:/usr/lib/avr/include/stdlib.h **** radix will require a smaller minimal buffer size. - 458:/usr/lib/avr/include/stdlib.h **** - 459:/usr/lib/avr/include/stdlib.h **** \warning If the buffer is too small, you risk a buffer overflow. - 460:/usr/lib/avr/include/stdlib.h **** - 461:/usr/lib/avr/include/stdlib.h **** Conversion is done using the \c radix as base, which may be a - 462:/usr/lib/avr/include/stdlib.h **** number between 2 (binary conversion) and up to 36. If \c radix - 463:/usr/lib/avr/include/stdlib.h **** is greater than 10, the next digit after \c '9' will be the letter - 464:/usr/lib/avr/include/stdlib.h **** \c 'a'. - 465:/usr/lib/avr/include/stdlib.h **** - 466:/usr/lib/avr/include/stdlib.h **** If radix is 10 and val is negative, a minus sign will be prepended. - 467:/usr/lib/avr/include/stdlib.h **** - 468:/usr/lib/avr/include/stdlib.h **** The ltoa() function returns the pointer passed as \c s. - 469:/usr/lib/avr/include/stdlib.h **** */ - 470:/usr/lib/avr/include/stdlib.h **** #ifdef __DOXYGEN__ - 471:/usr/lib/avr/include/stdlib.h **** extern char *ltoa(long val, char *s, int radix); - 472:/usr/lib/avr/include/stdlib.h **** #else - 473:/usr/lib/avr/include/stdlib.h **** extern __inline__ __ATTR_GNU_INLINE__ - 474:/usr/lib/avr/include/stdlib.h **** char *ltoa (long __val, char *__s, int __radix) - 475:/usr/lib/avr/include/stdlib.h **** { - 151 .LM2: - 152 .LFBB2: - 153 /* prologue: function */ - 154 /* frame size = 0 */ - 155 /* stack size = 0 */ - 156 .L__stack_usage = 0 - 157 .LBB40: - 476:/usr/lib/avr/include/stdlib.h **** if (!__builtin_constant_p (__radix)) { - 477:/usr/lib/avr/include/stdlib.h **** extern char *__ltoa (long, char *, int); - 478:/usr/lib/avr/include/stdlib.h **** return __ltoa (__val, __s, __radix); - 159 .LM3: - 160 0000 0C94 0000 jmp __ltoa - 161 .LBE40: - 163 .Lscope2: - 165 .stabd 78,0,0 - 166 .section .text.utoa,"axG",@progbits,utoa,comdat - 171 .weak utoa - 173 utoa: - 174 .stabd 46,0,0 - 479:/usr/lib/avr/include/stdlib.h **** } else if (__radix < 2 || __radix > 36) { - 480:/usr/lib/avr/include/stdlib.h **** *__s = 0; - 481:/usr/lib/avr/include/stdlib.h **** return __s; - 482:/usr/lib/avr/include/stdlib.h **** } else { - 483:/usr/lib/avr/include/stdlib.h **** extern char *__ltoa_ncheck (long, char *, unsigned char); - 484:/usr/lib/avr/include/stdlib.h **** return __ltoa_ncheck (__val, __s, __radix); - 485:/usr/lib/avr/include/stdlib.h **** } - 486:/usr/lib/avr/include/stdlib.h **** } - 487:/usr/lib/avr/include/stdlib.h **** #endif - 488:/usr/lib/avr/include/stdlib.h **** - 489:/usr/lib/avr/include/stdlib.h **** /** - 490:/usr/lib/avr/include/stdlib.h **** \ingroup avr_stdlib - 491:/usr/lib/avr/include/stdlib.h **** - 492:/usr/lib/avr/include/stdlib.h **** \brief Convert an unsigned integer to a string. - 493:/usr/lib/avr/include/stdlib.h **** - 494:/usr/lib/avr/include/stdlib.h **** The function utoa() converts the unsigned integer value from \c val into an - 495:/usr/lib/avr/include/stdlib.h **** ASCII representation that will be stored under \c s. The caller - 496:/usr/lib/avr/include/stdlib.h **** is responsible for providing sufficient storage in \c s. - 497:/usr/lib/avr/include/stdlib.h **** - 498:/usr/lib/avr/include/stdlib.h **** \note The minimal size of the buffer \c s depends on the choice of - 499:/usr/lib/avr/include/stdlib.h **** radix. For example, if the radix is 2 (binary), you need to supply a buffer - 500:/usr/lib/avr/include/stdlib.h **** with a minimal length of 8 * sizeof (unsigned int) + 1 characters, i.e. one - 501:/usr/lib/avr/include/stdlib.h **** character for each bit plus one for the string terminator. Using a larger - 502:/usr/lib/avr/include/stdlib.h **** radix will require a smaller minimal buffer size. - 503:/usr/lib/avr/include/stdlib.h **** - 504:/usr/lib/avr/include/stdlib.h **** \warning If the buffer is too small, you risk a buffer overflow. - 505:/usr/lib/avr/include/stdlib.h **** - 506:/usr/lib/avr/include/stdlib.h **** Conversion is done using the \c radix as base, which may be a - 507:/usr/lib/avr/include/stdlib.h **** number between 2 (binary conversion) and up to 36. If \c radix - 508:/usr/lib/avr/include/stdlib.h **** is greater than 10, the next digit after \c '9' will be the letter - 509:/usr/lib/avr/include/stdlib.h **** \c 'a'. - 510:/usr/lib/avr/include/stdlib.h **** - 511:/usr/lib/avr/include/stdlib.h **** The utoa() function returns the pointer passed as \c s. - 512:/usr/lib/avr/include/stdlib.h **** */ - 513:/usr/lib/avr/include/stdlib.h **** #ifdef __DOXYGEN__ - 514:/usr/lib/avr/include/stdlib.h **** extern char *utoa(unsigned int val, char *s, int radix); - 515:/usr/lib/avr/include/stdlib.h **** #else - 516:/usr/lib/avr/include/stdlib.h **** extern __inline__ __ATTR_GNU_INLINE__ - 517:/usr/lib/avr/include/stdlib.h **** char *utoa (unsigned int __val, char *__s, int __radix) - 518:/usr/lib/avr/include/stdlib.h **** { - 176 .LM4: - 177 .LFBB3: - 178 /* prologue: function */ - 179 /* frame size = 0 */ - 180 /* stack size = 0 */ - 181 .L__stack_usage = 0 - 182 .LBB41: - 519:/usr/lib/avr/include/stdlib.h **** if (!__builtin_constant_p (__radix)) { - 520:/usr/lib/avr/include/stdlib.h **** extern char *__utoa (unsigned int, char *, int); - 521:/usr/lib/avr/include/stdlib.h **** return __utoa (__val, __s, __radix); - 184 .LM5: - 185 0000 0C94 0000 jmp __utoa - 186 .LBE41: - 188 .Lscope3: - 190 .stabd 78,0,0 - 191 .section .text.ultoa,"axG",@progbits,ultoa,comdat - 196 .weak ultoa - 198 ultoa: - 199 .stabd 46,0,0 - 522:/usr/lib/avr/include/stdlib.h **** } else if (__radix < 2 || __radix > 36) { - 523:/usr/lib/avr/include/stdlib.h **** *__s = 0; - 524:/usr/lib/avr/include/stdlib.h **** return __s; - 525:/usr/lib/avr/include/stdlib.h **** } else { - 526:/usr/lib/avr/include/stdlib.h **** extern char *__utoa_ncheck (unsigned int, char *, unsigned char); - 527:/usr/lib/avr/include/stdlib.h **** return __utoa_ncheck (__val, __s, __radix); - 528:/usr/lib/avr/include/stdlib.h **** } - 529:/usr/lib/avr/include/stdlib.h **** } - 530:/usr/lib/avr/include/stdlib.h **** #endif - 531:/usr/lib/avr/include/stdlib.h **** - 532:/usr/lib/avr/include/stdlib.h **** /** - 533:/usr/lib/avr/include/stdlib.h **** \ingroup avr_stdlib - 534:/usr/lib/avr/include/stdlib.h **** \brief Convert an unsigned long integer to a string. - 535:/usr/lib/avr/include/stdlib.h **** - 536:/usr/lib/avr/include/stdlib.h **** The function ultoa() converts the unsigned long integer value from - 537:/usr/lib/avr/include/stdlib.h **** \c val into an ASCII representation that will be stored under \c s. - 538:/usr/lib/avr/include/stdlib.h **** The caller is responsible for providing sufficient storage in \c s. - 539:/usr/lib/avr/include/stdlib.h **** - 540:/usr/lib/avr/include/stdlib.h **** \note The minimal size of the buffer \c s depends on the choice of - 541:/usr/lib/avr/include/stdlib.h **** radix. For example, if the radix is 2 (binary), you need to supply a buffer - 542:/usr/lib/avr/include/stdlib.h **** with a minimal length of 8 * sizeof (unsigned long int) + 1 characters, - 543:/usr/lib/avr/include/stdlib.h **** i.e. one character for each bit plus one for the string terminator. Using a - 544:/usr/lib/avr/include/stdlib.h **** larger radix will require a smaller minimal buffer size. - 545:/usr/lib/avr/include/stdlib.h **** - 546:/usr/lib/avr/include/stdlib.h **** \warning If the buffer is too small, you risk a buffer overflow. - 547:/usr/lib/avr/include/stdlib.h **** - 548:/usr/lib/avr/include/stdlib.h **** Conversion is done using the \c radix as base, which may be a - 549:/usr/lib/avr/include/stdlib.h **** number between 2 (binary conversion) and up to 36. If \c radix - 550:/usr/lib/avr/include/stdlib.h **** is greater than 10, the next digit after \c '9' will be the letter - 551:/usr/lib/avr/include/stdlib.h **** \c 'a'. - 552:/usr/lib/avr/include/stdlib.h **** - 553:/usr/lib/avr/include/stdlib.h **** The ultoa() function returns the pointer passed as \c s. - 554:/usr/lib/avr/include/stdlib.h **** */ - 555:/usr/lib/avr/include/stdlib.h **** #ifdef __DOXYGEN__ - 556:/usr/lib/avr/include/stdlib.h **** extern char *ultoa(unsigned long val, char *s, int radix); - 557:/usr/lib/avr/include/stdlib.h **** #else - 558:/usr/lib/avr/include/stdlib.h **** extern __inline__ __ATTR_GNU_INLINE__ - 559:/usr/lib/avr/include/stdlib.h **** char *ultoa (unsigned long __val, char *__s, int __radix) - 560:/usr/lib/avr/include/stdlib.h **** { - 201 .LM6: - 202 .LFBB4: - 203 /* prologue: function */ - 204 /* frame size = 0 */ - 205 /* stack size = 0 */ - 206 .L__stack_usage = 0 - 207 .LBB42: - 561:/usr/lib/avr/include/stdlib.h **** if (!__builtin_constant_p (__radix)) { - 562:/usr/lib/avr/include/stdlib.h **** extern char *__ultoa (unsigned long, char *, int); - 563:/usr/lib/avr/include/stdlib.h **** return __ultoa (__val, __s, __radix); - 209 .LM7: - 210 0000 0C94 0000 jmp __ultoa - 211 .LBE42: - 213 .Lscope4: - 215 .stabd 78,0,0 - 216 .text - 219 .global _ZN6StringD2Ev - 221 _ZN6StringD2Ev: - 222 .stabd 46,0,0 - 224 .Ltext2: - 1:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** /* - 2:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** WString.cpp - String library for Wiring & Arduino - 3:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** ...mostly rewritten by Paul Stoffregen... - 4:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** Copyright (c) 2009-10 Hernando Barragan. All rights reserved. - 5:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** Copyright 2011, Paul Stoffregen, paul@pjrc.com - 6:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 7:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** This library is free software; you can redistribute it and/or - 8:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** modify it under the terms of the GNU Lesser General Public - 9:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** License as published by the Free Software Foundation; either - 10:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** version 2.1 of the License, or (at your option) any later version. - 11:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 12:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** This library is distributed in the hope that it will be useful, - 13:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** but WITHOUT ANY WARRANTY; without even the implied warranty of - 14:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - 15:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** Lesser General Public License for more details. - 16:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 17:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** You should have received a copy of the GNU Lesser General Public - 18:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** License along with this library; if not, write to the Free Software - 19:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - 20:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** */ - 21:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 22:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** #include "WString.h" - 23:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 24:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** /*********************************************/ - 25:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** /* Constructors */ - 26:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** /*********************************************/ - 27:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 28:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** String::String(const char *cstr) - 29:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 30:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** init(); - 31:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (cstr) copy(cstr, strlen(cstr)); - 32:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 33:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 34:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** String::String(const String &value) - 35:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 36:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** init(); - 37:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** *this = value; - 38:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 39:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 40:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** String::String(const __FlashStringHelper *pstr) - 41:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 42:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** init(); - 43:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** *this = pstr; - 44:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 45:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 46:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** #if __cplusplus >= 201103L || defined(__GXX_EXPERIMENTAL_CXX0X__) - 47:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** String::String(String &&rval) - 48:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 49:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** init(); - 50:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** move(rval); - 51:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 52:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** String::String(StringSumHelper &&rval) - 53:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 54:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** init(); - 55:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** move(rval); - 56:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 57:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** #endif - 58:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 59:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** String::String(char c) - 60:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 61:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** init(); - 62:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** char buf[2]; - 63:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** buf[0] = c; - 64:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** buf[1] = 0; - 65:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** *this = buf; - 66:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 67:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 68:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** String::String(unsigned char value, unsigned char base) - 69:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 70:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** init(); - 71:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** char buf[1 + 8 * sizeof(unsigned char)]; - 72:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** utoa(value, buf, base); - 73:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** *this = buf; - 74:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 75:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 76:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** String::String(int value, unsigned char base) - 77:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 78:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** init(); - 79:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** char buf[2 + 8 * sizeof(int)]; - 80:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** itoa(value, buf, base); - 81:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** *this = buf; - 82:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 83:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 84:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** String::String(unsigned int value, unsigned char base) - 85:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 86:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** init(); - 87:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** char buf[1 + 8 * sizeof(unsigned int)]; - 88:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** utoa(value, buf, base); - 89:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** *this = buf; - 90:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 91:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 92:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** String::String(long value, unsigned char base) - 93:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 94:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** init(); - 95:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** char buf[2 + 8 * sizeof(long)]; - 96:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** ltoa(value, buf, base); - 97:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** *this = buf; - 98:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 99:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 100:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** String::String(unsigned long value, unsigned char base) - 101:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 102:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** init(); - 103:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** char buf[1 + 8 * sizeof(unsigned long)]; - 104:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** ultoa(value, buf, base); - 105:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** *this = buf; - 106:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 107:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 108:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** String::String(float value, unsigned char decimalPlaces) - 109:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 110:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** init(); - 111:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** char buf[33]; - 112:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** *this = dtostrf(value, (decimalPlaces + 2), decimalPlaces, buf); - 113:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 114:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 115:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** String::String(double value, unsigned char decimalPlaces) - 116:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 117:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** init(); - 118:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** char buf[33]; - 119:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** *this = dtostrf(value, (decimalPlaces + 2), decimalPlaces, buf); - 120:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 121:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 122:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** String::~String() - 226 .LM8: - 227 .LFBB5: - 228 /* prologue: function */ - 229 /* frame size = 0 */ - 230 /* stack size = 0 */ - 231 .L__stack_usage = 0 - 232 .LBB43: - 123:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 124:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** free(buffer); - 234 .LM9: - 235 0000 FC01 movw r30,r24 - 236 0002 8081 ld r24,Z - 237 0004 9181 ldd r25,Z+1 - 238 0006 0C94 0000 jmp free - 239 .LBE43: - 241 .Lscope5: - 243 .stabd 78,0,0 - 244 .global _ZN6StringD1Ev - 245 .set _ZN6StringD1Ev,_ZN6StringD2Ev - 248 .global _ZN6String10invalidateEv - 250 _ZN6String10invalidateEv: - 251 .stabd 46,0,0 - 125:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 126:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 127:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** /*********************************************/ - 128:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** /* Memory Management */ - 129:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** /*********************************************/ - 130:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 131:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** inline void String::init(void) - 132:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 133:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** buffer = NULL; - 134:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** capacity = 0; - 135:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** len = 0; - 136:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 137:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 138:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** void String::invalidate(void) - 139:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 253 .LM10: - 254 .LFBB6: - 255 000a CF93 push r28 - 256 000c DF93 push r29 - 257 /* prologue: function */ - 258 /* frame size = 0 */ - 259 /* stack size = 2 */ - 260 .L__stack_usage = 2 - 261 000e EC01 movw r28,r24 - 140:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (buffer) free(buffer); - 263 .LM11: - 264 0010 8881 ld r24,Y - 265 0012 9981 ldd r25,Y+1 - 266 0014 0097 sbiw r24,0 - 267 0016 01F0 breq .L7 - 269 .LM12: - 270 0018 0E94 0000 call free - 271 .L7: - 141:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** buffer = NULL; - 273 .LM13: - 274 001c 1982 std Y+1,__zero_reg__ - 275 001e 1882 st Y,__zero_reg__ - 142:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** capacity = len = 0; - 277 .LM14: - 278 0020 1D82 std Y+5,__zero_reg__ - 279 0022 1C82 std Y+4,__zero_reg__ - 280 0024 1B82 std Y+3,__zero_reg__ - 281 0026 1A82 std Y+2,__zero_reg__ - 282 /* epilogue start */ - 143:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 284 .LM15: - 285 0028 DF91 pop r29 - 286 002a CF91 pop r28 - 287 002c 0895 ret - 289 .Lscope6: - 291 .stabd 78,0,0 - 295 .global _ZN6String12changeBufferEj - 297 _ZN6String12changeBufferEj: - 298 .stabd 46,0,0 - 144:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 145:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** unsigned char String::reserve(unsigned int size) - 146:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 147:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (buffer && capacity >= size) return 1; - 148:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (changeBuffer(size)) { - 149:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (len == 0) buffer[0] = 0; - 150:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return 1; - 151:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 152:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return 0; - 153:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 154:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 155:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** unsigned char String::changeBuffer(unsigned int maxStrLen) - 156:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 300 .LM16: - 301 .LFBB7: - 302 002e 0F93 push r16 - 303 0030 1F93 push r17 - 304 0032 CF93 push r28 - 305 0034 DF93 push r29 - 306 /* prologue: function */ - 307 /* frame size = 0 */ - 308 /* stack size = 4 */ - 309 .L__stack_usage = 4 - 310 0036 EC01 movw r28,r24 - 311 0038 8B01 movw r16,r22 - 157:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** char *newbuffer = (char *)realloc(buffer, maxStrLen + 1); - 313 .LM17: - 314 003a 6F5F subi r22,-1 - 315 003c 7F4F sbci r23,-1 - 316 003e 8881 ld r24,Y - 317 0040 9981 ldd r25,Y+1 - 318 0042 0E94 0000 call realloc - 158:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (newbuffer) { - 320 .LM18: - 321 0046 0097 sbiw r24,0 - 322 0048 01F0 breq .L14 - 159:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** buffer = newbuffer; - 324 .LM19: - 325 004a 9983 std Y+1,r25 - 326 004c 8883 st Y,r24 - 160:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** capacity = maxStrLen; - 328 .LM20: - 329 004e 1B83 std Y+3,r17 - 330 0050 0A83 std Y+2,r16 - 161:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return 1; - 332 .LM21: - 333 0052 81E0 ldi r24,lo8(1) - 334 0054 00C0 rjmp .L13 - 335 .L14: - 162:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 163:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return 0; - 337 .LM22: - 338 0056 80E0 ldi r24,0 - 339 .L13: - 340 /* epilogue start */ - 164:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 342 .LM23: - 343 0058 DF91 pop r29 - 344 005a CF91 pop r28 - 345 005c 1F91 pop r17 - 346 005e 0F91 pop r16 - 347 0060 0895 ret - 349 .Lscope7: - 351 .stabd 78,0,0 - 355 .global _ZN6String7reserveEj - 357 _ZN6String7reserveEj: - 358 .stabd 46,0,0 - 146:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (buffer && capacity >= size) return 1; - 360 .LM24: - 361 .LFBB8: - 362 0062 CF93 push r28 - 363 0064 DF93 push r29 - 364 /* prologue: function */ - 365 /* frame size = 0 */ - 366 /* stack size = 2 */ - 367 .L__stack_usage = 2 - 368 0066 EC01 movw r28,r24 - 147:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (changeBuffer(size)) { - 370 .LM25: - 371 0068 8881 ld r24,Y - 372 006a 9981 ldd r25,Y+1 - 373 006c 892B or r24,r25 - 374 006e 01F0 breq .L16 - 147:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (changeBuffer(size)) { - 376 .LM26: - 377 0070 8A81 ldd r24,Y+2 - 378 0072 9B81 ldd r25,Y+3 - 379 0074 8617 cp r24,r22 - 380 0076 9707 cpc r25,r23 - 381 0078 00F4 brsh .L25 - 382 .L16: - 148:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (len == 0) buffer[0] = 0; - 384 .LM27: - 385 007a CE01 movw r24,r28 - 386 007c 0E94 0000 call _ZN6String12changeBufferEj - 387 0080 8823 tst r24 - 388 0082 01F0 breq .L17 - 389 .LBB46: - 390 .LBB47: - 149:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return 1; - 392 .LM28: - 393 0084 8C81 ldd r24,Y+4 - 394 0086 9D81 ldd r25,Y+5 - 395 0088 892B or r24,r25 - 396 008a 01F4 brne .L25 - 397 008c E881 ld r30,Y - 398 008e F981 ldd r31,Y+1 - 399 0090 1082 st Z,__zero_reg__ - 400 .L25: - 401 0092 81E0 ldi r24,lo8(1) - 402 .L17: - 403 /* epilogue start */ - 404 .LBE47: - 405 .LBE46: - 153:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 407 .LM29: - 408 0094 DF91 pop r29 - 409 0096 CF91 pop r28 - 410 0098 0895 ret - 412 .Lscope8: - 414 .stabd 78,0,0 - 419 .global _ZN6String4copyEPKcj - 421 _ZN6String4copyEPKcj: - 422 .stabd 46,0,0 - 165:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 166:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** /*********************************************/ - 167:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** /* Copy and Move */ - 168:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** /*********************************************/ - 169:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 170:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** String & String::copy(const char *cstr, unsigned int length) - 171:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 424 .LM30: - 425 .LFBB9: - 426 009a EF92 push r14 - 427 009c FF92 push r15 - 428 009e 0F93 push r16 - 429 00a0 1F93 push r17 - 430 00a2 CF93 push r28 - 431 00a4 DF93 push r29 - 432 /* prologue: function */ - 433 /* frame size = 0 */ - 434 /* stack size = 6 */ - 435 .L__stack_usage = 6 - 436 00a6 EC01 movw r28,r24 - 437 00a8 7B01 movw r14,r22 - 438 00aa 8A01 movw r16,r20 - 172:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (!reserve(length)) { - 440 .LM31: - 441 00ac BA01 movw r22,r20 - 442 00ae 0E94 0000 call _ZN6String7reserveEj - 443 00b2 8111 cpse r24,__zero_reg__ - 444 00b4 00C0 rjmp .L27 - 173:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** invalidate(); - 446 .LM32: - 447 00b6 CE01 movw r24,r28 - 448 00b8 0E94 0000 call _ZN6String10invalidateEv - 174:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return *this; - 450 .LM33: - 451 00bc 00C0 rjmp .L28 - 452 .L27: - 175:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 176:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** len = length; - 454 .LM34: - 455 00be 1D83 std Y+5,r17 - 456 00c0 0C83 std Y+4,r16 - 177:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** strcpy(buffer, cstr); - 458 .LM35: - 459 00c2 B701 movw r22,r14 - 460 00c4 8881 ld r24,Y - 461 00c6 9981 ldd r25,Y+1 - 462 00c8 0E94 0000 call strcpy - 463 .L28: - 178:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return *this; - 179:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 465 .LM36: - 466 00cc CE01 movw r24,r28 - 467 /* epilogue start */ - 468 00ce DF91 pop r29 - 469 00d0 CF91 pop r28 - 470 00d2 1F91 pop r17 - 471 00d4 0F91 pop r16 - 472 00d6 FF90 pop r15 - 473 00d8 EF90 pop r14 - 474 00da 0895 ret - 476 .Lscope9: - 478 .stabd 78,0,0 - 482 .global _ZN6StringC2EPKc - 484 _ZN6StringC2EPKc: - 485 .stabd 46,0,0 - 28:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 487 .LM37: - 488 .LFBB10: - 489 /* prologue: function */ - 490 /* frame size = 0 */ - 491 /* stack size = 0 */ - 492 .L__stack_usage = 0 - 493 .LBB48: - 494 .LBB49: - 495 .LBB50: - 133:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** capacity = 0; - 497 .LM38: - 498 00dc FC01 movw r30,r24 - 499 00de 1182 std Z+1,__zero_reg__ - 500 00e0 1082 st Z,__zero_reg__ - 134:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** len = 0; - 502 .LM39: - 503 00e2 1382 std Z+3,__zero_reg__ - 504 00e4 1282 std Z+2,__zero_reg__ - 135:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 506 .LM40: - 507 00e6 1582 std Z+5,__zero_reg__ - 508 00e8 1482 std Z+4,__zero_reg__ - 509 .LBE50: - 510 .LBE49: - 31:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 512 .LM41: - 513 00ea 6115 cp r22,__zero_reg__ - 514 00ec 7105 cpc r23,__zero_reg__ - 515 00ee 01F0 breq .L29 - 31:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 517 .LM42: - 518 00f0 FB01 movw r30,r22 - 519 0: - 520 00f2 0190 ld __tmp_reg__,Z+ - 521 00f4 0020 tst __tmp_reg__ - 522 00f6 01F4 brne 0b - 523 00f8 3197 sbiw r30,1 - 524 00fa AF01 movw r20,r30 - 525 00fc 461B sub r20,r22 - 526 00fe 570B sbc r21,r23 - 527 0100 0C94 0000 jmp _ZN6String4copyEPKcj - 528 .L29: - 529 0104 0895 ret - 530 .LBE48: - 532 .Lscope10: - 534 .stabd 78,0,0 - 535 .global _ZN6StringC1EPKc - 536 .set _ZN6StringC1EPKc,_ZN6StringC2EPKc - 541 .global _ZN6String4copyEPK19__FlashStringHelperj - 543 _ZN6String4copyEPK19__FlashStringHelperj: - 544 .stabd 46,0,0 - 180:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 181:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** String & String::copy(const __FlashStringHelper *pstr, unsigned int length) - 182:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 546 .LM43: - 547 .LFBB11: - 548 0106 EF92 push r14 - 549 0108 FF92 push r15 - 550 010a 0F93 push r16 - 551 010c 1F93 push r17 - 552 010e CF93 push r28 - 553 0110 DF93 push r29 - 554 /* prologue: function */ - 555 /* frame size = 0 */ - 556 /* stack size = 6 */ - 557 .L__stack_usage = 6 - 558 0112 EC01 movw r28,r24 - 559 0114 7B01 movw r14,r22 - 560 0116 8A01 movw r16,r20 - 183:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (!reserve(length)) { - 562 .LM44: - 563 0118 BA01 movw r22,r20 - 564 011a 0E94 0000 call _ZN6String7reserveEj - 565 011e 8111 cpse r24,__zero_reg__ - 566 0120 00C0 rjmp .L32 - 184:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** invalidate(); - 568 .LM45: - 569 0122 CE01 movw r24,r28 - 570 0124 0E94 0000 call _ZN6String10invalidateEv - 185:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return *this; - 572 .LM46: - 573 0128 00C0 rjmp .L33 - 574 .L32: - 186:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 187:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** len = length; - 576 .LM47: - 577 012a 1D83 std Y+5,r17 - 578 012c 0C83 std Y+4,r16 - 188:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** strcpy_P(buffer, (PGM_P)pstr); - 580 .LM48: - 581 012e B701 movw r22,r14 - 582 0130 8881 ld r24,Y - 583 0132 9981 ldd r25,Y+1 - 584 0134 0E94 0000 call strcpy_P - 585 .L33: - 189:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return *this; - 190:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 587 .LM49: - 588 0138 CE01 movw r24,r28 - 589 /* epilogue start */ - 590 013a DF91 pop r29 - 591 013c CF91 pop r28 - 592 013e 1F91 pop r17 - 593 0140 0F91 pop r16 - 594 0142 FF90 pop r15 - 595 0144 EF90 pop r14 - 596 0146 0895 ret - 598 .Lscope11: - 600 .stabd 78,0,0 - 604 .global _ZN6StringaSERKS_ - 606 _ZN6StringaSERKS_: - 607 .stabd 46,0,0 - 191:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 192:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** #if __cplusplus >= 201103L || defined(__GXX_EXPERIMENTAL_CXX0X__) - 193:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** void String::move(String &rhs) - 194:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 195:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (buffer) { - 196:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (rhs && capacity >= rhs.len) { - 197:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** strcpy(buffer, rhs.buffer); - 198:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** len = rhs.len; - 199:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** rhs.len = 0; - 200:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return; - 201:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } else { - 202:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** free(buffer); - 203:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 204:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 205:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** buffer = rhs.buffer; - 206:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** capacity = rhs.capacity; - 207:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** len = rhs.len; - 208:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** rhs.buffer = NULL; - 209:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** rhs.capacity = 0; - 210:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** rhs.len = 0; - 211:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 212:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** #endif - 213:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 214:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** String & String::operator = (const String &rhs) - 215:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 609 .LM50: - 610 .LFBB12: - 611 0148 CF93 push r28 - 612 014a DF93 push r29 - 613 /* prologue: function */ - 614 /* frame size = 0 */ - 615 /* stack size = 2 */ - 616 .L__stack_usage = 2 - 617 014c EC01 movw r28,r24 - 618 014e FB01 movw r30,r22 - 216:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (this == &rhs) return *this; - 620 .LM51: - 621 0150 8617 cp r24,r22 - 622 0152 9707 cpc r25,r23 - 623 0154 01F0 breq .L35 - 217:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 218:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (rhs.buffer) copy(rhs.buffer, rhs.len); - 625 .LM52: - 626 0156 6081 ld r22,Z - 627 0158 7181 ldd r23,Z+1 - 628 015a 6115 cp r22,__zero_reg__ - 629 015c 7105 cpc r23,__zero_reg__ - 630 015e 01F0 breq .L36 - 632 .LM53: - 633 0160 4481 ldd r20,Z+4 - 634 0162 5581 ldd r21,Z+5 - 635 0164 0E94 0000 call _ZN6String4copyEPKcj - 636 0168 00C0 rjmp .L35 - 637 .L36: - 219:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** else invalidate(); - 639 .LM54: - 640 016a 0E94 0000 call _ZN6String10invalidateEv - 641 .L35: - 220:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 221:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return *this; - 222:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 643 .LM55: - 644 016e CE01 movw r24,r28 - 645 /* epilogue start */ - 646 0170 DF91 pop r29 - 647 0172 CF91 pop r28 - 648 0174 0895 ret - 650 .Lscope12: - 652 .stabd 78,0,0 - 656 .global _ZN6StringC2ERKS_ - 658 _ZN6StringC2ERKS_: - 659 .stabd 46,0,0 - 34:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 661 .LM56: - 662 .LFBB13: - 663 /* prologue: function */ - 664 /* frame size = 0 */ - 665 /* stack size = 0 */ - 666 .L__stack_usage = 0 - 667 .LBB51: - 668 .LBB52: - 669 .LBB53: - 133:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** capacity = 0; - 671 .LM57: - 672 0176 FC01 movw r30,r24 - 673 0178 1182 std Z+1,__zero_reg__ - 674 017a 1082 st Z,__zero_reg__ - 134:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** len = 0; - 676 .LM58: - 677 017c 1382 std Z+3,__zero_reg__ - 678 017e 1282 std Z+2,__zero_reg__ - 135:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 680 .LM59: - 681 0180 1582 std Z+5,__zero_reg__ - 682 0182 1482 std Z+4,__zero_reg__ - 683 .LBE53: - 684 .LBE52: - 37:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 686 .LM60: - 687 0184 0C94 0000 jmp _ZN6StringaSERKS_ - 688 .LBE51: - 690 .Lscope13: - 692 .stabd 78,0,0 - 693 .global _ZN6StringC1ERKS_ - 694 .set _ZN6StringC1ERKS_,_ZN6StringC2ERKS_ - 698 .global _ZN6StringaSEPKc - 700 _ZN6StringaSEPKc: - 701 .stabd 46,0,0 - 223:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 224:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** #if __cplusplus >= 201103L || defined(__GXX_EXPERIMENTAL_CXX0X__) - 225:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** String & String::operator = (String &&rval) - 226:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 227:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (this != &rval) move(rval); - 228:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return *this; - 229:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 230:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 231:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** String & String::operator = (StringSumHelper &&rval) - 232:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 233:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (this != &rval) move(rval); - 234:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return *this; - 235:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 236:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** #endif - 237:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 238:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** String & String::operator = (const char *cstr) - 239:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 703 .LM61: - 704 .LFBB14: - 705 0188 CF93 push r28 - 706 018a DF93 push r29 - 707 /* prologue: function */ - 708 /* frame size = 0 */ - 709 /* stack size = 2 */ - 710 .L__stack_usage = 2 - 711 018c EC01 movw r28,r24 - 240:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (cstr) copy(cstr, strlen(cstr)); - 713 .LM62: - 714 018e 6115 cp r22,__zero_reg__ - 715 0190 7105 cpc r23,__zero_reg__ - 716 0192 01F0 breq .L39 - 718 .LM63: - 719 0194 FB01 movw r30,r22 - 720 0: - 721 0196 0190 ld __tmp_reg__,Z+ - 722 0198 0020 tst __tmp_reg__ - 723 019a 01F4 brne 0b - 724 019c 3197 sbiw r30,1 - 725 019e AF01 movw r20,r30 - 726 01a0 461B sub r20,r22 - 727 01a2 570B sbc r21,r23 - 728 01a4 0E94 0000 call _ZN6String4copyEPKcj - 729 01a8 00C0 rjmp .L40 - 730 .L39: - 241:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** else invalidate(); - 732 .LM64: - 733 01aa 0E94 0000 call _ZN6String10invalidateEv - 734 .L40: - 242:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 243:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return *this; - 244:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 736 .LM65: - 737 01ae CE01 movw r24,r28 - 738 /* epilogue start */ - 739 01b0 DF91 pop r29 - 740 01b2 CF91 pop r28 - 741 01b4 0895 ret - 743 .Lscope14: - 745 .stabd 78,0,0 - 749 .global _ZN6StringC2Ec - 751 _ZN6StringC2Ec: - 752 .stabd 46,0,0 - 59:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 754 .LM66: - 755 .LFBB15: - 756 01b6 CF93 push r28 - 757 01b8 DF93 push r29 - 758 01ba 00D0 rcall . - 759 01bc CDB7 in r28,__SP_L__ - 760 01be DEB7 in r29,__SP_H__ - 761 /* prologue: function */ - 762 /* frame size = 2 */ - 763 /* stack size = 4 */ - 764 .L__stack_usage = 4 - 765 .LBB54: - 766 .LBB55: - 767 .LBB56: - 133:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** capacity = 0; - 769 .LM67: - 770 01c0 FC01 movw r30,r24 - 771 01c2 1182 std Z+1,__zero_reg__ - 772 01c4 1082 st Z,__zero_reg__ - 134:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** len = 0; - 774 .LM68: - 775 01c6 1382 std Z+3,__zero_reg__ - 776 01c8 1282 std Z+2,__zero_reg__ - 135:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 778 .LM69: - 779 01ca 1582 std Z+5,__zero_reg__ - 780 01cc 1482 std Z+4,__zero_reg__ - 781 .LBE56: - 782 .LBE55: - 63:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** buf[1] = 0; - 784 .LM70: - 785 01ce 6983 std Y+1,r22 - 64:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** *this = buf; - 787 .LM71: - 788 01d0 1A82 std Y+2,__zero_reg__ - 65:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 790 .LM72: - 791 01d2 BE01 movw r22,r28 - 792 01d4 6F5F subi r22,-1 - 793 01d6 7F4F sbci r23,-1 - 794 01d8 0E94 0000 call _ZN6StringaSEPKc - 795 /* epilogue start */ - 796 .LBE54: - 66:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 798 .LM73: - 799 01dc 0F90 pop __tmp_reg__ - 800 01de 0F90 pop __tmp_reg__ - 801 01e0 DF91 pop r29 - 802 01e2 CF91 pop r28 - 803 01e4 0895 ret - 808 .Lscope15: - 810 .stabd 78,0,0 - 811 .global _ZN6StringC1Ec - 812 .set _ZN6StringC1Ec,_ZN6StringC2Ec - 817 .global _ZN6StringC2Ehh - 819 _ZN6StringC2Ehh: - 820 .stabd 46,0,0 - 68:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 822 .LM74: - 823 .LFBB16: - 824 01e6 0F93 push r16 - 825 01e8 1F93 push r17 - 826 01ea CF93 push r28 - 827 01ec DF93 push r29 - 828 01ee CDB7 in r28,__SP_L__ - 829 01f0 DEB7 in r29,__SP_H__ - 830 01f2 2997 sbiw r28,9 - 831 01f4 0FB6 in __tmp_reg__,__SREG__ - 832 01f6 F894 cli - 833 01f8 DEBF out __SP_H__,r29 - 834 01fa 0FBE out __SREG__,__tmp_reg__ - 835 01fc CDBF out __SP_L__,r28 - 836 /* prologue: function */ - 837 /* frame size = 9 */ - 838 /* stack size = 13 */ - 839 .L__stack_usage = 13 - 840 01fe 8C01 movw r16,r24 - 841 0200 862F mov r24,r22 - 842 .LBB57: - 843 .LBB58: - 844 .LBB59: - 133:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** capacity = 0; - 846 .LM75: - 847 0202 F801 movw r30,r16 - 848 0204 1182 std Z+1,__zero_reg__ - 849 0206 1082 st Z,__zero_reg__ - 134:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** len = 0; - 851 .LM76: - 852 0208 1382 std Z+3,__zero_reg__ - 853 020a 1282 std Z+2,__zero_reg__ - 135:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 855 .LM77: - 856 020c 1582 std Z+5,__zero_reg__ - 857 020e 1482 std Z+4,__zero_reg__ - 858 .LBE59: - 859 .LBE58: - 72:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** *this = buf; - 861 .LM78: - 862 0210 50E0 ldi r21,0 - 863 0212 BE01 movw r22,r28 - 864 0214 6F5F subi r22,-1 - 865 0216 7F4F sbci r23,-1 - 866 0218 90E0 ldi r25,0 - 867 021a 0E94 0000 call utoa - 73:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 869 .LM79: - 870 021e BE01 movw r22,r28 - 871 0220 6F5F subi r22,-1 - 872 0222 7F4F sbci r23,-1 - 873 0224 C801 movw r24,r16 - 874 0226 0E94 0000 call _ZN6StringaSEPKc - 875 /* epilogue start */ - 876 .LBE57: - 74:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 878 .LM80: - 879 022a 2996 adiw r28,9 - 880 022c 0FB6 in __tmp_reg__,__SREG__ - 881 022e F894 cli - 882 0230 DEBF out __SP_H__,r29 - 883 0232 0FBE out __SREG__,__tmp_reg__ - 884 0234 CDBF out __SP_L__,r28 - 885 0236 DF91 pop r29 - 886 0238 CF91 pop r28 - 887 023a 1F91 pop r17 - 888 023c 0F91 pop r16 - 889 023e 0895 ret - 894 .Lscope16: - 896 .stabd 78,0,0 - 897 .global _ZN6StringC1Ehh - 898 .set _ZN6StringC1Ehh,_ZN6StringC2Ehh - 903 .global _ZN6StringC2Eih - 905 _ZN6StringC2Eih: - 906 .stabd 46,0,0 - 76:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 908 .LM81: - 909 .LFBB17: - 910 0240 0F93 push r16 - 911 0242 1F93 push r17 - 912 0244 CF93 push r28 - 913 0246 DF93 push r29 - 914 0248 CDB7 in r28,__SP_L__ - 915 024a DEB7 in r29,__SP_H__ - 916 024c 6297 sbiw r28,18 - 917 024e 0FB6 in __tmp_reg__,__SREG__ - 918 0250 F894 cli - 919 0252 DEBF out __SP_H__,r29 - 920 0254 0FBE out __SREG__,__tmp_reg__ - 921 0256 CDBF out __SP_L__,r28 - 922 /* prologue: function */ - 923 /* frame size = 18 */ - 924 /* stack size = 22 */ - 925 .L__stack_usage = 22 - 926 0258 8C01 movw r16,r24 - 927 025a CB01 movw r24,r22 - 928 .LBB60: - 929 .LBB61: - 930 .LBB62: - 133:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** capacity = 0; - 932 .LM82: - 933 025c F801 movw r30,r16 - 934 025e 1182 std Z+1,__zero_reg__ - 935 0260 1082 st Z,__zero_reg__ - 134:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** len = 0; - 937 .LM83: - 938 0262 1382 std Z+3,__zero_reg__ - 939 0264 1282 std Z+2,__zero_reg__ - 135:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 941 .LM84: - 942 0266 1582 std Z+5,__zero_reg__ - 943 0268 1482 std Z+4,__zero_reg__ - 944 .LBE62: - 945 .LBE61: - 80:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** *this = buf; - 947 .LM85: - 948 026a 50E0 ldi r21,0 - 949 026c BE01 movw r22,r28 - 950 026e 6F5F subi r22,-1 - 951 0270 7F4F sbci r23,-1 - 952 0272 0E94 0000 call itoa - 81:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 954 .LM86: - 955 0276 BE01 movw r22,r28 - 956 0278 6F5F subi r22,-1 - 957 027a 7F4F sbci r23,-1 - 958 027c C801 movw r24,r16 - 959 027e 0E94 0000 call _ZN6StringaSEPKc - 960 /* epilogue start */ - 961 .LBE60: - 82:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 963 .LM87: - 964 0282 6296 adiw r28,18 - 965 0284 0FB6 in __tmp_reg__,__SREG__ - 966 0286 F894 cli - 967 0288 DEBF out __SP_H__,r29 - 968 028a 0FBE out __SREG__,__tmp_reg__ - 969 028c CDBF out __SP_L__,r28 - 970 028e DF91 pop r29 - 971 0290 CF91 pop r28 - 972 0292 1F91 pop r17 - 973 0294 0F91 pop r16 - 974 0296 0895 ret - 979 .Lscope17: - 981 .stabd 78,0,0 - 982 .global _ZN6StringC1Eih - 983 .set _ZN6StringC1Eih,_ZN6StringC2Eih - 988 .global _ZN6StringC2Ejh - 990 _ZN6StringC2Ejh: - 991 .stabd 46,0,0 - 84:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 993 .LM88: - 994 .LFBB18: - 995 0298 0F93 push r16 - 996 029a 1F93 push r17 - 997 029c CF93 push r28 - 998 029e DF93 push r29 - 999 02a0 CDB7 in r28,__SP_L__ - 1000 02a2 DEB7 in r29,__SP_H__ - 1001 02a4 6197 sbiw r28,17 - 1002 02a6 0FB6 in __tmp_reg__,__SREG__ - 1003 02a8 F894 cli - 1004 02aa DEBF out __SP_H__,r29 - 1005 02ac 0FBE out __SREG__,__tmp_reg__ - 1006 02ae CDBF out __SP_L__,r28 - 1007 /* prologue: function */ - 1008 /* frame size = 17 */ - 1009 /* stack size = 21 */ - 1010 .L__stack_usage = 21 - 1011 02b0 8C01 movw r16,r24 - 1012 02b2 CB01 movw r24,r22 - 1013 .LBB63: - 1014 .LBB64: - 1015 .LBB65: - 133:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** capacity = 0; - 1017 .LM89: - 1018 02b4 F801 movw r30,r16 - 1019 02b6 1182 std Z+1,__zero_reg__ - 1020 02b8 1082 st Z,__zero_reg__ - 134:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** len = 0; - 1022 .LM90: - 1023 02ba 1382 std Z+3,__zero_reg__ - 1024 02bc 1282 std Z+2,__zero_reg__ - 135:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 1026 .LM91: - 1027 02be 1582 std Z+5,__zero_reg__ - 1028 02c0 1482 std Z+4,__zero_reg__ - 1029 .LBE65: - 1030 .LBE64: - 88:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** *this = buf; - 1032 .LM92: - 1033 02c2 50E0 ldi r21,0 - 1034 02c4 BE01 movw r22,r28 - 1035 02c6 6F5F subi r22,-1 - 1036 02c8 7F4F sbci r23,-1 - 1037 02ca 0E94 0000 call utoa - 89:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 1039 .LM93: - 1040 02ce BE01 movw r22,r28 - 1041 02d0 6F5F subi r22,-1 - 1042 02d2 7F4F sbci r23,-1 - 1043 02d4 C801 movw r24,r16 - 1044 02d6 0E94 0000 call _ZN6StringaSEPKc - 1045 /* epilogue start */ - 1046 .LBE63: - 90:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 1048 .LM94: - 1049 02da 6196 adiw r28,17 - 1050 02dc 0FB6 in __tmp_reg__,__SREG__ - 1051 02de F894 cli - 1052 02e0 DEBF out __SP_H__,r29 - 1053 02e2 0FBE out __SREG__,__tmp_reg__ - 1054 02e4 CDBF out __SP_L__,r28 - 1055 02e6 DF91 pop r29 - 1056 02e8 CF91 pop r28 - 1057 02ea 1F91 pop r17 - 1058 02ec 0F91 pop r16 - 1059 02ee 0895 ret - 1064 .Lscope18: - 1066 .stabd 78,0,0 - 1067 .global _ZN6StringC1Ejh - 1068 .set _ZN6StringC1Ejh,_ZN6StringC2Ejh - 1073 .global _ZN6StringC2Elh - 1075 _ZN6StringC2Elh: - 1076 .stabd 46,0,0 - 92:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 1078 .LM95: - 1079 .LFBB19: - 1080 02f0 0F93 push r16 - 1081 02f2 1F93 push r17 - 1082 02f4 CF93 push r28 - 1083 02f6 DF93 push r29 - 1084 02f8 CDB7 in r28,__SP_L__ - 1085 02fa DEB7 in r29,__SP_H__ - 1086 02fc A297 sbiw r28,34 - 1087 02fe 0FB6 in __tmp_reg__,__SREG__ - 1088 0300 F894 cli - 1089 0302 DEBF out __SP_H__,r29 - 1090 0304 0FBE out __SREG__,__tmp_reg__ - 1091 0306 CDBF out __SP_L__,r28 - 1092 /* prologue: function */ - 1093 /* frame size = 34 */ - 1094 /* stack size = 38 */ - 1095 .L__stack_usage = 38 - 1096 0308 8C01 movw r16,r24 - 1097 030a CB01 movw r24,r22 - 1098 030c BA01 movw r22,r20 - 1099 .LBB66: - 1100 .LBB67: - 1101 .LBB68: - 133:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** capacity = 0; - 1103 .LM96: - 1104 030e F801 movw r30,r16 - 1105 0310 1182 std Z+1,__zero_reg__ - 1106 0312 1082 st Z,__zero_reg__ - 134:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** len = 0; - 1108 .LM97: - 1109 0314 1382 std Z+3,__zero_reg__ - 1110 0316 1282 std Z+2,__zero_reg__ - 135:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 1112 .LM98: - 1113 0318 1582 std Z+5,__zero_reg__ - 1114 031a 1482 std Z+4,__zero_reg__ - 1115 .LBE68: - 1116 .LBE67: - 96:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** *this = buf; - 1118 .LM99: - 1119 031c 30E0 ldi r19,0 - 1120 031e AE01 movw r20,r28 - 1121 0320 4F5F subi r20,-1 - 1122 0322 5F4F sbci r21,-1 - 1123 0324 0E94 0000 call ltoa - 97:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 1125 .LM100: - 1126 0328 BE01 movw r22,r28 - 1127 032a 6F5F subi r22,-1 - 1128 032c 7F4F sbci r23,-1 - 1129 032e C801 movw r24,r16 - 1130 0330 0E94 0000 call _ZN6StringaSEPKc - 1131 /* epilogue start */ - 1132 .LBE66: - 98:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 1134 .LM101: - 1135 0334 A296 adiw r28,34 - 1136 0336 0FB6 in __tmp_reg__,__SREG__ - 1137 0338 F894 cli - 1138 033a DEBF out __SP_H__,r29 - 1139 033c 0FBE out __SREG__,__tmp_reg__ - 1140 033e CDBF out __SP_L__,r28 - 1141 0340 DF91 pop r29 - 1142 0342 CF91 pop r28 - 1143 0344 1F91 pop r17 - 1144 0346 0F91 pop r16 - 1145 0348 0895 ret - 1150 .Lscope19: - 1152 .stabd 78,0,0 - 1153 .global _ZN6StringC1Elh - 1154 .set _ZN6StringC1Elh,_ZN6StringC2Elh - 1159 .global _ZN6StringC2Emh - 1161 _ZN6StringC2Emh: - 1162 .stabd 46,0,0 - 100:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 1164 .LM102: - 1165 .LFBB20: - 1166 034a 0F93 push r16 - 1167 034c 1F93 push r17 - 1168 034e CF93 push r28 - 1169 0350 DF93 push r29 - 1170 0352 CDB7 in r28,__SP_L__ - 1171 0354 DEB7 in r29,__SP_H__ - 1172 0356 A197 sbiw r28,33 - 1173 0358 0FB6 in __tmp_reg__,__SREG__ - 1174 035a F894 cli - 1175 035c DEBF out __SP_H__,r29 - 1176 035e 0FBE out __SREG__,__tmp_reg__ - 1177 0360 CDBF out __SP_L__,r28 - 1178 /* prologue: function */ - 1179 /* frame size = 33 */ - 1180 /* stack size = 37 */ - 1181 .L__stack_usage = 37 - 1182 0362 8C01 movw r16,r24 - 1183 0364 CB01 movw r24,r22 - 1184 0366 BA01 movw r22,r20 - 1185 .LBB69: - 1186 .LBB70: - 1187 .LBB71: - 133:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** capacity = 0; - 1189 .LM103: - 1190 0368 F801 movw r30,r16 - 1191 036a 1182 std Z+1,__zero_reg__ - 1192 036c 1082 st Z,__zero_reg__ - 134:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** len = 0; - 1194 .LM104: - 1195 036e 1382 std Z+3,__zero_reg__ - 1196 0370 1282 std Z+2,__zero_reg__ - 135:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 1198 .LM105: - 1199 0372 1582 std Z+5,__zero_reg__ - 1200 0374 1482 std Z+4,__zero_reg__ - 1201 .LBE71: - 1202 .LBE70: - 104:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** *this = buf; - 1204 .LM106: - 1205 0376 30E0 ldi r19,0 - 1206 0378 AE01 movw r20,r28 - 1207 037a 4F5F subi r20,-1 - 1208 037c 5F4F sbci r21,-1 - 1209 037e 0E94 0000 call ultoa - 105:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 1211 .LM107: - 1212 0382 BE01 movw r22,r28 - 1213 0384 6F5F subi r22,-1 - 1214 0386 7F4F sbci r23,-1 - 1215 0388 C801 movw r24,r16 - 1216 038a 0E94 0000 call _ZN6StringaSEPKc - 1217 /* epilogue start */ - 1218 .LBE69: - 106:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 1220 .LM108: - 1221 038e A196 adiw r28,33 - 1222 0390 0FB6 in __tmp_reg__,__SREG__ - 1223 0392 F894 cli - 1224 0394 DEBF out __SP_H__,r29 - 1225 0396 0FBE out __SREG__,__tmp_reg__ - 1226 0398 CDBF out __SP_L__,r28 - 1227 039a DF91 pop r29 - 1228 039c CF91 pop r28 - 1229 039e 1F91 pop r17 - 1230 03a0 0F91 pop r16 - 1231 03a2 0895 ret - 1236 .Lscope20: - 1238 .stabd 78,0,0 - 1239 .global _ZN6StringC1Emh - 1240 .set _ZN6StringC1Emh,_ZN6StringC2Emh - 1245 .global _ZN6StringC2Efh - 1247 _ZN6StringC2Efh: - 1248 .stabd 46,0,0 - 108:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 1250 .LM109: - 1251 .LFBB21: - 1252 03a4 EF92 push r14 - 1253 03a6 FF92 push r15 - 1254 03a8 0F93 push r16 - 1255 03aa 1F93 push r17 - 1256 03ac CF93 push r28 - 1257 03ae DF93 push r29 - 1258 03b0 CDB7 in r28,__SP_L__ - 1259 03b2 DEB7 in r29,__SP_H__ - 1260 03b4 A197 sbiw r28,33 - 1261 03b6 0FB6 in __tmp_reg__,__SREG__ - 1262 03b8 F894 cli - 1263 03ba DEBF out __SP_H__,r29 - 1264 03bc 0FBE out __SREG__,__tmp_reg__ - 1265 03be CDBF out __SP_L__,r28 - 1266 /* prologue: function */ - 1267 /* frame size = 33 */ - 1268 /* stack size = 39 */ - 1269 .L__stack_usage = 39 - 1270 03c0 7C01 movw r14,r24 - 1271 03c2 CB01 movw r24,r22 - 1272 03c4 BA01 movw r22,r20 - 1273 .LBB72: - 1274 .LBB73: - 1275 .LBB74: - 133:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** capacity = 0; - 1277 .LM110: - 1278 03c6 F701 movw r30,r14 - 1279 03c8 1182 std Z+1,__zero_reg__ - 1280 03ca 1082 st Z,__zero_reg__ - 134:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** len = 0; - 1282 .LM111: - 1283 03cc 1382 std Z+3,__zero_reg__ - 1284 03ce 1282 std Z+2,__zero_reg__ - 135:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 1286 .LM112: - 1287 03d0 1582 std Z+5,__zero_reg__ - 1288 03d2 1482 std Z+4,__zero_reg__ - 1289 .LBE74: - 1290 .LBE73: - 112:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 1292 .LM113: - 1293 03d4 42E0 ldi r20,lo8(2) - 1294 03d6 420F add r20,r18 - 1295 03d8 8E01 movw r16,r28 - 1296 03da 0F5F subi r16,-1 - 1297 03dc 1F4F sbci r17,-1 - 1298 03de 0E94 0000 call dtostrf - 1299 03e2 BC01 movw r22,r24 - 1300 03e4 C701 movw r24,r14 - 1301 03e6 0E94 0000 call _ZN6StringaSEPKc - 1302 /* epilogue start */ - 1303 .LBE72: - 113:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 1305 .LM114: - 1306 03ea A196 adiw r28,33 - 1307 03ec 0FB6 in __tmp_reg__,__SREG__ - 1308 03ee F894 cli - 1309 03f0 DEBF out __SP_H__,r29 - 1310 03f2 0FBE out __SREG__,__tmp_reg__ - 1311 03f4 CDBF out __SP_L__,r28 - 1312 03f6 DF91 pop r29 - 1313 03f8 CF91 pop r28 - 1314 03fa 1F91 pop r17 - 1315 03fc 0F91 pop r16 - 1316 03fe FF90 pop r15 - 1317 0400 EF90 pop r14 - 1318 0402 0895 ret - 1323 .Lscope21: - 1325 .stabd 78,0,0 - 1326 .global _ZN6StringC1Efh - 1327 .set _ZN6StringC1Efh,_ZN6StringC2Efh - 1332 .global _ZN6StringC2Edh - 1334 _ZN6StringC2Edh: - 1335 .stabd 46,0,0 - 115:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 1337 .LM115: - 1338 .LFBB22: - 1339 0404 EF92 push r14 - 1340 0406 FF92 push r15 - 1341 0408 0F93 push r16 - 1342 040a 1F93 push r17 - 1343 040c CF93 push r28 - 1344 040e DF93 push r29 - 1345 0410 CDB7 in r28,__SP_L__ - 1346 0412 DEB7 in r29,__SP_H__ - 1347 0414 A197 sbiw r28,33 - 1348 0416 0FB6 in __tmp_reg__,__SREG__ - 1349 0418 F894 cli - 1350 041a DEBF out __SP_H__,r29 - 1351 041c 0FBE out __SREG__,__tmp_reg__ - 1352 041e CDBF out __SP_L__,r28 - 1353 /* prologue: function */ - 1354 /* frame size = 33 */ - 1355 /* stack size = 39 */ - 1356 .L__stack_usage = 39 - 1357 0420 7C01 movw r14,r24 - 1358 0422 CB01 movw r24,r22 - 1359 0424 BA01 movw r22,r20 - 1360 .LBB75: - 1361 .LBB76: - 1362 .LBB77: - 133:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** capacity = 0; - 1364 .LM116: - 1365 0426 F701 movw r30,r14 - 1366 0428 1182 std Z+1,__zero_reg__ - 1367 042a 1082 st Z,__zero_reg__ - 134:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** len = 0; - 1369 .LM117: - 1370 042c 1382 std Z+3,__zero_reg__ - 1371 042e 1282 std Z+2,__zero_reg__ - 135:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 1373 .LM118: - 1374 0430 1582 std Z+5,__zero_reg__ - 1375 0432 1482 std Z+4,__zero_reg__ - 1376 .LBE77: - 1377 .LBE76: - 119:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 1379 .LM119: - 1380 0434 42E0 ldi r20,lo8(2) - 1381 0436 420F add r20,r18 - 1382 0438 8E01 movw r16,r28 - 1383 043a 0F5F subi r16,-1 - 1384 043c 1F4F sbci r17,-1 - 1385 043e 0E94 0000 call dtostrf - 1386 0442 BC01 movw r22,r24 - 1387 0444 C701 movw r24,r14 - 1388 0446 0E94 0000 call _ZN6StringaSEPKc - 1389 /* epilogue start */ - 1390 .LBE75: - 120:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 1392 .LM120: - 1393 044a A196 adiw r28,33 - 1394 044c 0FB6 in __tmp_reg__,__SREG__ - 1395 044e F894 cli - 1396 0450 DEBF out __SP_H__,r29 - 1397 0452 0FBE out __SREG__,__tmp_reg__ - 1398 0454 CDBF out __SP_L__,r28 - 1399 0456 DF91 pop r29 - 1400 0458 CF91 pop r28 - 1401 045a 1F91 pop r17 - 1402 045c 0F91 pop r16 - 1403 045e FF90 pop r15 - 1404 0460 EF90 pop r14 - 1405 0462 0895 ret - 1410 .Lscope22: - 1412 .stabd 78,0,0 - 1413 .global _ZN6StringC1Edh - 1414 .set _ZN6StringC1Edh,_ZN6StringC2Edh - 1418 .global _ZN6StringaSEPK19__FlashStringHelper - 1420 _ZN6StringaSEPK19__FlashStringHelper: - 1421 .stabd 46,0,0 - 245:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 246:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** String & String::operator = (const __FlashStringHelper *pstr) - 247:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 1423 .LM121: - 1424 .LFBB23: - 1425 0464 0F93 push r16 - 1426 0466 1F93 push r17 - 1427 0468 CF93 push r28 - 1428 046a DF93 push r29 - 1429 /* prologue: function */ - 1430 /* frame size = 0 */ - 1431 /* stack size = 4 */ - 1432 .L__stack_usage = 4 - 1433 046c EC01 movw r28,r24 - 1434 046e 8B01 movw r16,r22 - 248:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (pstr) copy(pstr, strlen_P((PGM_P)pstr)); - 1436 .LM122: - 1437 0470 6115 cp r22,__zero_reg__ - 1438 0472 7105 cpc r23,__zero_reg__ - 1439 0474 01F0 breq .L50 - 1440 .LBB78: - 1441 .LBB79: - 1443 .Ltext3: - 1:/usr/lib/avr/include/avr/pgmspace.h **** /* Copyright (c) 2002-2007 Marek Michalkiewicz - 2:/usr/lib/avr/include/avr/pgmspace.h **** Copyright (c) 2006, Carlos Lamas - 3:/usr/lib/avr/include/avr/pgmspace.h **** Copyright (c) 2009-2010, Jan Waclawek - 4:/usr/lib/avr/include/avr/pgmspace.h **** All rights reserved. - 5:/usr/lib/avr/include/avr/pgmspace.h **** - 6:/usr/lib/avr/include/avr/pgmspace.h **** Redistribution and use in source and binary forms, with or without - 7:/usr/lib/avr/include/avr/pgmspace.h **** modification, are permitted provided that the following conditions are met: - 8:/usr/lib/avr/include/avr/pgmspace.h **** - 9:/usr/lib/avr/include/avr/pgmspace.h **** * Redistributions of source code must retain the above copyright - 10:/usr/lib/avr/include/avr/pgmspace.h **** notice, this list of conditions and the following disclaimer. - 11:/usr/lib/avr/include/avr/pgmspace.h **** * Redistributions in binary form must reproduce the above copyright - 12:/usr/lib/avr/include/avr/pgmspace.h **** notice, this list of conditions and the following disclaimer in - 13:/usr/lib/avr/include/avr/pgmspace.h **** the documentation and/or other materials provided with the - 14:/usr/lib/avr/include/avr/pgmspace.h **** distribution. - 15:/usr/lib/avr/include/avr/pgmspace.h **** * Neither the name of the copyright holders nor the names of - 16:/usr/lib/avr/include/avr/pgmspace.h **** contributors may be used to endorse or promote products derived - 17:/usr/lib/avr/include/avr/pgmspace.h **** from this software without specific prior written permission. - 18:/usr/lib/avr/include/avr/pgmspace.h **** - 19:/usr/lib/avr/include/avr/pgmspace.h **** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - 20:/usr/lib/avr/include/avr/pgmspace.h **** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - 21:/usr/lib/avr/include/avr/pgmspace.h **** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - 22:/usr/lib/avr/include/avr/pgmspace.h **** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - 23:/usr/lib/avr/include/avr/pgmspace.h **** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - 24:/usr/lib/avr/include/avr/pgmspace.h **** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - 25:/usr/lib/avr/include/avr/pgmspace.h **** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - 26:/usr/lib/avr/include/avr/pgmspace.h **** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - 27:/usr/lib/avr/include/avr/pgmspace.h **** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - 28:/usr/lib/avr/include/avr/pgmspace.h **** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - 29:/usr/lib/avr/include/avr/pgmspace.h **** POSSIBILITY OF SUCH DAMAGE. */ - 30:/usr/lib/avr/include/avr/pgmspace.h **** - 31:/usr/lib/avr/include/avr/pgmspace.h **** /* $Id$ */ - 32:/usr/lib/avr/include/avr/pgmspace.h **** - 33:/usr/lib/avr/include/avr/pgmspace.h **** /* - 34:/usr/lib/avr/include/avr/pgmspace.h **** pgmspace.h - 35:/usr/lib/avr/include/avr/pgmspace.h **** - 36:/usr/lib/avr/include/avr/pgmspace.h **** Contributors: - 37:/usr/lib/avr/include/avr/pgmspace.h **** Created by Marek Michalkiewicz - 38:/usr/lib/avr/include/avr/pgmspace.h **** Eric B. Weddington - 39:/usr/lib/avr/include/avr/pgmspace.h **** Wolfgang Haidinger (pgm_read_dword()) - 40:/usr/lib/avr/include/avr/pgmspace.h **** Ivanov Anton (pgm_read_float()) - 41:/usr/lib/avr/include/avr/pgmspace.h **** */ - 42:/usr/lib/avr/include/avr/pgmspace.h **** - 43:/usr/lib/avr/include/avr/pgmspace.h **** /** \file */ - 44:/usr/lib/avr/include/avr/pgmspace.h **** /** \defgroup avr_pgmspace : Program Space Utilities - 45:/usr/lib/avr/include/avr/pgmspace.h **** \code - 46:/usr/lib/avr/include/avr/pgmspace.h **** #include - 47:/usr/lib/avr/include/avr/pgmspace.h **** #include - 48:/usr/lib/avr/include/avr/pgmspace.h **** \endcode - 49:/usr/lib/avr/include/avr/pgmspace.h **** - 50:/usr/lib/avr/include/avr/pgmspace.h **** The functions in this module provide interfaces for a program to access - 51:/usr/lib/avr/include/avr/pgmspace.h **** data stored in program space (flash memory) of the device. In order to - 52:/usr/lib/avr/include/avr/pgmspace.h **** use these functions, the target device must support either the \c LPM or - 53:/usr/lib/avr/include/avr/pgmspace.h **** \c ELPM instructions. - 54:/usr/lib/avr/include/avr/pgmspace.h **** - 55:/usr/lib/avr/include/avr/pgmspace.h **** \note These functions are an attempt to provide some compatibility with - 56:/usr/lib/avr/include/avr/pgmspace.h **** header files that come with IAR C, to make porting applications between - 57:/usr/lib/avr/include/avr/pgmspace.h **** different compilers easier. This is not 100% compatibility though (GCC - 58:/usr/lib/avr/include/avr/pgmspace.h **** does not have full support for multiple address spaces yet). - 59:/usr/lib/avr/include/avr/pgmspace.h **** - 60:/usr/lib/avr/include/avr/pgmspace.h **** \note If you are working with strings which are completely based in ram, - 61:/usr/lib/avr/include/avr/pgmspace.h **** use the standard string functions described in \ref avr_string. - 62:/usr/lib/avr/include/avr/pgmspace.h **** - 63:/usr/lib/avr/include/avr/pgmspace.h **** \note If possible, put your constant tables in the lower 64 KB and use - 64:/usr/lib/avr/include/avr/pgmspace.h **** pgm_read_byte_near() or pgm_read_word_near() instead of - 65:/usr/lib/avr/include/avr/pgmspace.h **** pgm_read_byte_far() or pgm_read_word_far() since it is more efficient that - 66:/usr/lib/avr/include/avr/pgmspace.h **** way, and you can still use the upper 64K for executable code. - 67:/usr/lib/avr/include/avr/pgmspace.h **** All functions that are suffixed with a \c _P \e require their - 68:/usr/lib/avr/include/avr/pgmspace.h **** arguments to be in the lower 64 KB of the flash ROM, as they do - 69:/usr/lib/avr/include/avr/pgmspace.h **** not use ELPM instructions. This is normally not a big concern as - 70:/usr/lib/avr/include/avr/pgmspace.h **** the linker setup arranges any program space constants declared - 71:/usr/lib/avr/include/avr/pgmspace.h **** using the macros from this header file so they are placed right after - 72:/usr/lib/avr/include/avr/pgmspace.h **** the interrupt vectors, and in front of any executable code. However, - 73:/usr/lib/avr/include/avr/pgmspace.h **** it can become a problem if there are too many of these constants, or - 74:/usr/lib/avr/include/avr/pgmspace.h **** for bootloaders on devices with more than 64 KB of ROM. - 75:/usr/lib/avr/include/avr/pgmspace.h **** All these functions will not work in that situation. - 76:/usr/lib/avr/include/avr/pgmspace.h **** - 77:/usr/lib/avr/include/avr/pgmspace.h **** \note For Xmega devices, make sure the NVM controller - 78:/usr/lib/avr/include/avr/pgmspace.h **** command register (\c NVM.CMD or \c NVM_CMD) is set to 0x00 (NOP) - 79:/usr/lib/avr/include/avr/pgmspace.h **** before using any of these functions. - 80:/usr/lib/avr/include/avr/pgmspace.h **** */ - 81:/usr/lib/avr/include/avr/pgmspace.h **** - 82:/usr/lib/avr/include/avr/pgmspace.h **** #ifndef __PGMSPACE_H_ - 83:/usr/lib/avr/include/avr/pgmspace.h **** #define __PGMSPACE_H_ 1 - 84:/usr/lib/avr/include/avr/pgmspace.h **** - 85:/usr/lib/avr/include/avr/pgmspace.h **** #ifndef __DOXYGEN__ - 86:/usr/lib/avr/include/avr/pgmspace.h **** #define __need_size_t - 87:/usr/lib/avr/include/avr/pgmspace.h **** #endif - 88:/usr/lib/avr/include/avr/pgmspace.h **** #include - 89:/usr/lib/avr/include/avr/pgmspace.h **** #include - 90:/usr/lib/avr/include/avr/pgmspace.h **** #include - 91:/usr/lib/avr/include/avr/pgmspace.h **** - 92:/usr/lib/avr/include/avr/pgmspace.h **** #ifndef __DOXYGEN__ - 93:/usr/lib/avr/include/avr/pgmspace.h **** #ifndef __ATTR_CONST__ - 94:/usr/lib/avr/include/avr/pgmspace.h **** #define __ATTR_CONST__ __attribute__((__const__)) - 95:/usr/lib/avr/include/avr/pgmspace.h **** #endif - 96:/usr/lib/avr/include/avr/pgmspace.h **** - 97:/usr/lib/avr/include/avr/pgmspace.h **** #ifndef __ATTR_PROGMEM__ - 98:/usr/lib/avr/include/avr/pgmspace.h **** #define __ATTR_PROGMEM__ __attribute__((__progmem__)) - 99:/usr/lib/avr/include/avr/pgmspace.h **** #endif - 100:/usr/lib/avr/include/avr/pgmspace.h **** - 101:/usr/lib/avr/include/avr/pgmspace.h **** #ifndef __ATTR_PURE__ - 102:/usr/lib/avr/include/avr/pgmspace.h **** #define __ATTR_PURE__ __attribute__((__pure__)) - 103:/usr/lib/avr/include/avr/pgmspace.h **** #endif - 104:/usr/lib/avr/include/avr/pgmspace.h **** #endif /* !__DOXYGEN__ */ - 105:/usr/lib/avr/include/avr/pgmspace.h **** - 106:/usr/lib/avr/include/avr/pgmspace.h **** /** - 107:/usr/lib/avr/include/avr/pgmspace.h **** \ingroup avr_pgmspace - 108:/usr/lib/avr/include/avr/pgmspace.h **** \def PROGMEM - 109:/usr/lib/avr/include/avr/pgmspace.h **** - 110:/usr/lib/avr/include/avr/pgmspace.h **** Attribute to use in order to declare an object being located in - 111:/usr/lib/avr/include/avr/pgmspace.h **** flash ROM. - 112:/usr/lib/avr/include/avr/pgmspace.h **** */ - 113:/usr/lib/avr/include/avr/pgmspace.h **** #define PROGMEM __ATTR_PROGMEM__ - 114:/usr/lib/avr/include/avr/pgmspace.h **** - 115:/usr/lib/avr/include/avr/pgmspace.h **** #ifdef __cplusplus - 116:/usr/lib/avr/include/avr/pgmspace.h **** extern "C" { - 117:/usr/lib/avr/include/avr/pgmspace.h **** #endif - 118:/usr/lib/avr/include/avr/pgmspace.h **** - 119:/usr/lib/avr/include/avr/pgmspace.h **** #if defined(__DOXYGEN__) - 120:/usr/lib/avr/include/avr/pgmspace.h **** /* - 121:/usr/lib/avr/include/avr/pgmspace.h **** * Doxygen doesn't grok the appended attribute syntax of - 122:/usr/lib/avr/include/avr/pgmspace.h **** * GCC, and confuses the typedefs with function decls, so - 123:/usr/lib/avr/include/avr/pgmspace.h **** * supply a doxygen-friendly view. - 124:/usr/lib/avr/include/avr/pgmspace.h **** */ - 125:/usr/lib/avr/include/avr/pgmspace.h **** - 126:/usr/lib/avr/include/avr/pgmspace.h **** /** - 127:/usr/lib/avr/include/avr/pgmspace.h **** \ingroup avr_pgmspace - 128:/usr/lib/avr/include/avr/pgmspace.h **** \typedef prog_void - 129:/usr/lib/avr/include/avr/pgmspace.h **** \note DEPRECATED - 130:/usr/lib/avr/include/avr/pgmspace.h **** - 131:/usr/lib/avr/include/avr/pgmspace.h **** This typedef is now deprecated because the usage of the __progmem__ - 132:/usr/lib/avr/include/avr/pgmspace.h **** attribute on a type is not supported in GCC. However, the use of the - 133:/usr/lib/avr/include/avr/pgmspace.h **** __progmem__ attribute on a variable declaration is supported, and this is - 134:/usr/lib/avr/include/avr/pgmspace.h **** now the recommended usage. - 135:/usr/lib/avr/include/avr/pgmspace.h **** - 136:/usr/lib/avr/include/avr/pgmspace.h **** The typedef is only visible if the macro __PROG_TYPES_COMPAT__ - 137:/usr/lib/avr/include/avr/pgmspace.h **** has been defined before including (either by a - 138:/usr/lib/avr/include/avr/pgmspace.h **** \c \#define directive, or by a -D compiler option.) - 139:/usr/lib/avr/include/avr/pgmspace.h **** - 140:/usr/lib/avr/include/avr/pgmspace.h **** Type of a "void" object located in flash ROM. Does not make much - 141:/usr/lib/avr/include/avr/pgmspace.h **** sense by itself, but can be used to declare a "void *" object in - 142:/usr/lib/avr/include/avr/pgmspace.h **** flash ROM. - 143:/usr/lib/avr/include/avr/pgmspace.h **** */ - 144:/usr/lib/avr/include/avr/pgmspace.h **** typedef void PROGMEM prog_void; - 145:/usr/lib/avr/include/avr/pgmspace.h **** - 146:/usr/lib/avr/include/avr/pgmspace.h **** /** - 147:/usr/lib/avr/include/avr/pgmspace.h **** \ingroup avr_pgmspace - 148:/usr/lib/avr/include/avr/pgmspace.h **** \typedef prog_char - 149:/usr/lib/avr/include/avr/pgmspace.h **** \note DEPRECATED - 150:/usr/lib/avr/include/avr/pgmspace.h **** - 151:/usr/lib/avr/include/avr/pgmspace.h **** This typedef is now deprecated because the usage of the __progmem__ - 152:/usr/lib/avr/include/avr/pgmspace.h **** attribute on a type is not supported in GCC. However, the use of the - 153:/usr/lib/avr/include/avr/pgmspace.h **** __progmem__ attribute on a variable declaration is supported, and this is - 154:/usr/lib/avr/include/avr/pgmspace.h **** now the recommended usage. - 155:/usr/lib/avr/include/avr/pgmspace.h **** - 156:/usr/lib/avr/include/avr/pgmspace.h **** The typedef is only visible if the macro __PROG_TYPES_COMPAT__ - 157:/usr/lib/avr/include/avr/pgmspace.h **** has been defined before including (either by a - 158:/usr/lib/avr/include/avr/pgmspace.h **** \c \#define directive, or by a -D compiler option.) - 159:/usr/lib/avr/include/avr/pgmspace.h **** - 160:/usr/lib/avr/include/avr/pgmspace.h **** Type of a "char" object located in flash ROM. - 161:/usr/lib/avr/include/avr/pgmspace.h **** */ - 162:/usr/lib/avr/include/avr/pgmspace.h **** typedef char PROGMEM prog_char; - 163:/usr/lib/avr/include/avr/pgmspace.h **** - 164:/usr/lib/avr/include/avr/pgmspace.h **** /** - 165:/usr/lib/avr/include/avr/pgmspace.h **** \ingroup avr_pgmspace - 166:/usr/lib/avr/include/avr/pgmspace.h **** \typedef prog_uchar - 167:/usr/lib/avr/include/avr/pgmspace.h **** \note DEPRECATED - 168:/usr/lib/avr/include/avr/pgmspace.h **** - 169:/usr/lib/avr/include/avr/pgmspace.h **** This typedef is now deprecated because the usage of the __progmem__ - 170:/usr/lib/avr/include/avr/pgmspace.h **** attribute on a type is not supported in GCC. However, the use of the - 171:/usr/lib/avr/include/avr/pgmspace.h **** __progmem__ attribute on a variable declaration is supported, and this is - 172:/usr/lib/avr/include/avr/pgmspace.h **** now the recommended usage. - 173:/usr/lib/avr/include/avr/pgmspace.h **** - 174:/usr/lib/avr/include/avr/pgmspace.h **** The typedef is only visible if the macro __PROG_TYPES_COMPAT__ - 175:/usr/lib/avr/include/avr/pgmspace.h **** has been defined before including (either by a - 176:/usr/lib/avr/include/avr/pgmspace.h **** \c \#define directive, or by a -D compiler option.) - 177:/usr/lib/avr/include/avr/pgmspace.h **** - 178:/usr/lib/avr/include/avr/pgmspace.h **** Type of an "unsigned char" object located in flash ROM. - 179:/usr/lib/avr/include/avr/pgmspace.h **** */ - 180:/usr/lib/avr/include/avr/pgmspace.h **** typedef unsigned char PROGMEM prog_uchar; - 181:/usr/lib/avr/include/avr/pgmspace.h **** - 182:/usr/lib/avr/include/avr/pgmspace.h **** /** - 183:/usr/lib/avr/include/avr/pgmspace.h **** \ingroup avr_pgmspace - 184:/usr/lib/avr/include/avr/pgmspace.h **** \typedef prog_int8_t - 185:/usr/lib/avr/include/avr/pgmspace.h **** \note DEPRECATED - 186:/usr/lib/avr/include/avr/pgmspace.h **** - 187:/usr/lib/avr/include/avr/pgmspace.h **** This typedef is now deprecated because the usage of the __progmem__ - 188:/usr/lib/avr/include/avr/pgmspace.h **** attribute on a type is not supported in GCC. However, the use of the - 189:/usr/lib/avr/include/avr/pgmspace.h **** __progmem__ attribute on a variable declaration is supported, and this is - 190:/usr/lib/avr/include/avr/pgmspace.h **** now the recommended usage. - 191:/usr/lib/avr/include/avr/pgmspace.h **** - 192:/usr/lib/avr/include/avr/pgmspace.h **** The typedef is only visible if the macro __PROG_TYPES_COMPAT__ - 193:/usr/lib/avr/include/avr/pgmspace.h **** has been defined before including (either by a - 194:/usr/lib/avr/include/avr/pgmspace.h **** \c \#define directive, or by a -D compiler option.) - 195:/usr/lib/avr/include/avr/pgmspace.h **** - 196:/usr/lib/avr/include/avr/pgmspace.h **** Type of an "int8_t" object located in flash ROM. - 197:/usr/lib/avr/include/avr/pgmspace.h **** */ - 198:/usr/lib/avr/include/avr/pgmspace.h **** typedef int8_t PROGMEM prog_int8_t; - 199:/usr/lib/avr/include/avr/pgmspace.h **** - 200:/usr/lib/avr/include/avr/pgmspace.h **** /** - 201:/usr/lib/avr/include/avr/pgmspace.h **** \ingroup avr_pgmspace - 202:/usr/lib/avr/include/avr/pgmspace.h **** \typedef prog_uint8_t - 203:/usr/lib/avr/include/avr/pgmspace.h **** \note DEPRECATED - 204:/usr/lib/avr/include/avr/pgmspace.h **** - 205:/usr/lib/avr/include/avr/pgmspace.h **** This typedef is now deprecated because the usage of the __progmem__ - 206:/usr/lib/avr/include/avr/pgmspace.h **** attribute on a type is not supported in GCC. However, the use of the - 207:/usr/lib/avr/include/avr/pgmspace.h **** __progmem__ attribute on a variable declaration is supported, and this is - 208:/usr/lib/avr/include/avr/pgmspace.h **** now the recommended usage. - 209:/usr/lib/avr/include/avr/pgmspace.h **** - 210:/usr/lib/avr/include/avr/pgmspace.h **** The typedef is only visible if the macro __PROG_TYPES_COMPAT__ - 211:/usr/lib/avr/include/avr/pgmspace.h **** has been defined before including (either by a - 212:/usr/lib/avr/include/avr/pgmspace.h **** \c \#define directive, or by a -D compiler option.) - 213:/usr/lib/avr/include/avr/pgmspace.h **** - 214:/usr/lib/avr/include/avr/pgmspace.h **** Type of an "uint8_t" object located in flash ROM. - 215:/usr/lib/avr/include/avr/pgmspace.h **** */ - 216:/usr/lib/avr/include/avr/pgmspace.h **** typedef uint8_t PROGMEM prog_uint8_t; - 217:/usr/lib/avr/include/avr/pgmspace.h **** - 218:/usr/lib/avr/include/avr/pgmspace.h **** /** - 219:/usr/lib/avr/include/avr/pgmspace.h **** \ingroup avr_pgmspace - 220:/usr/lib/avr/include/avr/pgmspace.h **** \typedef prog_int16_t - 221:/usr/lib/avr/include/avr/pgmspace.h **** \note DEPRECATED - 222:/usr/lib/avr/include/avr/pgmspace.h **** - 223:/usr/lib/avr/include/avr/pgmspace.h **** This typedef is now deprecated because the usage of the __progmem__ - 224:/usr/lib/avr/include/avr/pgmspace.h **** attribute on a type is not supported in GCC. However, the use of the - 225:/usr/lib/avr/include/avr/pgmspace.h **** __progmem__ attribute on a variable declaration is supported, and this is - 226:/usr/lib/avr/include/avr/pgmspace.h **** now the recommended usage. - 227:/usr/lib/avr/include/avr/pgmspace.h **** - 228:/usr/lib/avr/include/avr/pgmspace.h **** The typedef is only visible if the macro __PROG_TYPES_COMPAT__ - 229:/usr/lib/avr/include/avr/pgmspace.h **** has been defined before including (either by a - 230:/usr/lib/avr/include/avr/pgmspace.h **** \c \#define directive, or by a -D compiler option.) - 231:/usr/lib/avr/include/avr/pgmspace.h **** - 232:/usr/lib/avr/include/avr/pgmspace.h **** Type of an "int16_t" object located in flash ROM. - 233:/usr/lib/avr/include/avr/pgmspace.h **** */ - 234:/usr/lib/avr/include/avr/pgmspace.h **** typedef int16_t PROGMEM prog_int16_t; - 235:/usr/lib/avr/include/avr/pgmspace.h **** - 236:/usr/lib/avr/include/avr/pgmspace.h **** /** - 237:/usr/lib/avr/include/avr/pgmspace.h **** \ingroup avr_pgmspace - 238:/usr/lib/avr/include/avr/pgmspace.h **** \typedef prog_uint16_t - 239:/usr/lib/avr/include/avr/pgmspace.h **** \note DEPRECATED - 240:/usr/lib/avr/include/avr/pgmspace.h **** - 241:/usr/lib/avr/include/avr/pgmspace.h **** This typedef is now deprecated because the usage of the __progmem__ - 242:/usr/lib/avr/include/avr/pgmspace.h **** attribute on a type is not supported in GCC. However, the use of the - 243:/usr/lib/avr/include/avr/pgmspace.h **** __progmem__ attribute on a variable declaration is supported, and this is - 244:/usr/lib/avr/include/avr/pgmspace.h **** now the recommended usage. - 245:/usr/lib/avr/include/avr/pgmspace.h **** - 246:/usr/lib/avr/include/avr/pgmspace.h **** The typedef is only visible if the macro __PROG_TYPES_COMPAT__ - 247:/usr/lib/avr/include/avr/pgmspace.h **** has been defined before including (either by a - 248:/usr/lib/avr/include/avr/pgmspace.h **** \c \#define directive, or by a -D compiler option.) - 249:/usr/lib/avr/include/avr/pgmspace.h **** - 250:/usr/lib/avr/include/avr/pgmspace.h **** Type of an "uint16_t" object located in flash ROM. - 251:/usr/lib/avr/include/avr/pgmspace.h **** */ - 252:/usr/lib/avr/include/avr/pgmspace.h **** typedef uint16_t PROGMEM prog_uint16_t; - 253:/usr/lib/avr/include/avr/pgmspace.h **** - 254:/usr/lib/avr/include/avr/pgmspace.h **** /** - 255:/usr/lib/avr/include/avr/pgmspace.h **** \ingroup avr_pgmspace - 256:/usr/lib/avr/include/avr/pgmspace.h **** \typedef prog_int32_t - 257:/usr/lib/avr/include/avr/pgmspace.h **** \note DEPRECATED - 258:/usr/lib/avr/include/avr/pgmspace.h **** - 259:/usr/lib/avr/include/avr/pgmspace.h **** This typedef is now deprecated because the usage of the __progmem__ - 260:/usr/lib/avr/include/avr/pgmspace.h **** attribute on a type is not supported in GCC. However, the use of the - 261:/usr/lib/avr/include/avr/pgmspace.h **** __progmem__ attribute on a variable declaration is supported, and this is - 262:/usr/lib/avr/include/avr/pgmspace.h **** now the recommended usage. - 263:/usr/lib/avr/include/avr/pgmspace.h **** - 264:/usr/lib/avr/include/avr/pgmspace.h **** The typedef is only visible if the macro __PROG_TYPES_COMPAT__ - 265:/usr/lib/avr/include/avr/pgmspace.h **** has been defined before including (either by a - 266:/usr/lib/avr/include/avr/pgmspace.h **** \c \#define directive, or by a -D compiler option.) - 267:/usr/lib/avr/include/avr/pgmspace.h **** - 268:/usr/lib/avr/include/avr/pgmspace.h **** Type of an "int32_t" object located in flash ROM. - 269:/usr/lib/avr/include/avr/pgmspace.h **** */ - 270:/usr/lib/avr/include/avr/pgmspace.h **** typedef int32_t PROGMEM prog_int32_t; - 271:/usr/lib/avr/include/avr/pgmspace.h **** - 272:/usr/lib/avr/include/avr/pgmspace.h **** /** - 273:/usr/lib/avr/include/avr/pgmspace.h **** \ingroup avr_pgmspace - 274:/usr/lib/avr/include/avr/pgmspace.h **** \typedef prog_uint32_t - 275:/usr/lib/avr/include/avr/pgmspace.h **** \note DEPRECATED - 276:/usr/lib/avr/include/avr/pgmspace.h **** - 277:/usr/lib/avr/include/avr/pgmspace.h **** This typedef is now deprecated because the usage of the __progmem__ - 278:/usr/lib/avr/include/avr/pgmspace.h **** attribute on a type is not supported in GCC. However, the use of the - 279:/usr/lib/avr/include/avr/pgmspace.h **** __progmem__ attribute on a variable declaration is supported, and this is - 280:/usr/lib/avr/include/avr/pgmspace.h **** now the recommended usage. - 281:/usr/lib/avr/include/avr/pgmspace.h **** - 282:/usr/lib/avr/include/avr/pgmspace.h **** The typedef is only visible if the macro __PROG_TYPES_COMPAT__ - 283:/usr/lib/avr/include/avr/pgmspace.h **** has been defined before including (either by a - 284:/usr/lib/avr/include/avr/pgmspace.h **** \c \#define directive, or by a -D compiler option.) - 285:/usr/lib/avr/include/avr/pgmspace.h **** - 286:/usr/lib/avr/include/avr/pgmspace.h **** Type of an "uint32_t" object located in flash ROM. - 287:/usr/lib/avr/include/avr/pgmspace.h **** */ - 288:/usr/lib/avr/include/avr/pgmspace.h **** typedef uint32_t PROGMEM prog_uint32_t; - 289:/usr/lib/avr/include/avr/pgmspace.h **** - 290:/usr/lib/avr/include/avr/pgmspace.h **** /** - 291:/usr/lib/avr/include/avr/pgmspace.h **** \ingroup avr_pgmspace - 292:/usr/lib/avr/include/avr/pgmspace.h **** \typedef prog_int64_t - 293:/usr/lib/avr/include/avr/pgmspace.h **** \note DEPRECATED - 294:/usr/lib/avr/include/avr/pgmspace.h **** - 295:/usr/lib/avr/include/avr/pgmspace.h **** This typedef is now deprecated because the usage of the __progmem__ - 296:/usr/lib/avr/include/avr/pgmspace.h **** attribute on a type is not supported in GCC. However, the use of the - 297:/usr/lib/avr/include/avr/pgmspace.h **** __progmem__ attribute on a variable declaration is supported, and this is - 298:/usr/lib/avr/include/avr/pgmspace.h **** now the recommended usage. - 299:/usr/lib/avr/include/avr/pgmspace.h **** - 300:/usr/lib/avr/include/avr/pgmspace.h **** The typedef is only visible if the macro __PROG_TYPES_COMPAT__ - 301:/usr/lib/avr/include/avr/pgmspace.h **** has been defined before including (either by a - 302:/usr/lib/avr/include/avr/pgmspace.h **** \c \#define directive, or by a -D compiler option.) - 303:/usr/lib/avr/include/avr/pgmspace.h **** - 304:/usr/lib/avr/include/avr/pgmspace.h **** Type of an "int64_t" object located in flash ROM. - 305:/usr/lib/avr/include/avr/pgmspace.h **** - 306:/usr/lib/avr/include/avr/pgmspace.h **** \note This type is not available when the compiler - 307:/usr/lib/avr/include/avr/pgmspace.h **** option -mint8 is in effect. - 308:/usr/lib/avr/include/avr/pgmspace.h **** */ - 309:/usr/lib/avr/include/avr/pgmspace.h **** typedef int64_t PROGMEM prog_int64_t; - 310:/usr/lib/avr/include/avr/pgmspace.h **** - 311:/usr/lib/avr/include/avr/pgmspace.h **** /** - 312:/usr/lib/avr/include/avr/pgmspace.h **** \ingroup avr_pgmspace - 313:/usr/lib/avr/include/avr/pgmspace.h **** \typedef prog_uint64_t - 314:/usr/lib/avr/include/avr/pgmspace.h **** \note DEPRECATED - 315:/usr/lib/avr/include/avr/pgmspace.h **** - 316:/usr/lib/avr/include/avr/pgmspace.h **** This typedef is now deprecated because the usage of the __progmem__ - 317:/usr/lib/avr/include/avr/pgmspace.h **** attribute on a type is not supported in GCC. However, the use of the - 318:/usr/lib/avr/include/avr/pgmspace.h **** __progmem__ attribute on a variable declaration is supported, and this is - 319:/usr/lib/avr/include/avr/pgmspace.h **** now the recommended usage. - 320:/usr/lib/avr/include/avr/pgmspace.h **** - 321:/usr/lib/avr/include/avr/pgmspace.h **** The typedef is only visible if the macro __PROG_TYPES_COMPAT__ - 322:/usr/lib/avr/include/avr/pgmspace.h **** has been defined before including (either by a - 323:/usr/lib/avr/include/avr/pgmspace.h **** \c \#define directive, or by a -D compiler option.) - 324:/usr/lib/avr/include/avr/pgmspace.h **** - 325:/usr/lib/avr/include/avr/pgmspace.h **** Type of an "uint64_t" object located in flash ROM. - 326:/usr/lib/avr/include/avr/pgmspace.h **** - 327:/usr/lib/avr/include/avr/pgmspace.h **** \note This type is not available when the compiler - 328:/usr/lib/avr/include/avr/pgmspace.h **** option -mint8 is in effect. - 329:/usr/lib/avr/include/avr/pgmspace.h **** */ - 330:/usr/lib/avr/include/avr/pgmspace.h **** typedef uint64_t PROGMEM prog_uint64_t; - 331:/usr/lib/avr/include/avr/pgmspace.h **** - 332:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace - 333:/usr/lib/avr/include/avr/pgmspace.h **** \def PGM_P - 334:/usr/lib/avr/include/avr/pgmspace.h **** - 335:/usr/lib/avr/include/avr/pgmspace.h **** Used to declare a variable that is a pointer to a string in program - 336:/usr/lib/avr/include/avr/pgmspace.h **** space. */ - 337:/usr/lib/avr/include/avr/pgmspace.h **** - 338:/usr/lib/avr/include/avr/pgmspace.h **** #ifndef PGM_P - 339:/usr/lib/avr/include/avr/pgmspace.h **** #define PGM_P const char * - 340:/usr/lib/avr/include/avr/pgmspace.h **** #endif - 341:/usr/lib/avr/include/avr/pgmspace.h **** - 342:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace - 343:/usr/lib/avr/include/avr/pgmspace.h **** \def PGM_VOID_P - 344:/usr/lib/avr/include/avr/pgmspace.h **** - 345:/usr/lib/avr/include/avr/pgmspace.h **** Used to declare a generic pointer to an object in program space. */ - 346:/usr/lib/avr/include/avr/pgmspace.h **** - 347:/usr/lib/avr/include/avr/pgmspace.h **** #ifndef PGM_VOID_P - 348:/usr/lib/avr/include/avr/pgmspace.h **** #define PGM_VOID_P const void * - 349:/usr/lib/avr/include/avr/pgmspace.h **** #endif - 350:/usr/lib/avr/include/avr/pgmspace.h **** - 351:/usr/lib/avr/include/avr/pgmspace.h **** #elif defined(__PROG_TYPES_COMPAT__) /* !DOXYGEN */ - 352:/usr/lib/avr/include/avr/pgmspace.h **** - 353:/usr/lib/avr/include/avr/pgmspace.h **** typedef void prog_void __attribute__((__progmem__,deprecated("prog_void type is deprecated."))); - 354:/usr/lib/avr/include/avr/pgmspace.h **** typedef char prog_char __attribute__((__progmem__,deprecated("prog_char type is deprecated."))); - 355:/usr/lib/avr/include/avr/pgmspace.h **** typedef unsigned char prog_uchar __attribute__((__progmem__,deprecated("prog_uchar type is deprecat - 356:/usr/lib/avr/include/avr/pgmspace.h **** typedef int8_t prog_int8_t __attribute__((__progmem__,deprecated("prog_int8_t type is deprecat - 357:/usr/lib/avr/include/avr/pgmspace.h **** typedef uint8_t prog_uint8_t __attribute__((__progmem__,deprecated("prog_uint8_t type is depreca - 358:/usr/lib/avr/include/avr/pgmspace.h **** typedef int16_t prog_int16_t __attribute__((__progmem__,deprecated("prog_int16_t type is depreca - 359:/usr/lib/avr/include/avr/pgmspace.h **** typedef uint16_t prog_uint16_t __attribute__((__progmem__,deprecated("prog_uint16_t type is deprec - 360:/usr/lib/avr/include/avr/pgmspace.h **** typedef int32_t prog_int32_t __attribute__((__progmem__,deprecated("prog_int32_t type is depreca - 361:/usr/lib/avr/include/avr/pgmspace.h **** typedef uint32_t prog_uint32_t __attribute__((__progmem__,deprecated("prog_uint32_t type is deprec - 362:/usr/lib/avr/include/avr/pgmspace.h **** #if !__USING_MINT8 - 363:/usr/lib/avr/include/avr/pgmspace.h **** typedef int64_t prog_int64_t __attribute__((__progmem__,deprecated("prog_int64_t type is depreca - 364:/usr/lib/avr/include/avr/pgmspace.h **** typedef uint64_t prog_uint64_t __attribute__((__progmem__,deprecated("prog_uint64_t type is deprec - 365:/usr/lib/avr/include/avr/pgmspace.h **** #endif - 366:/usr/lib/avr/include/avr/pgmspace.h **** - 367:/usr/lib/avr/include/avr/pgmspace.h **** #ifndef PGM_P - 368:/usr/lib/avr/include/avr/pgmspace.h **** #define PGM_P const prog_char * - 369:/usr/lib/avr/include/avr/pgmspace.h **** #endif - 370:/usr/lib/avr/include/avr/pgmspace.h **** - 371:/usr/lib/avr/include/avr/pgmspace.h **** #ifndef PGM_VOID_P - 372:/usr/lib/avr/include/avr/pgmspace.h **** #define PGM_VOID_P const prog_void * - 373:/usr/lib/avr/include/avr/pgmspace.h **** #endif - 374:/usr/lib/avr/include/avr/pgmspace.h **** - 375:/usr/lib/avr/include/avr/pgmspace.h **** #else /* !defined(__DOXYGEN__), !defined(__PROG_TYPES_COMPAT__) */ - 376:/usr/lib/avr/include/avr/pgmspace.h **** - 377:/usr/lib/avr/include/avr/pgmspace.h **** #ifndef PGM_P - 378:/usr/lib/avr/include/avr/pgmspace.h **** #define PGM_P const char * - 379:/usr/lib/avr/include/avr/pgmspace.h **** #endif - 380:/usr/lib/avr/include/avr/pgmspace.h **** - 381:/usr/lib/avr/include/avr/pgmspace.h **** #ifndef PGM_VOID_P - 382:/usr/lib/avr/include/avr/pgmspace.h **** #define PGM_VOID_P const void * - 383:/usr/lib/avr/include/avr/pgmspace.h **** #endif - 384:/usr/lib/avr/include/avr/pgmspace.h **** #endif /* defined(__DOXYGEN__), defined(__PROG_TYPES_COMPAT__) */ - 385:/usr/lib/avr/include/avr/pgmspace.h **** - 386:/usr/lib/avr/include/avr/pgmspace.h **** /* Although in C, we can get away with just using __c, it does not work in - 387:/usr/lib/avr/include/avr/pgmspace.h **** C++. We need to use &__c[0] to avoid the compiler puking. Dave Hylands - 388:/usr/lib/avr/include/avr/pgmspace.h **** explaned it thusly, - 389:/usr/lib/avr/include/avr/pgmspace.h **** - 390:/usr/lib/avr/include/avr/pgmspace.h **** Let's suppose that we use PSTR("Test"). In this case, the type returned - 391:/usr/lib/avr/include/avr/pgmspace.h **** by __c is a prog_char[5] and not a prog_char *. While these are - 392:/usr/lib/avr/include/avr/pgmspace.h **** compatible, they aren't the same thing (especially in C++). The type - 393:/usr/lib/avr/include/avr/pgmspace.h **** returned by &__c[0] is a prog_char *, which explains why it works - 394:/usr/lib/avr/include/avr/pgmspace.h **** fine. */ - 395:/usr/lib/avr/include/avr/pgmspace.h **** - 396:/usr/lib/avr/include/avr/pgmspace.h **** #if defined(__DOXYGEN__) - 397:/usr/lib/avr/include/avr/pgmspace.h **** /* - 398:/usr/lib/avr/include/avr/pgmspace.h **** * The #define below is just a dummy that serves documentation - 399:/usr/lib/avr/include/avr/pgmspace.h **** * purposes only. - 400:/usr/lib/avr/include/avr/pgmspace.h **** */ - 401:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace - 402:/usr/lib/avr/include/avr/pgmspace.h **** \def PSTR(s) - 403:/usr/lib/avr/include/avr/pgmspace.h **** - 404:/usr/lib/avr/include/avr/pgmspace.h **** Used to declare a static pointer to a string in program space. */ - 405:/usr/lib/avr/include/avr/pgmspace.h **** # define PSTR(s) ((const PROGMEM char *)(s)) - 406:/usr/lib/avr/include/avr/pgmspace.h **** #else /* !DOXYGEN */ - 407:/usr/lib/avr/include/avr/pgmspace.h **** /* The real thing. */ - 408:/usr/lib/avr/include/avr/pgmspace.h **** # define PSTR(s) (__extension__({static const char __c[] PROGMEM = (s); &__c[0];})) - 409:/usr/lib/avr/include/avr/pgmspace.h **** #endif /* DOXYGEN */ - 410:/usr/lib/avr/include/avr/pgmspace.h **** - 411:/usr/lib/avr/include/avr/pgmspace.h **** #ifndef __DOXYGEN__ /* Internal macros, not documented. */ - 412:/usr/lib/avr/include/avr/pgmspace.h **** #define __LPM_classic__(addr) \ - 413:/usr/lib/avr/include/avr/pgmspace.h **** (__extension__({ \ - 414:/usr/lib/avr/include/avr/pgmspace.h **** uint16_t __addr16 = (uint16_t)(addr); \ - 415:/usr/lib/avr/include/avr/pgmspace.h **** uint8_t __result; \ - 416:/usr/lib/avr/include/avr/pgmspace.h **** __asm__ __volatile__ \ - 417:/usr/lib/avr/include/avr/pgmspace.h **** ( \ - 418:/usr/lib/avr/include/avr/pgmspace.h **** "lpm" "\n\t" \ - 419:/usr/lib/avr/include/avr/pgmspace.h **** "mov %0, r0" "\n\t" \ - 420:/usr/lib/avr/include/avr/pgmspace.h **** : "=r" (__result) \ - 421:/usr/lib/avr/include/avr/pgmspace.h **** : "z" (__addr16) \ - 422:/usr/lib/avr/include/avr/pgmspace.h **** : "r0" \ - 423:/usr/lib/avr/include/avr/pgmspace.h **** ); \ - 424:/usr/lib/avr/include/avr/pgmspace.h **** __result; \ - 425:/usr/lib/avr/include/avr/pgmspace.h **** })) - 426:/usr/lib/avr/include/avr/pgmspace.h **** - 427:/usr/lib/avr/include/avr/pgmspace.h **** #define __LPM_tiny__(addr) \ - 428:/usr/lib/avr/include/avr/pgmspace.h **** (__extension__({ \ - 429:/usr/lib/avr/include/avr/pgmspace.h **** uint16_t __addr16 = (uint16_t)(addr) + __AVR_TINY_PM_BASE_ADDRESS__; \ - 430:/usr/lib/avr/include/avr/pgmspace.h **** uint8_t __result; \ - 431:/usr/lib/avr/include/avr/pgmspace.h **** __asm__ \ - 432:/usr/lib/avr/include/avr/pgmspace.h **** ( \ - 433:/usr/lib/avr/include/avr/pgmspace.h **** "ld %0, z" "\n\t" \ - 434:/usr/lib/avr/include/avr/pgmspace.h **** : "=r" (__result) \ - 435:/usr/lib/avr/include/avr/pgmspace.h **** : "z" (__addr16) \ - 436:/usr/lib/avr/include/avr/pgmspace.h **** ); \ - 437:/usr/lib/avr/include/avr/pgmspace.h **** __result; \ - 438:/usr/lib/avr/include/avr/pgmspace.h **** })) - 439:/usr/lib/avr/include/avr/pgmspace.h **** - 440:/usr/lib/avr/include/avr/pgmspace.h **** #define __LPM_enhanced__(addr) \ - 441:/usr/lib/avr/include/avr/pgmspace.h **** (__extension__({ \ - 442:/usr/lib/avr/include/avr/pgmspace.h **** uint16_t __addr16 = (uint16_t)(addr); \ - 443:/usr/lib/avr/include/avr/pgmspace.h **** uint8_t __result; \ - 444:/usr/lib/avr/include/avr/pgmspace.h **** __asm__ __volatile__ \ - 445:/usr/lib/avr/include/avr/pgmspace.h **** ( \ - 446:/usr/lib/avr/include/avr/pgmspace.h **** "lpm %0, Z" "\n\t" \ - 447:/usr/lib/avr/include/avr/pgmspace.h **** : "=r" (__result) \ - 448:/usr/lib/avr/include/avr/pgmspace.h **** : "z" (__addr16) \ - 449:/usr/lib/avr/include/avr/pgmspace.h **** ); \ - 450:/usr/lib/avr/include/avr/pgmspace.h **** __result; \ - 451:/usr/lib/avr/include/avr/pgmspace.h **** })) - 452:/usr/lib/avr/include/avr/pgmspace.h **** - 453:/usr/lib/avr/include/avr/pgmspace.h **** #define __LPM_word_classic__(addr) \ - 454:/usr/lib/avr/include/avr/pgmspace.h **** (__extension__({ \ - 455:/usr/lib/avr/include/avr/pgmspace.h **** uint16_t __addr16 = (uint16_t)(addr); \ - 456:/usr/lib/avr/include/avr/pgmspace.h **** uint16_t __result; \ - 457:/usr/lib/avr/include/avr/pgmspace.h **** __asm__ __volatile__ \ - 458:/usr/lib/avr/include/avr/pgmspace.h **** ( \ - 459:/usr/lib/avr/include/avr/pgmspace.h **** "lpm" "\n\t" \ - 460:/usr/lib/avr/include/avr/pgmspace.h **** "mov %A0, r0" "\n\t" \ - 461:/usr/lib/avr/include/avr/pgmspace.h **** "adiw r30, 1" "\n\t" \ - 462:/usr/lib/avr/include/avr/pgmspace.h **** "lpm" "\n\t" \ - 463:/usr/lib/avr/include/avr/pgmspace.h **** "mov %B0, r0" "\n\t" \ - 464:/usr/lib/avr/include/avr/pgmspace.h **** : "=r" (__result), "=z" (__addr16) \ - 465:/usr/lib/avr/include/avr/pgmspace.h **** : "1" (__addr16) \ - 466:/usr/lib/avr/include/avr/pgmspace.h **** : "r0" \ - 467:/usr/lib/avr/include/avr/pgmspace.h **** ); \ - 468:/usr/lib/avr/include/avr/pgmspace.h **** __result; \ - 469:/usr/lib/avr/include/avr/pgmspace.h **** })) - 470:/usr/lib/avr/include/avr/pgmspace.h **** - 471:/usr/lib/avr/include/avr/pgmspace.h **** #define __LPM_word_tiny__(addr) \ - 472:/usr/lib/avr/include/avr/pgmspace.h **** (__extension__({ \ - 473:/usr/lib/avr/include/avr/pgmspace.h **** uint16_t __addr16 = (uint16_t)(addr) + __AVR_TINY_PM_BASE_ADDRESS__; \ - 474:/usr/lib/avr/include/avr/pgmspace.h **** uint16_t __result; \ - 475:/usr/lib/avr/include/avr/pgmspace.h **** __asm__ \ - 476:/usr/lib/avr/include/avr/pgmspace.h **** ( \ - 477:/usr/lib/avr/include/avr/pgmspace.h **** "ld %A0, z+" "\n\t" \ - 478:/usr/lib/avr/include/avr/pgmspace.h **** "ld %B0, z" "\n\t" \ - 479:/usr/lib/avr/include/avr/pgmspace.h **** : "=r" (__result), "=z" (__addr16) \ - 480:/usr/lib/avr/include/avr/pgmspace.h **** : "1" (__addr16) \ - 481:/usr/lib/avr/include/avr/pgmspace.h **** ); \ - 482:/usr/lib/avr/include/avr/pgmspace.h **** __result; \ - 483:/usr/lib/avr/include/avr/pgmspace.h **** })) - 484:/usr/lib/avr/include/avr/pgmspace.h **** - 485:/usr/lib/avr/include/avr/pgmspace.h **** #define __LPM_word_enhanced__(addr) \ - 486:/usr/lib/avr/include/avr/pgmspace.h **** (__extension__({ \ - 487:/usr/lib/avr/include/avr/pgmspace.h **** uint16_t __addr16 = (uint16_t)(addr); \ - 488:/usr/lib/avr/include/avr/pgmspace.h **** uint16_t __result; \ - 489:/usr/lib/avr/include/avr/pgmspace.h **** __asm__ __volatile__ \ - 490:/usr/lib/avr/include/avr/pgmspace.h **** ( \ - 491:/usr/lib/avr/include/avr/pgmspace.h **** "lpm %A0, Z+" "\n\t" \ - 492:/usr/lib/avr/include/avr/pgmspace.h **** "lpm %B0, Z" "\n\t" \ - 493:/usr/lib/avr/include/avr/pgmspace.h **** : "=r" (__result), "=z" (__addr16) \ - 494:/usr/lib/avr/include/avr/pgmspace.h **** : "1" (__addr16) \ - 495:/usr/lib/avr/include/avr/pgmspace.h **** ); \ - 496:/usr/lib/avr/include/avr/pgmspace.h **** __result; \ - 497:/usr/lib/avr/include/avr/pgmspace.h **** })) - 498:/usr/lib/avr/include/avr/pgmspace.h **** - 499:/usr/lib/avr/include/avr/pgmspace.h **** #define __LPM_dword_classic__(addr) \ - 500:/usr/lib/avr/include/avr/pgmspace.h **** (__extension__({ \ - 501:/usr/lib/avr/include/avr/pgmspace.h **** uint16_t __addr16 = (uint16_t)(addr); \ - 502:/usr/lib/avr/include/avr/pgmspace.h **** uint32_t __result; \ - 503:/usr/lib/avr/include/avr/pgmspace.h **** __asm__ __volatile__ \ - 504:/usr/lib/avr/include/avr/pgmspace.h **** ( \ - 505:/usr/lib/avr/include/avr/pgmspace.h **** "lpm" "\n\t" \ - 506:/usr/lib/avr/include/avr/pgmspace.h **** "mov %A0, r0" "\n\t" \ - 507:/usr/lib/avr/include/avr/pgmspace.h **** "adiw r30, 1" "\n\t" \ - 508:/usr/lib/avr/include/avr/pgmspace.h **** "lpm" "\n\t" \ - 509:/usr/lib/avr/include/avr/pgmspace.h **** "mov %B0, r0" "\n\t" \ - 510:/usr/lib/avr/include/avr/pgmspace.h **** "adiw r30, 1" "\n\t" \ - 511:/usr/lib/avr/include/avr/pgmspace.h **** "lpm" "\n\t" \ - 512:/usr/lib/avr/include/avr/pgmspace.h **** "mov %C0, r0" "\n\t" \ - 513:/usr/lib/avr/include/avr/pgmspace.h **** "adiw r30, 1" "\n\t" \ - 514:/usr/lib/avr/include/avr/pgmspace.h **** "lpm" "\n\t" \ - 515:/usr/lib/avr/include/avr/pgmspace.h **** "mov %D0, r0" "\n\t" \ - 516:/usr/lib/avr/include/avr/pgmspace.h **** : "=r" (__result), "=z" (__addr16) \ - 517:/usr/lib/avr/include/avr/pgmspace.h **** : "1" (__addr16) \ - 518:/usr/lib/avr/include/avr/pgmspace.h **** : "r0" \ - 519:/usr/lib/avr/include/avr/pgmspace.h **** ); \ - 520:/usr/lib/avr/include/avr/pgmspace.h **** __result; \ - 521:/usr/lib/avr/include/avr/pgmspace.h **** })) - 522:/usr/lib/avr/include/avr/pgmspace.h **** - 523:/usr/lib/avr/include/avr/pgmspace.h **** #define __LPM_dword_tiny__(addr) \ - 524:/usr/lib/avr/include/avr/pgmspace.h **** (__extension__({ \ - 525:/usr/lib/avr/include/avr/pgmspace.h **** uint16_t __addr16 = (uint16_t)(addr) + __AVR_TINY_PM_BASE_ADDRESS__; \ - 526:/usr/lib/avr/include/avr/pgmspace.h **** uint32_t __result; \ - 527:/usr/lib/avr/include/avr/pgmspace.h **** __asm__ \ - 528:/usr/lib/avr/include/avr/pgmspace.h **** ( \ - 529:/usr/lib/avr/include/avr/pgmspace.h **** "ld %A0, z+" "\n\t" \ - 530:/usr/lib/avr/include/avr/pgmspace.h **** "ld %B0, z+" "\n\t" \ - 531:/usr/lib/avr/include/avr/pgmspace.h **** "ld %C0, z+" "\n\t" \ - 532:/usr/lib/avr/include/avr/pgmspace.h **** "ld %D0, z" "\n\t" \ - 533:/usr/lib/avr/include/avr/pgmspace.h **** : "=r" (__result), "=z" (__addr16) \ - 534:/usr/lib/avr/include/avr/pgmspace.h **** : "1" (__addr16) \ - 535:/usr/lib/avr/include/avr/pgmspace.h **** ); \ - 536:/usr/lib/avr/include/avr/pgmspace.h **** __result; \ - 537:/usr/lib/avr/include/avr/pgmspace.h **** })) - 538:/usr/lib/avr/include/avr/pgmspace.h **** - 539:/usr/lib/avr/include/avr/pgmspace.h **** #define __LPM_dword_enhanced__(addr) \ - 540:/usr/lib/avr/include/avr/pgmspace.h **** (__extension__({ \ - 541:/usr/lib/avr/include/avr/pgmspace.h **** uint16_t __addr16 = (uint16_t)(addr); \ - 542:/usr/lib/avr/include/avr/pgmspace.h **** uint32_t __result; \ - 543:/usr/lib/avr/include/avr/pgmspace.h **** __asm__ __volatile__ \ - 544:/usr/lib/avr/include/avr/pgmspace.h **** ( \ - 545:/usr/lib/avr/include/avr/pgmspace.h **** "lpm %A0, Z+" "\n\t" \ - 546:/usr/lib/avr/include/avr/pgmspace.h **** "lpm %B0, Z+" "\n\t" \ - 547:/usr/lib/avr/include/avr/pgmspace.h **** "lpm %C0, Z+" "\n\t" \ - 548:/usr/lib/avr/include/avr/pgmspace.h **** "lpm %D0, Z" "\n\t" \ - 549:/usr/lib/avr/include/avr/pgmspace.h **** : "=r" (__result), "=z" (__addr16) \ - 550:/usr/lib/avr/include/avr/pgmspace.h **** : "1" (__addr16) \ - 551:/usr/lib/avr/include/avr/pgmspace.h **** ); \ - 552:/usr/lib/avr/include/avr/pgmspace.h **** __result; \ - 553:/usr/lib/avr/include/avr/pgmspace.h **** })) - 554:/usr/lib/avr/include/avr/pgmspace.h **** - 555:/usr/lib/avr/include/avr/pgmspace.h **** #define __LPM_float_classic__(addr) \ - 556:/usr/lib/avr/include/avr/pgmspace.h **** (__extension__({ \ - 557:/usr/lib/avr/include/avr/pgmspace.h **** uint16_t __addr16 = (uint16_t)(addr); \ - 558:/usr/lib/avr/include/avr/pgmspace.h **** float __result; \ - 559:/usr/lib/avr/include/avr/pgmspace.h **** __asm__ __volatile__ \ - 560:/usr/lib/avr/include/avr/pgmspace.h **** ( \ - 561:/usr/lib/avr/include/avr/pgmspace.h **** "lpm" "\n\t" \ - 562:/usr/lib/avr/include/avr/pgmspace.h **** "mov %A0, r0" "\n\t" \ - 563:/usr/lib/avr/include/avr/pgmspace.h **** "adiw r30, 1" "\n\t" \ - 564:/usr/lib/avr/include/avr/pgmspace.h **** "lpm" "\n\t" \ - 565:/usr/lib/avr/include/avr/pgmspace.h **** "mov %B0, r0" "\n\t" \ - 566:/usr/lib/avr/include/avr/pgmspace.h **** "adiw r30, 1" "\n\t" \ - 567:/usr/lib/avr/include/avr/pgmspace.h **** "lpm" "\n\t" \ - 568:/usr/lib/avr/include/avr/pgmspace.h **** "mov %C0, r0" "\n\t" \ - 569:/usr/lib/avr/include/avr/pgmspace.h **** "adiw r30, 1" "\n\t" \ - 570:/usr/lib/avr/include/avr/pgmspace.h **** "lpm" "\n\t" \ - 571:/usr/lib/avr/include/avr/pgmspace.h **** "mov %D0, r0" "\n\t" \ - 572:/usr/lib/avr/include/avr/pgmspace.h **** : "=r" (__result), "=z" (__addr16) \ - 573:/usr/lib/avr/include/avr/pgmspace.h **** : "1" (__addr16) \ - 574:/usr/lib/avr/include/avr/pgmspace.h **** : "r0" \ - 575:/usr/lib/avr/include/avr/pgmspace.h **** ); \ - 576:/usr/lib/avr/include/avr/pgmspace.h **** __result; \ - 577:/usr/lib/avr/include/avr/pgmspace.h **** })) - 578:/usr/lib/avr/include/avr/pgmspace.h **** - 579:/usr/lib/avr/include/avr/pgmspace.h **** #define __LPM_float_tiny__(addr) \ - 580:/usr/lib/avr/include/avr/pgmspace.h **** (__extension__({ \ - 581:/usr/lib/avr/include/avr/pgmspace.h **** uint16_t __addr16 = (uint16_t)(addr) + __AVR_TINY_PM_BASE_ADDRESS__; \ - 582:/usr/lib/avr/include/avr/pgmspace.h **** float __result; \ - 583:/usr/lib/avr/include/avr/pgmspace.h **** __asm__ \ - 584:/usr/lib/avr/include/avr/pgmspace.h **** ( \ - 585:/usr/lib/avr/include/avr/pgmspace.h **** "ld %A0, z+" "\n\t" \ - 586:/usr/lib/avr/include/avr/pgmspace.h **** "ld %B0, z+" "\n\t" \ - 587:/usr/lib/avr/include/avr/pgmspace.h **** "ld %C0, z+" "\n\t" \ - 588:/usr/lib/avr/include/avr/pgmspace.h **** "ld %D0, z" "\n\t" \ - 589:/usr/lib/avr/include/avr/pgmspace.h **** : "=r" (__result), "=z" (__addr16) \ - 590:/usr/lib/avr/include/avr/pgmspace.h **** : "1" (__addr16) \ - 591:/usr/lib/avr/include/avr/pgmspace.h **** ); \ - 592:/usr/lib/avr/include/avr/pgmspace.h **** __result; \ - 593:/usr/lib/avr/include/avr/pgmspace.h **** })) - 594:/usr/lib/avr/include/avr/pgmspace.h **** - 595:/usr/lib/avr/include/avr/pgmspace.h **** #define __LPM_float_enhanced__(addr) \ - 596:/usr/lib/avr/include/avr/pgmspace.h **** (__extension__({ \ - 597:/usr/lib/avr/include/avr/pgmspace.h **** uint16_t __addr16 = (uint16_t)(addr); \ - 598:/usr/lib/avr/include/avr/pgmspace.h **** float __result; \ - 599:/usr/lib/avr/include/avr/pgmspace.h **** __asm__ __volatile__ \ - 600:/usr/lib/avr/include/avr/pgmspace.h **** ( \ - 601:/usr/lib/avr/include/avr/pgmspace.h **** "lpm %A0, Z+" "\n\t" \ - 602:/usr/lib/avr/include/avr/pgmspace.h **** "lpm %B0, Z+" "\n\t" \ - 603:/usr/lib/avr/include/avr/pgmspace.h **** "lpm %C0, Z+" "\n\t" \ - 604:/usr/lib/avr/include/avr/pgmspace.h **** "lpm %D0, Z" "\n\t" \ - 605:/usr/lib/avr/include/avr/pgmspace.h **** : "=r" (__result), "=z" (__addr16) \ - 606:/usr/lib/avr/include/avr/pgmspace.h **** : "1" (__addr16) \ - 607:/usr/lib/avr/include/avr/pgmspace.h **** ); \ - 608:/usr/lib/avr/include/avr/pgmspace.h **** __result; \ - 609:/usr/lib/avr/include/avr/pgmspace.h **** })) - 610:/usr/lib/avr/include/avr/pgmspace.h **** - 611:/usr/lib/avr/include/avr/pgmspace.h **** #if defined (__AVR_HAVE_LPMX__) - 612:/usr/lib/avr/include/avr/pgmspace.h **** #define __LPM(addr) __LPM_enhanced__(addr) - 613:/usr/lib/avr/include/avr/pgmspace.h **** #define __LPM_word(addr) __LPM_word_enhanced__(addr) - 614:/usr/lib/avr/include/avr/pgmspace.h **** #define __LPM_dword(addr) __LPM_dword_enhanced__(addr) - 615:/usr/lib/avr/include/avr/pgmspace.h **** #define __LPM_float(addr) __LPM_float_enhanced__(addr) - 616:/usr/lib/avr/include/avr/pgmspace.h **** /* - 617:/usr/lib/avr/include/avr/pgmspace.h **** Macro to read data from program memory for avr tiny parts(tiny 4/5/9/10/20/40). - 618:/usr/lib/avr/include/avr/pgmspace.h **** why: - 619:/usr/lib/avr/include/avr/pgmspace.h **** - LPM instruction is not available in AVR_TINY instruction set. - 620:/usr/lib/avr/include/avr/pgmspace.h **** - Programs are executed starting from address 0x0000 in program memory. - 621:/usr/lib/avr/include/avr/pgmspace.h **** But it must be addressed starting from 0x4000 when accessed via data memory. - 622:/usr/lib/avr/include/avr/pgmspace.h **** Reference: TINY device (ATTiny 4,5,9,10,20 and 40) datasheets - 623:/usr/lib/avr/include/avr/pgmspace.h **** Bug: avrtc-536 - 624:/usr/lib/avr/include/avr/pgmspace.h **** */ - 625:/usr/lib/avr/include/avr/pgmspace.h **** #elif defined (__AVR_TINY__) - 626:/usr/lib/avr/include/avr/pgmspace.h **** #define __LPM(addr) __LPM_tiny__(addr) - 627:/usr/lib/avr/include/avr/pgmspace.h **** #define __LPM_word(addr) __LPM_word_tiny__(addr) - 628:/usr/lib/avr/include/avr/pgmspace.h **** #define __LPM_dword(addr) __LPM_dword_tiny__(addr) - 629:/usr/lib/avr/include/avr/pgmspace.h **** #define __LPM_float(addr) __LPM_float_tiny__(addr) - 630:/usr/lib/avr/include/avr/pgmspace.h **** #else - 631:/usr/lib/avr/include/avr/pgmspace.h **** #define __LPM(addr) __LPM_classic__(addr) - 632:/usr/lib/avr/include/avr/pgmspace.h **** #define __LPM_word(addr) __LPM_word_classic__(addr) - 633:/usr/lib/avr/include/avr/pgmspace.h **** #define __LPM_dword(addr) __LPM_dword_classic__(addr) - 634:/usr/lib/avr/include/avr/pgmspace.h **** #define __LPM_float(addr) __LPM_float_classic__(addr) - 635:/usr/lib/avr/include/avr/pgmspace.h **** #endif - 636:/usr/lib/avr/include/avr/pgmspace.h **** - 637:/usr/lib/avr/include/avr/pgmspace.h **** #endif /* !__DOXYGEN__ */ - 638:/usr/lib/avr/include/avr/pgmspace.h **** - 639:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace - 640:/usr/lib/avr/include/avr/pgmspace.h **** \def pgm_read_byte_near(address_short) - 641:/usr/lib/avr/include/avr/pgmspace.h **** Read a byte from the program space with a 16-bit (near) address. - 642:/usr/lib/avr/include/avr/pgmspace.h **** \note The address is a byte address. - 643:/usr/lib/avr/include/avr/pgmspace.h **** The address is in the program space. */ - 644:/usr/lib/avr/include/avr/pgmspace.h **** - 645:/usr/lib/avr/include/avr/pgmspace.h **** #define pgm_read_byte_near(address_short) __LPM((uint16_t)(address_short)) - 646:/usr/lib/avr/include/avr/pgmspace.h **** - 647:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace - 648:/usr/lib/avr/include/avr/pgmspace.h **** \def pgm_read_word_near(address_short) - 649:/usr/lib/avr/include/avr/pgmspace.h **** Read a word from the program space with a 16-bit (near) address. - 650:/usr/lib/avr/include/avr/pgmspace.h **** \note The address is a byte address. - 651:/usr/lib/avr/include/avr/pgmspace.h **** The address is in the program space. */ - 652:/usr/lib/avr/include/avr/pgmspace.h **** - 653:/usr/lib/avr/include/avr/pgmspace.h **** #define pgm_read_word_near(address_short) __LPM_word((uint16_t)(address_short)) - 654:/usr/lib/avr/include/avr/pgmspace.h **** - 655:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace - 656:/usr/lib/avr/include/avr/pgmspace.h **** \def pgm_read_dword_near(address_short) - 657:/usr/lib/avr/include/avr/pgmspace.h **** Read a double word from the program space with a 16-bit (near) address. - 658:/usr/lib/avr/include/avr/pgmspace.h **** \note The address is a byte address. - 659:/usr/lib/avr/include/avr/pgmspace.h **** The address is in the program space. */ - 660:/usr/lib/avr/include/avr/pgmspace.h **** - 661:/usr/lib/avr/include/avr/pgmspace.h **** #define pgm_read_dword_near(address_short) \ - 662:/usr/lib/avr/include/avr/pgmspace.h **** __LPM_dword((uint16_t)(address_short)) - 663:/usr/lib/avr/include/avr/pgmspace.h **** - 664:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace - 665:/usr/lib/avr/include/avr/pgmspace.h **** \def pgm_read_float_near(address_short) - 666:/usr/lib/avr/include/avr/pgmspace.h **** Read a float from the program space with a 16-bit (near) address. - 667:/usr/lib/avr/include/avr/pgmspace.h **** \note The address is a byte address. - 668:/usr/lib/avr/include/avr/pgmspace.h **** The address is in the program space. */ - 669:/usr/lib/avr/include/avr/pgmspace.h **** - 670:/usr/lib/avr/include/avr/pgmspace.h **** #define pgm_read_float_near(address_short) \ - 671:/usr/lib/avr/include/avr/pgmspace.h **** __LPM_float((uint16_t)(address_short)) - 672:/usr/lib/avr/include/avr/pgmspace.h **** - 673:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace - 674:/usr/lib/avr/include/avr/pgmspace.h **** \def pgm_read_ptr_near(address_short) - 675:/usr/lib/avr/include/avr/pgmspace.h **** Read a pointer from the program space with a 16-bit (near) address. - 676:/usr/lib/avr/include/avr/pgmspace.h **** \note The address is a byte address. - 677:/usr/lib/avr/include/avr/pgmspace.h **** The address is in the program space. */ - 678:/usr/lib/avr/include/avr/pgmspace.h **** - 679:/usr/lib/avr/include/avr/pgmspace.h **** #define pgm_read_ptr_near(address_short) \ - 680:/usr/lib/avr/include/avr/pgmspace.h **** (void*)__LPM_word((uint16_t)(address_short)) - 681:/usr/lib/avr/include/avr/pgmspace.h **** - 682:/usr/lib/avr/include/avr/pgmspace.h **** #if defined(RAMPZ) || defined(__DOXYGEN__) - 683:/usr/lib/avr/include/avr/pgmspace.h **** - 684:/usr/lib/avr/include/avr/pgmspace.h **** /* Only for devices with more than 64K of program memory. - 685:/usr/lib/avr/include/avr/pgmspace.h **** RAMPZ must be defined (see iom103.h, iom128.h). - 686:/usr/lib/avr/include/avr/pgmspace.h **** */ - 687:/usr/lib/avr/include/avr/pgmspace.h **** - 688:/usr/lib/avr/include/avr/pgmspace.h **** /* The classic functions are needed for ATmega103. */ - 689:/usr/lib/avr/include/avr/pgmspace.h **** #ifndef __DOXYGEN__ /* These are internal macros, avoid "is - 690:/usr/lib/avr/include/avr/pgmspace.h **** not documented" warnings. */ - 691:/usr/lib/avr/include/avr/pgmspace.h **** #define __ELPM_classic__(addr) \ - 692:/usr/lib/avr/include/avr/pgmspace.h **** (__extension__({ \ - 693:/usr/lib/avr/include/avr/pgmspace.h **** uint32_t __addr32 = (uint32_t)(addr); \ - 694:/usr/lib/avr/include/avr/pgmspace.h **** uint8_t __result; \ - 695:/usr/lib/avr/include/avr/pgmspace.h **** __asm__ __volatile__ \ - 696:/usr/lib/avr/include/avr/pgmspace.h **** ( \ - 697:/usr/lib/avr/include/avr/pgmspace.h **** "out %2, %C1" "\n\t" \ - 698:/usr/lib/avr/include/avr/pgmspace.h **** "mov r31, %B1" "\n\t" \ - 699:/usr/lib/avr/include/avr/pgmspace.h **** "mov r30, %A1" "\n\t" \ - 700:/usr/lib/avr/include/avr/pgmspace.h **** "elpm" "\n\t" \ - 701:/usr/lib/avr/include/avr/pgmspace.h **** "mov %0, r0" "\n\t" \ - 702:/usr/lib/avr/include/avr/pgmspace.h **** : "=r" (__result) \ - 703:/usr/lib/avr/include/avr/pgmspace.h **** : "r" (__addr32), \ - 704:/usr/lib/avr/include/avr/pgmspace.h **** "I" (_SFR_IO_ADDR(RAMPZ)) \ - 705:/usr/lib/avr/include/avr/pgmspace.h **** : "r0", "r30", "r31" \ - 706:/usr/lib/avr/include/avr/pgmspace.h **** ); \ - 707:/usr/lib/avr/include/avr/pgmspace.h **** __result; \ - 708:/usr/lib/avr/include/avr/pgmspace.h **** })) - 709:/usr/lib/avr/include/avr/pgmspace.h **** - 710:/usr/lib/avr/include/avr/pgmspace.h **** #define __ELPM_enhanced__(addr) \ - 711:/usr/lib/avr/include/avr/pgmspace.h **** (__extension__({ \ - 712:/usr/lib/avr/include/avr/pgmspace.h **** uint32_t __addr32 = (uint32_t)(addr); \ - 713:/usr/lib/avr/include/avr/pgmspace.h **** uint8_t __result; \ - 714:/usr/lib/avr/include/avr/pgmspace.h **** __asm__ __volatile__ \ - 715:/usr/lib/avr/include/avr/pgmspace.h **** ( \ - 716:/usr/lib/avr/include/avr/pgmspace.h **** "out %2, %C1" "\n\t" \ - 717:/usr/lib/avr/include/avr/pgmspace.h **** "movw r30, %1" "\n\t" \ - 718:/usr/lib/avr/include/avr/pgmspace.h **** "elpm %0, Z+" "\n\t" \ - 719:/usr/lib/avr/include/avr/pgmspace.h **** : "=r" (__result) \ - 720:/usr/lib/avr/include/avr/pgmspace.h **** : "r" (__addr32), \ - 721:/usr/lib/avr/include/avr/pgmspace.h **** "I" (_SFR_IO_ADDR(RAMPZ)) \ - 722:/usr/lib/avr/include/avr/pgmspace.h **** : "r30", "r31" \ - 723:/usr/lib/avr/include/avr/pgmspace.h **** ); \ - 724:/usr/lib/avr/include/avr/pgmspace.h **** __result; \ - 725:/usr/lib/avr/include/avr/pgmspace.h **** })) - 726:/usr/lib/avr/include/avr/pgmspace.h **** - 727:/usr/lib/avr/include/avr/pgmspace.h **** #define __ELPM_xmega__(addr) \ - 728:/usr/lib/avr/include/avr/pgmspace.h **** (__extension__({ \ - 729:/usr/lib/avr/include/avr/pgmspace.h **** uint32_t __addr32 = (uint32_t)(addr); \ - 730:/usr/lib/avr/include/avr/pgmspace.h **** uint8_t __result; \ - 731:/usr/lib/avr/include/avr/pgmspace.h **** __asm__ __volatile__ \ - 732:/usr/lib/avr/include/avr/pgmspace.h **** ( \ - 733:/usr/lib/avr/include/avr/pgmspace.h **** "in __tmp_reg__, %2" "\n\t" \ - 734:/usr/lib/avr/include/avr/pgmspace.h **** "out %2, %C1" "\n\t" \ - 735:/usr/lib/avr/include/avr/pgmspace.h **** "movw r30, %1" "\n\t" \ - 736:/usr/lib/avr/include/avr/pgmspace.h **** "elpm %0, Z+" "\n\t" \ - 737:/usr/lib/avr/include/avr/pgmspace.h **** "out %2, __tmp_reg__" \ - 738:/usr/lib/avr/include/avr/pgmspace.h **** : "=r" (__result) \ - 739:/usr/lib/avr/include/avr/pgmspace.h **** : "r" (__addr32), \ - 740:/usr/lib/avr/include/avr/pgmspace.h **** "I" (_SFR_IO_ADDR(RAMPZ)) \ - 741:/usr/lib/avr/include/avr/pgmspace.h **** : "r30", "r31" \ - 742:/usr/lib/avr/include/avr/pgmspace.h **** ); \ - 743:/usr/lib/avr/include/avr/pgmspace.h **** __result; \ - 744:/usr/lib/avr/include/avr/pgmspace.h **** })) - 745:/usr/lib/avr/include/avr/pgmspace.h **** - 746:/usr/lib/avr/include/avr/pgmspace.h **** #define __ELPM_word_classic__(addr) \ - 747:/usr/lib/avr/include/avr/pgmspace.h **** (__extension__({ \ - 748:/usr/lib/avr/include/avr/pgmspace.h **** uint32_t __addr32 = (uint32_t)(addr); \ - 749:/usr/lib/avr/include/avr/pgmspace.h **** uint16_t __result; \ - 750:/usr/lib/avr/include/avr/pgmspace.h **** __asm__ __volatile__ \ - 751:/usr/lib/avr/include/avr/pgmspace.h **** ( \ - 752:/usr/lib/avr/include/avr/pgmspace.h **** "out %2, %C1" "\n\t" \ - 753:/usr/lib/avr/include/avr/pgmspace.h **** "mov r31, %B1" "\n\t" \ - 754:/usr/lib/avr/include/avr/pgmspace.h **** "mov r30, %A1" "\n\t" \ - 755:/usr/lib/avr/include/avr/pgmspace.h **** "elpm" "\n\t" \ - 756:/usr/lib/avr/include/avr/pgmspace.h **** "mov %A0, r0" "\n\t" \ - 757:/usr/lib/avr/include/avr/pgmspace.h **** "in r0, %2" "\n\t" \ - 758:/usr/lib/avr/include/avr/pgmspace.h **** "adiw r30, 1" "\n\t" \ - 759:/usr/lib/avr/include/avr/pgmspace.h **** "adc r0, __zero_reg__" "\n\t" \ - 760:/usr/lib/avr/include/avr/pgmspace.h **** "out %2, r0" "\n\t" \ - 761:/usr/lib/avr/include/avr/pgmspace.h **** "elpm" "\n\t" \ - 762:/usr/lib/avr/include/avr/pgmspace.h **** "mov %B0, r0" "\n\t" \ - 763:/usr/lib/avr/include/avr/pgmspace.h **** : "=r" (__result) \ - 764:/usr/lib/avr/include/avr/pgmspace.h **** : "r" (__addr32), \ - 765:/usr/lib/avr/include/avr/pgmspace.h **** "I" (_SFR_IO_ADDR(RAMPZ)) \ - 766:/usr/lib/avr/include/avr/pgmspace.h **** : "r0", "r30", "r31" \ - 767:/usr/lib/avr/include/avr/pgmspace.h **** ); \ - 768:/usr/lib/avr/include/avr/pgmspace.h **** __result; \ - 769:/usr/lib/avr/include/avr/pgmspace.h **** })) - 770:/usr/lib/avr/include/avr/pgmspace.h **** - 771:/usr/lib/avr/include/avr/pgmspace.h **** #define __ELPM_word_enhanced__(addr) \ - 772:/usr/lib/avr/include/avr/pgmspace.h **** (__extension__({ \ - 773:/usr/lib/avr/include/avr/pgmspace.h **** uint32_t __addr32 = (uint32_t)(addr); \ - 774:/usr/lib/avr/include/avr/pgmspace.h **** uint16_t __result; \ - 775:/usr/lib/avr/include/avr/pgmspace.h **** __asm__ __volatile__ \ - 776:/usr/lib/avr/include/avr/pgmspace.h **** ( \ - 777:/usr/lib/avr/include/avr/pgmspace.h **** "out %2, %C1" "\n\t" \ - 778:/usr/lib/avr/include/avr/pgmspace.h **** "movw r30, %1" "\n\t" \ - 779:/usr/lib/avr/include/avr/pgmspace.h **** "elpm %A0, Z+" "\n\t" \ - 780:/usr/lib/avr/include/avr/pgmspace.h **** "elpm %B0, Z" "\n\t" \ - 781:/usr/lib/avr/include/avr/pgmspace.h **** : "=r" (__result) \ - 782:/usr/lib/avr/include/avr/pgmspace.h **** : "r" (__addr32), \ - 783:/usr/lib/avr/include/avr/pgmspace.h **** "I" (_SFR_IO_ADDR(RAMPZ)) \ - 784:/usr/lib/avr/include/avr/pgmspace.h **** : "r30", "r31" \ - 785:/usr/lib/avr/include/avr/pgmspace.h **** ); \ - 786:/usr/lib/avr/include/avr/pgmspace.h **** __result; \ - 787:/usr/lib/avr/include/avr/pgmspace.h **** })) - 788:/usr/lib/avr/include/avr/pgmspace.h **** - 789:/usr/lib/avr/include/avr/pgmspace.h **** #define __ELPM_word_xmega__(addr) \ - 790:/usr/lib/avr/include/avr/pgmspace.h **** (__extension__({ \ - 791:/usr/lib/avr/include/avr/pgmspace.h **** uint32_t __addr32 = (uint32_t)(addr); \ - 792:/usr/lib/avr/include/avr/pgmspace.h **** uint16_t __result; \ - 793:/usr/lib/avr/include/avr/pgmspace.h **** __asm__ __volatile__ \ - 794:/usr/lib/avr/include/avr/pgmspace.h **** ( \ - 795:/usr/lib/avr/include/avr/pgmspace.h **** "in __tmp_reg__, %2" "\n\t" \ - 796:/usr/lib/avr/include/avr/pgmspace.h **** "out %2, %C1" "\n\t" \ - 797:/usr/lib/avr/include/avr/pgmspace.h **** "movw r30, %1" "\n\t" \ - 798:/usr/lib/avr/include/avr/pgmspace.h **** "elpm %A0, Z+" "\n\t" \ - 799:/usr/lib/avr/include/avr/pgmspace.h **** "elpm %B0, Z" "\n\t" \ - 800:/usr/lib/avr/include/avr/pgmspace.h **** "out %2, __tmp_reg__" \ - 801:/usr/lib/avr/include/avr/pgmspace.h **** : "=r" (__result) \ - 802:/usr/lib/avr/include/avr/pgmspace.h **** : "r" (__addr32), \ - 803:/usr/lib/avr/include/avr/pgmspace.h **** "I" (_SFR_IO_ADDR(RAMPZ)) \ - 804:/usr/lib/avr/include/avr/pgmspace.h **** : "r30", "r31" \ - 805:/usr/lib/avr/include/avr/pgmspace.h **** ); \ - 806:/usr/lib/avr/include/avr/pgmspace.h **** __result; \ - 807:/usr/lib/avr/include/avr/pgmspace.h **** })) - 808:/usr/lib/avr/include/avr/pgmspace.h **** - 809:/usr/lib/avr/include/avr/pgmspace.h **** #define __ELPM_dword_classic__(addr) \ - 810:/usr/lib/avr/include/avr/pgmspace.h **** (__extension__({ \ - 811:/usr/lib/avr/include/avr/pgmspace.h **** uint32_t __addr32 = (uint32_t)(addr); \ - 812:/usr/lib/avr/include/avr/pgmspace.h **** uint32_t __result; \ - 813:/usr/lib/avr/include/avr/pgmspace.h **** __asm__ __volatile__ \ - 814:/usr/lib/avr/include/avr/pgmspace.h **** ( \ - 815:/usr/lib/avr/include/avr/pgmspace.h **** "out %2, %C1" "\n\t" \ - 816:/usr/lib/avr/include/avr/pgmspace.h **** "mov r31, %B1" "\n\t" \ - 817:/usr/lib/avr/include/avr/pgmspace.h **** "mov r30, %A1" "\n\t" \ - 818:/usr/lib/avr/include/avr/pgmspace.h **** "elpm" "\n\t" \ - 819:/usr/lib/avr/include/avr/pgmspace.h **** "mov %A0, r0" "\n\t" \ - 820:/usr/lib/avr/include/avr/pgmspace.h **** "in r0, %2" "\n\t" \ - 821:/usr/lib/avr/include/avr/pgmspace.h **** "adiw r30, 1" "\n\t" \ - 822:/usr/lib/avr/include/avr/pgmspace.h **** "adc r0, __zero_reg__" "\n\t" \ - 823:/usr/lib/avr/include/avr/pgmspace.h **** "out %2, r0" "\n\t" \ - 824:/usr/lib/avr/include/avr/pgmspace.h **** "elpm" "\n\t" \ - 825:/usr/lib/avr/include/avr/pgmspace.h **** "mov %B0, r0" "\n\t" \ - 826:/usr/lib/avr/include/avr/pgmspace.h **** "in r0, %2" "\n\t" \ - 827:/usr/lib/avr/include/avr/pgmspace.h **** "adiw r30, 1" "\n\t" \ - 828:/usr/lib/avr/include/avr/pgmspace.h **** "adc r0, __zero_reg__" "\n\t" \ - 829:/usr/lib/avr/include/avr/pgmspace.h **** "out %2, r0" "\n\t" \ - 830:/usr/lib/avr/include/avr/pgmspace.h **** "elpm" "\n\t" \ - 831:/usr/lib/avr/include/avr/pgmspace.h **** "mov %C0, r0" "\n\t" \ - 832:/usr/lib/avr/include/avr/pgmspace.h **** "in r0, %2" "\n\t" \ - 833:/usr/lib/avr/include/avr/pgmspace.h **** "adiw r30, 1" "\n\t" \ - 834:/usr/lib/avr/include/avr/pgmspace.h **** "adc r0, __zero_reg__" "\n\t" \ - 835:/usr/lib/avr/include/avr/pgmspace.h **** "out %2, r0" "\n\t" \ - 836:/usr/lib/avr/include/avr/pgmspace.h **** "elpm" "\n\t" \ - 837:/usr/lib/avr/include/avr/pgmspace.h **** "mov %D0, r0" "\n\t" \ - 838:/usr/lib/avr/include/avr/pgmspace.h **** : "=r" (__result) \ - 839:/usr/lib/avr/include/avr/pgmspace.h **** : "r" (__addr32), \ - 840:/usr/lib/avr/include/avr/pgmspace.h **** "I" (_SFR_IO_ADDR(RAMPZ)) \ - 841:/usr/lib/avr/include/avr/pgmspace.h **** : "r0", "r30", "r31" \ - 842:/usr/lib/avr/include/avr/pgmspace.h **** ); \ - 843:/usr/lib/avr/include/avr/pgmspace.h **** __result; \ - 844:/usr/lib/avr/include/avr/pgmspace.h **** })) - 845:/usr/lib/avr/include/avr/pgmspace.h **** - 846:/usr/lib/avr/include/avr/pgmspace.h **** #define __ELPM_dword_enhanced__(addr) \ - 847:/usr/lib/avr/include/avr/pgmspace.h **** (__extension__({ \ - 848:/usr/lib/avr/include/avr/pgmspace.h **** uint32_t __addr32 = (uint32_t)(addr); \ - 849:/usr/lib/avr/include/avr/pgmspace.h **** uint32_t __result; \ - 850:/usr/lib/avr/include/avr/pgmspace.h **** __asm__ __volatile__ \ - 851:/usr/lib/avr/include/avr/pgmspace.h **** ( \ - 852:/usr/lib/avr/include/avr/pgmspace.h **** "out %2, %C1" "\n\t" \ - 853:/usr/lib/avr/include/avr/pgmspace.h **** "movw r30, %1" "\n\t" \ - 854:/usr/lib/avr/include/avr/pgmspace.h **** "elpm %A0, Z+" "\n\t" \ - 855:/usr/lib/avr/include/avr/pgmspace.h **** "elpm %B0, Z+" "\n\t" \ - 856:/usr/lib/avr/include/avr/pgmspace.h **** "elpm %C0, Z+" "\n\t" \ - 857:/usr/lib/avr/include/avr/pgmspace.h **** "elpm %D0, Z" "\n\t" \ - 858:/usr/lib/avr/include/avr/pgmspace.h **** : "=r" (__result) \ - 859:/usr/lib/avr/include/avr/pgmspace.h **** : "r" (__addr32), \ - 860:/usr/lib/avr/include/avr/pgmspace.h **** "I" (_SFR_IO_ADDR(RAMPZ)) \ - 861:/usr/lib/avr/include/avr/pgmspace.h **** : "r30", "r31" \ - 862:/usr/lib/avr/include/avr/pgmspace.h **** ); \ - 863:/usr/lib/avr/include/avr/pgmspace.h **** __result; \ - 864:/usr/lib/avr/include/avr/pgmspace.h **** })) - 865:/usr/lib/avr/include/avr/pgmspace.h **** - 866:/usr/lib/avr/include/avr/pgmspace.h **** #define __ELPM_dword_xmega__(addr) \ - 867:/usr/lib/avr/include/avr/pgmspace.h **** (__extension__({ \ - 868:/usr/lib/avr/include/avr/pgmspace.h **** uint32_t __addr32 = (uint32_t)(addr); \ - 869:/usr/lib/avr/include/avr/pgmspace.h **** uint32_t __result; \ - 870:/usr/lib/avr/include/avr/pgmspace.h **** __asm__ __volatile__ \ - 871:/usr/lib/avr/include/avr/pgmspace.h **** ( \ - 872:/usr/lib/avr/include/avr/pgmspace.h **** "in __tmp_reg__, %2" "\n\t" \ - 873:/usr/lib/avr/include/avr/pgmspace.h **** "out %2, %C1" "\n\t" \ - 874:/usr/lib/avr/include/avr/pgmspace.h **** "movw r30, %1" "\n\t" \ - 875:/usr/lib/avr/include/avr/pgmspace.h **** "elpm %A0, Z+" "\n\t" \ - 876:/usr/lib/avr/include/avr/pgmspace.h **** "elpm %B0, Z+" "\n\t" \ - 877:/usr/lib/avr/include/avr/pgmspace.h **** "elpm %C0, Z+" "\n\t" \ - 878:/usr/lib/avr/include/avr/pgmspace.h **** "elpm %D0, Z" "\n\t" \ - 879:/usr/lib/avr/include/avr/pgmspace.h **** "out %2, __tmp_reg__" \ - 880:/usr/lib/avr/include/avr/pgmspace.h **** : "=r" (__result) \ - 881:/usr/lib/avr/include/avr/pgmspace.h **** : "r" (__addr32), \ - 882:/usr/lib/avr/include/avr/pgmspace.h **** "I" (_SFR_IO_ADDR(RAMPZ)) \ - 883:/usr/lib/avr/include/avr/pgmspace.h **** : "r30", "r31" \ - 884:/usr/lib/avr/include/avr/pgmspace.h **** ); \ - 885:/usr/lib/avr/include/avr/pgmspace.h **** __result; \ - 886:/usr/lib/avr/include/avr/pgmspace.h **** })) - 887:/usr/lib/avr/include/avr/pgmspace.h **** - 888:/usr/lib/avr/include/avr/pgmspace.h **** #define __ELPM_float_classic__(addr) \ - 889:/usr/lib/avr/include/avr/pgmspace.h **** (__extension__({ \ - 890:/usr/lib/avr/include/avr/pgmspace.h **** uint32_t __addr32 = (uint32_t)(addr); \ - 891:/usr/lib/avr/include/avr/pgmspace.h **** float __result; \ - 892:/usr/lib/avr/include/avr/pgmspace.h **** __asm__ __volatile__ \ - 893:/usr/lib/avr/include/avr/pgmspace.h **** ( \ - 894:/usr/lib/avr/include/avr/pgmspace.h **** "out %2, %C1" "\n\t" \ - 895:/usr/lib/avr/include/avr/pgmspace.h **** "mov r31, %B1" "\n\t" \ - 896:/usr/lib/avr/include/avr/pgmspace.h **** "mov r30, %A1" "\n\t" \ - 897:/usr/lib/avr/include/avr/pgmspace.h **** "elpm" "\n\t" \ - 898:/usr/lib/avr/include/avr/pgmspace.h **** "mov %A0, r0" "\n\t" \ - 899:/usr/lib/avr/include/avr/pgmspace.h **** "in r0, %2" "\n\t" \ - 900:/usr/lib/avr/include/avr/pgmspace.h **** "adiw r30, 1" "\n\t" \ - 901:/usr/lib/avr/include/avr/pgmspace.h **** "adc r0, __zero_reg__" "\n\t" \ - 902:/usr/lib/avr/include/avr/pgmspace.h **** "out %2, r0" "\n\t" \ - 903:/usr/lib/avr/include/avr/pgmspace.h **** "elpm" "\n\t" \ - 904:/usr/lib/avr/include/avr/pgmspace.h **** "mov %B0, r0" "\n\t" \ - 905:/usr/lib/avr/include/avr/pgmspace.h **** "in r0, %2" "\n\t" \ - 906:/usr/lib/avr/include/avr/pgmspace.h **** "adiw r30, 1" "\n\t" \ - 907:/usr/lib/avr/include/avr/pgmspace.h **** "adc r0, __zero_reg__" "\n\t" \ - 908:/usr/lib/avr/include/avr/pgmspace.h **** "out %2, r0" "\n\t" \ - 909:/usr/lib/avr/include/avr/pgmspace.h **** "elpm" "\n\t" \ - 910:/usr/lib/avr/include/avr/pgmspace.h **** "mov %C0, r0" "\n\t" \ - 911:/usr/lib/avr/include/avr/pgmspace.h **** "in r0, %2" "\n\t" \ - 912:/usr/lib/avr/include/avr/pgmspace.h **** "adiw r30, 1" "\n\t" \ - 913:/usr/lib/avr/include/avr/pgmspace.h **** "adc r0, __zero_reg__" "\n\t" \ - 914:/usr/lib/avr/include/avr/pgmspace.h **** "out %2, r0" "\n\t" \ - 915:/usr/lib/avr/include/avr/pgmspace.h **** "elpm" "\n\t" \ - 916:/usr/lib/avr/include/avr/pgmspace.h **** "mov %D0, r0" "\n\t" \ - 917:/usr/lib/avr/include/avr/pgmspace.h **** : "=r" (__result) \ - 918:/usr/lib/avr/include/avr/pgmspace.h **** : "r" (__addr32), \ - 919:/usr/lib/avr/include/avr/pgmspace.h **** "I" (_SFR_IO_ADDR(RAMPZ)) \ - 920:/usr/lib/avr/include/avr/pgmspace.h **** : "r0", "r30", "r31" \ - 921:/usr/lib/avr/include/avr/pgmspace.h **** ); \ - 922:/usr/lib/avr/include/avr/pgmspace.h **** __result; \ - 923:/usr/lib/avr/include/avr/pgmspace.h **** })) - 924:/usr/lib/avr/include/avr/pgmspace.h **** - 925:/usr/lib/avr/include/avr/pgmspace.h **** #define __ELPM_float_enhanced__(addr) \ - 926:/usr/lib/avr/include/avr/pgmspace.h **** (__extension__({ \ - 927:/usr/lib/avr/include/avr/pgmspace.h **** uint32_t __addr32 = (uint32_t)(addr); \ - 928:/usr/lib/avr/include/avr/pgmspace.h **** float __result; \ - 929:/usr/lib/avr/include/avr/pgmspace.h **** __asm__ __volatile__ \ - 930:/usr/lib/avr/include/avr/pgmspace.h **** ( \ - 931:/usr/lib/avr/include/avr/pgmspace.h **** "out %2, %C1" "\n\t" \ - 932:/usr/lib/avr/include/avr/pgmspace.h **** "movw r30, %1" "\n\t" \ - 933:/usr/lib/avr/include/avr/pgmspace.h **** "elpm %A0, Z+" "\n\t" \ - 934:/usr/lib/avr/include/avr/pgmspace.h **** "elpm %B0, Z+" "\n\t" \ - 935:/usr/lib/avr/include/avr/pgmspace.h **** "elpm %C0, Z+" "\n\t" \ - 936:/usr/lib/avr/include/avr/pgmspace.h **** "elpm %D0, Z" "\n\t" \ - 937:/usr/lib/avr/include/avr/pgmspace.h **** : "=r" (__result) \ - 938:/usr/lib/avr/include/avr/pgmspace.h **** : "r" (__addr32), \ - 939:/usr/lib/avr/include/avr/pgmspace.h **** "I" (_SFR_IO_ADDR(RAMPZ)) \ - 940:/usr/lib/avr/include/avr/pgmspace.h **** : "r30", "r31" \ - 941:/usr/lib/avr/include/avr/pgmspace.h **** ); \ - 942:/usr/lib/avr/include/avr/pgmspace.h **** __result; \ - 943:/usr/lib/avr/include/avr/pgmspace.h **** })) - 944:/usr/lib/avr/include/avr/pgmspace.h **** - 945:/usr/lib/avr/include/avr/pgmspace.h **** #define __ELPM_float_xmega__(addr) \ - 946:/usr/lib/avr/include/avr/pgmspace.h **** (__extension__({ \ - 947:/usr/lib/avr/include/avr/pgmspace.h **** uint32_t __addr32 = (uint32_t)(addr); \ - 948:/usr/lib/avr/include/avr/pgmspace.h **** float __result; \ - 949:/usr/lib/avr/include/avr/pgmspace.h **** __asm__ __volatile__ \ - 950:/usr/lib/avr/include/avr/pgmspace.h **** ( \ - 951:/usr/lib/avr/include/avr/pgmspace.h **** "in __tmp_reg__, %2" "\n\t" \ - 952:/usr/lib/avr/include/avr/pgmspace.h **** "out %2, %C1" "\n\t" \ - 953:/usr/lib/avr/include/avr/pgmspace.h **** "movw r30, %1" "\n\t" \ - 954:/usr/lib/avr/include/avr/pgmspace.h **** "elpm %A0, Z+" "\n\t" \ - 955:/usr/lib/avr/include/avr/pgmspace.h **** "elpm %B0, Z+" "\n\t" \ - 956:/usr/lib/avr/include/avr/pgmspace.h **** "elpm %C0, Z+" "\n\t" \ - 957:/usr/lib/avr/include/avr/pgmspace.h **** "elpm %D0, Z" "\n\t" \ - 958:/usr/lib/avr/include/avr/pgmspace.h **** "out %2, __tmp_reg__" \ - 959:/usr/lib/avr/include/avr/pgmspace.h **** : "=r" (__result) \ - 960:/usr/lib/avr/include/avr/pgmspace.h **** : "r" (__addr32), \ - 961:/usr/lib/avr/include/avr/pgmspace.h **** "I" (_SFR_IO_ADDR(RAMPZ)) \ - 962:/usr/lib/avr/include/avr/pgmspace.h **** : "r30", "r31" \ - 963:/usr/lib/avr/include/avr/pgmspace.h **** ); \ - 964:/usr/lib/avr/include/avr/pgmspace.h **** __result; \ - 965:/usr/lib/avr/include/avr/pgmspace.h **** })) - 966:/usr/lib/avr/include/avr/pgmspace.h **** - 967:/usr/lib/avr/include/avr/pgmspace.h **** /* - 968:/usr/lib/avr/include/avr/pgmspace.h **** Check for architectures that implement RAMPD (avrxmega3, avrxmega5, - 969:/usr/lib/avr/include/avr/pgmspace.h **** avrxmega7) as they need to save/restore RAMPZ for ELPM macros so it does - 970:/usr/lib/avr/include/avr/pgmspace.h **** not interfere with data accesses. - 971:/usr/lib/avr/include/avr/pgmspace.h **** */ - 972:/usr/lib/avr/include/avr/pgmspace.h **** #if defined (__AVR_HAVE_RAMPD__) - 973:/usr/lib/avr/include/avr/pgmspace.h **** - 974:/usr/lib/avr/include/avr/pgmspace.h **** #define __ELPM(addr) __ELPM_xmega__(addr) - 975:/usr/lib/avr/include/avr/pgmspace.h **** #define __ELPM_word(addr) __ELPM_word_xmega__(addr) - 976:/usr/lib/avr/include/avr/pgmspace.h **** #define __ELPM_dword(addr) __ELPM_dword_xmega__(addr) - 977:/usr/lib/avr/include/avr/pgmspace.h **** #define __ELPM_float(addr) __ELPM_float_xmega__(addr) - 978:/usr/lib/avr/include/avr/pgmspace.h **** - 979:/usr/lib/avr/include/avr/pgmspace.h **** #else - 980:/usr/lib/avr/include/avr/pgmspace.h **** - 981:/usr/lib/avr/include/avr/pgmspace.h **** #if defined (__AVR_HAVE_LPMX__) - 982:/usr/lib/avr/include/avr/pgmspace.h **** - 983:/usr/lib/avr/include/avr/pgmspace.h **** #define __ELPM(addr) __ELPM_enhanced__(addr) - 984:/usr/lib/avr/include/avr/pgmspace.h **** #define __ELPM_word(addr) __ELPM_word_enhanced__(addr) - 985:/usr/lib/avr/include/avr/pgmspace.h **** #define __ELPM_dword(addr) __ELPM_dword_enhanced__(addr) - 986:/usr/lib/avr/include/avr/pgmspace.h **** #define __ELPM_float(addr) __ELPM_float_enhanced__(addr) - 987:/usr/lib/avr/include/avr/pgmspace.h **** - 988:/usr/lib/avr/include/avr/pgmspace.h **** #else - 989:/usr/lib/avr/include/avr/pgmspace.h **** - 990:/usr/lib/avr/include/avr/pgmspace.h **** #define __ELPM(addr) __ELPM_classic__(addr) - 991:/usr/lib/avr/include/avr/pgmspace.h **** #define __ELPM_word(addr) __ELPM_word_classic__(addr) - 992:/usr/lib/avr/include/avr/pgmspace.h **** #define __ELPM_dword(addr) __ELPM_dword_classic__(addr) - 993:/usr/lib/avr/include/avr/pgmspace.h **** #define __ELPM_float(addr) __ELPM_float_classic__(addr) - 994:/usr/lib/avr/include/avr/pgmspace.h **** - 995:/usr/lib/avr/include/avr/pgmspace.h **** #endif /* __AVR_HAVE_LPMX__ */ - 996:/usr/lib/avr/include/avr/pgmspace.h **** - 997:/usr/lib/avr/include/avr/pgmspace.h **** #endif /* __AVR_HAVE_RAMPD__ */ - 998:/usr/lib/avr/include/avr/pgmspace.h **** - 999:/usr/lib/avr/include/avr/pgmspace.h **** #endif /* !__DOXYGEN__ */ -1000:/usr/lib/avr/include/avr/pgmspace.h **** -1001:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1002:/usr/lib/avr/include/avr/pgmspace.h **** \def pgm_read_byte_far(address_long) -1003:/usr/lib/avr/include/avr/pgmspace.h **** Read a byte from the program space with a 32-bit (far) address. -1004:/usr/lib/avr/include/avr/pgmspace.h **** -1005:/usr/lib/avr/include/avr/pgmspace.h **** \note The address is a byte address. -1006:/usr/lib/avr/include/avr/pgmspace.h **** The address is in the program space. */ -1007:/usr/lib/avr/include/avr/pgmspace.h **** -1008:/usr/lib/avr/include/avr/pgmspace.h **** #define pgm_read_byte_far(address_long) __ELPM((uint32_t)(address_long)) -1009:/usr/lib/avr/include/avr/pgmspace.h **** -1010:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1011:/usr/lib/avr/include/avr/pgmspace.h **** \def pgm_read_word_far(address_long) -1012:/usr/lib/avr/include/avr/pgmspace.h **** Read a word from the program space with a 32-bit (far) address. -1013:/usr/lib/avr/include/avr/pgmspace.h **** -1014:/usr/lib/avr/include/avr/pgmspace.h **** \note The address is a byte address. -1015:/usr/lib/avr/include/avr/pgmspace.h **** The address is in the program space. */ -1016:/usr/lib/avr/include/avr/pgmspace.h **** -1017:/usr/lib/avr/include/avr/pgmspace.h **** #define pgm_read_word_far(address_long) __ELPM_word((uint32_t)(address_long)) -1018:/usr/lib/avr/include/avr/pgmspace.h **** -1019:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1020:/usr/lib/avr/include/avr/pgmspace.h **** \def pgm_read_dword_far(address_long) -1021:/usr/lib/avr/include/avr/pgmspace.h **** Read a double word from the program space with a 32-bit (far) address. -1022:/usr/lib/avr/include/avr/pgmspace.h **** -1023:/usr/lib/avr/include/avr/pgmspace.h **** \note The address is a byte address. -1024:/usr/lib/avr/include/avr/pgmspace.h **** The address is in the program space. */ -1025:/usr/lib/avr/include/avr/pgmspace.h **** -1026:/usr/lib/avr/include/avr/pgmspace.h **** #define pgm_read_dword_far(address_long) __ELPM_dword((uint32_t)(address_long)) -1027:/usr/lib/avr/include/avr/pgmspace.h **** -1028:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1029:/usr/lib/avr/include/avr/pgmspace.h **** \def pgm_read_float_far(address_long) -1030:/usr/lib/avr/include/avr/pgmspace.h **** Read a float from the program space with a 32-bit (far) address. -1031:/usr/lib/avr/include/avr/pgmspace.h **** -1032:/usr/lib/avr/include/avr/pgmspace.h **** \note The address is a byte address. -1033:/usr/lib/avr/include/avr/pgmspace.h **** The address is in the program space. */ -1034:/usr/lib/avr/include/avr/pgmspace.h **** -1035:/usr/lib/avr/include/avr/pgmspace.h **** #define pgm_read_float_far(address_long) __ELPM_float((uint32_t)(address_long)) -1036:/usr/lib/avr/include/avr/pgmspace.h **** -1037:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1038:/usr/lib/avr/include/avr/pgmspace.h **** \def pgm_read_ptr_far(address_long) -1039:/usr/lib/avr/include/avr/pgmspace.h **** Read a pointer from the program space with a 32-bit (far) address. -1040:/usr/lib/avr/include/avr/pgmspace.h **** -1041:/usr/lib/avr/include/avr/pgmspace.h **** \note The address is a byte address. -1042:/usr/lib/avr/include/avr/pgmspace.h **** The address is in the program space. */ -1043:/usr/lib/avr/include/avr/pgmspace.h **** -1044:/usr/lib/avr/include/avr/pgmspace.h **** #define pgm_read_ptr_far(address_long) (void*)__ELPM_word((uint32_t)(address_long)) -1045:/usr/lib/avr/include/avr/pgmspace.h **** -1046:/usr/lib/avr/include/avr/pgmspace.h **** #endif /* RAMPZ or __DOXYGEN__ */ -1047:/usr/lib/avr/include/avr/pgmspace.h **** -1048:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1049:/usr/lib/avr/include/avr/pgmspace.h **** \def pgm_read_byte(address_short) -1050:/usr/lib/avr/include/avr/pgmspace.h **** Read a byte from the program space with a 16-bit (near) address. -1051:/usr/lib/avr/include/avr/pgmspace.h **** -1052:/usr/lib/avr/include/avr/pgmspace.h **** \note The address is a byte address. -1053:/usr/lib/avr/include/avr/pgmspace.h **** The address is in the program space. */ -1054:/usr/lib/avr/include/avr/pgmspace.h **** -1055:/usr/lib/avr/include/avr/pgmspace.h **** #define pgm_read_byte(address_short) pgm_read_byte_near(address_short) -1056:/usr/lib/avr/include/avr/pgmspace.h **** -1057:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1058:/usr/lib/avr/include/avr/pgmspace.h **** \def pgm_read_word(address_short) -1059:/usr/lib/avr/include/avr/pgmspace.h **** Read a word from the program space with a 16-bit (near) address. -1060:/usr/lib/avr/include/avr/pgmspace.h **** -1061:/usr/lib/avr/include/avr/pgmspace.h **** \note The address is a byte address. -1062:/usr/lib/avr/include/avr/pgmspace.h **** The address is in the program space. */ -1063:/usr/lib/avr/include/avr/pgmspace.h **** -1064:/usr/lib/avr/include/avr/pgmspace.h **** #define pgm_read_word(address_short) pgm_read_word_near(address_short) -1065:/usr/lib/avr/include/avr/pgmspace.h **** -1066:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1067:/usr/lib/avr/include/avr/pgmspace.h **** \def pgm_read_dword(address_short) -1068:/usr/lib/avr/include/avr/pgmspace.h **** Read a double word from the program space with a 16-bit (near) address. -1069:/usr/lib/avr/include/avr/pgmspace.h **** -1070:/usr/lib/avr/include/avr/pgmspace.h **** \note The address is a byte address. -1071:/usr/lib/avr/include/avr/pgmspace.h **** The address is in the program space. */ -1072:/usr/lib/avr/include/avr/pgmspace.h **** -1073:/usr/lib/avr/include/avr/pgmspace.h **** #define pgm_read_dword(address_short) pgm_read_dword_near(address_short) -1074:/usr/lib/avr/include/avr/pgmspace.h **** -1075:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1076:/usr/lib/avr/include/avr/pgmspace.h **** \def pgm_read_float(address_short) -1077:/usr/lib/avr/include/avr/pgmspace.h **** Read a float from the program space with a 16-bit (near) address. -1078:/usr/lib/avr/include/avr/pgmspace.h **** -1079:/usr/lib/avr/include/avr/pgmspace.h **** \note The address is a byte address. -1080:/usr/lib/avr/include/avr/pgmspace.h **** The address is in the program space. */ -1081:/usr/lib/avr/include/avr/pgmspace.h **** -1082:/usr/lib/avr/include/avr/pgmspace.h **** #define pgm_read_float(address_short) pgm_read_float_near(address_short) -1083:/usr/lib/avr/include/avr/pgmspace.h **** -1084:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1085:/usr/lib/avr/include/avr/pgmspace.h **** \def pgm_read_ptr(address_short) -1086:/usr/lib/avr/include/avr/pgmspace.h **** Read a pointer from the program space with a 16-bit (near) address. -1087:/usr/lib/avr/include/avr/pgmspace.h **** -1088:/usr/lib/avr/include/avr/pgmspace.h **** \note The address is a byte address. -1089:/usr/lib/avr/include/avr/pgmspace.h **** The address is in the program space. */ -1090:/usr/lib/avr/include/avr/pgmspace.h **** -1091:/usr/lib/avr/include/avr/pgmspace.h **** #define pgm_read_ptr(address_short) pgm_read_ptr_near(address_short) -1092:/usr/lib/avr/include/avr/pgmspace.h **** -1093:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1094:/usr/lib/avr/include/avr/pgmspace.h **** \def pgm_get_far_address(var) -1095:/usr/lib/avr/include/avr/pgmspace.h **** -1096:/usr/lib/avr/include/avr/pgmspace.h **** This macro facilitates the obtention of a 32 bit "far" pointer (only 24 bits -1097:/usr/lib/avr/include/avr/pgmspace.h **** used) to data even passed the 64KB limit for the 16 bit ordinary pointer. It -1098:/usr/lib/avr/include/avr/pgmspace.h **** is similar to the '&' operator, with some limitations. -1099:/usr/lib/avr/include/avr/pgmspace.h **** -1100:/usr/lib/avr/include/avr/pgmspace.h **** Comments: -1101:/usr/lib/avr/include/avr/pgmspace.h **** -1102:/usr/lib/avr/include/avr/pgmspace.h **** - The overhead is minimal and it's mainly due to the 32 bit size operation. -1103:/usr/lib/avr/include/avr/pgmspace.h **** -1104:/usr/lib/avr/include/avr/pgmspace.h **** - 24 bit sizes guarantees the code compatibility for use in future devices. -1105:/usr/lib/avr/include/avr/pgmspace.h **** -1106:/usr/lib/avr/include/avr/pgmspace.h **** - hh8() is an undocumented feature but seems to give the third significant byte -1107:/usr/lib/avr/include/avr/pgmspace.h **** of a 32 bit data and accepts symbols, complementing the functionality of hi8() -1108:/usr/lib/avr/include/avr/pgmspace.h **** and lo8(). There is not an equivalent assembler function to get the high -1109:/usr/lib/avr/include/avr/pgmspace.h **** significant byte. -1110:/usr/lib/avr/include/avr/pgmspace.h **** -1111:/usr/lib/avr/include/avr/pgmspace.h **** - 'var' has to be resolved at linking time as an existing symbol, i.e, a simple -1112:/usr/lib/avr/include/avr/pgmspace.h **** type variable name, an array name (not an indexed element of the array, if the -1113:/usr/lib/avr/include/avr/pgmspace.h **** index is a constant the compiler does not complain but fails to get the address -1114:/usr/lib/avr/include/avr/pgmspace.h **** if optimization is enabled), a struct name or a struct field name, a function -1115:/usr/lib/avr/include/avr/pgmspace.h **** identifier, a linker defined identifier,... -1116:/usr/lib/avr/include/avr/pgmspace.h **** -1117:/usr/lib/avr/include/avr/pgmspace.h **** - The returned value is the identifier's VMA (virtual memory address) determined -1118:/usr/lib/avr/include/avr/pgmspace.h **** by the linker and falls in the corresponding memory region. The AVR Harvard -1119:/usr/lib/avr/include/avr/pgmspace.h **** architecture requires non overlapping VMA areas for the multiple address spaces -1120:/usr/lib/avr/include/avr/pgmspace.h **** in the processor: Flash ROM, RAM, and EEPROM. Typical offset for this are -1121:/usr/lib/avr/include/avr/pgmspace.h **** 0x00000000, 0x00800xx0, and 0x00810000 respectively, derived from the linker -1122:/usr/lib/avr/include/avr/pgmspace.h **** script used and linker options. The value returned can be seen then as a -1123:/usr/lib/avr/include/avr/pgmspace.h **** universal pointer. -1124:/usr/lib/avr/include/avr/pgmspace.h **** */ -1125:/usr/lib/avr/include/avr/pgmspace.h **** -1126:/usr/lib/avr/include/avr/pgmspace.h **** #define pgm_get_far_address(var) \ -1127:/usr/lib/avr/include/avr/pgmspace.h **** ({ \ -1128:/usr/lib/avr/include/avr/pgmspace.h **** uint_farptr_t tmp; \ -1129:/usr/lib/avr/include/avr/pgmspace.h **** \ -1130:/usr/lib/avr/include/avr/pgmspace.h **** __asm__ __volatile__( \ -1131:/usr/lib/avr/include/avr/pgmspace.h **** \ -1132:/usr/lib/avr/include/avr/pgmspace.h **** "ldi %A0, lo8(%1)" "\n\t" \ -1133:/usr/lib/avr/include/avr/pgmspace.h **** "ldi %B0, hi8(%1)" "\n\t" \ -1134:/usr/lib/avr/include/avr/pgmspace.h **** "ldi %C0, hh8(%1)" "\n\t" \ -1135:/usr/lib/avr/include/avr/pgmspace.h **** "clr %D0" "\n\t" \ -1136:/usr/lib/avr/include/avr/pgmspace.h **** : \ -1137:/usr/lib/avr/include/avr/pgmspace.h **** "=d" (tmp) \ -1138:/usr/lib/avr/include/avr/pgmspace.h **** : \ -1139:/usr/lib/avr/include/avr/pgmspace.h **** "p" (&(var)) \ -1140:/usr/lib/avr/include/avr/pgmspace.h **** ); \ -1141:/usr/lib/avr/include/avr/pgmspace.h **** tmp; \ -1142:/usr/lib/avr/include/avr/pgmspace.h **** }) -1143:/usr/lib/avr/include/avr/pgmspace.h **** -1144:/usr/lib/avr/include/avr/pgmspace.h **** -1145:/usr/lib/avr/include/avr/pgmspace.h **** -1146:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1147:/usr/lib/avr/include/avr/pgmspace.h **** \fn const void * memchr_P(const void *s, int val, size_t len) -1148:/usr/lib/avr/include/avr/pgmspace.h **** \brief Scan flash memory for a character. -1149:/usr/lib/avr/include/avr/pgmspace.h **** -1150:/usr/lib/avr/include/avr/pgmspace.h **** The memchr_P() function scans the first \p len bytes of the flash -1151:/usr/lib/avr/include/avr/pgmspace.h **** memory area pointed to by \p s for the character \p val. The first -1152:/usr/lib/avr/include/avr/pgmspace.h **** byte to match \p val (interpreted as an unsigned character) stops -1153:/usr/lib/avr/include/avr/pgmspace.h **** the operation. -1154:/usr/lib/avr/include/avr/pgmspace.h **** -1155:/usr/lib/avr/include/avr/pgmspace.h **** \return The memchr_P() function returns a pointer to the matching -1156:/usr/lib/avr/include/avr/pgmspace.h **** byte or \c NULL if the character does not occur in the given memory -1157:/usr/lib/avr/include/avr/pgmspace.h **** area. */ -1158:/usr/lib/avr/include/avr/pgmspace.h **** extern const void * memchr_P(const void *, int __val, size_t __len) __ATTR_CONST__; -1159:/usr/lib/avr/include/avr/pgmspace.h **** -1160:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1161:/usr/lib/avr/include/avr/pgmspace.h **** \fn int memcmp_P(const void *s1, const void *s2, size_t len) -1162:/usr/lib/avr/include/avr/pgmspace.h **** \brief Compare memory areas -1163:/usr/lib/avr/include/avr/pgmspace.h **** -1164:/usr/lib/avr/include/avr/pgmspace.h **** The memcmp_P() function compares the first \p len bytes of the memory -1165:/usr/lib/avr/include/avr/pgmspace.h **** areas \p s1 and flash \p s2. The comparision is performed using unsigned -1166:/usr/lib/avr/include/avr/pgmspace.h **** char operations. -1167:/usr/lib/avr/include/avr/pgmspace.h **** -1168:/usr/lib/avr/include/avr/pgmspace.h **** \returns The memcmp_P() function returns an integer less than, equal -1169:/usr/lib/avr/include/avr/pgmspace.h **** to, or greater than zero if the first \p len bytes of \p s1 is found, -1170:/usr/lib/avr/include/avr/pgmspace.h **** respectively, to be less than, to match, or be greater than the first -1171:/usr/lib/avr/include/avr/pgmspace.h **** \p len bytes of \p s2. */ -1172:/usr/lib/avr/include/avr/pgmspace.h **** extern int memcmp_P(const void *, const void *, size_t) __ATTR_PURE__; -1173:/usr/lib/avr/include/avr/pgmspace.h **** -1174:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1175:/usr/lib/avr/include/avr/pgmspace.h **** \fn void *memccpy_P (void *dest, const void *src, int val, size_t len) -1176:/usr/lib/avr/include/avr/pgmspace.h **** -1177:/usr/lib/avr/include/avr/pgmspace.h **** This function is similar to memccpy() except that \p src is pointer -1178:/usr/lib/avr/include/avr/pgmspace.h **** to a string in program space. */ -1179:/usr/lib/avr/include/avr/pgmspace.h **** extern void *memccpy_P(void *, const void *, int __val, size_t); -1180:/usr/lib/avr/include/avr/pgmspace.h **** -1181:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1182:/usr/lib/avr/include/avr/pgmspace.h **** \fn void *memcpy_P(void *dest, const void *src, size_t n) -1183:/usr/lib/avr/include/avr/pgmspace.h **** -1184:/usr/lib/avr/include/avr/pgmspace.h **** The memcpy_P() function is similar to memcpy(), except the src string -1185:/usr/lib/avr/include/avr/pgmspace.h **** resides in program space. -1186:/usr/lib/avr/include/avr/pgmspace.h **** -1187:/usr/lib/avr/include/avr/pgmspace.h **** \returns The memcpy_P() function returns a pointer to dest. */ -1188:/usr/lib/avr/include/avr/pgmspace.h **** extern void *memcpy_P(void *, const void *, size_t); -1189:/usr/lib/avr/include/avr/pgmspace.h **** -1190:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1191:/usr/lib/avr/include/avr/pgmspace.h **** \fn void *memmem_P(const void *s1, size_t len1, const void *s2, size_t len2) -1192:/usr/lib/avr/include/avr/pgmspace.h **** -1193:/usr/lib/avr/include/avr/pgmspace.h **** The memmem_P() function is similar to memmem() except that \p s2 is -1194:/usr/lib/avr/include/avr/pgmspace.h **** pointer to a string in program space. */ -1195:/usr/lib/avr/include/avr/pgmspace.h **** extern void *memmem_P(const void *, size_t, const void *, size_t) __ATTR_PURE__; -1196:/usr/lib/avr/include/avr/pgmspace.h **** -1197:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1198:/usr/lib/avr/include/avr/pgmspace.h **** \fn const void +memrchr_P(const void *src, int val, size_t len) -1199:/usr/lib/avr/include/avr/pgmspace.h **** -1200:/usr/lib/avr/include/avr/pgmspace.h **** The memrchr_P() function is like the memchr_P() function, except -1201:/usr/lib/avr/include/avr/pgmspace.h **** that it searches backwards from the end of the \p len bytes pointed -1202:/usr/lib/avr/include/avr/pgmspace.h **** to by \p src instead of forwards from the front. (Glibc, GNU extension.) -1203:/usr/lib/avr/include/avr/pgmspace.h **** -1204:/usr/lib/avr/include/avr/pgmspace.h **** \return The memrchr_P() function returns a pointer to the matching -1205:/usr/lib/avr/include/avr/pgmspace.h **** byte or \c NULL if the character does not occur in the given memory -1206:/usr/lib/avr/include/avr/pgmspace.h **** area. */ -1207:/usr/lib/avr/include/avr/pgmspace.h **** extern const void * memrchr_P(const void *, int __val, size_t __len) __ATTR_CONST__; -1208:/usr/lib/avr/include/avr/pgmspace.h **** -1209:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1210:/usr/lib/avr/include/avr/pgmspace.h **** \fn char *strcat_P(char *dest, const char *src) -1211:/usr/lib/avr/include/avr/pgmspace.h **** -1212:/usr/lib/avr/include/avr/pgmspace.h **** The strcat_P() function is similar to strcat() except that the \e src -1213:/usr/lib/avr/include/avr/pgmspace.h **** string must be located in program space (flash). -1214:/usr/lib/avr/include/avr/pgmspace.h **** -1215:/usr/lib/avr/include/avr/pgmspace.h **** \returns The strcat() function returns a pointer to the resulting string -1216:/usr/lib/avr/include/avr/pgmspace.h **** \e dest. */ -1217:/usr/lib/avr/include/avr/pgmspace.h **** extern char *strcat_P(char *, const char *); -1218:/usr/lib/avr/include/avr/pgmspace.h **** -1219:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1220:/usr/lib/avr/include/avr/pgmspace.h **** \fn const char *strchr_P(const char *s, int val) -1221:/usr/lib/avr/include/avr/pgmspace.h **** \brief Locate character in program space string. -1222:/usr/lib/avr/include/avr/pgmspace.h **** -1223:/usr/lib/avr/include/avr/pgmspace.h **** The strchr_P() function locates the first occurrence of \p val -1224:/usr/lib/avr/include/avr/pgmspace.h **** (converted to a char) in the string pointed to by \p s in program -1225:/usr/lib/avr/include/avr/pgmspace.h **** space. The terminating null character is considered to be part of -1226:/usr/lib/avr/include/avr/pgmspace.h **** the string. -1227:/usr/lib/avr/include/avr/pgmspace.h **** -1228:/usr/lib/avr/include/avr/pgmspace.h **** The strchr_P() function is similar to strchr() except that \p s is -1229:/usr/lib/avr/include/avr/pgmspace.h **** pointer to a string in program space. -1230:/usr/lib/avr/include/avr/pgmspace.h **** -1231:/usr/lib/avr/include/avr/pgmspace.h **** \returns The strchr_P() function returns a pointer to the matched -1232:/usr/lib/avr/include/avr/pgmspace.h **** character or \c NULL if the character is not found. */ -1233:/usr/lib/avr/include/avr/pgmspace.h **** extern const char * strchr_P(const char *, int __val) __ATTR_CONST__; -1234:/usr/lib/avr/include/avr/pgmspace.h **** -1235:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1236:/usr/lib/avr/include/avr/pgmspace.h **** \fn const char *strchrnul_P(const char *s, int c) -1237:/usr/lib/avr/include/avr/pgmspace.h **** -1238:/usr/lib/avr/include/avr/pgmspace.h **** The strchrnul_P() function is like strchr_P() except that if \p c is -1239:/usr/lib/avr/include/avr/pgmspace.h **** not found in \p s, then it returns a pointer to the null byte at the -1240:/usr/lib/avr/include/avr/pgmspace.h **** end of \p s, rather than \c NULL. (Glibc, GNU extension.) -1241:/usr/lib/avr/include/avr/pgmspace.h **** -1242:/usr/lib/avr/include/avr/pgmspace.h **** \return The strchrnul_P() function returns a pointer to the matched -1243:/usr/lib/avr/include/avr/pgmspace.h **** character, or a pointer to the null byte at the end of \p s (i.e., -1244:/usr/lib/avr/include/avr/pgmspace.h **** \c s+strlen(s)) if the character is not found. */ -1245:/usr/lib/avr/include/avr/pgmspace.h **** extern const char * strchrnul_P(const char *, int __val) __ATTR_CONST__; -1246:/usr/lib/avr/include/avr/pgmspace.h **** -1247:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1248:/usr/lib/avr/include/avr/pgmspace.h **** \fn int strcmp_P(const char *s1, const char *s2) -1249:/usr/lib/avr/include/avr/pgmspace.h **** -1250:/usr/lib/avr/include/avr/pgmspace.h **** The strcmp_P() function is similar to strcmp() except that \p s2 is -1251:/usr/lib/avr/include/avr/pgmspace.h **** pointer to a string in program space. -1252:/usr/lib/avr/include/avr/pgmspace.h **** -1253:/usr/lib/avr/include/avr/pgmspace.h **** \returns The strcmp_P() function returns an integer less than, equal -1254:/usr/lib/avr/include/avr/pgmspace.h **** to, or greater than zero if \p s1 is found, respectively, to be less -1255:/usr/lib/avr/include/avr/pgmspace.h **** than, to match, or be greater than \p s2. A consequence of the -1256:/usr/lib/avr/include/avr/pgmspace.h **** ordering used by strcmp_P() is that if \p s1 is an initial substring -1257:/usr/lib/avr/include/avr/pgmspace.h **** of \p s2, then \p s1 is considered to be "less than" \p s2. */ -1258:/usr/lib/avr/include/avr/pgmspace.h **** extern int strcmp_P(const char *, const char *) __ATTR_PURE__; -1259:/usr/lib/avr/include/avr/pgmspace.h **** -1260:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1261:/usr/lib/avr/include/avr/pgmspace.h **** \fn char *strcpy_P(char *dest, const char *src) -1262:/usr/lib/avr/include/avr/pgmspace.h **** -1263:/usr/lib/avr/include/avr/pgmspace.h **** The strcpy_P() function is similar to strcpy() except that src is a -1264:/usr/lib/avr/include/avr/pgmspace.h **** pointer to a string in program space. -1265:/usr/lib/avr/include/avr/pgmspace.h **** -1266:/usr/lib/avr/include/avr/pgmspace.h **** \returns The strcpy_P() function returns a pointer to the destination -1267:/usr/lib/avr/include/avr/pgmspace.h **** string dest. */ -1268:/usr/lib/avr/include/avr/pgmspace.h **** extern char *strcpy_P(char *, const char *); -1269:/usr/lib/avr/include/avr/pgmspace.h **** -1270:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1271:/usr/lib/avr/include/avr/pgmspace.h **** \fn int strcasecmp_P(const char *s1, const char *s2) -1272:/usr/lib/avr/include/avr/pgmspace.h **** \brief Compare two strings ignoring case. -1273:/usr/lib/avr/include/avr/pgmspace.h **** -1274:/usr/lib/avr/include/avr/pgmspace.h **** The strcasecmp_P() function compares the two strings \p s1 and \p s2, -1275:/usr/lib/avr/include/avr/pgmspace.h **** ignoring the case of the characters. -1276:/usr/lib/avr/include/avr/pgmspace.h **** -1277:/usr/lib/avr/include/avr/pgmspace.h **** \param s1 A pointer to a string in the devices SRAM. -1278:/usr/lib/avr/include/avr/pgmspace.h **** \param s2 A pointer to a string in the devices Flash. -1279:/usr/lib/avr/include/avr/pgmspace.h **** -1280:/usr/lib/avr/include/avr/pgmspace.h **** \returns The strcasecmp_P() function returns an integer less than, -1281:/usr/lib/avr/include/avr/pgmspace.h **** equal to, or greater than zero if \p s1 is found, respectively, to -1282:/usr/lib/avr/include/avr/pgmspace.h **** be less than, to match, or be greater than \p s2. A consequence of -1283:/usr/lib/avr/include/avr/pgmspace.h **** the ordering used by strcasecmp_P() is that if \p s1 is an initial -1284:/usr/lib/avr/include/avr/pgmspace.h **** substring of \p s2, then \p s1 is considered to be "less than" \p s2. */ -1285:/usr/lib/avr/include/avr/pgmspace.h **** extern int strcasecmp_P(const char *, const char *) __ATTR_PURE__; -1286:/usr/lib/avr/include/avr/pgmspace.h **** -1287:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1288:/usr/lib/avr/include/avr/pgmspace.h **** \fn char *strcasestr_P(const char *s1, const char *s2) -1289:/usr/lib/avr/include/avr/pgmspace.h **** -1290:/usr/lib/avr/include/avr/pgmspace.h **** This funtion is similar to strcasestr() except that \p s2 is pointer -1291:/usr/lib/avr/include/avr/pgmspace.h **** to a string in program space. */ -1292:/usr/lib/avr/include/avr/pgmspace.h **** extern char *strcasestr_P(const char *, const char *) __ATTR_PURE__; -1293:/usr/lib/avr/include/avr/pgmspace.h **** -1294:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1295:/usr/lib/avr/include/avr/pgmspace.h **** \fn size_t strcspn_P(const char *s, const char *reject) -1296:/usr/lib/avr/include/avr/pgmspace.h **** -1297:/usr/lib/avr/include/avr/pgmspace.h **** The strcspn_P() function calculates the length of the initial segment -1298:/usr/lib/avr/include/avr/pgmspace.h **** of \p s which consists entirely of characters not in \p reject. This -1299:/usr/lib/avr/include/avr/pgmspace.h **** function is similar to strcspn() except that \p reject is a pointer -1300:/usr/lib/avr/include/avr/pgmspace.h **** to a string in program space. -1301:/usr/lib/avr/include/avr/pgmspace.h **** -1302:/usr/lib/avr/include/avr/pgmspace.h **** \return The strcspn_P() function returns the number of characters in -1303:/usr/lib/avr/include/avr/pgmspace.h **** the initial segment of \p s which are not in the string \p reject. -1304:/usr/lib/avr/include/avr/pgmspace.h **** The terminating zero is not considered as a part of string. */ -1305:/usr/lib/avr/include/avr/pgmspace.h **** extern size_t strcspn_P(const char *__s, const char * __reject) __ATTR_PURE__; -1306:/usr/lib/avr/include/avr/pgmspace.h **** -1307:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1308:/usr/lib/avr/include/avr/pgmspace.h **** \fn size_t strlcat_P(char *dst, const char *src, size_t siz) -1309:/usr/lib/avr/include/avr/pgmspace.h **** \brief Concatenate two strings. -1310:/usr/lib/avr/include/avr/pgmspace.h **** -1311:/usr/lib/avr/include/avr/pgmspace.h **** The strlcat_P() function is similar to strlcat(), except that the \p src -1312:/usr/lib/avr/include/avr/pgmspace.h **** string must be located in program space (flash). -1313:/usr/lib/avr/include/avr/pgmspace.h **** -1314:/usr/lib/avr/include/avr/pgmspace.h **** Appends \p src to string \p dst of size \p siz (unlike strncat(), -1315:/usr/lib/avr/include/avr/pgmspace.h **** \p siz is the full size of \p dst, not space left). At most \p siz-1 -1316:/usr/lib/avr/include/avr/pgmspace.h **** characters will be copied. Always NULL terminates (unless \p siz <= -1317:/usr/lib/avr/include/avr/pgmspace.h **** \p strlen(dst)). -1318:/usr/lib/avr/include/avr/pgmspace.h **** -1319:/usr/lib/avr/include/avr/pgmspace.h **** \returns The strlcat_P() function returns strlen(src) + MIN(siz, -1320:/usr/lib/avr/include/avr/pgmspace.h **** strlen(initial dst)). If retval >= siz, truncation occurred. */ -1321:/usr/lib/avr/include/avr/pgmspace.h **** extern size_t strlcat_P (char *, const char *, size_t ); -1322:/usr/lib/avr/include/avr/pgmspace.h **** -1323:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1324:/usr/lib/avr/include/avr/pgmspace.h **** \fn size_t strlcpy_P(char *dst, const char *src, size_t siz) -1325:/usr/lib/avr/include/avr/pgmspace.h **** \brief Copy a string from progmem to RAM. -1326:/usr/lib/avr/include/avr/pgmspace.h **** -1327:/usr/lib/avr/include/avr/pgmspace.h **** Copy \p src to string \p dst of size \p siz. At most \p siz-1 -1328:/usr/lib/avr/include/avr/pgmspace.h **** characters will be copied. Always NULL terminates (unless \p siz == 0). -1329:/usr/lib/avr/include/avr/pgmspace.h **** The strlcpy_P() function is similar to strlcpy() except that the -1330:/usr/lib/avr/include/avr/pgmspace.h **** \p src is pointer to a string in memory space. -1331:/usr/lib/avr/include/avr/pgmspace.h **** -1332:/usr/lib/avr/include/avr/pgmspace.h **** \returns The strlcpy_P() function returns strlen(src). If -1333:/usr/lib/avr/include/avr/pgmspace.h **** retval >= siz, truncation occurred. */ -1334:/usr/lib/avr/include/avr/pgmspace.h **** extern size_t strlcpy_P (char *, const char *, size_t ); -1335:/usr/lib/avr/include/avr/pgmspace.h **** -1336:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1337:/usr/lib/avr/include/avr/pgmspace.h **** \fn size_t strnlen_P(const char *src, size_t len) -1338:/usr/lib/avr/include/avr/pgmspace.h **** \brief Determine the length of a fixed-size string. -1339:/usr/lib/avr/include/avr/pgmspace.h **** -1340:/usr/lib/avr/include/avr/pgmspace.h **** The strnlen_P() function is similar to strnlen(), except that \c src is a -1341:/usr/lib/avr/include/avr/pgmspace.h **** pointer to a string in program space. -1342:/usr/lib/avr/include/avr/pgmspace.h **** -1343:/usr/lib/avr/include/avr/pgmspace.h **** \returns The strnlen_P function returns strlen_P(src), if that is less than -1344:/usr/lib/avr/include/avr/pgmspace.h **** \c len, or \c len if there is no '\\0' character among the first \c len -1345:/usr/lib/avr/include/avr/pgmspace.h **** characters pointed to by \c src. */ -1346:/usr/lib/avr/include/avr/pgmspace.h **** extern size_t strnlen_P(const char *, size_t) __ATTR_CONST__; /* program memory can't change */ -1347:/usr/lib/avr/include/avr/pgmspace.h **** -1348:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1349:/usr/lib/avr/include/avr/pgmspace.h **** \fn int strncmp_P(const char *s1, const char *s2, size_t n) -1350:/usr/lib/avr/include/avr/pgmspace.h **** -1351:/usr/lib/avr/include/avr/pgmspace.h **** The strncmp_P() function is similar to strcmp_P() except it only compares -1352:/usr/lib/avr/include/avr/pgmspace.h **** the first (at most) n characters of s1 and s2. -1353:/usr/lib/avr/include/avr/pgmspace.h **** -1354:/usr/lib/avr/include/avr/pgmspace.h **** \returns The strncmp_P() function returns an integer less than, equal to, -1355:/usr/lib/avr/include/avr/pgmspace.h **** or greater than zero if s1 (or the first n bytes thereof) is found, -1356:/usr/lib/avr/include/avr/pgmspace.h **** respectively, to be less than, to match, or be greater than s2. */ -1357:/usr/lib/avr/include/avr/pgmspace.h **** extern int strncmp_P(const char *, const char *, size_t) __ATTR_PURE__; -1358:/usr/lib/avr/include/avr/pgmspace.h **** -1359:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1360:/usr/lib/avr/include/avr/pgmspace.h **** \fn int strncasecmp_P(const char *s1, const char *s2, size_t n) -1361:/usr/lib/avr/include/avr/pgmspace.h **** \brief Compare two strings ignoring case. -1362:/usr/lib/avr/include/avr/pgmspace.h **** -1363:/usr/lib/avr/include/avr/pgmspace.h **** The strncasecmp_P() function is similar to strcasecmp_P(), except it -1364:/usr/lib/avr/include/avr/pgmspace.h **** only compares the first \p n characters of \p s1. -1365:/usr/lib/avr/include/avr/pgmspace.h **** -1366:/usr/lib/avr/include/avr/pgmspace.h **** \param s1 A pointer to a string in the devices SRAM. -1367:/usr/lib/avr/include/avr/pgmspace.h **** \param s2 A pointer to a string in the devices Flash. -1368:/usr/lib/avr/include/avr/pgmspace.h **** \param n The maximum number of bytes to compare. -1369:/usr/lib/avr/include/avr/pgmspace.h **** -1370:/usr/lib/avr/include/avr/pgmspace.h **** \returns The strncasecmp_P() function returns an integer less than, -1371:/usr/lib/avr/include/avr/pgmspace.h **** equal to, or greater than zero if \p s1 (or the first \p n bytes -1372:/usr/lib/avr/include/avr/pgmspace.h **** thereof) is found, respectively, to be less than, to match, or be -1373:/usr/lib/avr/include/avr/pgmspace.h **** greater than \p s2. A consequence of the ordering used by -1374:/usr/lib/avr/include/avr/pgmspace.h **** strncasecmp_P() is that if \p s1 is an initial substring of \p s2, -1375:/usr/lib/avr/include/avr/pgmspace.h **** then \p s1 is considered to be "less than" \p s2. */ -1376:/usr/lib/avr/include/avr/pgmspace.h **** extern int strncasecmp_P(const char *, const char *, size_t) __ATTR_PURE__; -1377:/usr/lib/avr/include/avr/pgmspace.h **** -1378:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1379:/usr/lib/avr/include/avr/pgmspace.h **** \fn char *strncat_P(char *dest, const char *src, size_t len) -1380:/usr/lib/avr/include/avr/pgmspace.h **** \brief Concatenate two strings. -1381:/usr/lib/avr/include/avr/pgmspace.h **** -1382:/usr/lib/avr/include/avr/pgmspace.h **** The strncat_P() function is similar to strncat(), except that the \e src -1383:/usr/lib/avr/include/avr/pgmspace.h **** string must be located in program space (flash). -1384:/usr/lib/avr/include/avr/pgmspace.h **** -1385:/usr/lib/avr/include/avr/pgmspace.h **** \returns The strncat_P() function returns a pointer to the resulting string -1386:/usr/lib/avr/include/avr/pgmspace.h **** dest. */ -1387:/usr/lib/avr/include/avr/pgmspace.h **** extern char *strncat_P(char *, const char *, size_t); -1388:/usr/lib/avr/include/avr/pgmspace.h **** -1389:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1390:/usr/lib/avr/include/avr/pgmspace.h **** \fn char *strncpy_P(char *dest, const char *src, size_t n) -1391:/usr/lib/avr/include/avr/pgmspace.h **** -1392:/usr/lib/avr/include/avr/pgmspace.h **** The strncpy_P() function is similar to strcpy_P() except that not more -1393:/usr/lib/avr/include/avr/pgmspace.h **** than n bytes of src are copied. Thus, if there is no null byte among the -1394:/usr/lib/avr/include/avr/pgmspace.h **** first n bytes of src, the result will not be null-terminated. -1395:/usr/lib/avr/include/avr/pgmspace.h **** -1396:/usr/lib/avr/include/avr/pgmspace.h **** In the case where the length of src is less than that of n, the remainder -1397:/usr/lib/avr/include/avr/pgmspace.h **** of dest will be padded with nulls. -1398:/usr/lib/avr/include/avr/pgmspace.h **** -1399:/usr/lib/avr/include/avr/pgmspace.h **** \returns The strncpy_P() function returns a pointer to the destination -1400:/usr/lib/avr/include/avr/pgmspace.h **** string dest. */ -1401:/usr/lib/avr/include/avr/pgmspace.h **** extern char *strncpy_P(char *, const char *, size_t); -1402:/usr/lib/avr/include/avr/pgmspace.h **** -1403:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1404:/usr/lib/avr/include/avr/pgmspace.h **** \fn char *strpbrk_P(const char *s, const char *accept) -1405:/usr/lib/avr/include/avr/pgmspace.h **** -1406:/usr/lib/avr/include/avr/pgmspace.h **** The strpbrk_P() function locates the first occurrence in the string -1407:/usr/lib/avr/include/avr/pgmspace.h **** \p s of any of the characters in the flash string \p accept. This -1408:/usr/lib/avr/include/avr/pgmspace.h **** function is similar to strpbrk() except that \p accept is a pointer -1409:/usr/lib/avr/include/avr/pgmspace.h **** to a string in program space. -1410:/usr/lib/avr/include/avr/pgmspace.h **** -1411:/usr/lib/avr/include/avr/pgmspace.h **** \return The strpbrk_P() function returns a pointer to the character -1412:/usr/lib/avr/include/avr/pgmspace.h **** in \p s that matches one of the characters in \p accept, or \c NULL -1413:/usr/lib/avr/include/avr/pgmspace.h **** if no such character is found. The terminating zero is not considered -1414:/usr/lib/avr/include/avr/pgmspace.h **** as a part of string: if one or both args are empty, the result will -1415:/usr/lib/avr/include/avr/pgmspace.h **** \c NULL. */ -1416:/usr/lib/avr/include/avr/pgmspace.h **** extern char *strpbrk_P(const char *__s, const char * __accept) __ATTR_PURE__; -1417:/usr/lib/avr/include/avr/pgmspace.h **** -1418:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1419:/usr/lib/avr/include/avr/pgmspace.h **** \fn const char *strrchr_P(const char *s, int val) -1420:/usr/lib/avr/include/avr/pgmspace.h **** \brief Locate character in string. -1421:/usr/lib/avr/include/avr/pgmspace.h **** -1422:/usr/lib/avr/include/avr/pgmspace.h **** The strrchr_P() function returns a pointer to the last occurrence of -1423:/usr/lib/avr/include/avr/pgmspace.h **** the character \p val in the flash string \p s. -1424:/usr/lib/avr/include/avr/pgmspace.h **** -1425:/usr/lib/avr/include/avr/pgmspace.h **** \return The strrchr_P() function returns a pointer to the matched -1426:/usr/lib/avr/include/avr/pgmspace.h **** character or \c NULL if the character is not found. */ -1427:/usr/lib/avr/include/avr/pgmspace.h **** extern const char * strrchr_P(const char *, int __val) __ATTR_CONST__; -1428:/usr/lib/avr/include/avr/pgmspace.h **** -1429:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1430:/usr/lib/avr/include/avr/pgmspace.h **** \fn char *strsep_P(char **sp, const char *delim) -1431:/usr/lib/avr/include/avr/pgmspace.h **** \brief Parse a string into tokens. -1432:/usr/lib/avr/include/avr/pgmspace.h **** -1433:/usr/lib/avr/include/avr/pgmspace.h **** The strsep_P() function locates, in the string referenced by \p *sp, -1434:/usr/lib/avr/include/avr/pgmspace.h **** the first occurrence of any character in the string \p delim (or the -1435:/usr/lib/avr/include/avr/pgmspace.h **** terminating '\\0' character) and replaces it with a '\\0'. The -1436:/usr/lib/avr/include/avr/pgmspace.h **** location of the next character after the delimiter character (or \c -1437:/usr/lib/avr/include/avr/pgmspace.h **** NULL, if the end of the string was reached) is stored in \p *sp. An -1438:/usr/lib/avr/include/avr/pgmspace.h **** ``empty'' field, i.e. one caused by two adjacent delimiter -1439:/usr/lib/avr/include/avr/pgmspace.h **** characters, can be detected by comparing the location referenced by -1440:/usr/lib/avr/include/avr/pgmspace.h **** the pointer returned in \p *sp to '\\0'. This function is similar to -1441:/usr/lib/avr/include/avr/pgmspace.h **** strsep() except that \p delim is a pointer to a string in program -1442:/usr/lib/avr/include/avr/pgmspace.h **** space. -1443:/usr/lib/avr/include/avr/pgmspace.h **** -1444:/usr/lib/avr/include/avr/pgmspace.h **** \return The strsep_P() function returns a pointer to the original -1445:/usr/lib/avr/include/avr/pgmspace.h **** value of \p *sp. If \p *sp is initially \c NULL, strsep_P() returns -1446:/usr/lib/avr/include/avr/pgmspace.h **** \c NULL. */ -1447:/usr/lib/avr/include/avr/pgmspace.h **** extern char *strsep_P(char **__sp, const char * __delim); -1448:/usr/lib/avr/include/avr/pgmspace.h **** -1449:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1450:/usr/lib/avr/include/avr/pgmspace.h **** \fn size_t strspn_P(const char *s, const char *accept) -1451:/usr/lib/avr/include/avr/pgmspace.h **** -1452:/usr/lib/avr/include/avr/pgmspace.h **** The strspn_P() function calculates the length of the initial segment -1453:/usr/lib/avr/include/avr/pgmspace.h **** of \p s which consists entirely of characters in \p accept. This -1454:/usr/lib/avr/include/avr/pgmspace.h **** function is similar to strspn() except that \p accept is a pointer -1455:/usr/lib/avr/include/avr/pgmspace.h **** to a string in program space. -1456:/usr/lib/avr/include/avr/pgmspace.h **** -1457:/usr/lib/avr/include/avr/pgmspace.h **** \return The strspn_P() function returns the number of characters in -1458:/usr/lib/avr/include/avr/pgmspace.h **** the initial segment of \p s which consist only of characters from \p -1459:/usr/lib/avr/include/avr/pgmspace.h **** accept. The terminating zero is not considered as a part of string. */ -1460:/usr/lib/avr/include/avr/pgmspace.h **** extern size_t strspn_P(const char *__s, const char * __accept) __ATTR_PURE__; -1461:/usr/lib/avr/include/avr/pgmspace.h **** -1462:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1463:/usr/lib/avr/include/avr/pgmspace.h **** \fn char *strstr_P(const char *s1, const char *s2) -1464:/usr/lib/avr/include/avr/pgmspace.h **** \brief Locate a substring. -1465:/usr/lib/avr/include/avr/pgmspace.h **** -1466:/usr/lib/avr/include/avr/pgmspace.h **** The strstr_P() function finds the first occurrence of the substring -1467:/usr/lib/avr/include/avr/pgmspace.h **** \p s2 in the string \p s1. The terminating '\\0' characters are not -1468:/usr/lib/avr/include/avr/pgmspace.h **** compared. The strstr_P() function is similar to strstr() except that -1469:/usr/lib/avr/include/avr/pgmspace.h **** \p s2 is pointer to a string in program space. -1470:/usr/lib/avr/include/avr/pgmspace.h **** -1471:/usr/lib/avr/include/avr/pgmspace.h **** \returns The strstr_P() function returns a pointer to the beginning -1472:/usr/lib/avr/include/avr/pgmspace.h **** of the substring, or NULL if the substring is not found. If \p s2 -1473:/usr/lib/avr/include/avr/pgmspace.h **** points to a string of zero length, the function returns \p s1. */ -1474:/usr/lib/avr/include/avr/pgmspace.h **** extern char *strstr_P(const char *, const char *) __ATTR_PURE__; -1475:/usr/lib/avr/include/avr/pgmspace.h **** -1476:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1477:/usr/lib/avr/include/avr/pgmspace.h **** \fn char *strtok_P(char *s, const char * delim) -1478:/usr/lib/avr/include/avr/pgmspace.h **** \brief Parses the string into tokens. -1479:/usr/lib/avr/include/avr/pgmspace.h **** -1480:/usr/lib/avr/include/avr/pgmspace.h **** strtok_P() parses the string \p s into tokens. The first call to -1481:/usr/lib/avr/include/avr/pgmspace.h **** strtok_P() should have \p s as its first argument. Subsequent calls -1482:/usr/lib/avr/include/avr/pgmspace.h **** should have the first argument set to NULL. If a token ends with a -1483:/usr/lib/avr/include/avr/pgmspace.h **** delimiter, this delimiting character is overwritten with a '\\0' and a -1484:/usr/lib/avr/include/avr/pgmspace.h **** pointer to the next character is saved for the next call to strtok_P(). -1485:/usr/lib/avr/include/avr/pgmspace.h **** The delimiter string \p delim may be different for each call. -1486:/usr/lib/avr/include/avr/pgmspace.h **** -1487:/usr/lib/avr/include/avr/pgmspace.h **** The strtok_P() function is similar to strtok() except that \p delim -1488:/usr/lib/avr/include/avr/pgmspace.h **** is pointer to a string in program space. -1489:/usr/lib/avr/include/avr/pgmspace.h **** -1490:/usr/lib/avr/include/avr/pgmspace.h **** \returns The strtok_P() function returns a pointer to the next token or -1491:/usr/lib/avr/include/avr/pgmspace.h **** NULL when no more tokens are found. -1492:/usr/lib/avr/include/avr/pgmspace.h **** -1493:/usr/lib/avr/include/avr/pgmspace.h **** \note strtok_P() is NOT reentrant. For a reentrant version of this -1494:/usr/lib/avr/include/avr/pgmspace.h **** function see strtok_rP(). -1495:/usr/lib/avr/include/avr/pgmspace.h **** */ -1496:/usr/lib/avr/include/avr/pgmspace.h **** extern char *strtok_P(char *__s, const char * __delim); -1497:/usr/lib/avr/include/avr/pgmspace.h **** -1498:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1499:/usr/lib/avr/include/avr/pgmspace.h **** \fn char *strtok_rP (char *string, const char *delim, char **last) -1500:/usr/lib/avr/include/avr/pgmspace.h **** \brief Parses string into tokens. -1501:/usr/lib/avr/include/avr/pgmspace.h **** -1502:/usr/lib/avr/include/avr/pgmspace.h **** The strtok_rP() function parses \p string into tokens. The first call to -1503:/usr/lib/avr/include/avr/pgmspace.h **** strtok_rP() should have string as its first argument. Subsequent calls -1504:/usr/lib/avr/include/avr/pgmspace.h **** should have the first argument set to NULL. If a token ends with a -1505:/usr/lib/avr/include/avr/pgmspace.h **** delimiter, this delimiting character is overwritten with a '\\0' and a -1506:/usr/lib/avr/include/avr/pgmspace.h **** pointer to the next character is saved for the next call to strtok_rP(). -1507:/usr/lib/avr/include/avr/pgmspace.h **** The delimiter string \p delim may be different for each call. \p last is -1508:/usr/lib/avr/include/avr/pgmspace.h **** a user allocated char* pointer. It must be the same while parsing the -1509:/usr/lib/avr/include/avr/pgmspace.h **** same string. strtok_rP() is a reentrant version of strtok_P(). -1510:/usr/lib/avr/include/avr/pgmspace.h **** -1511:/usr/lib/avr/include/avr/pgmspace.h **** The strtok_rP() function is similar to strtok_r() except that \p delim -1512:/usr/lib/avr/include/avr/pgmspace.h **** is pointer to a string in program space. -1513:/usr/lib/avr/include/avr/pgmspace.h **** -1514:/usr/lib/avr/include/avr/pgmspace.h **** \returns The strtok_rP() function returns a pointer to the next token or -1515:/usr/lib/avr/include/avr/pgmspace.h **** NULL when no more tokens are found. */ -1516:/usr/lib/avr/include/avr/pgmspace.h **** extern char *strtok_rP(char *__s, const char * __delim, char **__last); -1517:/usr/lib/avr/include/avr/pgmspace.h **** -1518:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1519:/usr/lib/avr/include/avr/pgmspace.h **** \fn size_t strlen_PF(uint_farptr_t s) -1520:/usr/lib/avr/include/avr/pgmspace.h **** \brief Obtain the length of a string -1521:/usr/lib/avr/include/avr/pgmspace.h **** -1522:/usr/lib/avr/include/avr/pgmspace.h **** The strlen_PF() function is similar to strlen(), except that \e s is a -1523:/usr/lib/avr/include/avr/pgmspace.h **** far pointer to a string in program space. -1524:/usr/lib/avr/include/avr/pgmspace.h **** -1525:/usr/lib/avr/include/avr/pgmspace.h **** \param s A far pointer to the string in flash -1526:/usr/lib/avr/include/avr/pgmspace.h **** -1527:/usr/lib/avr/include/avr/pgmspace.h **** \returns The strlen_PF() function returns the number of characters in -1528:/usr/lib/avr/include/avr/pgmspace.h **** \e s. The contents of RAMPZ SFR are undefined when the function returns. */ -1529:/usr/lib/avr/include/avr/pgmspace.h **** extern size_t strlen_PF(uint_farptr_t src) __ATTR_CONST__; /* program memory can't change */ -1530:/usr/lib/avr/include/avr/pgmspace.h **** -1531:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1532:/usr/lib/avr/include/avr/pgmspace.h **** \fn size_t strnlen_PF(uint_farptr_t s, size_t len) -1533:/usr/lib/avr/include/avr/pgmspace.h **** \brief Determine the length of a fixed-size string -1534:/usr/lib/avr/include/avr/pgmspace.h **** -1535:/usr/lib/avr/include/avr/pgmspace.h **** The strnlen_PF() function is similar to strnlen(), except that \e s is a -1536:/usr/lib/avr/include/avr/pgmspace.h **** far pointer to a string in program space. -1537:/usr/lib/avr/include/avr/pgmspace.h **** -1538:/usr/lib/avr/include/avr/pgmspace.h **** \param s A far pointer to the string in Flash -1539:/usr/lib/avr/include/avr/pgmspace.h **** \param len The maximum number of length to return -1540:/usr/lib/avr/include/avr/pgmspace.h **** -1541:/usr/lib/avr/include/avr/pgmspace.h **** \returns The strnlen_PF function returns strlen_P(\e s), if that is less -1542:/usr/lib/avr/include/avr/pgmspace.h **** than \e len, or \e len if there is no '\\0' character among the first \e -1543:/usr/lib/avr/include/avr/pgmspace.h **** len characters pointed to by \e s. The contents of RAMPZ SFR are -1544:/usr/lib/avr/include/avr/pgmspace.h **** undefined when the function returns. */ -1545:/usr/lib/avr/include/avr/pgmspace.h **** extern size_t strnlen_PF(uint_farptr_t src, size_t len) __ATTR_CONST__; /* program memory can't cha -1546:/usr/lib/avr/include/avr/pgmspace.h **** -1547:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1548:/usr/lib/avr/include/avr/pgmspace.h **** \fn void *memcpy_PF(void *dest, uint_farptr_t src, size_t n) -1549:/usr/lib/avr/include/avr/pgmspace.h **** \brief Copy a memory block from flash to SRAM -1550:/usr/lib/avr/include/avr/pgmspace.h **** -1551:/usr/lib/avr/include/avr/pgmspace.h **** The memcpy_PF() function is similar to memcpy(), except the data -1552:/usr/lib/avr/include/avr/pgmspace.h **** is copied from the program space and is addressed using a far pointer. -1553:/usr/lib/avr/include/avr/pgmspace.h **** -1554:/usr/lib/avr/include/avr/pgmspace.h **** \param dest A pointer to the destination buffer -1555:/usr/lib/avr/include/avr/pgmspace.h **** \param src A far pointer to the origin of data in flash memory -1556:/usr/lib/avr/include/avr/pgmspace.h **** \param n The number of bytes to be copied -1557:/usr/lib/avr/include/avr/pgmspace.h **** -1558:/usr/lib/avr/include/avr/pgmspace.h **** \returns The memcpy_PF() function returns a pointer to \e dst. The contents -1559:/usr/lib/avr/include/avr/pgmspace.h **** of RAMPZ SFR are undefined when the function returns. */ -1560:/usr/lib/avr/include/avr/pgmspace.h **** extern void *memcpy_PF(void *dest, uint_farptr_t src, size_t len); -1561:/usr/lib/avr/include/avr/pgmspace.h **** -1562:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1563:/usr/lib/avr/include/avr/pgmspace.h **** \fn char *strcpy_PF(char *dst, uint_farptr_t src) -1564:/usr/lib/avr/include/avr/pgmspace.h **** \brief Duplicate a string -1565:/usr/lib/avr/include/avr/pgmspace.h **** -1566:/usr/lib/avr/include/avr/pgmspace.h **** The strcpy_PF() function is similar to strcpy() except that \e src is a far -1567:/usr/lib/avr/include/avr/pgmspace.h **** pointer to a string in program space. -1568:/usr/lib/avr/include/avr/pgmspace.h **** -1569:/usr/lib/avr/include/avr/pgmspace.h **** \param dst A pointer to the destination string in SRAM -1570:/usr/lib/avr/include/avr/pgmspace.h **** \param src A far pointer to the source string in Flash -1571:/usr/lib/avr/include/avr/pgmspace.h **** -1572:/usr/lib/avr/include/avr/pgmspace.h **** \returns The strcpy_PF() function returns a pointer to the destination -1573:/usr/lib/avr/include/avr/pgmspace.h **** string \e dst. The contents of RAMPZ SFR are undefined when the funcion -1574:/usr/lib/avr/include/avr/pgmspace.h **** returns. */ -1575:/usr/lib/avr/include/avr/pgmspace.h **** extern char *strcpy_PF(char *dest, uint_farptr_t src); -1576:/usr/lib/avr/include/avr/pgmspace.h **** -1577:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1578:/usr/lib/avr/include/avr/pgmspace.h **** \fn char *strncpy_PF(char *dst, uint_farptr_t src, size_t n) -1579:/usr/lib/avr/include/avr/pgmspace.h **** \brief Duplicate a string until a limited length -1580:/usr/lib/avr/include/avr/pgmspace.h **** -1581:/usr/lib/avr/include/avr/pgmspace.h **** The strncpy_PF() function is similar to strcpy_PF() except that not more -1582:/usr/lib/avr/include/avr/pgmspace.h **** than \e n bytes of \e src are copied. Thus, if there is no null byte among -1583:/usr/lib/avr/include/avr/pgmspace.h **** the first \e n bytes of \e src, the result will not be null-terminated. -1584:/usr/lib/avr/include/avr/pgmspace.h **** -1585:/usr/lib/avr/include/avr/pgmspace.h **** In the case where the length of \e src is less than that of \e n, the -1586:/usr/lib/avr/include/avr/pgmspace.h **** remainder of \e dst will be padded with nulls. -1587:/usr/lib/avr/include/avr/pgmspace.h **** -1588:/usr/lib/avr/include/avr/pgmspace.h **** \param dst A pointer to the destination string in SRAM -1589:/usr/lib/avr/include/avr/pgmspace.h **** \param src A far pointer to the source string in Flash -1590:/usr/lib/avr/include/avr/pgmspace.h **** \param n The maximum number of bytes to copy -1591:/usr/lib/avr/include/avr/pgmspace.h **** -1592:/usr/lib/avr/include/avr/pgmspace.h **** \returns The strncpy_PF() function returns a pointer to the destination -1593:/usr/lib/avr/include/avr/pgmspace.h **** string \e dst. The contents of RAMPZ SFR are undefined when the function -1594:/usr/lib/avr/include/avr/pgmspace.h **** returns. */ -1595:/usr/lib/avr/include/avr/pgmspace.h **** extern char *strncpy_PF(char *dest, uint_farptr_t src, size_t len); -1596:/usr/lib/avr/include/avr/pgmspace.h **** -1597:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1598:/usr/lib/avr/include/avr/pgmspace.h **** \fn char *strcat_PF(char *dst, uint_farptr_t src) -1599:/usr/lib/avr/include/avr/pgmspace.h **** \brief Concatenates two strings -1600:/usr/lib/avr/include/avr/pgmspace.h **** -1601:/usr/lib/avr/include/avr/pgmspace.h **** The strcat_PF() function is similar to strcat() except that the \e src -1602:/usr/lib/avr/include/avr/pgmspace.h **** string must be located in program space (flash) and is addressed using -1603:/usr/lib/avr/include/avr/pgmspace.h **** a far pointer -1604:/usr/lib/avr/include/avr/pgmspace.h **** -1605:/usr/lib/avr/include/avr/pgmspace.h **** \param dst A pointer to the destination string in SRAM -1606:/usr/lib/avr/include/avr/pgmspace.h **** \param src A far pointer to the string to be appended in Flash -1607:/usr/lib/avr/include/avr/pgmspace.h **** -1608:/usr/lib/avr/include/avr/pgmspace.h **** \returns The strcat_PF() function returns a pointer to the resulting -1609:/usr/lib/avr/include/avr/pgmspace.h **** string \e dst. The contents of RAMPZ SFR are undefined when the function -1610:/usr/lib/avr/include/avr/pgmspace.h **** returns */ -1611:/usr/lib/avr/include/avr/pgmspace.h **** extern char *strcat_PF(char *dest, uint_farptr_t src); -1612:/usr/lib/avr/include/avr/pgmspace.h **** -1613:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1614:/usr/lib/avr/include/avr/pgmspace.h **** \fn size_t strlcat_PF(char *dst, uint_farptr_t src, size_t n) -1615:/usr/lib/avr/include/avr/pgmspace.h **** \brief Concatenate two strings -1616:/usr/lib/avr/include/avr/pgmspace.h **** -1617:/usr/lib/avr/include/avr/pgmspace.h **** The strlcat_PF() function is similar to strlcat(), except that the \e src -1618:/usr/lib/avr/include/avr/pgmspace.h **** string must be located in program space (flash) and is addressed using -1619:/usr/lib/avr/include/avr/pgmspace.h **** a far pointer. -1620:/usr/lib/avr/include/avr/pgmspace.h **** -1621:/usr/lib/avr/include/avr/pgmspace.h **** Appends src to string dst of size \e n (unlike strncat(), \e n is the -1622:/usr/lib/avr/include/avr/pgmspace.h **** full size of \e dst, not space left). At most \e n-1 characters -1623:/usr/lib/avr/include/avr/pgmspace.h **** will be copied. Always NULL terminates (unless \e n <= strlen(\e dst)). -1624:/usr/lib/avr/include/avr/pgmspace.h **** -1625:/usr/lib/avr/include/avr/pgmspace.h **** \param dst A pointer to the destination string in SRAM -1626:/usr/lib/avr/include/avr/pgmspace.h **** \param src A far pointer to the source string in Flash -1627:/usr/lib/avr/include/avr/pgmspace.h **** \param n The total number of bytes allocated to the destination string -1628:/usr/lib/avr/include/avr/pgmspace.h **** -1629:/usr/lib/avr/include/avr/pgmspace.h **** \returns The strlcat_PF() function returns strlen(\e src) + MIN(\e n, -1630:/usr/lib/avr/include/avr/pgmspace.h **** strlen(initial \e dst)). If retval >= \e n, truncation occurred. The -1631:/usr/lib/avr/include/avr/pgmspace.h **** contents of RAMPZ SFR are undefined when the funcion returns. */ -1632:/usr/lib/avr/include/avr/pgmspace.h **** extern size_t strlcat_PF(char *dst, uint_farptr_t src, size_t siz); -1633:/usr/lib/avr/include/avr/pgmspace.h **** -1634:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1635:/usr/lib/avr/include/avr/pgmspace.h **** \fn char *strncat_PF(char *dst, uint_farptr_t src, size_t n) -1636:/usr/lib/avr/include/avr/pgmspace.h **** \brief Concatenate two strings -1637:/usr/lib/avr/include/avr/pgmspace.h **** -1638:/usr/lib/avr/include/avr/pgmspace.h **** The strncat_PF() function is similar to strncat(), except that the \e src -1639:/usr/lib/avr/include/avr/pgmspace.h **** string must be located in program space (flash) and is addressed using a -1640:/usr/lib/avr/include/avr/pgmspace.h **** far pointer. -1641:/usr/lib/avr/include/avr/pgmspace.h **** -1642:/usr/lib/avr/include/avr/pgmspace.h **** \param dst A pointer to the destination string in SRAM -1643:/usr/lib/avr/include/avr/pgmspace.h **** \param src A far pointer to the source string in Flash -1644:/usr/lib/avr/include/avr/pgmspace.h **** \param n The maximum number of bytes to append -1645:/usr/lib/avr/include/avr/pgmspace.h **** -1646:/usr/lib/avr/include/avr/pgmspace.h **** \returns The strncat_PF() function returns a pointer to the resulting -1647:/usr/lib/avr/include/avr/pgmspace.h **** string \e dst. The contents of RAMPZ SFR are undefined when the function -1648:/usr/lib/avr/include/avr/pgmspace.h **** returns. */ -1649:/usr/lib/avr/include/avr/pgmspace.h **** extern char *strncat_PF(char *dest, uint_farptr_t src, size_t len); -1650:/usr/lib/avr/include/avr/pgmspace.h **** -1651:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1652:/usr/lib/avr/include/avr/pgmspace.h **** \fn int strcmp_PF(const char *s1, uint_farptr_t s2) -1653:/usr/lib/avr/include/avr/pgmspace.h **** \brief Compares two strings -1654:/usr/lib/avr/include/avr/pgmspace.h **** -1655:/usr/lib/avr/include/avr/pgmspace.h **** The strcmp_PF() function is similar to strcmp() except that \e s2 is a far -1656:/usr/lib/avr/include/avr/pgmspace.h **** pointer to a string in program space. -1657:/usr/lib/avr/include/avr/pgmspace.h **** -1658:/usr/lib/avr/include/avr/pgmspace.h **** \param s1 A pointer to the first string in SRAM -1659:/usr/lib/avr/include/avr/pgmspace.h **** \param s2 A far pointer to the second string in Flash -1660:/usr/lib/avr/include/avr/pgmspace.h **** -1661:/usr/lib/avr/include/avr/pgmspace.h **** \returns The strcmp_PF() function returns an integer less than, equal to, -1662:/usr/lib/avr/include/avr/pgmspace.h **** or greater than zero if \e s1 is found, respectively, to be less than, to -1663:/usr/lib/avr/include/avr/pgmspace.h **** match, or be greater than \e s2. The contents of RAMPZ SFR are undefined -1664:/usr/lib/avr/include/avr/pgmspace.h **** when the function returns. */ -1665:/usr/lib/avr/include/avr/pgmspace.h **** extern int strcmp_PF(const char *s1, uint_farptr_t s2) __ATTR_PURE__; -1666:/usr/lib/avr/include/avr/pgmspace.h **** -1667:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1668:/usr/lib/avr/include/avr/pgmspace.h **** \fn int strncmp_PF(const char *s1, uint_farptr_t s2, size_t n) -1669:/usr/lib/avr/include/avr/pgmspace.h **** \brief Compare two strings with limited length -1670:/usr/lib/avr/include/avr/pgmspace.h **** -1671:/usr/lib/avr/include/avr/pgmspace.h **** The strncmp_PF() function is similar to strcmp_PF() except it only -1672:/usr/lib/avr/include/avr/pgmspace.h **** compares the first (at most) \e n characters of \e s1 and \e s2. -1673:/usr/lib/avr/include/avr/pgmspace.h **** -1674:/usr/lib/avr/include/avr/pgmspace.h **** \param s1 A pointer to the first string in SRAM -1675:/usr/lib/avr/include/avr/pgmspace.h **** \param s2 A far pointer to the second string in Flash -1676:/usr/lib/avr/include/avr/pgmspace.h **** \param n The maximum number of bytes to compare -1677:/usr/lib/avr/include/avr/pgmspace.h **** -1678:/usr/lib/avr/include/avr/pgmspace.h **** \returns The strncmp_PF() function returns an integer less than, equal -1679:/usr/lib/avr/include/avr/pgmspace.h **** to, or greater than zero if \e s1 (or the first \e n bytes thereof) is found, -1680:/usr/lib/avr/include/avr/pgmspace.h **** respectively, to be less than, to match, or be greater than \e s2. The -1681:/usr/lib/avr/include/avr/pgmspace.h **** contents of RAMPZ SFR are undefined when the function returns. */ -1682:/usr/lib/avr/include/avr/pgmspace.h **** extern int strncmp_PF(const char *s1, uint_farptr_t s2, size_t n) __ATTR_PURE__; -1683:/usr/lib/avr/include/avr/pgmspace.h **** -1684:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1685:/usr/lib/avr/include/avr/pgmspace.h **** \fn int strcasecmp_PF(const char *s1, uint_farptr_t s2) -1686:/usr/lib/avr/include/avr/pgmspace.h **** \brief Compare two strings ignoring case -1687:/usr/lib/avr/include/avr/pgmspace.h **** -1688:/usr/lib/avr/include/avr/pgmspace.h **** The strcasecmp_PF() function compares the two strings \e s1 and \e s2, ignoring -1689:/usr/lib/avr/include/avr/pgmspace.h **** the case of the characters. -1690:/usr/lib/avr/include/avr/pgmspace.h **** -1691:/usr/lib/avr/include/avr/pgmspace.h **** \param s1 A pointer to the first string in SRAM -1692:/usr/lib/avr/include/avr/pgmspace.h **** \param s2 A far pointer to the second string in Flash -1693:/usr/lib/avr/include/avr/pgmspace.h **** -1694:/usr/lib/avr/include/avr/pgmspace.h **** \returns The strcasecmp_PF() function returns an integer less than, equal -1695:/usr/lib/avr/include/avr/pgmspace.h **** to, or greater than zero if \e s1 is found, respectively, to be less than, to -1696:/usr/lib/avr/include/avr/pgmspace.h **** match, or be greater than \e s2. The contents of RAMPZ SFR are undefined -1697:/usr/lib/avr/include/avr/pgmspace.h **** when the function returns. */ -1698:/usr/lib/avr/include/avr/pgmspace.h **** extern int strcasecmp_PF(const char *s1, uint_farptr_t s2) __ATTR_PURE__; -1699:/usr/lib/avr/include/avr/pgmspace.h **** -1700:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1701:/usr/lib/avr/include/avr/pgmspace.h **** \fn int strncasecmp_PF(const char *s1, uint_farptr_t s2, size_t n) -1702:/usr/lib/avr/include/avr/pgmspace.h **** \brief Compare two strings ignoring case -1703:/usr/lib/avr/include/avr/pgmspace.h **** -1704:/usr/lib/avr/include/avr/pgmspace.h **** The strncasecmp_PF() function is similar to strcasecmp_PF(), except it -1705:/usr/lib/avr/include/avr/pgmspace.h **** only compares the first \e n characters of \e s1 and the string in flash is -1706:/usr/lib/avr/include/avr/pgmspace.h **** addressed using a far pointer. -1707:/usr/lib/avr/include/avr/pgmspace.h **** -1708:/usr/lib/avr/include/avr/pgmspace.h **** \param s1 A pointer to a string in SRAM -1709:/usr/lib/avr/include/avr/pgmspace.h **** \param s2 A far pointer to a string in Flash -1710:/usr/lib/avr/include/avr/pgmspace.h **** \param n The maximum number of bytes to compare -1711:/usr/lib/avr/include/avr/pgmspace.h **** -1712:/usr/lib/avr/include/avr/pgmspace.h **** \returns The strncasecmp_PF() function returns an integer less than, equal -1713:/usr/lib/avr/include/avr/pgmspace.h **** to, or greater than zero if \e s1 (or the first \e n bytes thereof) is found, -1714:/usr/lib/avr/include/avr/pgmspace.h **** respectively, to be less than, to match, or be greater than \e s2. The -1715:/usr/lib/avr/include/avr/pgmspace.h **** contents of RAMPZ SFR are undefined when the function returns. */ -1716:/usr/lib/avr/include/avr/pgmspace.h **** extern int strncasecmp_PF(const char *s1, uint_farptr_t s2, size_t n) __ATTR_PURE__; -1717:/usr/lib/avr/include/avr/pgmspace.h **** -1718:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1719:/usr/lib/avr/include/avr/pgmspace.h **** \fn char *strstr_PF(const char *s1, uint_farptr_t s2) -1720:/usr/lib/avr/include/avr/pgmspace.h **** \brief Locate a substring. -1721:/usr/lib/avr/include/avr/pgmspace.h **** -1722:/usr/lib/avr/include/avr/pgmspace.h **** The strstr_PF() function finds the first occurrence of the substring \c s2 -1723:/usr/lib/avr/include/avr/pgmspace.h **** in the string \c s1. The terminating '\\0' characters are not -1724:/usr/lib/avr/include/avr/pgmspace.h **** compared. -1725:/usr/lib/avr/include/avr/pgmspace.h **** The strstr_PF() function is similar to strstr() except that \c s2 is a -1726:/usr/lib/avr/include/avr/pgmspace.h **** far pointer to a string in program space. -1727:/usr/lib/avr/include/avr/pgmspace.h **** -1728:/usr/lib/avr/include/avr/pgmspace.h **** \returns The strstr_PF() function returns a pointer to the beginning of the -1729:/usr/lib/avr/include/avr/pgmspace.h **** substring, or NULL if the substring is not found. -1730:/usr/lib/avr/include/avr/pgmspace.h **** If \c s2 points to a string of zero length, the function returns \c s1. The -1731:/usr/lib/avr/include/avr/pgmspace.h **** contents of RAMPZ SFR are undefined when the function returns. */ -1732:/usr/lib/avr/include/avr/pgmspace.h **** extern char *strstr_PF(const char *s1, uint_farptr_t s2); -1733:/usr/lib/avr/include/avr/pgmspace.h **** -1734:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1735:/usr/lib/avr/include/avr/pgmspace.h **** \fn size_t strlcpy_PF(char *dst, uint_farptr_t src, size_t siz) -1736:/usr/lib/avr/include/avr/pgmspace.h **** \brief Copy a string from progmem to RAM. -1737:/usr/lib/avr/include/avr/pgmspace.h **** -1738:/usr/lib/avr/include/avr/pgmspace.h **** Copy src to string dst of size siz. At most siz-1 characters will be -1739:/usr/lib/avr/include/avr/pgmspace.h **** copied. Always NULL terminates (unless siz == 0). -1740:/usr/lib/avr/include/avr/pgmspace.h **** -1741:/usr/lib/avr/include/avr/pgmspace.h **** \returns The strlcpy_PF() function returns strlen(src). If retval >= siz, -1742:/usr/lib/avr/include/avr/pgmspace.h **** truncation occurred. The contents of RAMPZ SFR are undefined when the -1743:/usr/lib/avr/include/avr/pgmspace.h **** function returns. */ -1744:/usr/lib/avr/include/avr/pgmspace.h **** extern size_t strlcpy_PF(char *dst, uint_farptr_t src, size_t siz); -1745:/usr/lib/avr/include/avr/pgmspace.h **** -1746:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1747:/usr/lib/avr/include/avr/pgmspace.h **** \fn int memcmp_PF(const void *s1, uint_farptr_t s2, size_t len) -1748:/usr/lib/avr/include/avr/pgmspace.h **** \brief Compare memory areas -1749:/usr/lib/avr/include/avr/pgmspace.h **** -1750:/usr/lib/avr/include/avr/pgmspace.h **** The memcmp_PF() function compares the first \p len bytes of the memory -1751:/usr/lib/avr/include/avr/pgmspace.h **** areas \p s1 and flash \p s2. The comparision is performed using unsigned -1752:/usr/lib/avr/include/avr/pgmspace.h **** char operations. It is an equivalent of memcmp_P() function, except -1753:/usr/lib/avr/include/avr/pgmspace.h **** that it is capable working on all FLASH including the exteded area -1754:/usr/lib/avr/include/avr/pgmspace.h **** above 64kB. -1755:/usr/lib/avr/include/avr/pgmspace.h **** -1756:/usr/lib/avr/include/avr/pgmspace.h **** \returns The memcmp_PF() function returns an integer less than, equal -1757:/usr/lib/avr/include/avr/pgmspace.h **** to, or greater than zero if the first \p len bytes of \p s1 is found, -1758:/usr/lib/avr/include/avr/pgmspace.h **** respectively, to be less than, to match, or be greater than the first -1759:/usr/lib/avr/include/avr/pgmspace.h **** \p len bytes of \p s2. */ -1760:/usr/lib/avr/include/avr/pgmspace.h **** extern int memcmp_PF(const void *, uint_farptr_t, size_t) __ATTR_PURE__; -1761:/usr/lib/avr/include/avr/pgmspace.h **** -1762:/usr/lib/avr/include/avr/pgmspace.h **** #ifdef __DOXYGEN__ -1763:/usr/lib/avr/include/avr/pgmspace.h **** /** \ingroup avr_pgmspace -1764:/usr/lib/avr/include/avr/pgmspace.h **** \fn size_t strlen_P(const char *src) -1765:/usr/lib/avr/include/avr/pgmspace.h **** -1766:/usr/lib/avr/include/avr/pgmspace.h **** The strlen_P() function is similar to strlen(), except that src is a -1767:/usr/lib/avr/include/avr/pgmspace.h **** pointer to a string in program space. -1768:/usr/lib/avr/include/avr/pgmspace.h **** -1769:/usr/lib/avr/include/avr/pgmspace.h **** \returns The strlen_P() function returns the number of characters in src. -1770:/usr/lib/avr/include/avr/pgmspace.h **** -1771:/usr/lib/avr/include/avr/pgmspace.h **** \note strlen_P() is implemented as an inline function in the avr/pgmspace.h -1772:/usr/lib/avr/include/avr/pgmspace.h **** header file, which will check if the length of the string is a constant -1773:/usr/lib/avr/include/avr/pgmspace.h **** and known at compile time. If it is not known at compile time, the macro -1774:/usr/lib/avr/include/avr/pgmspace.h **** will issue a call to __strlen_P() which will then calculate the length -1775:/usr/lib/avr/include/avr/pgmspace.h **** of the string as normal. -1776:/usr/lib/avr/include/avr/pgmspace.h **** */ -1777:/usr/lib/avr/include/avr/pgmspace.h **** static inline size_t strlen_P(const char * s); -1778:/usr/lib/avr/include/avr/pgmspace.h **** #else -1779:/usr/lib/avr/include/avr/pgmspace.h **** extern size_t __strlen_P(const char *) __ATTR_CONST__; /* internal helper function */ -1780:/usr/lib/avr/include/avr/pgmspace.h **** __attribute__((__always_inline__)) static __inline__ size_t strlen_P(const char * s); -1781:/usr/lib/avr/include/avr/pgmspace.h **** static __inline__ size_t strlen_P(const char *s) { -1782:/usr/lib/avr/include/avr/pgmspace.h **** return __builtin_constant_p(__builtin_strlen(s)) -1783:/usr/lib/avr/include/avr/pgmspace.h **** ? __builtin_strlen(s) : __strlen_P(s); - 1445 .LM123: - 1446 0476 CB01 movw r24,r22 - 1447 0478 0E94 0000 call __strlen_P - 1448 .LBE79: - 1449 .LBE78: - 1451 .Ltext4: - 1453 .LM124: - 1454 047c AC01 movw r20,r24 - 1455 047e B801 movw r22,r16 - 1456 0480 CE01 movw r24,r28 - 1457 0482 0E94 0000 call _ZN6String4copyEPK19__FlashStringHelperj - 1458 0486 00C0 rjmp .L51 - 1459 .L50: - 249:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** else invalidate(); - 1461 .LM125: - 1462 0488 0E94 0000 call _ZN6String10invalidateEv - 1463 .L51: - 250:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 251:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return *this; - 252:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 1465 .LM126: - 1466 048c CE01 movw r24,r28 - 1467 /* epilogue start */ - 1468 048e DF91 pop r29 - 1469 0490 CF91 pop r28 - 1470 0492 1F91 pop r17 - 1471 0494 0F91 pop r16 - 1472 0496 0895 ret - 1474 .Lscope23: - 1476 .stabd 78,0,0 - 1480 .global _ZN6StringC2EPK19__FlashStringHelper - 1482 _ZN6StringC2EPK19__FlashStringHelper: - 1483 .stabd 46,0,0 - 40:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 1485 .LM127: - 1486 .LFBB24: - 1487 /* prologue: function */ - 1488 /* frame size = 0 */ - 1489 /* stack size = 0 */ - 1490 .L__stack_usage = 0 - 1491 .LBB80: - 1492 .LBB81: - 1493 .LBB82: - 133:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** capacity = 0; - 1495 .LM128: - 1496 0498 FC01 movw r30,r24 - 1497 049a 1182 std Z+1,__zero_reg__ - 1498 049c 1082 st Z,__zero_reg__ - 134:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** len = 0; - 1500 .LM129: - 1501 049e 1382 std Z+3,__zero_reg__ - 1502 04a0 1282 std Z+2,__zero_reg__ - 135:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 1504 .LM130: - 1505 04a2 1582 std Z+5,__zero_reg__ - 1506 04a4 1482 std Z+4,__zero_reg__ - 1507 .LBE82: - 1508 .LBE81: - 43:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 1510 .LM131: - 1511 04a6 0C94 0000 jmp _ZN6StringaSEPK19__FlashStringHelper - 1512 .LBE80: - 1514 .Lscope24: - 1516 .stabd 78,0,0 - 1517 .global _ZN6StringC1EPK19__FlashStringHelper - 1518 .set _ZN6StringC1EPK19__FlashStringHelper,_ZN6StringC2EPK19__FlashStringHelper - 1523 .global _ZN6String6concatEPKcj - 1525 _ZN6String6concatEPKcj: - 1526 .stabd 46,0,0 - 253:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 254:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** /*********************************************/ - 255:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** /* concat */ - 256:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** /*********************************************/ - 257:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 258:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** unsigned char String::concat(const String &s) - 259:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 260:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return concat(s.buffer, s.len); - 261:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 262:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 263:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** unsigned char String::concat(const char *cstr, unsigned int length) - 264:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 1528 .LM132: - 1529 .LFBB25: - 1530 04aa EF92 push r14 - 1531 04ac FF92 push r15 - 1532 04ae 0F93 push r16 - 1533 04b0 1F93 push r17 - 1534 04b2 CF93 push r28 - 1535 04b4 DF93 push r29 - 1536 /* prologue: function */ - 1537 /* frame size = 0 */ - 1538 /* stack size = 6 */ - 1539 .L__stack_usage = 6 - 265:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** unsigned int newlen = len + length; - 266:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (!cstr) return 0; - 1541 .LM133: - 1542 04b6 6115 cp r22,__zero_reg__ - 1543 04b8 7105 cpc r23,__zero_reg__ - 1544 04ba 01F4 brne .L54 - 1545 .L56: - 1546 04bc 80E0 ldi r24,0 - 1547 04be 00C0 rjmp .L55 - 1548 .L54: - 267:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (length == 0) return 1; - 1550 .LM134: - 1551 04c0 4115 cp r20,__zero_reg__ - 1552 04c2 5105 cpc r21,__zero_reg__ - 1553 04c4 01F0 breq .L57 - 1554 04c6 7B01 movw r14,r22 - 1555 04c8 EC01 movw r28,r24 - 265:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** unsigned int newlen = len + length; - 1557 .LM135: - 1558 04ca 8C81 ldd r24,Y+4 - 1559 04cc 9D81 ldd r25,Y+5 - 1560 04ce 8A01 movw r16,r20 - 1561 04d0 080F add r16,r24 - 1562 04d2 191F adc r17,r25 - 268:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (!reserve(newlen)) return 0; - 1564 .LM136: - 1565 04d4 B801 movw r22,r16 - 1566 04d6 CE01 movw r24,r28 - 1567 04d8 0E94 0000 call _ZN6String7reserveEj - 1568 04dc 8823 tst r24 - 1569 04de 01F0 breq .L56 - 269:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** strcpy(buffer + len, cstr); - 1571 .LM137: - 1572 04e0 2881 ld r18,Y - 1573 04e2 3981 ldd r19,Y+1 - 1574 04e4 8C81 ldd r24,Y+4 - 1575 04e6 9D81 ldd r25,Y+5 - 1576 04e8 B701 movw r22,r14 - 1577 04ea 820F add r24,r18 - 1578 04ec 931F adc r25,r19 - 1579 04ee 0E94 0000 call strcpy - 270:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** len = newlen; - 1581 .LM138: - 1582 04f2 1D83 std Y+5,r17 - 1583 04f4 0C83 std Y+4,r16 - 1584 .L57: - 267:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (!reserve(newlen)) return 0; - 1586 .LM139: - 1587 04f6 81E0 ldi r24,lo8(1) - 1588 .L55: - 1589 /* epilogue start */ - 271:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return 1; - 272:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 1591 .LM140: - 1592 04f8 DF91 pop r29 - 1593 04fa CF91 pop r28 - 1594 04fc 1F91 pop r17 - 1595 04fe 0F91 pop r16 - 1596 0500 FF90 pop r15 - 1597 0502 EF90 pop r14 - 1598 0504 0895 ret - 1603 .Lscope25: - 1605 .stabd 78,0,0 - 1609 .global _ZN6String6concatERKS_ - 1611 _ZN6String6concatERKS_: - 1612 .stabd 46,0,0 - 259:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return concat(s.buffer, s.len); - 1614 .LM141: - 1615 .LFBB26: - 1616 /* prologue: function */ - 1617 /* frame size = 0 */ - 1618 /* stack size = 0 */ - 1619 .L__stack_usage = 0 - 260:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 1621 .LM142: - 1622 0506 FB01 movw r30,r22 - 1623 0508 4481 ldd r20,Z+4 - 1624 050a 5581 ldd r21,Z+5 - 1625 050c 6081 ld r22,Z - 1626 050e 7181 ldd r23,Z+1 - 1627 0510 0C94 0000 jmp _ZN6String6concatEPKcj - 1629 .Lscope26: - 1631 .stabd 78,0,0 - 1635 .global _ZN6String6concatEPKc - 1637 _ZN6String6concatEPKc: - 1638 .stabd 46,0,0 - 273:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 274:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** unsigned char String::concat(const char *cstr) - 275:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 1640 .LM143: - 1641 .LFBB27: - 1642 /* prologue: function */ - 1643 /* frame size = 0 */ - 1644 /* stack size = 0 */ - 1645 .L__stack_usage = 0 - 276:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (!cstr) return 0; - 1647 .LM144: - 1648 0514 6115 cp r22,__zero_reg__ - 1649 0516 7105 cpc r23,__zero_reg__ - 1650 0518 01F0 breq .L63 - 277:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return concat(cstr, strlen(cstr)); - 1652 .LM145: - 1653 051a FB01 movw r30,r22 - 1654 0: - 1655 051c 0190 ld __tmp_reg__,Z+ - 1656 051e 0020 tst __tmp_reg__ - 1657 0520 01F4 brne 0b - 1658 0522 3197 sbiw r30,1 - 1659 0524 AF01 movw r20,r30 - 1660 0526 461B sub r20,r22 - 1661 0528 570B sbc r21,r23 - 1662 052a 0C94 0000 jmp _ZN6String6concatEPKcj - 1663 .L63: - 278:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 1665 .LM146: - 1666 052e 80E0 ldi r24,0 - 1667 0530 0895 ret - 1669 .Lscope27: - 1671 .stabd 78,0,0 - 1675 .global _ZN6String6concatEc - 1677 _ZN6String6concatEc: - 1678 .stabd 46,0,0 - 279:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 280:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** unsigned char String::concat(char c) - 281:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 1680 .LM147: - 1681 .LFBB28: - 1682 0532 CF93 push r28 - 1683 0534 DF93 push r29 - 1684 0536 00D0 rcall . - 1685 0538 CDB7 in r28,__SP_L__ - 1686 053a DEB7 in r29,__SP_H__ - 1687 /* prologue: function */ - 1688 /* frame size = 2 */ - 1689 /* stack size = 4 */ - 1690 .L__stack_usage = 4 - 282:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** char buf[2]; - 283:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** buf[0] = c; - 1692 .LM148: - 1693 053c 6983 std Y+1,r22 - 284:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** buf[1] = 0; - 1695 .LM149: - 1696 053e 1A82 std Y+2,__zero_reg__ - 285:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return concat(buf, 1); - 1698 .LM150: - 1699 0540 41E0 ldi r20,lo8(1) - 1700 0542 50E0 ldi r21,0 - 1701 0544 BE01 movw r22,r28 - 1702 0546 6F5F subi r22,-1 - 1703 0548 7F4F sbci r23,-1 - 1704 054a 0E94 0000 call _ZN6String6concatEPKcj - 1705 /* epilogue start */ - 286:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 1707 .LM151: - 1708 054e 0F90 pop __tmp_reg__ - 1709 0550 0F90 pop __tmp_reg__ - 1710 0552 DF91 pop r29 - 1711 0554 CF91 pop r28 - 1712 0556 0895 ret - 1717 .Lscope28: - 1719 .stabd 78,0,0 - 1723 .global _ZN6String6concatEh - 1725 _ZN6String6concatEh: - 1726 .stabd 46,0,0 - 287:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 288:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** unsigned char String::concat(unsigned char num) - 289:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 1728 .LM152: - 1729 .LFBB29: - 1730 0558 EF92 push r14 - 1731 055a FF92 push r15 - 1732 055c 0F93 push r16 - 1733 055e 1F93 push r17 - 1734 0560 CF93 push r28 - 1735 0562 DF93 push r29 - 1736 0564 00D0 rcall . - 1737 0566 00D0 rcall . - 1738 0568 CDB7 in r28,__SP_L__ - 1739 056a DEB7 in r29,__SP_H__ - 1740 /* prologue: function */ - 1741 /* frame size = 4 */ - 1742 /* stack size = 10 */ - 1743 .L__stack_usage = 10 - 1744 056c 7C01 movw r14,r24 - 1745 056e 862F mov r24,r22 - 290:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** char buf[1 + 3 * sizeof(unsigned char)]; - 291:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** itoa(num, buf, 10); - 1747 .LM153: - 1748 0570 4AE0 ldi r20,lo8(10) - 1749 0572 50E0 ldi r21,0 - 1750 0574 8E01 movw r16,r28 - 1751 0576 0F5F subi r16,-1 - 1752 0578 1F4F sbci r17,-1 - 1753 057a B801 movw r22,r16 - 1754 057c 90E0 ldi r25,0 - 1755 057e 0E94 0000 call itoa - 292:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return concat(buf, strlen(buf)); - 1757 .LM154: - 1758 0582 F801 movw r30,r16 - 1759 0: - 1760 0584 0190 ld __tmp_reg__,Z+ - 1761 0586 0020 tst __tmp_reg__ - 1762 0588 01F4 brne 0b - 1763 058a 3197 sbiw r30,1 - 1764 058c AF01 movw r20,r30 - 1765 058e 401B sub r20,r16 - 1766 0590 510B sbc r21,r17 - 1767 0592 B801 movw r22,r16 - 1768 0594 C701 movw r24,r14 - 1769 0596 0E94 0000 call _ZN6String6concatEPKcj - 1770 /* epilogue start */ - 293:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 1772 .LM155: - 1773 059a 0F90 pop __tmp_reg__ - 1774 059c 0F90 pop __tmp_reg__ - 1775 059e 0F90 pop __tmp_reg__ - 1776 05a0 0F90 pop __tmp_reg__ - 1777 05a2 DF91 pop r29 - 1778 05a4 CF91 pop r28 - 1779 05a6 1F91 pop r17 - 1780 05a8 0F91 pop r16 - 1781 05aa FF90 pop r15 - 1782 05ac EF90 pop r14 - 1783 05ae 0895 ret - 1788 .Lscope29: - 1790 .stabd 78,0,0 - 1794 .global _ZN6String6concatEi - 1796 _ZN6String6concatEi: - 1797 .stabd 46,0,0 - 294:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 295:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** unsigned char String::concat(int num) - 296:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 1799 .LM156: - 1800 .LFBB30: - 1801 05b0 EF92 push r14 - 1802 05b2 FF92 push r15 - 1803 05b4 0F93 push r16 - 1804 05b6 1F93 push r17 - 1805 05b8 CF93 push r28 - 1806 05ba DF93 push r29 - 1807 05bc CDB7 in r28,__SP_L__ - 1808 05be DEB7 in r29,__SP_H__ - 1809 05c0 2897 sbiw r28,8 - 1810 05c2 0FB6 in __tmp_reg__,__SREG__ - 1811 05c4 F894 cli - 1812 05c6 DEBF out __SP_H__,r29 - 1813 05c8 0FBE out __SREG__,__tmp_reg__ - 1814 05ca CDBF out __SP_L__,r28 - 1815 /* prologue: function */ - 1816 /* frame size = 8 */ - 1817 /* stack size = 14 */ - 1818 .L__stack_usage = 14 - 1819 05cc 7C01 movw r14,r24 - 1820 05ce CB01 movw r24,r22 - 297:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** char buf[2 + 3 * sizeof(int)]; - 298:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** itoa(num, buf, 10); - 1822 .LM157: - 1823 05d0 4AE0 ldi r20,lo8(10) - 1824 05d2 50E0 ldi r21,0 - 1825 05d4 8E01 movw r16,r28 - 1826 05d6 0F5F subi r16,-1 - 1827 05d8 1F4F sbci r17,-1 - 1828 05da B801 movw r22,r16 - 1829 05dc 0E94 0000 call itoa - 299:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return concat(buf, strlen(buf)); - 1831 .LM158: - 1832 05e0 F801 movw r30,r16 - 1833 0: - 1834 05e2 0190 ld __tmp_reg__,Z+ - 1835 05e4 0020 tst __tmp_reg__ - 1836 05e6 01F4 brne 0b - 1837 05e8 3197 sbiw r30,1 - 1838 05ea AF01 movw r20,r30 - 1839 05ec 401B sub r20,r16 - 1840 05ee 510B sbc r21,r17 - 1841 05f0 B801 movw r22,r16 - 1842 05f2 C701 movw r24,r14 - 1843 05f4 0E94 0000 call _ZN6String6concatEPKcj - 1844 /* epilogue start */ - 300:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 1846 .LM159: - 1847 05f8 2896 adiw r28,8 - 1848 05fa 0FB6 in __tmp_reg__,__SREG__ - 1849 05fc F894 cli - 1850 05fe DEBF out __SP_H__,r29 - 1851 0600 0FBE out __SREG__,__tmp_reg__ - 1852 0602 CDBF out __SP_L__,r28 - 1853 0604 DF91 pop r29 - 1854 0606 CF91 pop r28 - 1855 0608 1F91 pop r17 - 1856 060a 0F91 pop r16 - 1857 060c FF90 pop r15 - 1858 060e EF90 pop r14 - 1859 0610 0895 ret - 1864 .Lscope30: - 1866 .stabd 78,0,0 - 1870 .global _ZN6String6concatEj - 1872 _ZN6String6concatEj: - 1873 .stabd 46,0,0 - 301:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 302:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** unsigned char String::concat(unsigned int num) - 303:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 1875 .LM160: - 1876 .LFBB31: - 1877 0612 EF92 push r14 - 1878 0614 FF92 push r15 - 1879 0616 0F93 push r16 - 1880 0618 1F93 push r17 - 1881 061a CF93 push r28 - 1882 061c DF93 push r29 - 1883 061e CDB7 in r28,__SP_L__ - 1884 0620 DEB7 in r29,__SP_H__ - 1885 0622 2797 sbiw r28,7 - 1886 0624 0FB6 in __tmp_reg__,__SREG__ - 1887 0626 F894 cli - 1888 0628 DEBF out __SP_H__,r29 - 1889 062a 0FBE out __SREG__,__tmp_reg__ - 1890 062c CDBF out __SP_L__,r28 - 1891 /* prologue: function */ - 1892 /* frame size = 7 */ - 1893 /* stack size = 13 */ - 1894 .L__stack_usage = 13 - 1895 062e 7C01 movw r14,r24 - 1896 0630 CB01 movw r24,r22 - 304:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** char buf[1 + 3 * sizeof(unsigned int)]; - 305:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** utoa(num, buf, 10); - 1898 .LM161: - 1899 0632 4AE0 ldi r20,lo8(10) - 1900 0634 50E0 ldi r21,0 - 1901 0636 8E01 movw r16,r28 - 1902 0638 0F5F subi r16,-1 - 1903 063a 1F4F sbci r17,-1 - 1904 063c B801 movw r22,r16 - 1905 063e 0E94 0000 call utoa - 306:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return concat(buf, strlen(buf)); - 1907 .LM162: - 1908 0642 F801 movw r30,r16 - 1909 0: - 1910 0644 0190 ld __tmp_reg__,Z+ - 1911 0646 0020 tst __tmp_reg__ - 1912 0648 01F4 brne 0b - 1913 064a 3197 sbiw r30,1 - 1914 064c AF01 movw r20,r30 - 1915 064e 401B sub r20,r16 - 1916 0650 510B sbc r21,r17 - 1917 0652 B801 movw r22,r16 - 1918 0654 C701 movw r24,r14 - 1919 0656 0E94 0000 call _ZN6String6concatEPKcj - 1920 /* epilogue start */ - 307:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 1922 .LM163: - 1923 065a 2796 adiw r28,7 - 1924 065c 0FB6 in __tmp_reg__,__SREG__ - 1925 065e F894 cli - 1926 0660 DEBF out __SP_H__,r29 - 1927 0662 0FBE out __SREG__,__tmp_reg__ - 1928 0664 CDBF out __SP_L__,r28 - 1929 0666 DF91 pop r29 - 1930 0668 CF91 pop r28 - 1931 066a 1F91 pop r17 - 1932 066c 0F91 pop r16 - 1933 066e FF90 pop r15 - 1934 0670 EF90 pop r14 - 1935 0672 0895 ret - 1940 .Lscope31: - 1942 .stabd 78,0,0 - 1946 .global _ZN6String6concatEl - 1948 _ZN6String6concatEl: - 1949 .stabd 46,0,0 - 308:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 309:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** unsigned char String::concat(long num) - 310:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 1951 .LM164: - 1952 .LFBB32: - 1953 0674 EF92 push r14 - 1954 0676 FF92 push r15 - 1955 0678 0F93 push r16 - 1956 067a 1F93 push r17 - 1957 067c CF93 push r28 - 1958 067e DF93 push r29 - 1959 0680 CDB7 in r28,__SP_L__ - 1960 0682 DEB7 in r29,__SP_H__ - 1961 0684 2E97 sbiw r28,14 - 1962 0686 0FB6 in __tmp_reg__,__SREG__ - 1963 0688 F894 cli - 1964 068a DEBF out __SP_H__,r29 - 1965 068c 0FBE out __SREG__,__tmp_reg__ - 1966 068e CDBF out __SP_L__,r28 - 1967 /* prologue: function */ - 1968 /* frame size = 14 */ - 1969 /* stack size = 20 */ - 1970 .L__stack_usage = 20 - 1971 0690 7C01 movw r14,r24 - 1972 0692 CB01 movw r24,r22 - 1973 0694 BA01 movw r22,r20 - 311:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** char buf[2 + 3 * sizeof(long)]; - 312:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** ltoa(num, buf, 10); - 1975 .LM165: - 1976 0696 2AE0 ldi r18,lo8(10) - 1977 0698 30E0 ldi r19,0 - 1978 069a 8E01 movw r16,r28 - 1979 069c 0F5F subi r16,-1 - 1980 069e 1F4F sbci r17,-1 - 1981 06a0 A801 movw r20,r16 - 1982 06a2 0E94 0000 call ltoa - 313:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return concat(buf, strlen(buf)); - 1984 .LM166: - 1985 06a6 F801 movw r30,r16 - 1986 0: - 1987 06a8 0190 ld __tmp_reg__,Z+ - 1988 06aa 0020 tst __tmp_reg__ - 1989 06ac 01F4 brne 0b - 1990 06ae 3197 sbiw r30,1 - 1991 06b0 AF01 movw r20,r30 - 1992 06b2 401B sub r20,r16 - 1993 06b4 510B sbc r21,r17 - 1994 06b6 B801 movw r22,r16 - 1995 06b8 C701 movw r24,r14 - 1996 06ba 0E94 0000 call _ZN6String6concatEPKcj - 1997 /* epilogue start */ - 314:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 1999 .LM167: - 2000 06be 2E96 adiw r28,14 - 2001 06c0 0FB6 in __tmp_reg__,__SREG__ - 2002 06c2 F894 cli - 2003 06c4 DEBF out __SP_H__,r29 - 2004 06c6 0FBE out __SREG__,__tmp_reg__ - 2005 06c8 CDBF out __SP_L__,r28 - 2006 06ca DF91 pop r29 - 2007 06cc CF91 pop r28 - 2008 06ce 1F91 pop r17 - 2009 06d0 0F91 pop r16 - 2010 06d2 FF90 pop r15 - 2011 06d4 EF90 pop r14 - 2012 06d6 0895 ret - 2017 .Lscope32: - 2019 .stabd 78,0,0 - 2023 .global _ZN6String6concatEm - 2025 _ZN6String6concatEm: - 2026 .stabd 46,0,0 - 315:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 316:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** unsigned char String::concat(unsigned long num) - 317:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 2028 .LM168: - 2029 .LFBB33: - 2030 06d8 EF92 push r14 - 2031 06da FF92 push r15 - 2032 06dc 0F93 push r16 - 2033 06de 1F93 push r17 - 2034 06e0 CF93 push r28 - 2035 06e2 DF93 push r29 - 2036 06e4 CDB7 in r28,__SP_L__ - 2037 06e6 DEB7 in r29,__SP_H__ - 2038 06e8 2D97 sbiw r28,13 - 2039 06ea 0FB6 in __tmp_reg__,__SREG__ - 2040 06ec F894 cli - 2041 06ee DEBF out __SP_H__,r29 - 2042 06f0 0FBE out __SREG__,__tmp_reg__ - 2043 06f2 CDBF out __SP_L__,r28 - 2044 /* prologue: function */ - 2045 /* frame size = 13 */ - 2046 /* stack size = 19 */ - 2047 .L__stack_usage = 19 - 2048 06f4 7C01 movw r14,r24 - 2049 06f6 CB01 movw r24,r22 - 2050 06f8 BA01 movw r22,r20 - 318:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** char buf[1 + 3 * sizeof(unsigned long)]; - 319:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** ultoa(num, buf, 10); - 2052 .LM169: - 2053 06fa 2AE0 ldi r18,lo8(10) - 2054 06fc 30E0 ldi r19,0 - 2055 06fe 8E01 movw r16,r28 - 2056 0700 0F5F subi r16,-1 - 2057 0702 1F4F sbci r17,-1 - 2058 0704 A801 movw r20,r16 - 2059 0706 0E94 0000 call ultoa - 320:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return concat(buf, strlen(buf)); - 2061 .LM170: - 2062 070a F801 movw r30,r16 - 2063 0: - 2064 070c 0190 ld __tmp_reg__,Z+ - 2065 070e 0020 tst __tmp_reg__ - 2066 0710 01F4 brne 0b - 2067 0712 3197 sbiw r30,1 - 2068 0714 AF01 movw r20,r30 - 2069 0716 401B sub r20,r16 - 2070 0718 510B sbc r21,r17 - 2071 071a B801 movw r22,r16 - 2072 071c C701 movw r24,r14 - 2073 071e 0E94 0000 call _ZN6String6concatEPKcj - 2074 /* epilogue start */ - 321:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 2076 .LM171: - 2077 0722 2D96 adiw r28,13 - 2078 0724 0FB6 in __tmp_reg__,__SREG__ - 2079 0726 F894 cli - 2080 0728 DEBF out __SP_H__,r29 - 2081 072a 0FBE out __SREG__,__tmp_reg__ - 2082 072c CDBF out __SP_L__,r28 - 2083 072e DF91 pop r29 - 2084 0730 CF91 pop r28 - 2085 0732 1F91 pop r17 - 2086 0734 0F91 pop r16 - 2087 0736 FF90 pop r15 - 2088 0738 EF90 pop r14 - 2089 073a 0895 ret - 2094 .Lscope33: - 2096 .stabd 78,0,0 - 2100 .global _ZN6String6concatEf - 2102 _ZN6String6concatEf: - 2103 .stabd 46,0,0 - 322:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 323:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** unsigned char String::concat(float num) - 324:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 2105 .LM172: - 2106 .LFBB34: - 2107 073c EF92 push r14 - 2108 073e FF92 push r15 - 2109 0740 0F93 push r16 - 2110 0742 1F93 push r17 - 2111 0744 CF93 push r28 - 2112 0746 DF93 push r29 - 2113 0748 CDB7 in r28,__SP_L__ - 2114 074a DEB7 in r29,__SP_H__ - 2115 074c 6497 sbiw r28,20 - 2116 074e 0FB6 in __tmp_reg__,__SREG__ - 2117 0750 F894 cli - 2118 0752 DEBF out __SP_H__,r29 - 2119 0754 0FBE out __SREG__,__tmp_reg__ - 2120 0756 CDBF out __SP_L__,r28 - 2121 /* prologue: function */ - 2122 /* frame size = 20 */ - 2123 /* stack size = 26 */ - 2124 .L__stack_usage = 26 - 2125 0758 7C01 movw r14,r24 - 2126 075a CB01 movw r24,r22 - 2127 075c BA01 movw r22,r20 - 325:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** char buf[20]; - 326:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** char* string = dtostrf(num, 4, 2, buf); - 2129 .LM173: - 2130 075e 8E01 movw r16,r28 - 2131 0760 0F5F subi r16,-1 - 2132 0762 1F4F sbci r17,-1 - 2133 0764 22E0 ldi r18,lo8(2) - 2134 0766 44E0 ldi r20,lo8(4) - 2135 0768 0E94 0000 call dtostrf - 327:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return concat(string, strlen(string)); - 2137 .LM174: - 2138 076c FC01 movw r30,r24 - 2139 0: - 2140 076e 0190 ld __tmp_reg__,Z+ - 2141 0770 0020 tst __tmp_reg__ - 2142 0772 01F4 brne 0b - 2143 0774 3197 sbiw r30,1 - 2144 0776 AF01 movw r20,r30 - 2145 0778 481B sub r20,r24 - 2146 077a 590B sbc r21,r25 - 2147 077c BC01 movw r22,r24 - 2148 077e C701 movw r24,r14 - 2149 0780 0E94 0000 call _ZN6String6concatEPKcj - 2150 /* epilogue start */ - 328:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 2152 .LM175: - 2153 0784 6496 adiw r28,20 - 2154 0786 0FB6 in __tmp_reg__,__SREG__ - 2155 0788 F894 cli - 2156 078a DEBF out __SP_H__,r29 - 2157 078c 0FBE out __SREG__,__tmp_reg__ - 2158 078e CDBF out __SP_L__,r28 - 2159 0790 DF91 pop r29 - 2160 0792 CF91 pop r28 - 2161 0794 1F91 pop r17 - 2162 0796 0F91 pop r16 - 2163 0798 FF90 pop r15 - 2164 079a EF90 pop r14 - 2165 079c 0895 ret - 2171 .Lscope34: - 2173 .stabd 78,0,0 - 2177 .global _ZN6String6concatEd - 2179 _ZN6String6concatEd: - 2180 .stabd 46,0,0 - 329:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 330:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** unsigned char String::concat(double num) - 331:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 2182 .LM176: - 2183 .LFBB35: - 2184 079e EF92 push r14 - 2185 07a0 FF92 push r15 - 2186 07a2 0F93 push r16 - 2187 07a4 1F93 push r17 - 2188 07a6 CF93 push r28 - 2189 07a8 DF93 push r29 - 2190 07aa CDB7 in r28,__SP_L__ - 2191 07ac DEB7 in r29,__SP_H__ - 2192 07ae 6497 sbiw r28,20 - 2193 07b0 0FB6 in __tmp_reg__,__SREG__ - 2194 07b2 F894 cli - 2195 07b4 DEBF out __SP_H__,r29 - 2196 07b6 0FBE out __SREG__,__tmp_reg__ - 2197 07b8 CDBF out __SP_L__,r28 - 2198 /* prologue: function */ - 2199 /* frame size = 20 */ - 2200 /* stack size = 26 */ - 2201 .L__stack_usage = 26 - 2202 07ba 7C01 movw r14,r24 - 2203 07bc CB01 movw r24,r22 - 2204 07be BA01 movw r22,r20 - 332:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** char buf[20]; - 333:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** char* string = dtostrf(num, 4, 2, buf); - 2206 .LM177: - 2207 07c0 8E01 movw r16,r28 - 2208 07c2 0F5F subi r16,-1 - 2209 07c4 1F4F sbci r17,-1 - 2210 07c6 22E0 ldi r18,lo8(2) - 2211 07c8 44E0 ldi r20,lo8(4) - 2212 07ca 0E94 0000 call dtostrf - 334:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return concat(string, strlen(string)); - 2214 .LM178: - 2215 07ce FC01 movw r30,r24 - 2216 0: - 2217 07d0 0190 ld __tmp_reg__,Z+ - 2218 07d2 0020 tst __tmp_reg__ - 2219 07d4 01F4 brne 0b - 2220 07d6 3197 sbiw r30,1 - 2221 07d8 AF01 movw r20,r30 - 2222 07da 481B sub r20,r24 - 2223 07dc 590B sbc r21,r25 - 2224 07de BC01 movw r22,r24 - 2225 07e0 C701 movw r24,r14 - 2226 07e2 0E94 0000 call _ZN6String6concatEPKcj - 2227 /* epilogue start */ - 335:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 2229 .LM179: - 2230 07e6 6496 adiw r28,20 - 2231 07e8 0FB6 in __tmp_reg__,__SREG__ - 2232 07ea F894 cli - 2233 07ec DEBF out __SP_H__,r29 - 2234 07ee 0FBE out __SREG__,__tmp_reg__ - 2235 07f0 CDBF out __SP_L__,r28 - 2236 07f2 DF91 pop r29 - 2237 07f4 CF91 pop r28 - 2238 07f6 1F91 pop r17 - 2239 07f8 0F91 pop r16 - 2240 07fa FF90 pop r15 - 2241 07fc EF90 pop r14 - 2242 07fe 0895 ret - 2248 .Lscope35: - 2250 .stabd 78,0,0 - 2254 .global _ZN6String6concatEPK19__FlashStringHelper - 2256 _ZN6String6concatEPK19__FlashStringHelper: - 2257 .stabd 46,0,0 - 336:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 337:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** unsigned char String::concat(const __FlashStringHelper * str) - 338:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 2259 .LM180: - 2260 .LFBB36: - 2261 0800 EF92 push r14 - 2262 0802 FF92 push r15 - 2263 0804 0F93 push r16 - 2264 0806 1F93 push r17 - 2265 0808 CF93 push r28 - 2266 080a DF93 push r29 - 2267 /* prologue: function */ - 2268 /* frame size = 0 */ - 2269 /* stack size = 6 */ - 2270 .L__stack_usage = 6 - 339:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (!str) return 0; - 2272 .LM181: - 2273 080c 6115 cp r22,__zero_reg__ - 2274 080e 7105 cpc r23,__zero_reg__ - 2275 0810 01F4 brne .L73 - 2276 .L75: - 2277 0812 80E0 ldi r24,0 - 2278 0814 00C0 rjmp .L74 - 2279 .L73: - 2280 0816 8B01 movw r16,r22 - 2281 0818 EC01 movw r28,r24 - 2282 .LBB83: - 2283 .LBB84: - 2285 .Ltext5: - 2287 .LM182: - 2288 081a CB01 movw r24,r22 - 2289 081c 0E94 0000 call __strlen_P - 2290 .LBE84: - 2291 .LBE83: - 2293 .Ltext6: - 340:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** int length = strlen_P((const char *) str); - 341:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (length == 0) return 1; - 2295 .LM183: - 2296 0820 0097 sbiw r24,0 - 2297 0822 01F0 breq .L76 - 342:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** unsigned int newlen = len + length; - 2299 .LM184: - 2300 0824 2C81 ldd r18,Y+4 - 2301 0826 3D81 ldd r19,Y+5 - 2302 0828 7C01 movw r14,r24 - 2303 082a E20E add r14,r18 - 2304 082c F31E adc r15,r19 - 343:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (!reserve(newlen)) return 0; - 2306 .LM185: - 2307 082e B701 movw r22,r14 - 2308 0830 CE01 movw r24,r28 - 2309 0832 0E94 0000 call _ZN6String7reserveEj - 2310 0836 8823 tst r24 - 2311 0838 01F0 breq .L75 - 344:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** strcpy_P(buffer + len, (const char *) str); - 2313 .LM186: - 2314 083a 2881 ld r18,Y - 2315 083c 3981 ldd r19,Y+1 - 2316 083e 8C81 ldd r24,Y+4 - 2317 0840 9D81 ldd r25,Y+5 - 2318 0842 B801 movw r22,r16 - 2319 0844 820F add r24,r18 - 2320 0846 931F adc r25,r19 - 2321 0848 0E94 0000 call strcpy_P - 345:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** len = newlen; - 2323 .LM187: - 2324 084c FD82 std Y+5,r15 - 2325 084e EC82 std Y+4,r14 - 2326 .L76: - 341:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** unsigned int newlen = len + length; - 2328 .LM188: - 2329 0850 81E0 ldi r24,lo8(1) - 2330 .L74: - 2331 /* epilogue start */ - 346:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return 1; - 347:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 2333 .LM189: - 2334 0852 DF91 pop r29 - 2335 0854 CF91 pop r28 - 2336 0856 1F91 pop r17 - 2337 0858 0F91 pop r16 - 2338 085a FF90 pop r15 - 2339 085c EF90 pop r14 - 2340 085e 0895 ret - 2345 .Lscope36: - 2347 .stabd 78,0,0 - 2351 .global _ZplRK15StringSumHelperRK6String - 2353 _ZplRK15StringSumHelperRK6String: - 2354 .stabd 46,0,0 - 348:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 349:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** /*********************************************/ - 350:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** /* Concatenate */ - 351:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** /*********************************************/ - 352:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 353:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** StringSumHelper & operator + (const StringSumHelper &lhs, const String &rhs) - 354:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 2356 .LM190: - 2357 .LFBB37: - 2358 0860 CF93 push r28 - 2359 0862 DF93 push r29 - 2360 /* prologue: function */ - 2361 /* frame size = 0 */ - 2362 /* stack size = 2 */ - 2363 .L__stack_usage = 2 - 2364 0864 EC01 movw r28,r24 - 355:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** StringSumHelper &a = const_cast(lhs); - 356:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (!a.concat(rhs.buffer, rhs.len)) a.invalidate(); - 2366 .LM191: - 2367 0866 FB01 movw r30,r22 - 2368 0868 4481 ldd r20,Z+4 - 2369 086a 5581 ldd r21,Z+5 - 2370 086c 6081 ld r22,Z - 2371 086e 7181 ldd r23,Z+1 - 2372 0870 0E94 0000 call _ZN6String6concatEPKcj - 2373 0874 8111 cpse r24,__zero_reg__ - 2374 0876 00C0 rjmp .L81 - 2376 .LM192: - 2377 0878 CE01 movw r24,r28 - 2378 087a 0E94 0000 call _ZN6String10invalidateEv - 2379 .L81: - 357:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return a; - 358:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 2381 .LM193: - 2382 087e CE01 movw r24,r28 - 2383 /* epilogue start */ - 2384 0880 DF91 pop r29 - 2385 0882 CF91 pop r28 - 2386 0884 0895 ret - 2388 .Lscope37: - 2390 .stabd 78,0,0 - 2394 .global _ZplRK15StringSumHelperPKc - 2396 _ZplRK15StringSumHelperPKc: - 2397 .stabd 46,0,0 - 359:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 360:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** StringSumHelper & operator + (const StringSumHelper &lhs, const char *cstr) - 361:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 2399 .LM194: - 2400 .LFBB38: - 2401 0886 CF93 push r28 - 2402 0888 DF93 push r29 - 2403 /* prologue: function */ - 2404 /* frame size = 0 */ - 2405 /* stack size = 2 */ - 2406 .L__stack_usage = 2 - 2407 088a EC01 movw r28,r24 - 362:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** StringSumHelper &a = const_cast(lhs); - 363:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (!cstr || !a.concat(cstr, strlen(cstr))) a.invalidate(); - 2409 .LM195: - 2410 088c 6115 cp r22,__zero_reg__ - 2411 088e 7105 cpc r23,__zero_reg__ - 2412 0890 01F0 breq .L83 - 2414 .LM196: - 2415 0892 FB01 movw r30,r22 - 2416 0: - 2417 0894 0190 ld __tmp_reg__,Z+ - 2418 0896 0020 tst __tmp_reg__ - 2419 0898 01F4 brne 0b - 2420 089a 3197 sbiw r30,1 - 2421 089c AF01 movw r20,r30 - 2422 089e 461B sub r20,r22 - 2423 08a0 570B sbc r21,r23 - 2424 08a2 0E94 0000 call _ZN6String6concatEPKcj - 2425 08a6 8111 cpse r24,__zero_reg__ - 2426 08a8 00C0 rjmp .L91 - 2427 .L83: - 2429 .LM197: - 2430 08aa CE01 movw r24,r28 - 2431 08ac 0E94 0000 call _ZN6String10invalidateEv - 2432 .L91: - 364:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return a; - 365:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 2434 .LM198: - 2435 08b0 CE01 movw r24,r28 - 2436 /* epilogue start */ - 2437 08b2 DF91 pop r29 - 2438 08b4 CF91 pop r28 - 2439 08b6 0895 ret - 2441 .Lscope38: - 2443 .stabd 78,0,0 - 2447 .global _ZplRK15StringSumHelperc - 2449 _ZplRK15StringSumHelperc: - 2450 .stabd 46,0,0 - 366:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 367:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** StringSumHelper & operator + (const StringSumHelper &lhs, char c) - 368:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 2452 .LM199: - 2453 .LFBB39: - 2454 08b8 CF93 push r28 - 2455 08ba DF93 push r29 - 2456 /* prologue: function */ - 2457 /* frame size = 0 */ - 2458 /* stack size = 2 */ - 2459 .L__stack_usage = 2 - 2460 08bc EC01 movw r28,r24 - 369:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** StringSumHelper &a = const_cast(lhs); - 370:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (!a.concat(c)) a.invalidate(); - 2462 .LM200: - 2463 08be 0E94 0000 call _ZN6String6concatEc - 2464 08c2 8111 cpse r24,__zero_reg__ - 2465 08c4 00C0 rjmp .L93 - 2467 .LM201: - 2468 08c6 CE01 movw r24,r28 - 2469 08c8 0E94 0000 call _ZN6String10invalidateEv - 2470 .L93: - 371:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return a; - 372:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 2472 .LM202: - 2473 08cc CE01 movw r24,r28 - 2474 /* epilogue start */ - 2475 08ce DF91 pop r29 - 2476 08d0 CF91 pop r28 - 2477 08d2 0895 ret - 2479 .Lscope39: - 2481 .stabd 78,0,0 - 2485 .global _ZplRK15StringSumHelperh - 2487 _ZplRK15StringSumHelperh: - 2488 .stabd 46,0,0 - 373:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 374:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** StringSumHelper & operator + (const StringSumHelper &lhs, unsigned char num) - 375:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 2490 .LM203: - 2491 .LFBB40: - 2492 08d4 CF93 push r28 - 2493 08d6 DF93 push r29 - 2494 /* prologue: function */ - 2495 /* frame size = 0 */ - 2496 /* stack size = 2 */ - 2497 .L__stack_usage = 2 - 2498 08d8 EC01 movw r28,r24 - 376:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** StringSumHelper &a = const_cast(lhs); - 377:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (!a.concat(num)) a.invalidate(); - 2500 .LM204: - 2501 08da 0E94 0000 call _ZN6String6concatEh - 2502 08de 8111 cpse r24,__zero_reg__ - 2503 08e0 00C0 rjmp .L95 - 2505 .LM205: - 2506 08e2 CE01 movw r24,r28 - 2507 08e4 0E94 0000 call _ZN6String10invalidateEv - 2508 .L95: - 378:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return a; - 379:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 2510 .LM206: - 2511 08e8 CE01 movw r24,r28 - 2512 /* epilogue start */ - 2513 08ea DF91 pop r29 - 2514 08ec CF91 pop r28 - 2515 08ee 0895 ret - 2517 .Lscope40: - 2519 .stabd 78,0,0 - 2523 .global _ZplRK15StringSumHelperi - 2525 _ZplRK15StringSumHelperi: - 2526 .stabd 46,0,0 - 380:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 381:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** StringSumHelper & operator + (const StringSumHelper &lhs, int num) - 382:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 2528 .LM207: - 2529 .LFBB41: - 2530 08f0 CF93 push r28 - 2531 08f2 DF93 push r29 - 2532 /* prologue: function */ - 2533 /* frame size = 0 */ - 2534 /* stack size = 2 */ - 2535 .L__stack_usage = 2 - 2536 08f4 EC01 movw r28,r24 - 383:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** StringSumHelper &a = const_cast(lhs); - 384:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (!a.concat(num)) a.invalidate(); - 2538 .LM208: - 2539 08f6 0E94 0000 call _ZN6String6concatEi - 2540 08fa 8111 cpse r24,__zero_reg__ - 2541 08fc 00C0 rjmp .L97 - 2543 .LM209: - 2544 08fe CE01 movw r24,r28 - 2545 0900 0E94 0000 call _ZN6String10invalidateEv - 2546 .L97: - 385:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return a; - 386:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 2548 .LM210: - 2549 0904 CE01 movw r24,r28 - 2550 /* epilogue start */ - 2551 0906 DF91 pop r29 - 2552 0908 CF91 pop r28 - 2553 090a 0895 ret - 2555 .Lscope41: - 2557 .stabd 78,0,0 - 2561 .global _ZplRK15StringSumHelperj - 2563 _ZplRK15StringSumHelperj: - 2564 .stabd 46,0,0 - 387:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 388:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** StringSumHelper & operator + (const StringSumHelper &lhs, unsigned int num) - 389:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 2566 .LM211: - 2567 .LFBB42: - 2568 090c CF93 push r28 - 2569 090e DF93 push r29 - 2570 /* prologue: function */ - 2571 /* frame size = 0 */ - 2572 /* stack size = 2 */ - 2573 .L__stack_usage = 2 - 2574 0910 EC01 movw r28,r24 - 390:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** StringSumHelper &a = const_cast(lhs); - 391:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (!a.concat(num)) a.invalidate(); - 2576 .LM212: - 2577 0912 0E94 0000 call _ZN6String6concatEj - 2578 0916 8111 cpse r24,__zero_reg__ - 2579 0918 00C0 rjmp .L99 - 2581 .LM213: - 2582 091a CE01 movw r24,r28 - 2583 091c 0E94 0000 call _ZN6String10invalidateEv - 2584 .L99: - 392:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return a; - 393:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 2586 .LM214: - 2587 0920 CE01 movw r24,r28 - 2588 /* epilogue start */ - 2589 0922 DF91 pop r29 - 2590 0924 CF91 pop r28 - 2591 0926 0895 ret - 2593 .Lscope42: - 2595 .stabd 78,0,0 - 2599 .global _ZplRK15StringSumHelperl - 2601 _ZplRK15StringSumHelperl: - 2602 .stabd 46,0,0 - 394:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 395:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** StringSumHelper & operator + (const StringSumHelper &lhs, long num) - 396:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 2604 .LM215: - 2605 .LFBB43: - 2606 0928 CF93 push r28 - 2607 092a DF93 push r29 - 2608 /* prologue: function */ - 2609 /* frame size = 0 */ - 2610 /* stack size = 2 */ - 2611 .L__stack_usage = 2 - 2612 092c EC01 movw r28,r24 - 397:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** StringSumHelper &a = const_cast(lhs); - 398:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (!a.concat(num)) a.invalidate(); - 2614 .LM216: - 2615 092e 0E94 0000 call _ZN6String6concatEl - 2616 0932 8111 cpse r24,__zero_reg__ - 2617 0934 00C0 rjmp .L101 - 2619 .LM217: - 2620 0936 CE01 movw r24,r28 - 2621 0938 0E94 0000 call _ZN6String10invalidateEv - 2622 .L101: - 399:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return a; - 400:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 2624 .LM218: - 2625 093c CE01 movw r24,r28 - 2626 /* epilogue start */ - 2627 093e DF91 pop r29 - 2628 0940 CF91 pop r28 - 2629 0942 0895 ret - 2631 .Lscope43: - 2633 .stabd 78,0,0 - 2637 .global _ZplRK15StringSumHelperm - 2639 _ZplRK15StringSumHelperm: - 2640 .stabd 46,0,0 - 401:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 402:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** StringSumHelper & operator + (const StringSumHelper &lhs, unsigned long num) - 403:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 2642 .LM219: - 2643 .LFBB44: - 2644 0944 CF93 push r28 - 2645 0946 DF93 push r29 - 2646 /* prologue: function */ - 2647 /* frame size = 0 */ - 2648 /* stack size = 2 */ - 2649 .L__stack_usage = 2 - 2650 0948 EC01 movw r28,r24 - 404:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** StringSumHelper &a = const_cast(lhs); - 405:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (!a.concat(num)) a.invalidate(); - 2652 .LM220: - 2653 094a 0E94 0000 call _ZN6String6concatEm - 2654 094e 8111 cpse r24,__zero_reg__ - 2655 0950 00C0 rjmp .L103 - 2657 .LM221: - 2658 0952 CE01 movw r24,r28 - 2659 0954 0E94 0000 call _ZN6String10invalidateEv - 2660 .L103: - 406:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return a; - 407:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 2662 .LM222: - 2663 0958 CE01 movw r24,r28 - 2664 /* epilogue start */ - 2665 095a DF91 pop r29 - 2666 095c CF91 pop r28 - 2667 095e 0895 ret - 2669 .Lscope44: - 2671 .stabd 78,0,0 - 2675 .global _ZplRK15StringSumHelperf - 2677 _ZplRK15StringSumHelperf: - 2678 .stabd 46,0,0 - 408:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 409:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** StringSumHelper & operator + (const StringSumHelper &lhs, float num) - 410:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 2680 .LM223: - 2681 .LFBB45: - 2682 0960 CF93 push r28 - 2683 0962 DF93 push r29 - 2684 /* prologue: function */ - 2685 /* frame size = 0 */ - 2686 /* stack size = 2 */ - 2687 .L__stack_usage = 2 - 2688 0964 EC01 movw r28,r24 - 411:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** StringSumHelper &a = const_cast(lhs); - 412:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (!a.concat(num)) a.invalidate(); - 2690 .LM224: - 2691 0966 0E94 0000 call _ZN6String6concatEf - 2692 096a 8111 cpse r24,__zero_reg__ - 2693 096c 00C0 rjmp .L105 - 2695 .LM225: - 2696 096e CE01 movw r24,r28 - 2697 0970 0E94 0000 call _ZN6String10invalidateEv - 2698 .L105: - 413:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return a; - 414:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 2700 .LM226: - 2701 0974 CE01 movw r24,r28 - 2702 /* epilogue start */ - 2703 0976 DF91 pop r29 - 2704 0978 CF91 pop r28 - 2705 097a 0895 ret - 2707 .Lscope45: - 2709 .stabd 78,0,0 - 2713 .global _ZplRK15StringSumHelperd - 2715 _ZplRK15StringSumHelperd: - 2716 .stabd 46,0,0 - 415:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 416:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** StringSumHelper & operator + (const StringSumHelper &lhs, double num) - 417:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 2718 .LM227: - 2719 .LFBB46: - 2720 097c CF93 push r28 - 2721 097e DF93 push r29 - 2722 /* prologue: function */ - 2723 /* frame size = 0 */ - 2724 /* stack size = 2 */ - 2725 .L__stack_usage = 2 - 2726 0980 EC01 movw r28,r24 - 418:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** StringSumHelper &a = const_cast(lhs); - 419:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (!a.concat(num)) a.invalidate(); - 2728 .LM228: - 2729 0982 0E94 0000 call _ZN6String6concatEd - 2730 0986 8111 cpse r24,__zero_reg__ - 2731 0988 00C0 rjmp .L107 - 2733 .LM229: - 2734 098a CE01 movw r24,r28 - 2735 098c 0E94 0000 call _ZN6String10invalidateEv - 2736 .L107: - 420:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return a; - 421:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 2738 .LM230: - 2739 0990 CE01 movw r24,r28 - 2740 /* epilogue start */ - 2741 0992 DF91 pop r29 - 2742 0994 CF91 pop r28 - 2743 0996 0895 ret - 2745 .Lscope46: - 2747 .stabd 78,0,0 - 2751 .global _ZplRK15StringSumHelperPK19__FlashStringHelper - 2753 _ZplRK15StringSumHelperPK19__FlashStringHelper: - 2754 .stabd 46,0,0 - 422:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 423:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** StringSumHelper & operator + (const StringSumHelper &lhs, const __FlashStringHelper *rhs) - 424:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 2756 .LM231: - 2757 .LFBB47: - 2758 0998 CF93 push r28 - 2759 099a DF93 push r29 - 2760 /* prologue: function */ - 2761 /* frame size = 0 */ - 2762 /* stack size = 2 */ - 2763 .L__stack_usage = 2 - 2764 099c EC01 movw r28,r24 - 425:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** StringSumHelper &a = const_cast(lhs); - 426:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (!a.concat(rhs)) a.invalidate(); - 2766 .LM232: - 2767 099e 0E94 0000 call _ZN6String6concatEPK19__FlashStringHelper - 2768 09a2 8111 cpse r24,__zero_reg__ - 2769 09a4 00C0 rjmp .L109 - 2771 .LM233: - 2772 09a6 CE01 movw r24,r28 - 2773 09a8 0E94 0000 call _ZN6String10invalidateEv - 2774 .L109: - 427:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return a; - 428:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 2776 .LM234: - 2777 09ac CE01 movw r24,r28 - 2778 /* epilogue start */ - 2779 09ae DF91 pop r29 - 2780 09b0 CF91 pop r28 - 2781 09b2 0895 ret - 2783 .Lscope47: - 2785 .stabd 78,0,0 - 2789 .global _ZNK6String9compareToERKS_ - 2791 _ZNK6String9compareToERKS_: - 2792 .stabd 46,0,0 - 429:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 430:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** /*********************************************/ - 431:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** /* Comparison */ - 432:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** /*********************************************/ - 433:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 434:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** int String::compareTo(const String &s) const - 435:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 2794 .LM235: - 2795 .LFBB48: - 2796 09b4 CF93 push r28 - 2797 09b6 DF93 push r29 - 2798 /* prologue: function */ - 2799 /* frame size = 0 */ - 2800 /* stack size = 2 */ - 2801 .L__stack_usage = 2 - 436:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (!buffer || !s.buffer) { - 2803 .LM236: - 2804 09b8 DC01 movw r26,r24 - 2805 09ba ED91 ld r30,X+ - 2806 09bc FC91 ld r31,X - 2807 09be EB01 movw r28,r22 - 2808 09c0 A881 ld r26,Y - 2809 09c2 B981 ldd r27,Y+1 - 2810 09c4 3097 sbiw r30,0 - 2811 09c6 01F0 breq .L111 - 2813 .LM237: - 2814 09c8 1097 sbiw r26,0 - 2815 09ca 01F4 brne .L112 - 2816 .L111: - 437:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (s.buffer && s.len > 0) return 0 - *(unsigned char *)s.buffer; - 2818 .LM238: - 2819 09cc 1097 sbiw r26,0 - 2820 09ce 01F0 breq .L113 - 2822 .LM239: - 2823 09d0 EB01 movw r28,r22 - 2824 09d2 2C81 ldd r18,Y+4 - 2825 09d4 3D81 ldd r19,Y+5 - 2826 09d6 232B or r18,r19 - 2827 09d8 01F0 breq .L113 - 2829 .LM240: - 2830 09da 8C91 ld r24,X - 2831 09dc 90E0 ldi r25,0 - 2832 09de 9195 neg r25 - 2833 09e0 8195 neg r24 - 2834 09e2 9109 sbc r25,__zero_reg__ - 2835 09e4 00C0 rjmp .L114 - 2836 .L113: - 438:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (buffer && len > 0) return *(unsigned char *)buffer; - 2838 .LM241: - 2839 09e6 3097 sbiw r30,0 - 2840 09e8 01F0 breq .L116 - 2842 .LM242: - 2843 09ea DC01 movw r26,r24 - 2844 09ec 1496 adiw r26,4 - 2845 09ee 8D91 ld r24,X+ - 2846 09f0 9C91 ld r25,X - 2847 09f2 1597 sbiw r26,4+1 - 2848 09f4 892B or r24,r25 - 2849 09f6 01F0 breq .L116 - 2851 .LM243: - 2852 09f8 8081 ld r24,Z - 2853 09fa 90E0 ldi r25,0 - 2854 09fc 00C0 rjmp .L114 - 2855 .L112: - 439:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return 0; - 440:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 441:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return strcmp(buffer, s.buffer); - 2857 .LM244: - 2858 09fe BD01 movw r22,r26 - 2859 0a00 CF01 movw r24,r30 - 2860 /* epilogue start */ - 442:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 2862 .LM245: - 2863 0a02 DF91 pop r29 - 2864 0a04 CF91 pop r28 - 441:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 2866 .LM246: - 2867 0a06 0C94 0000 jmp strcmp - 2868 .L116: - 439:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return 0; - 2870 .LM247: - 2871 0a0a 80E0 ldi r24,0 - 2872 0a0c 90E0 ldi r25,0 - 2873 .L114: - 2874 /* epilogue start */ - 2876 .LM248: - 2877 0a0e DF91 pop r29 - 2878 0a10 CF91 pop r28 - 2879 0a12 0895 ret - 2881 .Lscope48: - 2883 .stabd 78,0,0 - 2887 .global _ZNK6String6equalsERKS_ - 2889 _ZNK6String6equalsERKS_: - 2890 .stabd 46,0,0 - 443:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 444:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** unsigned char String::equals(const String &s2) const - 445:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 2892 .LM249: - 2893 .LFBB49: - 2894 /* prologue: function */ - 2895 /* frame size = 0 */ - 2896 /* stack size = 0 */ - 2897 .L__stack_usage = 0 - 446:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return (len == s2.len && compareTo(s2) == 0); - 2899 .LM250: - 2900 0a14 FC01 movw r30,r24 - 2901 0a16 4481 ldd r20,Z+4 - 2902 0a18 5581 ldd r21,Z+5 - 2903 0a1a FB01 movw r30,r22 - 2904 0a1c 2481 ldd r18,Z+4 - 2905 0a1e 3581 ldd r19,Z+5 - 2906 0a20 4217 cp r20,r18 - 2907 0a22 5307 cpc r21,r19 - 2908 0a24 01F4 brne .L129 - 2910 .LM251: - 2911 0a26 0E94 0000 call _ZNK6String9compareToERKS_ - 2912 0a2a 21E0 ldi r18,lo8(1) - 2913 0a2c 892B or r24,r25 - 2914 0a2e 01F0 breq .L127 - 2915 .L129: - 2917 .LM252: - 2918 0a30 20E0 ldi r18,0 - 2919 .L127: - 447:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 2921 .LM253: - 2922 0a32 822F mov r24,r18 - 2923 0a34 0895 ret - 2925 .Lscope49: - 2927 .stabd 78,0,0 - 2931 .global _ZNK6String6equalsEPKc - 2933 _ZNK6String6equalsEPKc: - 2934 .stabd 46,0,0 - 448:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 449:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** unsigned char String::equals(const char *cstr) const - 450:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 2936 .LM254: - 2937 .LFBB50: - 2938 /* prologue: function */ - 2939 /* frame size = 0 */ - 2940 /* stack size = 0 */ - 2941 .L__stack_usage = 0 - 451:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (len == 0) return (cstr == NULL || *cstr == 0); - 2943 .LM255: - 2944 0a36 FC01 movw r30,r24 - 2945 0a38 2481 ldd r18,Z+4 - 2946 0a3a 3581 ldd r19,Z+5 - 2947 0a3c 232B or r18,r19 - 2948 0a3e 01F4 brne .L134 - 2950 .LM256: - 2951 0a40 21E0 ldi r18,lo8(1) - 2952 0a42 6115 cp r22,__zero_reg__ - 2953 0a44 7105 cpc r23,__zero_reg__ - 2954 0a46 01F0 breq .L137 - 2956 .LM257: - 2957 0a48 FB01 movw r30,r22 - 2958 0a4a 00C0 rjmp .L152 - 2959 .L134: - 2960 0a4c FC01 movw r30,r24 - 2961 0a4e 8081 ld r24,Z - 2962 0a50 9181 ldd r25,Z+1 - 452:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (cstr == NULL) return buffer[0] == 0; - 2964 .LM258: - 2965 0a52 6115 cp r22,__zero_reg__ - 2966 0a54 7105 cpc r23,__zero_reg__ - 2967 0a56 01F4 brne .L138 - 2969 .LM259: - 2970 0a58 21E0 ldi r18,lo8(1) - 2971 0a5a FC01 movw r30,r24 - 2972 .L152: - 2973 0a5c 8081 ld r24,Z - 2974 0a5e 8823 tst r24 - 2975 0a60 01F0 breq .L137 - 2976 0a62 00C0 rjmp .L151 - 2977 .L138: - 453:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return strcmp(buffer, cstr) == 0; - 2979 .LM260: - 2980 0a64 0E94 0000 call strcmp - 2981 0a68 21E0 ldi r18,lo8(1) - 2982 0a6a 892B or r24,r25 - 2983 0a6c 01F0 breq .L137 - 2984 .L151: - 2985 0a6e 20E0 ldi r18,0 - 2986 .L137: - 454:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 2988 .LM261: - 2989 0a70 822F mov r24,r18 - 2990 0a72 0895 ret - 2992 .Lscope50: - 2994 .stabd 78,0,0 - 2998 .global _ZNK6StringltERKS_ - 3000 _ZNK6StringltERKS_: - 3001 .stabd 46,0,0 - 455:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 456:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** unsigned char String::operator<(const String &rhs) const - 457:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 3003 .LM262: - 3004 .LFBB51: - 3005 /* prologue: function */ - 3006 /* frame size = 0 */ - 3007 /* stack size = 0 */ - 3008 .L__stack_usage = 0 - 458:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return compareTo(rhs) < 0; - 3010 .LM263: - 3011 0a74 0E94 0000 call _ZNK6String9compareToERKS_ - 459:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 3013 .LM264: - 3014 0a78 892F mov r24,r25 - 3015 0a7a 881F rol r24 - 3016 0a7c 8827 clr r24 - 3017 0a7e 881F rol r24 - 3018 0a80 0895 ret - 3020 .Lscope51: - 3022 .stabd 78,0,0 - 3026 .global _ZNK6StringgtERKS_ - 3028 _ZNK6StringgtERKS_: - 3029 .stabd 46,0,0 - 460:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 461:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** unsigned char String::operator>(const String &rhs) const - 462:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 3031 .LM265: - 3032 .LFBB52: - 3033 /* prologue: function */ - 3034 /* frame size = 0 */ - 3035 /* stack size = 0 */ - 3036 .L__stack_usage = 0 - 463:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return compareTo(rhs) > 0; - 3038 .LM266: - 3039 0a82 0E94 0000 call _ZNK6String9compareToERKS_ - 3040 0a86 21E0 ldi r18,lo8(1) - 3041 0a88 1816 cp __zero_reg__,r24 - 3042 0a8a 1906 cpc __zero_reg__,r25 - 3043 0a8c 04F0 brlt .L155 - 3044 0a8e 20E0 ldi r18,0 - 3045 .L155: - 464:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 3047 .LM267: - 3048 0a90 822F mov r24,r18 - 3049 0a92 0895 ret - 3051 .Lscope52: - 3053 .stabd 78,0,0 - 3057 .global _ZNK6StringleERKS_ - 3059 _ZNK6StringleERKS_: - 3060 .stabd 46,0,0 - 465:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 466:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** unsigned char String::operator<=(const String &rhs) const - 467:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 3062 .LM268: - 3063 .LFBB53: - 3064 /* prologue: function */ - 3065 /* frame size = 0 */ - 3066 /* stack size = 0 */ - 3067 .L__stack_usage = 0 - 468:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return compareTo(rhs) <= 0; - 3069 .LM269: - 3070 0a94 0E94 0000 call _ZNK6String9compareToERKS_ - 3071 0a98 21E0 ldi r18,lo8(1) - 3072 0a9a 1816 cp __zero_reg__,r24 - 3073 0a9c 1906 cpc __zero_reg__,r25 - 3074 0a9e 04F4 brge .L157 - 3075 0aa0 20E0 ldi r18,0 - 3076 .L157: - 469:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 3078 .LM270: - 3079 0aa2 822F mov r24,r18 - 3080 0aa4 0895 ret - 3082 .Lscope53: - 3084 .stabd 78,0,0 - 3088 .global _ZNK6StringgeERKS_ - 3090 _ZNK6StringgeERKS_: - 3091 .stabd 46,0,0 - 470:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 471:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** unsigned char String::operator>=(const String &rhs) const - 472:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 3093 .LM271: - 3094 .LFBB54: - 3095 /* prologue: function */ - 3096 /* frame size = 0 */ - 3097 /* stack size = 0 */ - 3098 .L__stack_usage = 0 - 473:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return compareTo(rhs) >= 0; - 3100 .LM272: - 3101 0aa6 0E94 0000 call _ZNK6String9compareToERKS_ - 3102 0aaa 892F mov r24,r25 - 3103 0aac 8095 com r24 - 474:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 3105 .LM273: - 3106 0aae 881F rol r24 - 3107 0ab0 8827 clr r24 - 3108 0ab2 881F rol r24 - 3109 0ab4 0895 ret - 3111 .Lscope54: - 3113 .stabd 78,0,0 - 3117 .global _ZNK6String16equalsIgnoreCaseERKS_ - 3119 _ZNK6String16equalsIgnoreCaseERKS_: - 3120 .stabd 46,0,0 - 475:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 476:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** unsigned char String::equalsIgnoreCase( const String &s2 ) const - 477:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 3122 .LM274: - 3123 .LFBB55: - 3124 0ab6 EF92 push r14 - 3125 0ab8 FF92 push r15 - 3126 0aba 0F93 push r16 - 3127 0abc 1F93 push r17 - 3128 0abe CF93 push r28 - 3129 0ac0 DF93 push r29 - 3130 /* prologue: function */ - 3131 /* frame size = 0 */ - 3132 /* stack size = 6 */ - 3133 .L__stack_usage = 6 - 478:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (this == &s2) return 1; - 3135 .LM275: - 3136 0ac2 8617 cp r24,r22 - 3137 0ac4 9707 cpc r25,r23 - 3138 0ac6 01F0 breq .L165 - 479:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (len != s2.len) return 0; - 3140 .LM276: - 3141 0ac8 FC01 movw r30,r24 - 3142 0aca 2481 ldd r18,Z+4 - 3143 0acc 3581 ldd r19,Z+5 - 3144 0ace FB01 movw r30,r22 - 3145 0ad0 4481 ldd r20,Z+4 - 3146 0ad2 5581 ldd r21,Z+5 - 3147 0ad4 2417 cp r18,r20 - 3148 0ad6 3507 cpc r19,r21 - 3149 0ad8 01F4 brne .L163 - 480:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (len == 0) return 1; - 3151 .LM277: - 3152 0ada 232B or r18,r19 - 3153 0adc 01F0 breq .L165 - 3154 0ade DC01 movw r26,r24 - 3155 0ae0 0D91 ld r16,X+ - 3156 0ae2 1C91 ld r17,X - 3157 0ae4 C081 ld r28,Z - 3158 0ae6 D181 ldd r29,Z+1 - 3159 .L161: - 481:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** const char *p1 = buffer; - 482:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** const char *p2 = s2.buffer; - 483:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** while (*p1) { - 3161 .LM278: - 3162 0ae8 F801 movw r30,r16 - 3163 0aea 8191 ld r24,Z+ - 3164 0aec 8F01 movw r16,r30 - 3165 0aee 8823 tst r24 - 3166 0af0 01F0 breq .L165 - 484:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (tolower(*p1++) != tolower(*p2++)) return 0; - 3168 .LM279: - 3169 0af2 90E0 ldi r25,0 - 3170 0af4 0E94 0000 call tolower - 3171 0af8 7C01 movw r14,r24 - 3172 0afa 8991 ld r24,Y+ - 3173 0afc 90E0 ldi r25,0 - 3174 0afe 0E94 0000 call tolower - 3175 0b02 E816 cp r14,r24 - 3176 0b04 F906 cpc r15,r25 - 3177 0b06 01F0 breq .L161 - 3178 .L163: - 479:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (len == 0) return 1; - 3180 .LM280: - 3181 0b08 80E0 ldi r24,0 - 3182 0b0a 00C0 rjmp .L160 - 3183 .L165: - 478:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (len != s2.len) return 0; - 3185 .LM281: - 3186 0b0c 81E0 ldi r24,lo8(1) - 3187 .L160: - 3188 /* epilogue start */ - 485:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 486:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return 1; - 487:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 3190 .LM282: - 3191 0b0e DF91 pop r29 - 3192 0b10 CF91 pop r28 - 3193 0b12 1F91 pop r17 - 3194 0b14 0F91 pop r16 - 3195 0b16 FF90 pop r15 - 3196 0b18 EF90 pop r14 - 3197 0b1a 0895 ret - 3199 .Lscope55: - 3201 .stabd 78,0,0 - 3206 .global _ZNK6String10startsWithERKS_j - 3208 _ZNK6String10startsWithERKS_j: - 3209 .stabd 46,0,0 - 488:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 489:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** unsigned char String::startsWith( const String &s2 ) const - 490:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 491:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (len < s2.len) return 0; - 492:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return startsWith(s2, 0); - 493:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 494:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 495:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** unsigned char String::startsWith( const String &s2, unsigned int offset ) const - 496:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 3211 .LM283: - 3212 .LFBB56: - 3213 /* prologue: function */ - 3214 /* frame size = 0 */ - 3215 /* stack size = 0 */ - 3216 .L__stack_usage = 0 - 497:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (offset > len - s2.len || !buffer || !s2.buffer) return 0; - 3218 .LM284: - 3219 0b1c DB01 movw r26,r22 - 3220 0b1e 1496 adiw r26,4 - 3221 0b20 ED91 ld r30,X+ - 3222 0b22 FC91 ld r31,X - 3223 0b24 1597 sbiw r26,4+1 - 3224 0b26 DC01 movw r26,r24 - 3225 0b28 1496 adiw r26,4 - 3226 0b2a 2D91 ld r18,X+ - 3227 0b2c 3C91 ld r19,X - 3228 0b2e 1597 sbiw r26,4+1 - 3229 0b30 2E1B sub r18,r30 - 3230 0b32 3F0B sbc r19,r31 - 3231 0b34 2417 cp r18,r20 - 3232 0b36 3507 cpc r19,r21 - 3233 0b38 00F0 brlo .L172 - 3235 .LM285: - 3236 0b3a 2D91 ld r18,X+ - 3237 0b3c 3C91 ld r19,X - 3238 0b3e 2115 cp r18,__zero_reg__ - 3239 0b40 3105 cpc r19,__zero_reg__ - 3240 0b42 01F0 breq .L172 - 3242 .LM286: - 3243 0b44 DB01 movw r26,r22 - 3244 0b46 6D91 ld r22,X+ - 3245 0b48 7C91 ld r23,X - 3246 0b4a 6115 cp r22,__zero_reg__ - 3247 0b4c 7105 cpc r23,__zero_reg__ - 3248 0b4e 01F0 breq .L172 - 3249 0b50 CA01 movw r24,r20 - 498:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return strncmp( &buffer[offset], s2.buffer, s2.len ) == 0; - 3251 .LM287: - 3252 0b52 AF01 movw r20,r30 - 3253 0b54 820F add r24,r18 - 3254 0b56 931F adc r25,r19 - 3255 0b58 0E94 0000 call strncmp - 3256 0b5c 21E0 ldi r18,lo8(1) - 3257 0b5e 892B or r24,r25 - 3258 0b60 01F0 breq .L168 - 3259 .L172: - 497:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (offset > len - s2.len || !buffer || !s2.buffer) return 0; - 3261 .LM288: - 3262 0b62 20E0 ldi r18,0 - 3263 .L168: - 499:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 3265 .LM289: - 3266 0b64 822F mov r24,r18 - 3267 0b66 0895 ret - 3269 .Lscope56: - 3271 .stabd 78,0,0 - 3275 .global _ZNK6String10startsWithERKS_ - 3277 _ZNK6String10startsWithERKS_: - 3278 .stabd 46,0,0 - 490:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (len < s2.len) return 0; - 3280 .LM290: - 3281 .LFBB57: - 3282 /* prologue: function */ - 3283 /* frame size = 0 */ - 3284 /* stack size = 0 */ - 3285 .L__stack_usage = 0 - 491:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return startsWith(s2, 0); - 3287 .LM291: - 3288 0b68 FC01 movw r30,r24 - 3289 0b6a 4481 ldd r20,Z+4 - 3290 0b6c 5581 ldd r21,Z+5 - 3291 0b6e FB01 movw r30,r22 - 3292 0b70 2481 ldd r18,Z+4 - 3293 0b72 3581 ldd r19,Z+5 - 3294 0b74 4217 cp r20,r18 - 3295 0b76 5307 cpc r21,r19 - 3296 0b78 00F0 brlo .L177 - 492:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 3298 .LM292: - 3299 0b7a 40E0 ldi r20,0 - 3300 0b7c 50E0 ldi r21,0 - 3301 0b7e 0C94 0000 jmp _ZNK6String10startsWithERKS_j - 3302 .L177: - 493:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 3304 .LM293: - 3305 0b82 80E0 ldi r24,0 - 3306 0b84 0895 ret - 3308 .Lscope57: - 3310 .stabd 78,0,0 - 3314 .global _ZNK6String8endsWithERKS_ - 3316 _ZNK6String8endsWithERKS_: - 3317 .stabd 46,0,0 - 500:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 501:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** unsigned char String::endsWith( const String &s2 ) const - 502:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 3319 .LM294: - 3320 .LFBB58: - 3321 /* prologue: function */ - 3322 /* frame size = 0 */ - 3323 /* stack size = 0 */ - 3324 .L__stack_usage = 0 - 503:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if ( len < s2.len || !buffer || !s2.buffer) return 0; - 3326 .LM295: - 3327 0b86 FC01 movw r30,r24 - 3328 0b88 2481 ldd r18,Z+4 - 3329 0b8a 3581 ldd r19,Z+5 - 3330 0b8c FB01 movw r30,r22 - 3331 0b8e 4481 ldd r20,Z+4 - 3332 0b90 5581 ldd r21,Z+5 - 3333 0b92 2417 cp r18,r20 - 3334 0b94 3507 cpc r19,r21 - 3335 0b96 00F0 brlo .L183 - 3337 .LM296: - 3338 0b98 FC01 movw r30,r24 - 3339 0b9a 8081 ld r24,Z - 3340 0b9c 9181 ldd r25,Z+1 - 3341 0b9e 0097 sbiw r24,0 - 3342 0ba0 01F0 breq .L183 - 3344 .LM297: - 3345 0ba2 FB01 movw r30,r22 - 3346 0ba4 6081 ld r22,Z - 3347 0ba6 7181 ldd r23,Z+1 - 3348 0ba8 6115 cp r22,__zero_reg__ - 3349 0baa 7105 cpc r23,__zero_reg__ - 3350 0bac 01F0 breq .L183 - 504:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return strcmp(&buffer[len - s2.len], s2.buffer) == 0; - 3352 .LM298: - 3353 0bae 241B sub r18,r20 - 3354 0bb0 350B sbc r19,r21 - 3355 0bb2 820F add r24,r18 - 3356 0bb4 931F adc r25,r19 - 3357 0bb6 0E94 0000 call strcmp - 3358 0bba 21E0 ldi r18,lo8(1) - 3359 0bbc 892B or r24,r25 - 3360 0bbe 01F0 breq .L179 - 3361 .L183: - 503:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if ( len < s2.len || !buffer || !s2.buffer) return 0; - 3363 .LM299: - 3364 0bc0 20E0 ldi r18,0 - 3365 .L179: - 505:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 3367 .LM300: - 3368 0bc2 822F mov r24,r18 - 3369 0bc4 0895 ret - 3371 .Lscope58: - 3373 .stabd 78,0,0 - 3378 .global _ZN6String9setCharAtEjc - 3380 _ZN6String9setCharAtEjc: - 3381 .stabd 46,0,0 - 506:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 507:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** /*********************************************/ - 508:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** /* Character Access */ - 509:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** /*********************************************/ - 510:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 511:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** char String::charAt(unsigned int loc) const - 512:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 513:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return operator[](loc); - 514:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 515:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 516:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** void String::setCharAt(unsigned int loc, char c) - 517:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 3383 .LM301: - 3384 .LFBB59: - 3385 /* prologue: function */ - 3386 /* frame size = 0 */ - 3387 /* stack size = 0 */ - 3388 .L__stack_usage = 0 - 518:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (loc < len) buffer[loc] = c; - 3390 .LM302: - 3391 0bc6 FC01 movw r30,r24 - 3392 0bc8 2481 ldd r18,Z+4 - 3393 0bca 3581 ldd r19,Z+5 - 3394 0bcc 6217 cp r22,r18 - 3395 0bce 7307 cpc r23,r19 - 3396 0bd0 00F4 brsh .L187 - 3398 .LM303: - 3399 0bd2 8081 ld r24,Z - 3400 0bd4 9181 ldd r25,Z+1 - 3401 0bd6 FC01 movw r30,r24 - 3402 0bd8 E60F add r30,r22 - 3403 0bda F71F adc r31,r23 - 3404 0bdc 4083 st Z,r20 - 3405 .L187: - 3406 0bde 0895 ret - 3408 .Lscope59: - 3410 .stabd 78,0,0 - 3414 .global _ZN6StringixEj - 3416 _ZN6StringixEj: - 3417 .stabd 46,0,0 - 519:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 520:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 521:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** char & String::operator[](unsigned int index) - 522:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 3419 .LM304: - 3420 .LFBB60: - 3421 /* prologue: function */ - 3422 /* frame size = 0 */ - 3423 /* stack size = 0 */ - 3424 .L__stack_usage = 0 - 523:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** static char dummy_writable_char; - 524:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (index >= len || !buffer) { - 3426 .LM305: - 3427 0be0 FC01 movw r30,r24 - 3428 0be2 2481 ldd r18,Z+4 - 3429 0be4 3581 ldd r19,Z+5 - 3430 0be6 6217 cp r22,r18 - 3431 0be8 7307 cpc r23,r19 - 3432 0bea 00F4 brsh .L190 - 3434 .LM306: - 3435 0bec 8081 ld r24,Z - 3436 0bee 9181 ldd r25,Z+1 - 3437 0bf0 0097 sbiw r24,0 - 3438 0bf2 01F4 brne .L191 - 3439 .L190: - 525:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** dummy_writable_char = 0; - 3441 .LM307: - 3442 0bf4 1092 0000 sts _ZZN6StringixEjE19dummy_writable_char,__zero_reg__ - 526:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return dummy_writable_char; - 3444 .LM308: - 3445 0bf8 80E0 ldi r24,lo8(_ZZN6StringixEjE19dummy_writable_char) - 3446 0bfa 90E0 ldi r25,hi8(_ZZN6StringixEjE19dummy_writable_char) - 3447 0bfc 0895 ret - 3448 .L191: - 527:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 528:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return buffer[index]; - 3450 .LM309: - 3451 0bfe 860F add r24,r22 - 3452 0c00 971F adc r25,r23 - 529:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 3454 .LM310: - 3455 0c02 0895 ret - 3460 .Lscope60: - 3462 .stabd 78,0,0 - 3466 .global _ZNK6StringixEj - 3468 _ZNK6StringixEj: - 3469 .stabd 46,0,0 - 530:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 531:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** char String::operator[]( unsigned int index ) const - 532:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 3471 .LM311: - 3472 .LFBB61: - 3473 /* prologue: function */ - 3474 /* frame size = 0 */ - 3475 /* stack size = 0 */ - 3476 .L__stack_usage = 0 - 533:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (index >= len || !buffer) return 0; - 3478 .LM312: - 3479 0c04 FC01 movw r30,r24 - 3480 0c06 2481 ldd r18,Z+4 - 3481 0c08 3581 ldd r19,Z+5 - 3482 0c0a 6217 cp r22,r18 - 3483 0c0c 7307 cpc r23,r19 - 3484 0c0e 00F4 brsh .L196 - 3485 .LBB87: - 3486 .LBB88: - 3487 0c10 8081 ld r24,Z - 3488 0c12 9181 ldd r25,Z+1 - 3489 0c14 0097 sbiw r24,0 - 3490 0c16 01F0 breq .L196 - 534:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return buffer[index]; - 3492 .LM313: - 3493 0c18 FC01 movw r30,r24 - 3494 0c1a E60F add r30,r22 - 3495 0c1c F71F adc r31,r23 - 3496 0c1e 8081 ld r24,Z - 3497 0c20 0895 ret - 3498 .L196: - 3499 .LBE88: - 3500 .LBE87: - 533:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (index >= len || !buffer) return 0; - 3502 .LM314: - 3503 0c22 80E0 ldi r24,0 - 535:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 3505 .LM315: - 3506 0c24 0895 ret - 3508 .Lscope61: - 3510 .stabd 78,0,0 - 3514 .global _ZNK6String6charAtEj - 3516 _ZNK6String6charAtEj: - 3517 .stabd 46,0,0 - 512:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return operator[](loc); - 3519 .LM316: - 3520 .LFBB62: - 3521 /* prologue: function */ - 3522 /* frame size = 0 */ - 3523 /* stack size = 0 */ - 3524 .L__stack_usage = 0 - 513:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 3526 .LM317: - 3527 0c26 0C94 0000 jmp _ZNK6StringixEj - 3529 .Lscope62: - 3531 .stabd 78,0,0 - 3537 .global _ZNK6String8getBytesEPhjj - 3539 _ZNK6String8getBytesEPhjj: - 3540 .stabd 46,0,0 - 536:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 537:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** void String::getBytes(unsigned char *buf, unsigned int bufsize, unsigned int index) const - 538:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 3542 .LM318: - 3543 .LFBB63: - 3544 0c2a 0F93 push r16 - 3545 0c2c 1F93 push r17 - 3546 0c2e CF93 push r28 - 3547 0c30 DF93 push r29 - 3548 /* prologue: function */ - 3549 /* frame size = 0 */ - 3550 /* stack size = 4 */ - 3551 .L__stack_usage = 4 - 539:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (!bufsize || !buf) return; - 3553 .LM319: - 3554 0c32 4115 cp r20,__zero_reg__ - 3555 0c34 5105 cpc r21,__zero_reg__ - 3556 0c36 01F0 breq .L198 - 3558 .LM320: - 3559 0c38 6115 cp r22,__zero_reg__ - 3560 0c3a 7105 cpc r23,__zero_reg__ - 3561 0c3c 01F0 breq .L198 - 540:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (index >= len) { - 3563 .LM321: - 3564 0c3e DC01 movw r26,r24 - 3565 0c40 1496 adiw r26,4 - 3566 0c42 ED91 ld r30,X+ - 3567 0c44 FC91 ld r31,X - 3568 0c46 1597 sbiw r26,4+1 - 3569 0c48 2E17 cp r18,r30 - 3570 0c4a 3F07 cpc r19,r31 - 3571 0c4c 00F0 brlo .L200 - 541:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** buf[0] = 0; - 3573 .LM322: - 3574 0c4e FB01 movw r30,r22 - 3575 0c50 1082 st Z,__zero_reg__ - 542:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return; - 3577 .LM323: - 3578 0c52 00C0 rjmp .L198 - 3579 .L200: - 543:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 544:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** unsigned int n = bufsize - 1; - 545:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (n > len - index) n = len - index; - 3581 .LM324: - 3582 0c54 E21B sub r30,r18 - 3583 0c56 F30B sbc r31,r19 - 3584 0c58 EA01 movw r28,r20 - 3585 0c5a 2197 sbiw r28,1 - 3586 0c5c EC17 cp r30,r28 - 3587 0c5e FD07 cpc r31,r29 - 3588 0c60 00F4 brsh .L201 - 3589 0c62 EF01 movw r28,r30 - 3590 .L201: - 3591 0c64 8B01 movw r16,r22 - 3592 0c66 FC01 movw r30,r24 - 546:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** strncpy((char *)buf, buffer + index, n); - 3594 .LM325: - 3595 0c68 6081 ld r22,Z - 3596 0c6a 7181 ldd r23,Z+1 - 3597 0c6c 620F add r22,r18 - 3598 0c6e 731F adc r23,r19 - 3599 0c70 AE01 movw r20,r28 - 3600 0c72 C801 movw r24,r16 - 3601 0c74 0E94 0000 call strncpy - 547:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** buf[n] = 0; - 3603 .LM326: - 3604 0c78 C00F add r28,r16 - 3605 0c7a D11F adc r29,r17 - 3606 0c7c 1882 st Y,__zero_reg__ - 3607 .L198: - 3608 /* epilogue start */ - 548:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 3610 .LM327: - 3611 0c7e DF91 pop r29 - 3612 0c80 CF91 pop r28 - 3613 0c82 1F91 pop r17 - 3614 0c84 0F91 pop r16 - 3615 0c86 0895 ret - 3617 .Lscope63: - 3619 .stabd 78,0,0 - 3624 .global _ZNK6String7indexOfEcj - 3626 _ZNK6String7indexOfEcj: - 3627 .stabd 46,0,0 - 549:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 550:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** /*********************************************/ - 551:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** /* Search */ - 552:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** /*********************************************/ - 553:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 554:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** int String::indexOf(char c) const - 555:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 556:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return indexOf(c, 0); - 557:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 558:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 559:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** int String::indexOf( char ch, unsigned int fromIndex ) const - 560:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 3629 .LM328: - 3630 .LFBB64: - 3631 0c88 CF93 push r28 - 3632 0c8a DF93 push r29 - 3633 /* prologue: function */ - 3634 /* frame size = 0 */ - 3635 /* stack size = 2 */ - 3636 .L__stack_usage = 2 - 561:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (fromIndex >= len) return -1; - 3638 .LM329: - 3639 0c8c FC01 movw r30,r24 - 3640 0c8e 2481 ldd r18,Z+4 - 3641 0c90 3581 ldd r19,Z+5 - 3642 0c92 4217 cp r20,r18 - 3643 0c94 5307 cpc r21,r19 - 3644 0c96 00F4 brsh .L211 - 562:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** const char* temp = strchr(buffer + fromIndex, ch); - 3646 .LM330: - 3647 0c98 C081 ld r28,Z - 3648 0c9a D181 ldd r29,Z+1 - 3649 0c9c 70E0 ldi r23,0 - 3650 0c9e CE01 movw r24,r28 - 3651 0ca0 840F add r24,r20 - 3652 0ca2 951F adc r25,r21 - 3653 0ca4 0E94 0000 call strchr - 563:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (temp == NULL) return -1; - 3655 .LM331: - 3656 0ca8 0097 sbiw r24,0 - 3657 0caa 01F0 breq .L211 - 564:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return temp - buffer; - 3659 .LM332: - 3660 0cac 8C1B sub r24,r28 - 3661 0cae 9D0B sbc r25,r29 - 3662 0cb0 00C0 rjmp .L209 - 3663 .L211: - 561:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** const char* temp = strchr(buffer + fromIndex, ch); - 3665 .LM333: - 3666 0cb2 8FEF ldi r24,lo8(-1) - 3667 0cb4 9FEF ldi r25,lo8(-1) - 3668 .L209: - 3669 /* epilogue start */ - 565:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 3671 .LM334: - 3672 0cb6 DF91 pop r29 - 3673 0cb8 CF91 pop r28 - 3674 0cba 0895 ret - 3679 .Lscope64: - 3681 .stabd 78,0,0 - 3685 .global _ZNK6String7indexOfEc - 3687 _ZNK6String7indexOfEc: - 3688 .stabd 46,0,0 - 555:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return indexOf(c, 0); - 3690 .LM335: - 3691 .LFBB65: - 3692 /* prologue: function */ - 3693 /* frame size = 0 */ - 3694 /* stack size = 0 */ - 3695 .L__stack_usage = 0 - 556:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 3697 .LM336: - 3698 0cbc 40E0 ldi r20,0 - 3699 0cbe 50E0 ldi r21,0 - 3700 0cc0 0C94 0000 jmp _ZNK6String7indexOfEcj - 3702 .Lscope65: - 3704 .stabd 78,0,0 - 3709 .global _ZNK6String7indexOfERKS_j - 3711 _ZNK6String7indexOfERKS_j: - 3712 .stabd 46,0,0 - 566:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 567:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** int String::indexOf(const String &s2) const - 568:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 569:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return indexOf(s2, 0); - 570:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 571:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 572:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** int String::indexOf(const String &s2, unsigned int fromIndex) const - 573:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 3714 .LM337: - 3715 .LFBB66: - 3716 0cc4 CF93 push r28 - 3717 0cc6 DF93 push r29 - 3718 /* prologue: function */ - 3719 /* frame size = 0 */ - 3720 /* stack size = 2 */ - 3721 .L__stack_usage = 2 - 574:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (fromIndex >= len) return -1; - 3723 .LM338: - 3724 0cc8 FC01 movw r30,r24 - 3725 0cca 2481 ldd r18,Z+4 - 3726 0ccc 3581 ldd r19,Z+5 - 3727 0cce 4217 cp r20,r18 - 3728 0cd0 5307 cpc r21,r19 - 3729 0cd2 00F4 brsh .L216 - 3730 0cd4 FB01 movw r30,r22 - 3731 0cd6 DC01 movw r26,r24 - 575:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** const char *found = strstr(buffer + fromIndex, s2.buffer); - 3733 .LM339: - 3734 0cd8 CD91 ld r28,X+ - 3735 0cda DC91 ld r29,X - 3736 0cdc 6081 ld r22,Z - 3737 0cde 7181 ldd r23,Z+1 - 3738 0ce0 CE01 movw r24,r28 - 3739 0ce2 840F add r24,r20 - 3740 0ce4 951F adc r25,r21 - 3741 0ce6 0E94 0000 call strstr - 576:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (found == NULL) return -1; - 3743 .LM340: - 3744 0cea 0097 sbiw r24,0 - 3745 0cec 01F0 breq .L216 - 577:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return found - buffer; - 3747 .LM341: - 3748 0cee 8C1B sub r24,r28 - 3749 0cf0 9D0B sbc r25,r29 - 3750 0cf2 00C0 rjmp .L214 - 3751 .L216: - 574:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** const char *found = strstr(buffer + fromIndex, s2.buffer); - 3753 .LM342: - 3754 0cf4 8FEF ldi r24,lo8(-1) - 3755 0cf6 9FEF ldi r25,lo8(-1) - 3756 .L214: - 3757 /* epilogue start */ - 578:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 3759 .LM343: - 3760 0cf8 DF91 pop r29 - 3761 0cfa CF91 pop r28 - 3762 0cfc 0895 ret - 3767 .Lscope66: - 3769 .stabd 78,0,0 - 3773 .global _ZNK6String7indexOfERKS_ - 3775 _ZNK6String7indexOfERKS_: - 3776 .stabd 46,0,0 - 568:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return indexOf(s2, 0); - 3778 .LM344: - 3779 .LFBB67: - 3780 /* prologue: function */ - 3781 /* frame size = 0 */ - 3782 /* stack size = 0 */ - 3783 .L__stack_usage = 0 - 569:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 3785 .LM345: - 3786 0cfe 40E0 ldi r20,0 - 3787 0d00 50E0 ldi r21,0 - 3788 0d02 0C94 0000 jmp _ZNK6String7indexOfERKS_j - 3790 .Lscope67: - 3792 .stabd 78,0,0 - 3797 .global _ZNK6String11lastIndexOfEcj - 3799 _ZNK6String11lastIndexOfEcj: - 3800 .stabd 46,0,0 - 579:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 580:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** int String::lastIndexOf( char theChar ) const - 581:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 582:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return lastIndexOf(theChar, len - 1); - 583:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 584:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 585:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** int String::lastIndexOf(char ch, unsigned int fromIndex) const - 586:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 3802 .LM346: - 3803 .LFBB68: - 3804 0d06 DF92 push r13 - 3805 0d08 EF92 push r14 - 3806 0d0a FF92 push r15 - 3807 0d0c 0F93 push r16 - 3808 0d0e 1F93 push r17 - 3809 0d10 CF93 push r28 - 3810 0d12 DF93 push r29 - 3811 /* prologue: function */ - 3812 /* frame size = 0 */ - 3813 /* stack size = 7 */ - 3814 .L__stack_usage = 7 - 587:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (fromIndex >= len) return -1; - 3816 .LM347: - 3817 0d14 DC01 movw r26,r24 - 3818 0d16 1496 adiw r26,4 - 3819 0d18 2D91 ld r18,X+ - 3820 0d1a 3C91 ld r19,X - 3821 0d1c 1597 sbiw r26,4+1 - 3822 0d1e 4217 cp r20,r18 - 3823 0d20 5307 cpc r21,r19 - 3824 0d22 00F0 brlo .L219 - 3825 .L221: - 3826 0d24 8FEF ldi r24,lo8(-1) - 3827 0d26 9FEF ldi r25,lo8(-1) - 3828 0d28 00C0 rjmp .L220 - 3829 .L219: - 3830 0d2a 8C01 movw r16,r24 - 588:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** char tempchar = buffer[fromIndex + 1]; - 3832 .LM348: - 3833 0d2c EA01 movw r28,r20 - 3834 0d2e 2196 adiw r28,1 - 3835 0d30 DC01 movw r26,r24 - 3836 0d32 ED91 ld r30,X+ - 3837 0d34 FC91 ld r31,X - 3838 0d36 1197 sbiw r26,1 - 3839 0d38 EC0F add r30,r28 - 3840 0d3a FD1F adc r31,r29 - 3841 0d3c D080 ld r13,Z - 589:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** buffer[fromIndex + 1] = '\0'; - 3843 .LM349: - 3844 0d3e 1082 st Z,__zero_reg__ - 590:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** char* temp = strrchr( buffer, ch ); - 3846 .LM350: - 3847 0d40 ED90 ld r14,X+ - 3848 0d42 FC90 ld r15,X - 3849 0d44 70E0 ldi r23,0 - 3850 0d46 C701 movw r24,r14 - 3851 0d48 0E94 0000 call strrchr - 591:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** buffer[fromIndex + 1] = tempchar; - 3853 .LM351: - 3854 0d4c CE0D add r28,r14 - 3855 0d4e DF1D adc r29,r15 - 3856 0d50 D882 st Y,r13 - 592:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (temp == NULL) return -1; - 3858 .LM352: - 3859 0d52 0097 sbiw r24,0 - 3860 0d54 01F0 breq .L221 - 593:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return temp - buffer; - 3862 .LM353: - 3863 0d56 F801 movw r30,r16 - 3864 0d58 2081 ld r18,Z - 3865 0d5a 3181 ldd r19,Z+1 - 3866 0d5c 821B sub r24,r18 - 3867 0d5e 930B sbc r25,r19 - 3868 .L220: - 3869 /* epilogue start */ - 594:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 3871 .LM354: - 3872 0d60 DF91 pop r29 - 3873 0d62 CF91 pop r28 - 3874 0d64 1F91 pop r17 - 3875 0d66 0F91 pop r16 - 3876 0d68 FF90 pop r15 - 3877 0d6a EF90 pop r14 - 3878 0d6c DF90 pop r13 - 3879 0d6e 0895 ret - 3885 .Lscope68: - 3887 .stabd 78,0,0 - 3891 .global _ZNK6String11lastIndexOfEc - 3893 _ZNK6String11lastIndexOfEc: - 3894 .stabd 46,0,0 - 581:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return lastIndexOf(theChar, len - 1); - 3896 .LM355: - 3897 .LFBB69: - 3898 /* prologue: function */ - 3899 /* frame size = 0 */ - 3900 /* stack size = 0 */ - 3901 .L__stack_usage = 0 - 582:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 3903 .LM356: - 3904 0d70 FC01 movw r30,r24 - 3905 0d72 4481 ldd r20,Z+4 - 3906 0d74 5581 ldd r21,Z+5 - 3907 0d76 4150 subi r20,1 - 3908 0d78 5109 sbc r21,__zero_reg__ - 3909 0d7a 0C94 0000 jmp _ZNK6String11lastIndexOfEcj - 3911 .Lscope69: - 3913 .stabd 78,0,0 - 3918 .global _ZNK6String11lastIndexOfERKS_j - 3920 _ZNK6String11lastIndexOfERKS_j: - 3921 .stabd 46,0,0 - 595:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 596:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** int String::lastIndexOf(const String &s2) const - 597:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 598:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return lastIndexOf(s2, len - s2.len); - 599:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 600:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 601:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** int String::lastIndexOf(const String &s2, unsigned int fromIndex) const - 602:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 3923 .LM357: - 3924 .LFBB70: - 3925 0d7e AF92 push r10 - 3926 0d80 BF92 push r11 - 3927 0d82 CF92 push r12 - 3928 0d84 DF92 push r13 - 3929 0d86 EF92 push r14 - 3930 0d88 FF92 push r15 - 3931 0d8a 0F93 push r16 - 3932 0d8c 1F93 push r17 - 3933 0d8e CF93 push r28 - 3934 0d90 DF93 push r29 - 3935 /* prologue: function */ - 3936 /* frame size = 0 */ - 3937 /* stack size = 10 */ - 3938 .L__stack_usage = 10 - 3939 0d92 7B01 movw r14,r22 - 3940 0d94 8A01 movw r16,r20 - 603:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (s2.len == 0 || len == 0 || s2.len > len) return -1; - 3942 .LM358: - 3943 0d96 FB01 movw r30,r22 - 3944 0d98 4481 ldd r20,Z+4 - 3945 0d9a 5581 ldd r21,Z+5 - 3946 0d9c 4115 cp r20,__zero_reg__ - 3947 0d9e 5105 cpc r21,__zero_reg__ - 3948 0da0 01F0 breq .L233 - 3950 .LM359: - 3951 0da2 FC01 movw r30,r24 - 3952 0da4 2481 ldd r18,Z+4 - 3953 0da6 3581 ldd r19,Z+5 - 3954 0da8 2115 cp r18,__zero_reg__ - 3955 0daa 3105 cpc r19,__zero_reg__ - 3956 0dac 01F0 breq .L233 - 3958 .LM360: - 3959 0dae 2417 cp r18,r20 - 3960 0db0 3507 cpc r19,r21 - 3961 0db2 00F0 brlo .L233 - 604:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (fromIndex >= len) fromIndex = len - 1; - 3963 .LM361: - 3964 0db4 0217 cp r16,r18 - 3965 0db6 1307 cpc r17,r19 - 3966 0db8 00F0 brlo .L228 - 3968 .LM362: - 3969 0dba 8901 movw r16,r18 - 3970 0dbc 0150 subi r16,1 - 3971 0dbe 1109 sbc r17,__zero_reg__ - 3972 .L228: - 3973 .LBB89: - 605:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** int found = -1; - 606:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** for (char *p = buffer; p <= buffer + fromIndex; p++) { - 3975 .LM363: - 3976 0dc0 FC01 movw r30,r24 - 3977 0dc2 A080 ld r10,Z - 3978 0dc4 B180 ldd r11,Z+1 - 3979 0dc6 C501 movw r24,r10 - 3980 .LBE89: - 605:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** int found = -1; - 3982 .LM364: - 3983 0dc8 DFEF ldi r29,lo8(-1) - 3984 0dca CFEF ldi r28,lo8(-1) - 3985 .LBB90: - 3987 .LM365: - 3988 0dcc 6501 movw r12,r10 - 3989 0dce C00E add r12,r16 - 3990 0dd0 D11E adc r13,r17 - 3991 .L230: - 3993 .LM366: - 3994 0dd2 C816 cp r12,r24 - 3995 0dd4 D906 cpc r13,r25 - 3996 0dd6 00F0 brlo .L235 - 607:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** p = strstr(p, s2.buffer); - 3998 .LM367: - 3999 0dd8 F701 movw r30,r14 - 4000 0dda 6081 ld r22,Z - 4001 0ddc 7181 ldd r23,Z+1 - 4002 0dde 0E94 0000 call strstr - 608:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (!p) break; - 4004 .LM368: - 4005 0de2 0097 sbiw r24,0 - 4006 0de4 01F0 breq .L235 - 609:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if ((unsigned int)(p - buffer) <= fromIndex) found = p - buffer; - 4008 .LM369: - 4009 0de6 9C01 movw r18,r24 - 4010 0de8 2A19 sub r18,r10 - 4011 0dea 3B09 sbc r19,r11 - 4012 0dec 0217 cp r16,r18 - 4013 0dee 1307 cpc r17,r19 - 4014 0df0 00F0 brlo .L229 - 4015 0df2 D22F mov r29,r18 - 4016 0df4 C32F mov r28,r19 - 4017 .L229: - 606:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** p = strstr(p, s2.buffer); - 4019 .LM370: - 4020 0df6 0196 adiw r24,1 - 4021 0df8 00C0 rjmp .L230 - 4022 .L233: - 4023 .LBE90: - 603:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (fromIndex >= len) fromIndex = len - 1; - 4025 .LM371: - 4026 0dfa 8FEF ldi r24,lo8(-1) - 4027 0dfc 9FEF ldi r25,lo8(-1) - 4028 0dfe 00C0 rjmp .L227 - 4029 .L235: - 4030 .LBB91: - 4031 0e00 8D2F mov r24,r29 - 4032 0e02 9C2F mov r25,r28 - 4033 .L227: - 4034 /* epilogue start */ - 4035 .LBE91: - 610:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 611:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return found; - 612:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 4037 .LM372: - 4038 0e04 DF91 pop r29 - 4039 0e06 CF91 pop r28 - 4040 0e08 1F91 pop r17 - 4041 0e0a 0F91 pop r16 - 4042 0e0c FF90 pop r15 - 4043 0e0e EF90 pop r14 - 4044 0e10 DF90 pop r13 - 4045 0e12 CF90 pop r12 - 4046 0e14 BF90 pop r11 - 4047 0e16 AF90 pop r10 - 4048 0e18 0895 ret - 4050 .Lscope70: - 4052 .stabd 78,0,0 - 4056 .global _ZNK6String11lastIndexOfERKS_ - 4058 _ZNK6String11lastIndexOfERKS_: - 4059 .stabd 46,0,0 - 597:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return lastIndexOf(s2, len - s2.len); - 4061 .LM373: - 4062 .LFBB71: - 4063 /* prologue: function */ - 4064 /* frame size = 0 */ - 4065 /* stack size = 0 */ - 4066 .L__stack_usage = 0 - 598:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 4068 .LM374: - 4069 0e1a FC01 movw r30,r24 - 4070 0e1c 4481 ldd r20,Z+4 - 4071 0e1e 5581 ldd r21,Z+5 - 4072 0e20 FB01 movw r30,r22 - 4073 0e22 2481 ldd r18,Z+4 - 4074 0e24 3581 ldd r19,Z+5 - 4075 0e26 421B sub r20,r18 - 4076 0e28 530B sbc r21,r19 - 4077 0e2a 0C94 0000 jmp _ZNK6String11lastIndexOfERKS_j - 4079 .Lscope71: - 4081 .stabd 78,0,0 - 4082 .section .rodata.str1.1,"aMS",@progbits,1 - 4083 .LC0: - 4084 0000 00 .string "" - 4085 .text - 4090 .global _ZNK6String9substringEjj - 4092 _ZNK6String9substringEjj: - 4093 .stabd 46,0,0 - 613:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 614:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** String String::substring(unsigned int left, unsigned int right) const - 615:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 4095 .LM375: - 4096 .LFBB72: - 4097 0e2e BF92 push r11 - 4098 0e30 CF92 push r12 - 4099 0e32 DF92 push r13 - 4100 0e34 EF92 push r14 - 4101 0e36 FF92 push r15 - 4102 0e38 0F93 push r16 - 4103 0e3a 1F93 push r17 - 4104 0e3c CF93 push r28 - 4105 0e3e DF93 push r29 - 4106 /* prologue: function */ - 4107 /* frame size = 0 */ - 4108 /* stack size = 9 */ - 4109 .L__stack_usage = 9 - 4110 0e40 7C01 movw r14,r24 - 4111 0e42 6B01 movw r12,r22 - 4112 0e44 8A01 movw r16,r20 - 4113 0e46 E901 movw r28,r18 - 4114 .LBB92: - 616:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (left > right) { - 4116 .LM376: - 4117 0e48 2417 cp r18,r20 - 4118 0e4a 3507 cpc r19,r21 - 4119 0e4c 00F4 brsh .L238 - 4120 0e4e 812F mov r24,r17 - 4121 0e50 8901 movw r16,r18 - 4122 0e52 C42F mov r28,r20 - 4123 0e54 D82F mov r29,r24 - 4124 .L238: - 4125 .LBE92: - 617:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** unsigned int temp = right; - 618:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** right = left; - 619:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** left = temp; - 620:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 621:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** String out; - 4127 .LM377: - 4128 0e56 60E0 ldi r22,lo8(.LC0) - 4129 0e58 70E0 ldi r23,hi8(.LC0) - 4130 0e5a C701 movw r24,r14 - 4131 0e5c 0E94 0000 call _ZN6StringC1EPKc - 622:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (left >= len) return out; - 4133 .LM378: - 4134 0e60 D601 movw r26,r12 - 4135 0e62 1496 adiw r26,4 - 4136 0e64 8D91 ld r24,X+ - 4137 0e66 9C91 ld r25,X - 4138 0e68 1597 sbiw r26,4+1 - 4139 0e6a 0817 cp r16,r24 - 4140 0e6c 1907 cpc r17,r25 - 4141 0e6e 00F4 brsh .L237 - 4142 0e70 8C17 cp r24,r28 - 4143 0e72 9D07 cpc r25,r29 - 4144 0e74 00F4 brsh .L240 - 4145 0e76 EC01 movw r28,r24 - 4146 .L240: - 623:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (right > len) right = len; - 624:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** char temp = buffer[right]; // save the replaced character - 4148 .LM379: - 4149 0e78 D601 movw r26,r12 - 4150 0e7a ED91 ld r30,X+ - 4151 0e7c FC91 ld r31,X - 4152 0e7e 1197 sbiw r26,1 - 4153 0e80 EC0F add r30,r28 - 4154 0e82 FD1F adc r31,r29 - 4155 0e84 B080 ld r11,Z - 625:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** buffer[right] = '\0'; - 4157 .LM380: - 4158 0e86 1082 st Z,__zero_reg__ - 626:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** out = buffer + left; // pointer arithmetic - 4160 .LM381: - 4161 0e88 6D91 ld r22,X+ - 4162 0e8a 7C91 ld r23,X - 4163 0e8c 600F add r22,r16 - 4164 0e8e 711F adc r23,r17 - 4165 0e90 C701 movw r24,r14 - 4166 0e92 0E94 0000 call _ZN6StringaSEPKc - 627:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** buffer[right] = temp; //restore character - 4168 .LM382: - 4169 0e96 D601 movw r26,r12 - 4170 0e98 ED91 ld r30,X+ - 4171 0e9a FC91 ld r31,X - 4172 0e9c EC0F add r30,r28 - 4173 0e9e FD1F adc r31,r29 - 4174 0ea0 B082 st Z,r11 - 4175 .L237: - 628:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return out; - 629:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 4177 .LM383: - 4178 0ea2 C701 movw r24,r14 - 4179 /* epilogue start */ - 4180 0ea4 DF91 pop r29 - 4181 0ea6 CF91 pop r28 - 4182 0ea8 1F91 pop r17 - 4183 0eaa 0F91 pop r16 - 4184 0eac FF90 pop r15 - 4185 0eae EF90 pop r14 - 4186 0eb0 DF90 pop r13 - 4187 0eb2 CF90 pop r12 - 4188 0eb4 BF90 pop r11 - 4189 0eb6 0895 ret - 4194 .Lscope72: - 4196 .stabd 78,0,0 - 4201 .global _ZN6String7replaceEcc - 4203 _ZN6String7replaceEcc: - 4204 .stabd 46,0,0 - 630:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 631:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** /*********************************************/ - 632:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** /* Modification */ - 633:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** /*********************************************/ - 634:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 635:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** void String::replace(char find, char replace) - 636:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 4206 .LM384: - 4207 .LFBB73: - 4208 /* prologue: function */ - 4209 /* frame size = 0 */ - 4210 /* stack size = 0 */ - 4211 .L__stack_usage = 0 - 637:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (!buffer) return; - 4213 .LM385: - 4214 0eb8 DC01 movw r26,r24 - 4215 0eba ED91 ld r30,X+ - 4216 0ebc FC91 ld r31,X - 4217 0ebe 3097 sbiw r30,0 - 4218 0ec0 01F0 breq .L241 - 4219 .L244: - 4220 .LBB93: - 638:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** for (char *p = buffer; *p; p++) { - 4222 .LM386: - 4223 0ec2 8081 ld r24,Z - 4224 0ec4 8823 tst r24 - 4225 0ec6 01F0 breq .L241 - 639:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (*p == find) *p = replace; - 4227 .LM387: - 4228 0ec8 8613 cpse r24,r22 - 4229 0eca 00C0 rjmp .L243 - 4231 .LM388: - 4232 0ecc 4083 st Z,r20 - 4233 .L243: - 638:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** for (char *p = buffer; *p; p++) { - 4235 .LM389: - 4236 0ece 3196 adiw r30,1 - 4237 0ed0 00C0 rjmp .L244 - 4238 .L241: - 4239 0ed2 0895 ret - 4240 .LBE93: - 4245 .Lscope73: - 4247 .stabd 78,0,0 - 4252 .global _ZN6String7replaceERKS_S1_ - 4254 _ZN6String7replaceERKS_S1_: - 4255 .stabd 46,0,0 - 640:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 641:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 642:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 643:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** void String::replace(const String& find, const String& replace) - 644:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 4257 .LM390: - 4258 .LFBB74: - 4259 0ed4 2F92 push r2 - 4260 0ed6 3F92 push r3 - 4261 0ed8 4F92 push r4 - 4262 0eda 5F92 push r5 - 4263 0edc 6F92 push r6 - 4264 0ede 7F92 push r7 - 4265 0ee0 8F92 push r8 - 4266 0ee2 9F92 push r9 - 4267 0ee4 AF92 push r10 - 4268 0ee6 BF92 push r11 - 4269 0ee8 CF92 push r12 - 4270 0eea DF92 push r13 - 4271 0eec EF92 push r14 - 4272 0eee FF92 push r15 - 4273 0ef0 0F93 push r16 - 4274 0ef2 1F93 push r17 - 4275 0ef4 CF93 push r28 - 4276 0ef6 DF93 push r29 - 4277 /* prologue: function */ - 4278 /* frame size = 0 */ - 4279 /* stack size = 18 */ - 4280 .L__stack_usage = 18 - 645:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (len == 0 || find.len == 0) return; - 4282 .LM391: - 4283 0ef8 FC01 movw r30,r24 - 4284 0efa 4480 ldd r4,Z+4 - 4285 0efc 5580 ldd r5,Z+5 - 4286 0efe 4114 cp r4,__zero_reg__ - 4287 0f00 5104 cpc r5,__zero_reg__ - 4288 0f02 01F4 brne .+2 - 4289 0f04 00C0 rjmp .L251 - 4291 .LM392: - 4292 0f06 FB01 movw r30,r22 - 4293 0f08 8480 ldd r8,Z+4 - 4294 0f0a 9580 ldd r9,Z+5 - 4295 0f0c 8114 cp r8,__zero_reg__ - 4296 0f0e 9104 cpc r9,__zero_reg__ - 4297 0f10 01F4 brne .+2 - 4298 0f12 00C0 rjmp .L251 - 4299 0f14 7A01 movw r14,r20 - 4300 0f16 6B01 movw r12,r22 - 4301 0f18 8C01 movw r16,r24 - 646:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** int diff = replace.len - find.len; - 4303 .LM393: - 4304 0f1a FA01 movw r30,r20 - 4305 0f1c 6480 ldd r6,Z+4 - 4306 0f1e 7580 ldd r7,Z+5 - 4307 0f20 6818 sub r6,r8 - 4308 0f22 7908 sbc r7,r9 - 647:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** char *readFrom = buffer; - 4310 .LM394: - 4311 0f24 FC01 movw r30,r24 - 4312 0f26 C081 ld r28,Z - 4313 0f28 D181 ldd r29,Z+1 - 4314 .LBB94: - 648:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** char *foundAt; - 649:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (diff == 0) { - 4316 .LM395: - 4317 0f2a 6114 cp r6,__zero_reg__ - 4318 0f2c 7104 cpc r7,__zero_reg__ - 4319 0f2e 01F4 brne .L255 - 4320 .L256: - 650:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** while ((foundAt = strstr(readFrom, find.buffer)) != NULL) { - 4322 .LM396: - 4323 0f30 F601 movw r30,r12 - 4324 0f32 6081 ld r22,Z - 4325 0f34 7181 ldd r23,Z+1 - 4326 0f36 CE01 movw r24,r28 - 4327 0f38 0E94 0000 call strstr - 4328 0f3c EC01 movw r28,r24 - 4329 0f3e 0097 sbiw r24,0 - 4330 0f40 01F4 brne .+2 - 4331 0f42 00C0 rjmp .L251 - 651:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** memcpy(foundAt, replace.buffer, replace.len); - 4333 .LM397: - 4334 0f44 F701 movw r30,r14 - 4335 0f46 6081 ld r22,Z - 4336 0f48 7181 ldd r23,Z+1 - 4337 0f4a 4481 ldd r20,Z+4 - 4338 0f4c 5581 ldd r21,Z+5 - 4339 0f4e 0E94 0000 call memcpy - 652:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** readFrom = foundAt + replace.len; - 4341 .LM398: - 4342 0f52 F701 movw r30,r14 - 4343 0f54 8481 ldd r24,Z+4 - 4344 0f56 9581 ldd r25,Z+5 - 4345 0f58 C80F add r28,r24 - 4346 0f5a D91F adc r29,r25 - 650:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** while ((foundAt = strstr(readFrom, find.buffer)) != NULL) { - 4348 .LM399: - 4349 0f5c 00C0 rjmp .L256 - 4350 .L255: - 4351 .LBB95: - 653:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 654:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } else if (diff < 0) { - 4353 .LM400: - 4354 0f5e 77FE sbrs r7,7 - 4355 0f60 00C0 rjmp .L257 - 4356 0f62 5E01 movw r10,r28 - 4357 .L259: - 4358 .LBB96: - 655:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** char *writeTo = buffer; - 656:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** while ((foundAt = strstr(readFrom, find.buffer)) != NULL) { - 4360 .LM401: - 4361 0f64 F601 movw r30,r12 - 4362 0f66 6081 ld r22,Z - 4363 0f68 7181 ldd r23,Z+1 - 4364 0f6a C501 movw r24,r10 - 4365 0f6c 0E94 0000 call strstr - 4366 0f70 2C01 movw r4,r24 - 4367 0f72 0097 sbiw r24,0 - 4368 0f74 01F0 breq .L258 - 4369 .LBB97: - 657:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** unsigned int n = foundAt - readFrom; - 4371 .LM402: - 4372 0f76 4C01 movw r8,r24 - 4373 0f78 8A18 sub r8,r10 - 4374 0f7a 9B08 sbc r9,r11 - 658:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** memcpy(writeTo, readFrom, n); - 4376 .LM403: - 4377 0f7c A401 movw r20,r8 - 4378 0f7e B501 movw r22,r10 - 4379 0f80 CE01 movw r24,r28 - 4380 0f82 0E94 0000 call memcpy - 659:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** writeTo += n; - 4382 .LM404: - 4383 0f86 C80D add r28,r8 - 4384 0f88 D91D adc r29,r9 - 660:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** memcpy(writeTo, replace.buffer, replace.len); - 4386 .LM405: - 4387 0f8a F701 movw r30,r14 - 4388 0f8c 6081 ld r22,Z - 4389 0f8e 7181 ldd r23,Z+1 - 4390 0f90 4481 ldd r20,Z+4 - 4391 0f92 5581 ldd r21,Z+5 - 4392 0f94 CE01 movw r24,r28 - 4393 0f96 0E94 0000 call memcpy - 661:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** writeTo += replace.len; - 4395 .LM406: - 4396 0f9a F701 movw r30,r14 - 4397 0f9c 8481 ldd r24,Z+4 - 4398 0f9e 9581 ldd r25,Z+5 - 4399 0fa0 C80F add r28,r24 - 4400 0fa2 D91F adc r29,r25 - 662:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** readFrom = foundAt + find.len; - 4402 .LM407: - 4403 0fa4 F601 movw r30,r12 - 4404 0fa6 A480 ldd r10,Z+4 - 4405 0fa8 B580 ldd r11,Z+5 - 4406 0faa A40C add r10,r4 - 4407 0fac B51C adc r11,r5 - 663:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** len += diff; - 4409 .LM408: - 4410 0fae F801 movw r30,r16 - 4411 0fb0 8481 ldd r24,Z+4 - 4412 0fb2 9581 ldd r25,Z+5 - 4413 0fb4 860D add r24,r6 - 4414 0fb6 971D adc r25,r7 - 4415 0fb8 9583 std Z+5,r25 - 4416 0fba 8483 std Z+4,r24 - 4417 .LBE97: - 656:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** unsigned int n = foundAt - readFrom; - 4419 .LM409: - 4420 0fbc 00C0 rjmp .L259 - 4421 .L258: - 664:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 665:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** strcpy(writeTo, readFrom); - 4423 .LM410: - 4424 0fbe B501 movw r22,r10 - 4425 0fc0 CE01 movw r24,r28 - 4426 /* epilogue start */ - 4427 .LBE96: - 4428 .LBE95: - 4429 .LBE94: - 666:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } else { - 667:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** unsigned int size = len; // compute size needed for result - 668:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** while ((foundAt = strstr(readFrom, find.buffer)) != NULL) { - 669:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** readFrom = foundAt + find.len; - 670:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** size += diff; - 671:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 672:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (size == len) return; - 673:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (size > capacity && !changeBuffer(size)) return; // XXX: tell user! - 674:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** int index = len - 1; - 675:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** while (index >= 0 && (index = lastIndexOf(find, index)) >= 0) { - 676:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** readFrom = buffer + index + find.len; - 677:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** memmove(readFrom + diff, readFrom, len - (readFrom - buffer)); - 678:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** len += diff; - 679:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** buffer[len] = 0; - 680:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** memcpy(buffer + index, replace.buffer, replace.len); - 681:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** index--; - 682:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 683:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 684:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 4431 .LM411: - 4432 0fc2 DF91 pop r29 - 4433 0fc4 CF91 pop r28 - 4434 0fc6 1F91 pop r17 - 4435 0fc8 0F91 pop r16 - 4436 0fca FF90 pop r15 - 4437 0fcc EF90 pop r14 - 4438 0fce DF90 pop r13 - 4439 0fd0 CF90 pop r12 - 4440 0fd2 BF90 pop r11 - 4441 0fd4 AF90 pop r10 - 4442 0fd6 9F90 pop r9 - 4443 0fd8 8F90 pop r8 - 4444 0fda 7F90 pop r7 - 4445 0fdc 6F90 pop r6 - 4446 0fde 5F90 pop r5 - 4447 0fe0 4F90 pop r4 - 4448 0fe2 3F90 pop r3 - 4449 0fe4 2F90 pop r2 - 4450 .LBB101: - 4451 .LBB100: - 4452 .LBB98: - 665:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } else { - 4454 .LM412: - 4455 0fe6 0C94 0000 jmp strcpy - 4456 .L257: - 4457 .LBE98: - 4458 .LBB99: - 668:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** readFrom = foundAt + find.len; - 4460 .LM413: - 4461 0fea FB01 movw r30,r22 - 4462 0fec 2080 ld r2,Z - 4463 0fee 3180 ldd r3,Z+1 - 4464 0ff0 5201 movw r10,r4 - 4465 .L261: - 4466 0ff2 B101 movw r22,r2 - 4467 0ff4 CE01 movw r24,r28 - 4468 0ff6 0E94 0000 call strstr - 4469 0ffa 0097 sbiw r24,0 - 4470 0ffc 01F0 breq .L260 - 669:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** size += diff; - 4472 .LM414: - 4473 0ffe EC01 movw r28,r24 - 4474 1000 C80D add r28,r8 - 4475 1002 D91D adc r29,r9 - 670:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 4477 .LM415: - 4478 1004 A60C add r10,r6 - 4479 1006 B71C adc r11,r7 - 668:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** readFrom = foundAt + find.len; - 4481 .LM416: - 4482 1008 00C0 rjmp .L261 - 4483 .L260: - 672:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (size > capacity && !changeBuffer(size)) return; // XXX: tell user! - 4485 .LM417: - 4486 100a A414 cp r10,r4 - 4487 100c B504 cpc r11,r5 - 4488 100e 01F4 brne .+2 - 4489 1010 00C0 rjmp .L251 - 673:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** int index = len - 1; - 4491 .LM418: - 4492 1012 F801 movw r30,r16 - 4493 1014 8281 ldd r24,Z+2 - 4494 1016 9381 ldd r25,Z+3 - 4495 1018 8A15 cp r24,r10 - 4496 101a 9B05 cpc r25,r11 - 4497 101c 00F4 brsh .L262 - 673:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** int index = len - 1; - 4499 .LM419: - 4500 101e B501 movw r22,r10 - 4501 1020 C801 movw r24,r16 - 4502 1022 0E94 0000 call _ZN6String12changeBufferEj - 4503 1026 8823 tst r24 - 4504 1028 01F0 breq .L251 - 4505 .L262: - 674:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** while (index >= 0 && (index = lastIndexOf(find, index)) >= 0) { - 4507 .LM420: - 4508 102a F801 movw r30,r16 - 4509 102c 4481 ldd r20,Z+4 - 4510 102e 5581 ldd r21,Z+5 - 4511 .L274: - 681:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 4513 .LM421: - 4514 1030 4150 subi r20,1 - 4515 1032 5109 sbc r21,__zero_reg__ - 675:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** readFrom = buffer + index + find.len; - 4517 .LM422: - 4518 1034 57FD sbrc r21,7 - 4519 1036 00C0 rjmp .L251 - 675:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** readFrom = buffer + index + find.len; - 4521 .LM423: - 4522 1038 B601 movw r22,r12 - 4523 103a C801 movw r24,r16 - 4524 103c 0E94 0000 call _ZNK6String11lastIndexOfERKS_j - 4525 1040 EC01 movw r28,r24 - 4526 1042 97FD sbrc r25,7 - 4527 1044 00C0 rjmp .L251 - 676:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** memmove(readFrom + diff, readFrom, len - (readFrom - buffer)); - 4529 .LM424: - 4530 1046 F601 movw r30,r12 - 4531 1048 2481 ldd r18,Z+4 - 4532 104a 3581 ldd r19,Z+5 - 4533 104c 280F add r18,r24 - 4534 104e 391F adc r19,r25 - 4535 1050 F801 movw r30,r16 - 4536 1052 8081 ld r24,Z - 4537 1054 9181 ldd r25,Z+1 - 4538 1056 820F add r24,r18 - 4539 1058 931F adc r25,r19 - 677:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** len += diff; - 4541 .LM425: - 4542 105a 4481 ldd r20,Z+4 - 4543 105c 5581 ldd r21,Z+5 - 4544 105e 421B sub r20,r18 - 4545 1060 530B sbc r21,r19 - 4546 1062 BC01 movw r22,r24 - 4547 1064 860D add r24,r6 - 4548 1066 971D adc r25,r7 - 4549 1068 0E94 0000 call memmove - 678:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** buffer[len] = 0; - 4551 .LM426: - 4552 106c F801 movw r30,r16 - 4553 106e 8481 ldd r24,Z+4 - 4554 1070 9581 ldd r25,Z+5 - 4555 1072 860D add r24,r6 - 4556 1074 971D adc r25,r7 - 4557 1076 9583 std Z+5,r25 - 4558 1078 8483 std Z+4,r24 - 679:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** memcpy(buffer + index, replace.buffer, replace.len); - 4560 .LM427: - 4561 107a 2081 ld r18,Z - 4562 107c 3181 ldd r19,Z+1 - 4563 107e F901 movw r30,r18 - 4564 1080 E80F add r30,r24 - 4565 1082 F91F adc r31,r25 - 4566 1084 1082 st Z,__zero_reg__ - 680:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** index--; - 4568 .LM428: - 4569 1086 F801 movw r30,r16 - 4570 1088 8081 ld r24,Z - 4571 108a 9181 ldd r25,Z+1 - 4572 108c F701 movw r30,r14 - 4573 108e 6081 ld r22,Z - 4574 1090 7181 ldd r23,Z+1 - 4575 1092 4481 ldd r20,Z+4 - 4576 1094 5581 ldd r21,Z+5 - 4577 1096 8C0F add r24,r28 - 4578 1098 9D1F adc r25,r29 - 4579 109a 0E94 0000 call memcpy - 681:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 4581 .LM429: - 4582 109e AE01 movw r20,r28 - 4583 10a0 00C0 rjmp .L274 - 4584 .L251: - 4585 /* epilogue start */ - 4586 .LBE99: - 4587 .LBE100: - 4588 .LBE101: - 4590 .LM430: - 4591 10a2 DF91 pop r29 - 4592 10a4 CF91 pop r28 - 4593 10a6 1F91 pop r17 - 4594 10a8 0F91 pop r16 - 4595 10aa FF90 pop r15 - 4596 10ac EF90 pop r14 - 4597 10ae DF90 pop r13 - 4598 10b0 CF90 pop r12 - 4599 10b2 BF90 pop r11 - 4600 10b4 AF90 pop r10 - 4601 10b6 9F90 pop r9 - 4602 10b8 8F90 pop r8 - 4603 10ba 7F90 pop r7 - 4604 10bc 6F90 pop r6 - 4605 10be 5F90 pop r5 - 4606 10c0 4F90 pop r4 - 4607 10c2 3F90 pop r3 - 4608 10c4 2F90 pop r2 - 4609 10c6 0895 ret - 4620 .Lscope74: - 4622 .stabd 78,0,0 - 4627 .global _ZN6String6removeEjj - 4629 _ZN6String6removeEjj: - 4630 .stabd 46,0,0 - 685:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 686:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** void String::remove(unsigned int index){ - 687:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** // Pass the biggest integer as the count. The remove method - 688:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** // below will take care of truncating it at the end of the - 689:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** // string. - 690:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** remove(index, (unsigned int)-1); - 691:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 692:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 693:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** void String::remove(unsigned int index, unsigned int count){ - 4632 .LM431: - 4633 .LFBB75: - 4634 10c8 CF93 push r28 - 4635 10ca DF93 push r29 - 4636 /* prologue: function */ - 4637 /* frame size = 0 */ - 4638 /* stack size = 2 */ - 4639 .L__stack_usage = 2 - 694:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (index >= len) { return; } - 4641 .LM432: - 4642 10cc DC01 movw r26,r24 - 4643 10ce 1496 adiw r26,4 - 4644 10d0 ED91 ld r30,X+ - 4645 10d2 FC91 ld r31,X - 4646 10d4 1597 sbiw r26,4+1 - 4647 10d6 6E17 cp r22,r30 - 4648 10d8 7F07 cpc r23,r31 - 4649 10da 00F4 brsh .L275 - 695:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (count <= 0) { return; } - 4651 .LM433: - 4652 10dc 4115 cp r20,__zero_reg__ - 4653 10de 5105 cpc r21,__zero_reg__ - 4654 10e0 01F0 breq .L275 - 696:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (count > len - index) { count = len - index; } - 4656 .LM434: - 4657 10e2 DF01 movw r26,r30 - 4658 10e4 A61B sub r26,r22 - 4659 10e6 B70B sbc r27,r23 - 4660 10e8 9A01 movw r18,r20 - 4661 10ea A417 cp r26,r20 - 4662 10ec B507 cpc r27,r21 - 4663 10ee 00F4 brsh .L277 - 4664 10f0 9D01 movw r18,r26 - 4665 .L277: - 4666 10f2 DB01 movw r26,r22 - 4667 10f4 EC01 movw r28,r24 - 697:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** char *writeTo = buffer + index; - 4669 .LM435: - 4670 10f6 8881 ld r24,Y - 4671 10f8 9981 ldd r25,Y+1 - 698:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** len = len - count; - 4673 .LM436: - 4674 10fa E21B sub r30,r18 - 4675 10fc F30B sbc r31,r19 - 4676 10fe FD83 std Y+5,r31 - 4677 1100 EC83 std Y+4,r30 - 699:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** strncpy(writeTo, buffer + index + count,len - index); - 4679 .LM437: - 4680 1102 AF01 movw r20,r30 - 4681 1104 461B sub r20,r22 - 4682 1106 570B sbc r21,r23 - 4683 1108 260F add r18,r22 - 4684 110a 371F adc r19,r23 - 4685 110c BC01 movw r22,r24 - 4686 110e 620F add r22,r18 - 4687 1110 731F adc r23,r19 - 4688 1112 8A0F add r24,r26 - 4689 1114 9B1F adc r25,r27 - 4690 1116 0E94 0000 call strncpy - 700:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** buffer[len] = 0; - 4692 .LM438: - 4693 111a E881 ld r30,Y - 4694 111c F981 ldd r31,Y+1 - 4695 111e 8C81 ldd r24,Y+4 - 4696 1120 9D81 ldd r25,Y+5 - 4697 1122 E80F add r30,r24 - 4698 1124 F91F adc r31,r25 - 4699 1126 1082 st Z,__zero_reg__ - 4700 .L275: - 4701 /* epilogue start */ - 701:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 4703 .LM439: - 4704 1128 DF91 pop r29 - 4705 112a CF91 pop r28 - 4706 112c 0895 ret - 4708 .Lscope75: - 4710 .stabd 78,0,0 - 4714 .global _ZN6String6removeEj - 4716 _ZN6String6removeEj: - 4717 .stabd 46,0,0 - 686:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** // Pass the biggest integer as the count. The remove method - 4719 .LM440: - 4720 .LFBB76: - 4721 /* prologue: function */ - 4722 /* frame size = 0 */ - 4723 /* stack size = 0 */ - 4724 .L__stack_usage = 0 - 690:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 4726 .LM441: - 4727 112e 4FEF ldi r20,lo8(-1) - 4728 1130 5FEF ldi r21,lo8(-1) - 4729 1132 0C94 0000 jmp _ZN6String6removeEjj - 4731 .Lscope76: - 4733 .stabd 78,0,0 - 4736 .global _ZN6String11toLowerCaseEv - 4738 _ZN6String11toLowerCaseEv: - 4739 .stabd 46,0,0 - 702:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 703:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** void String::toLowerCase(void) - 704:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 4741 .LM442: - 4742 .LFBB77: - 4743 1136 CF93 push r28 - 4744 1138 DF93 push r29 - 4745 /* prologue: function */ - 4746 /* frame size = 0 */ - 4747 /* stack size = 2 */ - 4748 .L__stack_usage = 2 - 705:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (!buffer) return; - 4750 .LM443: - 4751 113a FC01 movw r30,r24 - 4752 113c C081 ld r28,Z - 4753 113e D181 ldd r29,Z+1 - 4754 1140 2097 sbiw r28,0 - 4755 1142 01F0 breq .L282 - 4756 .L284: - 4757 .LBB102: - 706:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** for (char *p = buffer; *p; p++) { - 4759 .LM444: - 4760 1144 8881 ld r24,Y - 4761 1146 8823 tst r24 - 4762 1148 01F0 breq .L282 - 707:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** *p = tolower(*p); - 4764 .LM445: - 4765 114a 90E0 ldi r25,0 - 4766 114c 0E94 0000 call tolower - 4767 1150 8993 st Y+,r24 - 706:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** for (char *p = buffer; *p; p++) { - 4769 .LM446: - 4770 1152 00C0 rjmp .L284 - 4771 .L282: - 4772 /* epilogue start */ - 4773 .LBE102: - 708:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 709:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 4775 .LM447: - 4776 1154 DF91 pop r29 - 4777 1156 CF91 pop r28 - 4778 1158 0895 ret - 4783 .Lscope77: - 4785 .stabd 78,0,0 - 4788 .global _ZN6String11toUpperCaseEv - 4790 _ZN6String11toUpperCaseEv: - 4791 .stabd 46,0,0 - 710:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 711:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** void String::toUpperCase(void) - 712:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 4793 .LM448: - 4794 .LFBB78: - 4795 115a CF93 push r28 - 4796 115c DF93 push r29 - 4797 /* prologue: function */ - 4798 /* frame size = 0 */ - 4799 /* stack size = 2 */ - 4800 .L__stack_usage = 2 - 713:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (!buffer) return; - 4802 .LM449: - 4803 115e FC01 movw r30,r24 - 4804 1160 C081 ld r28,Z - 4805 1162 D181 ldd r29,Z+1 - 4806 1164 2097 sbiw r28,0 - 4807 1166 01F0 breq .L291 - 4808 .L293: - 4809 .LBB103: - 714:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** for (char *p = buffer; *p; p++) { - 4811 .LM450: - 4812 1168 8881 ld r24,Y - 4813 116a 8823 tst r24 - 4814 116c 01F0 breq .L291 - 715:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** *p = toupper(*p); - 4816 .LM451: - 4817 116e 90E0 ldi r25,0 - 4818 1170 0E94 0000 call toupper - 4819 1174 8993 st Y+,r24 - 714:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** for (char *p = buffer; *p; p++) { - 4821 .LM452: - 4822 1176 00C0 rjmp .L293 - 4823 .L291: - 4824 /* epilogue start */ - 4825 .LBE103: - 716:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 717:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 4827 .LM453: - 4828 1178 DF91 pop r29 - 4829 117a CF91 pop r28 - 4830 117c 0895 ret - 4835 .Lscope78: - 4837 .stabd 78,0,0 - 4840 .global _ZN6String4trimEv - 4842 _ZN6String4trimEv: - 4843 .stabd 46,0,0 - 718:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 719:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** void String::trim(void) - 720:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 4845 .LM454: - 4846 .LFBB79: - 4847 117e AF92 push r10 - 4848 1180 BF92 push r11 - 4849 1182 CF92 push r12 - 4850 1184 DF92 push r13 - 4851 1186 EF92 push r14 - 4852 1188 FF92 push r15 - 4853 118a 0F93 push r16 - 4854 118c 1F93 push r17 - 4855 118e CF93 push r28 - 4856 1190 DF93 push r29 - 4857 /* prologue: function */ - 4858 /* frame size = 0 */ - 4859 /* stack size = 10 */ - 4860 .L__stack_usage = 10 - 721:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (!buffer || len == 0) return; - 4862 .LM455: - 4863 1192 DC01 movw r26,r24 - 4864 1194 CD90 ld r12,X+ - 4865 1196 DC90 ld r13,X - 4866 1198 1197 sbiw r26,1 - 4867 119a C114 cp r12,__zero_reg__ - 4868 119c D104 cpc r13,__zero_reg__ - 4869 119e 01F4 brne .+2 - 4870 11a0 00C0 rjmp .L300 - 4872 .LM456: - 4873 11a2 1496 adiw r26,4 - 4874 11a4 CD91 ld r28,X+ - 4875 11a6 DC91 ld r29,X - 4876 11a8 1597 sbiw r26,4+1 - 4877 11aa 2097 sbiw r28,0 - 4878 11ac 01F0 breq .L300 - 4879 11ae 8C01 movw r16,r24 - 4880 11b0 7601 movw r14,r12 - 4881 .L302: - 4882 11b2 5701 movw r10,r14 - 4883 11b4 BFEF ldi r27,-1 - 4884 11b6 AB1A sub r10,r27 - 4885 11b8 BB0A sbc r11,r27 - 722:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** char *begin = buffer; - 723:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** while (isspace(*begin)) begin++; - 4887 .LM457: - 4888 11ba F701 movw r30,r14 - 4889 11bc 8081 ld r24,Z - 4890 11be 90E0 ldi r25,0 - 4891 11c0 0E94 0000 call isspace - 4892 11c4 892B or r24,r25 - 4893 11c6 01F0 breq .L316 - 4894 11c8 7501 movw r14,r10 - 4895 11ca 00C0 rjmp .L302 - 4896 .L316: - 724:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** char *end = buffer + len - 1; - 4898 .LM458: - 4899 11cc 2197 sbiw r28,1 - 4900 11ce CC0D add r28,r12 - 4901 11d0 DD1D adc r29,r13 - 4902 .L304: - 725:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** while (isspace(*end) && end >= begin) end--; - 4904 .LM459: - 4905 11d2 8881 ld r24,Y - 4906 11d4 90E0 ldi r25,0 - 4907 11d6 0E94 0000 call isspace - 4908 11da 892B or r24,r25 - 4909 11dc 01F0 breq .L303 - 4911 .LM460: - 4912 11de CE15 cp r28,r14 - 4913 11e0 DF05 cpc r29,r15 - 4914 11e2 00F0 brlo .L303 - 4916 .LM461: - 4917 11e4 2197 sbiw r28,1 - 4918 11e6 00C0 rjmp .L304 - 4919 .L303: - 726:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** len = end + 1 - begin; - 4921 .LM462: - 4922 11e8 AE01 movw r20,r28 - 4923 11ea 4F5F subi r20,-1 - 4924 11ec 5F4F sbci r21,-1 - 4925 11ee 4E19 sub r20,r14 - 4926 11f0 5F09 sbc r21,r15 - 4927 11f2 D801 movw r26,r16 - 4928 11f4 1596 adiw r26,4+1 - 4929 11f6 5C93 st X,r21 - 4930 11f8 4E93 st -X,r20 - 4931 11fa 1497 sbiw r26,4 - 727:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (begin > buffer) memcpy(buffer, begin, len); - 4933 .LM463: - 4934 11fc CE14 cp r12,r14 - 4935 11fe DF04 cpc r13,r15 - 4936 1200 00F4 brsh .L305 - 4938 .LM464: - 4939 1202 B701 movw r22,r14 - 4940 1204 C601 movw r24,r12 - 4941 1206 0E94 0000 call memcpy - 4942 .L305: - 728:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** buffer[len] = 0; - 4944 .LM465: - 4945 120a D801 movw r26,r16 - 4946 120c ED91 ld r30,X+ - 4947 120e FC91 ld r31,X - 4948 1210 1197 sbiw r26,1 - 4949 1212 1496 adiw r26,4 - 4950 1214 8D91 ld r24,X+ - 4951 1216 9C91 ld r25,X - 4952 1218 1597 sbiw r26,4+1 - 4953 121a E80F add r30,r24 - 4954 121c F91F adc r31,r25 - 4955 121e 1082 st Z,__zero_reg__ - 4956 .L300: - 4957 /* epilogue start */ - 729:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 4959 .LM466: - 4960 1220 DF91 pop r29 - 4961 1222 CF91 pop r28 - 4962 1224 1F91 pop r17 - 4963 1226 0F91 pop r16 - 4964 1228 FF90 pop r15 - 4965 122a EF90 pop r14 - 4966 122c DF90 pop r13 - 4967 122e CF90 pop r12 - 4968 1230 BF90 pop r11 - 4969 1232 AF90 pop r10 - 4970 1234 0895 ret - 4975 .Lscope79: - 4977 .stabd 78,0,0 - 4980 .global _ZNK6String5toIntEv - 4982 _ZNK6String5toIntEv: - 4983 .stabd 46,0,0 - 730:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 731:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** /*********************************************/ - 732:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** /* Parsing / Conversion */ - 733:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** /*********************************************/ - 734:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 735:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** long String::toInt(void) const - 736:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 4985 .LM467: - 4986 .LFBB80: - 4987 /* prologue: function */ - 4988 /* frame size = 0 */ - 4989 /* stack size = 0 */ - 4990 .L__stack_usage = 0 - 737:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (buffer) return atol(buffer); - 4992 .LM468: - 4993 1236 FC01 movw r30,r24 - 4994 1238 8081 ld r24,Z - 4995 123a 9181 ldd r25,Z+1 - 4996 123c 0097 sbiw r24,0 - 4997 123e 01F0 breq .L318 - 4999 .LM469: - 5000 1240 0C94 0000 jmp atol - 5001 .L318: - 738:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return 0; - 739:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 5003 .LM470: - 5004 1244 60E0 ldi r22,0 - 5005 1246 70E0 ldi r23,0 - 5006 1248 CB01 movw r24,r22 - 5007 124a 0895 ret - 5009 .Lscope80: - 5011 .stabd 78,0,0 - 5014 .global _ZNK6String8toDoubleEv - 5016 _ZNK6String8toDoubleEv: - 5017 .stabd 46,0,0 - 740:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 741:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** float String::toFloat(void) const - 742:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 743:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return float(toDouble()); - 744:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 745:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** - 746:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** double String::toDouble(void) const - 747:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** { - 5019 .LM471: - 5020 .LFBB81: - 5021 /* prologue: function */ - 5022 /* frame size = 0 */ - 5023 /* stack size = 0 */ - 5024 .L__stack_usage = 0 - 748:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** if (buffer) return atof(buffer); - 5026 .LM472: - 5027 124c FC01 movw r30,r24 - 5028 124e 8081 ld r24,Z - 5029 1250 9181 ldd r25,Z+1 - 5030 1252 0097 sbiw r24,0 - 5031 1254 01F0 breq .L320 - 5033 .LM473: - 5034 1256 0C94 0000 jmp atof - 5035 .L320: - 749:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return 0; - 750:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 5037 .LM474: - 5038 125a 60E0 ldi r22,0 - 5039 125c 70E0 ldi r23,0 - 5040 125e CB01 movw r24,r22 - 5041 1260 0895 ret - 5043 .Lscope81: - 5045 .stabd 78,0,0 - 5048 .global _ZNK6String7toFloatEv - 5050 _ZNK6String7toFloatEv: - 5051 .stabd 46,0,0 - 742:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** return float(toDouble()); - 5053 .LM475: - 5054 .LFBB82: - 5055 /* prologue: function */ - 5056 /* frame size = 0 */ - 5057 /* stack size = 0 */ - 5058 .L__stack_usage = 0 - 743:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.cpp **** } - 5060 .LM476: - 5061 1262 0C94 0000 jmp _ZNK6String8toDoubleEv - 5063 .Lscope82: - 5065 .stabd 78,0,0 - 5066 .local _ZZN6StringixEjE19dummy_writable_char - 5067 .comm _ZZN6StringixEjE19dummy_writable_char,1,1 - 5069 .Letext0: - 5070 .ident "GCC: (GNU) 5.4.0" - 5071 .global __do_copy_data - 5072 .global __do_clear_bss -DEFINED SYMBOLS - *ABS*:0000000000000000 WString.cpp - /tmp/cc9igFCx.s:2 *ABS*:000000000000003e __SP_H__ - /tmp/cc9igFCx.s:3 *ABS*:000000000000003d __SP_L__ - /tmp/cc9igFCx.s:4 *ABS*:000000000000003f __SREG__ - /tmp/cc9igFCx.s:5 *ABS*:0000000000000000 __tmp_reg__ - /tmp/cc9igFCx.s:6 *ABS*:0000000000000001 __zero_reg__ - /tmp/cc9igFCx.s:121 .text.itoa:0000000000000000 itoa - /tmp/cc9igFCx.s:148 .text.ltoa:0000000000000000 ltoa - /tmp/cc9igFCx.s:173 .text.utoa:0000000000000000 utoa - /tmp/cc9igFCx.s:198 .text.ultoa:0000000000000000 ultoa - /tmp/cc9igFCx.s:221 .text:0000000000000000 _ZN6StringD2Ev - /tmp/cc9igFCx.s:221 .text:0000000000000000 _ZN6StringD1Ev - /tmp/cc9igFCx.s:250 .text:000000000000000a _ZN6String10invalidateEv - /tmp/cc9igFCx.s:297 .text:000000000000002e _ZN6String12changeBufferEj - /tmp/cc9igFCx.s:357 .text:0000000000000062 _ZN6String7reserveEj - /tmp/cc9igFCx.s:421 .text:000000000000009a _ZN6String4copyEPKcj - /tmp/cc9igFCx.s:484 .text:00000000000000dc _ZN6StringC2EPKc - /tmp/cc9igFCx.s:484 .text:00000000000000dc _ZN6StringC1EPKc - /tmp/cc9igFCx.s:543 .text:0000000000000106 _ZN6String4copyEPK19__FlashStringHelperj - /tmp/cc9igFCx.s:606 .text:0000000000000148 _ZN6StringaSERKS_ - /tmp/cc9igFCx.s:658 .text:0000000000000176 _ZN6StringC2ERKS_ - /tmp/cc9igFCx.s:658 .text:0000000000000176 _ZN6StringC1ERKS_ - /tmp/cc9igFCx.s:700 .text:0000000000000188 _ZN6StringaSEPKc - /tmp/cc9igFCx.s:751 .text:00000000000001b6 _ZN6StringC2Ec - /tmp/cc9igFCx.s:751 .text:00000000000001b6 _ZN6StringC1Ec - /tmp/cc9igFCx.s:819 .text:00000000000001e6 _ZN6StringC2Ehh - /tmp/cc9igFCx.s:819 .text:00000000000001e6 _ZN6StringC1Ehh - /tmp/cc9igFCx.s:905 .text:0000000000000240 _ZN6StringC2Eih - /tmp/cc9igFCx.s:905 .text:0000000000000240 _ZN6StringC1Eih - /tmp/cc9igFCx.s:990 .text:0000000000000298 _ZN6StringC2Ejh - /tmp/cc9igFCx.s:990 .text:0000000000000298 _ZN6StringC1Ejh - /tmp/cc9igFCx.s:1075 .text:00000000000002f0 _ZN6StringC2Elh - /tmp/cc9igFCx.s:1075 .text:00000000000002f0 _ZN6StringC1Elh - /tmp/cc9igFCx.s:1161 .text:000000000000034a _ZN6StringC2Emh - /tmp/cc9igFCx.s:1161 .text:000000000000034a _ZN6StringC1Emh - /tmp/cc9igFCx.s:1247 .text:00000000000003a4 _ZN6StringC2Efh - /tmp/cc9igFCx.s:1247 .text:00000000000003a4 _ZN6StringC1Efh - /tmp/cc9igFCx.s:1334 .text:0000000000000404 _ZN6StringC2Edh - /tmp/cc9igFCx.s:1334 .text:0000000000000404 _ZN6StringC1Edh - /tmp/cc9igFCx.s:1420 .text:0000000000000464 _ZN6StringaSEPK19__FlashStringHelper - /tmp/cc9igFCx.s:1482 .text:0000000000000498 _ZN6StringC2EPK19__FlashStringHelper - /tmp/cc9igFCx.s:1482 .text:0000000000000498 _ZN6StringC1EPK19__FlashStringHelper - /tmp/cc9igFCx.s:1525 .text:00000000000004aa _ZN6String6concatEPKcj - /tmp/cc9igFCx.s:1611 .text:0000000000000506 _ZN6String6concatERKS_ - /tmp/cc9igFCx.s:1637 .text:0000000000000514 _ZN6String6concatEPKc - /tmp/cc9igFCx.s:1677 .text:0000000000000532 _ZN6String6concatEc - /tmp/cc9igFCx.s:1725 .text:0000000000000558 _ZN6String6concatEh - /tmp/cc9igFCx.s:1796 .text:00000000000005b0 _ZN6String6concatEi - /tmp/cc9igFCx.s:1872 .text:0000000000000612 _ZN6String6concatEj - /tmp/cc9igFCx.s:1948 .text:0000000000000674 _ZN6String6concatEl - /tmp/cc9igFCx.s:2025 .text:00000000000006d8 _ZN6String6concatEm - /tmp/cc9igFCx.s:2102 .text:000000000000073c _ZN6String6concatEf - /tmp/cc9igFCx.s:2179 .text:000000000000079e _ZN6String6concatEd - /tmp/cc9igFCx.s:2256 .text:0000000000000800 _ZN6String6concatEPK19__FlashStringHelper - /tmp/cc9igFCx.s:2353 .text:0000000000000860 _ZplRK15StringSumHelperRK6String - /tmp/cc9igFCx.s:2396 .text:0000000000000886 _ZplRK15StringSumHelperPKc - /tmp/cc9igFCx.s:2449 .text:00000000000008b8 _ZplRK15StringSumHelperc - /tmp/cc9igFCx.s:2487 .text:00000000000008d4 _ZplRK15StringSumHelperh - /tmp/cc9igFCx.s:2525 .text:00000000000008f0 _ZplRK15StringSumHelperi - /tmp/cc9igFCx.s:2563 .text:000000000000090c _ZplRK15StringSumHelperj - /tmp/cc9igFCx.s:2601 .text:0000000000000928 _ZplRK15StringSumHelperl - /tmp/cc9igFCx.s:2639 .text:0000000000000944 _ZplRK15StringSumHelperm - /tmp/cc9igFCx.s:2677 .text:0000000000000960 _ZplRK15StringSumHelperf - /tmp/cc9igFCx.s:2715 .text:000000000000097c _ZplRK15StringSumHelperd - /tmp/cc9igFCx.s:2753 .text:0000000000000998 _ZplRK15StringSumHelperPK19__FlashStringHelper - /tmp/cc9igFCx.s:2791 .text:00000000000009b4 _ZNK6String9compareToERKS_ - /tmp/cc9igFCx.s:2889 .text:0000000000000a14 _ZNK6String6equalsERKS_ - /tmp/cc9igFCx.s:2933 .text:0000000000000a36 _ZNK6String6equalsEPKc - /tmp/cc9igFCx.s:3000 .text:0000000000000a74 _ZNK6StringltERKS_ - /tmp/cc9igFCx.s:3028 .text:0000000000000a82 _ZNK6StringgtERKS_ - /tmp/cc9igFCx.s:3059 .text:0000000000000a94 _ZNK6StringleERKS_ - /tmp/cc9igFCx.s:3090 .text:0000000000000aa6 _ZNK6StringgeERKS_ - /tmp/cc9igFCx.s:3119 .text:0000000000000ab6 _ZNK6String16equalsIgnoreCaseERKS_ - /tmp/cc9igFCx.s:3208 .text:0000000000000b1c _ZNK6String10startsWithERKS_j - /tmp/cc9igFCx.s:3277 .text:0000000000000b68 _ZNK6String10startsWithERKS_ - /tmp/cc9igFCx.s:3316 .text:0000000000000b86 _ZNK6String8endsWithERKS_ - /tmp/cc9igFCx.s:3380 .text:0000000000000bc6 _ZN6String9setCharAtEjc - /tmp/cc9igFCx.s:3416 .text:0000000000000be0 _ZN6StringixEj - .bss:0000000000000000 _ZZN6StringixEjE19dummy_writable_char - /tmp/cc9igFCx.s:3468 .text:0000000000000c04 _ZNK6StringixEj - /tmp/cc9igFCx.s:3516 .text:0000000000000c26 _ZNK6String6charAtEj - /tmp/cc9igFCx.s:3539 .text:0000000000000c2a _ZNK6String8getBytesEPhjj - /tmp/cc9igFCx.s:3626 .text:0000000000000c88 _ZNK6String7indexOfEcj - /tmp/cc9igFCx.s:3687 .text:0000000000000cbc _ZNK6String7indexOfEc - /tmp/cc9igFCx.s:3711 .text:0000000000000cc4 _ZNK6String7indexOfERKS_j - /tmp/cc9igFCx.s:3775 .text:0000000000000cfe _ZNK6String7indexOfERKS_ - /tmp/cc9igFCx.s:3799 .text:0000000000000d06 _ZNK6String11lastIndexOfEcj - /tmp/cc9igFCx.s:3893 .text:0000000000000d70 _ZNK6String11lastIndexOfEc - /tmp/cc9igFCx.s:3920 .text:0000000000000d7e _ZNK6String11lastIndexOfERKS_j - /tmp/cc9igFCx.s:4058 .text:0000000000000e1a _ZNK6String11lastIndexOfERKS_ - /tmp/cc9igFCx.s:4092 .text:0000000000000e2e _ZNK6String9substringEjj - /tmp/cc9igFCx.s:4203 .text:0000000000000eb8 _ZN6String7replaceEcc - /tmp/cc9igFCx.s:4254 .text:0000000000000ed4 _ZN6String7replaceERKS_S1_ - /tmp/cc9igFCx.s:4629 .text:00000000000010c8 _ZN6String6removeEjj - /tmp/cc9igFCx.s:4716 .text:000000000000112e _ZN6String6removeEj - /tmp/cc9igFCx.s:4738 .text:0000000000001136 _ZN6String11toLowerCaseEv - /tmp/cc9igFCx.s:4790 .text:000000000000115a _ZN6String11toUpperCaseEv - /tmp/cc9igFCx.s:4842 .text:000000000000117e _ZN6String4trimEv - /tmp/cc9igFCx.s:4982 .text:0000000000001236 _ZNK6String5toIntEv - /tmp/cc9igFCx.s:5016 .text:000000000000124c _ZNK6String8toDoubleEv - /tmp/cc9igFCx.s:5050 .text:0000000000001262 _ZNK6String7toFloatEv - -UNDEFINED SYMBOLS -__itoa -__ltoa -__utoa -__ultoa -free -realloc -strcpy -strcpy_P -dtostrf -__strlen_P -strcmp -tolower -strncmp -strncpy -strchr -strstr -strrchr -memcpy -memmove -toupper -isspace -atol -atof -__do_copy_data -__do_clear_bss diff --git a/arduino/hardware/arduino/avr/cores/arduino/WString.o b/arduino/hardware/arduino/avr/cores/arduino/WString.o deleted file mode 100644 index 293abd05c279ea37e76f17312453f0eb5da85300..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57160 zcmd^|4}2BXweM$+k)k3XMny!4G*<(~kP|`(f*SEaQK=$QrIwO}{2{R+iAg}TRFgemYrUvwsiu}%u2QAFw53WlxAj_{r4@UrQl;(t{q|maX3aTsg4fTx z@AE#NH=oZi-@Rw;wbovH&z?Pd=7ig)&zj-;zUMaIyVeU+o>%#@=Y0+*ON>B)ccyo` zIX?(#$_=ETF-m&o>%WV=y!L1xzk(k9~z9DGrNX&o!vFE>#VL3 zU9YZwarMA;L+%-MkCpqp-&}F~)s&_rOMLl`?mN!9K0?Hbl~T32pY)oC{!?;m>4 z_j|lN|8R2scl{Y>U4Ig5{(r)jt>t?@>*gP-?7XSd+DmnQ+(xK3^f2ACF#7R6ng~bA z)0(&Er;oq#c(jfUcZ}$I%Crp24Cxut6Kyw^7_)xJV@KA$^7N3We){w(f93ciktogX zv*mmGsKN3s6ZbLqhUHwG!yZA+3nQAJ_v1CE>s@$Ey;UDbZ`CpN-k+xT$uy6P`X2JH zuBf;=-Q)X@srefpQ1drpHR~&Zan{`5(~2`S068VVZ>}{jq&T5~VGsr(~-|;rq66!3VZ+!TYvRlVQWQ^yt2n z8BLF>mY#XmCr)x#X3hU27Q(CQ^SGYuHOf2txXz0@m;1jR{9orhF4wERvbG0T*5A4g z%H2EcuP>TeMRK8 z&zg9WyN^Y+vpp7`(S~_7=krJX*N40_s{9VuQsEhBJUny_?_@o=m#rMK9xY(4M`U21 z8ag@$uH!wAe!9E3z2n;2GA=ekg=buXn7ro??ecnmd)9xQ^oD=#`h#cu4gS38f8IZ8 z>acJ~+o*?pJDcns^0QIH%~M7Alwkc}kMj<*&06|i@K+33XYSgJ#HzEtc9Pfor8mF+ zCg-06*SQFCjL~J^^Y{BdUA=!bs{rePWRgD?v(Whhx~2S zo{phif9yHh)6!>WSTCIX>e>6c=;;wZuQS=%b=Ey6(Ni}XzG|LHIMcXv_BAIkrr%xj z^qLpfM6L5l$M$0zXaqNqd$tez@x=k*B&>d+6W5b+#QiuGvv$<*8n8`5j5rYv8)^Yc5%H^_q$` z&1-I7^QARkUlSK)T#p?e@3=JgnjHVI*ZZEoqGMf0XYOi~x)pU=<-hCKbS&wpAAZZg zqdt3MRqjnV`?iUzowXkHc{O>xHrDP*?;U?d=eo{aLw-HV>%IB!Uhe|mmie)n$&6!} zL$mz5hkte8X8%#SpYA&O*Jp=XtoBgP+y3T`M>{qTdUWIwqkHAa>(5?y$BH|=UY3t* zy|4Ftsps~d=AMe4t9vf#8Q;Uc_MV^Dk?fe`e@|@EkAprfKQQR=kzViS+(%9AkN91k z_jKNU+ENhLiWGwB7!(NexD0Z9soV}aeb&vJfdSrV}cA2=IiLt9^f6poFf0+9-(;m6^ax6P- zJ+-Xzm-^THPrvz{5#K-Y9Yk7e;!d{&kvez%?vsCWcDKrX;j~we_YR%A-s`nbvR9p1 zal$_Tw0q~@bJab$>tD!yHOD*rxc{u_nfv65bhCu8-r@Kajt#uaum>?3yxO1lc^`?( zrG#C7^1LlM-}$KLos4vim&0stoMH-2WhS<7V(%be+l{@0fbA&u4g$8(Sk&q;f-+Kd$&c6dykz)LE!_zTz&$_bdL1;LXf#V;#{b+zHKhUXZ*&hTdqHyXap@EwM4H~eM89frSWxYO`1!(E2^ z46iW!j^WQ49)d;W4i6JYZ08$ZZ@Ap>Hx17>yv6V>hX2Lzy@nq#yv^|AhJR*whv7F3 z?=(CJ14M`Syy3Bie{FcW;a3b-8UCH&&l)~p_$!A0X!tS1e>VK@hTk>(reV8~J_w8A z9o}ge89XoF@Cd^f8UC1&|AgUd3@SlIlhei6~a8EJlqduOL^Z5I3IaAl7E#P|BABt-b+SiKoRY} z7B*t%}^Y{eoc!e z158=VCj=a4tJc^WZ)Dnx&hZKA?-Zu~F9^rit0>T)@+JfvXKSOebt~QS9x*y^^;j=% zE>{1B{1rCK{G0NuJQFEzd2ojMaT%MWM~aNo&t%H`yyTKsc^Fd7 zMjjmS7d%(rl=nrv`EfE|^3D;a58SyqA1aIwUp0AM#)q#OA9{p`nloX2nM`>bC71j) z50|dlQr>+*d{W-mgSw==O z*9+;J9sj8|<*igPyff&}DQ}dD=P1uz~};`W4!+xJ!6cBr^L)oTgvAy%S3G8E|jh<74jom+)n9LN8_u)+=&wol z(b%10;&7{Qybo61`tUi`Z&!M*kEOgjgMORxE>Ue%?u{_k=>Mgvk4-avu7KSR?_%?Q zonpP%Pb6UL!>-%3h?&@2JfARiNtwJo#{ZP@=M`bzYYqy#YpT#l+kaB<$Zc$2ch&Mb zbuG_&IUiEq%;0)Vd6x%cTFSe^X!G}P&VJ2YjW3s%fYP6CSlg)A>mvp8?DP+$$h_dnWyUV300RHOkKVYTOHo@AE++B zLD_t7zVYWUxE##7Bqmzs^)gi0UGLGl*s@f>c5&k#`xs-#jeRV?uW)=_Y+06PT}BhIv0cKpxKsJx z;<@oB<=y1Xfb1L4-{Cb!{C9f#aGo;U^08MEu(|8~ZIsRT+DzWbxcJJ!gONH*nEsCu zj`!b|rGoe8|INz(WyZHlpufXg`honv5@qwfw`tzH#rXNQ86WNx<~71CdM&(TGx2ZA zJ7Vr%>ma`($YuUJ16bcDGV+h8d&*x;Oj#_26)o3Zj597#v$;5*JBfZ;iI0KH!5n`+ zDSW!fNBwjfZEQsZwzAFNKGN@fzrpzMAv2VA8@nI!>BGIk^kK7bZmd58-7pLvPV@(f zOv*dSJd-k+@=oyc2-s5IAm7a!Q{KrwLTR>?H`t#U@JYVAW8kjoGhY8{d^o{(ZPzQZ zJoI6ABN^lD*v0u7l+E`N#?SvSdJ?9NZwkl9`8ZXtoPeo+Fm`TE|GP&2Fe5X(jO{qg z=s!<5UjM0q&Xkv{_%wfjRgYMm?z{O3?Ygnl*)4(od~diZJKNYAZtN})j<UP8U6PO z4@Vhph4x_nO?l@kKR;~h#S;4zv;Zip0TY)nLf5!TGB9rny;)mn#INP5m)3-5MeOoAH>6>Hc+qo#4 z?-d$b7lF&c^zBOFc;Ch=-;#bFT={mX@om6`Y}1QBkZ%Pjo9|s_Y^A{EV7BQT;dtLt%C{NHw~wkeooU*1f$?p+ z@vXz?oDp0*y%IAX`mnqH#uz$wG5iwB=6hEdyWcT-t}uQ+Asp}LmCDbLDL=1LeqL?- z{4w-&c(aV3KQlT%_JREDL)m=q8e?}D9tF$6ye{&DkwW5+G!UGEoK1kdx~mf2F?C)B;{r8BUs+a%B z)`w%IFzq;YZL|wz^Svrlm-mdGDl=A(n94X*1@~X)7geRag{tl~>RwY5#6RWL`R-mr zyXoWk`Ou&5)f+um8e8?o?mXf6m^Uc9pH_B1t?oOYR`FaMjPvxtjSsHwb;gHgqqE!C zZ8kov6OQ+xMfuRGd}s~gpYqy$H_xHnk=VI8yI(hUml{1kG`5x+yDtdG+r3%Yy+zr* zMcMsKzjj|Tc0X(M95uE+YwVtI5!?E+S=#zGWw%4w?ND~R`n8)2{rTPsqo>r^T4C&7 zCLCYi&ndfiD!X?oyLa_#_iAJJ^G452#@6SJ-P?p+8%6u}DrNVJ%I+7H-JX8!-firz zF?zNdTWgHnCxqke-lOcUQ+C%WyX*V4`(tDG%SO-djjb;myN8A2?S4hs-KgwtRCe#{ z*DjW~(7v0Dp3&fP@JRIc@xt+TzoG1YQ`!Bdviq%m?M^Xvzisri8C%~rb~}XQ`_&d@ z_d#X%L1lMqzjnW1>^@@jeAn1|#Eg5-3dh_1S7mpbpJPS@j-}fITPg2RHGV#7>OwK* zyYVySJ*MUokEv&$$NW^F^9eJ@uw|b#&pwu)F!u|~kNejJ@=y9V2y?uu6n5j)&rE%H z82{fgb=+b6{D*LSeSe_p`&5Ma{L3wc-;c1La7%elNA4G+ZFVqbo^%QO*bj}KvEXtr z@6lz#@jg7G?EWai;WNvR{Lr7B%AcLS^C9K^SlySO4erZ~6+&P(7pob@&t1k=mGNzt z@v~Vt-p_wizCEY-`JkWB*5EW-%Z)95wStfMjQ*b*Ti+6nxAlV3|DxhOLI0;M7ZX>n zM~tnX8~L9a{XaLhUKWnG_3ujmUd6xY*VX}J>sLnpxN^4juZ*ozgyU`PQ~H0c_$7ZJ z>cfroa?k#*UgwlEf4`Bx99#}&zq(#H-qvrF{#Vr8<5ks{`qVt+cj}sb&Bv|RY$@+m zbv?eKuE*c|^F)R|*9kkHtIO&0o5qK`z~x~2yk3|-e^WSq>^-FXe=EZ0pe(nP_m=Ng ziBjI5)j0E(Kf{VZ=D+OoDbn=Qt+zNoA1P=4|1$c21uh5E&;JyTkL?@EpFb!*sABua ze%CbKGIsxB%AR^D?f%8sJy$s1?%T@NI}vu*0_O8-d^n=w^G+}(q`bcd?aP?J6|=dR zTmT>Py_^IyXBmHT%(oCX2-CMZ;rO<*-%+r9^t*@w3Ab)WyL|58=Ipi@yY}0OZlnJM zWA|R+_?Vn%{G=YNxkcF7!ungn`HA&6qtnU{O@w{vl*DLcZicM_@1#IaF9l`m!;yY- zL+P|6%&oDB*Y?yo9Jh4E=zqKSxeD{U3pzeD6#nGYeb}=Jj%eF!e7IX3TFEcKx$Z z^zo4LMkHJ^<(-vqV<363oWOdWio@9n7jvxFCBkd}+{D;Gessd!?^51}6V7j}rzPf! z40S9JcIQ6_Kl45NP0lxs&*M$Kz9-Cj?GSc-DOwl(O-?f5;)eC8gd5NKtxlfUO?f4% zE=lG8#02%eU~Cl!eYIE0@z968gn*58aqQ}{A7%5su?e34tI;#o==soPY_GBATO*!} z`u`Cl&-|1(E@0|+?c(&G0zLWOR3lStbWSz;%Y_-MS;FzLx+u_}@-9}fxEES)RCCZ?OTgtmC;p&+3u1?c=cjpvP0mi2Y);(02{=6fmQ^F*U3 zW%OJo93Ri=s*W=PrvAZV%jv(?=>LR~xy9)GgwcPeFy-$NcGq2@=-?sc-4N(cd7ljG zNX{2Ia@fb_CrX3-`H65|v>-7p$p2L0ihviWF=s(A=A^s|6K9I0yvjsPAYYZJ4|qXh zS-_u6EDyLQu~L{mZWMMg`4;Mncm1Yb&w=r--_&cLaD2=^uHtZAz|`;hq0|4G(O+j| zj-O8bb>=>Psxaf6Cp=Poi^hCWpg-l+Cq{@&%3G|)@TNp@kl&)>c~fFukl(6e*rwvP zB+(9;LgPbA;v|vpl_L***zYD_V;vp4I!-~^eD5>H&v{1AXG{$1gc-v&VHclh9ha** zepc~qi4$oQTgtm#-3xA4W8H0LOuobDzb&}e_o9p|+Xr^BrT>nd|6f4aeD4lp_q#^V z9mfA32-E-Ph2#BSp?v$X$u+pr2dHyE`%8BKY%(mVj3!ZVUMC zM0dbnOt`j4c|D1qAb)k@{(#pcwgh}n;*o&YCLRlTUE71sp3Inf&Mw-PG@eju?S;BO}$2zX24k%0d>@m#=L6MU-PZ~DNO60ZOBqTY=8 zL6g5an1eCj#lH{i;znky-j31Z;zk)4H}=)T;)Cm}18`Hy_Z~IiI#UQkeeN2|NF1 z!MA+xA>;od;d9U(M*q`BX0y@xw9!wo zsLtL%Ps;nDio-K%p70|TlV^f<$9j<&XC5*7!~9;@7)(Rh`mnp_Bl^jmn~TE^>FZ_7Fe*VSy`J(Y*@JHF-Ud-a> z9_8oHls`XH&u1y+KTRe9sk;A1gxx(T<^3*b zFWPeb+}WCAY`tO1-ehdOk;T>@l>UPe4sHFZUt6~uTmNawe$CkW&n&iHSNeY+F#XTL z&dvExuHir2uD`auwV`QIVRcK3H@?1kaqalUt@Y#EnwPXz*N(4hty$90)O`16)U;o zF;j|4itIL}Xo8YoxTK-6y`iaMX;npILtDGCFk#F^W1+lc%thv3kB&6fF3W3dZd#OA z)4XJ1W37>!IOd``6Q-2Gg+N4|EzLYzhlp7dlQK`jbECCv%tdV_t+iE+7sC4FF&D9( zlgCWCU_$Yv(y}T1chZz`2t(o+8di zLJ*UXD+jjnTpL;!(EpSR=!R%T)#Nd%B3Y`b*(t5gW#5t_z_-^#nMwz#S&D~Qx|eE`X*JnQ|ZG%F}kEa zZ);F7qqVBqUeU$qWFnBHZlge-NAJ-J%=ru<^dAv2BTi8BOmpZr+FT&1O@;$YF;&!xjnM3%=hpp;JLUGQ67@wnj{UQEpBQTO?ao(b8e7#CTz9mtMt*VI!F$OPd>NY=;`- z-OM{yg&nviN*m#rHu^4XZf-OsCd!@f0!%+}`&!z*u(6`09SUw~kx3HTgtMuMh<%+I zMZKEZ>PDU~Xj;=vaRH%CC%+J z`!Tbj*4o8slcAc1rA`aR`ofB&6i0a5%3Sf}#4(snaRy+^Gd-c085pRQ1~^b*rlg2Y zU6a#`*wZ1zlXWabyrhnpER;DRgosrr9piBt8)PFe%$_iYGmB)YlSZ77jVMq!%(l^C z9FRSsSfnROcqUr$FdreJa?~5*r6o=rRcCgI6%X@mJupS2xM@GrCX-Mx$d{H`d36Fc zDcW8wkY1#LX5B z&)RTIvf;2NgUXlLpiDw&8S?bAHZ+rLGgZ{7ik3-qTty@2BtTM6o(d{bCIOPD8lB-u z36MmV1;c9C_ym=Vp0wd{b>z9AijyTeu8Pr<5*%B@#Z}9svrLZ0MV&|wNo&|KCfk@O z7xhUS6uMYgQEacq$p}W30CnuuU9yl7clMa7K9s z`l(Bnw#?R&P!N{S%XRBKz8*4n!V7CE#fY0+enRM7@HYH^Y% zn0}+Ni+kas_IlA49i`kwf?FN~CTiRruGE&KSGch? z5cd+LTJB9%*G_l01zsdvUQyAcF4KOllDId<>X2KZQ4zfuGga8pC>kiZ(cd6n-P}}- z)m}4YDUM!k>CF&Z%TlW#TGi-flc6WBrcRHpZnXQStBH%b(_(HV3>g=Obktpg^>gt! z9p(ZuI{NLMaWQu)8rU~Y%O&+i=T4ihYb>Po*fcNgFdJ=Fr=!uC;Br(yHI19(I30@v z9no7|TEu0*i}#~0(2>^9qjix{D_%!Upd+oLM|C8N`ipsgo!wpD9|^B-H8!=(iuU5j zO%f+n*PM`crKDfXaeWgS!fu&%g`}6a6^=#;<-;zSc4?%QkBbkA2i=h?a=Ndi6_*h+ z!+g+ROVX~0^zv~X7WRX_T9Ve^)62(oR+JC=X-QgNPb(kWQBgkVqa|tmJiUCD@CW^~ zI5L5O=J(U-@{)FxElImTO3>Lk2$Y~twUty{L~V;) zzNiT=zc0hHeykfwiFYU#R-moDsCOACFnC=>_^nRZVb8sa-pbcAy4nV}Q| z7W-#YO?F4h+}Xg3DO_5LZ4&9xTQz zs%@WkOM9)m(xbOPR}s0;xsGnuH6n`Ro2|?#o<6(&MjN#DW)rj4)~Z{iZqczSY7Hx9 zX2_E0MJnNtfO4@ zS6ZBFGRu$NQYV^n@<4=s7-&$Fk_pHc32h}hkcEnDcNaxbA*Tr<4OpdIc6FVIMX$KD z+d!l%y2?)y1)R`KGZWm>=yejSB);`SU8d>HozOm_W>~Y2Q(`cB9isMQ8T?dm^$ON zOFz0?!^b|W2HF_PYm;_$7cbPB-8uwb+VrD45=e2d)E2j^5bV2r)upcgw5rC9Q0bZw zKMc0*&9j^sjR)(mK9YEO$~10BNE#Zo`6ge&Ct-aw5qY8rmEeoR7E6{Md5iVfO~(_qS|Tp zeU9-Fi(9(kinRp#4Xx-!7{1I@9VqP?oUc&Sy)Jq`anJLZZaTd!a{rtZ9V0TAj`~qs zQr+Bg3+J##sp;g=ks?!@499U-jMEnT-od&(Mc$BIyJWGv`Y%zPIGOKjQ9 zqREV+=}WtO5ghNNY2D~zV5Wio-jG3cHm}Tc2>M&*`@1r^vNMBb{5fW*?2I%sM9`bf z8CN7DG%`A5amC&=q~pg$CfmX{UZ7`l#TChLMTVDnS8ONm#}l*O67vqT%uduZoln{& znz;6nQ6b)w=uJ6OZ?U~U#kpc%L}eC921PQ0B11_QS0ZaanR<)uDo~s&cD*gLNHQpr z;fjnySzL)MBW3C>whKyeuGsaR%p%F4NQNsi#ff(%x+0aSx7e;t#kpc%R%I4R21PPl z$vOb?T8^&3X6h}TZkD;?T**G%*&_J(xV^dR!WkTz@zn^vv%=@$vzcO|&7wKcT2<4q z%$*v)q^)&)W5Yu8wS7ZVb>otn+VO4eHOMNg_Zs6>V(!tO&Lvq&neU^rda@*&F?z=2i(6ht%{emRE zrco7Py`Ay+c}X^hT0)1=$+J2n?*g-FX|0!@f;owbqnUzSTM=ImTw6;dh|yB!gNvF=v)nL<$(`03GfFwFau>~LG^f=J zR8B3XC|YgI(B#xM9>ZDA%*0##N-e5388aX`y^D{fmt&H3x0qk8YIl<{!;sTkcMQE8 zi2}W8H<{#Q*J!xUbHUa8Vu@4O;1g75rsh~?!md$_uVuYsD(vqX&g_AadC31u<5I>b z(9$^P%8bX3V5!AKu^1C&c|V02M5D}(iZSOixy9kHDsG4^ zZikJS!ojeSrJx-zG7AQmAl%7P)Q$<+i}IN&-dlU!XD?|d>#-HJ*LFWe`P3C})n2~+ z6y-Bid{KLaW-rPsG)qx?)%8;}dw~19zA_btz03qY_=X_ug9y`oAragri;FO0vJZd! z*{JO>GGTYii|(_9`1>I>cx}b~mUR6)GA@{c8FxfyRK7OI9JNfbu)1~%?@Gy+2mj4d z@)5#+vy^;~@ZT(z<)efwTC&77^GkyFQNFpZ4)5q~JK6b;i&}=d_n{4U7*{;{jl%mY zD{qw|Uk#X&8P9i(&DDX=LXpQdzW=v2@zp@svAL>&Usd5na!|Tv$>PPgRNUO!&|ZZ< zK2U)d9jzB$7d{5M>VyhmCvu^r=~E#HzNxUDWE9kuP{pF37G%`lbameQ&D;&&EN~(a zS)7PgP-#}Lt&Q6BYaTzTw_4$9U2F4V^L9CiRD12>7CSNKI!3J8ELsDlafQq);`oBP zqi6b4*SrLuADEeXHiv@2DWj%Zwel+Znp@U%G729vOr{qZ&)DcLZf1Qkyh74!#fPB1 zzVR+metn}9L9b%#ygcIc##+Cwq$0XudNG5n^yc5EldS*imt!}FTks_to78P zzX$Pgukc;GY>$=5r@x?Q%vTr8;G!N324@D}`_df8ZIM4mXM0fr) zb=E`uLr;0)I4}4!N=EKD85u8jb&DZjln8_brk0gT1D-^EXG%5A~L$ zop*mr(CQzi{+DX|_tRI1JpZ25Ftq1AY2`Pho&Pq{l+DLZ`Cc3gv9q0+ei=u%(f{9J zUx>X7JI^1%@hjM;N%~|JGRo&7y&uQ1a{iyv()_!D1F*aD6=1iqJpUJ(nb_$Q?cEAq zik*K~nQ8uyAUb^?(%smd{CB~RVJ{MS{%;35&A-t9I(GgoSnA_nkJsrxB3+JVpC{-4 zmX84Nr=NcTSf@XR^cCnv?)<0H(uc77ew zIp`ct{#$8j{sqAroOkW}64GvCy!n^KHsHLA?}@Oj)8mnT5a;=~E*Y;GNDsiUF<8={ zLOK^|{{1|jZ$r8m>GLFgC(`qfcJcfw(hnoOP|klB>0txH^pB8kN4iGN{|f1SD*Xqf zr(&3L<^O^7eJXt_eC4oEDdjIhx)N#U&jO@ZB3&%!Z$WxH()>G-^nVS~dsX^7NFP$^ zok$PDu;S!@gLHvPzm0TCrH7!dl`36;^m3KH6zL5r-GcNsq@DktN7`*{uQf>L;sPEG zroRs&U5YfvXr_ONbUV_nefA>Vg|utm-y^+NrQb#R0i>y$(b6IK)N31U4Qrt(kqcJ7x{HaKa2DTN&gGdeMsj^dI!=uxGlK)?MC`M zq!CtQ?>~?pi}V6XzlXHj=-+YZ3*9*H`uhl^-Ny6hBE19W(WFM-B&2sDeW9eUNt2(4 z^xu{IO-K*GP4PyN|3aGlI;2~0-o^i6q;ErdqsYIA^az~HmGmExE=2lnNe_Ty+mUwt zYb4Tpk>=kPWxOZRaoJd(i__9Gkluw8bvQ@)Pa<7-N?6}!q)U-@@xBY`8&vw6NV|>t zzk~E`IKLfCeLqM$|6`;}(YZJ;;Q3#toqq-CS?c^>($2q&^g^6>?K>2G-)*!%DlHxP zdxaGh*Uqk(Sy6$H2mrGz%$fdC1MT<&2d%Y>4BuMY+UycH1anLVj|A z1HW9rf!{swV3UCcewTp9(Aru)^vDdFKgCtaWaL{$eIo6H0LFZG(K8NJ0DHsOQL!YKfgxE>!N-l zKWu#SI#s8Wc)hC9CM>bBNAH4eyx5Bb-!y0z`Jl&L#zsDtkb9qk{&Ayn$YrNBpUaN+ zCYP%l(&gz|y1a%MLvh9%W8@ac0wfvQ*m8->_Y3`Oh-#v}Fw zgA#j!k%>LQ@Wh^AjABnPP_ZW%t=JRULl!KTrY*^vv0`xx6b2G{!96ZtdXrnQl%;Yl zDeK@mOBT6xmaJgwtSrmZUVAhCxKM3tL^S<3a%LcHs*ctrV{KWhh^`#-Ox(J#%IB>{ zD@acV>#$lVy2{FUH_34CBB)kNO>@*oDjJ^ET7z6(@}}xgoK--dNLvjwWm~JGHq&IX z7q`|`=ZThdRVG@dw#jD;Bo3VgAJF@vuDngN<{vM8eK3hl5@IG%_cI*k)p<%yl@< z#eN)^&u&eUe=Cm5gxBD>9Q!cH6yn$=`D=0He3p7B^AL8*EW~jecItczM>D4c<8i~= zA^E#;+=YGE`S=IhpRiL;4(7ja3;&rXI3Gs-SAZjg7lQM^)X)FJAYbySzd-WKaOD4E zFzh49#5Na9{Y^M75WW#d{=WoHKi4FvlQKNVeCk{w%=L;j*s1419QnU^lJCWFGj^wE z3z&Ky!jW=L&y$kR|J9NIa~|`%apeCRHS8?orgt7$@>|Jg*!$$20P< zGp&3P8Rw|~HuBjv|8AB43RxEUURU`SW0LOjXOKltJDBzD#&H?*r&*m{BE$8bm0;F= z6^@i+S;p`IVXjd;iJf|SaeN9p<&WUVXKv>6*?J##mR*RluSot59RI|8=`%y|OiLNA zTMP%YY$1+$!Xt4Ui`~hTf@!M^$17BRjpWzi$el9vINpZc#lIU&{VQ<1m-%4Y-LGU` z7n$GUcv#6?jEmE?*Gw?=q;TXjwbOGyS=w%^$ZWy!NhLD?&ycPihk~hR5RT_CU;L>j zOPjWeOcRbBO6EBwvsYyH;P_i5GZfEj)PFjTx!4(#IXLn;)wTO*FlA=rSj>FzLbO+z zKr<|SdSRrQI?0UTdbGH(lW{pzU5YZ5;ltcmT@K zw*$yK5o}_MW0~YH#BrM9s}#=z4_jn)R!V*ij?09*aJ&sWedgNUy^`OH<0i#h6+Z@c zaeGSgpTTjD@GCgJA$%CeKMVgI$G5TP;9BQ)1Ux|aUGRs52V>2R^&O4l>591)NI$to zSStCq;W$S2RQV5sspl~qdnp6v zI^)l=)6c^=zRvu1TlS#J|1+3nk1!8wfh@~4$I)Px9gAZDcFI)ZI1~FYc`-B>OqqNf zZ)HB1>yMix|6LrnDt<)qcHv$ee<{p`$ydP6&(~D`A>p@iJc6D6{2a%>3+JHhSnTwH zYnrpb^zAwvxepj(>plsL8%J0XiCNSmi$FW^_8IEhPQ-*VrUdjJCj?XH74orVu zz;Tc8GdvGF)JfYp*eP>A77m9>elCu~RDPl4FTk;k=cK*LB|nAZH0(~#Rg}5S)@#1x z7vWeb{05GV*qxqsF#UN7$1dhe*?Sf508@Vrj;}NSe5?O$viNfpOg$%}E(5Vs{?Eu8 z3}*f?)=~0V-;t6(7RS-p8P7tfEs%W5lwx=Fnkq7E$CS#iXa4QhpRbU`|4kxOgyT!t z=|ch5h5Ho$N%+q=o{n?w`YI+vp6k-nz$`l#$C-*}QAWnSIbiyk!m&K58(J) z#jk@Y|8pF%_-$lP#Bl(27q^QgKZRpC^SiCxxsrbaj@L2&Zkx}waK?&j=DEo7!QAq& zJN7XD@MZpAM8-XV+f>Cf!FiHDS8=5fV==dFlo#$*yjz%M_lZ3D zHL^T|ComUCaqlV_9V*`$Mve#&hX<%KsW-Ym?r4~smR z?~`2I_A2gEd=Q)`aXz9r2XiLoGmM;9QxAEh;u6K>N`96wy1d7CNYuk;?iyjf-)Rxf z11}dY0Cx-X`dtgAUGgTyI~8+|PW_bGFU|Wv5!F|GSfDZ~E0v{3PvvUqQ9rcrkDlS*dc`*H_%sk=Y zV9sxuKN`$=Ex7=^TzD+FTeuL+IW1+lPO?dOCU`5DK9IL7<~-Krb8gDAl;J#Z&d{oH~#8^eUUxa+F@LDj(Gv;%RXPhwCe9D9$1E;{WMV_sg^HP`J zq2yNy_dwC$V$>N`4A^p71l^al$WvIgh0bzwMbVOg)^h zy8L=!ev8C8Dt#k&D1KNm=cp`8nO(wzu@<;jI2YU}JRE#bcqI6UZ~-_6H$dts0dtN@ zrXJ2qU4Dr$zl$md(>L-g#mg0UEBUp;^^oTrl{%ZiTZLP}+l7~ccM5lb_XvLxd_b6b z4y$|*b35wfH(7(g^o=}RG3T)^pYvKLUn%@7QeO~PEa-YU#>%k5y=BJWguSTQH`j4fpb2|orN zF5C;w7k&<0B)k_qRk#m4Q~1x|xx#OQD}}jczCw5a=HoqzH-hOW^S3D8t$3f3e@*cr z;arqGD)Quk_>7i1$>S84fmvVXrxec?9)bM%!d#!P7v?%`JD57j9f~(Aept!x5au(` zF5!#8dxguveZp6Pb56IualLn_;*nt5WqyI;S&HW=`5Iwd z5uOI#CVT^UpD@?4UsHStOk2!9syGi1KrVkAn028{nee^fl<))K*}_kO+l9Fv-l2FE zm^zuiLGcd7yOjK1;dde5CwwBFjSdQr1`ow^Fn!~?`bfnEVA^7SiQ;*RYm|J8@B+v$ z7j6W13$Flg7v}o>PQ`n`w8i}WiuvKB%O3=$pOhIc+zZYZegRx0{5rT&n9qNWikE?@ zlldzYZ&AEW$@dEL*>ShXi~#SGeDZ6Op9el9`Q)R*e7+orbprZd2+kG05S%AG3p`GE zHn>cf@0;ceSAy#mw}V+1=65LGtoUIizeBhV^1Foj{JK||@1gpHSAq|Msh@mA@kl(- zyZiz$>qVIo;Z@*r;Wgk{!hD}KPnhqmYJ|6gTfo#wUaokP;;l-4yD;B(?G%0%yhoVN z(EEk?jq?F8^^*@P9*%Vvm!A)2T_{r|%y(r|g?|g4Da`j}bA=CqE5X!5ZdBZ(c%zcv zBFy(}+l2oP?iJ3#Gx2WWLEwF0>L|z_bNW3I0rwlq5qT_D$I9-BZcRH z3xxT8utc~LTn?sw@+`$IikB<-ZehMxTr1oJ-XzTRkFCPX!P~*qPu{8cfa1eS-pjLf z;XBDe!gqs*3-i5XzVHTc5t#bPQx#V#ZdCHig!w*mh42I59^tLvjl$c&Tfo#$-llk; z;@6b?A>r+iKPt?1oq^}tdhG`13hx2u3BLp$C(QSxWx{WOQ^H5UvxWIyb-r){>nQcY z1HkRVe3#lG%y+D-gmb|gz^oT}v*KNf_bT~5#RrAYL)jz3Mc|y#wvK%FI#igyI~WP3 zEpmb4S&HX@*@r1pqqs$w>sZT$XM($h=YZD=b4_cLFxRxU3Uf_syKp;rCz$?__b5KB z*!!^chcbf{4;NmB{Cr`)`z-=fCwZ#kO2v&zewpGG!aXS4BfJ*85lo%rEsA$5-lybW zQ+!C6@0yPa^PTg+e5;e3tGG;Y3e2{k%xuN;g&#tGz3^k;b};=UcPQSh_+cf#L--lU z?-Jex-YfhPxKEhtg$ITI3_c>v_v1PLWc}oN;ZWhh;E}?7Ph9|}Z{!liHHur5{Bp(J z!WW|KTHzFUlkgnyR$;zd-!9De<~xP!!F#~;fxKTae{kgT2Z0%L$_!VWFMKQVi-h?u zeyT8kH!~AVJ>Vc3&pF5+s(2)rzA?W*@hrvjlzffi7UAJ2yIh#xFmwy&gVzf4 zTZTw=Z+2Y^T70zGUJ4~{#_=#0h|)v z0-i0r6+B<~5pcaQzu8zN%ysb%iZ_Gl5Az>ZyjO9bl0T^Ui11F7&H0GcLmsNQT=6V0 z>qVJ)!n?pV!u!B2!f$|=3;zk+EqoZfR`>{byYSz^I~DH%vtG>Kuh<(G<_`kXAIc0@ zoG;ApOp3tNL!PR*QSmY*zd|?{@;$=iz#D}x25%8A2X7PR`-EQMIpE#G*Mav5SAqv# zV14Ghgr>);w;e#6ru%x{F2 z3-cSEZejioaV?njC2vx^Q}G@!>r0vaiVq0$_lt+Y)I;{hhg_t1DwujGGgFxFUgiq( z8=^{KzI$mD<~Ksigja%B2zP^fgzp7!6z2Cuy~5kUyA|&P(@*BVrZ~4K%+CYUPs)r_ zTqex#j#9$Az_W#SgXatLJEe9d-yzK3a;{Rm0Zf0Gzgh8K#eGWtpzsmM9}za+J|(4% zhM->w=YvNIj|CS9^ZTU|VSevaE<6W3OPKGD<_Ys#sTyH^v(zHI6uew`Ik;PRC3vmy z-QZ2aUjc6w-VEL@{1AAjFyA}v5#~2k`-PtY9}wm@Q-_85{S|-A&Gz~`c#tsPI}H~e z2+kMg_f$o~{Dx|(@Hya_!u*D6t}wrMsubpXsz%{5@G{{U;1$9*fO~`+!5f8d1#b~v z3En1rAGlYT-)QXU%-@=CR{SuS^o1Z9}dclig=zfNKTo3on~E@vjT)FasOd`kaL!0zN2S7#IGZMgz}W8$MEyEz|_ zZR3J#gWI)htPYzBeVUF8>MoZP-7ncV&@SWQ?A`#T?g66j`YifBE@jGbbnw5eZ| - 20:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/abi.cpp **** - 21:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/abi.cpp **** extern "C" void __cxa_pure_virtual(void) __attribute__ ((__noreturn__)); - 22:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/abi.cpp **** extern "C" void __cxa_deleted_virtual(void) __attribute__ ((__noreturn__)); - 23:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/abi.cpp **** - 24:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/abi.cpp **** void __cxa_pure_virtual(void) { - 25:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/abi.cpp **** // We might want to write some diagnostics to uart in this case - 26:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/abi.cpp **** //std::terminate(); - 27:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/abi.cpp **** abort(); - 28:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/abi.cpp **** } - 29:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/abi.cpp **** - 30:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/abi.cpp **** void __cxa_deleted_virtual(void) { - 95 .LM0: - 96 .LFBB1: - 97 /* prologue: function */ - 98 /* frame size = 0 */ - 99 /* stack size = 0 */ - 100 .L__stack_usage = 0 - 31:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/abi.cpp **** // We might want to write some diagnostics to uart in this case - 32:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/abi.cpp **** //std::terminate(); - 33:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/abi.cpp **** abort(); - 102 .LM1: - 103 0004 0E94 0000 call abort - 105 .Lscope1: - 107 .stabd 78,0,0 - 109 .Letext0: - 110 .ident "GCC: (GNU) 5.4.0" -DEFINED SYMBOLS - *ABS*:0000000000000000 abi.cpp - /tmp/cc5WnT3e.s:2 *ABS*:000000000000003e __SP_H__ - /tmp/cc5WnT3e.s:3 *ABS*:000000000000003d __SP_L__ - /tmp/cc5WnT3e.s:4 *ABS*:000000000000003f __SREG__ - /tmp/cc5WnT3e.s:5 *ABS*:0000000000000000 __tmp_reg__ - /tmp/cc5WnT3e.s:6 *ABS*:0000000000000001 __zero_reg__ - /tmp/cc5WnT3e.s:82 .text:0000000000000000 __cxa_pure_virtual - /tmp/cc5WnT3e.s:92 .text:0000000000000004 __cxa_deleted_virtual - -UNDEFINED SYMBOLS -abort diff --git a/arduino/hardware/arduino/avr/cores/arduino/abi.o b/arduino/hardware/arduino/avr/cores/arduino/abi.o deleted file mode 100644 index 5cfb805f74c170044d3431c2c4f5a1350553c97f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5008 zcma)AO^n+_6rN=ZEl>&+4i!i!MOC#%yH4W#Y`P|}W!o)C)l#)(FFhD1@$RN|;?!}{ zZ7=NsgakeIfXWHP6}1QM8~}+kTtET|i3{AQ=nX;n=6S~R5(mLZ_I#fC=FKhCY>>9(D7{0~uuM8iaH)9tW-eh>p@H-6u z&G05%p!J6gzsK+$hJRxCKEnqdHg+tA-(dJ6!|yYEhv6R>{)^$Gj~M&s8NSBwZHB*K z_&0_R?KO6eGaNDe3BzA9{0qbT_8B`4!W=bvxGN*kBAot z%bT4cAx^ON6XI~za|8%!L}f$Ovg&B;x4L$FFc8I^s23D_@lJ6VjpBAt^yAK`+mDvw zEvH&!-6x_e{V?)7!;De38+KzU?Dj{y_3C76vA6>}SNu4$SMwS?*HBS*|x+d0%!H;fA`~?fKg&2~V=Y6(o^v zqyDhF-48kiZMR&K4yh~0mEaM#RMxJWsFj(#1#*4GNnKwi3)+`3;EMbR1cBlt1E8m4 zyf$(o4Jv%TI&7qtE0XNgYJ54_Di9U3iYl0871zniEoEsjYi*f1#Bg<}msEo}$Jo(= z$$%^Lm}8but~K%z>`Z{9+>Z0Zwa!s<|3A{RC$ z#Tl8i(S-O37tDB2Zw}@v=oqFFkbg`9(hyN(A)jGtqKSoCCS_`~Y|Tj1w5tTy?nH5t zC9Q*`m8(ZR`35MSR%-?zM`=Kso@s(J8DyR&bD+b#kdDe!EU}733icv9$W3WdcTIl= z9Hb=gPgmfr$9_9~qa7rfB9x_VGQj(hJ=_5G=SavOMWQcGw(|UR$QwRg#^h6)4~ruu zWt{10D=Gkb@sq?HTX`RB66u}ulR{2l#rT^1K`bV&VjNE5s6RK=l-CU@$29IYqOx`5 z)tP7*bs3$@G!Zc}Gh$AKi3%kc>78WfhL|9ca3%G4yFKbr3Rg{VNI`0V^-qO^`g0@` zjhTtX%uU55Q|~d(R9G@jZrZ7+OcHZ!6BHA}ygz0|go~RMgWOb8UY|}Zv(}n%zY&$K zBd4xrqA??1n9Q1q$iJluXPc zq9~*hHTBE4gzX1@zQ#!_^acqGTpg%Q5@I5EQ#JU0i@u_w6SPCwztA6rA;?y034WJ6 z`gy$;C<%4=7_DW;61G=bIWKpBbvSZZy*!E%wfmvnP#pB8Hbb56SX;rj-uB9BINUpI z=;7s>h250g0i@&QbH$Mj_)s$o5a7|46yDkDYrF8h6a;_DHP+!TwMKAveXkRQK@xPl zaW_sz*wL+nRJDXSwYIiWSU9!umQ|?PRlB6O;Jn81H7k3>y$9I?!2HBXTt4HV$;v!- z`Z%VDSF*Ny4-Nu1+4J+jud-)(J}~9p11ZXAn4TX8Mpotp4s5K#L zr+_zc$v)jL^yc65&YkgI_dNI;;B*Sko;*b$=?%O%*d}}}h@=!$v~J zEFT9_a_|6E>HG>mi>5i8{becO(s&2%l~`&`7`_2qQ0+Gv{!n2YImM@nFY#T5g+095 zOZ*nIRVA*c#!`~>7wU4i3W*Fs^h|wGH*?hee%NJ sUK94-Mgu=jYkRU*sRSg%0QRH-IrS5`q(1o`$oG`%8>n@lnTode4_YJJy#N3J diff --git a/arduino/hardware/arduino/avr/cores/arduino/hooks.d b/arduino/hardware/arduino/avr/cores/arduino/hooks.d deleted file mode 100644 index a113994..0000000 --- a/arduino/hardware/arduino/avr/cores/arduino/hooks.d +++ /dev/null @@ -1,2 +0,0 @@ -hooks.o hooks.d : \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/hooks.c diff --git a/arduino/hardware/arduino/avr/cores/arduino/hooks.lst b/arduino/hardware/arduino/avr/cores/arduino/hooks.lst deleted file mode 100644 index ef1055c..0000000 --- a/arduino/hardware/arduino/avr/cores/arduino/hooks.lst +++ /dev/null @@ -1,62 +0,0 @@ - 1 .file "hooks.c" - 2 __SP_H__ = 0x3e - 3 __SP_L__ = 0x3d - 4 __SREG__ = 0x3f - 5 __tmp_reg__ = 0 - 6 __zero_reg__ = 1 - 9 .text - 10 .Ltext0: - 63 __empty: - 64 .stabd 46,0,0 - 1:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/hooks.c **** /* - 2:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/hooks.c **** Copyright (c) 2012 Arduino. All right reserved. - 3:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/hooks.c **** - 4:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/hooks.c **** This library is free software; you can redistribute it and/or - 5:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/hooks.c **** modify it under the terms of the GNU Lesser General Public - 6:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/hooks.c **** License as published by the Free Software Foundation; either - 7:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/hooks.c **** version 2.1 of the License, or (at your option) any later version. - 8:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/hooks.c **** - 9:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/hooks.c **** This library is distributed in the hope that it will be useful, - 10:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/hooks.c **** but WITHOUT ANY WARRANTY; without even the implied warranty of - 11:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/hooks.c **** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - 12:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/hooks.c **** See the GNU Lesser General Public License for more details. - 13:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/hooks.c **** - 14:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/hooks.c **** You should have received a copy of the GNU Lesser General Public - 15:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/hooks.c **** License along with this library; if not, write to the Free Software - 16:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/hooks.c **** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - 17:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/hooks.c **** */ - 18:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/hooks.c **** - 19:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/hooks.c **** /** - 20:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/hooks.c **** * Empty yield() hook. - 21:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/hooks.c **** * - 22:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/hooks.c **** * This function is intended to be used by library writers to build - 23:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/hooks.c **** * libraries or sketches that supports cooperative threads. - 24:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/hooks.c **** * - 25:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/hooks.c **** * Its defined as a weak symbol and it can be redefined to implement a - 26:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/hooks.c **** * real cooperative scheduler. - 27:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/hooks.c **** */ - 28:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/hooks.c **** static void __empty() { - 66 .LM0: - 67 .LFBB1: - 68 /* prologue: function */ - 69 /* frame size = 0 */ - 70 /* stack size = 0 */ - 71 .L__stack_usage = 0 - 72 0000 0895 ret - 74 .Lscope1: - 76 .stabd 78,0,0 - 77 .weak yield - 78 .set yield,__empty - 80 .Letext0: - 81 .ident "GCC: (GNU) 5.4.0" -DEFINED SYMBOLS - *ABS*:0000000000000000 hooks.c - /tmp/ccqFBzP1.s:2 *ABS*:000000000000003e __SP_H__ - /tmp/ccqFBzP1.s:3 *ABS*:000000000000003d __SP_L__ - /tmp/ccqFBzP1.s:4 *ABS*:000000000000003f __SREG__ - /tmp/ccqFBzP1.s:5 *ABS*:0000000000000000 __tmp_reg__ - /tmp/ccqFBzP1.s:6 *ABS*:0000000000000001 __zero_reg__ - /tmp/ccqFBzP1.s:63 .text:0000000000000000 __empty - /tmp/ccqFBzP1.s:63 .text:0000000000000000 yield - -NO UNDEFINED SYMBOLS diff --git a/arduino/hardware/arduino/avr/cores/arduino/hooks.o b/arduino/hardware/arduino/avr/cores/arduino/hooks.o deleted file mode 100644 index 0fecc13b1ef1de35c7f5b1ffaee590e2e0166ac7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3976 zcma)9O>7%Q6du=shL)ceaRLqoMG&K8?Om^b;w2Dh(}1W-)u`uXv);s3ZEv(*w>1Yq zq8tziAt6ruoH_M`5E2(85C;yZ5>i#TAue1HMB=~!6yBSinfL59g^@P%&Ae~k`}VzO zW%kw0vu6s0g3zNNwgs((xN(mVZ-CL2gk^DDEQ-bVh2pfukBdUw1-6bjq8NnVhMgzn zt`Hx<{F=gFF#H3Y^!Cp zR{Oo-_-ezQ-mO%+;O9z^7=M-Ea#9K7Br@kAawcIf3>`m=2m8H#)UiZwn6}g9>WW=n zPvqpS)|_Ue<>B9^Cqi&72~K%^W7P7H|78D7{pXwQ}JRjYHIbB|i6DZ(0ay(YD? zqA_=#7YZwNrg<`6E|9I8&1O-+Yt|E{<80P)fW1|$r0qbFjYs0j=F19g zWAkPGxeLD`)!(YcAfyXc(TT@9{U~dFXerhE(j@cE?a)Ttp1qZSCJ9328_KK*Hu~l! zsFyN1Xp+9U9g@y{OZzOz(FrblEp%dDKc~denJs%#iD9yk4y2V!GMrpk$SK!0P0X<= z!BV8Z9i*kaK+1KNDr9kSlxvwU=_MD6@+}KSq#TpdPom6w78chj!==La3%GbFdPqL)7GdsnF3~_N>D%h%uY3szGdu803%T$B+1ClE1_yg zC5FjEQXQlu!^wrE3QUKcE7GMhNH*^|dKH(_PsL*5T*@_-XI7X?`KD0wMN#^RXI|LBq>7MCL(J)=s?1R_UpN&>9=RO%I$ENR74sM4)s}#bc9*(Oi?W0WJXcIg_Mn=I4U;P8qYt9=k>+P_qWgc&-p&& z2*BA4T-e-_ARX-cNwg>N%TW@Wg-oZI^rAjo79Rkg1(kvl!`EO>@4w6Nhk#3p|B1r5 z{1pBmAMuwA3u`nPq`?l%X_C!djne39Dy&YB2Ey7Ijf9m%{Q!6wJJ>Y#WUU*R733yO1_je0k?giM>1O4Fm2dT^ekpKVy diff --git a/arduino/hardware/arduino/avr/cores/arduino/main.d b/arduino/hardware/arduino/avr/cores/arduino/main.d deleted file mode 100644 index b6a4110..0000000 --- a/arduino/hardware/arduino/avr/cores/arduino/main.d +++ /dev/null @@ -1,13 +0,0 @@ -main.o main.d : \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/main.cpp \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8/hardware/arduino/avr/cores/arduino/Arduino.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8/hardware/arduino/avr/cores/arduino/binary.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8/hardware/arduino/avr/cores/arduino/WCharacter.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8/hardware/arduino/avr/cores/arduino/WString.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8/hardware/arduino/avr/cores/arduino/HardwareSerial.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8/hardware/arduino/avr/cores/arduino/Stream.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8/hardware/arduino/avr/cores/arduino/Print.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8/hardware/arduino/avr/cores/arduino/Printable.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8/hardware/arduino/avr/cores/arduino/USBAPI.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8/hardware/arduino/avr/cores/arduino/Arduino.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8/hardware/arduino/avr/variants/standard/pins_arduino.h diff --git a/arduino/hardware/arduino/avr/cores/arduino/main.lst b/arduino/hardware/arduino/avr/cores/arduino/main.lst deleted file mode 100644 index 4ea7f72..0000000 --- a/arduino/hardware/arduino/avr/cores/arduino/main.lst +++ /dev/null @@ -1,87 +0,0 @@ - 1 .file "main.cpp" - 2 __SP_H__ = 0x3e - 3 __SP_L__ = 0x3d - 4 __SREG__ = 0x3f - 5 __tmp_reg__ = 0 - 6 __zero_reg__ = 1 - 9 .text - 10 .Ltext0: - 132 .weak atexit - 134 atexit: - 135 .stabd 46,0,0 - 1:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/main.cpp **** /* - 2:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/main.cpp **** main.cpp - Main loop for Arduino sketches - 3:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/main.cpp **** Copyright (c) 2005-2013 Arduino Team. All right reserved. - 4:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/main.cpp **** - 5:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/main.cpp **** This library is free software; you can redistribute it and/or - 6:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/main.cpp **** modify it under the terms of the GNU Lesser General Public - 7:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/main.cpp **** License as published by the Free Software Foundation; either - 8:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/main.cpp **** version 2.1 of the License, or (at your option) any later version. - 9:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/main.cpp **** - 10:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/main.cpp **** This library is distributed in the hope that it will be useful, - 11:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/main.cpp **** but WITHOUT ANY WARRANTY; without even the implied warranty of - 12:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/main.cpp **** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - 13:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/main.cpp **** Lesser General Public License for more details. - 14:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/main.cpp **** - 15:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/main.cpp **** You should have received a copy of the GNU Lesser General Public - 16:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/main.cpp **** License along with this library; if not, write to the Free Software - 17:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/main.cpp **** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - 18:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/main.cpp **** */ - 19:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/main.cpp **** - 20:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/main.cpp **** #include - 21:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/main.cpp **** - 22:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/main.cpp **** // Declared weak in Arduino.h to allow user redefinitions. - 23:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/main.cpp **** int atexit(void (* /*func*/ )()) { return 0; } - 137 .LM0: - 138 .LFBB1: - 139 /* prologue: function */ - 140 /* frame size = 0 */ - 141 /* stack size = 0 */ - 142 .L__stack_usage = 0 - 144 .LM1: - 145 0000 80E0 ldi r24,0 - 146 0002 90E0 ldi r25,0 - 147 0004 0895 ret - 149 .Lscope1: - 151 .stabd 78,0,0 - 152 .weak initVariant - 154 initVariant: - 155 /* prologue: function */ - 156 /* frame size = 0 */ - 157 /* stack size = 0 */ - 158 .L__stack_usage = 0 - 159 0006 0895 ret - 162 .weak _Z8setupUSBv - 164 _Z8setupUSBv: - 165 .stabd 46,0,0 - 24:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/main.cpp **** - 25:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/main.cpp **** // Weak empty variant initialization function. - 26:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/main.cpp **** // May be redefined by variant files. - 27:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/main.cpp **** void initVariant() __attribute__((weak)); - 28:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/main.cpp **** void initVariant() { } - 29:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/main.cpp **** - 30:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/main.cpp **** void setupUSB() __attribute__((weak)); - 31:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/main.cpp **** void setupUSB() { } - 167 .LM2: - 168 .LFBB2: - 169 /* prologue: function */ - 170 /* frame size = 0 */ - 171 /* stack size = 0 */ - 172 .L__stack_usage = 0 - 173 0008 0895 ret - 175 .Lscope2: - 177 .stabd 78,0,0 - 193 .Letext0: - 194 .ident "GCC: (GNU) 5.4.0" -DEFINED SYMBOLS - *ABS*:0000000000000000 main.cpp - /tmp/ccgqHX6I.s:2 *ABS*:000000000000003e __SP_H__ - /tmp/ccgqHX6I.s:3 *ABS*:000000000000003d __SP_L__ - /tmp/ccgqHX6I.s:4 *ABS*:000000000000003f __SREG__ - /tmp/ccgqHX6I.s:5 *ABS*:0000000000000000 __tmp_reg__ - /tmp/ccgqHX6I.s:6 *ABS*:0000000000000001 __zero_reg__ - /tmp/ccgqHX6I.s:134 .text:0000000000000000 atexit - /tmp/ccgqHX6I.s:154 .text:0000000000000006 initVariant - /tmp/ccgqHX6I.s:164 .text:0000000000000008 _Z8setupUSBv - -NO UNDEFINED SYMBOLS diff --git a/arduino/hardware/arduino/avr/cores/arduino/main.o b/arduino/hardware/arduino/avr/cores/arduino/main.o deleted file mode 100644 index 03de7d0eecc341fee3f9c441157b3b4be0e8ca65..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18620 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 RUzhLYRuug>uIZQN`+r4sW!?Y) diff --git a/arduino/hardware/arduino/avr/cores/arduino/new.d b/arduino/hardware/arduino/avr/cores/arduino/new.d deleted file mode 100644 index d5399c9..0000000 --- a/arduino/hardware/arduino/avr/cores/arduino/new.d +++ /dev/null @@ -1,2 +0,0 @@ -new.o new.d : \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/new.cpp diff --git a/arduino/hardware/arduino/avr/cores/arduino/new.lst b/arduino/hardware/arduino/avr/cores/arduino/new.lst deleted file mode 100644 index 56edbf8..0000000 --- a/arduino/hardware/arduino/avr/cores/arduino/new.lst +++ /dev/null @@ -1,99 +0,0 @@ - 1 .file "new.cpp" - 2 __SP_H__ = 0x3e - 3 __SP_L__ = 0x3d - 4 __SREG__ = 0x3f - 5 __tmp_reg__ = 0 - 6 __zero_reg__ = 1 - 9 .text - 10 .Ltext0: - 80 .global _Znwj - 82 _Znwj: - 83 /* prologue: function */ - 84 /* frame size = 0 */ - 85 /* stack size = 0 */ - 86 .L__stack_usage = 0 - 87 0000 0C94 0000 jmp malloc - 91 .global _Znaj - 93 _Znaj: - 94 .stabd 46,0,0 - 1:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/new.cpp **** /* - 2:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/new.cpp **** Copyright (c) 2014 Arduino. All right reserved. - 3:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/new.cpp **** - 4:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/new.cpp **** This library is free software; you can redistribute it and/or - 5:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/new.cpp **** modify it under the terms of the GNU Lesser General Public - 6:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/new.cpp **** License as published by the Free Software Foundation; either - 7:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/new.cpp **** version 2.1 of the License, or (at your option) any later version. - 8:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/new.cpp **** - 9:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/new.cpp **** This library is distributed in the hope that it will be useful, - 10:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/new.cpp **** but WITHOUT ANY WARRANTY; without even the implied warranty of - 11:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/new.cpp **** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - 12:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/new.cpp **** See the GNU Lesser General Public License for more details. - 13:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/new.cpp **** - 14:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/new.cpp **** You should have received a copy of the GNU Lesser General Public - 15:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/new.cpp **** License along with this library; if not, write to the Free Software - 16:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/new.cpp **** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - 17:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/new.cpp **** */ - 18:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/new.cpp **** - 19:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/new.cpp **** #include - 20:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/new.cpp **** - 21:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/new.cpp **** void *operator new(size_t size) { - 22:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/new.cpp **** return malloc(size); - 23:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/new.cpp **** } - 24:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/new.cpp **** - 25:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/new.cpp **** void *operator new[](size_t size) { - 96 .LM0: - 97 .LFBB1: - 98 /* prologue: function */ - 99 /* frame size = 0 */ - 100 /* stack size = 0 */ - 101 .L__stack_usage = 0 - 26:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/new.cpp **** return malloc(size); - 103 .LM1: - 104 0004 0C94 0000 jmp malloc - 106 .Lscope1: - 108 .stabd 78,0,0 - 109 .global _ZdlPv - 111 _ZdlPv: - 112 /* prologue: function */ - 113 /* frame size = 0 */ - 114 /* stack size = 0 */ - 115 .L__stack_usage = 0 - 116 0008 0C94 0000 jmp free - 120 .global _ZdaPv - 122 _ZdaPv: - 123 .stabd 46,0,0 - 27:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/new.cpp **** } - 28:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/new.cpp **** - 29:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/new.cpp **** void operator delete(void * ptr) { - 30:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/new.cpp **** free(ptr); - 31:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/new.cpp **** } - 32:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/new.cpp **** - 33:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/new.cpp **** void operator delete[](void * ptr) { - 125 .LM2: - 126 .LFBB2: - 127 /* prologue: function */ - 128 /* frame size = 0 */ - 129 /* stack size = 0 */ - 130 .L__stack_usage = 0 - 34:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/new.cpp **** free(ptr); - 132 .LM3: - 133 000c 0C94 0000 jmp free - 135 .Lscope2: - 137 .stabd 78,0,0 - 139 .Letext0: - 140 .ident "GCC: (GNU) 5.4.0" -DEFINED SYMBOLS - *ABS*:0000000000000000 new.cpp - /tmp/ccsmXVCE.s:2 *ABS*:000000000000003e __SP_H__ - /tmp/ccsmXVCE.s:3 *ABS*:000000000000003d __SP_L__ - /tmp/ccsmXVCE.s:4 *ABS*:000000000000003f __SREG__ - /tmp/ccsmXVCE.s:5 *ABS*:0000000000000000 __tmp_reg__ - /tmp/ccsmXVCE.s:6 *ABS*:0000000000000001 __zero_reg__ - /tmp/ccsmXVCE.s:82 .text:0000000000000000 _Znwj - /tmp/ccsmXVCE.s:93 .text:0000000000000004 _Znaj - /tmp/ccsmXVCE.s:111 .text:0000000000000008 _ZdlPv - /tmp/ccsmXVCE.s:122 .text:000000000000000c _ZdaPv - -UNDEFINED SYMBOLS -malloc -free diff --git a/arduino/hardware/arduino/avr/cores/arduino/new.o b/arduino/hardware/arduino/avr/cores/arduino/new.o deleted file mode 100644 index 702d27b799b96b70a14916abd22bed05b9c7e3b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5276 zcma)AO>Epm6rPYm3j`>khf*%vs;Xj??2q>++n7K~(v+gAL~RMEAX(0?lWg#=Q}0jG z9B2<9Q0cJ;R8AnSs2n(OsKfz~I0FYbAXRVyiAzNfNC?XJ#xtI`>#blU?|h#5=6i46 zd-mGCbo|uf$jFG$ZA6?E=1hp2<3hZR$&w^Yh%xb?7`rC=j+nnJt~@L-D@0xFQfz~- zV&oY)D#QoqFDv{N!*>`y08!1EW%xCQw;BGL;j#P7+IfcGVE7utzcPGq)U2Ikc$wiI z!*4PC55vm{f%ZRO_#K9CF#Hq4cNl*3exqYCe3Ib}hOaPugW(?;{+r<=4;cM(4DT>} zo#8JS{*B@NyN%8KvmduYZSA})wSYBl+j z)}+b0X0-gRY;AK>fJ^woQhWMQjSe8gj=m3^y=+|QOH)a z)v2J->TXv`{iC_uI&`+YDACJ#y(m`;BR^T6(=M#lYPMSoo12ZmuV;np!hXjt&2%R6 zlLc#bu5Fi`NMa}NCEoZ7|PgklA{Z2cR2t&nbG`+Q$gfkj&gmh8y=DeL599)$DuDs1szKWI3m3QNsxJ>1ZZ=NS3^z2Nkz=(+SORONMyTQ z=G#ejfvlKal)x;gy!LlaJ}HY~drRby!@0KJQW7`11sfqT6r?<%OeZ^xm1GQ{E9)0)W{gAGDH?x%7;kx4Y5>HQO24DYe<>KQ+b4TJ&Za@(b_0l+CBRID?stIw`Kuq zR4$0iGcIuEhLo4aZ1`a=NLy7ZwphX@1-p=K)Fw&lslnTTjgsW^@ebU@$g9Oyw2dND zgaTCqOKvw#RDYi+9$zeJk!!p9186wz62XLA1CqHu;b4x(HQ>d z-1BvBsV6BVOCSvKOvMu7#QgkBX5z%@m#s`WTgvA36ME9))j4Uq#O=Gu3BYLI*8n=l zOD=1pc(cGOl6W>5yL}g*48$xue+u|Hc24gOrro|v9vL47?c-&YwNZhWMb<{ep2QZt zG>sKydEa!uK?>t{MT`e;m~}cUnE@j?2`L}>mqjmr($sC_z4L* z%}qD**CgKYqfnomZ*6UerWXWZ4Ov1SDObT#Ppn41uksdKAAdCNrCo)|&+*6Oaq>yy zeZV95Zb2=BL*sR%hcIbeX80;_MvcGE@W%?1olg~?@J)ru=JyQWQhXZ!o#8(fruglG zaq@xiUWP@seX-f`R?v5%xL?;O@&hm1@wYo7TlYGi$gZ^8A}dGRYKgZ3vdH57sp+>m z(Eh(I10vNIK3B+A!Y}!zo31^oQ;OT1ns^s+&jaHXU9P7&+V>H4jxEc!pnBbDy-5sE zEdPsF0Y|SP4bs~OW4h9{-2%o5&*7lHm94mbsPhP zX^+%?evGak(`b$kDnG6lfTX`85L@d}kF+Q44)pREB-4-JApa=tbid$whhd> 3) - 36:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #define FRACT_MAX (1000 >> 3) - 37:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 38:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** volatile unsigned long timer0_overflow_count = 0; - 39:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** volatile unsigned long timer0_millis = 0; - 40:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** static unsigned char timer0_fract = 0; - 41:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 42:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #if defined(TIM0_OVF_vect) - 43:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** ISR(TIM0_OVF_vect) - 44:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #else - 45:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** ISR(TIMER0_OVF_vect) - 46:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #endif - 47:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** { - 138 .LM0: - 139 .LFBB1: - 140 0000 1F92 push r1 - 141 0002 0F92 push r0 - 142 0004 0FB6 in r0,__SREG__ - 143 0006 0F92 push r0 - 144 0008 1124 clr __zero_reg__ - 145 000a 2F93 push r18 - 146 000c 3F93 push r19 - 147 000e 8F93 push r24 - 148 0010 9F93 push r25 - 149 0012 AF93 push r26 - 150 0014 BF93 push r27 - 151 /* prologue: Signal */ - 152 /* frame size = 0 */ - 153 /* stack size = 9 */ - 154 .L__stack_usage = 9 - 48:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // copy these to local variables so they can be stored in registers - 49:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // (volatile variables must be read from memory on every access) - 50:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** unsigned long m = timer0_millis; - 156 .LM1: - 157 0016 8091 0000 lds r24,timer0_millis - 158 001a 9091 0000 lds r25,timer0_millis+1 - 159 001e A091 0000 lds r26,timer0_millis+2 - 160 0022 B091 0000 lds r27,timer0_millis+3 - 51:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** unsigned char f = timer0_fract; - 162 .LM2: - 163 0026 3091 0000 lds r19,timer0_fract - 52:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 53:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** m += MILLIS_INC; - 54:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** f += FRACT_INC; - 165 .LM3: - 166 002a 23E0 ldi r18,lo8(3) - 167 002c 230F add r18,r19 - 55:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** if (f >= FRACT_MAX) { - 169 .LM4: - 170 002e 2D37 cpi r18,lo8(125) - 171 0030 00F4 brsh .L2 - 53:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** f += FRACT_INC; - 173 .LM5: - 174 0032 0196 adiw r24,1 - 175 0034 A11D adc r26,__zero_reg__ - 176 0036 B11D adc r27,__zero_reg__ - 177 0038 00C0 rjmp .L3 - 178 .L2: - 56:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** f -= FRACT_MAX; - 180 .LM6: - 181 003a 26E8 ldi r18,lo8(-122) - 182 003c 230F add r18,r19 - 57:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** m += 1; - 184 .LM7: - 185 003e 0296 adiw r24,2 - 186 0040 A11D adc r26,__zero_reg__ - 187 0042 B11D adc r27,__zero_reg__ - 188 .L3: - 58:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** } - 59:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 60:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** timer0_fract = f; - 190 .LM8: - 191 0044 2093 0000 sts timer0_fract,r18 - 61:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** timer0_millis = m; - 193 .LM9: - 194 0048 8093 0000 sts timer0_millis,r24 - 195 004c 9093 0000 sts timer0_millis+1,r25 - 196 0050 A093 0000 sts timer0_millis+2,r26 - 197 0054 B093 0000 sts timer0_millis+3,r27 - 62:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** timer0_overflow_count++; - 199 .LM10: - 200 0058 8091 0000 lds r24,timer0_overflow_count - 201 005c 9091 0000 lds r25,timer0_overflow_count+1 - 202 0060 A091 0000 lds r26,timer0_overflow_count+2 - 203 0064 B091 0000 lds r27,timer0_overflow_count+3 - 204 0068 0196 adiw r24,1 - 205 006a A11D adc r26,__zero_reg__ - 206 006c B11D adc r27,__zero_reg__ - 207 006e 8093 0000 sts timer0_overflow_count,r24 - 208 0072 9093 0000 sts timer0_overflow_count+1,r25 - 209 0076 A093 0000 sts timer0_overflow_count+2,r26 - 210 007a B093 0000 sts timer0_overflow_count+3,r27 - 211 /* epilogue start */ - 63:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** } - 213 .LM11: - 214 007e BF91 pop r27 - 215 0080 AF91 pop r26 - 216 0082 9F91 pop r25 - 217 0084 8F91 pop r24 - 218 0086 3F91 pop r19 - 219 0088 2F91 pop r18 - 220 008a 0F90 pop r0 - 221 008c 0FBE out __SREG__,r0 - 222 008e 0F90 pop r0 - 223 0090 1F90 pop r1 - 224 0092 1895 reti - 226 .Lscope1: - 228 .stabd 78,0,0 - 230 .global millis - 232 millis: - 233 .stabd 46,0,0 - 64:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 65:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** unsigned long millis() - 66:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** { - 235 .LM12: - 236 .LFBB2: - 237 /* prologue: function */ - 238 /* frame size = 0 */ - 239 /* stack size = 0 */ - 240 .L__stack_usage = 0 - 67:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** unsigned long m; - 68:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** uint8_t oldSREG = SREG; - 242 .LM13: - 243 0094 2FB7 in r18,__SREG__ - 69:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 70:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // disable interrupts while we read timer0_millis or we might get an - 71:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // inconsistent value (e.g. in the middle of a write to timer0_millis) - 72:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** cli(); - 245 .LM14: - 246 /* #APP */ - 247 ; 72 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino - 248 0096 F894 cli - 249 ; 0 "" 2 - 73:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** m = timer0_millis; - 251 .LM15: - 252 /* #NOAPP */ - 253 0098 6091 0000 lds r22,timer0_millis - 254 009c 7091 0000 lds r23,timer0_millis+1 - 255 00a0 8091 0000 lds r24,timer0_millis+2 - 256 00a4 9091 0000 lds r25,timer0_millis+3 - 74:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** SREG = oldSREG; - 258 .LM16: - 259 00a8 2FBF out __SREG__,r18 - 75:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 76:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** return m; - 77:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** } - 261 .LM17: - 262 00aa 0895 ret - 268 .Lscope2: - 270 .stabd 78,0,0 - 272 .global micros - 274 micros: - 275 .stabd 46,0,0 - 78:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 79:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** unsigned long micros() { - 277 .LM18: - 278 .LFBB3: - 279 /* prologue: function */ - 280 /* frame size = 0 */ - 281 /* stack size = 0 */ - 282 .L__stack_usage = 0 - 80:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** unsigned long m; - 81:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** uint8_t oldSREG = SREG, t; - 284 .LM19: - 285 00ac 3FB7 in r19,__SREG__ - 82:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 83:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** cli(); - 287 .LM20: - 288 /* #APP */ - 289 ; 83 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino - 290 00ae F894 cli - 291 ; 0 "" 2 - 84:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** m = timer0_overflow_count; - 293 .LM21: - 294 /* #NOAPP */ - 295 00b0 8091 0000 lds r24,timer0_overflow_count - 296 00b4 9091 0000 lds r25,timer0_overflow_count+1 - 297 00b8 A091 0000 lds r26,timer0_overflow_count+2 - 298 00bc B091 0000 lds r27,timer0_overflow_count+3 - 85:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #if defined(TCNT0) - 86:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** t = TCNT0; - 300 .LM22: - 301 00c0 26B5 in r18,0x26 - 87:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #elif defined(TCNT0L) - 88:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** t = TCNT0L; - 89:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #else - 90:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #error TIMER 0 not defined - 91:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #endif - 92:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 93:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #ifdef TIFR0 - 94:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** if ((TIFR0 & _BV(TOV0)) && (t < 255)) - 303 .LM23: - 304 00c2 A89B sbis 0x15,0 - 305 00c4 00C0 rjmp .L7 - 307 .LM24: - 308 00c6 2F3F cpi r18,lo8(-1) - 309 00c8 01F0 breq .L7 - 95:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** m++; - 311 .LM25: - 312 00ca 0196 adiw r24,1 - 313 00cc A11D adc r26,__zero_reg__ - 314 00ce B11D adc r27,__zero_reg__ - 315 .L7: - 96:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #else - 97:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** if ((TIFR & _BV(TOV0)) && (t < 255)) - 98:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** m++; - 99:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #endif - 100:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 101:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** SREG = oldSREG; - 317 .LM26: - 318 00d0 3FBF out __SREG__,r19 - 102:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 103:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** return ((m << 8) + t) * (64 / clockCyclesPerMicrosecond()); - 320 .LM27: - 321 00d2 BA2F mov r27,r26 - 322 00d4 A92F mov r26,r25 - 323 00d6 982F mov r25,r24 - 324 00d8 8827 clr r24 - 325 00da 820F add r24,r18 - 326 00dc 911D adc r25,__zero_reg__ - 327 00de A11D adc r26,__zero_reg__ - 328 00e0 B11D adc r27,__zero_reg__ - 329 00e2 BC01 movw r22,r24 - 330 00e4 CD01 movw r24,r26 - 331 00e6 42E0 ldi r20,2 - 332 1: - 333 00e8 660F lsl r22 - 334 00ea 771F rol r23 - 335 00ec 881F rol r24 - 336 00ee 991F rol r25 - 337 00f0 4A95 dec r20 - 338 00f2 01F4 brne 1b - 104:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** } - 340 .LM28: - 341 00f4 0895 ret - 348 .Lscope3: - 350 .stabd 78,0,0 - 353 .global delay - 355 delay: - 356 .stabd 46,0,0 - 105:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 106:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** void delay(unsigned long ms) - 107:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** { - 358 .LM29: - 359 .LFBB4: - 360 00f6 8F92 push r8 - 361 00f8 9F92 push r9 - 362 00fa AF92 push r10 - 363 00fc BF92 push r11 - 364 00fe CF92 push r12 - 365 0100 DF92 push r13 - 366 0102 EF92 push r14 - 367 0104 FF92 push r15 - 368 /* prologue: function */ - 369 /* frame size = 0 */ - 370 /* stack size = 8 */ - 371 .L__stack_usage = 8 - 372 0106 6B01 movw r12,r22 - 373 0108 7C01 movw r14,r24 - 108:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** uint32_t start = micros(); - 375 .LM30: - 376 010a 0E94 0000 call micros - 377 010e 4B01 movw r8,r22 - 378 0110 5C01 movw r10,r24 - 379 .L15: - 109:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 110:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** while (ms > 0) { - 381 .LM31: - 382 0112 C114 cp r12,__zero_reg__ - 383 0114 D104 cpc r13,__zero_reg__ - 384 0116 E104 cpc r14,__zero_reg__ - 385 0118 F104 cpc r15,__zero_reg__ - 386 011a 01F0 breq .L23 - 111:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** yield(); - 388 .LM32: - 389 011c 0E94 0000 call yield - 390 .L16: - 112:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** while ( ms > 0 && (micros() - start) >= 1000) { - 392 .LM33: - 393 0120 0E94 0000 call micros - 394 0124 DC01 movw r26,r24 - 395 0126 CB01 movw r24,r22 - 396 0128 8819 sub r24,r8 - 397 012a 9909 sbc r25,r9 - 398 012c AA09 sbc r26,r10 - 399 012e BB09 sbc r27,r11 - 400 0130 883E cpi r24,-24 - 401 0132 9340 sbci r25,3 - 402 0134 A105 cpc r26,__zero_reg__ - 403 0136 B105 cpc r27,__zero_reg__ - 404 0138 00F0 brlo .L15 - 113:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** ms--; - 406 .LM34: - 407 013a 21E0 ldi r18,1 - 408 013c C21A sub r12,r18 - 409 013e D108 sbc r13,__zero_reg__ - 410 0140 E108 sbc r14,__zero_reg__ - 411 0142 F108 sbc r15,__zero_reg__ - 114:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** start += 1000; - 413 .LM35: - 414 0144 88EE ldi r24,-24 - 415 0146 880E add r8,r24 - 416 0148 83E0 ldi r24,3 - 417 014a 981E adc r9,r24 - 418 014c A11C adc r10,__zero_reg__ - 419 014e B11C adc r11,__zero_reg__ - 112:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** while ( ms > 0 && (micros() - start) >= 1000) { - 421 .LM36: - 422 0150 C114 cp r12,__zero_reg__ - 423 0152 D104 cpc r13,__zero_reg__ - 424 0154 E104 cpc r14,__zero_reg__ - 425 0156 F104 cpc r15,__zero_reg__ - 426 0158 01F4 brne .L16 - 427 015a 00C0 rjmp .L15 - 428 .L23: - 429 /* epilogue start */ - 115:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** } - 116:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** } - 117:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** } - 431 .LM37: - 432 015c FF90 pop r15 - 433 015e EF90 pop r14 - 434 0160 DF90 pop r13 - 435 0162 CF90 pop r12 - 436 0164 BF90 pop r11 - 437 0166 AF90 pop r10 - 438 0168 9F90 pop r9 - 439 016a 8F90 pop r8 - 440 016c 0895 ret - 445 .Lscope4: - 447 .stabd 78,0,0 - 450 .global delayMicroseconds - 452 delayMicroseconds: - 453 .stabd 46,0,0 - 118:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 119:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** /* Delay for the given number of microseconds. Assumes a 1, 8, 12, 16, 20 or 24 MHz clock. */ - 120:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** void delayMicroseconds(unsigned int us) - 121:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** { - 455 .LM38: - 456 .LFBB5: - 457 /* prologue: function */ - 458 /* frame size = 0 */ - 459 /* stack size = 0 */ - 460 .L__stack_usage = 0 - 122:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // call = 4 cycles + 2 to 4 cycles to init us(2 for constant delay, 4 for variable) - 123:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 124:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // calling avrlib's delay_us() function with low values (e.g. 1 or - 125:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // 2 microseconds) gives delays longer than desired. - 126:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** //delay_us(us); - 127:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #if F_CPU >= 24000000L - 128:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // for the 24 MHz clock for the aventurous ones, trying to overclock - 129:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 130:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // zero delay fix - 131:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** if (!us) return; // = 3 cycles, (4 when true) - 132:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 133:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // the following loop takes a 1/6 of a microsecond (4 cycles) - 134:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // per iteration, so execute it six times for each microsecond of - 135:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // delay requested. - 136:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** us *= 6; // x6 us, = 7 cycles - 137:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 138:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // account for the time taken in the preceeding commands. - 139:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // we just burned 22 (24) cycles above, remove 5, (5*4=20) - 140:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // us is at least 6 so we can substract 5 - 141:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** us -= 5; //=2 cycles - 142:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 143:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #elif F_CPU >= 20000000L - 144:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // for the 20 MHz clock on rare Arduino boards - 145:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 146:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // for a one-microsecond delay, simply return. the overhead - 147:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // of the function call takes 18 (20) cycles, which is 1us - 148:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** __asm__ __volatile__ ( - 149:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** "nop" "\n\t" - 150:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** "nop" "\n\t" - 151:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** "nop" "\n\t" - 152:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** "nop"); //just waiting 4 cycles - 153:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** if (us <= 1) return; // = 3 cycles, (4 when true) - 154:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 155:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // the following loop takes a 1/5 of a microsecond (4 cycles) - 156:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // per iteration, so execute it five times for each microsecond of - 157:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // delay requested. - 158:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** us = (us << 2) + us; // x5 us, = 7 cycles - 159:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 160:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // account for the time taken in the preceeding commands. - 161:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // we just burned 26 (28) cycles above, remove 7, (7*4=28) - 162:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // us is at least 10 so we can substract 7 - 163:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** us -= 7; // 2 cycles - 164:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 165:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #elif F_CPU >= 16000000L - 166:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // for the 16 MHz clock on most Arduino boards - 167:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 168:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // for a one-microsecond delay, simply return. the overhead - 169:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // of the function call takes 14 (16) cycles, which is 1us - 170:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** if (us <= 1) return; // = 3 cycles, (4 when true) - 462 .LM39: - 463 016e 8230 cpi r24,2 - 464 0170 9105 cpc r25,__zero_reg__ - 465 0172 00F0 brlo .L24 - 171:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 172:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // the following loop takes 1/4 of a microsecond (4 cycles) - 173:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // per iteration, so execute it four times for each microsecond of - 174:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // delay requested. - 175:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** us <<= 2; // x4 us, = 4 cycles - 467 .LM40: - 468 0174 880F lsl r24 - 469 0176 991F rol r25 - 470 0178 880F lsl r24 - 471 017a 991F rol r25 - 176:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 177:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // account for the time taken in the preceeding commands. - 178:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // we just burned 19 (21) cycles above, remove 5, (5*4=20) - 179:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // us is at least 8 so we can substract 5 - 180:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** us -= 5; // = 2 cycles, - 473 .LM41: - 474 017c 0597 sbiw r24,5 - 181:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 182:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #elif F_CPU >= 12000000L - 183:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // for the 12 MHz clock if somebody is working with USB - 184:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 185:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // for a 1 microsecond delay, simply return. the overhead - 186:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // of the function call takes 14 (16) cycles, which is 1.5us - 187:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** if (us <= 1) return; // = 3 cycles, (4 when true) - 188:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 189:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // the following loop takes 1/3 of a microsecond (4 cycles) - 190:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // per iteration, so execute it three times for each microsecond of - 191:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // delay requested. - 192:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** us = (us << 1) + us; // x3 us, = 5 cycles - 193:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 194:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // account for the time taken in the preceeding commands. - 195:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // we just burned 20 (22) cycles above, remove 5, (5*4=20) - 196:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // us is at least 6 so we can substract 5 - 197:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** us -= 5; //2 cycles - 198:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 199:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #elif F_CPU >= 8000000L - 200:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // for the 8 MHz internal clock - 201:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 202:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // for a 1 and 2 microsecond delay, simply return. the overhead - 203:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // of the function call takes 14 (16) cycles, which is 2us - 204:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** if (us <= 2) return; // = 3 cycles, (4 when true) - 205:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 206:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // the following loop takes 1/2 of a microsecond (4 cycles) - 207:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // per iteration, so execute it twice for each microsecond of - 208:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // delay requested. - 209:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** us <<= 1; //x2 us, = 2 cycles - 210:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 211:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // account for the time taken in the preceeding commands. - 212:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // we just burned 17 (19) cycles above, remove 4, (4*4=16) - 213:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // us is at least 6 so we can substract 4 - 214:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** us -= 4; // = 2 cycles - 215:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 216:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #else - 217:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // for the 1 MHz internal clock (default settings for common Atmega microcontrollers) - 218:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 219:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // the overhead of the function calls is 14 (16) cycles - 220:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** if (us <= 16) return; //= 3 cycles, (4 when true) - 221:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** if (us <= 25) return; //= 3 cycles, (4 when true), (must be at least 25 if we want to substract 22 - 222:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 223:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // compensate for the time taken by the preceeding and next commands (about 22 cycles) - 224:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** us -= 22; // = 2 cycles - 225:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // the following loop takes 4 microseconds (4 cycles) - 226:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // per iteration, so execute it us/4 times - 227:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // us is at least 4, divided by 4 gives us 1 (no zero delay bug) - 228:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** us >>= 2; // us div 4, = 4 cycles - 229:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 230:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 231:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #endif - 232:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 233:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // busy wait - 234:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** __asm__ __volatile__ ( - 476 .LM42: - 477 /* #APP */ - 478 ; 234 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduin - 479 017e 0197 1: sbiw r24,1 - 480 0180 01F4 brne 1b - 481 ; 0 "" 2 - 482 /* #NOAPP */ - 483 .L24: - 484 0182 0895 ret - 486 .Lscope5: - 488 .stabd 78,0,0 - 490 .global init - 492 init: - 493 .stabd 46,0,0 - 235:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** "1: sbiw %0,1" "\n\t" // 2 cycles - 236:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** "brne 1b" : "=w" (us) : "0" (us) // 2 cycles - 237:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** ); - 238:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // return = 4 cycles - 239:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** } - 240:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 241:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** void init() - 242:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** { - 495 .LM43: - 496 .LFBB6: - 497 /* prologue: function */ - 498 /* frame size = 0 */ - 499 /* stack size = 0 */ - 500 .L__stack_usage = 0 - 243:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // this needs to be called before setup() or some functions won't - 244:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // work there - 245:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** sei(); - 502 .LM44: - 503 /* #APP */ - 504 ; 245 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduin - 505 0184 7894 sei - 506 ; 0 "" 2 - 246:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 247:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // on the ATmega168, timer 0 is also used for fast hardware pwm - 248:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // (using phase-correct PWM would mean that timer 0 overflowed half as often - 249:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // resulting in different millis() behavior on the ATmega8 and ATmega168) - 250:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #if defined(TCCR0A) && defined(WGM01) - 251:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** sbi(TCCR0A, WGM01); - 508 .LM45: - 509 /* #NOAPP */ - 510 0186 84B5 in r24,0x24 - 511 0188 8260 ori r24,lo8(2) - 512 018a 84BD out 0x24,r24 - 252:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** sbi(TCCR0A, WGM00); - 514 .LM46: - 515 018c 84B5 in r24,0x24 - 516 018e 8160 ori r24,lo8(1) - 517 0190 84BD out 0x24,r24 - 253:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #endif - 254:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 255:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // set timer 0 prescale factor to 64 - 256:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #if defined(__AVR_ATmega128__) - 257:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // CPU specific: different values for the ATmega128 - 258:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** sbi(TCCR0, CS02); - 259:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #elif defined(TCCR0) && defined(CS01) && defined(CS00) - 260:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // this combination is for the standard atmega8 - 261:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** sbi(TCCR0, CS01); - 262:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** sbi(TCCR0, CS00); - 263:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #elif defined(TCCR0B) && defined(CS01) && defined(CS00) - 264:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // this combination is for the standard 168/328/1280/2560 - 265:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** sbi(TCCR0B, CS01); - 519 .LM47: - 520 0192 85B5 in r24,0x25 - 521 0194 8260 ori r24,lo8(2) - 522 0196 85BD out 0x25,r24 - 266:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** sbi(TCCR0B, CS00); - 524 .LM48: - 525 0198 85B5 in r24,0x25 - 526 019a 8160 ori r24,lo8(1) - 527 019c 85BD out 0x25,r24 - 267:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #elif defined(TCCR0A) && defined(CS01) && defined(CS00) - 268:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // this combination is for the __AVR_ATmega645__ series - 269:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** sbi(TCCR0A, CS01); - 270:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** sbi(TCCR0A, CS00); - 271:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #else - 272:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #error Timer 0 prescale factor 64 not set correctly - 273:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #endif - 274:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 275:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // enable timer 0 overflow interrupt - 276:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #if defined(TIMSK) && defined(TOIE0) - 277:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** sbi(TIMSK, TOIE0); - 278:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #elif defined(TIMSK0) && defined(TOIE0) - 279:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** sbi(TIMSK0, TOIE0); - 529 .LM49: - 530 019e EEE6 ldi r30,lo8(110) - 531 01a0 F0E0 ldi r31,0 - 532 01a2 8081 ld r24,Z - 533 01a4 8160 ori r24,lo8(1) - 534 01a6 8083 st Z,r24 - 280:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #else - 281:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #error Timer 0 overflow interrupt not set correctly - 282:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #endif - 283:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 284:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // timers 1 and 2 are used for phase-correct hardware pwm - 285:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // this is better for motors as it ensures an even waveform - 286:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // note, however, that fast pwm mode can achieve a frequency of up - 287:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // 8 MHz (with a 16 MHz clock) at 50% duty cycle - 288:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 289:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #if defined(TCCR1B) && defined(CS11) && defined(CS10) - 290:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** TCCR1B = 0; - 536 .LM50: - 537 01a8 E1E8 ldi r30,lo8(-127) - 538 01aa F0E0 ldi r31,0 - 539 01ac 1082 st Z,__zero_reg__ - 291:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 292:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // set timer 1 prescale factor to 64 - 293:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** sbi(TCCR1B, CS11); - 541 .LM51: - 542 01ae 8081 ld r24,Z - 543 01b0 8260 ori r24,lo8(2) - 544 01b2 8083 st Z,r24 - 294:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #if F_CPU >= 8000000L - 295:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** sbi(TCCR1B, CS10); - 546 .LM52: - 547 01b4 8081 ld r24,Z - 548 01b6 8160 ori r24,lo8(1) - 549 01b8 8083 st Z,r24 - 296:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #endif - 297:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #elif defined(TCCR1) && defined(CS11) && defined(CS10) - 298:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** sbi(TCCR1, CS11); - 299:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #if F_CPU >= 8000000L - 300:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** sbi(TCCR1, CS10); - 301:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #endif - 302:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #endif - 303:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // put timer 1 in 8-bit phase correct pwm mode - 304:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #if defined(TCCR1A) && defined(WGM10) - 305:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** sbi(TCCR1A, WGM10); - 551 .LM53: - 552 01ba E0E8 ldi r30,lo8(-128) - 553 01bc F0E0 ldi r31,0 - 554 01be 8081 ld r24,Z - 555 01c0 8160 ori r24,lo8(1) - 556 01c2 8083 st Z,r24 - 306:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #endif - 307:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 308:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // set timer 2 prescale factor to 64 - 309:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #if defined(TCCR2) && defined(CS22) - 310:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** sbi(TCCR2, CS22); - 311:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #elif defined(TCCR2B) && defined(CS22) - 312:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** sbi(TCCR2B, CS22); - 558 .LM54: - 559 01c4 E1EB ldi r30,lo8(-79) - 560 01c6 F0E0 ldi r31,0 - 561 01c8 8081 ld r24,Z - 562 01ca 8460 ori r24,lo8(4) - 563 01cc 8083 st Z,r24 - 313:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** //#else - 314:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // Timer 2 not finished (may not be present on this CPU) - 315:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #endif - 316:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 317:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // configure timer 2 for phase correct pwm (8-bit) - 318:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #if defined(TCCR2) && defined(WGM20) - 319:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** sbi(TCCR2, WGM20); - 320:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #elif defined(TCCR2A) && defined(WGM20) - 321:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** sbi(TCCR2A, WGM20); - 565 .LM55: - 566 01ce E0EB ldi r30,lo8(-80) - 567 01d0 F0E0 ldi r31,0 - 568 01d2 8081 ld r24,Z - 569 01d4 8160 ori r24,lo8(1) - 570 01d6 8083 st Z,r24 - 322:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** //#else - 323:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // Timer 2 not finished (may not be present on this CPU) - 324:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #endif - 325:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 326:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #if defined(TCCR3B) && defined(CS31) && defined(WGM30) - 327:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** sbi(TCCR3B, CS31); // set timer 3 prescale factor to 64 - 328:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** sbi(TCCR3B, CS30); - 329:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** sbi(TCCR3A, WGM30); // put timer 3 in 8-bit phase correct pwm mode - 330:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #endif - 331:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 332:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #if defined(TCCR4A) && defined(TCCR4B) && defined(TCCR4D) /* beginning of timer4 block for 32U4 and - 333:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** sbi(TCCR4B, CS42); // set timer4 prescale factor to 64 - 334:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** sbi(TCCR4B, CS41); - 335:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** sbi(TCCR4B, CS40); - 336:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** sbi(TCCR4D, WGM40); // put timer 4 in phase- and frequency-correct PWM mode - 337:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** sbi(TCCR4A, PWM4A); // enable PWM mode for comparator OCR4A - 338:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** sbi(TCCR4C, PWM4D); // enable PWM mode for comparator OCR4D - 339:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #else /* beginning of timer4 block for ATMEGA1280 and ATMEGA2560 */ - 340:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #if defined(TCCR4B) && defined(CS41) && defined(WGM40) - 341:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** sbi(TCCR4B, CS41); // set timer 4 prescale factor to 64 - 342:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** sbi(TCCR4B, CS40); - 343:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** sbi(TCCR4A, WGM40); // put timer 4 in 8-bit phase correct pwm mode - 344:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #endif - 345:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #endif /* end timer4 block for ATMEGA1280/2560 and similar */ - 346:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 347:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #if defined(TCCR5B) && defined(CS51) && defined(WGM50) - 348:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** sbi(TCCR5B, CS51); // set timer 5 prescale factor to 64 - 349:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** sbi(TCCR5B, CS50); - 350:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** sbi(TCCR5A, WGM50); // put timer 5 in 8-bit phase correct pwm mode - 351:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #endif - 352:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 353:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #if defined(ADCSRA) - 354:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // set a2d prescaler so we are inside the desired 50-200 KHz range. - 355:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #if F_CPU >= 16000000 // 16 MHz / 128 = 125 KHz - 356:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** sbi(ADCSRA, ADPS2); - 572 .LM56: - 573 01d8 EAE7 ldi r30,lo8(122) - 574 01da F0E0 ldi r31,0 - 575 01dc 8081 ld r24,Z - 576 01de 8460 ori r24,lo8(4) - 577 01e0 8083 st Z,r24 - 357:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** sbi(ADCSRA, ADPS1); - 579 .LM57: - 580 01e2 8081 ld r24,Z - 581 01e4 8260 ori r24,lo8(2) - 582 01e6 8083 st Z,r24 - 358:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** sbi(ADCSRA, ADPS0); - 584 .LM58: - 585 01e8 8081 ld r24,Z - 586 01ea 8160 ori r24,lo8(1) - 587 01ec 8083 st Z,r24 - 359:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #elif F_CPU >= 8000000 // 8 MHz / 64 = 125 KHz - 360:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** sbi(ADCSRA, ADPS2); - 361:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** sbi(ADCSRA, ADPS1); - 362:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** cbi(ADCSRA, ADPS0); - 363:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #elif F_CPU >= 4000000 // 4 MHz / 32 = 125 KHz - 364:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** sbi(ADCSRA, ADPS2); - 365:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** cbi(ADCSRA, ADPS1); - 366:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** sbi(ADCSRA, ADPS0); - 367:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #elif F_CPU >= 2000000 // 2 MHz / 16 = 125 KHz - 368:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** sbi(ADCSRA, ADPS2); - 369:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** cbi(ADCSRA, ADPS1); - 370:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** cbi(ADCSRA, ADPS0); - 371:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #elif F_CPU >= 1000000 // 1 MHz / 8 = 125 KHz - 372:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** cbi(ADCSRA, ADPS2); - 373:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** sbi(ADCSRA, ADPS1); - 374:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** sbi(ADCSRA, ADPS0); - 375:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #else // 128 kHz / 2 = 64 KHz -> This is the closest you can get, the prescaler is 2 - 376:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** cbi(ADCSRA, ADPS2); - 377:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** cbi(ADCSRA, ADPS1); - 378:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** sbi(ADCSRA, ADPS0); - 379:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #endif - 380:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // enable a2d conversions - 381:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** sbi(ADCSRA, ADEN); - 589 .LM59: - 590 01ee 8081 ld r24,Z - 591 01f0 8068 ori r24,lo8(-128) - 592 01f2 8083 st Z,r24 - 382:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #endif - 383:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** - 384:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // the bootloader connects pins 0 and 1 to the USART; disconnect them - 385:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // here so they can be used as normal digital i/o; they will be - 386:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** // reconnected in Serial.begin() - 387:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #if defined(UCSRB) - 388:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** UCSRB = 0; - 389:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** #elif defined(UCSR0B) - 390:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring.c **** UCSR0B = 0; - 594 .LM60: - 595 01f4 1092 C100 sts 193,__zero_reg__ - 596 01f8 0895 ret - 598 .Lscope6: - 600 .stabd 78,0,0 - 601 .local timer0_fract - 602 .comm timer0_fract,1,1 - 603 .global timer0_millis - 604 .section .bss - 607 timer0_millis: - 608 0000 0000 0000 .zero 4 - 609 .global timer0_overflow_count - 612 timer0_overflow_count: - 613 0004 0000 0000 .zero 4 - 631 .text - 633 .Letext0: - 634 .ident "GCC: (GNU) 5.4.0" - 635 .global __do_clear_bss -DEFINED SYMBOLS - *ABS*:0000000000000000 wiring.c - /tmp/ccTQAyVS.s:2 *ABS*:000000000000003e __SP_H__ - /tmp/ccTQAyVS.s:3 *ABS*:000000000000003d __SP_L__ - /tmp/ccTQAyVS.s:4 *ABS*:000000000000003f __SREG__ - /tmp/ccTQAyVS.s:5 *ABS*:0000000000000000 __tmp_reg__ - /tmp/ccTQAyVS.s:6 *ABS*:0000000000000001 __zero_reg__ - /tmp/ccTQAyVS.s:135 .text:0000000000000000 __vector_16 - /tmp/ccTQAyVS.s:607 .bss:0000000000000000 timer0_millis - .bss:0000000000000008 timer0_fract - /tmp/ccTQAyVS.s:612 .bss:0000000000000004 timer0_overflow_count - /tmp/ccTQAyVS.s:232 .text:0000000000000094 millis - /tmp/ccTQAyVS.s:274 .text:00000000000000ac micros - /tmp/ccTQAyVS.s:355 .text:00000000000000f6 delay - /tmp/ccTQAyVS.s:452 .text:000000000000016e delayMicroseconds - /tmp/ccTQAyVS.s:492 .text:0000000000000184 init - -UNDEFINED SYMBOLS -yield -__do_clear_bss diff --git a/arduino/hardware/arduino/avr/cores/arduino/wiring.o b/arduino/hardware/arduino/avr/cores/arduino/wiring.o deleted file mode 100644 index d4d379d6e042453b24909197d9d81f5ac9aa45e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10868 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 xqkjB!S!XZNX58Pz`wsvB diff --git a/arduino/hardware/arduino/avr/cores/arduino/wiring_analog.d b/arduino/hardware/arduino/avr/cores/arduino/wiring_analog.d deleted file mode 100644 index 82a05b0..0000000 --- a/arduino/hardware/arduino/avr/cores/arduino/wiring_analog.d +++ /dev/null @@ -1,6 +0,0 @@ -wiring_analog.o wiring_analog.d : \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_private.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Arduino.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/binary.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8/hardware/arduino/avr/variants/standard/pins_arduino.h diff --git a/arduino/hardware/arduino/avr/cores/arduino/wiring_analog.lst b/arduino/hardware/arduino/avr/cores/arduino/wiring_analog.lst deleted file mode 100644 index db9d0ac..0000000 --- a/arduino/hardware/arduino/avr/cores/arduino/wiring_analog.lst +++ /dev/null @@ -1,546 +0,0 @@ - 1 .file "wiring_analog.c" - 2 __SP_H__ = 0x3e - 3 __SP_L__ = 0x3d - 4 __SREG__ = 0x3f - 5 __tmp_reg__ = 0 - 6 __zero_reg__ = 1 - 9 .text - 10 .Ltext0: - 134 .global analogReference - 136 analogReference: - 137 .stabd 46,0,0 - 1:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** /* - 2:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** wiring_analog.c - analog input and output - 3:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** Part of Arduino - http://www.arduino.cc/ - 4:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** - 5:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** Copyright (c) 2005-2006 David A. Mellis - 6:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** - 7:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** This library is free software; you can redistribute it and/or - 8:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** modify it under the terms of the GNU Lesser General Public - 9:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** License as published by the Free Software Foundation; either - 10:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** version 2.1 of the License, or (at your option) any later version. - 11:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** - 12:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** This library is distributed in the hope that it will be useful, - 13:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** but WITHOUT ANY WARRANTY; without even the implied warranty of - 14:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - 15:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** Lesser General Public License for more details. - 16:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** - 17:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** You should have received a copy of the GNU Lesser General - 18:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** Public License along with this library; if not, write to the - 19:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** Free Software Foundation, Inc., 59 Temple Place, Suite 330, - 20:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** Boston, MA 02111-1307 USA - 21:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** - 22:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** Modified 28 September 2010 by Mark Sproul - 23:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** */ - 24:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** - 25:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #include "wiring_private.h" - 26:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #include "pins_arduino.h" - 27:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** - 28:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** uint8_t analog_reference = DEFAULT; - 29:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** - 30:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** void analogReference(uint8_t mode) - 31:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** { - 139 .LM0: - 140 .LFBB1: - 141 /* prologue: function */ - 142 /* frame size = 0 */ - 143 /* stack size = 0 */ - 144 .L__stack_usage = 0 - 32:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** // can't actually set the register here because the default setting - 33:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** // will connect AVCC and the AREF pin, which would cause a short if - 34:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** // there's something connected to AREF. - 35:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** analog_reference = mode; - 146 .LM1: - 147 0000 8093 0000 sts analog_reference,r24 - 148 0004 0895 ret - 150 .Lscope1: - 152 .stabd 78,0,0 - 155 .global analogRead - 157 analogRead: - 158 .stabd 46,0,0 - 36:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** } - 37:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** - 38:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** int analogRead(uint8_t pin) - 39:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** { - 160 .LM2: - 161 .LFBB2: - 162 /* prologue: function */ - 163 /* frame size = 0 */ - 164 /* stack size = 0 */ - 165 .L__stack_usage = 0 - 40:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** uint8_t low, high; - 41:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** - 42:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #if defined(analogPinToChannel) - 43:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #if defined(__AVR_ATmega32U4__) - 44:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** if (pin >= 18) pin -= 18; // allow for channel or pin numbers - 45:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #endif - 46:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** pin = analogPinToChannel(pin); - 47:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) - 48:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** if (pin >= 54) pin -= 54; // allow for channel or pin numbers - 49:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #elif defined(__AVR_ATmega32U4__) - 50:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** if (pin >= 18) pin -= 18; // allow for channel or pin numbers - 51:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #elif defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644__) || - 52:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** if (pin >= 24) pin -= 24; // allow for channel or pin numbers - 53:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #else - 54:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** if (pin >= 14) pin -= 14; // allow for channel or pin numbers - 167 .LM3: - 168 0006 8E30 cpi r24,lo8(14) - 169 0008 00F0 brlo .L3 - 171 .LM4: - 172 000a 8E50 subi r24,lo8(-(-14)) - 173 .L3: - 55:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #endif - 56:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** - 57:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #if defined(ADCSRB) && defined(MUX5) - 58:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** // the MUX5 bit of ADCSRB selects whether we're reading from channels - 59:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** // 0 to 7 (MUX5 low) or 8 to 15 (MUX5 high). - 60:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** ADCSRB = (ADCSRB & ~(1 << MUX5)) | (((pin >> 3) & 0x01) << MUX5); - 61:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #endif - 62:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** - 63:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** // set the analog reference (high two bits of ADMUX) and select the - 64:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** // channel (low 4 bits). this also sets ADLAR (left-adjust result) - 65:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** // to 0 (the default). - 66:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #if defined(ADMUX) - 67:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #if defined(__AVR_ATtiny25__) || defined(__AVR_ATtiny45__) || defined(__AVR_ATtiny85__) - 68:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** ADMUX = (analog_reference << 4) | (pin & 0x07); - 69:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #else - 70:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** ADMUX = (analog_reference << 6) | (pin & 0x07); - 175 .LM5: - 176 000c 2091 0000 lds r18,analog_reference - 177 0010 90E4 ldi r25,lo8(64) - 178 0012 299F mul r18,r25 - 179 0014 9001 movw r18,r0 - 180 0016 1124 clr __zero_reg__ - 181 0018 8770 andi r24,lo8(7) - 182 001a 822B or r24,r18 - 183 001c 8093 7C00 sts 124,r24 - 71:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #endif - 72:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #endif - 73:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** - 74:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** // without a delay, we seem to read from the wrong channel - 75:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** //delay(1); - 76:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** - 77:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #if defined(ADCSRA) && defined(ADCL) - 78:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** // start the conversion - 79:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** sbi(ADCSRA, ADSC); - 185 .LM6: - 186 0020 8091 7A00 lds r24,122 - 187 0024 8064 ori r24,lo8(64) - 188 0026 8093 7A00 sts 122,r24 - 189 .L4: - 80:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** - 81:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** // ADSC is cleared when the conversion finishes - 82:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** while (bit_is_set(ADCSRA, ADSC)); - 191 .LM7: - 192 002a 8091 7A00 lds r24,122 - 193 002e 86FD sbrc r24,6 - 194 0030 00C0 rjmp .L4 - 83:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** - 84:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** // we have to read ADCL first; doing so locks both ADCL - 85:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** // and ADCH until ADCH is read. reading ADCL second would - 86:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** // cause the results of each conversion to be discarded, - 87:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** // as ADCL and ADCH would be locked when it completed. - 88:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** low = ADCL; - 196 .LM8: - 197 0032 8091 7800 lds r24,120 - 89:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** high = ADCH; - 199 .LM9: - 200 0036 2091 7900 lds r18,121 - 90:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #else - 91:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** // we dont have an ADC, return 0 - 92:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** low = 0; - 93:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** high = 0; - 94:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #endif - 95:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** - 96:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** // combine the two bytes - 97:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** return (high << 8) | low; - 202 .LM10: - 203 003a 90E0 ldi r25,0 - 98:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** } - 205 .LM11: - 206 003c 922B or r25,r18 - 207 003e 0895 ret - 213 .Lscope2: - 215 .stabd 78,0,0 - 219 .global analogWrite - 221 analogWrite: - 222 .stabd 46,0,0 - 99:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** - 100:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** // Right now, PWM output only works on the pins with - 101:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** // hardware support. These are defined in the appropriate - 102:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** // pins_*.c file. For the rest of the pins, we default - 103:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** // to digital output. - 104:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** void analogWrite(uint8_t pin, int val) - 105:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** { - 224 .LM12: - 225 .LFBB3: - 226 0040 1F93 push r17 - 227 0042 CF93 push r28 - 228 0044 DF93 push r29 - 229 /* prologue: function */ - 230 /* frame size = 0 */ - 231 /* stack size = 3 */ - 232 .L__stack_usage = 3 - 233 0046 182F mov r17,r24 - 234 0048 EB01 movw r28,r22 - 106:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** // We need to make sure the PWM output is enabled for those pins - 107:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** // that support it, as we turn it off when digitally reading or - 108:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** // writing with them. Also, make sure the pin is in output mode - 109:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** // for consistenty with Wiring, which doesn't require a pinMode - 110:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** // call for the analog output pins. - 111:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** pinMode(pin, OUTPUT); - 236 .LM13: - 237 004a 61E0 ldi r22,lo8(1) - 238 004c 0E94 0000 call pinMode - 112:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** if (val == 0) - 240 .LM14: - 241 0050 2097 sbiw r28,0 - 242 0052 01F4 brne .L8 - 243 .L19: - 113:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** { - 114:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** digitalWrite(pin, LOW); - 245 .LM15: - 246 0054 60E0 ldi r22,0 - 247 0056 00C0 rjmp .L21 - 248 .L8: - 115:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** } - 116:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** else if (val == 255) - 250 .LM16: - 251 0058 CF3F cpi r28,-1 - 252 005a D105 cpc r29,__zero_reg__ - 253 005c 01F4 brne .L9 - 254 .L20: - 117:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** { - 118:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** digitalWrite(pin, HIGH); - 256 .LM17: - 257 005e 61E0 ldi r22,lo8(1) - 258 .L21: - 259 0060 812F mov r24,r17 - 260 /* epilogue start */ - 119:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** } - 120:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** else - 121:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** { - 122:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** switch(digitalPinToTimer(pin)) - 123:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** { - 124:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** // XXX fix needed for atmega8 - 125:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #if defined(TCCR0) && defined(COM00) && !defined(__AVR_ATmega8__) - 126:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** case TIMER0A: - 127:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** // connect pwm to pin on timer 0 - 128:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** sbi(TCCR0, COM00); - 129:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** OCR0 = val; // set pwm duty - 130:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** break; - 131:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #endif - 132:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** - 133:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #if defined(TCCR0A) && defined(COM0A1) - 134:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** case TIMER0A: - 135:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** // connect pwm to pin on timer 0, channel A - 136:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** sbi(TCCR0A, COM0A1); - 137:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** OCR0A = val; // set pwm duty - 138:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** break; - 139:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #endif - 140:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** - 141:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #if defined(TCCR0A) && defined(COM0B1) - 142:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** case TIMER0B: - 143:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** // connect pwm to pin on timer 0, channel B - 144:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** sbi(TCCR0A, COM0B1); - 145:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** OCR0B = val; // set pwm duty - 146:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** break; - 147:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #endif - 148:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** - 149:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #if defined(TCCR1A) && defined(COM1A1) - 150:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** case TIMER1A: - 151:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** // connect pwm to pin on timer 1, channel A - 152:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** sbi(TCCR1A, COM1A1); - 153:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** OCR1A = val; // set pwm duty - 154:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** break; - 155:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #endif - 156:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** - 157:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #if defined(TCCR1A) && defined(COM1B1) - 158:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** case TIMER1B: - 159:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** // connect pwm to pin on timer 1, channel B - 160:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** sbi(TCCR1A, COM1B1); - 161:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** OCR1B = val; // set pwm duty - 162:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** break; - 163:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #endif - 164:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** - 165:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #if defined(TCCR1A) && defined(COM1C1) - 166:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** case TIMER1C: - 167:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** // connect pwm to pin on timer 1, channel B - 168:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** sbi(TCCR1A, COM1C1); - 169:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** OCR1C = val; // set pwm duty - 170:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** break; - 171:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #endif - 172:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** - 173:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #if defined(TCCR2) && defined(COM21) - 174:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** case TIMER2: - 175:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** // connect pwm to pin on timer 2 - 176:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** sbi(TCCR2, COM21); - 177:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** OCR2 = val; // set pwm duty - 178:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** break; - 179:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #endif - 180:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** - 181:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #if defined(TCCR2A) && defined(COM2A1) - 182:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** case TIMER2A: - 183:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** // connect pwm to pin on timer 2, channel A - 184:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** sbi(TCCR2A, COM2A1); - 185:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** OCR2A = val; // set pwm duty - 186:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** break; - 187:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #endif - 188:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** - 189:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #if defined(TCCR2A) && defined(COM2B1) - 190:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** case TIMER2B: - 191:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** // connect pwm to pin on timer 2, channel B - 192:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** sbi(TCCR2A, COM2B1); - 193:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** OCR2B = val; // set pwm duty - 194:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** break; - 195:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #endif - 196:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** - 197:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #if defined(TCCR3A) && defined(COM3A1) - 198:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** case TIMER3A: - 199:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** // connect pwm to pin on timer 3, channel A - 200:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** sbi(TCCR3A, COM3A1); - 201:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** OCR3A = val; // set pwm duty - 202:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** break; - 203:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #endif - 204:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** - 205:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #if defined(TCCR3A) && defined(COM3B1) - 206:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** case TIMER3B: - 207:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** // connect pwm to pin on timer 3, channel B - 208:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** sbi(TCCR3A, COM3B1); - 209:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** OCR3B = val; // set pwm duty - 210:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** break; - 211:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #endif - 212:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** - 213:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #if defined(TCCR3A) && defined(COM3C1) - 214:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** case TIMER3C: - 215:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** // connect pwm to pin on timer 3, channel C - 216:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** sbi(TCCR3A, COM3C1); - 217:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** OCR3C = val; // set pwm duty - 218:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** break; - 219:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #endif - 220:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** - 221:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #if defined(TCCR4A) - 222:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** case TIMER4A: - 223:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** //connect pwm to pin on timer 4, channel A - 224:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** sbi(TCCR4A, COM4A1); - 225:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #if defined(COM4A0) // only used on 32U4 - 226:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** cbi(TCCR4A, COM4A0); - 227:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #endif - 228:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** OCR4A = val; // set pwm duty - 229:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** break; - 230:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #endif - 231:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** - 232:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #if defined(TCCR4A) && defined(COM4B1) - 233:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** case TIMER4B: - 234:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** // connect pwm to pin on timer 4, channel B - 235:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** sbi(TCCR4A, COM4B1); - 236:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** OCR4B = val; // set pwm duty - 237:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** break; - 238:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #endif - 239:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** - 240:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #if defined(TCCR4A) && defined(COM4C1) - 241:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** case TIMER4C: - 242:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** // connect pwm to pin on timer 4, channel C - 243:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** sbi(TCCR4A, COM4C1); - 244:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** OCR4C = val; // set pwm duty - 245:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** break; - 246:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #endif - 247:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** - 248:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #if defined(TCCR4C) && defined(COM4D1) - 249:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** case TIMER4D: - 250:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** // connect pwm to pin on timer 4, channel D - 251:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** sbi(TCCR4C, COM4D1); - 252:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #if defined(COM4D0) // only used on 32U4 - 253:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** cbi(TCCR4C, COM4D0); - 254:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #endif - 255:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** OCR4D = val; // set pwm duty - 256:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** break; - 257:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #endif - 258:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** - 259:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** - 260:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #if defined(TCCR5A) && defined(COM5A1) - 261:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** case TIMER5A: - 262:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** // connect pwm to pin on timer 5, channel A - 263:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** sbi(TCCR5A, COM5A1); - 264:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** OCR5A = val; // set pwm duty - 265:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** break; - 266:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #endif - 267:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** - 268:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #if defined(TCCR5A) && defined(COM5B1) - 269:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** case TIMER5B: - 270:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** // connect pwm to pin on timer 5, channel B - 271:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** sbi(TCCR5A, COM5B1); - 272:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** OCR5B = val; // set pwm duty - 273:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** break; - 274:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #endif - 275:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** - 276:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #if defined(TCCR5A) && defined(COM5C1) - 277:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** case TIMER5C: - 278:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** // connect pwm to pin on timer 5, channel C - 279:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** sbi(TCCR5A, COM5C1); - 280:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** OCR5C = val; // set pwm duty - 281:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** break; - 282:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #endif - 283:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** - 284:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** case NOT_ON_TIMER: - 285:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** default: - 286:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** if (val < 128) { - 287:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** digitalWrite(pin, LOW); - 288:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** } else { - 289:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** digitalWrite(pin, HIGH); - 290:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** } - 291:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** } - 292:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** } - 293:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** } - 262 .LM18: - 263 0062 DF91 pop r29 - 264 0064 CF91 pop r28 - 265 0066 1F91 pop r17 - 118:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** } - 267 .LM19: - 268 0068 0C94 0000 jmp digitalWrite - 269 .L9: - 270 .LBB2: - 122:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** { - 272 .LM20: - 273 006c E12F mov r30,r17 - 274 006e F0E0 ldi r31,0 - 275 0070 E050 subi r30,lo8(-(digital_pin_to_timer_PGM)) - 276 0072 F040 sbci r31,hi8(-(digital_pin_to_timer_PGM)) - 277 /* #APP */ - 278 ; 122 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduin - 279 0074 E491 lpm r30, Z - 280 - 281 ; 0 "" 2 - 282 /* #NOAPP */ - 283 .LBE2: - 284 0076 E330 cpi r30,lo8(3) - 285 0078 01F0 breq .L11 - 286 007a 00F4 brsh .L12 - 287 007c E130 cpi r30,lo8(1) - 288 007e 01F0 breq .L13 - 289 0080 E230 cpi r30,lo8(2) - 290 0082 01F4 brne .L10 - 144:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** OCR0B = val; // set pwm duty - 292 .LM21: - 293 0084 84B5 in r24,0x24 - 294 0086 8062 ori r24,lo8(32) - 295 0088 84BD out 0x24,r24 - 145:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** break; - 297 .LM22: - 298 008a C8BD out 0x28,r28 - 146:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #endif - 300 .LM23: - 301 008c 00C0 rjmp .L7 - 302 .L12: - 122:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** { - 304 .LM24: - 305 008e E730 cpi r30,lo8(7) - 306 0090 01F0 breq .L15 - 307 0092 E830 cpi r30,lo8(8) - 308 0094 01F0 breq .L16 - 309 0096 E430 cpi r30,lo8(4) - 310 0098 01F4 brne .L10 - 160:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** OCR1B = val; // set pwm duty - 312 .LM25: - 313 009a 8091 8000 lds r24,128 - 314 009e 8062 ori r24,lo8(32) - 315 00a0 8093 8000 sts 128,r24 - 161:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** break; - 317 .LM26: - 318 00a4 D093 8B00 sts 138+1,r29 - 319 00a8 C093 8A00 sts 138,r28 - 162:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #endif - 321 .LM27: - 322 00ac 00C0 rjmp .L7 - 323 .L13: - 136:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** OCR0A = val; // set pwm duty - 325 .LM28: - 326 00ae 84B5 in r24,0x24 - 327 00b0 8068 ori r24,lo8(-128) - 328 00b2 84BD out 0x24,r24 - 137:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** break; - 330 .LM29: - 331 00b4 C7BD out 0x27,r28 - 138:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #endif - 333 .LM30: - 334 00b6 00C0 rjmp .L7 - 335 .L11: - 152:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** OCR1A = val; // set pwm duty - 337 .LM31: - 338 00b8 8091 8000 lds r24,128 - 339 00bc 8068 ori r24,lo8(-128) - 340 00be 8093 8000 sts 128,r24 - 153:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** break; - 342 .LM32: - 343 00c2 D093 8900 sts 136+1,r29 - 344 00c6 C093 8800 sts 136,r28 - 154:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #endif - 346 .LM33: - 347 00ca 00C0 rjmp .L7 - 348 .L15: - 184:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** OCR2A = val; // set pwm duty - 350 .LM34: - 351 00cc 8091 B000 lds r24,176 - 352 00d0 8068 ori r24,lo8(-128) - 353 00d2 8093 B000 sts 176,r24 - 185:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** break; - 355 .LM35: - 356 00d6 C093 B300 sts 179,r28 - 186:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #endif - 358 .LM36: - 359 00da 00C0 rjmp .L7 - 360 .L16: - 192:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** OCR2B = val; // set pwm duty - 362 .LM37: - 363 00dc 8091 B000 lds r24,176 - 364 00e0 8062 ori r24,lo8(32) - 365 00e2 8093 B000 sts 176,r24 - 193:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** break; - 367 .LM38: - 368 00e6 C093 B400 sts 180,r28 - 194:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** #endif - 370 .LM39: - 371 00ea 00C0 rjmp .L7 - 372 .L10: - 286:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_analog.c **** digitalWrite(pin, LOW); - 374 .LM40: - 375 00ec C038 cpi r28,-128 - 376 00ee D105 cpc r29,__zero_reg__ - 377 00f0 04F0 brlt .+2 - 378 00f2 00C0 rjmp .L20 - 379 00f4 00C0 rjmp .L19 - 380 .L7: - 381 /* epilogue start */ - 383 .LM41: - 384 00f6 DF91 pop r29 - 385 00f8 CF91 pop r28 - 386 00fa 1F91 pop r17 - 387 00fc 0895 ret - 389 .Lscope3: - 391 .stabd 78,0,0 - 392 .global analog_reference - 393 .data - 396 analog_reference: - 397 0000 01 .byte 1 - 413 .text - 415 .Letext0: - 416 .ident "GCC: (GNU) 5.4.0" - 417 .global __do_copy_data -DEFINED SYMBOLS - *ABS*:0000000000000000 wiring_analog.c - /tmp/ccJsfvT3.s:2 *ABS*:000000000000003e __SP_H__ - /tmp/ccJsfvT3.s:3 *ABS*:000000000000003d __SP_L__ - /tmp/ccJsfvT3.s:4 *ABS*:000000000000003f __SREG__ - /tmp/ccJsfvT3.s:5 *ABS*:0000000000000000 __tmp_reg__ - /tmp/ccJsfvT3.s:6 *ABS*:0000000000000001 __zero_reg__ - /tmp/ccJsfvT3.s:136 .text:0000000000000000 analogReference - /tmp/ccJsfvT3.s:396 .data:0000000000000000 analog_reference - /tmp/ccJsfvT3.s:157 .text:0000000000000006 analogRead - /tmp/ccJsfvT3.s:221 .text:0000000000000040 analogWrite - -UNDEFINED SYMBOLS -pinMode -digitalWrite -digital_pin_to_timer_PGM -__do_copy_data diff --git a/arduino/hardware/arduino/avr/cores/arduino/wiring_analog.o b/arduino/hardware/arduino/avr/cores/arduino/wiring_analog.o deleted file mode 100644 index 96bc72ed9f7089ba7b3076c9974bab957ba62af8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9440 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 diff --git a/arduino/hardware/arduino/avr/cores/arduino/wiring_digital.d b/arduino/hardware/arduino/avr/cores/arduino/wiring_digital.d deleted file mode 100644 index 8170df4..0000000 --- a/arduino/hardware/arduino/avr/cores/arduino/wiring_digital.d +++ /dev/null @@ -1,6 +0,0 @@ -wiring_digital.o wiring_digital.d : \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_private.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Arduino.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/binary.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8/hardware/arduino/avr/variants/standard/pins_arduino.h diff --git a/arduino/hardware/arduino/avr/cores/arduino/wiring_digital.lst b/arduino/hardware/arduino/avr/cores/arduino/wiring_digital.lst deleted file mode 100644 index 06230b1..0000000 --- a/arduino/hardware/arduino/avr/cores/arduino/wiring_digital.lst +++ /dev/null @@ -1,731 +0,0 @@ - 1 .file "wiring_digital.c" - 2 __SP_H__ = 0x3e - 3 __SP_L__ = 0x3d - 4 __SREG__ = 0x3f - 5 __tmp_reg__ = 0 - 6 __zero_reg__ = 1 - 9 .text - 10 .Ltext0: - 135 turnOffPWM: - 136 .stabd 46,0,0 - 1:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** /* - 2:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** wiring_digital.c - digital input and output functions - 3:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** Part of Arduino - http://www.arduino.cc/ - 4:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** - 5:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** Copyright (c) 2005-2006 David A. Mellis - 6:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** - 7:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** This library is free software; you can redistribute it and/or - 8:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** modify it under the terms of the GNU Lesser General Public - 9:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** License as published by the Free Software Foundation; either - 10:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** version 2.1 of the License, or (at your option) any later version. - 11:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** - 12:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** This library is distributed in the hope that it will be useful, - 13:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** but WITHOUT ANY WARRANTY; without even the implied warranty of - 14:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - 15:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** Lesser General Public License for more details. - 16:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** - 17:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** You should have received a copy of the GNU Lesser General - 18:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** Public License along with this library; if not, write to the - 19:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** Free Software Foundation, Inc., 59 Temple Place, Suite 330, - 20:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** Boston, MA 02111-1307 USA - 21:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** - 22:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** Modified 28 September 2010 by Mark Sproul - 23:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** */ - 24:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** - 25:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** #define ARDUINO_MAIN - 26:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** #include "wiring_private.h" - 27:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** #include "pins_arduino.h" - 28:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** - 29:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** void pinMode(uint8_t pin, uint8_t mode) - 30:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** { - 31:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** uint8_t bit = digitalPinToBitMask(pin); - 32:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** uint8_t port = digitalPinToPort(pin); - 33:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** volatile uint8_t *reg, *out; - 34:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** - 35:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** if (port == NOT_A_PIN) return; - 36:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** - 37:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** // JWS: can I let the optimizer do this? - 38:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** reg = portModeRegister(port); - 39:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** out = portOutputRegister(port); - 40:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** - 41:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** if (mode == INPUT) { - 42:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** uint8_t oldSREG = SREG; - 43:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** cli(); - 44:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** *reg &= ~bit; - 45:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** *out &= ~bit; - 46:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** SREG = oldSREG; - 47:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** } else if (mode == INPUT_PULLUP) { - 48:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** uint8_t oldSREG = SREG; - 49:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** cli(); - 50:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** *reg &= ~bit; - 51:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** *out |= bit; - 52:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** SREG = oldSREG; - 53:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** } else { - 54:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** uint8_t oldSREG = SREG; - 55:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** cli(); - 56:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** *reg |= bit; - 57:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** SREG = oldSREG; - 58:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** } - 59:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** } - 60:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** - 61:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** // Forcing this inline keeps the callers from having to push their own stuff - 62:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** // on the stack. It is a good performance win and only takes 1 more byte per - 63:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** // user than calling. (It will take more bytes on the 168.) - 64:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** // - 65:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** // But shouldn't this be moved into pinMode? Seems silly to check and do on - 66:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** // each digitalread or write. - 67:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** // - 68:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** // Mark Sproul: - 69:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** // - Removed inline. Save 170 bytes on atmega1280 - 70:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** // - changed to a switch statment; added 32 bytes but much easier to read and maintain. - 71:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** // - Added more #ifdefs, now compiles for atmega645 - 72:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** // - 73:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** //static inline void turnOffPWM(uint8_t timer) __attribute__ ((always_inline)); - 74:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** //static inline void turnOffPWM(uint8_t timer) - 75:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** static void turnOffPWM(uint8_t timer) - 76:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** { - 138 .LM0: - 139 .LFBB1: - 140 /* prologue: function */ - 141 /* frame size = 0 */ - 142 /* stack size = 0 */ - 143 .L__stack_usage = 0 - 77:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** switch (timer) - 145 .LM1: - 146 0000 8330 cpi r24,lo8(3) - 147 0002 01F0 breq .L3 - 148 0004 00F4 brsh .L4 - 149 0006 8130 cpi r24,lo8(1) - 150 0008 01F0 breq .L5 - 151 000a 8230 cpi r24,lo8(2) - 152 000c 01F0 breq .L6 - 153 000e 0895 ret - 154 .L4: - 155 0010 8730 cpi r24,lo8(7) - 156 0012 01F0 breq .L7 - 157 0014 8830 cpi r24,lo8(8) - 158 0016 01F0 breq .L8 - 159 0018 8430 cpi r24,lo8(4) - 160 001a 01F4 brne .L1 - 78:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** { - 79:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** #if defined(TCCR1A) && defined(COM1A1) - 80:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** case TIMER1A: cbi(TCCR1A, COM1A1); break; - 81:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** #endif - 82:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** #if defined(TCCR1A) && defined(COM1B1) - 83:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** case TIMER1B: cbi(TCCR1A, COM1B1); break; - 162 .LM2: - 163 001c 8091 8000 lds r24,128 - 164 0020 8F7D andi r24,lo8(-33) - 165 0022 00C0 rjmp .L10 - 166 .L3: - 80:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** #endif - 168 .LM3: - 169 0024 8091 8000 lds r24,128 - 170 0028 8F77 andi r24,lo8(127) - 171 .L10: - 173 .LM4: - 174 002a 8093 8000 sts 128,r24 - 175 002e 0895 ret - 176 .L5: - 177 .LBB4: - 178 .LBB5: - 84:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** #endif - 85:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** #if defined(TCCR1A) && defined(COM1C1) - 86:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** case TIMER1C: cbi(TCCR1A, COM1C1); break; - 87:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** #endif - 88:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** - 89:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** #if defined(TCCR2) && defined(COM21) - 90:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** case TIMER2: cbi(TCCR2, COM21); break; - 91:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** #endif - 92:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** - 93:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** #if defined(TCCR0A) && defined(COM0A1) - 94:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** case TIMER0A: cbi(TCCR0A, COM0A1); break; - 180 .LM5: - 181 0030 84B5 in r24,0x24 - 182 0032 8F77 andi r24,lo8(127) - 183 0034 00C0 rjmp .L12 - 184 .L6: - 185 .LBE5: - 186 .LBE4: - 95:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** #endif - 96:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** - 97:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** #if defined(TCCR0A) && defined(COM0B1) - 98:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** case TIMER0B: cbi(TCCR0A, COM0B1); break; - 188 .LM6: - 189 0036 84B5 in r24,0x24 - 190 0038 8F7D andi r24,lo8(-33) - 191 .L12: - 192 003a 84BD out 0x24,r24 - 193 003c 0895 ret - 194 .L7: - 99:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** #endif - 100:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** #if defined(TCCR2A) && defined(COM2A1) - 101:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** case TIMER2A: cbi(TCCR2A, COM2A1); break; - 196 .LM7: - 197 003e 8091 B000 lds r24,176 - 198 0042 8F77 andi r24,lo8(127) - 199 0044 00C0 rjmp .L11 - 200 .L8: - 102:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** #endif - 103:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** #if defined(TCCR2A) && defined(COM2B1) - 104:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** case TIMER2B: cbi(TCCR2A, COM2B1); break; - 202 .LM8: - 203 0046 8091 B000 lds r24,176 - 204 004a 8F7D andi r24,lo8(-33) - 205 .L11: - 206 004c 8093 B000 sts 176,r24 - 207 .L1: - 208 0050 0895 ret - 210 .Lscope1: - 212 .stabd 78,0,0 - 216 .global pinMode - 218 pinMode: - 219 .stabd 46,0,0 - 30:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** uint8_t bit = digitalPinToBitMask(pin); - 221 .LM9: - 222 .LFBB2: - 223 0052 CF93 push r28 - 224 0054 DF93 push r29 - 225 /* prologue: function */ - 226 /* frame size = 0 */ - 227 /* stack size = 2 */ - 228 .L__stack_usage = 2 - 229 .LBB6: - 31:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** uint8_t port = digitalPinToPort(pin); - 231 .LM10: - 232 0056 90E0 ldi r25,0 - 233 0058 FC01 movw r30,r24 - 234 005a E050 subi r30,lo8(-(digital_pin_to_bit_mask_PGM)) - 235 005c F040 sbci r31,hi8(-(digital_pin_to_bit_mask_PGM)) - 236 /* #APP */ - 237 ; 31 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino - 238 005e 2491 lpm r18, Z - 239 - 240 ; 0 "" 2 - 241 /* #NOAPP */ - 242 .LBE6: - 243 .LBB7: - 32:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** volatile uint8_t *reg, *out; - 245 .LM11: - 246 0060 FC01 movw r30,r24 - 247 0062 E050 subi r30,lo8(-(digital_pin_to_port_PGM)) - 248 0064 F040 sbci r31,hi8(-(digital_pin_to_port_PGM)) - 249 /* #APP */ - 250 ; 32 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino - 251 0066 8491 lpm r24, Z - 252 - 253 ; 0 "" 2 - 254 /* #NOAPP */ - 255 .LBE7: - 35:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** - 257 .LM12: - 258 0068 8823 tst r24 - 259 006a 01F0 breq .L14 - 260 .LBB8: - 38:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** out = portOutputRegister(port); - 262 .LM13: - 263 006c 90E0 ldi r25,0 - 264 006e 880F lsl r24 - 265 0070 991F rol r25 - 266 0072 FC01 movw r30,r24 - 267 0074 E050 subi r30,lo8(-(port_to_mode_PGM)) - 268 0076 F040 sbci r31,hi8(-(port_to_mode_PGM)) - 269 /* #APP */ - 270 ; 38 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino - 271 0078 C591 lpm r28, Z+ - 272 007a D491 lpm r29, Z - 273 - 274 ; 0 "" 2 - 275 /* #NOAPP */ - 276 .LBE8: - 277 .LBB9: - 39:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** - 279 .LM14: - 280 007c FC01 movw r30,r24 - 281 007e E050 subi r30,lo8(-(port_to_output_PGM)) - 282 0080 F040 sbci r31,hi8(-(port_to_output_PGM)) - 283 /* #APP */ - 284 ; 39 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino - 285 0082 A591 lpm r26, Z+ - 286 0084 B491 lpm r27, Z - 287 - 288 ; 0 "" 2 - 289 /* #NOAPP */ - 290 .LBE9: - 41:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** uint8_t oldSREG = SREG; - 292 .LM15: - 293 0086 6111 cpse r22,__zero_reg__ - 294 0088 00C0 rjmp .L16 - 295 .LBB10: - 42:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** cli(); - 297 .LM16: - 298 008a 9FB7 in r25,__SREG__ - 43:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** *reg &= ~bit; - 300 .LM17: - 301 /* #APP */ - 302 ; 43 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino - 303 008c F894 cli - 304 ; 0 "" 2 - 44:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** *out &= ~bit; - 306 .LM18: - 307 /* #NOAPP */ - 308 008e 8881 ld r24,Y - 309 0090 2095 com r18 - 310 0092 8223 and r24,r18 - 311 0094 8883 st Y,r24 - 45:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** SREG = oldSREG; - 313 .LM19: - 314 0096 EC91 ld r30,X - 315 0098 2E23 and r18,r30 - 316 009a 00C0 rjmp .L21 - 317 .L16: - 318 .LBE10: - 47:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** uint8_t oldSREG = SREG; - 320 .LM20: - 321 009c 6230 cpi r22,lo8(2) - 322 009e 01F4 brne .L17 - 323 .LBB11: - 48:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** cli(); - 325 .LM21: - 326 00a0 9FB7 in r25,__SREG__ - 49:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** *reg &= ~bit; - 328 .LM22: - 329 /* #APP */ - 330 ; 49 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino - 331 00a2 F894 cli - 332 ; 0 "" 2 - 50:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** *out |= bit; - 334 .LM23: - 335 /* #NOAPP */ - 336 00a4 8881 ld r24,Y - 337 00a6 322F mov r19,r18 - 338 00a8 3095 com r19 - 339 00aa 8323 and r24,r19 - 340 00ac 8883 st Y,r24 - 51:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** SREG = oldSREG; - 342 .LM24: - 343 00ae EC91 ld r30,X - 344 00b0 2E2B or r18,r30 - 345 .L21: - 346 00b2 2C93 st X,r18 - 52:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** } else { - 348 .LM25: - 349 00b4 9FBF out __SREG__,r25 - 350 .LBE11: - 351 00b6 00C0 rjmp .L14 - 352 .L17: - 353 .LBB12: - 54:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** cli(); - 355 .LM26: - 356 00b8 8FB7 in r24,__SREG__ - 55:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** *reg |= bit; - 358 .LM27: - 359 /* #APP */ - 360 ; 55 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino - 361 00ba F894 cli - 362 ; 0 "" 2 - 56:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** SREG = oldSREG; - 364 .LM28: - 365 /* #NOAPP */ - 366 00bc E881 ld r30,Y - 367 00be 2E2B or r18,r30 - 368 00c0 2883 st Y,r18 - 57:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** } - 370 .LM29: - 371 00c2 8FBF out __SREG__,r24 - 372 .L14: - 373 /* epilogue start */ - 374 .LBE12: - 59:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** - 376 .LM30: - 377 00c4 DF91 pop r29 - 378 00c6 CF91 pop r28 - 379 00c8 0895 ret - 396 .Lscope2: - 398 .stabd 78,0,0 - 402 .global digitalWrite - 404 digitalWrite: - 405 .stabd 46,0,0 - 105:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** #endif - 106:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** - 107:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** #if defined(TCCR3A) && defined(COM3A1) - 108:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** case TIMER3A: cbi(TCCR3A, COM3A1); break; - 109:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** #endif - 110:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** #if defined(TCCR3A) && defined(COM3B1) - 111:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** case TIMER3B: cbi(TCCR3A, COM3B1); break; - 112:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** #endif - 113:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** #if defined(TCCR3A) && defined(COM3C1) - 114:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** case TIMER3C: cbi(TCCR3A, COM3C1); break; - 115:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** #endif - 116:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** - 117:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** #if defined(TCCR4A) && defined(COM4A1) - 118:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** case TIMER4A: cbi(TCCR4A, COM4A1); break; - 119:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** #endif - 120:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** #if defined(TCCR4A) && defined(COM4B1) - 121:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** case TIMER4B: cbi(TCCR4A, COM4B1); break; - 122:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** #endif - 123:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** #if defined(TCCR4A) && defined(COM4C1) - 124:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** case TIMER4C: cbi(TCCR4A, COM4C1); break; - 125:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** #endif - 126:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** #if defined(TCCR4C) && defined(COM4D1) - 127:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** case TIMER4D: cbi(TCCR4C, COM4D1); break; - 128:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** #endif - 129:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** - 130:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** #if defined(TCCR5A) - 131:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** case TIMER5A: cbi(TCCR5A, COM5A1); break; - 132:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** case TIMER5B: cbi(TCCR5A, COM5B1); break; - 133:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** case TIMER5C: cbi(TCCR5A, COM5C1); break; - 134:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** #endif - 135:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** } - 136:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** } - 137:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** - 138:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** void digitalWrite(uint8_t pin, uint8_t val) - 139:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** { - 407 .LM31: - 408 .LFBB3: - 409 00ca 1F93 push r17 - 410 00cc CF93 push r28 - 411 00ce DF93 push r29 - 412 /* prologue: function */ - 413 /* frame size = 0 */ - 414 /* stack size = 3 */ - 415 .L__stack_usage = 3 - 416 .LBB13: - 140:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** uint8_t timer = digitalPinToTimer(pin); - 418 .LM32: - 419 00d0 282F mov r18,r24 - 420 00d2 30E0 ldi r19,0 - 421 00d4 F901 movw r30,r18 - 422 00d6 E050 subi r30,lo8(-(digital_pin_to_timer_PGM)) - 423 00d8 F040 sbci r31,hi8(-(digital_pin_to_timer_PGM)) - 424 /* #APP */ - 425 ; 140 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduin - 426 00da 8491 lpm r24, Z - 427 - 428 ; 0 "" 2 - 429 /* #NOAPP */ - 430 .LBE13: - 431 .LBB14: - 141:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** uint8_t bit = digitalPinToBitMask(pin); - 433 .LM33: - 434 00dc F901 movw r30,r18 - 435 00de E050 subi r30,lo8(-(digital_pin_to_bit_mask_PGM)) - 436 00e0 F040 sbci r31,hi8(-(digital_pin_to_bit_mask_PGM)) - 437 /* #APP */ - 438 ; 141 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduin - 439 00e2 D491 lpm r29, Z - 440 - 441 ; 0 "" 2 - 442 /* #NOAPP */ - 443 .LBE14: - 444 .LBB15: - 142:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** uint8_t port = digitalPinToPort(pin); - 446 .LM34: - 447 00e4 F901 movw r30,r18 - 448 00e6 E050 subi r30,lo8(-(digital_pin_to_port_PGM)) - 449 00e8 F040 sbci r31,hi8(-(digital_pin_to_port_PGM)) - 450 /* #APP */ - 451 ; 142 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduin - 452 00ea C491 lpm r28, Z - 453 - 454 ; 0 "" 2 - 455 /* #NOAPP */ - 456 .LBE15: - 143:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** volatile uint8_t *out; - 144:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** - 145:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** if (port == NOT_A_PIN) return; - 458 .LM35: - 459 00ec CC23 tst r28 - 460 00ee 01F0 breq .L22 - 461 00f0 162F mov r17,r22 - 146:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** - 147:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** // If the pin that support PWM output, we need to turn it off - 148:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** // before doing a digital write. - 149:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** if (timer != NOT_ON_TIMER) turnOffPWM(timer); - 463 .LM36: - 464 00f2 8111 cpse r24,__zero_reg__ - 466 .LM37: - 467 00f4 0E94 0000 call turnOffPWM - 468 .L24: - 469 .LBB16: - 150:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** - 151:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** out = portOutputRegister(port); - 471 .LM38: - 472 00f8 EC2F mov r30,r28 - 473 00fa F0E0 ldi r31,0 - 474 00fc EE0F lsl r30 - 475 00fe FF1F rol r31 - 476 0100 E050 subi r30,lo8(-(port_to_output_PGM)) - 477 0102 F040 sbci r31,hi8(-(port_to_output_PGM)) - 478 /* #APP */ - 479 ; 151 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduin - 480 0104 A591 lpm r26, Z+ - 481 0106 B491 lpm r27, Z - 482 - 483 ; 0 "" 2 - 484 /* #NOAPP */ - 485 .LBE16: - 152:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** - 153:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** uint8_t oldSREG = SREG; - 487 .LM39: - 488 0108 9FB7 in r25,__SREG__ - 154:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** cli(); - 490 .LM40: - 491 /* #APP */ - 492 ; 154 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduin - 493 010a F894 cli - 494 ; 0 "" 2 - 155:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** - 156:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** if (val == LOW) { - 496 .LM41: - 497 /* #NOAPP */ - 498 010c 1111 cpse r17,__zero_reg__ - 499 010e 00C0 rjmp .L25 - 157:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** *out &= ~bit; - 501 .LM42: - 502 0110 8C91 ld r24,X - 503 0112 D095 com r29 - 504 0114 D823 and r29,r24 - 505 0116 00C0 rjmp .L33 - 506 .L25: - 158:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** } else { - 159:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** *out |= bit; - 508 .LM43: - 509 0118 EC91 ld r30,X - 510 011a DE2B or r29,r30 - 511 .L33: - 512 011c DC93 st X,r29 - 160:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** } - 161:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** - 162:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** SREG = oldSREG; - 514 .LM44: - 515 011e 9FBF out __SREG__,r25 - 516 .L22: - 517 /* epilogue start */ - 163:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** } - 519 .LM45: - 520 0120 DF91 pop r29 - 521 0122 CF91 pop r28 - 522 0124 1F91 pop r17 - 523 0126 0895 ret - 533 .Lscope3: - 535 .stabd 78,0,0 - 538 .global digitalRead - 540 digitalRead: - 541 .stabd 46,0,0 - 164:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** - 165:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** int digitalRead(uint8_t pin) - 166:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** { - 543 .LM46: - 544 .LFBB4: - 545 0128 CF93 push r28 - 546 012a DF93 push r29 - 547 /* prologue: function */ - 548 /* frame size = 0 */ - 549 /* stack size = 2 */ - 550 .L__stack_usage = 2 - 551 .LBB17: - 167:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** uint8_t timer = digitalPinToTimer(pin); - 553 .LM47: - 554 012c 282F mov r18,r24 - 555 012e 30E0 ldi r19,0 - 556 0130 F901 movw r30,r18 - 557 0132 E050 subi r30,lo8(-(digital_pin_to_timer_PGM)) - 558 0134 F040 sbci r31,hi8(-(digital_pin_to_timer_PGM)) - 559 /* #APP */ - 560 ; 167 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduin - 561 0136 8491 lpm r24, Z - 562 - 563 ; 0 "" 2 - 564 /* #NOAPP */ - 565 .LBE17: - 566 .LBB18: - 168:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** uint8_t bit = digitalPinToBitMask(pin); - 568 .LM48: - 569 0138 F901 movw r30,r18 - 570 013a E050 subi r30,lo8(-(digital_pin_to_bit_mask_PGM)) - 571 013c F040 sbci r31,hi8(-(digital_pin_to_bit_mask_PGM)) - 572 /* #APP */ - 573 ; 168 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduin - 574 013e D491 lpm r29, Z - 575 - 576 ; 0 "" 2 - 577 /* #NOAPP */ - 578 .LBE18: - 579 .LBB19: - 169:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** uint8_t port = digitalPinToPort(pin); - 581 .LM49: - 582 0140 F901 movw r30,r18 - 583 0142 E050 subi r30,lo8(-(digital_pin_to_port_PGM)) - 584 0144 F040 sbci r31,hi8(-(digital_pin_to_port_PGM)) - 585 /* #APP */ - 586 ; 169 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduin - 587 0146 C491 lpm r28, Z - 588 - 589 ; 0 "" 2 - 590 /* #NOAPP */ - 591 .LBE19: - 170:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** - 171:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** if (port == NOT_A_PIN) return LOW; - 593 .LM50: - 594 0148 CC23 tst r28 - 595 014a 01F0 breq .L38 - 172:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** - 173:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** // If the pin that support PWM output, we need to turn it off - 174:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** // before getting a digital reading. - 175:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** if (timer != NOT_ON_TIMER) turnOffPWM(timer); - 597 .LM51: - 598 014c 8111 cpse r24,__zero_reg__ - 600 .LM52: - 601 014e 0E94 0000 call turnOffPWM - 602 .L36: - 603 .LBB20: - 176:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** - 177:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** if (*portInputRegister(port) & bit) return HIGH; - 605 .LM53: - 606 0152 EC2F mov r30,r28 - 607 0154 F0E0 ldi r31,0 - 608 0156 EE0F lsl r30 - 609 0158 FF1F rol r31 - 610 015a E050 subi r30,lo8(-(port_to_input_PGM)) - 611 015c F040 sbci r31,hi8(-(port_to_input_PGM)) - 612 /* #APP */ - 613 ; 177 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduin - 614 015e A591 lpm r26, Z+ - 615 0160 B491 lpm r27, Z - 616 - 617 ; 0 "" 2 - 618 /* #NOAPP */ - 619 .LBE20: - 620 0162 EC91 ld r30,X - 171:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** - 622 .LM54: - 623 0164 ED23 and r30,r29 - 624 0166 81E0 ldi r24,lo8(1) - 625 0168 90E0 ldi r25,0 - 626 016a 01F4 brne .L35 - 627 016c 80E0 ldi r24,0 - 628 016e 00C0 rjmp .L35 - 629 .L38: - 630 0170 80E0 ldi r24,0 - 631 0172 90E0 ldi r25,0 - 632 .L35: - 633 /* epilogue start */ - 178:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** return LOW; - 179:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** } - 635 .LM55: - 636 0174 DF91 pop r29 - 637 0176 CF91 pop r28 - 638 0178 0895 ret - 647 .Lscope4: - 649 .stabd 78,0,0 - 650 .global digital_pin_to_timer_PGM - 651 .section .progmem.data,"a",@progbits - 654 digital_pin_to_timer_PGM: - 655 0000 00 .byte 0 - 656 0001 00 .byte 0 - 657 0002 00 .byte 0 - 658 0003 08 .byte 8 - 659 0004 00 .byte 0 - 660 0005 02 .byte 2 - 661 0006 01 .byte 1 - 662 0007 00 .byte 0 - 663 0008 00 .byte 0 - 664 0009 03 .byte 3 - 665 000a 04 .byte 4 - 666 000b 07 .byte 7 - 667 000c 00 .byte 0 - 668 000d 00 .byte 0 - 669 000e 00 .byte 0 - 670 000f 00 .byte 0 - 671 0010 00 .byte 0 - 672 0011 00 .byte 0 - 673 0012 00 .byte 0 - 674 0013 00 .byte 0 - 675 .global digital_pin_to_bit_mask_PGM - 678 digital_pin_to_bit_mask_PGM: - 679 0014 01 .byte 1 - 680 0015 02 .byte 2 - 681 0016 04 .byte 4 - 682 0017 08 .byte 8 - 683 0018 10 .byte 16 - 684 0019 20 .byte 32 - 685 001a 40 .byte 64 - 686 001b 80 .byte -128 - 687 001c 01 .byte 1 - 688 001d 02 .byte 2 - 689 001e 04 .byte 4 - 690 001f 08 .byte 8 - 691 0020 10 .byte 16 - 692 0021 20 .byte 32 - 693 0022 01 .byte 1 - 694 0023 02 .byte 2 - 695 0024 04 .byte 4 - 696 0025 08 .byte 8 - 697 0026 10 .byte 16 - 698 0027 20 .byte 32 - 699 .global digital_pin_to_port_PGM - 702 digital_pin_to_port_PGM: - 703 0028 04 .byte 4 - 704 0029 04 .byte 4 - 705 002a 04 .byte 4 - 706 002b 04 .byte 4 - 707 002c 04 .byte 4 - 708 002d 04 .byte 4 - 709 002e 04 .byte 4 - 710 002f 04 .byte 4 - 711 0030 02 .byte 2 - 712 0031 02 .byte 2 - 713 0032 02 .byte 2 - 714 0033 02 .byte 2 - 715 0034 02 .byte 2 - 716 0035 02 .byte 2 - 717 0036 03 .byte 3 - 718 0037 03 .byte 3 - 719 0038 03 .byte 3 - 720 0039 03 .byte 3 - 721 003a 03 .byte 3 - 722 003b 03 .byte 3 - 723 .global port_to_input_PGM - 726 port_to_input_PGM: - 727 003c 0000 .word 0 - 728 003e 0000 .word 0 - 729 0040 2300 .word 35 - 730 0042 2600 .word 38 - 731 0044 2900 .word 41 - 732 .global port_to_output_PGM - 735 port_to_output_PGM: - 736 0046 0000 .word 0 - 737 0048 0000 .word 0 - 738 004a 2500 .word 37 - 739 004c 2800 .word 40 - 740 004e 2B00 .word 43 - 741 .global port_to_mode_PGM - 744 port_to_mode_PGM: - 745 0050 0000 .word 0 - 746 0052 0000 .word 0 - 747 0054 2400 .word 36 - 748 0056 2700 .word 39 - 749 0058 2A00 .word 42 - 770 .text - 772 .Letext0: - 773 .ident "GCC: (GNU) 5.4.0" -DEFINED SYMBOLS - *ABS*:0000000000000000 wiring_digital.c - /tmp/ccyiMr3Y.s:2 *ABS*:000000000000003e __SP_H__ - /tmp/ccyiMr3Y.s:3 *ABS*:000000000000003d __SP_L__ - /tmp/ccyiMr3Y.s:4 *ABS*:000000000000003f __SREG__ - /tmp/ccyiMr3Y.s:5 *ABS*:0000000000000000 __tmp_reg__ - /tmp/ccyiMr3Y.s:6 *ABS*:0000000000000001 __zero_reg__ - /tmp/ccyiMr3Y.s:135 .text:0000000000000000 turnOffPWM - /tmp/ccyiMr3Y.s:218 .text:0000000000000052 pinMode - /tmp/ccyiMr3Y.s:678 .progmem.data:0000000000000014 digital_pin_to_bit_mask_PGM - /tmp/ccyiMr3Y.s:702 .progmem.data:0000000000000028 digital_pin_to_port_PGM - /tmp/ccyiMr3Y.s:744 .progmem.data:0000000000000050 port_to_mode_PGM - /tmp/ccyiMr3Y.s:735 .progmem.data:0000000000000046 port_to_output_PGM - /tmp/ccyiMr3Y.s:404 .text:00000000000000ca digitalWrite - /tmp/ccyiMr3Y.s:654 .progmem.data:0000000000000000 digital_pin_to_timer_PGM - /tmp/ccyiMr3Y.s:540 .text:0000000000000128 digitalRead - /tmp/ccyiMr3Y.s:726 .progmem.data:000000000000003c port_to_input_PGM - -NO UNDEFINED SYMBOLS diff --git a/arduino/hardware/arduino/avr/cores/arduino/wiring_digital.o b/arduino/hardware/arduino/avr/cores/arduino/wiring_digital.o deleted file mode 100644 index b36558b3f678ec6fbf3dbd991b0f1460f6f28bac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11472 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 diff --git a/arduino/hardware/arduino/avr/cores/arduino/wiring_pulse.d b/arduino/hardware/arduino/avr/cores/arduino/wiring_pulse.d deleted file mode 100644 index 6f41189..0000000 --- a/arduino/hardware/arduino/avr/cores/arduino/wiring_pulse.d +++ /dev/null @@ -1,7 +0,0 @@ -wiring_pulse.o wiring_pulse.d : \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_private.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Arduino.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/binary.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8/hardware/arduino/avr/variants/standard/pins_arduino.h \ - /home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8/hardware/arduino/avr/cores/arduino/Arduino.h diff --git a/arduino/hardware/arduino/avr/cores/arduino/wiring_pulse.lst b/arduino/hardware/arduino/avr/cores/arduino/wiring_pulse.lst deleted file mode 100644 index d5c7bed..0000000 --- a/arduino/hardware/arduino/avr/cores/arduino/wiring_pulse.lst +++ /dev/null @@ -1,532 +0,0 @@ - 1 .file "wiring_pulse.c" - 2 __SP_H__ = 0x3e - 3 __SP_L__ = 0x3d - 4 __SREG__ = 0x3f - 5 __tmp_reg__ = 0 - 6 __zero_reg__ = 1 - 9 .text - 10 .Ltext0: - 136 .global pulseInLong - 138 pulseInLong: - 139 .stabd 46,0,0 - 1:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** /* - 2:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** wiring_pulse.c - pulseIn() function - 3:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** Part of Arduino - http://www.arduino.cc/ - 4:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** - 5:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** Copyright (c) 2005-2006 David A. Mellis - 6:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** - 7:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** This library is free software; you can redistribute it and/or - 8:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** modify it under the terms of the GNU Lesser General Public - 9:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** License as published by the Free Software Foundation; either - 10:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** version 2.1 of the License, or (at your option) any later version. - 11:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** - 12:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** This library is distributed in the hope that it will be useful, - 13:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** but WITHOUT ANY WARRANTY; without even the implied warranty of - 14:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - 15:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** Lesser General Public License for more details. - 16:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** - 17:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** You should have received a copy of the GNU Lesser General - 18:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** Public License along with this library; if not, write to the - 19:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** Free Software Foundation, Inc., 59 Temple Place, Suite 330, - 20:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** Boston, MA 02111-1307 USA - 21:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** */ - 22:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** - 23:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** #include "wiring_private.h" - 24:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** #include "pins_arduino.h" - 25:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** - 26:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** /* Measures the length (in microseconds) of a pulse on the pin; state is HIGH - 27:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** * or LOW, the type of pulse to measure. Works on pulses from 2-3 microseconds - 28:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** * to 3 minutes in length, but must be called at least a few dozen microseconds - 29:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** * before the start of the pulse. - 30:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** * - 31:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** * This function performs better with short pulses in noInterrupt() context - 32:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** */ - 33:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** unsigned long pulseIn(uint8_t pin, uint8_t state, unsigned long timeout) - 34:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** { - 35:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** // cache the port and bit of the pin in order to speed up the - 36:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** // pulse width measuring loop and achieve finer resolution. calling - 37:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** // digitalRead() instead yields much coarser resolution. - 38:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** uint8_t bit = digitalPinToBitMask(pin); - 39:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** uint8_t port = digitalPinToPort(pin); - 40:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** uint8_t stateMask = (state ? bit : 0); - 41:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** - 42:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** // convert the timeout from microseconds to a number of times through - 43:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** // the initial loop; it takes approximately 16 clock cycles per iteration - 44:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** unsigned long maxloops = microsecondsToClockCycles(timeout)/16; - 45:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** - 46:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** unsigned long width = countPulseASM(portInputRegister(port), bit, stateMask, maxloops); - 47:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** - 48:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** // prevent clockCyclesToMicroseconds to return bogus values if countPulseASM timed out - 49:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** if (width) - 50:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** return clockCyclesToMicroseconds(width * 16 + 16); - 51:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** else - 52:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** return 0; - 53:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** } - 54:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** - 55:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** /* Measures the length (in microseconds) of a pulse on the pin; state is HIGH - 56:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** * or LOW, the type of pulse to measure. Works on pulses from 2-3 microseconds - 57:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** * to 3 minutes in length, but must be called at least a few dozen microseconds - 58:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** * before the start of the pulse. - 59:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** * - 60:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** * ATTENTION: - 61:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** * this function relies on micros() so cannot be used in noInterrupt() context - 62:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** */ - 63:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** unsigned long pulseInLong(uint8_t pin, uint8_t state, unsigned long timeout) - 64:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** { - 141 .LM0: - 142 .LFBB1: - 143 0000 4F92 push r4 - 144 0002 5F92 push r5 - 145 0004 6F92 push r6 - 146 0006 7F92 push r7 - 147 0008 8F92 push r8 - 148 000a 9F92 push r9 - 149 000c AF92 push r10 - 150 000e BF92 push r11 - 151 0010 CF92 push r12 - 152 0012 DF92 push r13 - 153 0014 EF92 push r14 - 154 0016 FF92 push r15 - 155 0018 0F93 push r16 - 156 001a 1F93 push r17 - 157 001c CF93 push r28 - 158 001e DF93 push r29 - 159 /* prologue: function */ - 160 /* frame size = 0 */ - 161 /* stack size = 16 */ - 162 .L__stack_usage = 16 - 163 0020 4901 movw r8,r18 - 164 0022 5A01 movw r10,r20 - 165 .LBB2: - 65:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** // cache the port and bit of the pin in order to speed up the - 66:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** // pulse width measuring loop and achieve finer resolution. calling - 67:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** // digitalRead() instead yields much coarser resolution. - 68:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** uint8_t bit = digitalPinToBitMask(pin); - 167 .LM1: - 168 0024 90E0 ldi r25,0 - 169 0026 FC01 movw r30,r24 - 170 0028 E050 subi r30,lo8(-(digital_pin_to_bit_mask_PGM)) - 171 002a F040 sbci r31,hi8(-(digital_pin_to_bit_mask_PGM)) - 172 /* #APP */ - 173 ; 68 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino - 174 002c 1491 lpm r17, Z - 175 - 176 ; 0 "" 2 - 177 /* #NOAPP */ - 178 .LBE2: - 179 .LBB3: - 69:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** uint8_t port = digitalPinToPort(pin); - 181 .LM2: - 182 002e FC01 movw r30,r24 - 183 0030 E050 subi r30,lo8(-(digital_pin_to_port_PGM)) - 184 0032 F040 sbci r31,hi8(-(digital_pin_to_port_PGM)) - 185 /* #APP */ - 186 ; 69 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino - 187 0034 C491 lpm r28, Z - 188 - 189 ; 0 "" 2 - 190 /* #NOAPP */ - 191 .LBE3: - 70:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** uint8_t stateMask = (state ? bit : 0); - 193 .LM3: - 194 0036 6623 tst r22 - 195 0038 01F0 breq .L11 - 196 003a 012F mov r16,r17 - 197 003c 00C0 rjmp .L2 - 198 .L11: - 199 003e 00E0 ldi r16,0 - 200 .L2: - 71:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** - 72:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** unsigned long startMicros = micros(); - 202 .LM4: - 203 0040 0E94 0000 call micros - 204 0044 6B01 movw r12,r22 - 205 0046 7C01 movw r14,r24 - 206 .LBB4: - 73:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** - 74:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** // wait for any previous pulse to end - 75:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** while ((*portInputRegister(port) & bit) == stateMask) { - 208 .LM5: - 209 0048 D0E0 ldi r29,0 - 210 004a CC0F lsl r28 - 211 004c DD1F rol r29 - 212 004e C050 subi r28,lo8(-(port_to_input_PGM)) - 213 0050 D040 sbci r29,hi8(-(port_to_input_PGM)) - 214 .L3: - 216 .LM6: - 217 0052 FE01 movw r30,r28 - 218 /* #APP */ - 219 ; 75 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino - 220 0054 A591 lpm r26, Z+ - 221 0056 B491 lpm r27, Z - 222 - 223 ; 0 "" 2 - 224 /* #NOAPP */ - 225 .LBE4: - 226 0058 8C91 ld r24,X - 227 005a 8123 and r24,r17 - 228 005c 0813 cpse r16,r24 - 229 005e 00C0 rjmp .L6 - 76:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** if (micros() - startMicros > timeout) - 231 .LM7: - 232 0060 0E94 0000 call micros - 233 0064 DC01 movw r26,r24 - 234 0066 CB01 movw r24,r22 - 235 0068 8C19 sub r24,r12 - 236 006a 9D09 sbc r25,r13 - 237 006c AE09 sbc r26,r14 - 238 006e BF09 sbc r27,r15 - 239 0070 8816 cp r8,r24 - 240 0072 9906 cpc r9,r25 - 241 0074 AA06 cpc r10,r26 - 242 0076 BB06 cpc r11,r27 - 243 0078 00F4 brsh .L3 - 244 .L7: - 77:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** return 0; - 246 .LM8: - 247 007a 60E0 ldi r22,0 - 248 007c 70E0 ldi r23,0 - 249 007e CB01 movw r24,r22 - 250 0080 00C0 rjmp .L4 - 251 .L8: - 78:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** } - 79:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** - 80:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** // wait for the pulse to start - 81:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** while ((*portInputRegister(port) & bit) != stateMask) { - 82:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** if (micros() - startMicros > timeout) - 253 .LM9: - 254 0082 0E94 0000 call micros - 255 0086 DC01 movw r26,r24 - 256 0088 CB01 movw r24,r22 - 257 008a 8C19 sub r24,r12 - 258 008c 9D09 sbc r25,r13 - 259 008e AE09 sbc r26,r14 - 260 0090 BF09 sbc r27,r15 - 261 0092 8816 cp r8,r24 - 262 0094 9906 cpc r9,r25 - 263 0096 AA06 cpc r10,r26 - 264 0098 BB06 cpc r11,r27 - 265 009a 00F0 brlo .L7 - 266 .L6: - 267 .LBB5: - 81:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** if (micros() - startMicros > timeout) - 269 .LM10: - 270 009c FE01 movw r30,r28 - 271 /* #APP */ - 272 ; 81 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino - 273 009e A591 lpm r26, Z+ - 274 00a0 B491 lpm r27, Z - 275 - 276 ; 0 "" 2 - 277 /* #NOAPP */ - 278 .LBE5: - 279 00a2 8C91 ld r24,X - 280 00a4 8123 and r24,r17 - 281 00a6 0813 cpse r16,r24 - 282 00a8 00C0 rjmp .L8 - 83:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** return 0; - 84:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** } - 85:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** - 86:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** unsigned long start = micros(); - 284 .LM11: - 285 00aa 0E94 0000 call micros - 286 00ae 2B01 movw r4,r22 - 287 00b0 3C01 movw r6,r24 - 288 .L9: - 289 .LBB6: - 87:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** // wait for the pulse to stop - 88:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** while ((*portInputRegister(port) & bit) == stateMask) { - 291 .LM12: - 292 00b2 FE01 movw r30,r28 - 293 /* #APP */ - 294 ; 88 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino - 295 00b4 A591 lpm r26, Z+ - 296 00b6 B491 lpm r27, Z - 297 - 298 ; 0 "" 2 - 299 /* #NOAPP */ - 300 .LBE6: - 301 00b8 8C91 ld r24,X - 302 00ba 8123 and r24,r17 - 303 00bc 0813 cpse r16,r24 - 304 00be 00C0 rjmp .L14 - 89:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** if (micros() - startMicros > timeout) - 306 .LM13: - 307 00c0 0E94 0000 call micros - 308 00c4 DC01 movw r26,r24 - 309 00c6 CB01 movw r24,r22 - 310 00c8 8C19 sub r24,r12 - 311 00ca 9D09 sbc r25,r13 - 312 00cc AE09 sbc r26,r14 - 313 00ce BF09 sbc r27,r15 - 314 00d0 8816 cp r8,r24 - 315 00d2 9906 cpc r9,r25 - 316 00d4 AA06 cpc r10,r26 - 317 00d6 BB06 cpc r11,r27 - 318 00d8 00F4 brsh .L9 - 319 00da 00C0 rjmp .L7 - 320 .L14: - 90:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** return 0; - 91:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** } - 92:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** return micros() - start; - 322 .LM14: - 323 00dc 0E94 0000 call micros - 324 00e0 6419 sub r22,r4 - 325 00e2 7509 sbc r23,r5 - 326 00e4 8609 sbc r24,r6 - 327 00e6 9709 sbc r25,r7 - 328 .L4: - 329 /* epilogue start */ - 93:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** } - 331 .LM15: - 332 00e8 DF91 pop r29 - 333 00ea CF91 pop r28 - 334 00ec 1F91 pop r17 - 335 00ee 0F91 pop r16 - 336 00f0 FF90 pop r15 - 337 00f2 EF90 pop r14 - 338 00f4 DF90 pop r13 - 339 00f6 CF90 pop r12 - 340 00f8 BF90 pop r11 - 341 00fa AF90 pop r10 - 342 00fc 9F90 pop r9 - 343 00fe 8F90 pop r8 - 344 0100 7F90 pop r7 - 345 0102 6F90 pop r6 - 346 0104 5F90 pop r5 - 347 0106 4F90 pop r4 - 348 0108 0895 ret - 355 .Lscope1: - 357 .stabd 78,0,0 - 363 .global countPulseASM - 365 countPulseASM: - 366 .stabd 46,0,0 - 94:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** - 95:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** #include - 96:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** #include - 97:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** - 98:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** unsigned long countPulseASM(volatile uint8_t *port, uint8_t bit, uint8_t stateMask, unsigned long m - 99:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** { - 368 .LM16: - 369 .LFBB2: - 370 010a CF92 push r12 - 371 010c DF92 push r13 - 372 010e EF92 push r14 - 373 0110 FF92 push r15 - 374 0112 0F93 push r16 - 375 0114 1F93 push r17 - 376 /* prologue: function */ - 377 /* frame size = 0 */ - 378 /* stack size = 6 */ - 379 .L__stack_usage = 6 - 380 0116 FC01 movw r30,r24 - 381 .L16: - 100:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** unsigned long width = 0; - 101:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** // wait for any previous pulse to end - 102:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** while ((*port & bit) == stateMask) - 383 .LM17: - 384 0118 8081 ld r24,Z - 385 011a 8623 and r24,r22 - 386 011c 8413 cpse r24,r20 - 387 011e 00C0 rjmp .L20 - 103:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** if (--maxloops == 0) - 389 .LM18: - 390 0120 0150 subi r16,1 - 391 0122 1109 sbc r17,__zero_reg__ - 392 0124 2109 sbc r18,__zero_reg__ - 393 0126 3109 sbc r19,__zero_reg__ - 394 0128 01F4 brne .L16 - 395 012a 00C0 rjmp .L27 - 396 .L21: - 104:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** return 0; - 105:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** - 106:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** // wait for the pulse to start - 107:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** while ((*port & bit) != stateMask) - 108:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** if (--maxloops == 0) - 398 .LM19: - 399 012c 0150 subi r16,1 - 400 012e 1109 sbc r17,__zero_reg__ - 401 0130 2109 sbc r18,__zero_reg__ - 402 0132 3109 sbc r19,__zero_reg__ - 403 0134 01F0 breq .L27 - 404 .L20: - 107:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** if (--maxloops == 0) - 406 .LM20: - 407 0136 8081 ld r24,Z - 408 0138 8623 and r24,r22 - 409 013a 4813 cpse r20,r24 - 410 013c 00C0 rjmp .L21 - 411 013e C12C mov r12,__zero_reg__ - 412 0140 D12C mov r13,__zero_reg__ - 413 0142 7601 movw r14,r12 - 414 .L23: - 109:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** return 0; - 110:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** - 111:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** // wait for the pulse to stop - 112:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** while ((*port & bit) == stateMask) { - 416 .LM21: - 417 0144 9081 ld r25,Z - 418 0146 9623 and r25,r22 - 419 0148 4913 cpse r20,r25 - 420 014a 00C0 rjmp .L28 - 113:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** if (++width == maxloops) - 422 .LM22: - 423 014c 8FEF ldi r24,-1 - 424 014e C81A sub r12,r24 - 425 0150 D80A sbc r13,r24 - 426 0152 E80A sbc r14,r24 - 427 0154 F80A sbc r15,r24 - 428 0156 0C15 cp r16,r12 - 429 0158 1D05 cpc r17,r13 - 430 015a 2E05 cpc r18,r14 - 431 015c 3F05 cpc r19,r15 - 432 015e 01F4 brne .L23 - 433 0160 00C0 rjmp .L27 - 434 .L28: - 435 0162 B601 movw r22,r12 - 436 0164 C701 movw r24,r14 - 437 0166 00C0 rjmp .L17 - 438 .L27: - 104:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** - 440 .LM23: - 441 0168 60E0 ldi r22,0 - 442 016a 70E0 ldi r23,0 - 443 016c 80E0 ldi r24,0 - 444 016e 90E0 ldi r25,0 - 445 .L17: - 446 /* epilogue start */ - 114:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** return 0; - 115:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** } - 116:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** return width; - 117:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** } - 448 .LM24: - 449 0170 1F91 pop r17 - 450 0172 0F91 pop r16 - 451 0174 FF90 pop r15 - 452 0176 EF90 pop r14 - 453 0178 DF90 pop r13 - 454 017a CF90 pop r12 - 455 017c 0895 ret - 460 .Lscope2: - 462 .stabd 78,0,0 - 467 .global pulseIn - 469 pulseIn: - 470 .stabd 46,0,0 - 34:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** // cache the port and bit of the pin in order to speed up the - 472 .LM25: - 473 .LFBB3: - 474 017e 0F93 push r16 - 475 0180 1F93 push r17 - 476 /* prologue: function */ - 477 /* frame size = 0 */ - 478 /* stack size = 2 */ - 479 .L__stack_usage = 2 - 480 .LBB7: - 38:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** uint8_t port = digitalPinToPort(pin); - 482 .LM26: - 483 0182 90E0 ldi r25,0 - 484 0184 FC01 movw r30,r24 - 485 0186 E050 subi r30,lo8(-(digital_pin_to_bit_mask_PGM)) - 486 0188 F040 sbci r31,hi8(-(digital_pin_to_bit_mask_PGM)) - 487 /* #APP */ - 488 ; 38 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino - 489 018a 7491 lpm r23, Z - 490 - 491 ; 0 "" 2 - 492 /* #NOAPP */ - 493 .LBE7: - 494 .LBB8: - 39:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** uint8_t stateMask = (state ? bit : 0); - 496 .LM27: - 497 018c FC01 movw r30,r24 - 498 018e E050 subi r30,lo8(-(digital_pin_to_port_PGM)) - 499 0190 F040 sbci r31,hi8(-(digital_pin_to_port_PGM)) - 500 /* #APP */ - 501 ; 39 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino - 502 0192 E491 lpm r30, Z - 503 - 504 ; 0 "" 2 - 505 /* #NOAPP */ - 506 .LBE8: - 40:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** - 508 .LM28: - 509 0194 6623 tst r22 - 510 0196 01F0 breq .L32 - 511 0198 672F mov r22,r23 - 512 019a 00C0 rjmp .L30 - 513 .L32: - 514 019c 60E0 ldi r22,0 - 515 .L30: - 516 .LBB9: - 46:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** - 518 .LM29: - 519 019e F0E0 ldi r31,0 - 520 01a0 EE0F lsl r30 - 521 01a2 FF1F rol r31 - 522 01a4 E050 subi r30,lo8(-(port_to_input_PGM)) - 523 01a6 F040 sbci r31,hi8(-(port_to_input_PGM)) - 524 /* #APP */ - 525 ; 46 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino - 526 01a8 8591 lpm r24, Z+ - 527 01aa 9491 lpm r25, Z - 528 - 529 ; 0 "" 2 - 530 /* #NOAPP */ - 531 .LBE9: - 532 01ac 8901 movw r16,r18 - 533 01ae 9A01 movw r18,r20 - 534 01b0 3F70 andi r19,15 - 535 01b2 462F mov r20,r22 - 536 01b4 672F mov r22,r23 - 537 01b6 0E94 0000 call countPulseASM - 49:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** return clockCyclesToMicroseconds(width * 16 + 16); - 539 .LM30: - 540 01ba 6115 cp r22,__zero_reg__ - 541 01bc 7105 cpc r23,__zero_reg__ - 542 01be 8105 cpc r24,__zero_reg__ - 543 01c0 9105 cpc r25,__zero_reg__ - 544 01c2 01F0 breq .L33 - 50:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** else - 546 .LM31: - 547 01c4 DC01 movw r26,r24 - 548 01c6 CB01 movw r24,r22 - 549 01c8 0196 adiw r24,1 - 550 01ca A11D adc r26,__zero_reg__ - 551 01cc B11D adc r27,__zero_reg__ - 552 01ce BC01 movw r22,r24 - 553 01d0 CD01 movw r24,r26 - 554 01d2 9F70 andi r25,15 - 555 01d4 00C0 rjmp .L31 - 556 .L33: - 52:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** } - 558 .LM32: - 559 01d6 60E0 ldi r22,0 - 560 01d8 70E0 ldi r23,0 - 561 01da CB01 movw r24,r22 - 562 .L31: - 563 /* epilogue start */ - 53:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_pulse.c **** - 565 .LM33: - 566 01dc 1F91 pop r17 - 567 01de 0F91 pop r16 - 568 01e0 0895 ret - 577 .Lscope3: - 579 .stabd 78,0,0 - 595 .Letext0: - 596 .ident "GCC: (GNU) 5.4.0" -DEFINED SYMBOLS - *ABS*:0000000000000000 wiring_pulse.c - /tmp/cctF37QZ.s:2 *ABS*:000000000000003e __SP_H__ - /tmp/cctF37QZ.s:3 *ABS*:000000000000003d __SP_L__ - /tmp/cctF37QZ.s:4 *ABS*:000000000000003f __SREG__ - /tmp/cctF37QZ.s:5 *ABS*:0000000000000000 __tmp_reg__ - /tmp/cctF37QZ.s:6 *ABS*:0000000000000001 __zero_reg__ - /tmp/cctF37QZ.s:138 .text:0000000000000000 pulseInLong - /tmp/cctF37QZ.s:365 .text:000000000000010a countPulseASM - /tmp/cctF37QZ.s:469 .text:000000000000017e pulseIn - -UNDEFINED SYMBOLS -digital_pin_to_bit_mask_PGM -digital_pin_to_port_PGM -micros -port_to_input_PGM diff --git a/arduino/hardware/arduino/avr/cores/arduino/wiring_pulse.o b/arduino/hardware/arduino/avr/cores/arduino/wiring_pulse.o deleted file mode 100644 index 23dd6a2723c046b26a008c30ef9f8c22c7a9a19b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10020 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 ty;1yM2Rf%sGxlhYv - 3:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** * Copyright (c) 2014 by Paul Stoffregen (Transaction API) - 4:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** * Copyright (c) 2014 by Matthijs Kooijman (SPISettings AVR) - 5:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** * Copyright (c) 2014 by Andrew J. Kroll (atomicity fixes) - 6:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** * SPI Master library for arduino. - 7:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** * - 8:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** * This file is free software; you can redistribute it and/or modify - 9:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** * it under the terms of either the GNU General Public License version 2 - 10:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** * or the GNU Lesser General Public License version 2.1, both as - 11:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** * published by the Free Software Foundation. - 12:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** */ - 13:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** - 14:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** #include "SPI.h" - 15:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** - 16:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** SPIClass SPI; - 17:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** - 18:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** uint8_t SPIClass::initialized = 0; - 19:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** uint8_t SPIClass::interruptMode = 0; - 20:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** uint8_t SPIClass::interruptMask = 0; - 21:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** uint8_t SPIClass::interruptSave = 0; - 22:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** #ifdef SPI_TRANSACTION_MISMATCH_LED - 23:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** uint8_t SPIClass::inTransactionFlag = 0; - 24:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** #endif - 25:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** - 26:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** void SPIClass::begin() - 27:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** { - 141 .LM0: - 142 .LFBB1: - 143 0000 CF93 push r28 - 144 /* prologue: function */ - 145 /* frame size = 0 */ - 146 /* stack size = 1 */ - 147 .L__stack_usage = 1 - 28:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** uint8_t sreg = SREG; - 149 .LM1: - 150 0002 CFB7 in r28,__SREG__ - 29:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** noInterrupts(); // Protect from a scheduler and prevent transactionBegin - 152 .LM2: - 153 /* #APP */ - 154 ; 29 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI - 155 0004 F894 cli - 156 ; 0 "" 2 - 157 /* #NOAPP */ - 158 .LBB2: - 30:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** if (!initialized) { - 160 .LM3: - 161 0006 8091 0000 lds r24,_ZN8SPIClass11initializedE - 162 000a 8111 cpse r24,__zero_reg__ - 163 000c 00C0 rjmp .L2 - 164 .LBB3: - 165 .LBB4: - 31:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** // Set SS to high so a connected chip will be "deselected" by default - 32:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** uint8_t port = digitalPinToPort(SS); - 167 .LM4: - 168 000e E0E0 ldi r30,lo8(digital_pin_to_port_PGM+10) - 169 0010 F0E0 ldi r31,hi8(digital_pin_to_port_PGM+10) - 170 /* #APP */ - 171 ; 32 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI - 172 0012 8491 lpm r24, Z - 173 - 174 ; 0 "" 2 - 175 /* #NOAPP */ - 176 .LBE4: - 177 .LBB5: - 33:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** uint8_t bit = digitalPinToBitMask(SS); - 179 .LM5: - 180 0014 E0E0 ldi r30,lo8(digital_pin_to_bit_mask_PGM+10) - 181 0016 F0E0 ldi r31,hi8(digital_pin_to_bit_mask_PGM+10) - 182 /* #APP */ - 183 ; 33 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI - 184 0018 9491 lpm r25, Z - 185 - 186 ; 0 "" 2 - 187 /* #NOAPP */ - 188 .LBE5: - 189 .LBB6: - 34:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** volatile uint8_t *reg = portModeRegister(port); - 191 .LM6: - 192 001a E82F mov r30,r24 - 193 001c F0E0 ldi r31,0 - 194 001e EE0F lsl r30 - 195 0020 FF1F rol r31 - 196 0022 E050 subi r30,lo8(-(port_to_mode_PGM)) - 197 0024 F040 sbci r31,hi8(-(port_to_mode_PGM)) - 198 /* #APP */ - 199 ; 34 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI - 200 0026 A591 lpm r26, Z+ - 201 0028 B491 lpm r27, Z - 202 - 203 ; 0 "" 2 - 204 /* #NOAPP */ - 205 .LBE6: - 35:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** - 36:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** // if the SS pin is not already configured as an output - 37:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** // then set it high (to enable the internal pull-up resistor) - 38:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** if(!(*reg & bit)){ - 207 .LM7: - 208 002a EC91 ld r30,X - 209 002c E923 and r30,r25 - 210 002e 01F4 brne .L3 - 39:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** digitalWrite(SS, HIGH); - 212 .LM8: - 213 0030 61E0 ldi r22,lo8(1) - 214 0032 8AE0 ldi r24,lo8(10) - 215 0034 0E94 0000 call digitalWrite - 216 .L3: - 40:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** } - 41:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** - 42:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** // When the SS pin is set as OUTPUT, it can be used as - 43:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** // a general purpose output port (it doesn't influence - 44:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** // SPI operations). - 45:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** pinMode(SS, OUTPUT); - 218 .LM9: - 219 0038 61E0 ldi r22,lo8(1) - 220 003a 8AE0 ldi r24,lo8(10) - 221 003c 0E94 0000 call pinMode - 46:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** - 47:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** // Warning: if the SS pin ever becomes a LOW INPUT then SPI - 48:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** // automatically switches to Slave, so the data direction of - 49:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** // the SS pin MUST be kept as OUTPUT. - 50:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** SPCR |= _BV(MSTR); - 223 .LM10: - 224 0040 8CB5 in r24,0x2c - 225 0042 8061 ori r24,lo8(16) - 226 0044 8CBD out 0x2c,r24 - 51:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** SPCR |= _BV(SPE); - 228 .LM11: - 229 0046 8CB5 in r24,0x2c - 230 0048 8064 ori r24,lo8(64) - 231 004a 8CBD out 0x2c,r24 - 52:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** - 53:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** // Set direction register for SCK and MOSI pin. - 54:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** // MISO pin automatically overrides to INPUT. - 55:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** // By doing this AFTER enabling SPI, we avoid accidentally - 56:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** // clocking in a single bit since the lines go directly - 57:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** // from "input" to SPI control. - 58:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** // http://code.google.com/p/arduino/issues/detail?id=888 - 59:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** pinMode(SCK, OUTPUT); - 233 .LM12: - 234 004c 61E0 ldi r22,lo8(1) - 235 004e 8DE0 ldi r24,lo8(13) - 236 0050 0E94 0000 call pinMode - 60:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** pinMode(MOSI, OUTPUT); - 238 .LM13: - 239 0054 61E0 ldi r22,lo8(1) - 240 0056 8BE0 ldi r24,lo8(11) - 241 0058 0E94 0000 call pinMode - 242 .L2: - 243 .LBE3: - 244 .LBE2: - 61:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** } - 62:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** initialized++; // reference count - 246 .LM14: - 247 005c 8091 0000 lds r24,_ZN8SPIClass11initializedE - 248 0060 8F5F subi r24,lo8(-(1)) - 249 0062 8093 0000 sts _ZN8SPIClass11initializedE,r24 - 63:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** SREG = sreg; - 251 .LM15: - 252 0066 CFBF out __SREG__,r28 - 253 /* epilogue start */ - 64:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** } - 255 .LM16: - 256 0068 CF91 pop r28 - 257 006a 0895 ret - 265 .Lscope1: - 267 .stabd 78,0,0 - 269 .global _ZN8SPIClass3endEv - 271 _ZN8SPIClass3endEv: - 272 .stabd 46,0,0 - 65:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** - 66:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** void SPIClass::end() { - 274 .LM17: - 275 .LFBB2: - 276 /* prologue: function */ - 277 /* frame size = 0 */ - 278 /* stack size = 0 */ - 279 .L__stack_usage = 0 - 67:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** uint8_t sreg = SREG; - 281 .LM18: - 282 006c 9FB7 in r25,__SREG__ - 68:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** noInterrupts(); // Protect from a scheduler and prevent transactionBegin - 284 .LM19: - 285 /* #APP */ - 286 ; 68 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI - 287 006e F894 cli - 288 ; 0 "" 2 - 69:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** // Decrease the reference counter - 70:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** if (initialized) - 290 .LM20: - 291 /* #NOAPP */ - 292 0070 8091 0000 lds r24,_ZN8SPIClass11initializedE - 293 0074 8823 tst r24 - 294 0076 01F0 breq .L6 - 71:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** initialized--; - 296 .LM21: - 297 0078 8150 subi r24,lo8(-(-1)) - 298 007a 8093 0000 sts _ZN8SPIClass11initializedE,r24 - 299 .L6: - 72:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** // If there are no more references disable SPI - 73:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** if (!initialized) { - 301 .LM22: - 302 007e 8091 0000 lds r24,_ZN8SPIClass11initializedE - 303 0082 8111 cpse r24,__zero_reg__ - 304 0084 00C0 rjmp .L7 - 74:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** SPCR &= ~_BV(SPE); - 306 .LM23: - 307 0086 8CB5 in r24,0x2c - 308 0088 8F7B andi r24,lo8(-65) - 309 008a 8CBD out 0x2c,r24 - 75:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** interruptMode = 0; - 311 .LM24: - 312 008c 1092 0000 sts _ZN8SPIClass13interruptModeE,__zero_reg__ - 313 .L7: - 76:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** #ifdef SPI_TRANSACTION_MISMATCH_LED - 77:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** inTransactionFlag = 0; - 78:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** #endif - 79:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** } - 80:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** SREG = sreg; - 315 .LM25: - 316 0090 9FBF out __SREG__,r25 - 317 0092 0895 ret - 322 .Lscope2: - 324 .stabd 78,0,0 - 327 .global _ZN8SPIClass14usingInterruptEh - 329 _ZN8SPIClass14usingInterruptEh: - 330 .stabd 46,0,0 - 81:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** } - 82:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** - 83:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** // mapping of interrupt numbers to bits within SPI_AVR_EIMSK - 84:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** #if defined(__AVR_ATmega32U4__) - 85:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/libraries/SPI/src/SPI.cpp **** #define SPI_INT0_MASK (1<=@Q5n>G3;G%$X_^*^*r~(0}LSiaK2uT5TNvK2#h7!RQ3`NEH z-s{&rJw3B4CsVaI-*mrz@Ad1~uYaa*Zl9jrvuV>NWv)$XUPVtzedI=^-i6E@6I`t> zRL@gSy#I->JbmwpQ%c=&i8{TpadzXbQ}p-VQ)focZv5dHvVYiqI;Dx_mf{bQ91b-{?<-DR@wMt$$K~7iR*jIC*H5r6JLAc)Rqr?R3zPf z#ip}&%u%|Ld-6-~ef!DBE`FarXka@_KFpyY{-6P*8tS5R51D@hwgDJ3>KqYh3hSVXCsI$tal;d_vB4W~j! z+)oI8+`&&f_;MKD&`deF?BH7+{8tXX_`Im>UI(`we4m4#bnt67M`be(zR|(Q9elTg z&qKA1&Nn)E)xqy}@E08X&klat!IwTK;kj^@gD-n-#BC!QXQ5zdQKCEfJr*gKu>3J01LI4*mxR|I)#i!6{9< z>~Zj#gYS3nw;lY9gJ1Cch)>|)y$)_U_`Qt353g40A;xcgA%E z;}0>uhVdsD-@y1`#%qi}%lLhaKhO9P#$RFlH;f-;{1e9CV7%qGNY-C7zKZcbGM-}m zBgSuK{I86UF+RiigN%R5`16eai}4eTf6e$OjCBy-auLaTF(QLfLyTX}c!KeMroW!? z8yI&OpJn_N#!oSRobfTnKVYoe;unl{TRiuLBx^g!L83~DFTM;PB#ApAqdUv%)#7(+O&m+n^TO7(Ka^k>8(rAq1*_Nk;UQwXnomDKO5 z^DVwyA$&;skb)@%ze>Hx;#XSSg@o*G2ao$||Y13kBg@ow~fksmq;CT|T5P zmJ%g(T)o8N`>d>zy4|Vchi!Y6)Stj>^i_gy8y_vHKjk^xms#iI%;)Qj-`>{_#>c1~ z4K{Z84%^`Y7W6CT^MKXO$fV4Y`WVw_{0RqtQf-l^lKPawkib_-J?z-wvrfPGwB=t? z4>|SyOY4&*^-b%CCG{<*?vE>Udv!^PeET8hb2;NrTAw+s#q-|{{LRZV)!krI_t&EA z3CYhnc&CG3@8H7@ew%}r9ej&}k30CC4nFDN4>)<-Ly+FGO4-riXZbE8gn zsePo?Y*%VsOA(9|Mhe@Tjn>-Hd@i0kI=T!#M=Bl5Z?v-B8ErNeI+aeN-W`Sb(Qcddxac*m}8m@9S|7c<4oxLidLMs%S=7Y-LQ zxs1MwnXE&qm#0?bgyzt-ZF;tTWx% z@Qy>-VgV{x5+^sG%w2@Vw21L!CNyWRh2b6DT&G@XPD1*`@D8fy#BgzYHXP3viu8B9 zxD95=7aJ>;B~64UN+>E;k^iiOV+CQM7=$oMM1m%_B;&S* zniJaqeA$0dR@(%gu&Ya)*o1|+a*>+pD5iYO1St>Fb0BNTw4qi3{^zIwH$*EsO`gIk zmgF=wIi=zH!&6DEbH?BBK>57a3OGqkN8eeQy8o*ROPMDw;>w}t=EYDYZLkR`5k*(PtOyww- zjSSApaehLSXZ46EK^d7pQp(mNsa@0>k#?5cRWoXlNKH$a&?0ITb}-gAPMs(cH4-Z> zs!mm_Yb)%+xu|hi1I@t6_nL$A6GTyKq&k+v&TAK|ec7S$n#Iy2#Coj~CrnUBjS{tC z(jI9o;wqQc1_@D~)qTf`>N*ygKT^upBca_`)EX)N;;1+!m%kcW+t8id1Yq@0;NOf$ed4B5@y zvexd&?1yJVo%)J58LBnb4Hv}vk#Zo#Vcu@R6c5IRF`J?pfG$tZ*^m+ts2vVapv+TJ zSZA?i_`>$25bQ~H%)?$%M@$w9h6pC2D&&V1O=E2`3`5D;VVYS4c|#35AsJR6;wV{L zhwOmlY$(*@VxBQg9;L%X#2oboc|K>zQFThrY4Rvt*8@{TBIowwHW^37K%XyYdM5)l zr3|Qv0_A4C(zO*E*Y(XyeZ5Rw>-@M=&{lF>*WHNIC8Jzzf|yKO;es{*)YBA#R11n(uWQn5A-%!LkC1%GYfKYrqk=i%(WxMa(STwt5kdK&XCA~-P7d2 z^jeMh7Jp!Moi zTzPF4to2;Z;q;+>^W}b8ObolUflKSFffzYZ4YU#41iqm>3J=${50gSa{NarbMr%hSax2J1#Hx zvqjz$Zz&V<;kfLDTSriMp@yp-E7=XOAo%}&fBeBYIRZahSX-E+#CQ2PlOWaOjb#V9z3J?)je5Hit5#=Y?u^bG&vaar z_RL}~>UZok9|eEwo;km-_zZNFzX;glXwi$d=urZTju=!;gwIdF&J3K&G~)9 zXOQN(U|^j#=X<`-AkAyRz&dQs_j->(s>gzXb=I8k@jin-jbI%$j7@I9`q?<&P@v;( z&hIKYxIKjg+7ayL%H`F?76)kB^3w|{%t4T!$BL;|Z}uvbi*}aRc6wlmsceS4>iYiq z^1eOm>(eso(Si#vQV+MaDzsPVy0gr6W&ET?lru^hrW2NlbQ_GO^;^~|&8{%@JFUON9+mixCMuixU!q~7o3`g~rM&Zku$#0R-P zpKGkST!GD=Wnum?0&&Tj5jJj?>b+~R0Ve&OHrZX{n5syd(SAEe zF?p8tRI14ehV%5?@=e-qy*8Vz)2STOwaa@k%M*uPHg1|hVuHZoIz3kvQPpy{Cwpso zKZZ%DF)i*j^%xhG7`sqkYP3XGKY$tSWR@4V?--YqbrT%Y@^GdjS)>bvD<>Y(B1YQp zg;AWyZ~{pKyQ4=BE()2~_q;J7Ho-A2HZB}!o^vhFezAWabBa_h>HRli#vZ_Ks~58g zae5O^Bzir{lQ=MBSdqj~`yICDdNZC~+&CQs4n?fq1E~5{D9+5QReyeww%xS__%3Zf z^UMM7Kw{RX?dWp{tO?5{3K)1_@@zPzx1`HZTeVYPZC0u>kkIR=w7?-DNFq|q;bg&v zJptx3U9}TyycQV5%rt*|^5L^1gU$zfUl?!n+GgJZZ+8YUkHs>xrqt!5c{APtotsD8 zjy@~c5Ye~So^2ngccK9qiz_EWP;j#Z5-NJ_>sPVgF{p?oFhx3z741xM_BpuOilJ%G z;Mf^^9KGvv+mc>{IwPbXFMCvyxFGuU+I#q9o95$1AG7_IzNIrRWi6+YK3}IeuSGLb^z7 zmmmmT3iu95arbP-y&&hU)#)9KGy27cmuR6}HH=qfOr=++vDWhzL<9Nes_oTdG`nT4 z)ac`W(D2!bo2PoaVVC;iLMvXBcWv`)EAs9{zjUM5xZV7#f^9g5r@apczmhMs3MN#5 zp2%bdL2q(-q9V!O@+TP6Z)>bjyvaIbMkMZ-$@f{1L_ITEl-?;x@0Ozeu5iJGi-eN8 zX0foC6fo#58(8<#iq|OcxfG+B4xX;hIn~iq)f5xy4v?%tpf^p@R539kT@^jg6yHzs z4fS3M`1)@j3;KmsvPfWyBwESDm{e8t6l8!VyepHYiJrlyX<~{bG%=AORg-v6OY#l% zIF+V~evg$b64)XMRZKKVS0%PTl;j)gouV{V^u}DWNMMU3R56h#U6t5QQ<86}_ngvH z(HlU?B7rU9t3szJIL4-`65q2*@(uOwRf;O$+pjnCh8Kz?ROuT4DYnQsIlygsA1qCk z{^3p+p+gr-t+i_GzPMGxPNx{xJiMud9h^|Bi0hU9I9UPDV>c zMd1#sT_=SO3nh9>XpVS`8qoY2=EKRz8q zpO!0-;VCniOf`>Gj&;w;1*>w8*s_63&&}+{3fwj@#{??Sz?A$r4ttq)rV14dbr3it z)0n{b>YdKoYLB~DdWmd|$SqUp-rPruQwBs%nfVHql;@H|MAOA+dnd$ViUW+ED%r|J z+dNY{i)&rDI~G;CKD-_YacDHHT#$VF?}U%Zk#g3QL_}W; zv83mcm?7{`$hHGh{ba{dJ+5G`gsDgvEjdFv;&QY*hrPJoWU<_9tkm0>QRow(V4@F) zW1|@_M)o(F_^-hz57P@A9H%0+Lm2Y4ThPD%(6lj>X_;PAgdw^%O)N~Z3^cT+#7IA3 znaIWiKhM?cH(RFE6JpeqE7Yri2XJb()L4>DkPs{QK5Fn_h)D_E@t%Zkab<#RjNf#S zjm>Hnc$1^DUTHKd^uLkX-r8%7f;N}iduy&JH80}ay<;e+PV_&JdZT>nSVT>VqzTAT zhUT4*sFPCxbFL?{I@cbJk*qd`c|C3>7Mh`R!T^o6+Z>fbuR1LLqKzPnmvm{EDI|sB z-Irw|D-q1~VqEEevRsD}KIBnp{G#Ggokh&`v<=O^^*oOmX+~TIFq@ExTQ;@7#Y3D4b9OYBTVdNgbi*S z%ZuKpn$B&`3iaVQunSE%9Cbh9V9)wGJ;9tN>LbFwsn@Y6)v*E|EF#9!RksRW$Mub( z8+l+&QusR+!ia6&+lA&}lBtY&Z)chy-j9O}nMjwH;2b5mCi42V&oz0>0Habc=JAs4 zSmVFa6};~4b%j*UQ5UH4&>wlJ=1Iq(+)(NHd@9eFuWPmxN%DqP`l^ zNhqFAWpq^6*>QVw0AiNYa|hB5cl*^S`t%KDHCt&NtEvc6Q>E#>&$u*rRf{CbJ6CPMwS-=8fPNc5T^3|vi z*T?0Xw%Ysuv!0)ytnO$88MXi5{0zfD?Vp)H$S_p%yZ155s`=6sqXN=q8BM6E41=7S z3K)#3sgOZlO=TI3tEn7=f|?p*fKqt^VMa}jGYDwwU~(@t6Ya3MwvO)(Fb%hlYY%5> zk1e_Ba}v?||6D}8;I~9-@9y1`Ls#!TaQ*Pm*hp@~eAdZ)ZH4cfoTu~E&!2G~)n@tn zph??|6!+SUuL|K4Zt8V5@#oLbmtS@`&-AsbozC->78CgSGo)0cgD)Q+)^o1S3Lmp` zuFd$ekC8>+f4UT$4&hE(63&Fbd;S)lNfv#t ziRAqg?)1$lBkz~M_u@z2F{1pJAcOKueiq={c&2atQ2zClfy?A~0M2)w*Cn55NI!Bq z{y0s!JU>^yu3Sd12bk61(DYsgJ^VWyA_L>&^-kM7I1Xqc$pFVyHCne-@UPVPG)=Ev zUd1;t%5!`7`{@hVU85+#c}xW26?nBv{H9K$S6ARf8woL?Ix@wQ0g6Z2<=Yc2rQ4YUL^(U41JD->8 zPb#T7N*8>CgWm>hbgMbIs%39DElr)$1PI-y`XGR3FBV%6<;_`vpIU z`^WJk`bTho7(dd1=s)A6Q~#oLa_g@;_))<`e;PmH^EmF`#Lw{gTL=FgFzG;yxDNvV z7>_@a^fS2s3x34sKXLyz2mcJ%=N^Z6tdU>iwC|-|nD)vgbNQI6#su8>~TdB8tkpFD2ArL|p z`)$n}FzIG418L4feSDW>eCIIgg-ld|%TwNk_+2H>W>%Fq43JKjdE5q!X0@{~qH||P zhA!`v0aOKKJPDz2b-s*T`pT%Q-=lAY|3L}TkN6t8Yk-Yzfa*#pP2Zt5myt_Jgee}; z)qMlaZK8|v=to1F%Ww8Zr4B@7w!TD*X1CYf;CC8{_^htNCumu}i*bj0#Q0q|kNF)H Imdn8Z1 - 3:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** || @contribution Paul Stoffregen (paul at pjrc dot com) - 4:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** || @url http://wiring.org.co/ - 5:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** || @url http://roguerobotics.com/ - 6:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** || - 7:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** || @description - 8:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** || | A Software PWM Library - 9:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** || | - 10:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** || | Written by Brett Hagman - 11:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** || | http://www.roguerobotics.com/ - 12:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** || | bhagman@roguerobotics.com, bhagman@wiring.org.co - 13:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** || | - 14:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** || | A Wiring (and Arduino) Library, for Atmel AVR8 bit series microcontrollers, - 15:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** || | to produce PWM signals on any arbitrary pin. - 16:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** || | - 17:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** || | It was originally designed for controlling the brightness of LEDs, but - 18:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** || | could be adapted to control servos and other low frequency PWM controlled - 19:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** || | devices as well. - 20:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** || | - 21:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** || | It uses a single hardware timer (Timer 2) on the Atmel microcontroller to - 22:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** || | generate up to 20 PWM channels (your mileage may vary). - 23:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** || | - 24:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** || # - 25:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** || - 26:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** || @license Please see the accompanying LICENSE.txt file for this project. - 27:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** || - 28:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** || @notes - 29:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** || | Minor modification by Paul Stoffregen to support different timers. - 30:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** || | - 31:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** || # - 32:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** || - 33:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** || @name Software PWM Library - 34:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** || @type Library - 35:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** || @target Atmel AVR 8 Bit - 36:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** || - 37:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** || @version 1.0.1 - 38:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** || - 39:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** */ - 40:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 41:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** #include - 42:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** #include - 43:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** #include "SoftPWM.h" - 44:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** #include "SoftPWM_timer.h" - 45:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 46:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** #if defined(WIRING) - 47:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** #include - 48:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** #elif ARDUINO >= 100 - 49:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** #include - 50:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** #else - 51:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 52:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** #include - 53:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 54:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** #endif - 55:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 56:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** #if F_CPU - 57:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** #define SOFTPWM_FREQ 60UL - 58:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** #define SOFTPWM_OCR (F_CPU/(8UL*256UL*SOFTPWM_FREQ)) - 59:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** #else - 60:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** // 130 == 60 Hz (on 16 MHz part) - 61:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** #define SOFTPWM_OCR 130 - 62:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** #endif - 63:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 64:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** volatile uint8_t _isr_softcount = 0xff; - 65:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** uint8_t _softpwm_defaultPolarity = SOFTPWM_NORMAL; - 66:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 67:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** typedef struct { - 68:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** // hardware I/O port and pin for this channel - 69:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** int8_t pin; - 70:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** uint8_t polarity; - 71:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** volatile uint8_t *outport; - 72:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** uint8_t pinmask; - 73:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** uint8_t pwmvalue; - 74:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** uint8_t checkval; - 75:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** uint8_t fadeuprate; - 76:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** uint8_t fadedownrate; - 77:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** } softPWMChannel; - 78:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 79:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** softPWMChannel _softpwm_channels[SOFTPWM_MAXCHANNELS]; - 80:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 81:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 82:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** // Here is the meat and gravy - 83:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** #ifdef WIRING - 84:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** void SoftPWM_Timer_Interrupt(void) - 85:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** #else - 86:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** ISR(TIMER1_COMPA_vect) - 87:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** #endif - 88:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** { - 139 .LM0: - 140 .LFBB1: - 141 0000 1F92 push r1 - 142 0002 0F92 push r0 - 143 0004 0FB6 in r0,__SREG__ - 144 0006 0F92 push r0 - 145 0008 1124 clr __zero_reg__ - 146 000a 2F93 push r18 - 147 000c 3F93 push r19 - 148 000e 4F93 push r20 - 149 0010 6F93 push r22 - 150 0012 7F93 push r23 - 151 0014 8F93 push r24 - 152 0016 9F93 push r25 - 153 0018 AF93 push r26 - 154 001a BF93 push r27 - 155 001c EF93 push r30 - 156 001e FF93 push r31 - 157 /* prologue: Signal */ - 158 /* frame size = 0 */ - 159 /* stack size = 14 */ - 160 .L__stack_usage = 14 - 89:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 90:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** uint8_t i; - 91:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** int16_t newvalue; - 92:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** int16_t direction; - 93:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 94:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** if (++_isr_softcount == 0) - 162 .LM1: - 163 0020 8091 0000 lds r24,_isr_softcount - 164 0024 8F5F subi r24,lo8(-(1)) - 165 0026 8093 0000 sts _isr_softcount,r24 - 166 002a 8823 tst r24 - 167 002c 01F0 breq .L2 - 168 .L13: - 169 002e E0E0 ldi r30,lo8(_softpwm_channels) - 170 0030 F0E0 ldi r31,hi8(_softpwm_channels) - 171 0032 00C0 rjmp .L3 - 172 .L2: - 173 0034 E0E0 ldi r30,lo8(_softpwm_channels) - 174 0036 F0E0 ldi r31,hi8(_softpwm_channels) - 175 .L14: - 95:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** { - 96:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** // set all channels high - let's start again - 97:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** // and accept new checkvals - 98:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** for (i = 0; i < SOFTPWM_MAXCHANNELS; i++) { - 99:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** if (_softpwm_channels[i].fadeuprate > 0 || _softpwm_channels[i].fadedownrate > 0) { - 177 .LM2: - 178 0038 4781 ldd r20,Z+7 - 179 003a 2581 ldd r18,Z+5 - 180 003c 4111 cpse r20,__zero_reg__ - 181 003e 00C0 rjmp .L4 - 183 .LM3: - 184 0040 8085 ldd r24,Z+8 - 185 0042 8823 tst r24 - 186 0044 01F0 breq .L5 - 187 .L4: - 100:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** // we want to fade to the new value - 101:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** direction = _softpwm_channels[i].pwmvalue - _softpwm_channels[i].checkval; - 189 .LM4: - 190 0046 30E0 ldi r19,0 - 191 0048 8681 ldd r24,Z+6 - 192 004a 90E0 ldi r25,0 - 193 004c B901 movw r22,r18 - 194 004e 681B sub r22,r24 - 195 0050 790B sbc r23,r25 - 102:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 103:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** // we will default to jumping to the new value - 104:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** newvalue = _softpwm_channels[i].pwmvalue; - 105:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 106:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** if (direction > 0 && _softpwm_channels[i].fadeuprate > 0) { - 197 .LM5: - 198 0052 1616 cp __zero_reg__,r22 - 199 0054 1706 cpc __zero_reg__,r23 - 200 0056 04F4 brge .L6 - 202 .LM6: - 203 0058 4423 tst r20 - 204 005a 01F0 breq .L5 - 107:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** newvalue = _softpwm_channels[i].checkval + _softpwm_channels[i].fadeuprate; - 206 .LM7: - 207 005c 840F add r24,r20 - 208 005e 911D adc r25,__zero_reg__ - 209 0060 8217 cp r24,r18 - 210 0062 9307 cpc r25,r19 - 211 0064 04F4 brge .L5 - 212 0066 00C0 rjmp .L32 - 213 .L6: - 108:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** if (newvalue > _softpwm_channels[i].pwmvalue) - 109:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** newvalue = _softpwm_channels[i].pwmvalue; - 110:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** } else if (direction < 0 && _softpwm_channels[i].fadedownrate > 0) { - 215 .LM8: - 216 0068 672B or r22,r23 - 217 006a 01F0 breq .L5 - 219 .LM9: - 220 006c 4085 ldd r20,Z+8 - 221 006e 4423 tst r20 - 222 0070 01F0 breq .L5 - 111:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** newvalue = _softpwm_channels[i].checkval - _softpwm_channels[i].fadedownrate; - 224 .LM10: - 225 0072 841B sub r24,r20 - 226 0074 9109 sbc r25,__zero_reg__ - 227 0076 2817 cp r18,r24 - 228 0078 3907 cpc r19,r25 - 229 007a 04F4 brge .L5 - 230 .L32: - 231 007c 9C01 movw r18,r24 - 232 .L5: - 112:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** if (newvalue < _softpwm_channels[i].pwmvalue) - 113:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** newvalue = _softpwm_channels[i].pwmvalue; - 114:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** } - 115:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 116:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** _softpwm_channels[i].checkval = newvalue; - 117:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** } else // just set the channel to the new value - 118:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** _softpwm_channels[i].checkval = _softpwm_channels[i].pwmvalue; - 234 .LM11: - 235 007e 2683 std Z+6,r18 - 119:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 120:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** // now set the pin high (if not 0) - 121:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** if (_softpwm_channels[i].checkval > 0) // don't set if checkval == 0 - 237 .LM12: - 238 0080 8681 ldd r24,Z+6 - 239 0082 8823 tst r24 - 240 0084 01F0 breq .L11 - 122:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** { - 123:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** if (_softpwm_channels[i].polarity == SOFTPWM_NORMAL) - 242 .LM13: - 243 0086 9181 ldd r25,Z+1 - 244 0088 A281 ldd r26,Z+2 - 245 008a B381 ldd r27,Z+3 - 246 008c 8481 ldd r24,Z+4 - 247 008e 9111 cpse r25,__zero_reg__ - 248 0090 00C0 rjmp .L12 - 124:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** *_softpwm_channels[i].outport |= _softpwm_channels[i].pinmask; - 250 .LM14: - 251 0092 9C91 ld r25,X - 252 0094 892B or r24,r25 - 253 0096 00C0 rjmp .L33 - 254 .L12: - 125:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** else - 126:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** *_softpwm_channels[i].outport &= ~(_softpwm_channels[i].pinmask); - 256 .LM15: - 257 0098 9C91 ld r25,X - 258 009a 8095 com r24 - 259 009c 8923 and r24,r25 - 260 .L33: - 261 009e 8C93 st X,r24 - 262 .L11: - 263 00a0 3996 adiw r30,9 - 98:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** if (_softpwm_channels[i].fadeuprate > 0 || _softpwm_channels[i].fadedownrate > 0) { - 265 .LM16: - 266 00a2 80E0 ldi r24,hi8(_softpwm_channels+180) - 267 00a4 E030 cpi r30,lo8(_softpwm_channels+180) - 268 00a6 F807 cpc r31,r24 - 269 00a8 01F4 brne .L14 - 270 00aa 00C0 rjmp .L13 - 271 .L3: - 127:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** } - 128:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 129:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** } - 130:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** } - 131:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 132:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** for (i = 0; i < SOFTPWM_MAXCHANNELS; i++) - 133:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** { - 134:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** if (_softpwm_channels[i].pin >= 0) // if it's a valid pin - 273 .LM17: - 274 00ac 8081 ld r24,Z - 275 00ae 87FD sbrc r24,7 - 276 00b0 00C0 rjmp .L15 - 135:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** { - 136:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** if (_softpwm_channels[i].checkval == _isr_softcount) // if we have hit the width - 278 .LM18: - 279 00b2 8091 0000 lds r24,_isr_softcount - 280 00b6 9681 ldd r25,Z+6 - 281 00b8 9813 cpse r25,r24 - 282 00ba 00C0 rjmp .L15 - 137:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** { - 138:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** // turn off the channel - 139:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** if (_softpwm_channels[i].polarity == SOFTPWM_NORMAL) - 284 .LM19: - 285 00bc 9181 ldd r25,Z+1 - 286 00be A281 ldd r26,Z+2 - 287 00c0 B381 ldd r27,Z+3 - 288 00c2 8481 ldd r24,Z+4 - 289 00c4 9111 cpse r25,__zero_reg__ - 290 00c6 00C0 rjmp .L16 - 140:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** *_softpwm_channels[i].outport &= ~(_softpwm_channels[i].pinmask); - 292 .LM20: - 293 00c8 9C91 ld r25,X - 294 00ca 8095 com r24 - 295 00cc 8923 and r24,r25 - 296 00ce 00C0 rjmp .L34 - 297 .L16: - 141:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** else - 142:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** *_softpwm_channels[i].outport |= _softpwm_channels[i].pinmask; - 299 .LM21: - 300 00d0 9C91 ld r25,X - 301 00d2 892B or r24,r25 - 302 .L34: - 303 00d4 8C93 st X,r24 - 304 .L15: - 305 00d6 3996 adiw r30,9 - 132:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** { - 307 .LM22: - 308 00d8 80E0 ldi r24,hi8(_softpwm_channels+180) - 309 00da E030 cpi r30,lo8(_softpwm_channels+180) - 310 00dc F807 cpc r31,r24 - 311 00de 01F4 brne .L3 - 312 /* epilogue start */ - 143:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** } - 144:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** } - 145:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** } - 146:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** } - 314 .LM23: - 315 00e0 FF91 pop r31 - 316 00e2 EF91 pop r30 - 317 00e4 BF91 pop r27 - 318 00e6 AF91 pop r26 - 319 00e8 9F91 pop r25 - 320 00ea 8F91 pop r24 - 321 00ec 7F91 pop r23 - 322 00ee 6F91 pop r22 - 323 00f0 4F91 pop r20 - 324 00f2 3F91 pop r19 - 325 00f4 2F91 pop r18 - 326 00f6 0F90 pop r0 - 327 00f8 0FBE out __SREG__,r0 - 328 00fa 0F90 pop r0 - 329 00fc 1F90 pop r1 - 330 00fe 1895 reti - 335 .Lscope1: - 337 .stabd 78,0,0 - 340 .global _Z12SoftPWMBeginh - 342 _Z12SoftPWMBeginh: - 343 .stabd 46,0,0 - 147:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 148:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 149:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** void SoftPWMBegin(uint8_t defaultPolarity) { - 345 .LM24: - 346 .LFBB2: - 347 /* prologue: function */ - 348 /* frame size = 0 */ - 349 /* stack size = 0 */ - 350 .L__stack_usage = 0 - 150:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** // We can tweak the number of PWM period by changing the prescalar - 151:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** // and the OCR - we'll default to ck/8 (CS21 set) and OCR=128. - 152:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** // This gives 1024 cycles between interrupts. And the ISR consumes ~200 cycles, so - 153:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** // we are looking at about 20 - 30% of CPU time spent in the ISR. - 154:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** // At these settings on a 16 MHz part, we will get a PWM period of - 155:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** // approximately 60Hz (~16ms). - 156:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 157:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** uint8_t i; - 158:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 159:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** //#ifdef WIRING - 160:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** // Timer2.setMode(0b010); // CTC - 161:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** // Timer2.setClockSource(CLOCK_PRESCALE_8); - 162:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** // Timer2.setOCR(CHANNEL_A, SOFTPWM_OCR); - 163:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** // Timer2.attachInterrupt(INTERRUPT_COMPARE_MATCH_A, SoftPWM_Timer_Interrupt); - 164:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** //#else - 165:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** // SOFTPWM_TIMER_INIT(SOFTPWM_OCR); - 166:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** //#endif - 167:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 168:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** cli(); //Disable interrupts while setting registers - 352 .LM25: - 353 /* #APP */ - 354 ; 168 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp" 1 - 355 0100 F894 cli - 356 ; 0 "" 2 - 169:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** TCCR1A = 0; // Make sure it is zero - 358 .LM26: - 359 /* #NOAPP */ - 360 0102 1092 8000 sts 128,__zero_reg__ - 170:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** TCCR1B = 0; // Make sure it is zero - 362 .LM27: - 363 0106 1092 8100 sts 129,__zero_reg__ - 171:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** //TCCR1B = (1 << WGM21); // Configure for CTC mode (Set it; don't OR stuff into it) - 172:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** //TCCR1B |= (1 << CS21); // Prescaler @ 1024 - 173:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** TIMSK1 = (1 << OCIE1A); // Enable interrupt - 365 .LM28: - 366 010a 92E0 ldi r25,lo8(2) - 367 010c 9093 6F00 sts 111,r25 - 174:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** OCR1A = SOFTPWM_OCR; // compare value = 1 sec (16MHz AVR) - 369 .LM29: - 370 0110 22E8 ldi r18,lo8(-126) - 371 0112 30E0 ldi r19,0 - 372 0114 3093 8900 sts 136+1,r19 - 373 0118 2093 8800 sts 136,r18 - 175:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 176:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** TCCR1B = (1 << CS21); /* start timer (ck/8 prescalar) */ \ - 375 .LM30: - 376 011c 9093 8100 sts 129,r25 - 177:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** TCCR1A = (1 << WGM21); /* CTC mode */ \ - 378 .LM31: - 379 0120 9093 8000 sts 128,r25 - 178:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 179:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** sei(); - 381 .LM32: - 382 /* #APP */ - 383 ; 179 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp" 1 - 384 0124 7894 sei - 385 ; 0 "" 2 - 386 /* #NOAPP */ - 387 0126 E0E0 ldi r30,lo8(_softpwm_channels) - 388 0128 F0E0 ldi r31,hi8(_softpwm_channels) - 180:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 181:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 182:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** for (i = 0; i < SOFTPWM_MAXCHANNELS; i++) { - 183:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** _softpwm_channels[i].pin = -1; - 390 .LM33: - 391 012a 9FEF ldi r25,lo8(-1) - 392 .L37: - 394 .LM34: - 395 012c 9083 st Z,r25 - 184:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** _softpwm_channels[i].polarity = SOFTPWM_NORMAL; - 397 .LM35: - 398 012e 1182 std Z+1,__zero_reg__ - 185:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** _softpwm_channels[i].outport = 0; - 400 .LM36: - 401 0130 1382 std Z+3,__zero_reg__ - 402 0132 1282 std Z+2,__zero_reg__ - 186:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** _softpwm_channels[i].fadeuprate = 0; - 404 .LM37: - 405 0134 1782 std Z+7,__zero_reg__ - 187:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** _softpwm_channels[i].fadedownrate = 0; - 407 .LM38: - 408 0136 1086 std Z+8,__zero_reg__ - 409 0138 3996 adiw r30,9 - 182:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** _softpwm_channels[i].pin = -1; - 411 .LM39: - 412 013a 20E0 ldi r18,hi8(_softpwm_channels+180) - 413 013c E030 cpi r30,lo8(_softpwm_channels+180) - 414 013e F207 cpc r31,r18 - 415 0140 01F4 brne .L37 - 188:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** } - 189:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 190:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** _softpwm_defaultPolarity = defaultPolarity; - 417 .LM40: - 418 0142 8093 0000 sts _softpwm_defaultPolarity,r24 - 419 0146 0895 ret - 421 .Lscope2: - 423 .stabd 78,0,0 - 427 .global _Z18SoftPWMSetPolarityah - 429 _Z18SoftPWMSetPolarityah: - 430 .stabd 46,0,0 - 191:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** } - 192:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 193:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 194:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** void SoftPWMSetPolarity(int8_t pin, uint8_t polarity) { - 432 .LM41: - 433 .LFBB3: - 434 /* prologue: function */ - 435 /* frame size = 0 */ - 436 /* stack size = 0 */ - 437 .L__stack_usage = 0 - 195:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** uint8_t i; - 196:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 197:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** if (polarity != SOFTPWM_NORMAL) - 198:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** polarity = SOFTPWM_INVERTED; - 439 .LM42: - 440 0148 21E0 ldi r18,lo8(1) - 441 014a 6111 cpse r22,__zero_reg__ - 442 014c 00C0 rjmp .L40 - 443 014e 20E0 ldi r18,0 - 444 .L40: - 445 0150 E0E0 ldi r30,lo8(_softpwm_channels) - 446 0152 F0E0 ldi r31,hi8(_softpwm_channels) - 447 0154 94E1 ldi r25,lo8(20) - 448 .L44: - 199:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 200:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** for (i = 0; i < SOFTPWM_MAXCHANNELS; i++) { - 201:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** if ((pin < 0 && _softpwm_channels[i].pin >= 0) || // ALL pins - 450 .LM43: - 451 0156 3081 ld r19,Z - 452 0158 87FF sbrs r24,7 - 453 015a 00C0 rjmp .L41 - 455 .LM44: - 456 015c 37FF sbrs r19,7 - 457 015e 00C0 rjmp .L42 - 458 0160 00C0 rjmp .L43 - 459 .L41: - 202:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** (pin >= 0 && _softpwm_channels[i].pin == pin)) // individual pin - 461 .LM45: - 462 0162 8313 cpse r24,r19 - 463 0164 00C0 rjmp .L43 - 464 .L42: - 203:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** { - 204:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** _softpwm_channels[i].polarity = polarity; - 466 .LM46: - 467 0166 2183 std Z+1,r18 - 468 .L43: - 469 0168 9150 subi r25,lo8(-(-1)) - 470 016a 3996 adiw r30,9 - 200:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** if ((pin < 0 && _softpwm_channels[i].pin >= 0) || // ALL pins - 472 .LM47: - 473 016c 9111 cpse r25,__zero_reg__ - 474 016e 00C0 rjmp .L44 - 475 /* epilogue start */ - 205:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** } - 206:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** } - 207:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** } - 477 .LM48: - 478 0170 0895 ret - 480 .Lscope3: - 482 .stabd 78,0,0 - 487 .global _Z10SoftPWMSetahh - 489 _Z10SoftPWMSetahh: - 490 .stabd 46,0,0 - 208:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 209:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 210:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** void SoftPWMSetPercent(int8_t pin, uint8_t percent, uint8_t hardset) { - 211:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** SoftPWMSet(pin, ((uint16_t) percent * 255) / 100, hardset); - 212:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** } - 213:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 214:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 215:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** void SoftPWMSet(int8_t pin, uint8_t value, uint8_t hardset) { - 492 .LM49: - 493 .LFBB4: - 494 0172 CF93 push r28 - 495 /* prologue: function */ - 496 /* frame size = 0 */ - 497 /* stack size = 1 */ - 498 .L__stack_usage = 1 - 216:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** int8_t firstfree = -1; // first free index - 217:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** uint8_t i; - 218:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 219:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** if (hardset) { - 500 .LM50: - 501 0174 4423 tst r20 - 502 0176 01F0 breq .L47 - 220:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** SOFTPWM_TIMER_SET(0); - 504 .LM51: - 505 0178 1092 8500 sts 132+1,__zero_reg__ - 506 017c 1092 8400 sts 132,__zero_reg__ - 221:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** _isr_softcount = 0xff; - 508 .LM52: - 509 0180 9FEF ldi r25,lo8(-1) - 510 0182 9093 0000 sts _isr_softcount,r25 - 511 .L47: - 512 0186 E0E0 ldi r30,lo8(_softpwm_channels) - 513 0188 F0E0 ldi r31,hi8(_softpwm_channels) - 215:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** int8_t firstfree = -1; // first free index - 515 .LM53: - 516 018a 90E0 ldi r25,0 - 517 018c AFEF ldi r26,lo8(-1) - 518 .L55: - 222:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** } - 223:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 224:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** // If the pin isn't already set, add it - 225:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** for (i = 0; i < SOFTPWM_MAXCHANNELS; i++) { - 226:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** if ((pin < 0 && _softpwm_channels[i].pin >= 0) || // ALL pins - 520 .LM54: - 521 018e 2081 ld r18,Z - 522 0190 87FF sbrs r24,7 - 523 0192 00C0 rjmp .L48 - 525 .LM55: - 526 0194 27FF sbrs r18,7 - 527 0196 00C0 rjmp .L49 - 528 0198 00C0 rjmp .L72 - 529 .L48: - 227:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** (pin >= 0 && _softpwm_channels[i].pin == pin)) // individual pin - 531 .LM56: - 532 019a 8217 cp r24,r18 - 533 019c 01F0 breq .L49 - 534 .L53: - 228:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** { - 229:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** // set the pin (and exit, if individual pin) - 230:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** _softpwm_channels[i].pwmvalue = value; - 231:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 232:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** if (pin >= 0) // we've set the individual pin - 233:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** return; - 234:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** } - 235:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 236:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** // get the first free pin if available - 237:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** if (firstfree < 0 && _softpwm_channels[i].pin < 0) - 536 .LM57: - 537 019e AF3F cpi r26,lo8(-1) - 538 01a0 01F4 brne .L52 - 539 01a2 00C0 rjmp .L73 - 540 .L49: - 230:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 542 .LM58: - 543 01a4 6583 std Z+5,r22 - 232:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** return; - 545 .LM59: - 546 01a6 87FD sbrc r24,7 - 547 01a8 00C0 rjmp .L53 - 548 01aa 00C0 rjmp .L46 - 549 .L73: - 551 .LM60: - 552 01ac 2081 ld r18,Z - 553 01ae 27FD sbrc r18,7 - 554 .L59: - 238:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** firstfree = i; - 556 .LM61: - 557 01b0 A92F mov r26,r25 - 558 .L52: - 225:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** if ((pin < 0 && _softpwm_channels[i].pin >= 0) || // ALL pins - 560 .LM62: - 561 01b2 9F5F subi r25,lo8(-(1)) - 562 01b4 3996 adiw r30,9 - 563 01b6 9431 cpi r25,lo8(20) - 564 01b8 01F4 brne .L55 - 565 .LBB2: - 239:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** } - 240:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 241:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** if (pin >= 0 && firstfree >= 0) { - 567 .LM63: - 568 01ba 87FD sbrc r24,7 - 569 01bc 00C0 rjmp .L46 - 571 .LM64: - 572 01be AF3F cpi r26,lo8(-1) - 573 01c0 01F4 brne .+2 - 574 01c2 00C0 rjmp .L46 - 575 01c4 C82F mov r28,r24 - 576 .LBB3: - 242:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** // we have a free pin we can use - 243:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** _softpwm_channels[firstfree].pin = pin; - 578 .LM65: - 579 01c6 89E0 ldi r24,lo8(9) - 580 01c8 A802 muls r26,r24 - 581 01ca D001 movw r26,r0 - 582 01cc 1124 clr __zero_reg__ - 583 01ce A050 subi r26,lo8(-(_softpwm_channels)) - 584 01d0 B040 sbci r27,hi8(-(_softpwm_channels)) - 585 01d2 CC93 st X,r28 - 244:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** _softpwm_channels[firstfree].polarity = _softpwm_defaultPolarity; - 587 .LM66: - 588 01d4 2091 0000 lds r18,_softpwm_defaultPolarity - 589 01d8 1196 adiw r26,1 - 590 01da 2C93 st X,r18 - 591 01dc 1197 sbiw r26,1 - 592 .LBB4: - 593 .LBB5: - 245:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** _softpwm_channels[firstfree].outport = portOutputRegister(digitalPinToPort(pin)); - 595 .LM67: - 596 01de 8C2F mov r24,r28 - 597 01e0 0C2E mov __tmp_reg__,r28 - 598 01e2 000C lsl r0 - 599 01e4 990B sbc r25,r25 - 600 01e6 FC01 movw r30,r24 - 601 01e8 E050 subi r30,lo8(-(digital_pin_to_port_PGM)) - 602 01ea F040 sbci r31,hi8(-(digital_pin_to_port_PGM)) - 603 /* #APP */ - 604 ; 245 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp" 1 - 605 01ec E491 lpm r30, Z - 606 - 607 ; 0 "" 2 - 608 /* #NOAPP */ - 609 .LBE5: - 610 01ee F0E0 ldi r31,0 - 611 01f0 EE0F lsl r30 - 612 01f2 FF1F rol r31 - 613 01f4 E050 subi r30,lo8(-(port_to_output_PGM)) - 614 01f6 F040 sbci r31,hi8(-(port_to_output_PGM)) - 615 /* #APP */ - 616 ; 245 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp" 1 - 617 01f8 4591 lpm r20, Z+ - 618 01fa 5491 lpm r21, Z - 619 - 620 ; 0 "" 2 - 621 /* #NOAPP */ - 622 .LBE4: - 623 01fc 1396 adiw r26,2+1 - 624 01fe 5C93 st X,r21 - 625 0200 4E93 st -X,r20 - 626 0202 1297 sbiw r26,2 - 627 .LBB6: - 246:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** _softpwm_channels[firstfree].pinmask = digitalPinToBitMask(pin); - 629 .LM68: - 630 0204 FC01 movw r30,r24 - 631 0206 E050 subi r30,lo8(-(digital_pin_to_bit_mask_PGM)) - 632 0208 F040 sbci r31,hi8(-(digital_pin_to_bit_mask_PGM)) - 633 /* #APP */ - 634 ; 246 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp" 1 - 635 020a E491 lpm r30, Z - 636 - 637 ; 0 "" 2 - 638 /* #NOAPP */ - 639 020c 1496 adiw r26,4 - 640 020e EC93 st X,r30 - 641 0210 1497 sbiw r26,4 - 642 .LBE6: - 247:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** _softpwm_channels[firstfree].pwmvalue = value; - 644 .LM69: - 645 0212 1596 adiw r26,5 - 646 0214 6C93 st X,r22 - 248:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** // _softpwm_channels[firstfree].checkval = 0; - 249:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 250:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** // now prepare the pin for output - 251:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** // turn it off to start (no glitch) - 252:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** if (_softpwm_defaultPolarity == SOFTPWM_NORMAL) - 648 .LM70: - 649 0216 2111 cpse r18,__zero_reg__ - 650 0218 00C0 rjmp .L57 - 253:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** digitalWrite(pin, LOW); - 652 .LM71: - 653 021a 60E0 ldi r22,0 - 654 021c 00C0 rjmp .L71 - 655 .L57: - 254:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** else - 255:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** digitalWrite(pin, HIGH); - 657 .LM72: - 658 021e 61E0 ldi r22,lo8(1) - 659 .L71: - 660 0220 8C2F mov r24,r28 - 661 0222 0E94 0000 call digitalWrite - 256:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** pinMode(pin, OUTPUT); - 663 .LM73: - 664 0226 61E0 ldi r22,lo8(1) - 665 0228 8C2F mov r24,r28 - 666 /* epilogue start */ - 667 .LBE3: - 668 .LBE2: - 257:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** } - 258:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** } - 670 .LM74: - 671 022a CF91 pop r28 - 672 .LBB8: - 673 .LBB7: - 256:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** pinMode(pin, OUTPUT); - 675 .LM75: - 676 022c 0C94 0000 jmp pinMode - 677 .L72: - 678 .LBE7: - 679 .LBE8: - 237:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** firstfree = i; - 681 .LM76: - 682 0230 AF3F cpi r26,lo8(-1) - 683 0232 01F0 breq .+2 - 684 0234 00C0 rjmp .L52 - 685 0236 00C0 rjmp .L59 - 686 .L46: - 687 /* epilogue start */ - 689 .LM77: - 690 0238 CF91 pop r28 - 691 023a 0895 ret - 700 .Lscope4: - 702 .stabd 78,0,0 - 707 .global _Z17SoftPWMSetPercentahh - 709 _Z17SoftPWMSetPercentahh: - 710 .stabd 46,0,0 - 210:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** SoftPWMSet(pin, ((uint16_t) percent * 255) / 100, hardset); - 712 .LM78: - 713 .LFBB5: - 714 /* prologue: function */ - 715 /* frame size = 0 */ - 716 /* stack size = 0 */ - 717 .L__stack_usage = 0 - 718 023c 282F mov r18,r24 - 211:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** } - 720 .LM79: - 721 023e 3FEF ldi r19,lo8(-1) - 722 0240 639F mul r22,r19 - 723 0242 C001 movw r24,r0 - 724 0244 1124 clr __zero_reg__ - 725 0246 64E6 ldi r22,lo8(100) - 726 0248 70E0 ldi r23,0 - 727 024a 0E94 0000 call __udivmodhi4 - 728 024e 822F mov r24,r18 - 729 0250 0C94 0000 jmp _Z10SoftPWMSetahh - 731 .Lscope5: - 733 .stabd 78,0,0 - 736 .global _Z10SoftPWMEnda - 738 _Z10SoftPWMEnda: - 739 .stabd 46,0,0 - 259:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 260:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** void SoftPWMEnd(int8_t pin) { - 741 .LM80: - 742 .LFBB6: - 743 0254 FF92 push r15 - 744 0256 0F93 push r16 - 745 0258 1F93 push r17 - 746 025a CF93 push r28 - 747 025c DF93 push r29 - 748 /* prologue: function */ - 749 /* frame size = 0 */ - 750 /* stack size = 5 */ - 751 .L__stack_usage = 5 - 752 025e 082F mov r16,r24 - 753 0260 C0E0 ldi r28,lo8(_softpwm_channels) - 754 0262 D0E0 ldi r29,hi8(_softpwm_channels) - 756 .LM81: - 757 0264 14E1 ldi r17,lo8(20) - 261:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** uint8_t i; - 262:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 263:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** for (i = 0; i < SOFTPWM_MAXCHANNELS; i++) { - 264:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** if ((pin < 0 && _softpwm_channels[i].pin >= 0) || // ALL pins - 265:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** (pin >= 0 && _softpwm_channels[i].pin == pin)) // individual pin - 266:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** { - 267:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** // now disable the pin (put it into INPUT mode) - 268:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** digitalWrite(_softpwm_channels[i].pin, 1); - 269:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** pinMode(_softpwm_channels[i].pin, INPUT); - 270:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 271:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** // remove the pin - 272:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** _softpwm_channels[i].pin = -1; - 759 .LM82: - 760 0266 FF24 clr r15 - 761 0268 FA94 dec r15 - 762 .L79: - 264:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** (pin >= 0 && _softpwm_channels[i].pin == pin)) // individual pin - 764 .LM83: - 765 026a 8881 ld r24,Y - 766 026c 07FF sbrs r16,7 - 767 026e 00C0 rjmp .L76 - 264:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** (pin >= 0 && _softpwm_channels[i].pin == pin)) // individual pin - 769 .LM84: - 770 0270 87FF sbrs r24,7 - 771 0272 00C0 rjmp .L77 - 772 0274 00C0 rjmp .L78 - 773 .L76: - 265:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** { - 775 .LM85: - 776 0276 0813 cpse r16,r24 - 777 0278 00C0 rjmp .L78 - 778 .L77: - 268:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** pinMode(_softpwm_channels[i].pin, INPUT); - 780 .LM86: - 781 027a 61E0 ldi r22,lo8(1) - 782 027c 8881 ld r24,Y - 783 027e 0E94 0000 call digitalWrite - 269:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 785 .LM87: - 786 0282 60E0 ldi r22,0 - 787 0284 8881 ld r24,Y - 788 0286 0E94 0000 call pinMode - 790 .LM88: - 791 028a F882 st Y,r15 - 792 .L78: - 793 028c 1150 subi r17,lo8(-(-1)) - 794 028e 2996 adiw r28,9 - 263:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** if ((pin < 0 && _softpwm_channels[i].pin >= 0) || // ALL pins - 796 .LM89: - 797 0290 1111 cpse r17,__zero_reg__ - 798 0292 00C0 rjmp .L79 - 799 /* epilogue start */ - 273:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** } - 274:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** } - 275:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** } - 801 .LM90: - 802 0294 DF91 pop r29 - 803 0296 CF91 pop r28 - 804 0298 1F91 pop r17 - 805 029a 0F91 pop r16 - 806 029c FF90 pop r15 - 807 029e 0895 ret - 809 .Lscope6: - 811 .stabd 78,0,0 - 816 .global _Z18SoftPWMSetFadeTimeajj - 818 _Z18SoftPWMSetFadeTimeajj: - 819 .stabd 46,0,0 - 276:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 277:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 278:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** void SoftPWMSetFadeTime(int8_t pin, uint16_t fadeUpTime, uint16_t fadeDownTime) { - 821 .LM91: - 822 .LFBB7: - 823 02a0 2F92 push r2 - 824 02a2 3F92 push r3 - 825 02a4 4F92 push r4 - 826 02a6 5F92 push r5 - 827 02a8 6F92 push r6 - 828 02aa 7F92 push r7 - 829 02ac 8F92 push r8 - 830 02ae 9F92 push r9 - 831 02b0 AF92 push r10 - 832 02b2 BF92 push r11 - 833 02b4 CF92 push r12 - 834 02b6 DF92 push r13 - 835 02b8 EF92 push r14 - 836 02ba FF92 push r15 - 837 02bc 0F93 push r16 - 838 02be 1F93 push r17 - 839 02c0 CF93 push r28 - 840 02c2 DF93 push r29 - 841 02c4 00D0 rcall . - 842 02c6 00D0 rcall . - 843 02c8 CDB7 in r28,__SP_L__ - 844 02ca DEB7 in r29,__SP_H__ - 845 /* prologue: function */ - 846 /* frame size = 4 */ - 847 /* stack size = 22 */ - 848 .L__stack_usage = 22 - 849 02cc 382E mov r3,r24 - 850 02ce 7A83 std Y+2,r23 - 851 02d0 6983 std Y+1,r22 - 852 02d2 8A01 movw r16,r20 - 853 02d4 80E0 ldi r24,lo8(_softpwm_channels) - 854 02d6 90E0 ldi r25,hi8(_softpwm_channels) - 855 02d8 9C83 std Y+4,r25 - 856 02da 8B83 std Y+3,r24 - 858 .LM92: - 859 02dc 84E1 ldi r24,lo8(20) - 860 02de 282E mov r2,r24 - 279:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** int16_t fadeAmount; - 280:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** uint8_t i; - 281:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 282:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** for (i = 0; i < SOFTPWM_MAXCHANNELS; i++) { - 283:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** if ((pin < 0 && _softpwm_channels[i].pin >= 0) || // ALL pins - 284:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** (pin >= 0 && _softpwm_channels[i].pin == pin)) // individual pin - 285:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** { - 286:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 287:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** fadeAmount = 0; - 288:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** if (fadeUpTime > 0) - 289:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** fadeAmount = 255UL * (SOFTPWM_OCR * 256UL / (F_CPU / 8000UL)) / fadeUpTime; - 290:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 291:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** _softpwm_channels[i].fadeuprate = fadeAmount; - 292:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 293:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** fadeAmount = 0; - 294:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** if (fadeDownTime > 0) - 295:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** fadeAmount = 255UL * (SOFTPWM_OCR * 256UL / (F_CPU / 8000UL)) / fadeDownTime; - 862 .LM93: - 863 02e0 4A01 movw r8,r20 - 864 02e2 A12C mov r10,__zero_reg__ - 865 02e4 B12C mov r11,__zero_reg__ - 866 02e6 90EF ldi r25,lo8(-16) - 867 02e8 C92E mov r12,r25 - 868 02ea 9FE0 ldi r25,lo8(15) - 869 02ec D92E mov r13,r25 - 870 02ee E12C mov r14,__zero_reg__ - 871 02f0 F12C mov r15,__zero_reg__ - 289:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 873 .LM94: - 874 02f2 2B01 movw r4,r22 - 875 02f4 612C mov r6,__zero_reg__ - 876 02f6 712C mov r7,__zero_reg__ - 877 .L85: - 283:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** (pin >= 0 && _softpwm_channels[i].pin == pin)) // individual pin - 879 .LM95: - 880 02f8 EB81 ldd r30,Y+3 - 881 02fa FC81 ldd r31,Y+4 - 882 02fc 8081 ld r24,Z - 883 02fe 37FE sbrs r3,7 - 884 0300 00C0 rjmp .L82 - 283:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** (pin >= 0 && _softpwm_channels[i].pin == pin)) // individual pin - 886 .LM96: - 887 0302 87FF sbrs r24,7 - 888 0304 00C0 rjmp .L83 - 889 .L86: - 890 0306 2A94 dec r2 - 891 0308 8B81 ldd r24,Y+3 - 892 030a 9C81 ldd r25,Y+4 - 893 030c 0996 adiw r24,9 - 894 030e 9C83 std Y+4,r25 - 895 0310 8B83 std Y+3,r24 - 282:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** if ((pin < 0 && _softpwm_channels[i].pin >= 0) || // ALL pins - 897 .LM97: - 898 0312 2110 cpse r2,__zero_reg__ - 899 0314 00C0 rjmp .L85 - 900 0316 00C0 rjmp .L81 - 901 .L82: - 284:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** { - 903 .LM98: - 904 0318 3812 cpse r3,r24 - 905 031a 00C0 rjmp .L86 - 906 .L83: - 288:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** fadeAmount = 255UL * (SOFTPWM_OCR * 256UL / (F_CPU / 8000UL)) / fadeUpTime; - 908 .LM99: - 909 031c 8981 ldd r24,Y+1 - 910 031e 9A81 ldd r25,Y+2 - 911 0320 892B or r24,r25 - 912 0322 01F0 breq .L89 - 289:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 914 .LM100: - 915 0324 C701 movw r24,r14 - 916 0326 B601 movw r22,r12 - 917 0328 A301 movw r20,r6 - 918 032a 9201 movw r18,r4 - 919 032c 0E94 0000 call __udivmodsi4 - 920 0330 00C0 rjmp .L87 - 921 .L89: - 287:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** if (fadeUpTime > 0) - 923 .LM101: - 924 0332 20E0 ldi r18,0 - 925 .L87: - 291:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 927 .LM102: - 928 0334 EB81 ldd r30,Y+3 - 929 0336 FC81 ldd r31,Y+4 - 930 0338 2783 std Z+7,r18 - 294:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** fadeAmount = 255UL * (SOFTPWM_OCR * 256UL / (F_CPU / 8000UL)) / fadeDownTime; - 932 .LM103: - 933 033a 0115 cp r16,__zero_reg__ - 934 033c 1105 cpc r17,__zero_reg__ - 935 033e 01F0 breq .L90 - 937 .LM104: - 938 0340 C701 movw r24,r14 - 939 0342 B601 movw r22,r12 - 940 0344 A501 movw r20,r10 - 941 0346 9401 movw r18,r8 - 942 0348 0E94 0000 call __udivmodsi4 - 943 034c 00C0 rjmp .L88 - 944 .L90: - 293:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** if (fadeDownTime > 0) - 946 .LM105: - 947 034e 20E0 ldi r18,0 - 948 .L88: - 296:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 297:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** _softpwm_channels[i].fadedownrate = fadeAmount; - 950 .LM106: - 951 0350 EB81 ldd r30,Y+3 - 952 0352 FC81 ldd r31,Y+4 - 953 0354 2087 std Z+8,r18 - 298:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** - 299:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** if (pin >= 0) // we've set individual pin - 955 .LM107: - 956 0356 37FC sbrc r3,7 - 957 0358 00C0 rjmp .L86 - 958 .L81: - 959 /* epilogue start */ - 300:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** break; - 301:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** } - 302:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** } - 303:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//libraries/SoftPWM/SoftPWM.cpp **** } - 961 .LM108: - 962 035a 0F90 pop __tmp_reg__ - 963 035c 0F90 pop __tmp_reg__ - 964 035e 0F90 pop __tmp_reg__ - 965 0360 0F90 pop __tmp_reg__ - 966 0362 DF91 pop r29 - 967 0364 CF91 pop r28 - 968 0366 1F91 pop r17 - 969 0368 0F91 pop r16 - 970 036a FF90 pop r15 - 971 036c EF90 pop r14 - 972 036e DF90 pop r13 - 973 0370 CF90 pop r12 - 974 0372 BF90 pop r11 - 975 0374 AF90 pop r10 - 976 0376 9F90 pop r9 - 977 0378 8F90 pop r8 - 978 037a 7F90 pop r7 - 979 037c 6F90 pop r6 - 980 037e 5F90 pop r5 - 981 0380 4F90 pop r4 - 982 0382 3F90 pop r3 - 983 0384 2F90 pop r2 - 984 0386 0895 ret - 986 .Lscope7: - 988 .stabd 78,0,0 - 989 .global _softpwm_channels - 990 .section .bss - 993 _softpwm_channels: - 994 0000 0000 0000 .zero 180 - 994 0000 0000 - 994 0000 0000 - 994 0000 0000 - 994 0000 0000 - 995 .global _softpwm_defaultPolarity - 998 _softpwm_defaultPolarity: - 999 00b4 00 .zero 1 - 1000 .global _isr_softcount - 1001 .data - 1004 _isr_softcount: - 1005 0000 FF .byte -1 - 1023 .text - 1025 .Letext0: - 1026 .ident "GCC: (GNU) 5.4.0" - 1027 .global __do_copy_data - 1028 .global __do_clear_bss -DEFINED SYMBOLS - *ABS*:0000000000000000 SoftPWM.cpp - /tmp/ccq9YFga.s:2 *ABS*:000000000000003e __SP_H__ - /tmp/ccq9YFga.s:3 *ABS*:000000000000003d __SP_L__ - /tmp/ccq9YFga.s:4 *ABS*:000000000000003f __SREG__ - /tmp/ccq9YFga.s:5 *ABS*:0000000000000000 __tmp_reg__ - /tmp/ccq9YFga.s:6 *ABS*:0000000000000001 __zero_reg__ - /tmp/ccq9YFga.s:136 .text:0000000000000000 __vector_11 - /tmp/ccq9YFga.s:1004 .data:0000000000000000 _isr_softcount - /tmp/ccq9YFga.s:993 .bss:0000000000000000 _softpwm_channels - /tmp/ccq9YFga.s:342 .text:0000000000000100 _Z12SoftPWMBeginh - /tmp/ccq9YFga.s:998 .bss:00000000000000b4 _softpwm_defaultPolarity - /tmp/ccq9YFga.s:429 .text:0000000000000148 _Z18SoftPWMSetPolarityah - /tmp/ccq9YFga.s:489 .text:0000000000000172 _Z10SoftPWMSetahh - /tmp/ccq9YFga.s:709 .text:000000000000023c _Z17SoftPWMSetPercentahh - /tmp/ccq9YFga.s:738 .text:0000000000000254 _Z10SoftPWMEnda - /tmp/ccq9YFga.s:818 .text:00000000000002a0 _Z18SoftPWMSetFadeTimeajj - -UNDEFINED SYMBOLS -digital_pin_to_port_PGM -port_to_output_PGM -digital_pin_to_bit_mask_PGM -digitalWrite -pinMode -__udivmodhi4 -__udivmodsi4 -__do_copy_data -__do_clear_bss diff --git a/arduino/libraries/SoftPWM/SoftPWM.o b/arduino/libraries/SoftPWM/SoftPWM.o deleted file mode 100644 index 55713c39b0476e8466ad908d7b6c4c97f7617640..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25560 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