Arduino MEGA2560 генератор на 14,7456MHz. Как?

ТС - Вы не тот вариант выбираете !!!

  • hw hardware supported bootloader: set fuses to jump to the HW boot section, not to addr 0

И вообще не из той ветки !!! Ветка autobaud это для внутреннего кварца насколько я понял !!!

надо с hw в названии из ветки external_oscillator для вашего кварца !

Там теперь и с протоколами засада … надо файл с названием urboot_atmega2560_ee_ce_hw_stk500.hex иначе всё равно будут проблемы при загрузке …

Залейте уже проверенный OptiBoot для нужных частот кварца и Serial и не ... нам мозги !!!

Размер, занимаемый скетчем, вы всё равно не уменьшите так как шаг выделяемой области много больше размеров этих загрузчиков !!!

MegaCore/avr/bootloaders/urboot/atmega2560/watchdog_1_s/autobaud/uart0_rxe0_txe1/led+b7 at master · MCUdude/MegaCore · GitHub

2 лайка

Блин! Я конечно прошу прощения за свою некомпетентность :frowning: Но я не могу понять, ЧТО ЖЕ Я ДЕЛАЮ не так?!?!?


Что значит “не тот вариант выбираете?”. Я уже несколько раз перечитал документацию по MegaCore (некоторые места даже перепроверил через переводчик, вдруг не так понял)… Делаю все так, не работает! Ваши указания (насчет замены фюзов 0xD7 на 0xD6) проверил… не помогло. Или это ошибки в реализации MegaCore? Как их исправить, чтобы “из коробки” в дальнейшем все работало?

Как вариант более раннюю версию megacore заюзать …
Или ждать пока обладатели 2560 с форума проверят что к чему с этим urboot …
Где выбор Bootlader и\или Pinout - какие варианты есть ещё ???

Всё как всегда - лучшее враг хорошего, откатитесь на ядро пониже версией, у меня 2.1.3
PS не поленился, проверил, всё работает из коробки

Как-то странно и не “по людски”… но сделал так: взял файл urboot_atmega2560_pr_ee_ce.hex из каталога (с учетом моего кварца на 14.7 Mhz) "\Arduino15\packages\MegaCore\hardware\avr\3.0.2\bootloaders\urboot\atmega2560\watchdog_1_s\external_oscillator\14745600_hz\115200_baud\uart0_rxe0_txe1\no-led"
и скопировал его в каталог из которого производится штатная запись бутлоадера из Arduino IDE, т.е., (\Arduino15\packages\MegaCore\hardware\avr\3.0.2\bootloaders\urboot\atmega2560\watchdog_1_s\autobaud\uart0_rxe0_txe1\led+b7). Этот светодиодик мне не нужен, да и нет его на моей плате… И будь оно не ладно, заработало … Пока правда вручную жму кнопочку РЕСЕТ в нужный момент (постараюсь попозже разобраться с авторесетом по DTR). Уже стало комфортнее :slight_smile: Не нужно переключать кабель между программатором и платой. Так что, ОГРОМНОЕ спасибо всем не равнодушным людям потратившим свое время!!!

C фьюзом D6 или D7 ?

Вы знаете, забыл посмотреть :frowning: Но, более чем уверен, что с 0xD7. Так как я после переноса файла Бутлодера, не меняя установок в пунктах меню, нажал “Записать загрузчик”.

поставил ядро 3.0.2, плата стандартная китайская, кварц 16 мегагерц, записал загрузчик через USBasp, залил блинк через компорт, всё работает штатно

Загрузчик:

avrdude: Version 7.2-arduino.1
         Copyright the AVRDUDE authors;
         see https://github.com/avrdudes/avrdude/blob/main/AUTHORS

         System wide configuration file is E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\avrdude.conf

         Using Port                    : usb
         Using Programmer              : usbasp
         AVR Part                      : ATmega2560
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PA0
         RESET disposition             : possible i/o
         RETRY pulse                   : SCK
         Serial program mode           : yes
         Parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                           Block Poll               Page                       Polled
           Memory Type Alias    Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom                 65    10     8    0 no       4096    8      0  9000  9000 0x00 0x00
           flash                  65    10   256    0 yes    262144  256   1024  4500  4500 0x00 0x00
           lfuse                   0     0     0    0 no          1    1      0  9000  9000 0x00 0x00
           hfuse                   0     0     0    0 no          1    1      0  9000  9000 0x00 0x00
           efuse                   0     0     0    0 no          1    1      0  9000  9000 0x00 0x00
           lock                    0     0     0    0 no          1    1      0  9000  9000 0x00 0x00
           signature               0     0     0    0 no          3    1      0     0     0 0x00 0x00
           calibration             0     0     0    0 no          1    1      0     0     0 0x00 0x00

         Programmer Type : usbasp
         Description     : USBasp ISP and TPI programmer
avrdude: auto set sck period (because given equals null)
avrdude: AVR device initialized and ready to accept instructions
avrdude: device signature = 0x1e9801 (probably m2560)
avrdude: Note: flash memory has been specified, an erase cycle will be performed.
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: auto set sck period (because given equals null)

avrdude: processing -U flash:w:E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2/bootloaders/urboot/atmega2560/watchdog_1_s/autobaud/uart0_rxe0_txe1/led+b7/urboot_atmega2560_pr_ee_ce.hex:i
avrdude: reading input file E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2/bootloaders/urboot/atmega2560/watchdog_1_s/autobaud/uart0_rxe0_txe1/led+b7/urboot_atmega2560_pr_ee_ce.hex for flash
         with 396 bytes in 2 sections within [0x3fe00, 0x3ffff]
         using 2 pages and 116 pad bytes
avrdude: writing 396 bytes flash ...
Writing | ################################################## | 100% 0.07s
avrdude: 396 bytes of flash written
avrdude: verifying flash memory against E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2/bootloaders/urboot/atmega2560/watchdog_1_s/autobaud/uart0_rxe0_txe1/led+b7/urboot_atmega2560_pr_ee_ce.hex
Reading | ################################################## | 100% 0.01s
avrdude: 396 bytes of flash verified

avrdude: processing -U lock:w:0xff:m
avrdude: reading input file 0xff for lock
         with 1 byte in 1 section within [0, 0]
avrdude: writing 1 byte lock ...
avrdude: 1 byte of lock written
avrdude: verifying lock memory against 0xff
avrdude: 1 byte of lock verified

avrdude done.  Thank you.


чесали же уже эту тему вроде, пока программатор не обновите для 2560, будет засада…
ща поищу…

вот гит

чесали тут

упс, у вас не USBasp…
тока заметил…

В логе нет инфо про фьюзы !

скорее всего фьюзы уже были правильные, поэтому прошивается только один байт

Если не сложно - считайте…
У ТС выставлялась загрузка с 0000 …

L - 0xF7
H - 0xD7
E - 0xFD
LB - 0xFF

И что тогда - ядро вставляет в 0x0000 любого скетча переход в загрузчик ???
Загрузчик то срабатывает ???

да, работает нормально
начало флэш - FFCE 2F01

Лучше бы листинг … в кодах навыка нет читать …

Disassembly of section .text:

00000000 <__vectors>:
__vectors():
   0:	0c 94 2f 01 	jmp	0x25e	; 0x25e <__ctors_end>
   4:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
   8:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
   c:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  10:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  14:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  18:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  1c:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
 
0000025e <__ctors_end>:
__dtors_end():
 25e:	11 24       	eor	r1, r1
 260:	1f be       	out	0x3f, r1	; 63
 262:	cf ef       	ldi	r28, 0xFF	; 255
 264:	d1 e2       	ldi	r29, 0x21	; 33
 266:	de bf       	out	0x3e, r29	; 62
 268:	cd bf       	out	0x3d, r28	; 61
 26a:	00 e0       	ldi	r16, 0x00	; 0
 26c:	0c bf       	out	0x3c, r16	; 60

Спойлер

C:\Temp\arduino_build_603441/BlinkWithoutDelay.ino.elf:     file format elf32-avr


Disassembly of section .text:

00000000 <__vectors>:
__vectors():
   0:	0c 94 2f 01 	jmp	0x25e	; 0x25e <__ctors_end>
   4:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
   8:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
   c:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  10:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  14:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  18:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  1c:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  20:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  24:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  28:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  2c:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  30:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  34:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  38:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  3c:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  40:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  44:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  48:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  4c:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  50:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  54:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  58:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  5c:	0c 94 45 01 	jmp	0x28a	; 0x28a <__vector_23>
  60:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  64:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  68:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  6c:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  70:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  74:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  78:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  7c:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  80:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  84:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  88:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  8c:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  90:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  94:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  98:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  9c:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  a0:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  a4:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  a8:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  ac:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  b0:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  b4:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  b8:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  bc:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  c0:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  c4:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  c8:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  cc:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  d0:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  d4:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  d8:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  dc:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>
  e0:	0c 94 43 01 	jmp	0x286	; 0x286 <__bad_interrupt>

000000e4 <__trampolines_start>:
__trampolines_start():
  e4:	0c 94 99 02 	jmp	0x532	; 0x532 <__LOCK_REGION_LENGTH__+0x132>
  e8:	0c 94 81 02 	jmp	0x502	; 0x502 <__LOCK_REGION_LENGTH__+0x102>
  ec:	0c 94 bd 02 	jmp	0x57a	; 0x57a <__LOCK_REGION_LENGTH__+0x17a>
  f0:	0c 94 ab 02 	jmp	0x556	; 0x556 <__LOCK_REGION_LENGTH__+0x156>
  f4:	0c 94 b9 02 	jmp	0x572	; 0x572 <__LOCK_REGION_LENGTH__+0x172>
  f8:	0c 94 8b 02 	jmp	0x516	; 0x516 <__LOCK_REGION_LENGTH__+0x116>
  fc:	0c 94 b1 02 	jmp	0x562	; 0x562 <__LOCK_REGION_LENGTH__+0x162>
 100:	0c 94 b5 02 	jmp	0x56a	; 0x56a <__LOCK_REGION_LENGTH__+0x16a>
 104:	0c 94 95 02 	jmp	0x52a	; 0x52a <__LOCK_REGION_LENGTH__+0x12a>
 108:	0c 94 65 02 	jmp	0x4ca	; 0x4ca <__LOCK_REGION_LENGTH__+0xca>
 10c:	0c 94 9d 02 	jmp	0x53a	; 0x53a <__LOCK_REGION_LENGTH__+0x13a>
 110:	0c 94 85 02 	jmp	0x50a	; 0x50a <__LOCK_REGION_LENGTH__+0x10a>
 114:	0c 94 a7 02 	jmp	0x54e	; 0x54e <__LOCK_REGION_LENGTH__+0x14e>
 118:	0c 94 7d 02 	jmp	0x4fa	; 0x4fa <__LOCK_REGION_LENGTH__+0xfa>
 11c:	0c 94 8f 02 	jmp	0x51e	; 0x51e <__LOCK_REGION_LENGTH__+0x11e>
 120:	0c 94 a3 02 	jmp	0x546	; 0x546 <__LOCK_REGION_LENGTH__+0x146>
 124:	0c 94 60 02 	jmp	0x4c0	; 0x4c0 <__LOCK_REGION_LENGTH__+0xc0>

00000128 <__trampolines_end>:
__trampolines_end():
 128:	00 00       	nop
 12a:	21 00       	.word	0x0021	; ????
 12c:	24 00       	.word	0x0024	; ????
 12e:	27 00       	.word	0x0027	; ????
 130:	2a 00       	.word	0x002a	; ????
 132:	2d 00       	.word	0x002d	; ????
 134:	30 00       	.word	0x0030	; ????
 136:	33 00       	.word	0x0033	; ????
 138:	01 01       	movw	r0, r2
 13a:	00 00       	nop
 13c:	04 01       	movw	r0, r8
 13e:	07 01       	movw	r0, r14
 140:	0a 01       	movw	r0, r20

00000142 <port_to_output_PGM>:
 142:	00 00 22 00 25 00 28 00 2b 00 2e 00 31 00 34 00     ..".%.(.+...1.4.
 152:	02 01 00 00 05 01 08 01 0b 01                       ..........

0000015c <digital_pin_to_port_PGM>:
 15c:	05 05 05 05 07 05 08 08 08 08 02 02 02 02 0a 0a     ................
 16c:	08 08 04 04 04 04 01 01 01 01 01 01 01 01 03 03     ................
 17c:	03 03 03 03 03 03 04 07 07 07 0c 0c 0c 0c 0c 0c     ................
 18c:	0c 0c 02 02 02 02 06 06 06 06 06 06 06 06 0b 0b     ................
 19c:	0b 0b 0b 0b 0b 0b 05 05 05 08 08 07 07 04 04 04     ................
 1ac:	0a 0a 0a 0a 0a 0a                                   ......

000001b2 <digital_pin_to_bit_mask_PGM>:
 1b2:	01 02 10 20 20 08 08 10 20 40 10 20 40 80 02 01     ...  ... @. @...
 1c2:	02 01 08 04 02 01 01 02 04 08 10 20 40 80 80 40     ........... @..@
 1d2:	20 10 08 04 02 01 80 04 02 01 80 40 20 10 08 04      ..........@ ...
 1e2:	02 01 08 04 02 01 01 02 04 08 10 20 40 80 01 02     ........... @...
 1f2:	04 08 10 20 40 80 04 40 80 04 80 08 10 10 20 40     ... @..@...... @
 202:	04 08 10 20 40 80                                   ... @.

00000208 <digital_pin_to_timer_PGM>:
 208:	00 00 0b 0c 03 0a 0d 0e 0f 09 08 04 05 02 00 00     ................
	...
 234:	13 12 11 00 00 00 00 00 00 00 00 00 00 00 00 00     ................
	...

0000025e <__ctors_end>:
__dtors_end():
 25e:	11 24       	eor	r1, r1
 260:	1f be       	out	0x3f, r1	; 63
 262:	cf ef       	ldi	r28, 0xFF	; 255
 264:	d1 e2       	ldi	r29, 0x21	; 33
 266:	de bf       	out	0x3e, r29	; 62
 268:	cd bf       	out	0x3d, r28	; 61
 26a:	00 e0       	ldi	r16, 0x00	; 0
 26c:	0c bf       	out	0x3c, r16	; 60

0000026e <__do_clear_bss>:
__do_clear_bss():
/home/jenkins-mingw32/workspace/avr-gcc-staging/label/Ubuntu14.04x64-mingw32/gcc-build/avr/avr6/libgcc/../../../../gcc/libgcc/config/avr/lib1funcs.S:2441
 26e:	22 e0       	ldi	r18, 0x02	; 2
/home/jenkins-mingw32/workspace/avr-gcc-staging/label/Ubuntu14.04x64-mingw32/gcc-build/avr/avr6/libgcc/../../../../gcc/libgcc/config/avr/lib1funcs.S:2442
 270:	a0 e0       	ldi	r26, 0x00	; 0
/home/jenkins-mingw32/workspace/avr-gcc-staging/label/Ubuntu14.04x64-mingw32/gcc-build/avr/avr6/libgcc/../../../../gcc/libgcc/config/avr/lib1funcs.S:2443
 272:	b2 e0       	ldi	r27, 0x02	; 2
/home/jenkins-mingw32/workspace/avr-gcc-staging/label/Ubuntu14.04x64-mingw32/gcc-build/avr/avr6/libgcc/../../../../gcc/libgcc/config/avr/lib1funcs.S:2444
 274:	01 c0       	rjmp	.+2      	; 0x278 <.do_clear_bss_start>

00000276 <.do_clear_bss_loop>:
/home/jenkins-mingw32/workspace/avr-gcc-staging/label/Ubuntu14.04x64-mingw32/gcc-build/avr/avr6/libgcc/../../../../gcc/libgcc/config/avr/lib1funcs.S:2446
 276:	1d 92       	st	X+, r1

00000278 <.do_clear_bss_start>:
/home/jenkins-mingw32/workspace/avr-gcc-staging/label/Ubuntu14.04x64-mingw32/gcc-build/avr/avr6/libgcc/../../../../gcc/libgcc/config/avr/lib1funcs.S:2448
 278:	af 30       	cpi	r26, 0x0F	; 15
/home/jenkins-mingw32/workspace/avr-gcc-staging/label/Ubuntu14.04x64-mingw32/gcc-build/avr/avr6/libgcc/../../../../gcc/libgcc/config/avr/lib1funcs.S:2449
 27a:	b2 07       	cpc	r27, r18
/home/jenkins-mingw32/workspace/avr-gcc-staging/label/Ubuntu14.04x64-mingw32/gcc-build/avr/avr6/libgcc/../../../../gcc/libgcc/config/avr/lib1funcs.S:2450
 27c:	e1 f7       	brne	.-8      	; 0x276 <.do_clear_bss_loop>
.do_clear_bss_start():
 27e:	0e 94 8f 01 	call	0x31e	; 0x31e <main>
 282:	0c 94 ca 02 	jmp	0x594	; 0x594 <_exit>

00000286 <__bad_interrupt>:
__vector_38():
 286:	0c 94 00 00 	jmp	0	; 0x0 <__vectors>

0000028a <__vector_23>:
__vector_23():
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:159
#if defined(__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__)
ISR(TIM0_OVF_vect)
#else
ISR(TIMER0_OVF_vect)
#endif
{
 28a:	1f 92       	push	r1
 28c:	0f 92       	push	r0
 28e:	0f b6       	in	r0, 0x3f	; 63
 290:	0f 92       	push	r0
 292:	11 24       	eor	r1, r1
 294:	2f 93       	push	r18
 296:	3f 93       	push	r19
 298:	8f 93       	push	r24
 29a:	9f 93       	push	r25
 29c:	af 93       	push	r26
 29e:	bf 93       	push	r27
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:167
  static unsigned char timer0_exact = 0;
#endif

  // copy these to local variables so they can be stored in registers
  // (volatile variables must be read from memory on every access, so this saves time)
  unsigned long m = timer0_millis;
 2a0:	80 91 05 02 	lds	r24, 0x0205	; 0x800205 <timer0_millis>
 2a4:	90 91 06 02 	lds	r25, 0x0206	; 0x800206 <timer0_millis+0x1>
 2a8:	a0 91 07 02 	lds	r26, 0x0207	; 0x800207 <timer0_millis+0x2>
 2ac:	b0 91 08 02 	lds	r27, 0x0208	; 0x800208 <timer0_millis+0x3>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:168
  unsigned char f = timer0_fract;
 2b0:	30 91 04 02 	lds	r19, 0x0204	; 0x800204 <timer0_fract>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:170

  f += FRACT_INC FRACT_INC_PLUS;
 2b4:	23 e0       	ldi	r18, 0x03	; 3
 2b6:	23 0f       	add	r18, r19
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:200
    ++f;
  }
#endif
#endif // CORRECT_EXACT_MILLIS

  if (f >= FRACT_MAX) {
 2b8:	2d 37       	cpi	r18, 0x7D	; 125
 2ba:	68 f1       	brcs	.+90     	; 0x316 <__vector_23+0x8c>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:201
    f -= FRACT_MAX;
 2bc:	26 e8       	ldi	r18, 0x86	; 134
 2be:	23 0f       	add	r18, r19
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:202
    m += MILLIS_INC + 1;
 2c0:	02 96       	adiw	r24, 0x02	; 2
 2c2:	a1 1d       	adc	r26, r1
 2c4:	b1 1d       	adc	r27, r1
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:208
  }
  else {
    m += MILLIS_INC;
  }

  timer0_fract = f;
 2c6:	20 93 04 02 	sts	0x0204, r18	; 0x800204 <timer0_fract>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:209
  timer0_millis = m;
 2ca:	80 93 05 02 	sts	0x0205, r24	; 0x800205 <timer0_millis>
 2ce:	90 93 06 02 	sts	0x0206, r25	; 0x800206 <timer0_millis+0x1>
 2d2:	a0 93 07 02 	sts	0x0207, r26	; 0x800207 <timer0_millis+0x2>
 2d6:	b0 93 08 02 	sts	0x0208, r27	; 0x800208 <timer0_millis+0x3>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:211
#ifndef CORRECT_EXACT_MICROS
  timer0_overflow_count++;
 2da:	80 91 00 02 	lds	r24, 0x0200	; 0x800200 <__DATA_REGION_ORIGIN__>
 2de:	90 91 01 02 	lds	r25, 0x0201	; 0x800201 <__DATA_REGION_ORIGIN__+0x1>
 2e2:	a0 91 02 02 	lds	r26, 0x0202	; 0x800202 <__DATA_REGION_ORIGIN__+0x2>
 2e6:	b0 91 03 02 	lds	r27, 0x0203	; 0x800203 <__DATA_REGION_ORIGIN__+0x3>
 2ea:	01 96       	adiw	r24, 0x01	; 1
 2ec:	a1 1d       	adc	r26, r1
 2ee:	b1 1d       	adc	r27, r1
 2f0:	80 93 00 02 	sts	0x0200, r24	; 0x800200 <__DATA_REGION_ORIGIN__>
 2f4:	90 93 01 02 	sts	0x0201, r25	; 0x800201 <__DATA_REGION_ORIGIN__+0x1>
 2f8:	a0 93 02 02 	sts	0x0202, r26	; 0x800202 <__DATA_REGION_ORIGIN__+0x2>
 2fc:	b0 93 03 02 	sts	0x0203, r27	; 0x800203 <__DATA_REGION_ORIGIN__+0x3>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:213
#endif
}
 300:	bf 91       	pop	r27
 302:	af 91       	pop	r26
 304:	9f 91       	pop	r25
 306:	8f 91       	pop	r24
 308:	3f 91       	pop	r19
 30a:	2f 91       	pop	r18
 30c:	0f 90       	pop	r0
 30e:	0f be       	out	0x3f, r0	; 63
 310:	0f 90       	pop	r0
 312:	1f 90       	pop	r1
 314:	18 95       	reti
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:205
  if (f >= FRACT_MAX) {
    f -= FRACT_MAX;
    m += MILLIS_INC + 1;
  }
  else {
    m += MILLIS_INC;
 316:	01 96       	adiw	r24, 0x01	; 1
 318:	a1 1d       	adc	r26, r1
 31a:	b1 1d       	adc	r27, r1
 31c:	d4 cf       	rjmp	.-88     	; 0x2c6 <__vector_23+0x3c>

0000031e <main>:
main():
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:945

void init()
{
  // this needs to be called before setup() or some functions won't
  // work there
  sei();
 31e:	78 94       	sei
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:957

  // On the ATmega168, timer 0 is also used for fast hardware pwm
  // (using phase-correct PWM would mean that timer 0 overflowed half as often
  // resulting in different millis() behavior on the ATmega8 and ATmega168)
#if defined(TCCR0A) && defined(WGM01)
  TCCR0A |= _BV(WGM01) | _BV(WGM00);
 320:	84 b5       	in	r24, 0x24	; 36
 322:	83 60       	ori	r24, 0x03	; 3
 324:	84 bd       	out	0x24, r24	; 36
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:972
  #if defined(WGM00) && defined(WGM01) // The ATmega8 doesn't have WGM00 and WGM01
    TCCR0 |= _BV(WGM01) | _BV(WGM00);
  #endif
#elif defined(TCCR0B) && defined(CS01) && defined(CS00)
  // This combination is for the standard 168/328/640/1280/1281/2560/2561
  TCCR0B |= _BV(CS01) | _BV(CS00);
 326:	85 b5       	in	r24, 0x25	; 37
 328:	83 60       	ori	r24, 0x03	; 3
 32a:	85 bd       	out	0x25, r24	; 37
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:984

// Enable timer 0 overflow interrupt
#if defined(TIMSK) && defined(TOIE0)
  TIMSK |= _BV(TOIE0);
#elif defined(TIMSK0) && defined(TOIE0)
  TIMSK0 |= _BV(TOIE0);
 32c:	80 91 6e 00 	lds	r24, 0x006E	; 0x80006e <__TEXT_REGION_LENGTH__+0x70006e>
 330:	81 60       	ori	r24, 0x01	; 1
 332:	80 93 6e 00 	sts	0x006E, r24	; 0x80006e <__TEXT_REGION_LENGTH__+0x70006e>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:995
// this is better for motors as it ensures an even waveform
// note, however, that fast pwm mode can achieve a frequency of up
// 8 MHz (with a 16 MHz clock) at 50% duty cycle

#if defined(TCCR1B) && defined(CS11) && defined(CS10)
  TCCR1B = _BV(CS11); // Set timer 1 prescale factor to 64
 336:	82 e0       	ldi	r24, 0x02	; 2
 338:	80 93 81 00 	sts	0x0081, r24	; 0x800081 <__TEXT_REGION_LENGTH__+0x700081>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:997
#if F_CPU >= 8000000L
  TCCR1B |= _BV(CS10);
 33c:	80 91 81 00 	lds	r24, 0x0081	; 0x800081 <__TEXT_REGION_LENGTH__+0x700081>
 340:	81 60       	ori	r24, 0x01	; 1
 342:	80 93 81 00 	sts	0x0081, r24	; 0x800081 <__TEXT_REGION_LENGTH__+0x700081>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:1006
#if F_CPU >= 8000000L
  TCCR1 |= _BV(CS10);
#endif
#endif
#if defined(TCCR1A) && defined(WGM10)
  TCCR1A |= _BV(WGM10); // Put timer 1 in 8-bit phase correct pwm mode
 346:	80 91 80 00 	lds	r24, 0x0080	; 0x800080 <__TEXT_REGION_LENGTH__+0x700080>
 34a:	81 60       	ori	r24, 0x01	; 1
 34c:	80 93 80 00 	sts	0x0080, r24	; 0x800080 <__TEXT_REGION_LENGTH__+0x700080>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:1013

// Set timer 2 prescale factor to 64
#if defined(TCCR2) && defined(CS22)
  TCCR2 |= _BV(CS22);
#elif defined(TCCR2B) && defined(CS22)
  TCCR2B |= _BV(CS22);
 350:	80 91 b1 00 	lds	r24, 0x00B1	; 0x8000b1 <__TEXT_REGION_LENGTH__+0x7000b1>
 354:	84 60       	ori	r24, 0x04	; 4
 356:	80 93 b1 00 	sts	0x00B1, r24	; 0x8000b1 <__TEXT_REGION_LENGTH__+0x7000b1>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:1022

// Configure timer 2 for phase correct pwm (8-bit)
#if defined(TCCR2) && defined(WGM20)
  TCCR2 |= _BV(WGM20);
#elif defined(TCCR2A) && defined(WGM20)
  TCCR2A |= _BV(WGM20);
 35a:	80 91 b0 00 	lds	r24, 0x00B0	; 0x8000b0 <__TEXT_REGION_LENGTH__+0x7000b0>
 35e:	81 60       	ori	r24, 0x01	; 1
 360:	80 93 b0 00 	sts	0x00B0, r24	; 0x8000b0 <__TEXT_REGION_LENGTH__+0x7000b0>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:1028
//#else
  // Timer 2 not finished (may not be present on this CPU)
#endif

#if defined(TCCR3B) && defined(CS31) && defined(WGM30)
  TCCR3B |= _BV(CS31) | _BV(CS30); // Set timer 3 prescale factor to 64
 364:	80 91 91 00 	lds	r24, 0x0091	; 0x800091 <__TEXT_REGION_LENGTH__+0x700091>
 368:	83 60       	ori	r24, 0x03	; 3
 36a:	80 93 91 00 	sts	0x0091, r24	; 0x800091 <__TEXT_REGION_LENGTH__+0x700091>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:1029
  TCCR3A |= _BV(WGM30);            // Put timer 3 in 8-bit phase correct pwm mode
 36e:	80 91 90 00 	lds	r24, 0x0090	; 0x800090 <__TEXT_REGION_LENGTH__+0x700090>
 372:	81 60       	ori	r24, 0x01	; 1
 374:	80 93 90 00 	sts	0x0090, r24	; 0x800090 <__TEXT_REGION_LENGTH__+0x700090>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:1038
  TCCR4B |= _BV(CS42) | _BV(CS41) | _BV(CS40); // Set timer 4 prescale factor to 64
  TCCR4D |= _BV(WGM40);                        // Put timer 4 in phase- and frequency-correct PWM mode
  TCCR4A |= _BV(PWM4A);                        // Enable PWM mode for comparator OCR4A
  TCCR4C |= _BV(PWM4D);                        // Enable PWM mode for comparator OCR4D
#elif defined(TCCR4B) && defined(CS41) && defined(WGM40)
  TCCR4B |= _BV(CS41) | _BV(CS40); // Set timer 4 prescale factor to 64
 378:	80 91 a1 00 	lds	r24, 0x00A1	; 0x8000a1 <__TEXT_REGION_LENGTH__+0x7000a1>
 37c:	83 60       	ori	r24, 0x03	; 3
 37e:	80 93 a1 00 	sts	0x00A1, r24	; 0x8000a1 <__TEXT_REGION_LENGTH__+0x7000a1>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:1039
  TCCR4A |= _BV(WGM40);            // Put timer 4 in 8-bit phase correct pwm mode
 382:	80 91 a0 00 	lds	r24, 0x00A0	; 0x8000a0 <__TEXT_REGION_LENGTH__+0x7000a0>
 386:	81 60       	ori	r24, 0x01	; 1
 388:	80 93 a0 00 	sts	0x00A0, r24	; 0x8000a0 <__TEXT_REGION_LENGTH__+0x7000a0>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:1043
#endif

#if defined(TCCR5B) && defined(CS51) && defined(WGM50)
  TCCR5B |= _BV(CS51) | _BV(CS50); // Set timer 5 prescale factor to 64
 38c:	80 91 21 01 	lds	r24, 0x0121	; 0x800121 <__TEXT_REGION_LENGTH__+0x700121>
 390:	83 60       	ori	r24, 0x03	; 3
 392:	80 93 21 01 	sts	0x0121, r24	; 0x800121 <__TEXT_REGION_LENGTH__+0x700121>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:1044
  TCCR5A |= _BV(WGM50);            // Put timer 5 in 8-bit phase correct pwm mode
 396:	80 91 20 01 	lds	r24, 0x0120	; 0x800120 <__TEXT_REGION_LENGTH__+0x700120>
 39a:	81 60       	ori	r24, 0x01	; 1
 39c:	80 93 20 01 	sts	0x0120, r24	; 0x800120 <__TEXT_REGION_LENGTH__+0x700120>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:1050
#endif

#if defined(ADCSRA)
  // set a2d prescaler so we are inside the desired 50-200 KHz range.
  #if F_CPU >= 16000000 // 16 MHz / 128 = 125 KHz
    ADCSRA = _BV(ADPS2) | _BV(ADPS1) | _BV(ADPS0) | _BV(ADEN);
 3a0:	87 e8       	ldi	r24, 0x87	; 135
 3a2:	80 93 7a 00 	sts	0x007A, r24	; 0x80007a <__TEXT_REGION_LENGTH__+0x70007a>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:1070
  // here so they can be used as normal digital i/o; they will be
  // reconnected in Serial.begin()
#if defined(UCSRB)
  UCSRB = 0;
#elif defined(UCSR0B)
  UCSR0B = 0;
 3a6:	10 92 c1 00 	sts	0x00C1, r1	; 0x8000c1 <__TEXT_REGION_LENGTH__+0x7000c1>
pinMode():
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:31
#include "wiring_private.h"
#include "pins_arduino.h"

void pinMode(uint8_t pin, uint8_t mode)
{
  uint8_t bit = digitalPinToBitMask(pin);
 3aa:	cf eb       	ldi	r28, 0xBF	; 191
 3ac:	d1 e0       	ldi	r29, 0x01	; 1
 3ae:	fe 01       	movw	r30, r28
 3b0:	24 91       	lpm	r18, Z
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:32
  uint8_t port = digitalPinToPort(pin);
 3b2:	09 e6       	ldi	r16, 0x69	; 105
 3b4:	11 e0       	ldi	r17, 0x01	; 1
 3b6:	f8 01       	movw	r30, r16
 3b8:	84 91       	lpm	r24, Z
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:35
  volatile uint8_t *reg, *out;

  if (port == NOT_A_PIN) return;
 3ba:	88 23       	and	r24, r24
 3bc:	99 f0       	breq	.+38     	; 0x3e4 <main+0xc6>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:38

  // JWS: can I let the optimizer do this?
  reg = portModeRegister(port);
 3be:	90 e0       	ldi	r25, 0x00	; 0
 3c0:	88 0f       	add	r24, r24
 3c2:	99 1f       	adc	r25, r25
 3c4:	fc 01       	movw	r30, r24
 3c6:	e8 5d       	subi	r30, 0xD8	; 216
 3c8:	fe 4f       	sbci	r31, 0xFE	; 254
 3ca:	a5 91       	lpm	r26, Z+
 3cc:	b4 91       	lpm	r27, Z
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:39
  out = portOutputRegister(port);
 3ce:	fc 01       	movw	r30, r24
 3d0:	ee 5b       	subi	r30, 0xBE	; 190
 3d2:	fe 4f       	sbci	r31, 0xFE	; 254
 3d4:	85 91       	lpm	r24, Z+
 3d6:	94 91       	lpm	r25, Z
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:54
    cli();
    *reg &= ~bit;
    *out |= bit;
    SREG = oldSREG;
  } else {
    uint8_t oldSREG = SREG;
 3d8:	8f b7       	in	r24, 0x3f	; 63
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:55
    cli();
 3da:	f8 94       	cli
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:56
    *reg |= bit;
 3dc:	9c 91       	ld	r25, X
 3de:	29 2b       	or	r18, r25
 3e0:	2c 93       	st	X, r18
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:57
    SREG = oldSREG;
 3e2:	8f bf       	out	0x3f, r24	; 63
digitalWrite():
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:189
  }
}

void digitalWrite(uint8_t pin, uint8_t val)
{
  uint8_t timer = digitalPinToTimer(pin);
 3e4:	95 e1       	ldi	r25, 0x15	; 21
 3e6:	c9 2e       	mov	r12, r25
 3e8:	92 e0       	ldi	r25, 0x02	; 2
 3ea:	d9 2e       	mov	r13, r25
main():
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/main.cpp:47
  
  setup();
    
  for (;;) {
    loop();
    if (serialEventRun) serialEventRun();
 3ec:	20 e0       	ldi	r18, 0x00	; 0
 3ee:	e2 2e       	mov	r14, r18
 3f0:	20 e0       	ldi	r18, 0x00	; 0
 3f2:	f2 2e       	mov	r15, r18
loop():
E:\arduino-WKD\portable\sketchbook\BlinkWithoutDelay/BlinkWithoutDelay.ino:63
    // save the last time you blinked the LED
    previousMillis = currentMillis;

    // if the LED is off turn it on and vice-versa:
    if (ledState == LOW) {
      ledState = HIGH;
 3f4:	aa 24       	eor	r10, r10
 3f6:	a3 94       	inc	r10
 3f8:	b1 2c       	mov	r11, r1
millis():
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:218
}

unsigned long millis()
{
  unsigned long m;
  uint8_t oldSREG = SREG;
 3fa:	2f b7       	in	r18, 0x3f	; 63
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:222

  // disable interrupts while we read timer0_millis or we might get an
  // inconsistent value (e.g. in the middle of a write to timer0_millis)
  cli();
 3fc:	f8 94       	cli
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:223
  m = timer0_millis;
 3fe:	80 91 05 02 	lds	r24, 0x0205	; 0x800205 <timer0_millis>
 402:	90 91 06 02 	lds	r25, 0x0206	; 0x800206 <timer0_millis+0x1>
 406:	a0 91 07 02 	lds	r26, 0x0207	; 0x800207 <timer0_millis+0x2>
 40a:	b0 91 08 02 	lds	r27, 0x0208	; 0x800208 <timer0_millis+0x3>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring.c:224
  SREG = oldSREG;
 40e:	2f bf       	out	0x3f, r18	; 63
loop():
E:\arduino-WKD\portable\sketchbook\BlinkWithoutDelay/BlinkWithoutDelay.ino:57
  // check to see if it's time to blink the LED; that is, if the difference
  // between the current time and last time you blinked the LED is bigger than
  // the interval at which you want to blink the LED.
  unsigned long currentMillis = millis();

  if (currentMillis - previousMillis >= interval) {
 410:	40 91 0b 02 	lds	r20, 0x020B	; 0x80020b <previousMillis>
 414:	50 91 0c 02 	lds	r21, 0x020C	; 0x80020c <previousMillis+0x1>
 418:	60 91 0d 02 	lds	r22, 0x020D	; 0x80020d <previousMillis+0x2>
 41c:	70 91 0e 02 	lds	r23, 0x020E	; 0x80020e <previousMillis+0x3>
 420:	3c 01       	movw	r6, r24
 422:	4d 01       	movw	r8, r26
 424:	64 1a       	sub	r6, r20
 426:	75 0a       	sbc	r7, r21
 428:	86 0a       	sbc	r8, r22
 42a:	97 0a       	sbc	r9, r23
 42c:	b4 01       	movw	r22, r8
 42e:	a3 01       	movw	r20, r6
 430:	48 3e       	cpi	r20, 0xE8	; 232
 432:	53 40       	sbci	r21, 0x03	; 3
 434:	61 05       	cpc	r22, r1
 436:	71 05       	cpc	r23, r1
 438:	08 f4       	brcc	.+2      	; 0x43c <__LOCK_REGION_LENGTH__+0x3c>
 43a:	58 c0       	rjmp	.+176    	; 0x4ec <__LOCK_REGION_LENGTH__+0xec>
E:\arduino-WKD\portable\sketchbook\BlinkWithoutDelay/BlinkWithoutDelay.ino:59
    // save the last time you blinked the LED
    previousMillis = currentMillis;
 43c:	80 93 0b 02 	sts	0x020B, r24	; 0x80020b <previousMillis>
 440:	90 93 0c 02 	sts	0x020C, r25	; 0x80020c <previousMillis+0x1>
 444:	a0 93 0d 02 	sts	0x020D, r26	; 0x80020d <previousMillis+0x2>
 448:	b0 93 0e 02 	sts	0x020E, r27	; 0x80020e <previousMillis+0x3>
E:\arduino-WKD\portable\sketchbook\BlinkWithoutDelay/BlinkWithoutDelay.ino:62

    // if the LED is off turn it on and vice-versa:
    if (ledState == LOW) {
 44c:	80 91 09 02 	lds	r24, 0x0209	; 0x800209 <ledState>
 450:	90 91 0a 02 	lds	r25, 0x020A	; 0x80020a <ledState+0x1>
 454:	89 2b       	or	r24, r25
 456:	09 f0       	breq	.+2      	; 0x45a <__LOCK_REGION_LENGTH__+0x5a>
 458:	2e c0       	rjmp	.+92     	; 0x4b6 <__LOCK_REGION_LENGTH__+0xb6>
E:\arduino-WKD\portable\sketchbook\BlinkWithoutDelay/BlinkWithoutDelay.ino:63
      ledState = HIGH;
 45a:	b0 92 0a 02 	sts	0x020A, r11	; 0x80020a <ledState+0x1>
 45e:	a0 92 09 02 	sts	0x0209, r10	; 0x800209 <ledState>
digitalWrite():
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:189
 462:	f6 01       	movw	r30, r12
 464:	84 91       	lpm	r24, Z
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:190
  uint8_t bit = digitalPinToBitMask(pin);
 466:	fe 01       	movw	r30, r28
 468:	24 91       	lpm	r18, Z
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:191
  uint8_t port = digitalPinToPort(pin);
 46a:	f8 01       	movw	r30, r16
 46c:	94 91       	lpm	r25, Z
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:194
  volatile uint8_t *out;

  if (port == NOT_A_PIN) return;
 46e:	99 23       	and	r25, r25
 470:	09 f4       	brne	.+2      	; 0x474 <__LOCK_REGION_LENGTH__+0x74>
 472:	3c c0       	rjmp	.+120    	; 0x4ec <__LOCK_REGION_LENGTH__+0xec>
loop():
E:\arduino-WKD\portable\sketchbook\BlinkWithoutDelay/BlinkWithoutDelay.ino:69
    } else {
      ledState = LOW;
    }

    // set the LED with the ledState of the variable:
    digitalWrite(ledPin, ledState);
 474:	30 91 09 02 	lds	r19, 0x0209	; 0x800209 <ledState>
digitalWrite():
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:198

  // If the pin that support PWM output, we need to turn it off
  // before doing a digital write.
  if (timer != NOT_ON_TIMER) turnOffPWM(timer);
 478:	88 23       	and	r24, r24
 47a:	39 f1       	breq	.+78     	; 0x4ca <__LOCK_REGION_LENGTH__+0xca>
turnOffPWM():
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:77
//
//static inline void turnOffPWM(uint8_t timer) __attribute__ ((always_inline));
//static inline void turnOffPWM(uint8_t timer)
static void turnOffPWM(uint8_t timer)
{
  switch (timer)
 47c:	82 50       	subi	r24, 0x02	; 2
 47e:	82 31       	cpi	r24, 0x12	; 18
 480:	20 f5       	brcc	.+72     	; 0x4ca <__LOCK_REGION_LENGTH__+0xca>
 482:	e8 2f       	mov	r30, r24
 484:	f0 e0       	ldi	r31, 0x00	; 0
 486:	88 27       	eor	r24, r24
 488:	e7 5b       	subi	r30, 0xB7	; 183
 48a:	fd 4f       	sbci	r31, 0xFD	; 253
 48c:	8f 4f       	sbci	r24, 0xFF	; 255
 48e:	0c 94 c2 02 	jmp	0x584	; 0x584 <__tablejump2__>
 492:	b9 02       	muls	r27, r25
 494:	bd 02       	muls	r27, r29
 496:	60 02       	muls	r22, r16
 498:	7d 02       	muls	r23, r29
 49a:	81 02       	muls	r24, r17
 49c:	65 02       	muls	r22, r21
 49e:	85 02       	muls	r24, r21
 4a0:	8b 02       	muls	r24, r27
 4a2:	8f 02       	muls	r24, r31
 4a4:	95 02       	muls	r25, r21
 4a6:	99 02       	muls	r25, r25
 4a8:	9d 02       	muls	r25, r29
 4aa:	a3 02       	muls	r26, r19
 4ac:	a7 02       	muls	r26, r23
 4ae:	65 02       	muls	r22, r21
 4b0:	ab 02       	muls	r26, r27
 4b2:	b1 02       	muls	r27, r17
 4b4:	b5 02       	muls	r27, r21
loop():
E:\arduino-WKD\portable\sketchbook\BlinkWithoutDelay/BlinkWithoutDelay.ino:65

    // if the LED is off turn it on and vice-versa:
    if (ledState == LOW) {
      ledState = HIGH;
    } else {
      ledState = LOW;
 4b6:	10 92 0a 02 	sts	0x020A, r1	; 0x80020a <ledState+0x1>
 4ba:	10 92 09 02 	sts	0x0209, r1	; 0x800209 <ledState>
 4be:	d1 cf       	rjmp	.-94     	; 0x462 <__LOCK_REGION_LENGTH__+0x62>
turnOffPWM():
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:82
  {
    // Timer1
    #if defined(TCCR1A) && defined(COM1A1)
      case TIMER1A:
        TCCR1A &= ~_BV(COM1A1);
 4c0:	80 91 80 00 	lds	r24, 0x0080	; 0x800080 <__TEXT_REGION_LENGTH__+0x700080>
 4c4:	8f 77       	andi	r24, 0x7F	; 127
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:92
        TCCR1A &= ~_BV(COM1B1);
        break;
    #endif
    #if defined(TCCR1A) && defined(COM1C1)
      case TIMER1C:
        TCCR1A &= ~_BV(COM1C1);
 4c6:	80 93 80 00 	sts	0x0080, r24	; 0x800080 <__TEXT_REGION_LENGTH__+0x700080>
digitalWrite():
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:200

  // If the pin that support PWM output, we need to turn it off
  // before doing a digital write.
  if (timer != NOT_ON_TIMER) turnOffPWM(timer);

  out = portOutputRegister(port);
 4ca:	e9 2f       	mov	r30, r25
 4cc:	f0 e0       	ldi	r31, 0x00	; 0
 4ce:	ee 0f       	add	r30, r30
 4d0:	ff 1f       	adc	r31, r31
 4d2:	ee 5b       	subi	r30, 0xBE	; 190
 4d4:	fe 4f       	sbci	r31, 0xFE	; 254
 4d6:	a5 91       	lpm	r26, Z+
 4d8:	b4 91       	lpm	r27, Z
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:202

  uint8_t oldSREG = SREG;
 4da:	8f b7       	in	r24, 0x3f	; 63
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:203
  cli();
 4dc:	f8 94       	cli
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:206

  if (val == LOW) {
    *out &= ~bit;
 4de:	9c 91       	ld	r25, X
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:205
  out = portOutputRegister(port);

  uint8_t oldSREG = SREG;
  cli();

  if (val == LOW) {
 4e0:	31 11       	cpse	r19, r1
 4e2:	4e c0       	rjmp	.+156    	; 0x580 <__LOCK_REGION_LENGTH__+0x180>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:206
    *out &= ~bit;
 4e4:	20 95       	com	r18
 4e6:	29 23       	and	r18, r25
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:208
  } else {
    *out |= bit;
 4e8:	2c 93       	st	X, r18
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:211
  }

  SREG = oldSREG;
 4ea:	8f bf       	out	0x3f, r24	; 63
main():
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/main.cpp:47
 4ec:	e1 14       	cp	r14, r1
 4ee:	f1 04       	cpc	r15, r1
 4f0:	09 f4       	brne	.+2      	; 0x4f4 <__LOCK_REGION_LENGTH__+0xf4>
 4f2:	83 cf       	rjmp	.-250    	; 0x3fa <main+0xdc>
 4f4:	0e 94 00 00 	call	0	; 0x0 <__vectors>
 4f8:	80 cf       	rjmp	.-256    	; 0x3fa <main+0xdc>
turnOffPWM():
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:87
        TCCR1A &= ~_BV(COM1A1);
        break;
    #endif
    #if defined(TCCR1A) && defined(COM1B1)
      case TIMER1B:
        TCCR1A &= ~_BV(COM1B1);
 4fa:	80 91 80 00 	lds	r24, 0x0080	; 0x800080 <__TEXT_REGION_LENGTH__+0x700080>
 4fe:	8f 7d       	andi	r24, 0xDF	; 223
 500:	e2 cf       	rjmp	.-60     	; 0x4c6 <__LOCK_REGION_LENGTH__+0xc6>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:92
        break;
    #endif
    #if defined(TCCR1A) && defined(COM1C1)
      case TIMER1C:
        TCCR1A &= ~_BV(COM1C1);
 502:	80 91 80 00 	lds	r24, 0x0080	; 0x800080 <__TEXT_REGION_LENGTH__+0x700080>
 506:	87 7f       	andi	r24, 0xF7	; 247
 508:	de cf       	rjmp	.-68     	; 0x4c6 <__LOCK_REGION_LENGTH__+0xc6>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:104
        TCCR2 &= ~_BV(COM21);
        break;
    #endif
    #if defined(TCCR2A) && defined(COM2A1)
      case TIMER2A:
        TCCR2A &= ~_BV(COM2A1);
 50a:	80 91 b0 00 	lds	r24, 0x00B0	; 0x8000b0 <__TEXT_REGION_LENGTH__+0x7000b0>
 50e:	8f 77       	andi	r24, 0x7F	; 127
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:109
        break;
    #endif
    #if defined(TCCR2A) && defined(COM2B1)
      case TIMER2B:
        TCCR2A &= ~_BV(COM2B1);
 510:	80 93 b0 00 	sts	0x00B0, r24	; 0x8000b0 <__TEXT_REGION_LENGTH__+0x7000b0>
 514:	da cf       	rjmp	.-76     	; 0x4ca <__LOCK_REGION_LENGTH__+0xca>
 516:	80 91 b0 00 	lds	r24, 0x00B0	; 0x8000b0 <__TEXT_REGION_LENGTH__+0x7000b0>
 51a:	8f 7d       	andi	r24, 0xDF	; 223
 51c:	f9 cf       	rjmp	.-14     	; 0x510 <__LOCK_REGION_LENGTH__+0x110>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:116
    #endif

    // Timer3
    #if defined(TCCR3A) && defined(COM3A1)
      case TIMER3A:
        TCCR3A &= ~_BV(COM3A1);
 51e:	80 91 90 00 	lds	r24, 0x0090	; 0x800090 <__TEXT_REGION_LENGTH__+0x700090>
 522:	8f 77       	andi	r24, 0x7F	; 127
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:126
        TCCR3A &= ~_BV(COM3B1);
        break;
    #endif
    #if defined(TCCR3A) && defined(COM3C1)
      case TIMER3C:
        TCCR3A &= ~_BV(COM3C1);
 524:	80 93 90 00 	sts	0x0090, r24	; 0x800090 <__TEXT_REGION_LENGTH__+0x700090>
 528:	d0 cf       	rjmp	.-96     	; 0x4ca <__LOCK_REGION_LENGTH__+0xca>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:121
        TCCR3A &= ~_BV(COM3A1);
        break;
    #endif
    #if defined(TCCR3A) && defined(COM3B1)
      case TIMER3B:
        TCCR3A &= ~_BV(COM3B1);
 52a:	80 91 90 00 	lds	r24, 0x0090	; 0x800090 <__TEXT_REGION_LENGTH__+0x700090>
 52e:	8f 7d       	andi	r24, 0xDF	; 223
 530:	f9 cf       	rjmp	.-14     	; 0x524 <__LOCK_REGION_LENGTH__+0x124>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:126
        break;
    #endif
    #if defined(TCCR3A) && defined(COM3C1)
      case TIMER3C:
        TCCR3A &= ~_BV(COM3C1);
 532:	80 91 90 00 	lds	r24, 0x0090	; 0x800090 <__TEXT_REGION_LENGTH__+0x700090>
 536:	87 7f       	andi	r24, 0xF7	; 247
 538:	f5 cf       	rjmp	.-22     	; 0x524 <__LOCK_REGION_LENGTH__+0x124>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:133
    #endif

    // Timer4
    #if defined(TCCR4A) && defined(COM4A1)
      case TIMER4A:
        TCCR4A &= ~_BV(COM4A1);
 53a:	80 91 a0 00 	lds	r24, 0x00A0	; 0x8000a0 <__TEXT_REGION_LENGTH__+0x7000a0>
 53e:	8f 77       	andi	r24, 0x7F	; 127
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:143
        TCCR4A &= ~_BV(COM4B1);
        break;
    #endif
    #if defined(TCCR4A) && defined(COM4C1)
      case TIMER4C:
        TCCR4A &= ~_BV(COM4C1);
 540:	80 93 a0 00 	sts	0x00A0, r24	; 0x8000a0 <__TEXT_REGION_LENGTH__+0x7000a0>
 544:	c2 cf       	rjmp	.-124    	; 0x4ca <__LOCK_REGION_LENGTH__+0xca>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:138
        TCCR4A &= ~_BV(COM4A1);
        break;
    #endif
    #if defined(TCCR4A) && defined(COM4B1)
      case  TIMER4B:
        TCCR4A &= ~_BV(COM4B1);
 546:	80 91 a0 00 	lds	r24, 0x00A0	; 0x8000a0 <__TEXT_REGION_LENGTH__+0x7000a0>
 54a:	8f 7d       	andi	r24, 0xDF	; 223
 54c:	f9 cf       	rjmp	.-14     	; 0x540 <__LOCK_REGION_LENGTH__+0x140>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:143
        break;
    #endif
    #if defined(TCCR4A) && defined(COM4C1)
      case TIMER4C:
        TCCR4A &= ~_BV(COM4C1);
 54e:	80 91 a0 00 	lds	r24, 0x00A0	; 0x8000a0 <__TEXT_REGION_LENGTH__+0x7000a0>
 552:	87 7f       	andi	r24, 0xF7	; 247
 554:	f5 cf       	rjmp	.-22     	; 0x540 <__LOCK_REGION_LENGTH__+0x140>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:155
    #endif

    // Timer5
    #if defined(TCCR5A)
      case TIMER5A:
        TCCR5A &= ~_BV(COM5A1);
 556:	80 91 20 01 	lds	r24, 0x0120	; 0x800120 <__TEXT_REGION_LENGTH__+0x700120>
 55a:	8f 77       	andi	r24, 0x7F	; 127
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:161
        break;
      case TIMER5B:
        TCCR5A &= ~_BV(COM5B1);
        break;
      case TIMER5C:
        TCCR5A &= ~_BV(COM5C1);
 55c:	80 93 20 01 	sts	0x0120, r24	; 0x800120 <__TEXT_REGION_LENGTH__+0x700120>
 560:	b4 cf       	rjmp	.-152    	; 0x4ca <__LOCK_REGION_LENGTH__+0xca>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:158
    #if defined(TCCR5A)
      case TIMER5A:
        TCCR5A &= ~_BV(COM5A1);
        break;
      case TIMER5B:
        TCCR5A &= ~_BV(COM5B1);
 562:	80 91 20 01 	lds	r24, 0x0120	; 0x800120 <__TEXT_REGION_LENGTH__+0x700120>
 566:	8f 7d       	andi	r24, 0xDF	; 223
 568:	f9 cf       	rjmp	.-14     	; 0x55c <__LOCK_REGION_LENGTH__+0x15c>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:161
        break;
      case TIMER5C:
        TCCR5A &= ~_BV(COM5C1);
 56a:	80 91 20 01 	lds	r24, 0x0120	; 0x800120 <__TEXT_REGION_LENGTH__+0x700120>
 56e:	87 7f       	andi	r24, 0xF7	; 247
 570:	f5 cf       	rjmp	.-22     	; 0x55c <__LOCK_REGION_LENGTH__+0x15c>
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:176
        TCCR0 &= ~_BV(COM01);
        break;
    #endif
    #if defined(TCCR0A) && defined(COM0A1)
      case TIMER0A:
        TCCR0A &= ~_BV(COM0A1);
 572:	84 b5       	in	r24, 0x24	; 36
 574:	8f 77       	andi	r24, 0x7F	; 127
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:181
        break;
    #endif
    #if defined(TCCR0A) && defined(COM0B1)
      case TIMER0B:
        TCCR0A &= ~_BV(COM0B1);
 576:	84 bd       	out	0x24, r24	; 36
 578:	a8 cf       	rjmp	.-176    	; 0x4ca <__LOCK_REGION_LENGTH__+0xca>
 57a:	84 b5       	in	r24, 0x24	; 36
 57c:	8f 7d       	andi	r24, 0xDF	; 223
 57e:	fb cf       	rjmp	.-10     	; 0x576 <__LOCK_REGION_LENGTH__+0x176>
digitalWrite():
E:\arduino-WKD\portable\packages\MegaCore\hardware\avr\3.0.2\cores\MCUdude_corefiles/wiring_digital.c:208
  cli();

  if (val == LOW) {
    *out &= ~bit;
  } else {
    *out |= bit;
 580:	29 2b       	or	r18, r25
 582:	b2 cf       	rjmp	.-156    	; 0x4e8 <__LOCK_REGION_LENGTH__+0xe8>

00000584 <__tablejump2__>:
__tablejump2__():
/home/jenkins-mingw32/workspace/avr-gcc-staging/label/Ubuntu14.04x64-mingw32/gcc-build/avr/avr6/libgcc/../../../../gcc/libgcc/config/avr/lib1funcs.S:2296
 584:	ee 0f       	add	r30, r30
/home/jenkins-mingw32/workspace/avr-gcc-staging/label/Ubuntu14.04x64-mingw32/gcc-build/avr/avr6/libgcc/../../../../gcc/libgcc/config/avr/lib1funcs.S:2297
 586:	ff 1f       	adc	r31, r31
/home/jenkins-mingw32/workspace/avr-gcc-staging/label/Ubuntu14.04x64-mingw32/gcc-build/avr/avr6/libgcc/../../../../gcc/libgcc/config/avr/lib1funcs.S:2300
 588:	88 1f       	adc	r24, r24
/home/jenkins-mingw32/workspace/avr-gcc-staging/label/Ubuntu14.04x64-mingw32/gcc-build/avr/avr6/libgcc/../../../../gcc/libgcc/config/avr/lib1funcs.S:2301
 58a:	8b bf       	out	0x3b, r24	; 59
/home/jenkins-mingw32/workspace/avr-gcc-staging/label/Ubuntu14.04x64-mingw32/gcc-build/avr/avr6/libgcc/../../../../gcc/libgcc/config/avr/lib1funcs.S:2312
 58c:	07 90       	elpm	r0, Z+
/home/jenkins-mingw32/workspace/avr-gcc-staging/label/Ubuntu14.04x64-mingw32/gcc-build/avr/avr6/libgcc/../../../../gcc/libgcc/config/avr/lib1funcs.S:2313
 58e:	f6 91       	elpm	r31, Z
/home/jenkins-mingw32/workspace/avr-gcc-staging/label/Ubuntu14.04x64-mingw32/gcc-build/avr/avr6/libgcc/../../../../gcc/libgcc/config/avr/lib1funcs.S:2314
 590:	e0 2d       	mov	r30, r0
/home/jenkins-mingw32/workspace/avr-gcc-staging/label/Ubuntu14.04x64-mingw32/gcc-build/avr/avr6/libgcc/../../../../gcc/libgcc/config/avr/lib1funcs.S:2319
 592:	19 94       	eijmp

00000594 <_exit>:
exit():
/home/jenkins-mingw32/workspace/avr-gcc-staging/label/Ubuntu14.04x64-mingw32/gcc-build/avr/avr6/libgcc/../../../../gcc/libgcc/config/avr/lib1funcs.S:2278
 594:	f8 94       	cli

00000596 <__stop_program>:
__stop_program():
/home/jenkins-mingw32/workspace/avr-gcc-staging/label/Ubuntu14.04x64-mingw32/gcc-build/avr/avr6/libgcc/../../../../gcc/libgcc/config/avr/lib1funcs.S:2280
 596:	ff cf       	rjmp	.-2      	; 0x596 <__stop_program>