Compiler slowing down processor(?)

Go To Last Post
22 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hello!

Hope someone in here can enlighten me! I have a small homebuild computer with an Atmega16 I am using for some...eh stuff. When I compile the code from my Mac (avr-gcc version 4.1.1 on OSX 10.6.8) it runs just fine. When I compile the same code with avr-gcc 4.5.3 on Ubuntu, the processor runs pretty slow. The fusebits seems right when I read them.

The computer in this state is doing only one thing, why I have some "stupid whiles" in form of _delay_ms(); in it. Can it be that this is calculated differently in the different versions of avr-gcc?

The MCU has an external 16Mhz crystal.

Hope someone can help!

Attachment(s): 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

What's important here is not the code but (a) how you invoke the compiler and (b) the version of the compiler.

For (b) I would have thought anything would be better than 4.1.1 (really?) so it really has to be (a). Amongst other things what -O value in each case?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:
the processor runs pretty slow.
And how do you know that it is running slowly?

Regards,
Steve A.

The Board helps those that help themselves.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

clawson wrote:
What's important here is not the code but (a) how you invoke the compiler and (b) the version of the compiler.

For (b) I would have thought anything would be better than 4.1.1 (really?) so it really has to be (a). Amongst other things what -O value in each case?

Thanks Clawson!

The funny thing is that I am using the same makefile in both cases. As seen the compiled file is actually bigger from avr-gcc 4.5.3.

This is the output from Mac OSX with avr-gcc 4.1.1:

avr-gcc -Wall -Os -DF_CPU=16000000 -mmcu=atmega16 -c main.c -o main.o
avr-gcc -Wall -Os -DF_CPU=16000000 -mmcu=atmega16 -o main.elf main.o -lm
rm -f main.hex
avr-objcopy -j .text -j .data -O ihex main.elf main.hex
xxx-xxxs-macbook:SL1 xxxxxx$ make flash
avrdude -c usbasp -P /dev/ttys000 -p atmega16 -U flash:w:main.hex:i

avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e9403
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: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: reading input file "main.hex"
avrdude: writing flash (2798 bytes):

Writing | ################################################## | 100% 1.80s



avrdude: 2798 bytes of flash written
avrdude: verifying flash memory against main.hex:
avrdude: load data flash data from input file main.hex:
avrdude: input file main.hex contains 2798 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 1.36s



avrdude: verifying ...
avrdude: 2798 bytes of flash verified

avrdude: safemode: Fuses OK

avrdude done.  Thank you.

And this is from Ubuntu avr-gcc 4.5.3 (the one that runs slow):

 avr-gcc -Wall -Os -DF_CPU=16000000 -mmcu=atmega16 -c main.c -o main.o
avr-gcc -Wall -Os -DF_CPU=16000000 -mmcu=atmega16 -o main.elf main.o -lm
rm -f main.hex
avr-objcopy -j .text -j .data -O ihex main.elf main.hex
luffe@luffe-Satellite-Pro-M30:~/Dropbox/lunastone shared/Projects/Secret Lab mini computer/kode/SL1$ sudo make flash
avrdude -c usbasp -P /dev/ttys000 -p atmega16 -U flash:w:main.hex:i

avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e9403
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: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: reading input file "main.hex"
avrdude: writing flash (2976 bytes):

Writing | ################################################## | 100% 1.71s



avrdude: 2976 bytes of flash written
avrdude: verifying flash memory against main.hex:
avrdude: load data flash data from input file main.hex:
avrdude: input file main.hex contains 2976 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 1.59s



avrdude: verifying ...
avrdude: 2976 bytes of flash verified

avrdude: safemode: Fuses OK

avrdude done.  Thank you.
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Koshchi wrote:
Quote:
the processor runs pretty slow.
And how do you know that it is running slowly?

There is a display attached to the computer and I have an oscilloscope hooked up (it's not fast enough to determine the clock speed, but the speed of the communication to the external node, and the response of the display is a lot slower)

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

By the way! If I compile it with avr-gcc on Mac OSX and there after "make flash" from Ubuntu it works fine so it must be something in the compilation process in it self. Hmm..maybe the header files, if they are different versions(?) I think I will check that..

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:
The fusebits seems right when I read them.

Why not tell us the LFUSE and HFUSE values?

My money is on the AVR not running on the crystal.

David.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:

My money is on the AVR not running on the crystal.

But that would imply two separate chips, and two separate setups, right? Not just two separate compilers.

Or the separate builds do a different fuse setup as part of a complete ISP sequence?

You can put lipstick on a pig, but it is still a pig.

I've never met a pig I didn't like, as long as you have some salt and pepper.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

david.prentice wrote:
Quote:
The fusebits seems right when I read them.

Why not tell us the LFUSE and HFUSE values?

My money is on the AVR not running on the crystal.

David.

I have attached the makefile. This is the fuses:

FUSES      = -U hfuse:w:0xc9:m -U lfuse:w:0xbf:m
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Well here it is ;)

# Name: Makefile
# Author: <insert your name here>
# Copyright: <insert your copyright message here>
# License: <insert your license reference here>

# This is a prototype Makefile. Modify it according to your needs.
# You should at least check the settings for
# DEVICE ....... The AVR device you compile for
# CLOCK ........ Target AVR clock rate in Hertz
# OBJECTS ...... The object files created from your source files. This list is
# usually the same as the list of source files with suffix ".o".
# PROGRAMMER ... Options to avrdude which define the hardware you use for
# uploading to the AVR and the interface where this hardware
# is connected.
# FUSES ........ Parameters for avrdude to flash the fuses appropriately.

DEVICE = atmega16
CLOCK = 16000000
PROGRAMMER = -c usbasp -P /dev/ttys000
OBJECTS = main.o
FUSES = -U hfuse:w:0xc9:m -U lfuse:w:0xbf:m
# ATMega8 fuse bits (fuse bits for other devices are different!):
# Example for 8 MHz internal oscillator
# Fuse high byte:
# 0xd9 = 1 1 0 1 1 0 0 1 <-- BOOTRST (boot reset vector at 0x0000)
# ^ ^ ^ ^ ^ ^ ^------ BOOTSZ0
# | | | | | +-------- BOOTSZ1
# | | | | +---------- EESAVE (set to 0 to preserve EEPROM over chip erase)
# | | | +-------------- CKOPT (clock option, depends on oscillator type)
# | | +---------------- SPIEN (if set to 1, serial programming is disabled)
# | +------------------ WDTON (if set to 0, watchdog is always on)
# +-------------------- RSTDISBL (if set to 0, RESET pin is disabled)
# Fuse low byte:
# 0x24 = 0 0 1 0 0 1 0 0
# ^ ^ \ / \--+--/
# | | | +------- CKSEL 3..0 (8M internal RC)
# | | +--------------- SUT 1..0 (slowly rising power)
# | +------------------ BODEN (if 0, brown-out detector is enabled)
# +-------------------- BODLEVEL (if 0: 4V, if 1: 2.7V)

# Example for 12 MHz external crystal:
# Fuse high byte:
# 0xc9 = 1 1 0 0 1 0 0 1 <-- BOOTRST (boot reset vector at 0x0000)
# ^ ^ ^ ^ ^ ^ ^------ BOOTSZ0
# | | | | | +-------- BOOTSZ1
# | | | | +---------- EESAVE (set to 0 to preserve EEPROM over chip erase)
# | | | +-------------- CKOPT (clock option, depends on oscillator type)
# | | +---------------- SPIEN (if set to 1, serial programming is disabled)
# | +------------------ WDTON (if set to 0, watchdog is always on)
# +-------------------- RSTDISBL (if set to 0, RESET pin is disabled)
# Fuse low byte:
# 0x9f = 1 0 0 1 1 1 1 1
# ^ ^ \ / \--+--/
# | | | +------- CKSEL 3..0 (external >8M crystal)
# | | +--------------- SUT 1..0 (crystal osc, BOD enabled)
# | +------------------ BODEN (if 0, brown-out detector is enabled)
# +-------------------- BODLEVEL (if 0: 4V, if 1: 2.7V)

# Tune the lines below only if you know what you are doing:

AVRDUDE = avrdude $(PROGRAMMER) -p $(DEVICE)
COMPILE = avr-gcc -Wall -Os -DF_CPU=$(CLOCK) -mmcu=$(DEVICE)

# symbolic targets:
all: main.hex

.c.o:
$(COMPILE) -c $< -o $@

.S.o:
$(COMPILE) -x assembler-with-cpp -c $< -o $@
# "-x assembler-with-cpp" should not be necessary since this is the default
# file type for the .S (with capital S) extension. However, upper case
# characters are not always preserved on Windows. To ensure WinAVR
# compatibility define the file type manually.

.c.s:
$(COMPILE) -S $< -o $@

flash: all
$(AVRDUDE) -U flash:w:main.hex:i

fuse:
$(AVRDUDE) $(FUSES)

# Xcode uses the Makefile targets "", "clean" and "install"
install: flash fuse

# if you use a bootloader, change the command below appropriately:
load: all
bootloadHID main.hex

clean:
rm -f main.hex main.elf $(OBJECTS)

# file targets:
main.elf: $(OBJECTS)
$(COMPILE) -o main.elf $(OBJECTS) -lm

main.hex: main.elf
rm -f main.hex
avr-objcopy -j .text -j .data -O ihex main.elf main.hex
# If you have an EEPROM section, you must also create a hex file for the
# EEPROM and add it to the "flash" target.

# Targets for code debugging and analysis:
disasm: main.elf
avr-objdump -d main.elf

cpp:
$(COMPILE) -E main.c

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

What we want to see is the actual fuse values that you read.

Obviously the Makefile is set up for writing the fuses but have you loked at the output of avrdude. It may not have got as far as writing the fuses.

David.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

david.prentice wrote:
What we want to see is the actual fuse values that you read.

Obviously the Makefile is set up for writing the fuses but have you loked at the output of avrdude. It may not have got as far as writing the fuses.

David.

Thanks David! This is from Ubuntu, after verifying that the MCU runs to slow:

sudo avrdude -P /dev/ttys000 -b 19200 -c usbasp -p atmega16 -v
[sudo] password for luffe: 

avrdude: Version 5.11.1, compiled on Oct 30 2011 at 10:41:10
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is "/etc/avrdude.conf"
         User configuration file is "/home/luffe/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/ttys000
         Using Programmer              : usbasp
         Overriding Baud Rate          : 19200
         AVR Part                      : ATMEGA16
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PA0
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom         4    10   128    0 no        512    4      0  9000  9000 0xff 0xff
           flash         33     6   128    0 yes     16384  128    128  4500  4500 0xff 0xff
           lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00
           calibration    0     0     0    0 no          4    0      0     0     0 0x00 0x00

         Programmer Type : usbasp
         Description     : USBasp, http://www.fischl.de/usbasp/

avrdude: auto set sck period (because given equals null)
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e9403
avrdude: safemode: lfuse reads as BF
avrdude: safemode: hfuse reads as DF

avrdude: safemode: lfuse reads as BF
avrdude: safemode: hfuse reads as DF
avrdude: safemode: Fuses OK

avrdude done.  Thank you.

This is from Mac OSX after compiling and programming from the Mac, and verifying that everything is ok:

avrdude -P /dev/ttys000 -b 19200 -c usbasp -p atmega16 -v

avrdude: Version 5.8, compiled on Nov 14 2009 at 11:10:25
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is "/usr/local/etc/avrdude.conf"
         User configuration file is "/Users/xxxxxx/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/ttys000
         Using Programmer              : usbasp
         Overriding Baud Rate          : 19200
         AVR Part                      : ATMEGA16
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PA0
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom         4    10   128    0 no        512    4      0  9000  9000 0xff 0xff
           flash         33     6   128    0 yes     16384  128    128  4500  4500 0xff 0xff
           lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00
           calibration    0     0     0    0 no          4    0      0     0     0 0x00 0x00

         Programmer Type : usbasp
         Description     : USBasp, http://www.fischl.de/usbasp/

avrdude: auto set sck period (because given equals null)
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e9403
avrdude: safemode: lfuse reads as BF
avrdude: safemode: hfuse reads as DF

avrdude: safemode: lfuse reads as BF
avrdude: safemode: hfuse reads as DF
avrdude: safemode: Fuses OK

avrdude done.  Thank you.

Well it doesn't look like the fuses get set correctly? But at least they seem the same in both cases.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Both lss files?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

What happens if you feed the Mac's .hex file to the Ubuntu's build and burn system?

Moderation in all things. -- ancient proverb

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

If I was one to bet, I'd say somehow the fuses are getting set different and the "slow" version is running from the internal RC osc, not the crystal. Or perhaps running on the wrong divider.

If you don't know my whole story, keep your mouth shut.

If you know my whole story, you're an accomplice. Keep your mouth shut. 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

clawson wrote:
Both lss files?

Ok. I have posted them and also attached (don't know what is best practice with so large files(?)).

From OSX working:

main.elf:     file format elf32-avr

Disassembly of section .text:

00000000 <__vectors>:
   0:	0c 94 2a 00 	jmp	0x54	; 0x54 <__ctors_end>
   4:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
   8:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
   c:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  10:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  14:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  18:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  1c:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  20:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  24:	0c 94 47 00 	jmp	0x8e	; 0x8e <__vector_9>
  28:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  2c:	0c 94 60 00 	jmp	0xc0	; 0xc0 <__vector_11>
  30:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  34:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  38:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  3c:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  40:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  44:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  48:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  4c:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  50:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>

00000054 <__ctors_end>:
  54:	11 24       	eor	r1, r1
  56:	1f be       	out	0x3f, r1	; 63
  58:	cf e5       	ldi	r28, 0x5F	; 95
  5a:	d4 e0       	ldi	r29, 0x04	; 4
  5c:	de bf       	out	0x3e, r29	; 62
  5e:	cd bf       	out	0x3d, r28	; 61

00000060 <__do_copy_data>:
  60:	11 e0       	ldi	r17, 0x01	; 1
  62:	a0 e6       	ldi	r26, 0x60	; 96
  64:	b0 e0       	ldi	r27, 0x00	; 0
  66:	e8 e4       	ldi	r30, 0x48	; 72
  68:	fa e0       	ldi	r31, 0x0A	; 10
  6a:	02 c0       	rjmp	.+4      	; 0x70 <.do_copy_data_start>

0000006c <.do_copy_data_loop>:
  6c:	05 90       	lpm	r0, Z+
  6e:	0d 92       	st	X+, r0

00000070 <.do_copy_data_start>:
  70:	a6 30       	cpi	r26, 0x06	; 6
  72:	b1 07       	cpc	r27, r17
  74:	d9 f7       	brne	.-10     	; 0x6c <.do_copy_data_loop>

00000076 <__do_clear_bss>:
  76:	11 e0       	ldi	r17, 0x01	; 1
  78:	a6 e0       	ldi	r26, 0x06	; 6
  7a:	b1 e0       	ldi	r27, 0x01	; 1
  7c:	01 c0       	rjmp	.+2      	; 0x80 <.do_clear_bss_start>

0000007e <.do_clear_bss_loop>:
  7e:	1d 92       	st	X+, r1

00000080 <.do_clear_bss_start>:
  80:	a9 34       	cpi	r26, 0x49	; 73
  82:	b1 07       	cpc	r27, r17
  84:	e1 f7       	brne	.-8      	; 0x7e <.do_clear_bss_loop>
  86:	0c 94 6b 03 	jmp	0x6d6	; 0x6d6 
0000008a <__bad_interrupt>: 8a: 0c 94 00 00 jmp 0 ; 0x0 <__heap_end> 0000008e <__vector_9>: 8e: 1f 92 push r1 90: 0f 92 push r0 92: 0f b6 in r0, 0x3f ; 63 94: 0f 92 push r0 96: 11 24 eor r1, r1 98: 8f 93 push r24 9a: 9f 93 push r25 9c: 8a ef ldi r24, 0xFA ; 250 9e: 82 bf out 0x32, r24 ; 50 a0: 80 91 12 01 lds r24, 0x0112 a4: 90 91 13 01 lds r25, 0x0113 a8: 01 96 adiw r24, 0x01 ; 1 aa: 90 93 13 01 sts 0x0113, r25 ae: 80 93 12 01 sts 0x0112, r24 b2: 9f 91 pop r25 b4: 8f 91 pop r24 b6: 0f 90 pop r0 b8: 0f be out 0x3f, r0 ; 63 ba: 0f 90 pop r0 bc: 1f 90 pop r1 be: 18 95 reti 000000c0 <__vector_11>: c0: 1f 92 push r1 c2: 0f 92 push r0 c4: 0f b6 in r0, 0x3f ; 63 c6: 0f 92 push r0 c8: 11 24 eor r1, r1 ca: 8f 93 push r24 cc: 9f 93 push r25 ce: ef 93 push r30 d0: ff 93 push r31 d2: e0 91 0c 01 lds r30, 0x010C d6: f0 91 0d 01 lds r31, 0x010D da: 8c b1 in r24, 0x0c ; 12 dc: ec 5e subi r30, 0xEC ; 236 de: fe 4f sbci r31, 0xFE ; 254 e0: 80 83 st Z, r24 e2: 80 91 0c 01 lds r24, 0x010C e6: 90 91 0d 01 lds r25, 0x010D ea: 01 96 adiw r24, 0x01 ; 1 ec: 90 93 0d 01 sts 0x010D, r25 f0: 80 93 0c 01 sts 0x010C, r24 f4: ff 91 pop r31 f6: ef 91 pop r30 f8: 9f 91 pop r25 fa: 8f 91 pop r24 fc: 0f 90 pop r0 fe: 0f be out 0x3f, r0 ; 63 100: 0f 90 pop r0 102: 1f 90 pop r1 104: 18 95 reti 00000106 : 106: 8a b1 in r24, 0x0a ; 10 108: 88 69 ori r24, 0x98 ; 152 10a: 8a b9 out 0x0a, r24 ; 10 10c: 80 b5 in r24, 0x20 ; 32 10e: 8e 68 ori r24, 0x8E ; 142 110: 80 bd out 0x20, r24 ; 32 112: 87 e6 ldi r24, 0x67 ; 103 114: 89 b9 out 0x09, r24 ; 9 116: 10 bc out 0x20, r1 ; 32 118: 08 95 ret 0000011a : 11a: 5d 9b sbis 0x0b, 5 ; 11 11c: fe cf rjmp .-4 ; 0x11a 11e: 8c b9 out 0x0c, r24 ; 12 120: 08 95 ret 00000122 : 122: 20 91 10 01 lds r18, 0x0110 126: 30 91 11 01 lds r19, 0x0111 12a: 80 91 0e 01 lds r24, 0x010E 12e: 90 91 0f 01 lds r25, 0x010F 132: 28 17 cp r18, r24 134: 39 07 cpc r19, r25 136: 19 f4 brne .+6 ; 0x13e 138: 80 e0 ldi r24, 0x00 ; 0 13a: 90 e0 ldi r25, 0x00 ; 0 13c: 08 95 ret 13e: e0 91 10 01 lds r30, 0x0110 142: f0 91 11 01 lds r31, 0x0111 146: e4 5d subi r30, 0xD4 ; 212 148: fe 4f sbci r31, 0xFE ; 254 14a: e0 81 ld r30, Z 14c: 80 91 10 01 lds r24, 0x0110 150: 90 91 11 01 lds r25, 0x0111 154: 01 96 adiw r24, 0x01 ; 1 156: 90 93 11 01 sts 0x0111, r25 15a: 80 93 10 01 sts 0x0110, r24 15e: 20 91 10 01 lds r18, 0x0110 162: 30 91 11 01 lds r19, 0x0111 166: 80 91 0e 01 lds r24, 0x010E 16a: 90 91 0f 01 lds r25, 0x010F 16e: 28 17 cp r18, r24 170: 39 07 cpc r19, r25 172: 41 f4 brne .+16 ; 0x184 174: 10 92 11 01 sts 0x0111, r1 178: 10 92 10 01 sts 0x0110, r1 17c: 10 92 0f 01 sts 0x010F, r1 180: 10 92 0e 01 sts 0x010E, r1 184: 8e 2f mov r24, r30 186: 99 27 eor r25, r25 188: 08 95 ret 0000018a : 18a: 30 e0 ldi r19, 0x00 ; 0 18c: 20 e0 ldi r18, 0x00 ; 0 18e: e0 e4 ldi r30, 0x40 ; 64 190: fc e9 ldi r31, 0x9C ; 156 192: 22 0f add r18, r18 194: cf 01 movw r24, r30 196: 01 97 sbiw r24, 0x01 ; 1 198: f1 f7 brne .-4 ; 0x196 19a: 97 98 cbi 0x12, 7 ; 18 19c: cf 01 movw r24, r30 19e: 01 97 sbiw r24, 0x01 ; 1 1a0: f1 f7 brne .-4 ; 0x19e 1a2: 86 99 sbic 0x10, 6 ; 16 1a4: 21 60 ori r18, 0x01 ; 1 1a6: cf 01 movw r24, r30 1a8: 01 97 sbiw r24, 0x01 ; 1 1aa: f1 f7 brne .-4 ; 0x1a8 1ac: 97 9a sbi 0x12, 7 ; 18 1ae: cf 01 movw r24, r30 1b0: 01 97 sbiw r24, 0x01 ; 1 1b2: f1 f7 brne .-4 ; 0x1b0 1b4: 3f 5f subi r19, 0xFF ; 255 1b6: 38 30 cpi r19, 0x08 ; 8 1b8: 61 f7 brne .-40 ; 0x192 1ba: 82 2f mov r24, r18 1bc: 99 27 eor r25, r25 1be: 08 95 ret 000001c0 : 1c0: ef 92 push r14 1c2: ff 92 push r15 1c4: 0f 93 push r16 1c6: 1f 93 push r17 1c8: 86 99 sbic 0x10, 6 ; 16 1ca: fe cf rjmp .-4 ; 0x1c8 1cc: 0e 94 c5 00 call 0x18a ; 0x18a 1d0: e8 2e mov r14, r24 1d2: ff 24 eor r15, r15 1d4: 14 c0 rjmp .+40 ; 0x1fe 1d6: 00 91 0e 01 lds r16, 0x010E 1da: 10 91 0f 01 lds r17, 0x010F 1de: 0e 94 c5 00 call 0x18a ; 0x18a 1e2: 04 5d subi r16, 0xD4 ; 212 1e4: 1e 4f sbci r17, 0xFE ; 254 1e6: f8 01 movw r30, r16 1e8: 80 83 st Z, r24 1ea: 80 91 0e 01 lds r24, 0x010E 1ee: 90 91 0f 01 lds r25, 0x010F 1f2: 01 96 adiw r24, 0x01 ; 1 1f4: 90 93 0f 01 sts 0x010F, r25 1f8: 80 93 0e 01 sts 0x010E, r24 1fc: f3 94 inc r15 1fe: fe 14 cp r15, r14 200: 51 f7 brne .-44 ; 0x1d6 202: 80 e4 ldi r24, 0x40 ; 64 204: 9c e9 ldi r25, 0x9C ; 156 206: 01 97 sbiw r24, 0x01 ; 1 208: f1 f7 brne .-4 ; 0x206 20a: 86 9b sbis 0x10, 6 ; 16 20c: fe cf rjmp .-4 ; 0x20a 20e: 1f 91 pop r17 210: 0f 91 pop r16 212: ff 90 pop r15 214: ef 90 pop r14 216: 08 95 ret 00000218 : 218: cf 93 push r28 21a: df 93 push r29 21c: 28 2f mov r18, r24 21e: 8e 9a sbi 0x11, 6 ; 17 220: 80 e4 ldi r24, 0x40 ; 64 222: 9c e9 ldi r25, 0x9C ; 156 224: fc 01 movw r30, r24 226: 31 97 sbiw r30, 0x01 ; 1 228: f1 f7 brne .-4 ; 0x226 22a: 96 98 cbi 0x12, 6 ; 18 22c: 01 97 sbiw r24, 0x01 ; 1 22e: f1 f7 brne .-4 ; 0x22c 230: 30 e0 ldi r19, 0x00 ; 0 232: c0 e4 ldi r28, 0x40 ; 64 234: dc e9 ldi r29, 0x9C ; 156 236: a0 e0 ldi r26, 0x00 ; 0 238: b0 e0 ldi r27, 0x00 ; 0 23a: 97 98 cbi 0x12, 7 ; 18 23c: ce 01 movw r24, r28 23e: 01 97 sbiw r24, 0x01 ; 1 240: f1 f7 brne .-4 ; 0x23e 242: 27 ff sbrs r18, 7 244: 02 c0 rjmp .+4 ; 0x24a 246: 96 9a sbi 0x12, 6 ; 18 248: 01 c0 rjmp .+2 ; 0x24c 24a: 96 98 cbi 0x12, 6 ; 18 24c: e0 e4 ldi r30, 0x40 ; 64 24e: fc e9 ldi r31, 0x9C ; 156 250: cf 01 movw r24, r30 252: 01 97 sbiw r24, 0x01 ; 1 254: f1 f7 brne .-4 ; 0x252 256: 97 9a sbi 0x12, 7 ; 18 258: cd 01 movw r24, r26 25a: 01 97 sbiw r24, 0x01 ; 1 25c: f1 f7 brne .-4 ; 0x25a 25e: 3f 5f subi r19, 0xFF ; 255 260: 38 30 cpi r19, 0x08 ; 8 262: 11 f0 breq .+4 ; 0x268 264: 22 0f add r18, r18 266: e9 cf rjmp .-46 ; 0x23a 268: 8e 98 cbi 0x11, 6 ; 17 26a: 31 97 sbiw r30, 0x01 ; 1 26c: f1 f7 brne .-4 ; 0x26a 26e: df 91 pop r29 270: cf 91 pop r28 272: 08 95 ret 00000274 : 274: 80 e0 ldi r24, 0x00 ; 0 276: 90 e0 ldi r25, 0x00 ; 0 278: 01 97 sbiw r24, 0x01 ; 1 27a: f1 f7 brne .-4 ; 0x278 27c: 80 e5 ldi r24, 0x50 ; 80 27e: 80 93 44 01 sts 0x0144, r24 282: 81 e5 ldi r24, 0x51 ; 81 284: 80 93 45 01 sts 0x0145, r24 288: 82 e5 ldi r24, 0x52 ; 82 28a: 80 93 46 01 sts 0x0146, r24 28e: 83 e5 ldi r24, 0x53 ; 83 290: 80 93 47 01 sts 0x0147, r24 294: 81 e0 ldi r24, 0x01 ; 1 296: 90 e0 ldi r25, 0x00 ; 0 298: 08 95 ret 0000029a : 29a: 10 92 48 01 sts 0x0148, r1 29e: cb 9b sbis 0x19, 3 ; 25 2a0: 03 c0 rjmp .+6 ; 0x2a8 2a2: 81 e0 ldi r24, 0x01 ; 1 2a4: 80 93 48 01 sts 0x0148, r24 2a8: cc 9b sbis 0x19, 4 ; 25 2aa: 05 c0 rjmp .+10 ; 0x2b6 2ac: 80 91 48 01 lds r24, 0x0148 2b0: 82 60 ori r24, 0x02 ; 2 2b2: 80 93 48 01 sts 0x0148, r24 2b6: 08 95 ret 000002b8 : 2b8: 80 91 48 01 lds r24, 0x0148 2bc: cb 9b sbis 0x19, 3 ; 25 2be: 03 c0 rjmp .+6 ; 0x2c6 2c0: 80 fd sbrc r24, 0 2c2: 03 c0 rjmp .+6 ; 0x2ca 2c4: 08 c0 rjmp .+16 ; 0x2d6 2c6: 80 fd sbrc r24, 0 2c8: 06 c0 rjmp .+12 ; 0x2d6 2ca: cc 9b sbis 0x19, 4 ; 25 2cc: 09 c0 rjmp .+18 ; 0x2e0 2ce: 80 91 48 01 lds r24, 0x0148 2d2: 81 fd sbrc r24, 1 2d4: 05 c0 rjmp .+10 ; 0x2e0 2d6: 0e 94 4d 01 call 0x29a ; 0x29a 2da: 81 e0 ldi r24, 0x01 ; 1 2dc: 90 e0 ldi r25, 0x00 ; 0 2de: 08 95 ret 2e0: 80 e0 ldi r24, 0x00 ; 0 2e2: 90 e0 ldi r25, 0x00 ; 0 2e4: 08 95 ret 000002e6 : 2e6: 8e 9a sbi 0x11, 6 ; 17 2e8: 96 98 cbi 0x12, 6 ; 18 2ea: 80 e4 ldi r24, 0x40 ; 64 2ec: 9c e9 ldi r25, 0x9C ; 156 2ee: 01 97 sbiw r24, 0x01 ; 1 2f0: f1 f7 brne .-4 ; 0x2ee 2f2: 96 9a sbi 0x12, 6 ; 18 2f4: 8e 98 cbi 0x11, 6 ; 17 2f6: 08 95 ret 000002f8 : 2f8: 85 e0 ldi r24, 0x05 ; 5 2fa: 83 bf out 0x33, r24 ; 51 2fc: 81 e0 ldi r24, 0x01 ; 1 2fe: 88 bf out 0x38, r24 ; 56 300: 89 bf out 0x39, r24 ; 57 302: 08 95 ret 00000304 : 304: 97 b1 in r25, 0x07 ; 7 306: 98 7f andi r25, 0xF8 ; 248 308: 97 b9 out 0x07, r25 ; 7 30a: 97 b1 in r25, 0x07 ; 7 30c: 87 70 andi r24, 0x07 ; 7 30e: 98 2b or r25, r24 310: 97 b9 out 0x07, r25 ; 7 312: 36 9a sbi 0x06, 6 ; 6 314: 34 9b sbis 0x06, 4 ; 6 316: fe cf rjmp .-4 ; 0x314 318: 34 9a sbi 0x06, 4 ; 6 31a: 84 b1 in r24, 0x04 ; 4 31c: 95 b1 in r25, 0x05 ; 5 31e: 08 95 ret 00000320 : 320: 3e 9a sbi 0x07, 6 ; 7 322: 87 e8 ldi r24, 0x87 ; 135 324: 86 b9 out 0x06, r24 ; 6 326: 08 95 ret 00000328 : 328: 92 9a sbi 0x12, 2 ; 18 32a: 93 9a sbi 0x12, 3 ; 18 32c: 08 95 ret 0000032e : 32e: 81 e0 ldi r24, 0x01 ; 1 330: 90 e0 ldi r25, 0x00 ; 0 332: 01 97 sbiw r24, 0x01 ; 1 334: f1 f7 brne .-4 ; 0x332 336: 08 95 ret 00000338 : 338: 0e 94 97 01 call 0x32e ; 0x32e 33c: c7 9a sbi 0x18, 7 ; 24 33e: 0e 94 97 01 call 0x32e ; 0x32e 342: c7 98 cbi 0x18, 7 ; 24 344: 0e 94 97 01 call 0x32e ; 0x32e 348: 08 95 ret 0000034a : 34a: ff 92 push r15 34c: 0f 93 push r16 34e: 1f 93 push r17 350: cf 93 push r28 352: df 93 push r29 354: 08 2f mov r16, r24 356: 16 2f mov r17, r22 358: 22 b3 in r18, 0x12 ; 18 35a: 81 e0 ldi r24, 0x01 ; 1 35c: 90 e0 ldi r25, 0x00 ; 0 35e: 02 c0 rjmp .+4 ; 0x364 360: 88 0f add r24, r24 362: 99 1f adc r25, r25 364: 4a 95 dec r20 366: e2 f7 brpl .-8 ; 0x360 368: f8 2e mov r15, r24 36a: 80 95 com r24 36c: 28 23 and r18, r24 36e: 22 bb out 0x12, r18 ; 18 370: 0e 94 97 01 call 0x32e ; 0x32e 374: c0 e0 ldi r28, 0x00 ; 0 376: d0 e0 ldi r29, 0x00 ; 0 378: 17 ff sbrs r17, 7 37a: 02 c0 rjmp .+4 ; 0x380 37c: c6 9a sbi 0x18, 6 ; 24 37e: 01 c0 rjmp .+2 ; 0x382 380: c6 98 cbi 0x18, 6 ; 24 382: 0e 94 9c 01 call 0x338 ; 0x338 386: 11 0f add r17, r17 388: 21 96 adiw r28, 0x01 ; 1 38a: c8 30 cpi r28, 0x08 ; 8 38c: d1 05 cpc r29, r1 38e: a1 f7 brne .-24 ; 0x378 390: 61 2f mov r22, r17 392: 77 27 eor r23, r23 394: 62 ff sbrs r22, 2 396: 02 c0 rjmp .+4 ; 0x39c 398: 63 ff sbrs r22, 3 39a: 0f c0 rjmp .+30 ; 0x3ba 39c: c0 e0 ldi r28, 0x00 ; 0 39e: d0 e0 ldi r29, 0x00 ; 0 3a0: 07 ff sbrs r16, 7 3a2: 02 c0 rjmp .+4 ; 0x3a8 3a4: c6 9a sbi 0x18, 6 ; 24 3a6: 01 c0 rjmp .+2 ; 0x3aa 3a8: c6 98 cbi 0x18, 6 ; 24 3aa: 0e 94 9c 01 call 0x338 ; 0x338 3ae: 21 96 adiw r28, 0x01 ; 1 3b0: c8 30 cpi r28, 0x08 ; 8 3b2: d1 05 cpc r29, r1 3b4: 11 f0 breq .+4 ; 0x3ba 3b6: 00 0f add r16, r16 3b8: f3 cf rjmp .-26 ; 0x3a0 3ba: 82 b3 in r24, 0x12 ; 18 3bc: 8f 29 or r24, r15 3be: 82 bb out 0x12, r24 ; 18 3c0: df 91 pop r29 3c2: cf 91 pop r28 3c4: 1f 91 pop r17 3c6: 0f 91 pop r16 3c8: ff 90 pop r15 3ca: 08 95 ret 000003cc : 3cc: ef 92 push r14 3ce: ff 92 push r15 3d0: 0f 93 push r16 3d2: 1f 93 push r17 3d4: 7c 01 movw r14, r24 3d6: 83 70 andi r24, 0x03 ; 3 3d8: 90 70 andi r25, 0x00 ; 0 3da: 8c 01 movw r16, r24 3dc: 00 0f add r16, r16 3de: 11 1f adc r17, r17 3e0: 00 0f add r16, r16 3e2: 11 1f adc r17, r17 3e4: 08 0f add r16, r24 3e6: 19 1f adc r17, r25 3e8: 00 95 com r16 3ea: 43 e0 ldi r20, 0x03 ; 3 3ec: 60 e0 ldi r22, 0x00 ; 0 3ee: 80 2f mov r24, r16 3f0: 0e 94 a5 01 call 0x34a ; 0x34a 3f4: 43 e0 ldi r20, 0x03 ; 3 3f6: 60 e1 ldi r22, 0x10 ; 16 3f8: 80 2f mov r24, r16 3fa: 0e 94 a5 01 call 0x34a ; 0x34a 3fe: f6 94 lsr r15 400: e7 94 ror r14 402: f6 94 lsr r15 404: e7 94 ror r14 406: 42 e0 ldi r20, 0x02 ; 2 408: 60 e0 ldi r22, 0x00 ; 0 40a: 8e 2d mov r24, r14 40c: 0e 94 a5 01 call 0x34a ; 0x34a 410: 42 e0 ldi r20, 0x02 ; 2 412: 60 e1 ldi r22, 0x10 ; 16 414: 8e 2d mov r24, r14 416: 0e 94 a5 01 call 0x34a ; 0x34a 41a: 1f 91 pop r17 41c: 0f 91 pop r16 41e: ff 90 pop r15 420: ef 90 pop r14 422: 08 95 ret 00000424 : 424: ff 92 push r15 426: 0f 93 push r16 428: 1f 93 push r17 42a: f8 2e mov r15, r24 42c: 8b 01 movw r16, r22 42e: 9b 01 movw r18, r22 430: 23 70 andi r18, 0x03 ; 3 432: 30 70 andi r19, 0x00 ; 0 434: c9 01 movw r24, r18 436: 88 0f add r24, r24 438: 99 1f adc r25, r25 43a: 88 0f add r24, r24 43c: 99 1f adc r25, r25 43e: 82 0f add r24, r18 440: 93 1f adc r25, r19 442: 43 e0 ldi r20, 0x03 ; 3 444: 6f 2d mov r22, r15 446: 80 95 com r24 448: 0e 94 a5 01 call 0x34a ; 0x34a 44c: 16 95 lsr r17 44e: 07 95 ror r16 450: 16 95 lsr r17 452: 07 95 ror r16 454: 42 e0 ldi r20, 0x02 ; 2 456: 6f 2d mov r22, r15 458: 80 2f mov r24, r16 45a: 0e 94 a5 01 call 0x34a ; 0x34a 45e: 1f 91 pop r17 460: 0f 91 pop r16 462: ff 90 pop r15 464: 08 95 ret 00000466 : 466: c3 98 cbi 0x18, 3 ; 24 468: c2 9a sbi 0x18, 2 ; 24 46a: a0 eb ldi r26, 0xB0 ; 176 46c: b4 e0 ldi r27, 0x04 ; 4 46e: fc 01 movw r30, r24 470: 9c 01 movw r18, r24 472: 27 53 subi r18, 0x37 ; 55 474: 3f 4f sbci r19, 0xFF ; 255 476: 09 c0 rjmp .+18 ; 0x48a 478: 85 bb out 0x15, r24 ; 21 47a: cd 01 movw r24, r26 47c: 01 97 sbiw r24, 0x01 ; 1 47e: f1 f7 brne .-4 ; 0x47c 480: c4 9a sbi 0x18, 4 ; 24 482: cd 01 movw r24, r26 484: 01 97 sbiw r24, 0x01 ; 1 486: f1 f7 brne .-4 ; 0x484 488: c4 98 cbi 0x18, 4 ; 24 48a: 80 81 ld r24, Z 48c: 88 23 and r24, r24 48e: 21 f0 breq .+8 ; 0x498 490: 31 96 adiw r30, 0x01 ; 1 492: e2 17 cp r30, r18 494: f3 07 cpc r31, r19 496: 81 f7 brne .-32 ; 0x478 498: 08 95 ret 0000049a : 49a: 07 c0 rjmp .+14 ; 0x4aa 49c: cd 99 sbic 0x19, 5 ; 25 49e: 05 c0 rjmp .+10 ; 0x4aa 4a0: 80 e6 ldi r24, 0x60 ; 96 4a2: 90 e0 ldi r25, 0x00 ; 0 4a4: 0e 94 33 02 call 0x466 ; 0x466 4a8: 02 c0 rjmp .+4 ; 0x4ae 4aa: 5f 9b sbis 0x0b, 7 ; 11 4ac: f7 cf rjmp .-18 ; 0x49c 4ae: 8c b1 in r24, 0x0c ; 12 4b0: 99 27 eor r25, r25 4b2: 08 95 ret 000004b4 : 4b4: c3 98 cbi 0x18, 3 ; 24 4b6: c2 9a sbi 0x18, 2 ; 24 4b8: 85 bb out 0x15, r24 ; 21 4ba: c4 9a sbi 0x18, 4 ; 24 4bc: 80 e0 ldi r24, 0x00 ; 0 4be: 90 e0 ldi r25, 0x00 ; 0 4c0: fc 01 movw r30, r24 4c2: 31 97 sbiw r30, 0x01 ; 1 4c4: f1 f7 brne .-4 ; 0x4c2 4c6: 01 97 sbiw r24, 0x01 ; 1 4c8: f1 f7 brne .-4 ; 0x4c6 4ca: c4 98 cbi 0x18, 4 ; 24 4cc: 08 95 ret 000004ce : 4ce: c3 98 cbi 0x18, 3 ; 24 4d0: c2 98 cbi 0x18, 2 ; 24 4d2: c4 9a sbi 0x18, 4 ; 24 4d4: e0 e0 ldi r30, 0x00 ; 0 4d6: f0 e0 ldi r31, 0x00 ; 0 4d8: df 01 movw r26, r30 4da: 11 97 sbiw r26, 0x01 ; 1 4dc: f1 f7 brne .-4 ; 0x4da 4de: 85 bb out 0x15, r24 ; 21 4e0: 31 97 sbiw r30, 0x01 ; 1 4e2: f1 f7 brne .-4 ; 0x4e0 4e4: c4 98 cbi 0x18, 4 ; 24 4e6: 08 95 ret 000004e8 : 4e8: 80 e0 ldi r24, 0x00 ; 0 4ea: 90 e0 ldi r25, 0x00 ; 0 4ec: fc 01 movw r30, r24 4ee: 31 97 sbiw r30, 0x01 ; 1 4f0: f1 f7 brne .-4 ; 0x4ee 4f2: c4 98 cbi 0x18, 4 ; 24 4f4: c3 98 cbi 0x18, 3 ; 24 4f6: c2 98 cbi 0x18, 2 ; 24 4f8: 01 97 sbiw r24, 0x01 ; 1 4fa: f1 f7 brne .-4 ; 0x4f8 4fc: 8c e3 ldi r24, 0x3C ; 60 4fe: 0e 94 67 02 call 0x4ce ; 0x4ce 502: 8c e0 ldi r24, 0x0C ; 12 504: 0e 94 67 02 call 0x4ce ; 0x4ce 508: 81 e0 ldi r24, 0x01 ; 1 50a: 0e 94 67 02 call 0x4ce ; 0x4ce 50e: 80 e8 ldi r24, 0x80 ; 128 510: 0e 94 67 02 call 0x4ce ; 0x4ce 514: 08 95 ret 00000516 : 516: 1a ba out 0x1a, r1 ; 26 518: 8c ed ldi r24, 0xDC ; 220 51a: 87 bb out 0x17, r24 ; 23 51c: 8f ef ldi r24, 0xFF ; 255 51e: 84 bb out 0x14, r24 ; 20 520: 8c e8 ldi r24, 0x8C ; 140 522: 81 bb out 0x11, r24 ; 17 524: 15 ba out 0x15, r1 ; 21 526: 18 ba out 0x18, r1 ; 24 528: 92 9a sbi 0x12, 2 ; 18 52a: 93 9a sbi 0x12, 3 ; 18 52c: 8e 98 cbi 0x11, 6 ; 17 52e: 97 9a sbi 0x12, 7 ; 18 530: 85 e0 ldi r24, 0x05 ; 5 532: 83 bf out 0x33, r24 ; 51 534: 81 e0 ldi r24, 0x01 ; 1 536: 88 bf out 0x38, r24 ; 56 538: 89 bf out 0x39, r24 ; 57 53a: 3e 9a sbi 0x07, 6 ; 7 53c: 87 e8 ldi r24, 0x87 ; 135 53e: 86 b9 out 0x06, r24 ; 6 540: 0e 94 74 02 call 0x4e8 ; 0x4e8 544: 92 9a sbi 0x12, 2 ; 18 546: 93 9a sbi 0x12, 3 ; 18 548: 0e 94 83 00 call 0x106 ; 0x106 54c: 78 94 sei 54e: 08 95 ret 00000550 : 550: ff 92 push r15 552: 0f 93 push r16 554: 1f 93 push r17 556: cf 93 push r28 558: df 93 push r29 55a: cd b7 in r28, 0x3d ; 61 55c: de b7 in r29, 0x3e ; 62 55e: c0 58 subi r28, 0x80 ; 128 560: d0 40 sbci r29, 0x00 ; 0 562: 0f b6 in r0, 0x3f ; 63 564: f8 94 cli 566: de bf out 0x3e, r29 ; 62 568: 0f be out 0x3f, r0 ; 63 56a: cd bf out 0x3d, r28 ; 61 56c: f8 2e mov r15, r24 56e: 8f e0 ldi r24, 0x0F ; 15 570: 8f 15 cp r24, r15 572: 18 f0 brcs .+6 ; 0x57a 574: 84 e6 ldi r24, 0x64 ; 100 576: 90 e0 ldi r25, 0x00 ; 0 578: 02 c0 rjmp .+4 ; 0x57e 57a: 87 e6 ldi r24, 0x67 ; 103 57c: 90 e0 ldi r25, 0x00 ; 0 57e: 0e 94 33 02 call 0x466 ; 0x466 582: 40 e1 ldi r20, 0x10 ; 16 584: 50 e0 ldi r21, 0x00 ; 0 586: 8e 01 movw r16, r28 588: 0f 5f subi r16, 0xFF ; 255 58a: 1f 4f sbci r17, 0xFF ; 255 58c: b8 01 movw r22, r16 58e: 8f 2d mov r24, r15 590: 99 27 eor r25, r25 592: 0e 94 ea 04 call 0x9d4 ; 0x9d4 596: c8 01 movw r24, r16 598: 0e 94 33 02 call 0x466 ; 0x466 59c: c0 58 subi r28, 0x80 ; 128 59e: df 4f sbci r29, 0xFF ; 255 5a0: 0f b6 in r0, 0x3f ; 63 5a2: f8 94 cli 5a4: de bf out 0x3e, r29 ; 62 5a6: 0f be out 0x3f, r0 ; 63 5a8: cd bf out 0x3d, r28 ; 61 5aa: df 91 pop r29 5ac: cf 91 pop r28 5ae: 1f 91 pop r17 5b0: 0f 91 pop r16 5b2: ff 90 pop r15 5b4: 08 95 ret 000005b6 : 5b6: 0f 93 push r16 5b8: 1f 93 push r17 5ba: cf 93 push r28 5bc: df 93 push r29 5be: ec 01 movw r28, r24 5c0: 84 e0 ldi r24, 0x04 ; 4 5c2: c0 30 cpi r28, 0x00 ; 0 5c4: d8 07 cpc r29, r24 5c6: 30 f5 brcc .+76 ; 0x614 5c8: ce 01 movw r24, r28 5ca: 0e 94 e6 01 call 0x3cc ; 0x3cc 5ce: ce 01 movw r24, r28 5d0: 0e 94 3a 01 call 0x274 ; 0x274 5d4: 81 30 cpi r24, 0x01 ; 1 5d6: 11 f5 brne .+68 ; 0x61c 5d8: 0e 94 67 02 call 0x4ce ; 0x4ce 5dc: 80 e8 ldi r24, 0x80 ; 128 5de: 0e 94 67 02 call 0x4ce ; 0x4ce 5e2: 89 e6 ldi r24, 0x69 ; 105 5e4: 90 e0 ldi r25, 0x00 ; 0 5e6: 0e 94 33 02 call 0x466 ; 0x466 5ea: 88 ea ldi r24, 0xA8 ; 168 5ec: 0e 94 67 02 call 0x4ce ; 0x4ce 5f0: 00 e0 ldi r16, 0x00 ; 0 5f2: 10 e0 ldi r17, 0x00 ; 0 5f4: c4 e4 ldi r28, 0x44 ; 68 5f6: d1 e0 ldi r29, 0x01 ; 1 5f8: 88 81 ld r24, Y 5fa: 0e 94 a8 02 call 0x550 ; 0x550 5fe: 88 81 ld r24, Y 600: 5d 9b sbis 0x0b, 5 ; 11 602: fe cf rjmp .-4 ; 0x600 604: 8c b9 out 0x0c, r24 ; 12 606: 0f 5f subi r16, 0xFF ; 255 608: 1f 4f sbci r17, 0xFF ; 255 60a: 21 96 adiw r28, 0x01 ; 1 60c: 04 30 cpi r16, 0x04 ; 4 60e: 11 05 cpc r17, r1 610: 29 f0 breq .+10 ; 0x61c 612: f2 cf rjmp .-28 ; 0x5f8 614: 83 e7 ldi r24, 0x73 ; 115 616: 90 e0 ldi r25, 0x00 ; 0 618: 0e 94 33 02 call 0x466 ; 0x466 61c: df 91 pop r29 61e: cf 91 pop r28 620: 1f 91 pop r17 622: 0f 91 pop r16 624: 08 95 ret 00000626 : 626: ef 92 push r14 628: ff 92 push r15 62a: 0f 93 push r16 62c: 1f 93 push r17 62e: cf 93 push r28 630: df 93 push r29 632: cd b7 in r28, 0x3d ; 61 634: de b7 in r29, 0x3e ; 62 636: c0 58 subi r28, 0x80 ; 128 638: d0 40 sbci r29, 0x00 ; 0 63a: 0f b6 in r0, 0x3f ; 63 63c: f8 94 cli 63e: de bf out 0x3e, r29 ; 62 640: 0f be out 0x3f, r0 ; 63 642: cd bf out 0x3d, r28 ; 61 644: 7c 01 movw r14, r24 646: 8f ef ldi r24, 0xFF ; 255 648: e8 16 cp r14, r24 64a: f1 04 cpc r15, r1 64c: 09 f0 breq .+2 ; 0x650 64e: 18 f4 brcc .+6 ; 0x656 650: 84 e6 ldi r24, 0x64 ; 100 652: 90 e0 ldi r25, 0x00 ; 0 654: 02 c0 rjmp .+4 ; 0x65a 656: 87 e6 ldi r24, 0x67 ; 103 658: 90 e0 ldi r25, 0x00 ; 0 65a: 0e 94 33 02 call 0x466 ; 0x466 65e: 40 e1 ldi r20, 0x10 ; 16 660: 50 e0 ldi r21, 0x00 ; 0 662: 8e 01 movw r16, r28 664: 0f 5f subi r16, 0xFF ; 255 666: 1f 4f sbci r17, 0xFF ; 255 668: b8 01 movw r22, r16 66a: c7 01 movw r24, r14 66c: 0e 94 ea 04 call 0x9d4 ; 0x9d4 670: c8 01 movw r24, r16 672: 0e 94 33 02 call 0x466 ; 0x466 676: c0 58 subi r28, 0x80 ; 128 678: df 4f sbci r29, 0xFF ; 255 67a: 0f b6 in r0, 0x3f ; 63 67c: f8 94 cli 67e: de bf out 0x3e, r29 ; 62 680: 0f be out 0x3f, r0 ; 63 682: cd bf out 0x3d, r28 ; 61 684: df 91 pop r29 686: cf 91 pop r28 688: 1f 91 pop r17 68a: 0f 91 pop r16 68c: ff 90 pop r15 68e: ef 90 pop r14 690: 08 95 ret 00000692 : 692: cf 93 push r28 694: df 93 push r29 696: 86 e0 ldi r24, 0x06 ; 6 698: 0e 94 82 01 call 0x304 ; 0x304 69c: ec 01 movw r28, r24 69e: 20 91 06 01 lds r18, 0x0106 6a2: 30 91 07 01 lds r19, 0x0107 6a6: c9 01 movw r24, r18 6a8: 03 97 sbiw r24, 0x03 ; 3 6aa: c8 17 cp r28, r24 6ac: d9 07 cpc r29, r25 6ae: 28 f0 brcs .+10 ; 0x6ba 6b0: 2d 5f subi r18, 0xFD ; 253 6b2: 3f 4f sbci r19, 0xFF ; 255 6b4: 2c 17 cp r18, r28 6b6: 3d 07 cpc r19, r29 6b8: 50 f4 brcc .+20 ; 0x6ce 6ba: 88 ea ldi r24, 0xA8 ; 168 6bc: 0e 94 67 02 call 0x4ce ; 0x4ce 6c0: ce 01 movw r24, r28 6c2: 0e 94 13 03 call 0x626 ; 0x626 6c6: d0 93 07 01 sts 0x0107, r29 6ca: c0 93 06 01 sts 0x0106, r28 6ce: ce 01 movw r24, r28 6d0: df 91 pop r29 6d2: cf 91 pop r28 6d4: 08 95 ret 000006d6
: 6d6: 1f 93 push r17 6d8: 0e 94 8b 02 call 0x516 ; 0x516 6dc: 43 e0 ldi r20, 0x03 ; 3 6de: 60 e0 ldi r22, 0x00 ; 0 6e0: 8f ef ldi r24, 0xFF ; 255 6e2: 0e 94 a5 01 call 0x34a ; 0x34a 6e6: 42 e0 ldi r20, 0x02 ; 2 6e8: 60 e0 ldi r22, 0x00 ; 0 6ea: 8f ef ldi r24, 0xFF ; 255 6ec: 0e 94 a5 01 call 0x34a ; 0x34a 6f0: 80 e8 ldi r24, 0x80 ; 128 6f2: 90 e0 ldi r25, 0x00 ; 0 6f4: 0e 94 33 02 call 0x466 ; 0x466 6f8: 88 ea ldi r24, 0xA8 ; 168 6fa: 0e 94 67 02 call 0x4ce ; 0x4ce 6fe: 89 b3 in r24, 0x19 ; 25 700: 99 27 eor r25, r25 702: fc 01 movw r30, r24 704: e0 72 andi r30, 0x20 ; 32 706: f0 70 andi r31, 0x00 ; 0 708: 85 fd sbrc r24, 5 70a: 22 c0 rjmp .+68 ; 0x750 70c: 31 97 sbiw r30, 0x01 ; 1 70e: f1 f7 brne .-4 ; 0x70c 710: 81 e0 ldi r24, 0x01 ; 1 712: 0e 94 67 02 call 0x4ce ; 0x4ce 716: 80 e8 ldi r24, 0x80 ; 128 718: 0e 94 67 02 call 0x4ce ; 0x4ce 71c: 80 91 08 01 lds r24, 0x0108 720: 88 23 and r24, r24 722: 51 f4 brne .+20 ; 0x738 724: 11 e0 ldi r17, 0x01 ; 1 726: 10 93 08 01 sts 0x0108, r17 72a: 81 e9 ldi r24, 0x91 ; 145 72c: 90 e0 ldi r25, 0x00 ; 0 72e: 0e 94 33 02 call 0x466 ; 0x466 732: 10 93 09 01 sts 0x0109, r17 736: 06 c0 rjmp .+12 ; 0x744 738: 82 ea ldi r24, 0xA2 ; 162 73a: 90 e0 ldi r25, 0x00 ; 0 73c: 0e 94 33 02 call 0x466 ; 0x466 740: 10 92 08 01 sts 0x0108, r1 744: cd 9b sbis 0x19, 5 ; 25 746: fe cf rjmp .-4 ; 0x744 748: 80 e0 ldi r24, 0x00 ; 0 74a: 90 e0 ldi r25, 0x00 ; 0 74c: 01 97 sbiw r24, 0x01 ; 1 74e: f1 f7 brne .-4 ; 0x74c 750: 10 91 08 01 lds r17, 0x0108 754: 11 30 cpi r17, 0x01 ; 1 756: 09 f0 breq .+2 ; 0x75a 758: 87 c0 rjmp .+270 ; 0x868 75a: 80 91 09 01 lds r24, 0x0109 75e: 81 30 cpi r24, 0x01 ; 1 760: 59 f4 brne .+22 ; 0x778 762: 0e 94 49 03 call 0x692 ; 0x692 766: 2f ef ldi r18, 0xFF ; 255 768: 33 e0 ldi r19, 0x03 ; 3 76a: 28 1b sub r18, r24 76c: 39 0b sbc r19, r25 76e: 30 93 0b 01 sts 0x010B, r19 772: 20 93 0a 01 sts 0x010A, r18 776: 46 c0 rjmp .+140 ; 0x804 778: 88 23 and r24, r24 77a: c1 f4 brne .+48 ; 0x7ac 77c: 80 91 0a 01 lds r24, 0x010A 780: 90 91 0b 01 lds r25, 0x010B 784: 0e 94 e6 01 call 0x3cc ; 0x3cc 788: 0e 94 4d 01 call 0x29a ; 0x29a 78c: 80 91 48 01 lds r24, 0x0148 790: 80 68 ori r24, 0x80 ; 128 792: 0e 94 0c 01 call 0x218 ; 0x218 796: 0e 94 e0 00 call 0x1c0 ; 0x1c0 79a: 80 e8 ldi r24, 0x80 ; 128 79c: 0e 94 67 02 call 0x4ce ; 0x4ce 7a0: 0e 94 91 00 call 0x122 ; 0x122 7a4: 0e 94 a8 02 call 0x550 ; 0x550 7a8: 83 e0 ldi r24, 0x03 ; 3 7aa: 10 c0 rjmp .+32 ; 0x7cc 7ac: 83 30 cpi r24, 0x03 ; 3 7ae: a9 f4 brne .+42 ; 0x7da 7b0: 0e 94 5c 01 call 0x2b8 ; 0x2b8 7b4: 81 30 cpi r24, 0x01 ; 1 7b6: 69 f4 brne .+26 ; 0x7d2 7b8: 0e 94 73 01 call 0x2e6 ; 0x2e6 7bc: 0e 94 4d 01 call 0x29a ; 0x29a 7c0: 80 91 48 01 lds r24, 0x0148 7c4: 80 68 ori r24, 0x80 ; 128 7c6: 0e 94 a8 02 call 0x550 ; 0x550 7ca: 84 e0 ldi r24, 0x04 ; 4 7cc: 80 93 09 01 sts 0x0109, r24 7d0: 19 c0 rjmp .+50 ; 0x804 7d2: 86 99 sbic 0x10, 6 ; 16 7d4: 17 c0 rjmp .+46 ; 0x804 7d6: 81 e4 ldi r24, 0x41 ; 65 7d8: f6 cf rjmp .-20 ; 0x7c6 7da: 84 30 cpi r24, 0x04 ; 4 7dc: 99 f4 brne .+38 ; 0x804 7de: 0e 94 5c 01 call 0x2b8 ; 0x2b8 7e2: 81 30 cpi r24, 0x01 ; 1 7e4: 41 f4 brne .+16 ; 0x7f6 7e6: 0e 94 73 01 call 0x2e6 ; 0x2e6 7ea: 0e 94 4d 01 call 0x29a ; 0x29a 7ee: 80 91 48 01 lds r24, 0x0148 7f2: 80 68 ori r24, 0x80 ; 128 7f4: 03 c0 rjmp .+6 ; 0x7fc 7f6: 86 99 sbic 0x10, 6 ; 16 7f8: 05 c0 rjmp .+10 ; 0x804 7fa: 83 e4 ldi r24, 0x43 ; 67 7fc: 0e 94 a8 02 call 0x550 ; 0x550 800: 10 93 09 01 sts 0x0109, r17 804: 87 e0 ldi r24, 0x07 ; 7 806: 0e 94 82 01 call 0x304 ; 0x304 80a: 8a 51 subi r24, 0x1A ; 26 80c: 92 40 sbci r25, 0x02 ; 2 80e: b0 f0 brcs .+44 ; 0x83c 810: 80 e8 ldi r24, 0x80 ; 128 812: 0e 94 67 02 call 0x4ce ; 0x4ce 816: 8f ea ldi r24, 0xAF ; 175 818: 90 e0 ldi r25, 0x00 ; 0 81a: 0e 94 33 02 call 0x466 ; 0x466 81e: 88 ea ldi r24, 0xA8 ; 168 820: 0e 94 67 02 call 0x4ce ; 0x4ce 824: 10 92 09 01 sts 0x0109, r1 828: 87 e0 ldi r24, 0x07 ; 7 82a: 0e 94 82 01 call 0x304 ; 0x304 82e: 8a 51 subi r24, 0x1A ; 26 830: 92 40 sbci r25, 0x02 ; 2 832: d0 f7 brcc .-12 ; 0x828 834: 88 ea ldi r24, 0xA8 ; 168 836: 0e 94 67 02 call 0x4ce ; 0x4ce 83a: 16 c0 rjmp .+44 ; 0x868 83c: 87 e0 ldi r24, 0x07 ; 7 83e: 0e 94 82 01 call 0x304 ; 0x304 842: 8b 5f subi r24, 0xFB ; 251 844: 91 40 sbci r25, 0x01 ; 1 846: 80 f4 brcc .+32 ; 0x868 848: 80 e8 ldi r24, 0x80 ; 128 84a: 0e 94 67 02 call 0x4ce ; 0x4ce 84e: 81 e9 ldi r24, 0x91 ; 145 850: 90 e0 ldi r25, 0x00 ; 0 852: 0e 94 33 02 call 0x466 ; 0x466 856: 81 e0 ldi r24, 0x01 ; 1 858: 80 93 09 01 sts 0x0109, r24 85c: 87 e0 ldi r24, 0x07 ; 7 85e: 0e 94 82 01 call 0x304 ; 0x304 862: 8b 5f subi r24, 0xFB ; 251 864: 91 40 sbci r25, 0x01 ; 1 866: d0 f3 brcs .-12 ; 0x85c 868: 80 91 0c 01 lds r24, 0x010C 86c: 90 91 0d 01 lds r25, 0x010D 870: 89 2b or r24, r25 872: 09 f4 brne .+2 ; 0x876 874: 44 cf rjmp .-376 ; 0x6fe 876: 80 91 14 01 lds r24, 0x0114 87a: 85 31 cpi r24, 0x15 ; 21 87c: 79 f4 brne .+30 ; 0x89c 87e: 81 e0 ldi r24, 0x01 ; 1 880: 0e 94 67 02 call 0x4ce ; 0x4ce 884: 80 e8 ldi r24, 0x80 ; 128 886: 0e 94 67 02 call 0x4ce ; 0x4ce 88a: 80 ec ldi r24, 0xC0 ; 192 88c: 90 e0 ldi r25, 0x00 ; 0 88e: 0e 94 33 02 call 0x466 ; 0x466 892: 10 92 0d 01 sts 0x010D, r1 896: 10 92 0c 01 sts 0x010C, r1 89a: 97 c0 rjmp .+302 ; 0x9ca 89c: 80 91 14 01 lds r24, 0x0114 8a0: 86 30 cpi r24, 0x06 ; 6 8a2: 49 f4 brne .+18 ; 0x8b6 8a4: 81 e0 ldi r24, 0x01 ; 1 8a6: 0e 94 67 02 call 0x4ce ; 0x4ce 8aa: 80 e8 ldi r24, 0x80 ; 128 8ac: 0e 94 67 02 call 0x4ce ; 0x4ce 8b0: 80 e8 ldi r24, 0x80 ; 128 8b2: 90 e0 ldi r25, 0x00 ; 0 8b4: 56 c0 rjmp .+172 ; 0x962 8b6: 80 91 14 01 lds r24, 0x0114 8ba: 85 30 cpi r24, 0x05 ; 5 8bc: 09 f0 breq .+2 ; 0x8c0 8be: 54 c0 rjmp .+168 ; 0x968 8c0: 81 e0 ldi r24, 0x01 ; 1 8c2: 0e 94 67 02 call 0x4ce ; 0x4ce 8c6: 80 e8 ldi r24, 0x80 ; 128 8c8: 0e 94 67 02 call 0x4ce ; 0x4ce 8cc: 8e e0 ldi r24, 0x0E ; 14 8ce: 0e 94 67 02 call 0x4ce ; 0x4ce 8d2: 10 92 0d 01 sts 0x010D, r1 8d6: 10 92 0c 01 sts 0x010C, r1 8da: 2f c0 rjmp .+94 ; 0x93a 8dc: 80 91 0c 01 lds r24, 0x010C 8e0: 90 91 0d 01 lds r25, 0x010D 8e4: 89 2b or r24, r25 8e6: 51 f1 breq .+84 ; 0x93c 8e8: 10 92 0d 01 sts 0x010D, r1 8ec: 10 92 0c 01 sts 0x010C, r1 8f0: 80 91 14 01 lds r24, 0x0114 8f4: 8f 37 cpi r24, 0x7F ; 127 8f6: 79 f4 brne .+30 ; 0x916 8f8: 11 23 and r17, r17 8fa: 01 f1 breq .+64 ; 0x93c 8fc: 10 31 cpi r17, 0x10 ; 16 8fe: f1 f0 breq .+60 ; 0x93c 900: 80 e1 ldi r24, 0x10 ; 16 902: 0e 94 67 02 call 0x4ce ; 0x4ce 906: 80 e1 ldi r24, 0x10 ; 16 908: 0e 94 5a 02 call 0x4b4 ; 0x4b4 90c: 80 e1 ldi r24, 0x10 ; 16 90e: 0e 94 67 02 call 0x4ce ; 0x4ce 912: 11 50 subi r17, 0x01 ; 1 914: 13 c0 rjmp .+38 ; 0x93c 916: 80 91 14 01 lds r24, 0x0114 91a: 0e 94 5a 02 call 0x4b4 ; 0x4b4 91e: 1f 5f subi r17, 0xFF ; 255 920: 10 31 cpi r17, 0x10 ; 16 922: 29 f4 brne .+10 ; 0x92e 924: 8c ec ldi r24, 0xCC ; 204 926: 90 e0 ldi r25, 0x00 ; 0 928: 0e 94 33 02 call 0x466 ; 0x466 92c: 07 c0 rjmp .+14 ; 0x93c 92e: 10 32 cpi r17, 0x20 ; 32 930: 29 f4 brne .+10 ; 0x93c 932: 8c ec ldi r24, 0xCC ; 204 934: 90 e0 ldi r25, 0x00 ; 0 936: 0e 94 33 02 call 0x466 ; 0x466 93a: 10 e0 ldi r17, 0x00 ; 0 93c: 80 91 14 01 lds r24, 0x0114 940: 83 32 cpi r24, 0x23 ; 35 942: 21 f0 breq .+8 ; 0x94c 944: 80 91 14 01 lds r24, 0x0114 948: 8a 30 cpi r24, 0x0A ; 10 94a: 41 f6 brne .-112 ; 0x8dc 94c: 8c e0 ldi r24, 0x0C ; 12 94e: 0e 94 67 02 call 0x4ce ; 0x4ce 952: 81 e0 ldi r24, 0x01 ; 1 954: 0e 94 67 02 call 0x4ce ; 0x4ce 958: 80 e8 ldi r24, 0x80 ; 128 95a: 0e 94 67 02 call 0x4ce ; 0x4ce 95e: 80 ec ldi r24, 0xC0 ; 192 960: 90 e0 ldi r25, 0x00 ; 0 962: 0e 94 33 02 call 0x466 ; 0x466 966: 31 c0 rjmp .+98 ; 0x9ca 968: 80 91 14 01 lds r24, 0x0114 96c: 81 30 cpi r24, 0x01 ; 1 96e: 41 f4 brne .+16 ; 0x980 970: 0e 94 67 02 call 0x4ce ; 0x4ce 974: 80 e8 ldi r24, 0x80 ; 128 976: 0e 94 67 02 call 0x4ce ; 0x4ce 97a: 85 ee ldi r24, 0xE5 ; 229 97c: 90 e0 ldi r25, 0x00 ; 0 97e: 0c c0 rjmp .+24 ; 0x998 980: 80 91 14 01 lds r24, 0x0114 984: 82 30 cpi r24, 0x02 ; 2 986: b9 f4 brne .+46 ; 0x9b6 988: 81 e0 ldi r24, 0x01 ; 1 98a: 0e 94 67 02 call 0x4ce ; 0x4ce 98e: 80 e8 ldi r24, 0x80 ; 128 990: 0e 94 67 02 call 0x4ce ; 0x4ce 994: 88 ef ldi r24, 0xF8 ; 248 996: 90 e0 ldi r25, 0x00 ; 0 998: 0e 94 33 02 call 0x466 ; 0x466 99c: 80 91 16 01 lds r24, 0x0116 9a0: 20 91 15 01 lds r18, 0x0115 9a4: 99 27 eor r25, r25 9a6: 98 2f mov r25, r24 9a8: 88 27 eor r24, r24 9aa: 33 27 eor r19, r19 9ac: 82 2b or r24, r18 9ae: 93 2b or r25, r19 9b0: 0e 94 db 02 call 0x5b6 ; 0x5b6 9b4: 0a c0 rjmp .+20 ; 0x9ca 9b6: 81 e0 ldi r24, 0x01 ; 1 9b8: 0e 94 67 02 call 0x4ce ; 0x4ce 9bc: 80 e8 ldi r24, 0x80 ; 128 9be: 0e 94 67 02 call 0x4ce ; 0x4ce 9c2: 80 91 14 01 lds r24, 0x0114 9c6: 0e 94 a8 02 call 0x550 ; 0x550 9ca: 10 92 0d 01 sts 0x010D, r1 9ce: 10 92 0c 01 sts 0x010C, r1 9d2: 95 ce rjmp .-726 ; 0x6fe 000009d4 : 9d4: fb 01 movw r30, r22 9d6: 9f 01 movw r18, r30 9d8: 42 30 cpi r20, 0x02 ; 2 9da: 74 f0 brlt .+28 ; 0x9f8 9dc: 45 32 cpi r20, 0x25 ; 37 9de: 64 f4 brge .+24 ; 0x9f8 9e0: 64 2f mov r22, r20 9e2: 77 27 eor r23, r23 9e4: 0e 94 10 05 call 0xa20 ; 0xa20 <__udivmodhi4> 9e8: 80 5d subi r24, 0xD0 ; 208 9ea: 8a 33 cpi r24, 0x3A ; 58 9ec: 0c f0 brlt .+2 ; 0x9f0 9ee: 89 5d subi r24, 0xD9 ; 217 9f0: 81 93 st Z+, r24 9f2: cb 01 movw r24, r22 9f4: 00 97 sbiw r24, 0x00 ; 0 9f6: a1 f7 brne .-24 ; 0x9e0 9f8: 10 82 st Z, r1 9fa: c9 01 movw r24, r18 9fc: 0c 94 00 05 jmp 0xa00 ; 0xa00 00000a00 : a00: dc 01 movw r26, r24 a02: fc 01 movw r30, r24 a04: 01 90 ld r0, Z+ a06: 00 20 and r0, r0 a08: e9 f7 brne .-6 ; 0xa04 a0a: 32 97 sbiw r30, 0x02 ; 2 a0c: ae 17 cp r26, r30 a0e: bf 07 cpc r27, r31 a10: 30 f4 brcc .+12 ; 0xa1e a12: 7c 91 ld r23, X a14: 60 81 ld r22, Z a16: 70 83 st Z, r23 a18: 31 97 sbiw r30, 0x01 ; 1 a1a: 6d 93 st X+, r22 a1c: f7 cf rjmp .-18 ; 0xa0c a1e: 08 95 ret 00000a20 <__udivmodhi4>: a20: aa 1b sub r26, r26 a22: bb 1b sub r27, r27 a24: 51 e1 ldi r21, 0x11 ; 17 a26: 07 c0 rjmp .+14 ; 0xa36 <__udivmodhi4_ep> 00000a28 <__udivmodhi4_loop>: a28: aa 1f adc r26, r26 a2a: bb 1f adc r27, r27 a2c: a6 17 cp r26, r22 a2e: b7 07 cpc r27, r23 a30: 10 f0 brcs .+4 ; 0xa36 <__udivmodhi4_ep> a32: a6 1b sub r26, r22 a34: b7 0b sbc r27, r23 00000a36 <__udivmodhi4_ep>: a36: 88 1f adc r24, r24 a38: 99 1f adc r25, r25 a3a: 5a 95 dec r21 a3c: a9 f7 brne .-22 ; 0xa28 <__udivmodhi4_loop> a3e: 80 95 com r24 a40: 90 95 com r25 a42: bc 01 movw r22, r24 a44: cd 01 movw r24, r26 a46: 08 95 ret

From Ubuntu MCU runs slow:

[code:1]

main.elf: file format elf32-avr

Disassembly of section .text:

00000000 <__vectors>:
0: 0c 94 2a 00 jmp 0x54 ; 0x54 <__ctors_end>
4: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>
8: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>
c: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>
10: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>
14: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>
18: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>
1c: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>
20: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>
24: 0c 94 49 00 jmp 0x92 ; 0x92 <__vector_9>
28: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>
2c: 0c 94 62 00 jmp 0xc4 ; 0xc4 <__vector_11>
30: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>
34: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>
38: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>
3c: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>
40: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>
44: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>
48: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>
4c: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>
50: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>

00000054 <__ctors_end>:
54: 11 24 eor r1, r1
56: 1f be out 0x3f, r1 ; 63
58: cf e5 ldi r28, 0x5F ; 95
5a: d4 e0 ldi r29, 0x04 ; 4
5c: de bf out 0x3e, r29 ; 62
5e: cd bf out 0x3d, r28 ; 61

00000060 <__do_copy_data>:
60: 11 e0 ldi r17, 0x01 ; 1
62: a0 e6 ldi r26, 0x60 ; 96
64: b0 e0 ldi r27, 0x00 ; 0
66: ea ef ldi r30, 0xFA ; 250
68: fa e0 ldi r31, 0x0A ; 10
6a: 02 c0 rjmp .+4 ; 0x70 <__do_copy_data+0x10>
6c: 05 90 lpm r0, Z+
6e: 0d 92 st X+, r0
70: a6 30 cpi r26, 0x06 ; 6
72: b1 07 cpc r27, r17
74: d9 f7 brne .-10 ; 0x6c <__do_copy_data+0xc>

00000076 <__do_clear_bss>:
76: 11 e0 ldi r17, 0x01 ; 1
78: a6 e0 ldi r26, 0x06 ; 6
7a: b1 e0 ldi r27, 0x01 ; 1
7c: 01 c0 rjmp .+2 ; 0x80 <.do_clear_bss_start>

0000007e <.do_clear_bss_loop>:
7e: 1d 92 st X+, r1

00000080 <.do_clear_bss_start>:
80: a9 34 cpi r26, 0x49 ; 73
82: b1 07 cpc r27, r17
84: e1 f7 brne .-8 ; 0x7e <.do_clear_bss_loop>
86: 0e 94 93 03 call 0x726 ; 0x726


8a: 0c 94 7b 05 jmp 0xaf6 ; 0xaf6 <_exit>

0000008e <__bad_interrupt>:
8e: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>

00000092 <__vector_9>:
92: 1f 92 push r1
94: 0f 92 push r0
96: 0f b6 in r0, 0x3f ; 63
98: 0f 92 push r0
9a: 11 24 eor r1, r1
9c: 8f 93 push r24
9e: 9f 93 push r25
a0: 8a ef ldi r24, 0xFA ; 250
a2: 82 bf out 0x32, r24 ; 50
a4: 80 91 47 01 lds r24, 0x0147
a8: 90 91 48 01 lds r25, 0x0148
ac: 01 96 adiw r24, 0x01 ; 1
ae: 90 93 48 01 sts 0x0148, r25
b2: 80 93 47 01 sts 0x0147, r24
b6: 9f 91 pop r25
b8: 8f 91 pop r24
ba: 0f 90 pop r0
bc: 0f be out 0x3f, r0 ; 63
be: 0f 90 pop r0
c0: 1f 90 pop r1
c2: 18 95 reti

000000c4 <__vector_11>:
c4: 1f 92 push r1
c6: 0f 92 push r0
c8: 0f b6 in r0, 0x3f ; 63
ca: 0f 92 push r0
cc: 11 24 eor r1, r1
ce: 8f 93 push r24
d0: 9f 93 push r25
d2: ef 93 push r30
d4: ff 93 push r31
d6: e0 91 11 01 lds r30, 0x0111
da: f0 91 12 01 lds r31, 0x0112
de: 8c b1 in r24, 0x0c ; 12
e0: ed 5e subi r30, 0xED ; 237
e2: fe 4f sbci r31, 0xFE ; 254
e4: 80 83 st Z, r24
e6: 80 91 11 01 lds r24, 0x0111
ea: 90 91 12 01 lds r25, 0x0112
ee: 01 96 adiw r24, 0x01 ; 1
f0: 90 93 12 01 sts 0x0112, r25
f4: 80 93 11 01 sts 0x0111, r24
f8: ff 91 pop r31
fa: ef 91 pop r30
fc: 9f 91 pop r25
fe: 8f 91 pop r24
100: 0f 90 pop r0
102: 0f be out 0x3f, r0 ; 63
104: 0f 90 pop r0
106: 1f 90 pop r1
108: 18 95 reti

0000010a :
10a: 8a b1 in r24, 0x0a ; 10
10c: 88 69 ori r24, 0x98 ; 152
10e: 8a b9 out 0x0a, r24 ; 10
110: 80 b5 in r24, 0x20 ; 32
112: 8e 68 ori r24, 0x8E ; 142
114: 80 bd out 0x20, r24 ; 32
116: 87 e6 ldi r24, 0x67 ; 103
118: 89 b9 out 0x09, r24 ; 9
11a: 10 bc out 0x20, r1 ; 32
11c: 08 95 ret

0000011e :
11e: 5d 9b sbis 0x0b, 5 ; 11
120: fe cf rjmp .-4 ; 0x11e
122: 8c b9 out 0x0c, r24 ; 12
124: 08 95 ret

00000126 :
126: 20 91 45 01 lds r18, 0x0145
12a: 30 91 46 01 lds r19, 0x0146
12e: 80 91 2b 01 lds r24, 0x012B
132: 90 91 2c 01 lds r25, 0x012C
136: 28 17 cp r18, r24
138: 39 07 cpc r19, r25
13a: 29 f1 breq .+74 ; 0x186
13c: e0 91 45 01 lds r30, 0x0145
140: f0 91 46 01 lds r31, 0x0146
144: e3 5d subi r30, 0xD3 ; 211
146: fe 4f sbci r31, 0xFE ; 254
148: 80 81 ld r24, Z
14a: 20 91 45 01 lds r18, 0x0145
14e: 30 91 46 01 lds r19, 0x0146
152: 2f 5f subi r18, 0xFF ; 255
154: 3f 4f sbci r19, 0xFF ; 255
156: 30 93 46 01 sts 0x0146, r19
15a: 20 93 45 01 sts 0x0145, r18
15e: 40 91 45 01 lds r20, 0x0145
162: 50 91 46 01 lds r21, 0x0146
166: 20 91 2b 01 lds r18, 0x012B
16a: 30 91 2c 01 lds r19, 0x012C
16e: 42 17 cp r20, r18
170: 53 07 cpc r21, r19
172: 51 f4 brne .+20 ; 0x188
174: 10 92 46 01 sts 0x0146, r1
178: 10 92 45 01 sts 0x0145, r1
17c: 10 92 2c 01 sts 0x012C, r1
180: 10 92 2b 01 sts 0x012B, r1
184: 08 95 ret
186: 80 e0 ldi r24, 0x00 ; 0
188: 08 95 ret

0000018a :
18a: 98 e0 ldi r25, 0x08 ; 8
18c: 80 e0 ldi r24, 0x00 ; 0
18e: 88 0f add r24, r24
190: ef e3 ldi r30, 0x3F ; 63
192: fc e9 ldi r31, 0x9C ; 156
194: 31 97 sbiw r30, 0x01 ; 1
196: f1 f7 brne .-4 ; 0x194
198: 00 c0 rjmp .+0 ; 0x19a
19a: 00 00 nop
19c: 97 98 cbi 0x12, 7 ; 18
19e: ef e3 ldi r30, 0x3F ; 63
1a0: fc e9 ldi r31, 0x9C ; 156
1a2: 31 97 sbiw r30, 0x01 ; 1
1a4: f1 f7 brne .-4 ; 0x1a2
1a6: 00 c0 rjmp .+0 ; 0x1a8
1a8: 00 00 nop
1aa: 86 99 sbic 0x10, 6 ; 16
1ac: 81 60 ori r24, 0x01 ; 1
1ae: ef e3 ldi r30, 0x3F ; 63
1b0: fc e9 ldi r31, 0x9C ; 156
1b2: 31 97 sbiw r30, 0x01 ; 1
1b4: f1 f7 brne .-4 ; 0x1b2
1b6: 00 c0 rjmp .+0 ; 0x1b8
1b8: 00 00 nop
1ba: 97 9a sbi 0x12, 7 ; 18
1bc: ef e3 ldi r30, 0x3F ; 63
1be: fc e9 ldi r31, 0x9C ; 156
1c0: 31 97 sbiw r30, 0x01 ; 1
1c2: f1 f7 brne .-4 ; 0x1c0
1c4: 00 c0 rjmp .+0 ; 0x1c6
1c6: 00 00 nop
1c8: 91 50 subi r25, 0x01 ; 1
1ca: 09 f7 brne .-62 ; 0x18e
1cc: 08 95 ret

000001ce :
1ce: 0f 93 push r16
1d0: 1f 93 push r17
1d2: cf 93 push r28
1d4: df 93 push r29
1d6: 86 99 sbic 0x10, 6 ; 16
1d8: fe cf rjmp .-4 ; 0x1d6
1da: 0e 94 c5 00 call 0x18a ; 0x18a
1de: 08 2f mov r16, r24
1e0: 10 e0 ldi r17, 0x00 ; 0
1e2: 14 c0 rjmp .+40 ; 0x20c
1e4: c0 91 2b 01 lds r28, 0x012B
1e8: d0 91 2c 01 lds r29, 0x012C
1ec: 0e 94 c5 00 call 0x18a ; 0x18a
1f0: c3 5d subi r28, 0xD3 ; 211
1f2: de 4f sbci r29, 0xFE ; 254
1f4: 88 83 st Y, r24
1f6: 20 91 2b 01 lds r18, 0x012B
1fa: 30 91 2c 01 lds r19, 0x012C
1fe: 2f 5f subi r18, 0xFF ; 255
200: 3f 4f sbci r19, 0xFF ; 255
202: 30 93 2c 01 sts 0x012C, r19
206: 20 93 2b 01 sts 0x012B, r18
20a: 1f 5f subi r17, 0xFF ; 255
20c: 10 17 cp r17, r16
20e: 50 f3 brcs .-44 ; 0x1e4
210: 8f e3 ldi r24, 0x3F ; 63
212: 9c e9 ldi r25, 0x9C ; 156
214: 01 97 sbiw r24, 0x01 ; 1
216: f1 f7 brne .-4 ; 0x214
218: 00 c0 rjmp .+0 ; 0x21a
21a: 00 00 nop
21c: 86 9b sbis 0x10, 6 ; 16
21e: fe cf rjmp .-4 ; 0x21c
220: df 91 pop r29
222: cf 91 pop r28
224: 1f 91 pop r17
226: 0f 91 pop r16
228: 08 95 ret

0000022a :
22a: 8e 9a sbi 0x11, 6 ; 17
22c: ef e3 ldi r30, 0x3F ; 63
22e: fc e9 ldi r31, 0x9C ; 156
230: 31 97 sbiw r30, 0x01 ; 1
232: f1 f7 brne .-4 ; 0x230
234: 00 c0 rjmp .+0 ; 0x236
236: 00 00 nop
238: 96 98 cbi 0x12, 6 ; 18
23a: ef e3 ldi r30, 0x3F ; 63
23c: fc e9 ldi r31, 0x9C ; 156
23e: 31 97 sbiw r30, 0x01 ; 1
240: f1 f7 brne .-4 ; 0x23e
242: 00 c0 rjmp .+0 ; 0x244
244: 00 00 nop
246: 98 e0 ldi r25, 0x08 ; 8
248: 97 98 cbi 0x12, 7 ; 18
24a: ef e3 ldi r30, 0x3F ; 63
24c: fc e9 ldi r31, 0x9C ; 156
24e: 31 97 sbiw r30, 0x01 ; 1
250: f1 f7 brne .-4 ; 0x24e
252: 00 c0 rjmp .+0 ; 0x254
254: 00 00 nop
256: 87 ff sbrs r24, 7
258: 02 c0 rjmp .+4 ; 0x25e
25a: 96 9a sbi 0x12, 6 ; 18
25c: 01 c0 rjmp .+2 ; 0x260
25e: 96 98 cbi 0x12, 6 ; 18
260: ef e3 ldi r30, 0x3F ; 63
262: fc e9 ldi r31, 0x9C ; 156
264: 31 97 sbiw r30, 0x01 ; 1
266: f1 f7 brne .-4 ; 0x264
268: 00 c0 rjmp .+0 ; 0x26a
26a: 00 00 nop
26c: 97 9a sbi 0x12, 7 ; 18
26e: 2f ef ldi r18, 0xFF ; 255
270: 39 ef ldi r19, 0xF9 ; 249
272: 40 e0 ldi r20, 0x00 ; 0
274: 21 50 subi r18, 0x01 ; 1
276: 30 40 sbci r19, 0x00 ; 0
278: 40 40 sbci r20, 0x00 ; 0
27a: e1 f7 brne .-8 ; 0x274
27c: 00 c0 rjmp .+0 ; 0x27e
27e: 00 00 nop
280: 91 50 subi r25, 0x01 ; 1
282: 11 f0 breq .+4 ; 0x288
284: 88 0f add r24, r24
286: e0 cf rjmp .-64 ; 0x248
288: 8e 98 cbi 0x11, 6 ; 17
28a: 8f e3 ldi r24, 0x3F ; 63
28c: 9c e9 ldi r25, 0x9C ; 156
28e: 01 97 sbiw r24, 0x01 ; 1
290: f1 f7 brne .-4 ; 0x28e
292: 00 c0 rjmp .+0 ; 0x294
294: 00 00 nop
296: 08 95 ret

00000298 :
298: 8f ef ldi r24, 0xFF ; 255
29a: 97 ea ldi r25, 0xA7 ; 167
29c: a1 e6 ldi r26, 0x61 ; 97
29e: 81 50 subi r24, 0x01 ; 1
2a0: 90 40 sbc

Attachment(s): 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

skeeve wrote:
What happens if you feed the Mac's .hex file to the Ubuntu's build and burn system?

It runs great!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Torby wrote:
If I was one to bet, I'd say somehow the fuses are getting set different and the "slow" version is running from the internal RC osc, not the crystal. Or perhaps running on the wrong divider.

Yep, that would explain it. But when I read the fuse bits them seem to be the same in both cases.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Well those were pretty pointless, what happened to your -g's? (and attach, don't post, it makes the thread unreadable).

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

clawson wrote:
Well those were pretty pointless, what happened to your -g's? (and attach, don't post, it makes the thread unreadable).

Sorry..should the command look like this? [avr-objdump -S -g main.elf > main.lss]

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

oleoleo2 wrote:
skeeve wrote:
What happens if you feed the Mac's .hex file to the Ubuntu's build and burn system?

It runs great!

That would suggest that the problem is not in our build and burn system,
'tis in our hex file.

Moderation in all things. -- ancient proverb

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:
Sorry..should the command look like this?

The -g's needs to be on the compilation not the objcopy. It's what embeds links to the C source into the ELF.

Add it to the COMPILE= in your Makefile (but also consider using a more sensible Makefile anyway).