From 505f2f80d843acdde6ac9ef66221b74f994d2174 Mon Sep 17 00:00:00 2001 From: sergeyyarkov Date: Mon, 7 Aug 2023 12:12:44 +0300 Subject: [PATCH] error handler --- .../12c67fe6cdcd6963bda122da91f9033805394b5f | 37 + .../18f599bddb2372a424a592cb1b143801cd7db1d | 1 + .../47a05aa6e2089994b98fb7a7b4c7fb38d19d902f | 1 + .../69e466464f473642f912549d7526718e2ab8bdd3 | 1 + .../cc4122e796c2108754ce016f3c0d3dc9c13879bd | 1 + .../ddf87487dd00aa036a9a53dff157eefaf70d8f5f | 1 + .../e8b0a82687c5817bdc823aa0198151107a4c0b07 | 1 + firmware/build/default/production/main.o | Bin 5248 -> 5468 bytes .../attiny45v_thermometer.X.production.hex | 132 -- .../attiny45v_thermometer.X.production.lss | 1145 ---------------- ...production.elf => firmware.production.elf} | Bin 8616 -> 8676 bytes .../production/firmware.production.hex | 134 ++ .../production/firmware.production.lss | 1159 +++++++++++++++++ ...production.map => firmware.production.map} | 91 +- firmware/main.c | 49 +- firmware/nbproject/Makefile-default.mk | 32 +- .../nbproject/Makefile-genesis.properties | 6 +- firmware/nbproject/Makefile-impl.mk | 2 +- firmware/nbproject/Makefile-variables.mk | 4 +- firmware/nbproject/private/private.xml | 2 +- 20 files changed, 1442 insertions(+), 1357 deletions(-) create mode 100644 firmware/.generated_files/flags/default/12c67fe6cdcd6963bda122da91f9033805394b5f create mode 100644 firmware/.generated_files/flags/default/18f599bddb2372a424a592cb1b143801cd7db1d create mode 100644 firmware/.generated_files/flags/default/47a05aa6e2089994b98fb7a7b4c7fb38d19d902f create mode 100644 firmware/.generated_files/flags/default/69e466464f473642f912549d7526718e2ab8bdd3 create mode 100644 firmware/.generated_files/flags/default/cc4122e796c2108754ce016f3c0d3dc9c13879bd create mode 100644 firmware/.generated_files/flags/default/ddf87487dd00aa036a9a53dff157eefaf70d8f5f create mode 100644 firmware/.generated_files/flags/default/e8b0a82687c5817bdc823aa0198151107a4c0b07 delete mode 100644 firmware/dist/default/production/attiny45v_thermometer.X.production.hex delete mode 100644 firmware/dist/default/production/attiny45v_thermometer.X.production.lss rename firmware/dist/default/production/{attiny45v_thermometer.X.production.elf => firmware.production.elf} (56%) create mode 100644 firmware/dist/default/production/firmware.production.hex create mode 100644 firmware/dist/default/production/firmware.production.lss rename firmware/dist/default/production/{attiny45v_thermometer.X.production.map => firmware.production.map} (86%) diff --git a/firmware/.generated_files/flags/default/12c67fe6cdcd6963bda122da91f9033805394b5f b/firmware/.generated_files/flags/default/12c67fe6cdcd6963bda122da91f9033805394b5f new file mode 100644 index 0000000..952e823 --- /dev/null +++ b/firmware/.generated_files/flags/default/12c67fe6cdcd6963bda122da91f9033805394b5f @@ -0,0 +1,37 @@ +# +# Generated Makefile - do not edit! +# +# +# This file contains information about the location of compilers and other tools. +# If you commmit this file into your revision control server, you will be able to +# to checkout the project and build it from the command line with make. However, +# if more than one person works on the same project, then this file might show +# conflicts since different users are bound to have compilers in different places. +# In that case you might choose to not commit this file and let MPLAB X recreate this file +# for each user. The disadvantage of not commiting this file is that you must run MPLAB X at +# least once so the file gets created and the project can be built. Finally, you can also +# avoid using this file at all if you are only building from the command line with make. +# You can invoke make with the values of the macros: +# $ makeMP_CC="/opt/microchip/mplabc30/v3.30c/bin/pic30-gcc" ... +# +PATH_TO_IDE_BIN=/opt/microchip/mplabx/v6.00/mplab_platform/platform/../mplab_ide/modules/../../bin/ +# Adding MPLAB X bin directory to path. +PATH:=/opt/microchip/mplabx/v6.00/mplab_platform/platform/../mplab_ide/modules/../../bin/:$(PATH) +# Path to java used to run MPLAB X when this makefile was created +MP_JAVA_PATH="/opt/microchip/mplabx/v6.00/sys/java/zulu8.54.0.21-ca-fx-jre8.0.292-linux_x64/bin/" +OS_CURRENT="$(shell uname -s)" +MP_CC="/opt/avr8-gnu-toolchain-linux_x86_64/bin/avr-gcc" +MP_CPPC="/opt/avr8-gnu-toolchain-linux_x86_64/bin/avr-g++" +# MP_BC is not defined +MP_AS="/opt/avr8-gnu-toolchain-linux_x86_64/bin/avr-as" +MP_LD="/opt/avr8-gnu-toolchain-linux_x86_64/bin/avr-ld" +MP_AR="/opt/avr8-gnu-toolchain-linux_x86_64/bin/avr-ar" +DEP_GEN=${MP_JAVA_PATH}java -jar "/opt/microchip/mplabx/v6.00/mplab_platform/platform/../mplab_ide/modules/../../bin/extractobjectdependencies.jar" +MP_CC_DIR="/opt/avr8-gnu-toolchain-linux_x86_64/bin" +MP_CPPC_DIR="/opt/avr8-gnu-toolchain-linux_x86_64/bin" +# MP_BC_DIR is not defined +MP_AS_DIR="/opt/avr8-gnu-toolchain-linux_x86_64/bin" +MP_LD_DIR="/opt/avr8-gnu-toolchain-linux_x86_64/bin" +MP_AR_DIR="/opt/avr8-gnu-toolchain-linux_x86_64/bin" +# MP_BC_DIR is not defined +DFP_DIR=/home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151 diff --git a/firmware/.generated_files/flags/default/18f599bddb2372a424a592cb1b143801cd7db1d b/firmware/.generated_files/flags/default/18f599bddb2372a424a592cb1b143801cd7db1d new file mode 100644 index 0000000..6de2c23 --- /dev/null +++ b/firmware/.generated_files/flags/default/18f599bddb2372a424a592cb1b143801cd7db1d @@ -0,0 +1 @@ + $(MP_EXTRA_CC_PRE) -mmcu=attiny45 ${PACK_COMPILER_OPTIONS} ${PACK_COMMON_OPTIONS} -g -DDEBUG -gdwarf-2 -x c -c -D__$(MP_PROCESSOR_OPTION)__ -funsigned-char -funsigned-bitfields -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -Wall -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -DF_CPU=8000000UL/home/sergeyyarkov/Documents/Projects/Firmwares/AVR/attiny45v_thermometer/firmware/main.c \ No newline at end of file diff --git a/firmware/.generated_files/flags/default/47a05aa6e2089994b98fb7a7b4c7fb38d19d902f b/firmware/.generated_files/flags/default/47a05aa6e2089994b98fb7a7b4c7fb38d19d902f new file mode 100644 index 0000000..81a0845 --- /dev/null +++ b/firmware/.generated_files/flags/default/47a05aa6e2089994b98fb7a7b4c7fb38d19d902f @@ -0,0 +1 @@ + $(MP_EXTRA_CC_PRE) -mmcu=attiny45 ${PACK_COMPILER_OPTIONS} ${PACK_COMMON_OPTIONS} -x c -c -D__$(MP_PROCESSOR_OPTION)__ -funsigned-char -funsigned-bitfields -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -Wall -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -DF_CPU=8000000UL/home/sergeyyarkov/Documents/Projects/Firmwares/AVR/attiny45v_thermometer/firmware/onewire.c \ No newline at end of file diff --git a/firmware/.generated_files/flags/default/69e466464f473642f912549d7526718e2ab8bdd3 b/firmware/.generated_files/flags/default/69e466464f473642f912549d7526718e2ab8bdd3 new file mode 100644 index 0000000..e9cde49 --- /dev/null +++ b/firmware/.generated_files/flags/default/69e466464f473642f912549d7526718e2ab8bdd3 @@ -0,0 +1 @@ + $(MP_EXTRA_CC_PRE) -mmcu=attiny45 ${PACK_COMPILER_OPTIONS} ${PACK_COMMON_OPTIONS} -g -DDEBUG -gdwarf-2 -x c -c -D__$(MP_PROCESSOR_OPTION)__ -funsigned-char -funsigned-bitfields -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -Wall -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -DF_CPU=8000000UL/home/sergeyyarkov/Documents/Projects/Firmwares/AVR/attiny45v_thermometer/firmware/dstemperature.c \ No newline at end of file diff --git a/firmware/.generated_files/flags/default/cc4122e796c2108754ce016f3c0d3dc9c13879bd b/firmware/.generated_files/flags/default/cc4122e796c2108754ce016f3c0d3dc9c13879bd new file mode 100644 index 0000000..715be84 --- /dev/null +++ b/firmware/.generated_files/flags/default/cc4122e796c2108754ce016f3c0d3dc9c13879bd @@ -0,0 +1 @@ + $(MP_EXTRA_CC_PRE) -mmcu=attiny45 ${PACK_COMPILER_OPTIONS} ${PACK_COMMON_OPTIONS} -g -DDEBUG -gdwarf-2 -x c -c -D__$(MP_PROCESSOR_OPTION)__ -funsigned-char -funsigned-bitfields -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -Wall -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -DF_CPU=8000000UL/home/sergeyyarkov/Documents/Projects/Firmwares/AVR/attiny45v_thermometer/firmware/onewire.c \ No newline at end of file diff --git a/firmware/.generated_files/flags/default/ddf87487dd00aa036a9a53dff157eefaf70d8f5f b/firmware/.generated_files/flags/default/ddf87487dd00aa036a9a53dff157eefaf70d8f5f new file mode 100644 index 0000000..fbffdc1 --- /dev/null +++ b/firmware/.generated_files/flags/default/ddf87487dd00aa036a9a53dff157eefaf70d8f5f @@ -0,0 +1 @@ + $(MP_EXTRA_CC_PRE) -mmcu=attiny45 ${PACK_COMPILER_OPTIONS} ${PACK_COMMON_OPTIONS} -x c -c -D__$(MP_PROCESSOR_OPTION)__ -funsigned-char -funsigned-bitfields -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -Wall -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -DF_CPU=8000000UL/home/sergeyyarkov/Documents/Projects/Firmwares/AVR/attiny45v_thermometer/firmware/dstemperature.c \ No newline at end of file diff --git a/firmware/.generated_files/flags/default/e8b0a82687c5817bdc823aa0198151107a4c0b07 b/firmware/.generated_files/flags/default/e8b0a82687c5817bdc823aa0198151107a4c0b07 new file mode 100644 index 0000000..8b410a5 --- /dev/null +++ b/firmware/.generated_files/flags/default/e8b0a82687c5817bdc823aa0198151107a4c0b07 @@ -0,0 +1 @@ + $(MP_EXTRA_CC_PRE) -mmcu=attiny45 ${PACK_COMPILER_OPTIONS} ${PACK_COMMON_OPTIONS} -x c -c -D__$(MP_PROCESSOR_OPTION)__ -funsigned-char -funsigned-bitfields -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -Wall -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -DF_CPU=8000000UL/home/sergeyyarkov/Documents/Projects/Firmwares/AVR/attiny45v_thermometer/firmware/main.c \ No newline at end of file diff --git a/firmware/build/default/production/main.o b/firmware/build/default/production/main.o index 4a759e44b5bda6d24bac328bea82af042401993f..42c9abe9354022ee4af16c08e6028b231c4b5074 100644 GIT binary patch delta 970 zcmZWnOK4M35S^R%(&nW}+ayn$#MC4vrAb5#SX4xz&`K)!S+qoq3yn6SG;KoaLIr6G zMPgA2UKKx3T)1!{LJfjlyAq^i;X=Vh5K$K{bnn75?^C1>nLFpqxifR$y{V@^XPU9V zNI%gdA{v1cr6^9@SNE(cF={sw;@4sp-f`W3`*^X_>`>dl59`RtuS#B?Rm1LeAs(2U z<*2H+uBl}qBJ#WQgfC*Wv=@a2<-V@9BQYfW6eLa93K7mgQHwVXJxs|>`k_tyWGmh6 z6sgJ5+>@zw09Ff0;aTT$^ zIE4jv4z8pPNM**{5_TD`U?STUxC6C$#2Xf_BR1gNa~biDg}HxgfA5&^|9|ze(pQx0 zeXq0+_=X@hM&-@^oc42reF9T8q9sF1`*K`=d`5T-gyaZ z0*wDEQMm^85zMU90y$0ZA$sFr?NlHkV)A+*vGCq&USJe8d@{ap5BxOV13&75v#Aic zuWhWc6lnLw)`aMVFe*9>5zYA7Bj5q8a1RQRMMa^MMmaL6gOIeY>1H;Z|c=X$H cP)~TTgMEnO-5Eu2kGm{`5a_;$l=arkAtzxy{I+@j7 zz!LyR=)fTMqI>P|T2yMm^8cN>kN?+afaZ|^%>Ex9G}0~^5V;%6b2(72bz#%5hk zXq{e7n-!u{?&xPkm%JEzf3(hR?a1MeS{qu5(H2bt6c_*F5${r)F65(l!8|@ab!BF> zQkkpBSMk9J;C+d|6T6*Y!374RBhcdvW`|rc&kM)?uc-EY)F~g-rYo?iL1eq197(2vm(Owxz=I>^K5z;A@p+3#1?xyq&#tEg< zJZRJO2=kX2uhUh}EaNSu`*_f9(^X#mrmE8YJZKB_=zuR#Q`!!6Y)L`ZTTY%7QcsP^ z$<%A(VH|vWphsrYW#dJQrbr)1^M36usbm1XKI!dc<0|QxPh+I#EqY1XYIXi3!312t zb2L*nTv9N%Ncu=x=l|6szh&~GE^nqXvfEA_n74p8YKE?Er_mGi6MR>Gz!Bf>uwbgG t^tG^}o?F=i`N: - 0: 13 c0 rjmp .+38 ; 0x28 <__ctors_end> - 2: 1a c0 rjmp .+52 ; 0x38 <__bad_interrupt> - 4: 19 c0 rjmp .+50 ; 0x38 <__bad_interrupt> - 6: 18 c0 rjmp .+48 ; 0x38 <__bad_interrupt> - 8: 17 c0 rjmp .+46 ; 0x38 <__bad_interrupt> - a: 16 c0 rjmp .+44 ; 0x38 <__bad_interrupt> - c: 15 c0 rjmp .+42 ; 0x38 <__bad_interrupt> - e: 14 c0 rjmp .+40 ; 0x38 <__bad_interrupt> - 10: 13 c0 rjmp .+38 ; 0x38 <__bad_interrupt> - 12: 12 c0 rjmp .+36 ; 0x38 <__bad_interrupt> - 14: 11 c0 rjmp .+34 ; 0x38 <__bad_interrupt> - 16: 10 c0 rjmp .+32 ; 0x38 <__bad_interrupt> - 18: 0f c0 rjmp .+30 ; 0x38 <__bad_interrupt> - 1a: 0e c0 rjmp .+28 ; 0x38 <__bad_interrupt> - 1c: 0d c0 rjmp .+26 ; 0x38 <__bad_interrupt> - -0000001e <__trampolines_end>: - 1e: 3f 06 cpc r3, r31 - 20: 5b 4f sbci r21, 0xFB ; 251 - 22: 66 6d ori r22, 0xD6 ; 214 - 24: 7d 07 cpc r23, r29 - 26: 7f 6f ori r23, 0xFF ; 255 - -00000028 <__ctors_end>: - 28: 11 24 eor r1, r1 - 2a: 1f be out 0x3f, r1 ; 63 - 2c: cf e5 ldi r28, 0x5F ; 95 - 2e: d1 e0 ldi r29, 0x01 ; 1 - 30: de bf out 0x3e, r29 ; 62 - 32: cd bf out 0x3d, r28 ; 61 - 34: da d1 rcall .+948 ; 0x3ea
- 36: fa c3 rjmp .+2036 ; 0x82c <_exit> - -00000038 <__bad_interrupt>: - 38: e3 cf rjmp .-58 ; 0x0 <__vectors> - -0000003a : - 3a: f8 94 cli - 3c: c0 9a sbi 0x18, 0 ; 24 - 3e: c2 9a sbi 0x18, 2 ; 24 - 40: 8d e0 ldi r24, 0x0D ; 13 - 42: 8a 95 dec r24 - 44: f1 f7 brne .-4 ; 0x42 <__SREG__+0x3> - 46: 00 00 nop - 48: c0 98 cbi 0x18, 0 ; 24 - 4a: 8d e0 ldi r24, 0x0D ; 13 - 4c: 8a 95 dec r24 - 4e: f1 f7 brne .-4 ; 0x4c <__SREG__+0xd> - 50: 00 00 nop - 52: c2 98 cbi 0x18, 2 ; 24 - 54: 78 94 sei - 56: 08 95 ret - -00000058 : - 58: f8 94 cli - 5a: c2 98 cbi 0x18, 2 ; 24 - 5c: c0 98 cbi 0x18, 0 ; 24 - 5e: 8d e0 ldi r24, 0x0D ; 13 - 60: 8a 95 dec r24 - 62: f1 f7 brne .-4 ; 0x60 - 64: 00 00 nop - 66: c2 9a sbi 0x18, 2 ; 24 - 68: 8d e0 ldi r24, 0x0D ; 13 - 6a: 8a 95 dec r24 - 6c: f1 f7 brne .-4 ; 0x6a - 6e: 00 00 nop - 70: c0 9a sbi 0x18, 0 ; 24 - 72: 78 94 sei - 74: 08 95 ret - -00000076 : - 76: f8 94 cli - 78: 2d e0 ldi r18, 0x0D ; 13 - 7a: 2a 95 dec r18 - 7c: f1 f7 brne .-4 ; 0x7a - 7e: 00 00 nop - 80: 98 e0 ldi r25, 0x08 ; 8 - 82: 0d c0 rjmp .+26 ; 0x9e - 84: c0 98 cbi 0x18, 0 ; 24 - 86: 86 95 lsr r24 - 88: 2d e0 ldi r18, 0x0D ; 13 - 8a: 2a 95 dec r18 - 8c: f1 f7 brne .-4 ; 0x8a - 8e: 00 00 nop - 90: c2 9a sbi 0x18, 2 ; 24 - 92: 2d e0 ldi r18, 0x0D ; 13 - 94: 2a 95 dec r18 - 96: f1 f7 brne .-4 ; 0x94 - 98: 00 00 nop - 9a: 91 50 subi r25, 0x01 ; 1 - 9c: 49 f0 breq .+18 ; 0xb0 - 9e: c2 98 cbi 0x18, 2 ; 24 - a0: 2d e0 ldi r18, 0x0D ; 13 - a2: 2a 95 dec r18 - a4: f1 f7 brne .-4 ; 0xa2 - a6: 00 00 nop - a8: 80 ff sbrs r24, 0 - aa: ec cf rjmp .-40 ; 0x84 - ac: c0 9a sbi 0x18, 0 ; 24 - ae: eb cf rjmp .-42 ; 0x86 - b0: b8 98 cbi 0x17, 0 ; 23 - b2: c2 98 cbi 0x18, 2 ; 24 - b4: c0 9a sbi 0x18, 0 ; 24 - b6: 8d e0 ldi r24, 0x0D ; 13 - b8: 8a 95 dec r24 - ba: f1 f7 brne .-4 ; 0xb8 - bc: 00 00 nop - be: 86 b3 in r24, 0x16 ; 22 - c0: c2 9a sbi 0x18, 2 ; 24 - c2: 9d e0 ldi r25, 0x0D ; 13 - c4: 9a 95 dec r25 - c6: f1 f7 brne .-4 ; 0xc4 - c8: 00 00 nop - ca: c2 98 cbi 0x18, 2 ; 24 - cc: 2d e0 ldi r18, 0x0D ; 13 - ce: 2a 95 dec r18 - d0: f1 f7 brne .-4 ; 0xce - d2: 00 00 nop - d4: b8 9a sbi 0x17, 0 ; 23 - d6: 78 94 sei - d8: 80 95 com r24 - da: 81 70 andi r24, 0x01 ; 1 - dc: 08 95 ret - -000000de : - de: cf 93 push r28 - e0: c8 2f mov r28, r24 - e2: ab df rcall .-170 ; 0x3a - e4: 8c 2f mov r24, r28 - e6: c7 df rcall .-114 ; 0x76 - e8: b7 df rcall .-146 ; 0x58 - ea: cf 91 pop r28 - ec: 08 95 ret - -000000ee : - ee: 97 b3 in r25, 0x17 ; 23 - f0: a1 e0 ldi r26, 0x01 ; 1 - f2: b0 e0 ldi r27, 0x00 ; 0 - f4: fd 01 movw r30, r26 - f6: 02 c0 rjmp .+4 ; 0xfc - f8: ee 0f add r30, r30 - fa: ff 1f adc r31, r31 - fc: 8a 95 dec r24 - fe: e2 f7 brpl .-8 ; 0xf8 - 100: 02 c0 rjmp .+4 ; 0x106 <__DATA_REGION_LENGTH__+0x6> - 102: aa 0f add r26, r26 - 104: bb 1f adc r27, r27 - 106: 6a 95 dec r22 - 108: e2 f7 brpl .-8 ; 0x102 <__DATA_REGION_LENGTH__+0x2> - 10a: ea 2b or r30, r26 - 10c: 9e 2b or r25, r30 - 10e: 97 bb out 0x17, r25 ; 23 - 110: 88 b3 in r24, 0x18 ; 24 - 112: e0 95 com r30 - 114: e8 23 and r30, r24 - 116: e8 bb out 0x18, r30 ; 24 - 118: 84 2f mov r24, r20 - 11a: 80 68 ori r24, 0x80 ; 128 - 11c: 82 2b or r24, r18 - 11e: df df rcall .-66 ; 0xde - 120: 08 95 ret - -00000122 : - 122: cf 93 push r28 - 124: df 93 push r29 - 126: c8 2f mov r28, r24 - 128: d6 2f mov r29, r22 - 12a: 80 e4 ldi r24, 0x40 ; 64 - 12c: d8 df rcall .-80 ; 0xde - 12e: 85 df rcall .-246 ; 0x3a - 130: 8d 2f mov r24, r29 - 132: 80 6c ori r24, 0xC0 ; 192 - 134: a0 df rcall .-192 ; 0x76 - 136: 8c 2f mov r24, r28 - 138: 9e df rcall .-196 ; 0x76 - 13a: 8e df rcall .-228 ; 0x58 - 13c: df 91 pop r29 - 13e: cf 91 pop r28 - 140: 08 95 ret - -00000142 : - 142: 62 e0 ldi r22, 0x02 ; 2 - 144: 80 e4 ldi r24, 0x40 ; 64 - 146: ed df rcall .-38 ; 0x122 - 148: 61 e0 ldi r22, 0x01 ; 1 - 14a: 80 e4 ldi r24, 0x40 ; 64 - 14c: ea df rcall .-44 ; 0x122 - 14e: 60 e0 ldi r22, 0x00 ; 0 - 150: 80 e4 ldi r24, 0x40 ; 64 - 152: e7 df rcall .-50 ; 0x122 - 154: 08 95 ret - -00000156 : - 156: bf 92 push r11 - 158: cf 92 push r12 - 15a: df 92 push r13 - 15c: ef 92 push r14 - 15e: ff 92 push r15 - 160: 0f 93 push r16 - 162: 1f 93 push r17 - 164: cf 93 push r28 - 166: df 93 push r29 - 168: 8c 01 movw r16, r24 - 16a: ec 01 movw r28, r24 - 16c: 08 3e cpi r16, 0xE8 ; 232 - 16e: 83 e0 ldi r24, 0x03 ; 3 - 170: 18 07 cpc r17, r24 - 172: 14 f0 brlt .+4 ; 0x178 <__stack+0x19> - 174: c7 ee ldi r28, 0xE7 ; 231 - 176: d3 e0 ldi r29, 0x03 ; 3 - 178: 11 23 and r17, r17 - 17a: 54 f0 brlt .+20 ; 0x190 <__stack+0x31> - 17c: 0f 2e mov r0, r31 - 17e: f3 e0 ldi r31, 0x03 ; 3 - 180: df 2e mov r13, r31 - 182: f0 2d mov r31, r0 - 184: 0f 2e mov r0, r31 - 186: fa e0 ldi r31, 0x0A ; 10 - 188: ef 2e mov r14, r31 - 18a: f1 2c mov r15, r1 - 18c: f0 2d mov r31, r0 - 18e: 17 c0 rjmp .+46 ; 0x1be <__stack+0x5f> - 190: d1 95 neg r29 - 192: c1 95 neg r28 - 194: d1 09 sbc r29, r1 - 196: 60 e0 ldi r22, 0x00 ; 0 - 198: 80 e4 ldi r24, 0x40 ; 64 - 19a: c3 df rcall .-122 ; 0x122 - 19c: ef cf rjmp .-34 ; 0x17c <__stack+0x1d> - 19e: da 94 dec r13 - 1a0: ce 01 movw r24, r28 - 1a2: b7 01 movw r22, r14 - 1a4: 30 d3 rcall .+1632 ; 0x806 <__divmodhi4> - 1a6: b6 2e mov r11, r22 - 1a8: c7 2e mov r12, r23 - 1aa: 82 5e subi r24, 0xE2 ; 226 - 1ac: 9f 4f sbci r25, 0xFF ; 255 - 1ae: fc 01 movw r30, r24 - 1b0: 84 91 lpm r24, Z - 1b2: 6d 2d mov r22, r13 - 1b4: b6 df rcall .-148 ; 0x122 - 1b6: cb 2d mov r28, r11 - 1b8: dc 2d mov r29, r12 - 1ba: dd 20 and r13, r13 - 1bc: 29 f0 breq .+10 ; 0x1c8 <__stack+0x69> - 1be: 11 23 and r17, r17 - 1c0: 74 f7 brge .-36 ; 0x19e <__stack+0x3f> - 1c2: e1 e0 ldi r30, 0x01 ; 1 - 1c4: de 12 cpse r13, r30 - 1c6: eb cf rjmp .-42 ; 0x19e <__stack+0x3f> - 1c8: df 91 pop r29 - 1ca: cf 91 pop r28 - 1cc: 1f 91 pop r17 - 1ce: 0f 91 pop r16 - 1d0: ff 90 pop r15 - 1d2: ef 90 pop r14 - 1d4: df 90 pop r13 - 1d6: cf 90 pop r12 - 1d8: bf 90 pop r11 - 1da: 08 95 ret - -000001dc : - 1dc: 99 23 and r25, r25 - 1de: 84 f0 brlt .+32 ; 0x200 - 1e0: 21 e0 ldi r18, 0x01 ; 1 - 1e2: 8a 30 cpi r24, 0x0A ; 10 - 1e4: 91 05 cpc r25, r1 - 1e6: 54 f0 brlt .+20 ; 0x1fc - 1e8: 21 e0 ldi r18, 0x01 ; 1 - 1ea: ea e0 ldi r30, 0x0A ; 10 - 1ec: f0 e0 ldi r31, 0x00 ; 0 - 1ee: bf 01 movw r22, r30 - 1f0: 0a d3 rcall .+1556 ; 0x806 <__divmodhi4> - 1f2: cb 01 movw r24, r22 - 1f4: 2f 5f subi r18, 0xFF ; 255 - 1f6: 6a 30 cpi r22, 0x0A ; 10 - 1f8: 71 05 cpc r23, r1 - 1fa: cc f7 brge .-14 ; 0x1ee - 1fc: 82 2f mov r24, r18 - 1fe: 08 95 ret - 200: 91 95 neg r25 - 202: 81 95 neg r24 - 204: 91 09 sbc r25, r1 - 206: ec cf rjmp .-40 ; 0x1e0 - -00000208 : - 208: 7f 92 push r7 - 20a: 8f 92 push r8 - 20c: 9f 92 push r9 - 20e: af 92 push r10 - 210: bf 92 push r11 - 212: cf 92 push r12 - 214: df 92 push r13 - 216: ef 92 push r14 - 218: ff 92 push r15 - 21a: 0f 93 push r16 - 21c: 1f 93 push r17 - 21e: cf 93 push r28 - 220: df 93 push r29 - 222: 00 d0 rcall .+0 ; 0x224 - 224: 1f 92 push r1 - 226: cd b7 in r28, 0x3d ; 61 - 228: de b7 in r29, 0x3e ; 62 - 22a: f6 2e mov r15, r22 - 22c: 94 2e mov r9, r20 - 22e: e2 2e mov r14, r18 - 230: 99 23 and r25, r25 - 232: 0c f4 brge .+2 ; 0x236 - 234: 4d c0 rjmp .+154 ; 0x2d0 - 236: 21 e0 ldi r18, 0x01 ; 1 - 238: e1 10 cpse r14, r1 - 23a: 01 c0 rjmp .+2 ; 0x23e - 23c: 20 e0 ldi r18, 0x00 ; 0 - 23e: 6c 01 movw r12, r24 - 240: 88 3e cpi r24, 0xE8 ; 232 - 242: 93 40 sbci r25, 0x03 ; 3 - 244: 34 f0 brlt .+12 ; 0x252 - 246: 0f 2e mov r0, r31 - 248: f7 ee ldi r31, 0xE7 ; 231 - 24a: cf 2e mov r12, r31 - 24c: f3 e0 ldi r31, 0x03 ; 3 - 24e: df 2e mov r13, r31 - 250: f0 2d mov r31, r0 - 252: e1 10 cpse r14, r1 - 254: 08 c0 rjmp .+16 ; 0x266 - 256: c6 01 movw r24, r12 - 258: c1 df rcall .-126 ; 0x1dc - 25a: b8 2e mov r11, r24 - 25c: 52 e0 ldi r21, 0x02 ; 2 - 25e: 85 13 cpse r24, r21 - 260: 4c c0 rjmp .+152 ; 0x2fa - 262: 10 e0 ldi r17, 0x00 ; 0 - 264: 4b c0 rjmp .+150 ; 0x2fc - 266: e2 2e mov r14, r18 - 268: 3f c0 rjmp .+126 ; 0x2e8 - 26a: 0b 2d mov r16, r11 - 26c: 63 c0 rjmp .+198 ; 0x334 - 26e: 68 2d mov r22, r8 - 270: 80 e4 ldi r24, 0x40 ; 64 - 272: 57 df rcall .-338 ; 0x122 - 274: 81 e0 ldi r24, 0x01 ; 1 - 276: 80 0f add r24, r16 - 278: 1e 2d mov r17, r14 - 27a: 96 c0 rjmp .+300 ; 0x3a8 - 27c: e3 e0 ldi r30, 0x03 ; 3 - 27e: be 12 cpse r11, r30 - 280: a2 c0 rjmp .+324 ; 0x3c6 - 282: e1 10 cpse r14, r1 - 284: 81 c0 rjmp .+258 ; 0x388 - 286: a1 10 cpse r10, r1 - 288: 7f c0 rjmp .+254 ; 0x388 - 28a: 65 c0 rjmp .+202 ; 0x356 - 28c: 88 2d mov r24, r8 - 28e: e1 10 cpse r14, r1 - 290: aa c0 rjmp .+340 ; 0x3e6 - 292: 89 2d mov r24, r9 - 294: a8 c0 rjmp .+336 ; 0x3e6 - 296: 87 2d mov r24, r7 - 298: 02 30 cpi r16, 0x02 ; 2 - 29a: 09 f0 breq .+2 ; 0x29e - 29c: 80 c0 rjmp .+256 ; 0x39e - 29e: 74 c0 rjmp .+232 ; 0x388 - 2a0: ef 2d mov r30, r15 - 2a2: f0 e0 ldi r31, 0x00 ; 0 - 2a4: e2 5e subi r30, 0xE2 ; 226 - 2a6: ff 4f sbci r31, 0xFF ; 255 - 2a8: 84 91 lpm r24, Z - 2aa: 61 2f mov r22, r17 - 2ac: 3a df rcall .-396 ; 0x122 - 2ae: 0f 90 pop r0 - 2b0: 0f 90 pop r0 - 2b2: 0f 90 pop r0 - 2b4: df 91 pop r29 - 2b6: cf 91 pop r28 - 2b8: 1f 91 pop r17 - 2ba: 0f 91 pop r16 - 2bc: ff 90 pop r15 - 2be: ef 90 pop r14 - 2c0: df 90 pop r13 - 2c2: cf 90 pop r12 - 2c4: bf 90 pop r11 - 2c6: af 90 pop r10 - 2c8: 9f 90 pop r9 - 2ca: 8f 90 pop r8 - 2cc: 7f 90 pop r7 - 2ce: 08 95 ret - 2d0: 6c 01 movw r12, r24 - 2d2: 88 3e cpi r24, 0xE8 ; 232 - 2d4: 93 40 sbci r25, 0x03 ; 3 - 2d6: 34 f0 brlt .+12 ; 0x2e4 - 2d8: 0f 2e mov r0, r31 - 2da: f7 ee ldi r31, 0xE7 ; 231 - 2dc: cf 2e mov r12, r31 - 2de: f3 e0 ldi r31, 0x03 ; 3 - 2e0: df 2e mov r13, r31 - 2e2: f0 2d mov r31, r0 - 2e4: ee 24 eor r14, r14 - 2e6: e3 94 inc r14 - 2e8: d1 94 neg r13 - 2ea: c1 94 neg r12 - 2ec: d1 08 sbc r13, r1 - 2ee: c6 01 movw r24, r12 - 2f0: 75 df rcall .-278 ; 0x1dc - 2f2: b8 2e mov r11, r24 - 2f4: 52 e0 ldi r21, 0x02 ; 2 - 2f6: 11 e0 ldi r17, 0x01 ; 1 - 2f8: 85 13 cpse r24, r21 - 2fa: 10 e0 ldi r17, 0x00 ; 0 - 2fc: 2a e0 ldi r18, 0x0A ; 10 - 2fe: 30 e0 ldi r19, 0x00 ; 0 - 300: c6 01 movw r24, r12 - 302: b9 01 movw r22, r18 - 304: 80 d2 rcall .+1280 ; 0x806 <__divmodhi4> - 306: 8b 83 std Y+3, r24 ; 0x03 - 308: cb 01 movw r24, r22 - 30a: b9 01 movw r22, r18 - 30c: 7c d2 rcall .+1272 ; 0x806 <__divmodhi4> - 30e: 8a 83 std Y+2, r24 ; 0x02 - 310: c6 01 movw r24, r12 - 312: 64 e6 ldi r22, 0x64 ; 100 - 314: 70 e0 ldi r23, 0x00 ; 0 - 316: 77 d2 rcall .+1262 ; 0x806 <__divmodhi4> - 318: cb 01 movw r24, r22 - 31a: b9 01 movw r22, r18 - 31c: 74 d2 rcall .+1256 ; 0x806 <__divmodhi4> - 31e: a8 2e mov r10, r24 - 320: 89 83 std Y+1, r24 ; 0x01 - 322: 81 e0 ldi r24, 0x01 ; 1 - 324: b8 16 cp r11, r24 - 326: 09 f4 brne .+2 ; 0x32a - 328: a0 cf rjmp .-192 ; 0x26a - 32a: 03 e0 ldi r16, 0x03 ; 3 - 32c: 0b 19 sub r16, r11 - 32e: 03 30 cpi r16, 0x03 ; 3 - 330: 08 f0 brcs .+2 ; 0x334 - 332: b6 cf rjmp .-148 ; 0x2a0 - 334: 82 e0 ldi r24, 0x02 ; 2 - 336: 90 e0 ldi r25, 0x00 ; 0 - 338: 6c 01 movw r12, r24 - 33a: c9 18 sub r12, r9 - 33c: d1 08 sbc r13, r1 - 33e: 7e 2c mov r7, r14 - 340: 68 94 set - 342: 99 24 eor r9, r9 - 344: 97 f8 bld r9, 7 - 346: 81 2c mov r8, r1 - 348: 33 c0 rjmp .+102 ; 0x3b0 - 34a: 1c 15 cp r17, r12 - 34c: 1d 04 cpc r1, r13 - 34e: 09 f4 brne .+2 ; 0x352 - 350: 95 cf rjmp .-214 ; 0x27c - 352: a1 10 cpse r10, r1 - 354: 15 c0 rjmp .+42 ; 0x380 - 356: 20 2f mov r18, r16 - 358: 30 e0 ldi r19, 0x00 ; 0 - 35a: e1 e0 ldi r30, 0x01 ; 1 - 35c: f0 e0 ldi r31, 0x00 ; 0 - 35e: ec 0f add r30, r28 - 360: fd 1f adc r31, r29 - 362: e2 0f add r30, r18 - 364: f3 1f adc r31, r19 - 366: 80 81 ld r24, Z - 368: 81 11 cpse r24, r1 - 36a: 0a c0 rjmp .+20 ; 0x380 - 36c: 42 e0 ldi r20, 0x02 ; 2 - 36e: 50 e0 ldi r21, 0x00 ; 0 - 370: 4c 0f add r20, r28 - 372: 5d 1f adc r21, r29 - 374: 24 0f add r18, r20 - 376: 35 1f adc r19, r21 - 378: f9 01 movw r30, r18 - 37a: 90 81 ld r25, Z - 37c: 91 11 cpse r25, r1 - 37e: 0f c0 rjmp .+30 ; 0x39e - 380: f1 e0 ldi r31, 0x01 ; 1 - 382: bf 16 cp r11, r31 - 384: 09 f4 brne .+2 ; 0x388 - 386: 87 cf rjmp .-242 ; 0x296 - 388: e1 e0 ldi r30, 0x01 ; 1 - 38a: f0 e0 ldi r31, 0x00 ; 0 - 38c: ec 0f add r30, r28 - 38e: fd 1f adc r31, r29 - 390: e0 0f add r30, r16 - 392: f1 1d adc r31, r1 - 394: e0 81 ld r30, Z - 396: f0 e0 ldi r31, 0x00 ; 0 - 398: e2 5e subi r30, 0xE2 ; 226 - 39a: ff 4f sbci r31, 0xFF ; 255 - 39c: 84 91 lpm r24, Z - 39e: 61 2f mov r22, r17 - 3a0: c0 de rcall .-640 ; 0x122 - 3a2: 81 e0 ldi r24, 0x01 ; 1 - 3a4: 80 0f add r24, r16 - 3a6: 1f 5f subi r17, 0xFF ; 255 - 3a8: 0f 5f subi r16, 0xFF ; 255 - 3aa: 83 30 cpi r24, 0x03 ; 3 - 3ac: 08 f0 brcs .+2 ; 0x3b0 - 3ae: 78 cf rjmp .-272 ; 0x2a0 - 3b0: ee 20 and r14, r14 - 3b2: 59 f2 breq .-106 ; 0x34a - 3b4: 11 23 and r17, r17 - 3b6: 09 f4 brne .+2 ; 0x3ba - 3b8: 5a cf rjmp .-332 ; 0x26e - 3ba: 1c 15 cp r17, r12 - 3bc: 1d 04 cpc r1, r13 - 3be: 21 f7 brne .-56 ; 0x388 - 3c0: 83 e0 ldi r24, 0x03 ; 3 - 3c2: b8 16 cp r11, r24 - 3c4: 09 f3 breq .-62 ; 0x388 - 3c6: e1 e0 ldi r30, 0x01 ; 1 - 3c8: f0 e0 ldi r31, 0x00 ; 0 - 3ca: ec 0f add r30, r28 - 3cc: fd 1f adc r31, r29 - 3ce: e0 0f add r30, r16 - 3d0: f1 1d adc r31, r1 - 3d2: e0 81 ld r30, Z - 3d4: f0 e0 ldi r31, 0x00 ; 0 - 3d6: e2 5e subi r30, 0xE2 ; 226 - 3d8: ff 4f sbci r31, 0xFF ; 255 - 3da: e4 91 lpm r30, Z - 3dc: f2 e0 ldi r31, 0x02 ; 2 - 3de: 89 2d mov r24, r9 - 3e0: bf 16 cp r11, r31 - 3e2: 09 f4 brne .+2 ; 0x3e6 - 3e4: 53 cf rjmp .-346 ; 0x28c - 3e6: 8e 2b or r24, r30 - 3e8: da cf rjmp .-76 ; 0x39e - -000003ea
: - 3ea: cf 93 push r28 - 3ec: df 93 push r29 - 3ee: cd b7 in r28, 0x3d ; 61 - 3f0: de b7 in r29, 0x3e ; 62 - 3f2: 66 97 sbiw r28, 0x16 ; 22 - 3f4: 0f b6 in r0, 0x3f ; 63 - 3f6: f8 94 cli - 3f8: de bf out 0x3e, r29 ; 62 - 3fa: 0f be out 0x3f, r0 ; 63 - 3fc: cd bf out 0x3d, r28 ; 61 - 3fe: bb 9a sbi 0x17, 3 ; 23 - 400: c3 98 cbi 0x18, 3 ; 24 - 402: a8 95 wdr - 404: 88 e1 ldi r24, 0x18 ; 24 - 406: 98 e2 ldi r25, 0x28 ; 40 - 408: 0f b6 in r0, 0x3f ; 63 - 40a: f8 94 cli - 40c: a8 95 wdr - 40e: 81 bd out 0x21, r24 ; 33 - 410: 0f be out 0x3f, r0 ; 63 - 412: 91 bd out 0x21, r25 ; 33 - 414: 6b e0 ldi r22, 0x0B ; 11 - 416: ce 01 movw r24, r28 - 418: 01 96 adiw r24, 0x01 ; 1 - 41a: f7 d0 rcall .+494 ; 0x60a - 41c: 28 e0 ldi r18, 0x08 ; 8 - 41e: 42 e0 ldi r20, 0x02 ; 2 - 420: 62 e0 ldi r22, 0x02 ; 2 - 422: 80 e0 ldi r24, 0x00 ; 0 - 424: 64 de rcall .-824 ; 0xee - 426: 8d de rcall .-742 ; 0x142 - 428: 2f ef ldi r18, 0xFF ; 255 - 42a: 80 e7 ldi r24, 0x70 ; 112 - 42c: 92 e0 ldi r25, 0x02 ; 2 - 42e: 21 50 subi r18, 0x01 ; 1 - 430: 80 40 sbci r24, 0x00 ; 0 - 432: 90 40 sbci r25, 0x00 ; 0 - 434: e1 f7 brne .-8 ; 0x42e <__LOCK_REGION_LENGTH__+0x2e> - 436: 00 c0 rjmp .+0 ; 0x438 <__LOCK_REGION_LENGTH__+0x38> - 438: 00 00 nop - 43a: 04 e6 ldi r16, 0x64 ; 100 - 43c: 10 e0 ldi r17, 0x00 ; 0 - 43e: 0d c0 rjmp .+26 ; 0x45a <__LOCK_REGION_LENGTH__+0x5a> - 440: c3 9a sbi 0x18, 3 ; 24 - 442: 90 e0 ldi r25, 0x00 ; 0 - 444: 88 de rcall .-752 ; 0x156 - 446: 2f e7 ldi r18, 0x7F ; 127 - 448: 88 e3 ldi r24, 0x38 ; 56 - 44a: 91 e0 ldi r25, 0x01 ; 1 - 44c: 21 50 subi r18, 0x01 ; 1 - 44e: 80 40 sbci r24, 0x00 ; 0 - 450: 90 40 sbci r25, 0x00 ; 0 - 452: e1 f7 brne .-8 ; 0x44c <__LOCK_REGION_LENGTH__+0x4c> - 454: 00 c0 rjmp .+0 ; 0x456 <__LOCK_REGION_LENGTH__+0x56> - 456: 00 00 nop - 458: a8 95 wdr - 45a: ce 01 movw r24, r28 - 45c: 01 96 adiw r24, 0x01 ; 1 - 45e: 10 d1 rcall .+544 ; 0x680 - 460: 81 11 cpse r24, r1 - 462: ee cf rjmp .-36 ; 0x440 <__LOCK_REGION_LENGTH__+0x40> - 464: c3 98 cbi 0x18, 3 ; 24 - 466: ce 01 movw r24, r28 - 468: 01 96 adiw r24, 0x01 ; 1 - 46a: 24 d1 rcall .+584 ; 0x6b4 - 46c: 8b 89 ldd r24, Y+19 ; 0x13 - 46e: 9c 89 ldd r25, Y+20 ; 0x14 - 470: b8 01 movw r22, r16 - 472: b5 d1 rcall .+874 ; 0x7de <__udivmodhi4> - 474: 2d 89 ldd r18, Y+21 ; 0x15 - 476: 41 e0 ldi r20, 0x01 ; 1 - 478: 89 89 ldd r24, Y+17 ; 0x11 - 47a: 9a 89 ldd r25, Y+18 ; 0x12 - 47c: c5 de rcall .-630 ; 0x208 - 47e: a8 95 wdr - 480: ec cf rjmp .-40 ; 0x45a <__LOCK_REGION_LENGTH__+0x5a> - -00000482 : - 482: f8 94 cli - 484: bc 9a sbi 0x17, 4 ; 23 - 486: 8f eb ldi r24, 0xBF ; 191 - 488: 93 e0 ldi r25, 0x03 ; 3 - 48a: 01 97 sbiw r24, 0x01 ; 1 - 48c: f1 f7 brne .-4 ; 0x48a - 48e: 00 c0 rjmp .+0 ; 0x490 - 490: 00 00 nop - 492: bc 98 cbi 0x17, 4 ; 23 - 494: 9a eb ldi r25, 0xBA ; 186 - 496: 9a 95 dec r25 - 498: f1 f7 brne .-4 ; 0x496 - 49a: 00 c0 rjmp .+0 ; 0x49c - 49c: 86 b3 in r24, 0x16 ; 22 - 49e: e3 e3 ldi r30, 0x33 ; 51 - 4a0: f3 e0 ldi r31, 0x03 ; 3 - 4a2: 31 97 sbiw r30, 0x01 ; 1 - 4a4: f1 f7 brne .-4 ; 0x4a2 - 4a6: 00 c0 rjmp .+0 ; 0x4a8 - 4a8: 00 00 nop - 4aa: 78 94 sei - 4ac: 82 95 swap r24 - 4ae: 81 70 andi r24, 0x01 ; 1 - 4b0: 91 e0 ldi r25, 0x01 ; 1 - 4b2: 89 27 eor r24, r25 - 4b4: 08 95 ret - -000004b6 : - 4b6: 98 e0 ldi r25, 0x08 ; 8 - 4b8: 0d c0 rjmp .+26 ; 0x4d4 - 4ba: bc 9a sbi 0x17, 4 ; 23 - 4bc: 20 ea ldi r18, 0xA0 ; 160 - 4be: 2a 95 dec r18 - 4c0: f1 f7 brne .-4 ; 0x4be - 4c2: bc 98 cbi 0x17, 4 ; 23 - 4c4: 2a e1 ldi r18, 0x1A ; 26 - 4c6: 2a 95 dec r18 - 4c8: f1 f7 brne .-4 ; 0x4c6 - 4ca: 00 c0 rjmp .+0 ; 0x4cc - 4cc: 78 94 sei - 4ce: 86 95 lsr r24 - 4d0: 91 50 subi r25, 0x01 ; 1 - 4d2: 69 f0 breq .+26 ; 0x4ee - 4d4: f8 94 cli - 4d6: 80 ff sbrs r24, 0 - 4d8: f0 cf rjmp .-32 ; 0x4ba - 4da: bc 9a sbi 0x17, 4 ; 23 - 4dc: 20 e1 ldi r18, 0x10 ; 16 - 4de: 2a 95 dec r18 - 4e0: f1 f7 brne .-4 ; 0x4de - 4e2: bc 98 cbi 0x17, 4 ; 23 - 4e4: 2a ea ldi r18, 0xAA ; 170 - 4e6: 2a 95 dec r18 - 4e8: f1 f7 brne .-4 ; 0x4e6 - 4ea: 00 c0 rjmp .+0 ; 0x4ec - 4ec: ef cf rjmp .-34 ; 0x4cc - 4ee: 08 95 ret - -000004f0 : - 4f0: 98 e0 ldi r25, 0x08 ; 8 - 4f2: 80 e0 ldi r24, 0x00 ; 0 - 4f4: 07 c0 rjmp .+14 ; 0x504 - 4f6: 22 e9 ldi r18, 0x92 ; 146 - 4f8: 2a 95 dec r18 - 4fa: f1 f7 brne .-4 ; 0x4f8 - 4fc: 00 c0 rjmp .+0 ; 0x4fe - 4fe: 78 94 sei - 500: 91 50 subi r25, 0x01 ; 1 - 502: 71 f0 breq .+28 ; 0x520 - 504: f8 94 cli - 506: 86 95 lsr r24 - 508: bc 9a sbi 0x17, 4 ; 23 - 50a: 20 e1 ldi r18, 0x10 ; 16 - 50c: 2a 95 dec r18 - 50e: f1 f7 brne .-4 ; 0x50c - 510: bc 98 cbi 0x17, 4 ; 23 - 512: 28 e1 ldi r18, 0x18 ; 24 - 514: 2a 95 dec r18 - 516: f1 f7 brne .-4 ; 0x514 - 518: b4 9b sbis 0x16, 4 ; 22 - 51a: ed cf rjmp .-38 ; 0x4f6 - 51c: 80 68 ori r24, 0x80 ; 128 - 51e: eb cf rjmp .-42 ; 0x4f6 - 520: 08 95 ret - -00000522 : - 522: af df rcall .-162 ; 0x482 - 524: 81 11 cpse r24, r1 - 526: 01 c0 rjmp .+2 ; 0x52a - 528: 08 95 ret - 52a: 8c ec ldi r24, 0xCC ; 204 - 52c: c4 df rcall .-120 ; 0x4b6 - 52e: 81 e0 ldi r24, 0x01 ; 1 - 530: fb cf rjmp .-10 ; 0x528 - -00000532 : - 532: 0f 93 push r16 - 534: 1f 93 push r17 - 536: cf 93 push r28 - 538: df 93 push r29 - 53a: 8c 01 movw r16, r24 - 53c: a2 df rcall .-188 ; 0x482 - 53e: 81 11 cpse r24, r1 - 540: 05 c0 rjmp .+10 ; 0x54c - 542: df 91 pop r29 - 544: cf 91 pop r28 - 546: 1f 91 pop r17 - 548: 0f 91 pop r16 - 54a: 08 95 ret - 54c: 83 e3 ldi r24, 0x33 ; 51 - 54e: b3 df rcall .-154 ; 0x4b6 - 550: e8 01 movw r28, r16 - 552: 08 5f subi r16, 0xF8 ; 248 - 554: 1f 4f sbci r17, 0xFF ; 255 - 556: cc df rcall .-104 ; 0x4f0 - 558: 89 93 st Y+, r24 - 55a: c0 17 cp r28, r16 - 55c: d1 07 cpc r29, r17 - 55e: d9 f7 brne .-10 ; 0x556 - 560: 81 e0 ldi r24, 0x01 ; 1 - 562: ef cf rjmp .-34 ; 0x542 - -00000564 : - 564: fc 01 movw r30, r24 - 566: 68 0f add r22, r24 - 568: 79 1f adc r23, r25 - 56a: 80 e0 ldi r24, 0x00 ; 0 - 56c: 2c e8 ldi r18, 0x8C ; 140 - 56e: 0b c0 rjmp .+22 ; 0x586 - 570: 86 95 lsr r24 - 572: 91 50 subi r25, 0x01 ; 1 - 574: 29 f0 breq .+10 ; 0x580 - 576: 80 ff sbrs r24, 0 - 578: fb cf rjmp .-10 ; 0x570 - 57a: 86 95 lsr r24 - 57c: 82 27 eor r24, r18 - 57e: f9 cf rjmp .-14 ; 0x572 - 580: e6 17 cp r30, r22 - 582: f7 07 cpc r31, r23 - 584: 21 f0 breq .+8 ; 0x58e - 586: 91 91 ld r25, Z+ - 588: 89 27 eor r24, r25 - 58a: 98 e0 ldi r25, 0x08 ; 8 - 58c: f4 cf rjmp .-24 ; 0x576 - 58e: 08 95 ret - -00000590 : - 590: ef 92 push r14 - 592: ff 92 push r15 - 594: 0f 93 push r16 - 596: 1f 93 push r17 - 598: cf 93 push r28 - 59a: df 93 push r29 - 59c: 7c 01 movw r14, r24 - 59e: c1 df rcall .-126 ; 0x522 - 5a0: 8e eb ldi r24, 0xBE ; 190 - 5a2: 89 df rcall .-238 ; 0x4b6 - 5a4: e7 01 movw r28, r14 - 5a6: 87 01 movw r16, r14 - 5a8: 08 5f subi r16, 0xF8 ; 248 - 5aa: 1f 4f sbci r17, 0xFF ; 255 - 5ac: a1 df rcall .-190 ; 0x4f0 - 5ae: 89 93 st Y+, r24 - 5b0: c0 17 cp r28, r16 - 5b2: d1 07 cpc r29, r17 - 5b4: d9 f7 brne .-10 ; 0x5ac - 5b6: 68 e0 ldi r22, 0x08 ; 8 - 5b8: 70 e0 ldi r23, 0x00 ; 0 - 5ba: c7 01 movw r24, r14 - 5bc: d3 df rcall .-90 ; 0x564 - 5be: c8 2f mov r28, r24 - 5c0: 97 df rcall .-210 ; 0x4f0 - 5c2: 91 e0 ldi r25, 0x01 ; 1 - 5c4: c8 13 cpse r28, r24 - 5c6: 90 e0 ldi r25, 0x00 ; 0 - 5c8: 89 2f mov r24, r25 - 5ca: df 91 pop r29 - 5cc: cf 91 pop r28 - 5ce: 1f 91 pop r17 - 5d0: 0f 91 pop r16 - 5d2: ff 90 pop r15 - 5d4: ef 90 pop r14 - 5d6: 08 95 ret - -000005d8 : - 5d8: 54 df rcall .-344 ; 0x482 - 5da: 81 11 cpse r24, r1 - 5dc: 01 c0 rjmp .+2 ; 0x5e0 - 5de: 08 95 ret - 5e0: a0 df rcall .-192 ; 0x522 - 5e2: 88 e4 ldi r24, 0x48 ; 72 - 5e4: 68 df rcall .-304 ; 0x4b6 - 5e6: 81 e0 ldi r24, 0x01 ; 1 - 5e8: fa cf rjmp .-12 ; 0x5de - -000005ea : - 5ea: cf 93 push r28 - 5ec: df 93 push r29 - 5ee: ec 01 movw r28, r24 - 5f0: 98 df rcall .-208 ; 0x522 - 5f2: 8e e4 ldi r24, 0x4E ; 78 - 5f4: 60 df rcall .-320 ; 0x4b6 - 5f6: 88 81 ld r24, Y - 5f8: 5e df rcall .-324 ; 0x4b6 - 5fa: 89 81 ldd r24, Y+1 ; 0x01 - 5fc: 5c df rcall .-328 ; 0x4b6 - 5fe: 8a 81 ldd r24, Y+2 ; 0x02 - 600: 5a df rcall .-332 ; 0x4b6 - 602: ea df rcall .-44 ; 0x5d8 - 604: df 91 pop r29 - 606: cf 91 pop r28 - 608: 08 95 ret - -0000060a : - 60a: ff 92 push r15 - 60c: 0f 93 push r16 - 60e: 1f 93 push r17 - 610: cf 93 push r28 - 612: df 93 push r29 - 614: 00 d0 rcall .+0 ; 0x616 - 616: 1f 92 push r1 - 618: cd b7 in r28, 0x3d ; 61 - 61a: de b7 in r29, 0x3e ; 62 - 61c: 8c 01 movw r16, r24 - 61e: f6 2e mov r15, r22 - 620: b7 df rcall .-146 ; 0x590 - 622: f8 01 movw r30, r16 - 624: 82 81 ldd r24, Z+2 ; 0x02 - 626: 89 83 std Y+1, r24 ; 0x01 - 628: 83 81 ldd r24, Z+3 ; 0x03 - 62a: 8a 83 std Y+2, r24 ; 0x02 - 62c: fa e0 ldi r31, 0x0A ; 10 - 62e: ff 16 cp r15, r31 - 630: b9 f0 breq .+46 ; 0x660 - 632: 8b e0 ldi r24, 0x0B ; 11 - 634: f8 16 cp r15, r24 - 636: 89 f0 breq .+34 ; 0x65a - 638: e9 e0 ldi r30, 0x09 ; 9 - 63a: fe 16 cp r15, r30 - 63c: a1 f0 breq .+40 ; 0x666 - 63e: 8f e7 ldi r24, 0x7F ; 127 - 640: 8b 83 std Y+3, r24 ; 0x03 - 642: ce 01 movw r24, r28 - 644: 01 96 adiw r24, 0x01 ; 1 - 646: d1 df rcall .-94 ; 0x5ea - 648: 0f 90 pop r0 - 64a: 0f 90 pop r0 - 64c: 0f 90 pop r0 - 64e: df 91 pop r29 - 650: cf 91 pop r28 - 652: 1f 91 pop r17 - 654: 0f 91 pop r16 - 656: ff 90 pop r15 - 658: 08 95 ret - 65a: 8f e5 ldi r24, 0x5F ; 95 - 65c: 8b 83 std Y+3, r24 ; 0x03 - 65e: f1 cf rjmp .-30 ; 0x642 - 660: 8f e3 ldi r24, 0x3F ; 63 - 662: 8b 83 std Y+3, r24 ; 0x03 - 664: ee cf rjmp .-36 ; 0x642 - 666: 8f e1 ldi r24, 0x1F ; 31 - 668: 8b 83 std Y+3, r24 ; 0x03 - 66a: eb cf rjmp .-42 ; 0x642 - -0000066c : - 66c: 0a df rcall .-492 ; 0x482 - 66e: 81 11 cpse r24, r1 - 670: 01 c0 rjmp .+2 ; 0x674 - 672: 08 95 ret - 674: 8c ec ldi r24, 0xCC ; 204 - 676: 1f df rcall .-450 ; 0x4b6 - 678: 84 e4 ldi r24, 0x44 ; 68 - 67a: 1d df rcall .-454 ; 0x4b6 - 67c: 81 e0 ldi r24, 0x01 ; 1 - 67e: f9 cf rjmp .-14 ; 0x672 - -00000680 : - 680: cf 93 push r28 - 682: df 93 push r29 - 684: ec 01 movw r28, r24 - 686: fd de rcall .-518 ; 0x482 - 688: 81 11 cpse r24, r1 - 68a: 04 c0 rjmp .+8 ; 0x694 - 68c: 81 e0 ldi r24, 0x01 ; 1 - 68e: df 91 pop r29 - 690: cf 91 pop r28 - 692: 08 95 ret - 694: ce 01 movw r24, r28 - 696: 08 96 adiw r24, 0x08 ; 8 - 698: 4c df rcall .-360 ; 0x532 - 69a: 88 85 ldd r24, Y+8 ; 0x08 - 69c: 88 32 cpi r24, 0x28 ; 40 - 69e: 11 f0 breq .+4 ; 0x6a4 - 6a0: 82 e0 ldi r24, 0x02 ; 2 - 6a2: f5 cf rjmp .-22 ; 0x68e - 6a4: ce 01 movw r24, r28 - 6a6: 74 df rcall .-280 ; 0x590 - 6a8: 88 23 and r24, r24 - 6aa: 11 f0 breq .+4 ; 0x6b0 - 6ac: 80 e0 ldi r24, 0x00 ; 0 - 6ae: ef cf rjmp .-34 ; 0x68e - 6b0: 83 e0 ldi r24, 0x03 ; 3 - 6b2: ed cf rjmp .-38 ; 0x68e - -000006b4 : - 6b4: cf 93 push r28 - 6b6: df 93 push r29 - 6b8: ec 01 movw r28, r24 - 6ba: d8 df rcall .-80 ; 0x66c - 6bc: 88 23 and r24, r24 - 6be: 09 f4 brne .+2 ; 0x6c2 - 6c0: 5e c0 rjmp .+188 ; 0x77e - 6c2: 2c 81 ldd r18, Y+4 ; 0x04 - 6c4: 82 2f mov r24, r18 - 6c6: 90 e0 ldi r25, 0x00 ; 0 - 6c8: 80 95 com r24 - 6ca: 90 95 com r25 - 6cc: 80 76 andi r24, 0x60 ; 96 - 6ce: 99 27 eor r25, r25 - 6d0: 89 2b or r24, r25 - 6d2: 09 f0 breq .+2 ; 0x6d6 - 6d4: 57 c0 rjmp .+174 ; 0x784 - 6d6: 2f e7 ldi r18, 0x7F ; 127 - 6d8: 3f e4 ldi r19, 0x4F ; 79 - 6da: 82 e1 ldi r24, 0x12 ; 18 - 6dc: 21 50 subi r18, 0x01 ; 1 - 6de: 30 40 sbci r19, 0x00 ; 0 - 6e0: 80 40 sbci r24, 0x00 ; 0 - 6e2: e1 f7 brne .-8 ; 0x6dc - 6e4: 00 c0 rjmp .+0 ; 0x6e6 - 6e6: 00 00 nop - 6e8: ce 01 movw r24, r28 - 6ea: 52 df rcall .-348 ; 0x590 - 6ec: 88 23 and r24, r24 - 6ee: 09 f4 brne .+2 ; 0x6f2 - 6f0: 6b c0 rjmp .+214 ; 0x7c8 - 6f2: 1d 8a std Y+21, r1 ; 0x15 - 6f4: 89 81 ldd r24, Y+1 ; 0x01 - 6f6: 90 e0 ldi r25, 0x00 ; 0 - 6f8: 48 81 ld r20, Y - 6fa: 24 2f mov r18, r20 - 6fc: 38 2f mov r19, r24 - 6fe: 33 23 and r19, r19 - 700: 0c f4 brge .+2 ; 0x704 - 702: 65 c0 rjmp .+202 ; 0x7ce - 704: 35 95 asr r19 - 706: 27 95 ror r18 - 708: 35 95 asr r19 - 70a: 27 95 ror r18 - 70c: 35 95 asr r19 - 70e: 27 95 ror r18 - 710: 35 95 asr r19 - 712: 27 95 ror r18 - 714: 39 8b std Y+17, r19 ; 0x11 - 716: 28 8b std Y+16, r18 ; 0x10 - 718: 80 95 com r24 - 71a: 90 95 com r25 - 71c: 88 7f andi r24, 0xF8 ; 248 - 71e: 99 27 eor r25, r25 - 720: 89 2b or r24, r25 - 722: 09 f0 breq .+2 ; 0x726 - 724: 57 c0 rjmp .+174 ; 0x7d4 - 726: 81 e0 ldi r24, 0x01 ; 1 - 728: 8c 8b std Y+20, r24 ; 0x14 - 72a: 41 95 neg r20 - 72c: 48 83 st Y, r20 - 72e: 88 81 ld r24, Y - 730: 8f 70 andi r24, 0x0F ; 15 - 732: 28 2f mov r18, r24 - 734: 30 e0 ldi r19, 0x00 ; 0 - 736: c9 01 movw r24, r18 - 738: 88 0f add r24, r24 - 73a: 99 1f adc r25, r25 - 73c: 82 95 swap r24 - 73e: 92 95 swap r25 - 740: 90 7f andi r25, 0xF0 ; 240 - 742: 98 27 eor r25, r24 - 744: 80 7f andi r24, 0xF0 ; 240 - 746: 98 27 eor r25, r24 - 748: 82 1b sub r24, r18 - 74a: 93 0b sbc r25, r19 - 74c: 88 0f add r24, r24 - 74e: 99 1f adc r25, r25 - 750: 88 0f add r24, r24 - 752: 99 1f adc r25, r25 - 754: 82 0f add r24, r18 - 756: 93 1f adc r25, r19 - 758: 88 0f add r24, r24 - 75a: 99 1f adc r25, r25 - 75c: 88 0f add r24, r24 - 75e: 99 1f adc r25, r25 - 760: 88 0f add r24, r24 - 762: 99 1f adc r25, r25 - 764: 9c 01 movw r18, r24 - 766: 99 23 and r25, r25 - 768: bc f1 brlt .+110 ; 0x7d8 - 76a: 35 95 asr r19 - 76c: 27 95 ror r18 - 76e: 35 95 asr r19 - 770: 27 95 ror r18 - 772: 35 95 asr r19 - 774: 27 95 ror r18 - 776: 35 95 asr r19 - 778: 27 95 ror r18 - 77a: 3b 8b std Y+19, r19 ; 0x13 - 77c: 2a 8b std Y+18, r18 ; 0x12 - 77e: df 91 pop r29 - 780: cf 91 pop r28 - 782: 08 95 ret - 784: 26 ff sbrs r18, 6 - 786: 0a c0 rjmp .+20 ; 0x79c - 788: 9f eb ldi r25, 0xBF ; 191 - 78a: 27 e2 ldi r18, 0x27 ; 39 - 78c: 39 e0 ldi r19, 0x09 ; 9 - 78e: 91 50 subi r25, 0x01 ; 1 - 790: 20 40 sbci r18, 0x00 ; 0 - 792: 30 40 sbci r19, 0x00 ; 0 - 794: e1 f7 brne .-8 ; 0x78e - 796: 00 c0 rjmp .+0 ; 0x798 - 798: 00 00 nop - 79a: a6 cf rjmp .-180 ; 0x6e8 - 79c: 25 ff sbrs r18, 5 - 79e: 0a c0 rjmp .+20 ; 0x7b4 - 7a0: 8f ef ldi r24, 0xFF ; 255 - 7a2: 96 e9 ldi r25, 0x96 ; 150 - 7a4: 24 e0 ldi r18, 0x04 ; 4 - 7a6: 81 50 subi r24, 0x01 ; 1 - 7a8: 90 40 sbci r25, 0x00 ; 0 - 7aa: 20 40 sbci r18, 0x00 ; 0 - 7ac: e1 f7 brne .-8 ; 0x7a6 - 7ae: 00 c0 rjmp .+0 ; 0x7b0 - 7b0: 00 00 nop - 7b2: 9a cf rjmp .-204 ; 0x6e8 - 7b4: 3f e7 ldi r19, 0x7F ; 127 - 7b6: 8b e4 ldi r24, 0x4B ; 75 - 7b8: 92 e0 ldi r25, 0x02 ; 2 - 7ba: 31 50 subi r19, 0x01 ; 1 - 7bc: 80 40 sbci r24, 0x00 ; 0 - 7be: 90 40 sbci r25, 0x00 ; 0 - 7c0: e1 f7 brne .-8 ; 0x7ba - 7c2: 00 c0 rjmp .+0 ; 0x7c4 - 7c4: 00 00 nop - 7c6: 90 cf rjmp .-224 ; 0x6e8 - 7c8: 81 e0 ldi r24, 0x01 ; 1 - 7ca: 8d 8b std Y+21, r24 ; 0x15 - 7cc: d8 cf rjmp .-80 ; 0x77e - 7ce: 21 5f subi r18, 0xF1 ; 241 - 7d0: 3f 4f sbci r19, 0xFF ; 255 - 7d2: 98 cf rjmp .-208 ; 0x704 - 7d4: 1c 8a std Y+20, r1 ; 0x14 - 7d6: ab cf rjmp .-170 ; 0x72e - 7d8: 21 5f subi r18, 0xF1 ; 241 - 7da: 3f 4f sbci r19, 0xFF ; 255 - 7dc: c6 cf rjmp .-116 ; 0x76a - -000007de <__udivmodhi4>: - 7de: aa 1b sub r26, r26 - 7e0: bb 1b sub r27, r27 - 7e2: 51 e1 ldi r21, 0x11 ; 17 - 7e4: 07 c0 rjmp .+14 ; 0x7f4 <__udivmodhi4_ep> - -000007e6 <__udivmodhi4_loop>: - 7e6: aa 1f adc r26, r26 - 7e8: bb 1f adc r27, r27 - 7ea: a6 17 cp r26, r22 - 7ec: b7 07 cpc r27, r23 - 7ee: 10 f0 brcs .+4 ; 0x7f4 <__udivmodhi4_ep> - 7f0: a6 1b sub r26, r22 - 7f2: b7 0b sbc r27, r23 - -000007f4 <__udivmodhi4_ep>: - 7f4: 88 1f adc r24, r24 - 7f6: 99 1f adc r25, r25 - 7f8: 5a 95 dec r21 - 7fa: a9 f7 brne .-22 ; 0x7e6 <__udivmodhi4_loop> - 7fc: 80 95 com r24 - 7fe: 90 95 com r25 - 800: bc 01 movw r22, r24 - 802: cd 01 movw r24, r26 - 804: 08 95 ret - -00000806 <__divmodhi4>: - 806: 97 fb bst r25, 7 - 808: 07 2e mov r0, r23 - 80a: 16 f4 brtc .+4 ; 0x810 <__divmodhi4+0xa> - 80c: 00 94 com r0 - 80e: 06 d0 rcall .+12 ; 0x81c <__divmodhi4_neg1> - 810: 77 fd sbrc r23, 7 - 812: 08 d0 rcall .+16 ; 0x824 <__divmodhi4_neg2> - 814: e4 df rcall .-56 ; 0x7de <__udivmodhi4> - 816: 07 fc sbrc r0, 7 - 818: 05 d0 rcall .+10 ; 0x824 <__divmodhi4_neg2> - 81a: 3e f4 brtc .+14 ; 0x82a <__divmodhi4_exit> - -0000081c <__divmodhi4_neg1>: - 81c: 90 95 com r25 - 81e: 81 95 neg r24 - 820: 9f 4f sbci r25, 0xFF ; 255 - 822: 08 95 ret - -00000824 <__divmodhi4_neg2>: - 824: 70 95 com r23 - 826: 61 95 neg r22 - 828: 7f 4f sbci r23, 0xFF ; 255 - -0000082a <__divmodhi4_exit>: - 82a: 08 95 ret - -0000082c <_exit>: - 82c: f8 94 cli - -0000082e <__stop_program>: - 82e: ff cf rjmp .-2 ; 0x82e <__stop_program> diff --git a/firmware/dist/default/production/attiny45v_thermometer.X.production.elf b/firmware/dist/default/production/firmware.production.elf similarity index 56% rename from firmware/dist/default/production/attiny45v_thermometer.X.production.elf rename to firmware/dist/default/production/firmware.production.elf index 4e3d78303ddb385724b3b2d25e5b6fdf4e62aa90..72b9eb1a179096a9cfb06039d3b5b45e87d46996 100755 GIT binary patch delta 1136 zcmZ9KUr5tY6vxl~ZL<{xbGp$+xZgIK7RIC`Qmp)wwf;OP_V>vWtsrx`Ad(U{^kF~s zVRA84?4_3m^%ASdH%W^k6DLGH$oiGhA0e6vl`q-%Zok3WdAPs(Ip=%NIrsc-wC+<~ zM3(gOkjrK88Hs#DhxhB3;(5~#2HP2{;;ZZ^v&QPB0%jYWALxC>CRljBzxO$7{d`63 zofjPBox0cZ$#~e^m<*NWCqt@ncxo)9M$~(W)P5ug58tOR+q5!QqSmS{YEV6%=;k-{ zwu)KCZtaQ>DC5c#HXYxg)ToLwro2c*hehPk`>?xn#rq|^IHWoog4L1g55H-WC_0>s zz0o(B@;9R8v@z<#<}a_XIGp8K-iPp3W$`m`E$^~8*g-yu)yF3+UUr0kvv^%M4Me4g zn~BjSM)YePQ3=>2F}erY=LSlhNA~QG%y%{X@r8??K1=9jXyCE1uf^to8 z2#n@aW}@Y_6RCu077d*T7hyskxWr8Z;OvIGg&z5YiSwgiF%@AZoWH9>{S6RA;1C_% zhu}2!MH)ZKNjM2UOF=}_3EzSySck#G&1>Mr$JUbEtrjNp9c zA(VoRhM3(xC7GMrI>&@gEKgUbaDYvvIynF2>r3b%uAz z#gcJ7zax8C34aMN<@2AiN0Q9k?({H)*Eov}?FB?CzwC5xK4vG{i*gy$u1)^{?rJEzv9+Px~9h`A*`L@&8X578eArGg+sB%%ZpB6~14)52-O z#xKLHm+B#Vh>&UITd<5G%3UD{AI6Q!KrA$Z{=BU3nRjsWz<&39e&>77Ilps%``j|w zlF*b_zGPLED^yGrO77q5Tr~csr*3o!5t4tz0a23Lr+9=nwlFgAM$C%7h2ephqI2nj z*}K4eQT90A%2UqJ=3kjwGh%j_F|#u}D(^VG;q*kp9Lfg24t+|R`jJ?3qWR-5dQLPs z_D+afs?qQMKA#?Ezs4Ae-;F;LGsez%*o?;~;&a)_v6a*}XRGS|xrr_i0Tn9B|+x}Q5M;2!KxzYGI$wr z&5BF#4)|;;^bf%y*;5fj#(NdrA|c&dx}#l1L}gHL##x1EcV5p~1kG*W47dsvR7-Dy zpE`;5So{M_)Xxhv3gy5bpf3e;ey<}R$}ikewS%H`6$zRwK@$Y%(h{uYBDNQ}p;mAa zM&*ZskK7KnH++uu$j7GATJAcS$HT@2Z-STc8wYbkw;fTU69AqQZ`?=Fp71gFG{q2I zPxt~{FbxIfH|Q5P@E6wG8Y+Tcf{Axvo9p?Su@S+M3!k77Z10%kc0LGhw?@Pbw8=wW zU-Tq)?QNd{XHlZ?p?blWz-O(p2A=iBSYR6Fcnxu$D;v*s7>w@n#&gWTE9g1?0C8Kr zPZhUgC4T{$D`v!G+Or!WD47yZmD<=fEwA;r+rz@Pb#JsYqp7Np0QkamaeD z4A(ZSRl5ecPq|C?$UaRKgK|_0h-o>a1(eldnbrJ4l`cJ?{8nXy?pK!G@|f-yhvgML V;A-;_W#l8h+Er7@|1m@N`~!Gtyi5Q9 diff --git a/firmware/dist/default/production/firmware.production.hex b/firmware/dist/default/production/firmware.production.hex new file mode 100644 index 0000000..2936092 --- /dev/null +++ b/firmware/dist/default/production/firmware.production.hex @@ -0,0 +1,134 @@ +:1000000013C01AC019C018C017C016C015C014C03C +:1000100013C012C011C010C00FC00EC00DC03F06EB +:100020005B4F666D7D077F6F11241FBECFE5D1E06A +:10003000DEBFCDBFEAD106C4E3CFF894C09AC29A1E +:100040008DE08A95F1F70000C0988DE08A95F1F770 +:100050000000C29878940895F894C298C0988DE0F2 +:100060008A95F1F70000C29A8DE08A95F1F70000B9 +:10007000C09A78940895F8942DE02A95F1F700003D +:1000800098E00DC0C09886952DE02A95F1F7000004 +:10009000C29A2DE02A95F1F70000915049F0C298DC +:1000A0002DE02A95F1F7000080FFECCFC09AEBCF4E +:1000B000B898C298C09A8DE08A95F1F7000086B38F +:1000C000C29A9DE09A95F1F70000C2982DE02A951A +:1000D000F1F70000B89A7894809581700895CF93D5 +:1000E000C82FABDF8C2FC7DFB7DFCF91089597B351 +:1000F000A1E0B0E0FD0102C0EE0FFF1F8A95E2F71C +:1001000002C0AA0FBB1F6A95E2F7EA2B9E2B97BB92 +:1001100088B3E095E823E8BB842F8068822BDFDF7B +:100120000895CF93DF93C82FD62F80E4D8DF85DFE3 +:100130008D2F806CA0DF8C2F9EDF8EDFDF91CF9123 +:10014000089562E080E4EDDF61E080E4EADF60E0F2 +:1001500080E4E7DF0895BF92CF92DF92EF92FF92A3 +:100160000F931F93CF93DF938C01EC01083E83E044 +:10017000180714F0C7EED3E0112354F00F2EF3E06C +:10018000DF2EF02D0F2EFAE0EF2EF12CF02D17C000 +:10019000D195C195D10960E080E4C3DFEFCFDA9457 +:1001A000CE01B7013CD3B62EC72E825E9F4FFC0115 +:1001B00084916D2DB6DFCB2DDC2DDD2029F01123B0 +:1001C00074F7E1E0DE12EBCFDF91CF911F910F9139 +:1001D000FF90EF90DF90CF90BF900895992384F027 +:1001E00021E08A30910554F021E0EAE0F0E0BF011F +:1001F00016D3CB012F5F6A307105CCF7822F08959B +:10020000919581959109ECCF7F928F929F92AF92B9 +:10021000BF92CF92DF92EF92FF920F931F93CF93F3 +:10022000DF9300D01F92CDB7DEB7F62E942EE22ECC +:1002300099230CF44DC021E0E11001C020E06C01D5 +:10024000883E934034F00F2EF7EECF2EF3E0DF2EF2 +:10025000F02DE11008C0C601C1DFB82E52E08513B1 +:100260004CC010E04BC0E22E3FC00B2D63C0682D88 +:1002700080E457DF81E0800F1E2D96C0E3E0BE12C0 +:10028000A2C0E11081C0A1107FC065C0882DE1101F +:10029000AAC0892DA8C0872D023009F080C074C083 +:1002A000EF2DF0E0E25EFF4F8491612F3ADF0F9077 +:1002B0000F900F90DF91CF911F910F91FF90EF90D2 +:1002C000DF90CF90BF90AF909F908F907F900895D8 +:1002D0006C01883E934034F00F2EF7EECF2EF3E002 +:1002E000DF2EF02DEE24E394D194C194D108C60101 +:1002F00075DFB82E52E011E0851310E02AE030E0FF +:10030000C601B9018CD28B83CB01B90188D28A8313 +:10031000C60164E670E083D2CB01B90180D2A82E79 +:10032000898381E0B81609F4A0CF03E00B190330EC +:1003300008F0B6CF82E090E06C01C918D1087E2C9D +:100340006894992497F8812C33C01C151D0409F476 +:1003500095CFA11015C0202F30E0E1E0F0E0EC0FC8 +:10036000FD1FE20FF31F808181110AC042E050E0BF +:100370004C0F5D1F240F351FF901908191110FC0A3 +:10038000F1E0BF1609F487CFE1E0F0E0EC0FFD1FCC +:10039000E00FF11DE081F0E0E25EFF4F8491612FFC +:1003A000C0DE81E0800F1F5F0F5F833008F078CFE1 +:1003B000EE2059F2112309F45ACF1C151D0421F720 +:1003C00083E0B81609F3E1E0F0E0EC0FFD1FE00F69 +:1003D000F11DE081F0E0E25EFF4FE491F2E0892D53 +:1003E000BF1609F453CF8E2BDACF56D1882351F0A4 +:1003F000813011F081E00895C39A81E090E0ABDE96 +:1004000081E00895C39880E00895CF93DF93CDB73E +:10041000DEB766970FB6F894DEBF0FBECDBFBB9AAE +:10042000C398A89588E198E20FB6F894A89581BD85 +:100430000FBE91BD6BE0CE010196F3D028E042E003 +:1004400062E080E054DE7DDE2FEF80E792E0215015 +:1004500080409040E1F700C0000004E610E00DC0CD +:10046000CE01019633D18B899C89B801C4D12D89E5 +:1004700041E089899A89C8DEA895CE010196B5DF49 +:10048000882371F32FE788E391E02150804090406A +:10049000E1F700C00000A895F0CFF894BC9A8FEB6C +:1004A00093E00197F1F700C00000BC989AEB9A9591 +:1004B000F1F700C086B3E3E3F3E03197F1F700C052 +:1004C000000078948295817091E08927089598E0E2 +:1004D0000DC0BC9A20EA2A95F1F7BC982AE12A952A +:1004E000F1F700C078948695915069F0F89480FFF8 +:1004F000F0CFBC9A20E12A95F1F7BC982AEA2A9518 +:10050000F1F700C0EFCF089598E080E007C022E93E +:100510002A95F1F700C07894915071F0F89486957F +:10052000BC9A20E12A95F1F7BC9828E12A95F1F7C9 +:10053000B49BEDCF8068EBCF0895AFDF811101C090 +:1005400008958CECC4DF81E0FBCF0F931F93CF9312 +:10055000DF938C01A2DF811105C0DF91CF911F9144 +:100560000F91089583E3B3DFE801085F1F4FCCDFED +:100570008993C017D107D9F781E0EFCFFC01680F4D +:10058000791F80E02CE80BC08695915029F080FF00 +:10059000FBCF86958227F9CFE617F70721F09191D7 +:1005A000892798E0F4CF0895EF92FF920F931F935D +:1005B000CF93DF937C01C1DF8EEB89DFE7018701F9 +:1005C000085F1F4FA1DF8993C017D107D9F768E0F3 +:1005D00070E0C701D3DFC82F97DF91E0C81390E028 +:1005E000892FDF91CF911F910F91FF90EF90089588 +:1005F00054DF811101C00895A0DF88E468DF81E045 +:10060000FACFCF93DF93EC0198DF8EE460DF88812F +:100610005EDF89815CDF8A815ADFEADFDF91CF917B +:100620000895FF920F931F93CF93DF9300D01F92F3 +:10063000CDB7DEB78C01F62EB7DFF8018281898352 +:1006400083818A83FAE0FF16B9F08BE0F81689F00F +:10065000E9E0FE16A1F08FE78B83CE010196D1DF92 +:100660000F900F900F90DF91CF911F910F91FF90FE +:1006700008958FE58B83F1CF8FE38B83EECF8FE1EE +:100680008B83EBCF0ADF811101C008958CEC1FDF53 +:1006900084E41DDF81E0F9CFCF93DF93EC01FDDE31 +:1006A000811104C081E0DF91CF910895CE010896B9 +:1006B0004CDF8885883211F082E0F5CFCE0174DFFF +:1006C000882311F080E0EFCF83E0EDCFCF93DF936D +:1006D000EC01D8DF882309F45EC02C81822F90E0E2 +:1006E0008095909580769927892B09F057C02FE740 +:1006F0003FE482E1215030408040E1F700C000003B +:10070000CE0152DF882309F46BC01D8A898190E0F5 +:100710004881242F382F33230CF465C03595279555 +:10072000359527953595279535952795398B288BC0 +:1007300080959095887F9927892B09F057C081E093 +:100740008C8B4195488388818F70282F30E0C901B8 +:10075000880F991F82959295907F9827807F982780 +:10076000821B930B880F991F880F991F820F931F6D +:10077000880F991F880F991F880F991F9C01992333 +:10078000BCF1359527953595279535952795359560 +:1007900027953B8B2A8BDF91CF91089526FF0AC0C6 +:1007A0009FEB27E239E0915020403040E1F700C054 +:1007B0000000A6CF25FF0AC08FEF96E924E0815004 +:1007C00090402040E1F700C000009ACF3FE78BE463 +:1007D00092E0315080409040E1F700C0000090CF9F +:1007E00081E08D8BD8CF215F3F4F98CF1C8AABCF54 +:1007F000215F3F4FC6CFAA1BBB1B51E107C0AA1FF9 +:10080000BB1FA617B70710F0A61BB70B881F991FB1 +:100810005A95A9F780959095BC01CD01089597FB55 +:10082000072E16F4009406D077FD08D0E4DF07FC0D +:1008300005D03EF4909581959F4F089570956195F0 +:080840007F4F0895F894FFCFEB +:00000001FF diff --git a/firmware/dist/default/production/firmware.production.lss b/firmware/dist/default/production/firmware.production.lss new file mode 100644 index 0000000..2c4f02d --- /dev/null +++ b/firmware/dist/default/production/firmware.production.lss @@ -0,0 +1,1159 @@ + +dist/default/production/firmware.production.elf: file format elf32-avr + +Sections: +Idx Name Size VMA LMA File off Algn + 0 .text 00000848 00000000 00000000 00000054 2**1 + CONTENTS, ALLOC, LOAD, READONLY, CODE + 1 .data 00000000 00800060 00800060 0000089c 2**0 + CONTENTS, ALLOC, LOAD, DATA + 2 .comment 00000030 00000000 00000000 0000089c 2**0 + CONTENTS, READONLY + 3 .note.gnu.avr.deviceinfo 0000003c 00000000 00000000 000008cc 2**2 + CONTENTS, READONLY + 4 .debug_info 00000420 00000000 00000000 00000908 2**0 + CONTENTS, READONLY, DEBUGGING + 5 .debug_abbrev 000003e8 00000000 00000000 00000d28 2**0 + CONTENTS, READONLY, DEBUGGING + 6 .debug_line 000000f2 00000000 00000000 00001110 2**0 + CONTENTS, READONLY, DEBUGGING + 7 .debug_str 00000169 00000000 00000000 00001202 2**0 + CONTENTS, READONLY, DEBUGGING + +Disassembly of section .text: + +00000000 <__vectors>: + 0: 13 c0 rjmp .+38 ; 0x28 <__ctors_end> + 2: 1a c0 rjmp .+52 ; 0x38 <__bad_interrupt> + 4: 19 c0 rjmp .+50 ; 0x38 <__bad_interrupt> + 6: 18 c0 rjmp .+48 ; 0x38 <__bad_interrupt> + 8: 17 c0 rjmp .+46 ; 0x38 <__bad_interrupt> + a: 16 c0 rjmp .+44 ; 0x38 <__bad_interrupt> + c: 15 c0 rjmp .+42 ; 0x38 <__bad_interrupt> + e: 14 c0 rjmp .+40 ; 0x38 <__bad_interrupt> + 10: 13 c0 rjmp .+38 ; 0x38 <__bad_interrupt> + 12: 12 c0 rjmp .+36 ; 0x38 <__bad_interrupt> + 14: 11 c0 rjmp .+34 ; 0x38 <__bad_interrupt> + 16: 10 c0 rjmp .+32 ; 0x38 <__bad_interrupt> + 18: 0f c0 rjmp .+30 ; 0x38 <__bad_interrupt> + 1a: 0e c0 rjmp .+28 ; 0x38 <__bad_interrupt> + 1c: 0d c0 rjmp .+26 ; 0x38 <__bad_interrupt> + +0000001e <__trampolines_end>: + 1e: 3f 06 cpc r3, r31 + 20: 5b 4f sbci r21, 0xFB ; 251 + 22: 66 6d ori r22, 0xD6 ; 214 + 24: 7d 07 cpc r23, r29 + 26: 7f 6f ori r23, 0xFF ; 255 + +00000028 <__ctors_end>: + 28: 11 24 eor r1, r1 + 2a: 1f be out 0x3f, r1 ; 63 + 2c: cf e5 ldi r28, 0x5F ; 95 + 2e: d1 e0 ldi r29, 0x01 ; 1 + 30: de bf out 0x3e, r29 ; 62 + 32: cd bf out 0x3d, r28 ; 61 + 34: ea d1 rcall .+980 ; 0x40a
+ 36: 06 c4 rjmp .+2060 ; 0x844 <_exit> + +00000038 <__bad_interrupt>: + 38: e3 cf rjmp .-58 ; 0x0 <__vectors> + +0000003a : + 3a: f8 94 cli + 3c: c0 9a sbi 0x18, 0 ; 24 + 3e: c2 9a sbi 0x18, 2 ; 24 + 40: 8d e0 ldi r24, 0x0D ; 13 + 42: 8a 95 dec r24 + 44: f1 f7 brne .-4 ; 0x42 <__SREG__+0x3> + 46: 00 00 nop + 48: c0 98 cbi 0x18, 0 ; 24 + 4a: 8d e0 ldi r24, 0x0D ; 13 + 4c: 8a 95 dec r24 + 4e: f1 f7 brne .-4 ; 0x4c <__SREG__+0xd> + 50: 00 00 nop + 52: c2 98 cbi 0x18, 2 ; 24 + 54: 78 94 sei + 56: 08 95 ret + +00000058 : + 58: f8 94 cli + 5a: c2 98 cbi 0x18, 2 ; 24 + 5c: c0 98 cbi 0x18, 0 ; 24 + 5e: 8d e0 ldi r24, 0x0D ; 13 + 60: 8a 95 dec r24 + 62: f1 f7 brne .-4 ; 0x60 + 64: 00 00 nop + 66: c2 9a sbi 0x18, 2 ; 24 + 68: 8d e0 ldi r24, 0x0D ; 13 + 6a: 8a 95 dec r24 + 6c: f1 f7 brne .-4 ; 0x6a + 6e: 00 00 nop + 70: c0 9a sbi 0x18, 0 ; 24 + 72: 78 94 sei + 74: 08 95 ret + +00000076 : + 76: f8 94 cli + 78: 2d e0 ldi r18, 0x0D ; 13 + 7a: 2a 95 dec r18 + 7c: f1 f7 brne .-4 ; 0x7a + 7e: 00 00 nop + 80: 98 e0 ldi r25, 0x08 ; 8 + 82: 0d c0 rjmp .+26 ; 0x9e + 84: c0 98 cbi 0x18, 0 ; 24 + 86: 86 95 lsr r24 + 88: 2d e0 ldi r18, 0x0D ; 13 + 8a: 2a 95 dec r18 + 8c: f1 f7 brne .-4 ; 0x8a + 8e: 00 00 nop + 90: c2 9a sbi 0x18, 2 ; 24 + 92: 2d e0 ldi r18, 0x0D ; 13 + 94: 2a 95 dec r18 + 96: f1 f7 brne .-4 ; 0x94 + 98: 00 00 nop + 9a: 91 50 subi r25, 0x01 ; 1 + 9c: 49 f0 breq .+18 ; 0xb0 + 9e: c2 98 cbi 0x18, 2 ; 24 + a0: 2d e0 ldi r18, 0x0D ; 13 + a2: 2a 95 dec r18 + a4: f1 f7 brne .-4 ; 0xa2 + a6: 00 00 nop + a8: 80 ff sbrs r24, 0 + aa: ec cf rjmp .-40 ; 0x84 + ac: c0 9a sbi 0x18, 0 ; 24 + ae: eb cf rjmp .-42 ; 0x86 + b0: b8 98 cbi 0x17, 0 ; 23 + b2: c2 98 cbi 0x18, 2 ; 24 + b4: c0 9a sbi 0x18, 0 ; 24 + b6: 8d e0 ldi r24, 0x0D ; 13 + b8: 8a 95 dec r24 + ba: f1 f7 brne .-4 ; 0xb8 + bc: 00 00 nop + be: 86 b3 in r24, 0x16 ; 22 + c0: c2 9a sbi 0x18, 2 ; 24 + c2: 9d e0 ldi r25, 0x0D ; 13 + c4: 9a 95 dec r25 + c6: f1 f7 brne .-4 ; 0xc4 + c8: 00 00 nop + ca: c2 98 cbi 0x18, 2 ; 24 + cc: 2d e0 ldi r18, 0x0D ; 13 + ce: 2a 95 dec r18 + d0: f1 f7 brne .-4 ; 0xce + d2: 00 00 nop + d4: b8 9a sbi 0x17, 0 ; 23 + d6: 78 94 sei + d8: 80 95 com r24 + da: 81 70 andi r24, 0x01 ; 1 + dc: 08 95 ret + +000000de : + de: cf 93 push r28 + e0: c8 2f mov r28, r24 + e2: ab df rcall .-170 ; 0x3a + e4: 8c 2f mov r24, r28 + e6: c7 df rcall .-114 ; 0x76 + e8: b7 df rcall .-146 ; 0x58 + ea: cf 91 pop r28 + ec: 08 95 ret + +000000ee : + ee: 97 b3 in r25, 0x17 ; 23 + f0: a1 e0 ldi r26, 0x01 ; 1 + f2: b0 e0 ldi r27, 0x00 ; 0 + f4: fd 01 movw r30, r26 + f6: 02 c0 rjmp .+4 ; 0xfc + f8: ee 0f add r30, r30 + fa: ff 1f adc r31, r31 + fc: 8a 95 dec r24 + fe: e2 f7 brpl .-8 ; 0xf8 + 100: 02 c0 rjmp .+4 ; 0x106 <__DATA_REGION_LENGTH__+0x6> + 102: aa 0f add r26, r26 + 104: bb 1f adc r27, r27 + 106: 6a 95 dec r22 + 108: e2 f7 brpl .-8 ; 0x102 <__DATA_REGION_LENGTH__+0x2> + 10a: ea 2b or r30, r26 + 10c: 9e 2b or r25, r30 + 10e: 97 bb out 0x17, r25 ; 23 + 110: 88 b3 in r24, 0x18 ; 24 + 112: e0 95 com r30 + 114: e8 23 and r30, r24 + 116: e8 bb out 0x18, r30 ; 24 + 118: 84 2f mov r24, r20 + 11a: 80 68 ori r24, 0x80 ; 128 + 11c: 82 2b or r24, r18 + 11e: df df rcall .-66 ; 0xde + 120: 08 95 ret + +00000122 : + 122: cf 93 push r28 + 124: df 93 push r29 + 126: c8 2f mov r28, r24 + 128: d6 2f mov r29, r22 + 12a: 80 e4 ldi r24, 0x40 ; 64 + 12c: d8 df rcall .-80 ; 0xde + 12e: 85 df rcall .-246 ; 0x3a + 130: 8d 2f mov r24, r29 + 132: 80 6c ori r24, 0xC0 ; 192 + 134: a0 df rcall .-192 ; 0x76 + 136: 8c 2f mov r24, r28 + 138: 9e df rcall .-196 ; 0x76 + 13a: 8e df rcall .-228 ; 0x58 + 13c: df 91 pop r29 + 13e: cf 91 pop r28 + 140: 08 95 ret + +00000142 : + 142: 62 e0 ldi r22, 0x02 ; 2 + 144: 80 e4 ldi r24, 0x40 ; 64 + 146: ed df rcall .-38 ; 0x122 + 148: 61 e0 ldi r22, 0x01 ; 1 + 14a: 80 e4 ldi r24, 0x40 ; 64 + 14c: ea df rcall .-44 ; 0x122 + 14e: 60 e0 ldi r22, 0x00 ; 0 + 150: 80 e4 ldi r24, 0x40 ; 64 + 152: e7 df rcall .-50 ; 0x122 + 154: 08 95 ret + +00000156 : + 156: bf 92 push r11 + 158: cf 92 push r12 + 15a: df 92 push r13 + 15c: ef 92 push r14 + 15e: ff 92 push r15 + 160: 0f 93 push r16 + 162: 1f 93 push r17 + 164: cf 93 push r28 + 166: df 93 push r29 + 168: 8c 01 movw r16, r24 + 16a: ec 01 movw r28, r24 + 16c: 08 3e cpi r16, 0xE8 ; 232 + 16e: 83 e0 ldi r24, 0x03 ; 3 + 170: 18 07 cpc r17, r24 + 172: 14 f0 brlt .+4 ; 0x178 <__stack+0x19> + 174: c7 ee ldi r28, 0xE7 ; 231 + 176: d3 e0 ldi r29, 0x03 ; 3 + 178: 11 23 and r17, r17 + 17a: 54 f0 brlt .+20 ; 0x190 <__stack+0x31> + 17c: 0f 2e mov r0, r31 + 17e: f3 e0 ldi r31, 0x03 ; 3 + 180: df 2e mov r13, r31 + 182: f0 2d mov r31, r0 + 184: 0f 2e mov r0, r31 + 186: fa e0 ldi r31, 0x0A ; 10 + 188: ef 2e mov r14, r31 + 18a: f1 2c mov r15, r1 + 18c: f0 2d mov r31, r0 + 18e: 17 c0 rjmp .+46 ; 0x1be <__stack+0x5f> + 190: d1 95 neg r29 + 192: c1 95 neg r28 + 194: d1 09 sbc r29, r1 + 196: 60 e0 ldi r22, 0x00 ; 0 + 198: 80 e4 ldi r24, 0x40 ; 64 + 19a: c3 df rcall .-122 ; 0x122 + 19c: ef cf rjmp .-34 ; 0x17c <__stack+0x1d> + 19e: da 94 dec r13 + 1a0: ce 01 movw r24, r28 + 1a2: b7 01 movw r22, r14 + 1a4: 3c d3 rcall .+1656 ; 0x81e <__divmodhi4> + 1a6: b6 2e mov r11, r22 + 1a8: c7 2e mov r12, r23 + 1aa: 82 5e subi r24, 0xE2 ; 226 + 1ac: 9f 4f sbci r25, 0xFF ; 255 + 1ae: fc 01 movw r30, r24 + 1b0: 84 91 lpm r24, Z + 1b2: 6d 2d mov r22, r13 + 1b4: b6 df rcall .-148 ; 0x122 + 1b6: cb 2d mov r28, r11 + 1b8: dc 2d mov r29, r12 + 1ba: dd 20 and r13, r13 + 1bc: 29 f0 breq .+10 ; 0x1c8 <__stack+0x69> + 1be: 11 23 and r17, r17 + 1c0: 74 f7 brge .-36 ; 0x19e <__stack+0x3f> + 1c2: e1 e0 ldi r30, 0x01 ; 1 + 1c4: de 12 cpse r13, r30 + 1c6: eb cf rjmp .-42 ; 0x19e <__stack+0x3f> + 1c8: df 91 pop r29 + 1ca: cf 91 pop r28 + 1cc: 1f 91 pop r17 + 1ce: 0f 91 pop r16 + 1d0: ff 90 pop r15 + 1d2: ef 90 pop r14 + 1d4: df 90 pop r13 + 1d6: cf 90 pop r12 + 1d8: bf 90 pop r11 + 1da: 08 95 ret + +000001dc : + 1dc: 99 23 and r25, r25 + 1de: 84 f0 brlt .+32 ; 0x200 + 1e0: 21 e0 ldi r18, 0x01 ; 1 + 1e2: 8a 30 cpi r24, 0x0A ; 10 + 1e4: 91 05 cpc r25, r1 + 1e6: 54 f0 brlt .+20 ; 0x1fc + 1e8: 21 e0 ldi r18, 0x01 ; 1 + 1ea: ea e0 ldi r30, 0x0A ; 10 + 1ec: f0 e0 ldi r31, 0x00 ; 0 + 1ee: bf 01 movw r22, r30 + 1f0: 16 d3 rcall .+1580 ; 0x81e <__divmodhi4> + 1f2: cb 01 movw r24, r22 + 1f4: 2f 5f subi r18, 0xFF ; 255 + 1f6: 6a 30 cpi r22, 0x0A ; 10 + 1f8: 71 05 cpc r23, r1 + 1fa: cc f7 brge .-14 ; 0x1ee + 1fc: 82 2f mov r24, r18 + 1fe: 08 95 ret + 200: 91 95 neg r25 + 202: 81 95 neg r24 + 204: 91 09 sbc r25, r1 + 206: ec cf rjmp .-40 ; 0x1e0 + +00000208 : + 208: 7f 92 push r7 + 20a: 8f 92 push r8 + 20c: 9f 92 push r9 + 20e: af 92 push r10 + 210: bf 92 push r11 + 212: cf 92 push r12 + 214: df 92 push r13 + 216: ef 92 push r14 + 218: ff 92 push r15 + 21a: 0f 93 push r16 + 21c: 1f 93 push r17 + 21e: cf 93 push r28 + 220: df 93 push r29 + 222: 00 d0 rcall .+0 ; 0x224 + 224: 1f 92 push r1 + 226: cd b7 in r28, 0x3d ; 61 + 228: de b7 in r29, 0x3e ; 62 + 22a: f6 2e mov r15, r22 + 22c: 94 2e mov r9, r20 + 22e: e2 2e mov r14, r18 + 230: 99 23 and r25, r25 + 232: 0c f4 brge .+2 ; 0x236 + 234: 4d c0 rjmp .+154 ; 0x2d0 + 236: 21 e0 ldi r18, 0x01 ; 1 + 238: e1 10 cpse r14, r1 + 23a: 01 c0 rjmp .+2 ; 0x23e + 23c: 20 e0 ldi r18, 0x00 ; 0 + 23e: 6c 01 movw r12, r24 + 240: 88 3e cpi r24, 0xE8 ; 232 + 242: 93 40 sbci r25, 0x03 ; 3 + 244: 34 f0 brlt .+12 ; 0x252 + 246: 0f 2e mov r0, r31 + 248: f7 ee ldi r31, 0xE7 ; 231 + 24a: cf 2e mov r12, r31 + 24c: f3 e0 ldi r31, 0x03 ; 3 + 24e: df 2e mov r13, r31 + 250: f0 2d mov r31, r0 + 252: e1 10 cpse r14, r1 + 254: 08 c0 rjmp .+16 ; 0x266 + 256: c6 01 movw r24, r12 + 258: c1 df rcall .-126 ; 0x1dc + 25a: b8 2e mov r11, r24 + 25c: 52 e0 ldi r21, 0x02 ; 2 + 25e: 85 13 cpse r24, r21 + 260: 4c c0 rjmp .+152 ; 0x2fa + 262: 10 e0 ldi r17, 0x00 ; 0 + 264: 4b c0 rjmp .+150 ; 0x2fc + 266: e2 2e mov r14, r18 + 268: 3f c0 rjmp .+126 ; 0x2e8 + 26a: 0b 2d mov r16, r11 + 26c: 63 c0 rjmp .+198 ; 0x334 + 26e: 68 2d mov r22, r8 + 270: 80 e4 ldi r24, 0x40 ; 64 + 272: 57 df rcall .-338 ; 0x122 + 274: 81 e0 ldi r24, 0x01 ; 1 + 276: 80 0f add r24, r16 + 278: 1e 2d mov r17, r14 + 27a: 96 c0 rjmp .+300 ; 0x3a8 + 27c: e3 e0 ldi r30, 0x03 ; 3 + 27e: be 12 cpse r11, r30 + 280: a2 c0 rjmp .+324 ; 0x3c6 + 282: e1 10 cpse r14, r1 + 284: 81 c0 rjmp .+258 ; 0x388 + 286: a1 10 cpse r10, r1 + 288: 7f c0 rjmp .+254 ; 0x388 + 28a: 65 c0 rjmp .+202 ; 0x356 + 28c: 88 2d mov r24, r8 + 28e: e1 10 cpse r14, r1 + 290: aa c0 rjmp .+340 ; 0x3e6 + 292: 89 2d mov r24, r9 + 294: a8 c0 rjmp .+336 ; 0x3e6 + 296: 87 2d mov r24, r7 + 298: 02 30 cpi r16, 0x02 ; 2 + 29a: 09 f0 breq .+2 ; 0x29e + 29c: 80 c0 rjmp .+256 ; 0x39e + 29e: 74 c0 rjmp .+232 ; 0x388 + 2a0: ef 2d mov r30, r15 + 2a2: f0 e0 ldi r31, 0x00 ; 0 + 2a4: e2 5e subi r30, 0xE2 ; 226 + 2a6: ff 4f sbci r31, 0xFF ; 255 + 2a8: 84 91 lpm r24, Z + 2aa: 61 2f mov r22, r17 + 2ac: 3a df rcall .-396 ; 0x122 + 2ae: 0f 90 pop r0 + 2b0: 0f 90 pop r0 + 2b2: 0f 90 pop r0 + 2b4: df 91 pop r29 + 2b6: cf 91 pop r28 + 2b8: 1f 91 pop r17 + 2ba: 0f 91 pop r16 + 2bc: ff 90 pop r15 + 2be: ef 90 pop r14 + 2c0: df 90 pop r13 + 2c2: cf 90 pop r12 + 2c4: bf 90 pop r11 + 2c6: af 90 pop r10 + 2c8: 9f 90 pop r9 + 2ca: 8f 90 pop r8 + 2cc: 7f 90 pop r7 + 2ce: 08 95 ret + 2d0: 6c 01 movw r12, r24 + 2d2: 88 3e cpi r24, 0xE8 ; 232 + 2d4: 93 40 sbci r25, 0x03 ; 3 + 2d6: 34 f0 brlt .+12 ; 0x2e4 + 2d8: 0f 2e mov r0, r31 + 2da: f7 ee ldi r31, 0xE7 ; 231 + 2dc: cf 2e mov r12, r31 + 2de: f3 e0 ldi r31, 0x03 ; 3 + 2e0: df 2e mov r13, r31 + 2e2: f0 2d mov r31, r0 + 2e4: ee 24 eor r14, r14 + 2e6: e3 94 inc r14 + 2e8: d1 94 neg r13 + 2ea: c1 94 neg r12 + 2ec: d1 08 sbc r13, r1 + 2ee: c6 01 movw r24, r12 + 2f0: 75 df rcall .-278 ; 0x1dc + 2f2: b8 2e mov r11, r24 + 2f4: 52 e0 ldi r21, 0x02 ; 2 + 2f6: 11 e0 ldi r17, 0x01 ; 1 + 2f8: 85 13 cpse r24, r21 + 2fa: 10 e0 ldi r17, 0x00 ; 0 + 2fc: 2a e0 ldi r18, 0x0A ; 10 + 2fe: 30 e0 ldi r19, 0x00 ; 0 + 300: c6 01 movw r24, r12 + 302: b9 01 movw r22, r18 + 304: 8c d2 rcall .+1304 ; 0x81e <__divmodhi4> + 306: 8b 83 std Y+3, r24 ; 0x03 + 308: cb 01 movw r24, r22 + 30a: b9 01 movw r22, r18 + 30c: 88 d2 rcall .+1296 ; 0x81e <__divmodhi4> + 30e: 8a 83 std Y+2, r24 ; 0x02 + 310: c6 01 movw r24, r12 + 312: 64 e6 ldi r22, 0x64 ; 100 + 314: 70 e0 ldi r23, 0x00 ; 0 + 316: 83 d2 rcall .+1286 ; 0x81e <__divmodhi4> + 318: cb 01 movw r24, r22 + 31a: b9 01 movw r22, r18 + 31c: 80 d2 rcall .+1280 ; 0x81e <__divmodhi4> + 31e: a8 2e mov r10, r24 + 320: 89 83 std Y+1, r24 ; 0x01 + 322: 81 e0 ldi r24, 0x01 ; 1 + 324: b8 16 cp r11, r24 + 326: 09 f4 brne .+2 ; 0x32a + 328: a0 cf rjmp .-192 ; 0x26a + 32a: 03 e0 ldi r16, 0x03 ; 3 + 32c: 0b 19 sub r16, r11 + 32e: 03 30 cpi r16, 0x03 ; 3 + 330: 08 f0 brcs .+2 ; 0x334 + 332: b6 cf rjmp .-148 ; 0x2a0 + 334: 82 e0 ldi r24, 0x02 ; 2 + 336: 90 e0 ldi r25, 0x00 ; 0 + 338: 6c 01 movw r12, r24 + 33a: c9 18 sub r12, r9 + 33c: d1 08 sbc r13, r1 + 33e: 7e 2c mov r7, r14 + 340: 68 94 set + 342: 99 24 eor r9, r9 + 344: 97 f8 bld r9, 7 + 346: 81 2c mov r8, r1 + 348: 33 c0 rjmp .+102 ; 0x3b0 + 34a: 1c 15 cp r17, r12 + 34c: 1d 04 cpc r1, r13 + 34e: 09 f4 brne .+2 ; 0x352 + 350: 95 cf rjmp .-214 ; 0x27c + 352: a1 10 cpse r10, r1 + 354: 15 c0 rjmp .+42 ; 0x380 + 356: 20 2f mov r18, r16 + 358: 30 e0 ldi r19, 0x00 ; 0 + 35a: e1 e0 ldi r30, 0x01 ; 1 + 35c: f0 e0 ldi r31, 0x00 ; 0 + 35e: ec 0f add r30, r28 + 360: fd 1f adc r31, r29 + 362: e2 0f add r30, r18 + 364: f3 1f adc r31, r19 + 366: 80 81 ld r24, Z + 368: 81 11 cpse r24, r1 + 36a: 0a c0 rjmp .+20 ; 0x380 + 36c: 42 e0 ldi r20, 0x02 ; 2 + 36e: 50 e0 ldi r21, 0x00 ; 0 + 370: 4c 0f add r20, r28 + 372: 5d 1f adc r21, r29 + 374: 24 0f add r18, r20 + 376: 35 1f adc r19, r21 + 378: f9 01 movw r30, r18 + 37a: 90 81 ld r25, Z + 37c: 91 11 cpse r25, r1 + 37e: 0f c0 rjmp .+30 ; 0x39e + 380: f1 e0 ldi r31, 0x01 ; 1 + 382: bf 16 cp r11, r31 + 384: 09 f4 brne .+2 ; 0x388 + 386: 87 cf rjmp .-242 ; 0x296 + 388: e1 e0 ldi r30, 0x01 ; 1 + 38a: f0 e0 ldi r31, 0x00 ; 0 + 38c: ec 0f add r30, r28 + 38e: fd 1f adc r31, r29 + 390: e0 0f add r30, r16 + 392: f1 1d adc r31, r1 + 394: e0 81 ld r30, Z + 396: f0 e0 ldi r31, 0x00 ; 0 + 398: e2 5e subi r30, 0xE2 ; 226 + 39a: ff 4f sbci r31, 0xFF ; 255 + 39c: 84 91 lpm r24, Z + 39e: 61 2f mov r22, r17 + 3a0: c0 de rcall .-640 ; 0x122 + 3a2: 81 e0 ldi r24, 0x01 ; 1 + 3a4: 80 0f add r24, r16 + 3a6: 1f 5f subi r17, 0xFF ; 255 + 3a8: 0f 5f subi r16, 0xFF ; 255 + 3aa: 83 30 cpi r24, 0x03 ; 3 + 3ac: 08 f0 brcs .+2 ; 0x3b0 + 3ae: 78 cf rjmp .-272 ; 0x2a0 + 3b0: ee 20 and r14, r14 + 3b2: 59 f2 breq .-106 ; 0x34a + 3b4: 11 23 and r17, r17 + 3b6: 09 f4 brne .+2 ; 0x3ba + 3b8: 5a cf rjmp .-332 ; 0x26e + 3ba: 1c 15 cp r17, r12 + 3bc: 1d 04 cpc r1, r13 + 3be: 21 f7 brne .-56 ; 0x388 + 3c0: 83 e0 ldi r24, 0x03 ; 3 + 3c2: b8 16 cp r11, r24 + 3c4: 09 f3 breq .-62 ; 0x388 + 3c6: e1 e0 ldi r30, 0x01 ; 1 + 3c8: f0 e0 ldi r31, 0x00 ; 0 + 3ca: ec 0f add r30, r28 + 3cc: fd 1f adc r31, r29 + 3ce: e0 0f add r30, r16 + 3d0: f1 1d adc r31, r1 + 3d2: e0 81 ld r30, Z + 3d4: f0 e0 ldi r31, 0x00 ; 0 + 3d6: e2 5e subi r30, 0xE2 ; 226 + 3d8: ff 4f sbci r31, 0xFF ; 255 + 3da: e4 91 lpm r30, Z + 3dc: f2 e0 ldi r31, 0x02 ; 2 + 3de: 89 2d mov r24, r9 + 3e0: bf 16 cp r11, r31 + 3e2: 09 f4 brne .+2 ; 0x3e6 + 3e4: 53 cf rjmp .-346 ; 0x28c + 3e6: 8e 2b or r24, r30 + 3e8: da cf rjmp .-76 ; 0x39e + +000003ea : + 3ea: 56 d1 rcall .+684 ; 0x698 + 3ec: 88 23 and r24, r24 + 3ee: 51 f0 breq .+20 ; 0x404 <__LOCK_REGION_LENGTH__+0x4> + 3f0: 81 30 cpi r24, 0x01 ; 1 + 3f2: 11 f0 breq .+4 ; 0x3f8 + 3f4: 81 e0 ldi r24, 0x01 ; 1 + 3f6: 08 95 ret + 3f8: c3 9a sbi 0x18, 3 ; 24 + 3fa: 81 e0 ldi r24, 0x01 ; 1 + 3fc: 90 e0 ldi r25, 0x00 ; 0 + 3fe: ab de rcall .-682 ; 0x156 + 400: 81 e0 ldi r24, 0x01 ; 1 + 402: 08 95 ret + 404: c3 98 cbi 0x18, 3 ; 24 + 406: 80 e0 ldi r24, 0x00 ; 0 + 408: 08 95 ret + +0000040a
: + 40a: cf 93 push r28 + 40c: df 93 push r29 + 40e: cd b7 in r28, 0x3d ; 61 + 410: de b7 in r29, 0x3e ; 62 + 412: 66 97 sbiw r28, 0x16 ; 22 + 414: 0f b6 in r0, 0x3f ; 63 + 416: f8 94 cli + 418: de bf out 0x3e, r29 ; 62 + 41a: 0f be out 0x3f, r0 ; 63 + 41c: cd bf out 0x3d, r28 ; 61 + 41e: bb 9a sbi 0x17, 3 ; 23 + 420: c3 98 cbi 0x18, 3 ; 24 + 422: a8 95 wdr + 424: 88 e1 ldi r24, 0x18 ; 24 + 426: 98 e2 ldi r25, 0x28 ; 40 + 428: 0f b6 in r0, 0x3f ; 63 + 42a: f8 94 cli + 42c: a8 95 wdr + 42e: 81 bd out 0x21, r24 ; 33 + 430: 0f be out 0x3f, r0 ; 63 + 432: 91 bd out 0x21, r25 ; 33 + 434: 6b e0 ldi r22, 0x0B ; 11 + 436: ce 01 movw r24, r28 + 438: 01 96 adiw r24, 0x01 ; 1 + 43a: f3 d0 rcall .+486 ; 0x622 + 43c: 28 e0 ldi r18, 0x08 ; 8 + 43e: 42 e0 ldi r20, 0x02 ; 2 + 440: 62 e0 ldi r22, 0x02 ; 2 + 442: 80 e0 ldi r24, 0x00 ; 0 + 444: 54 de rcall .-856 ; 0xee + 446: 7d de rcall .-774 ; 0x142 + 448: 2f ef ldi r18, 0xFF ; 255 + 44a: 80 e7 ldi r24, 0x70 ; 112 + 44c: 92 e0 ldi r25, 0x02 ; 2 + 44e: 21 50 subi r18, 0x01 ; 1 + 450: 80 40 sbci r24, 0x00 ; 0 + 452: 90 40 sbci r25, 0x00 ; 0 + 454: e1 f7 brne .-8 ; 0x44e + 456: 00 c0 rjmp .+0 ; 0x458 + 458: 00 00 nop + 45a: 04 e6 ldi r16, 0x64 ; 100 + 45c: 10 e0 ldi r17, 0x00 ; 0 + 45e: 0d c0 rjmp .+26 ; 0x47a + 460: ce 01 movw r24, r28 + 462: 01 96 adiw r24, 0x01 ; 1 + 464: 33 d1 rcall .+614 ; 0x6cc + 466: 8b 89 ldd r24, Y+19 ; 0x13 + 468: 9c 89 ldd r25, Y+20 ; 0x14 + 46a: b8 01 movw r22, r16 + 46c: c4 d1 rcall .+904 ; 0x7f6 <__udivmodhi4> + 46e: 2d 89 ldd r18, Y+21 ; 0x15 + 470: 41 e0 ldi r20, 0x01 ; 1 + 472: 89 89 ldd r24, Y+17 ; 0x11 + 474: 9a 89 ldd r25, Y+18 ; 0x12 + 476: c8 de rcall .-624 ; 0x208 + 478: a8 95 wdr + 47a: ce 01 movw r24, r28 + 47c: 01 96 adiw r24, 0x01 ; 1 + 47e: b5 df rcall .-150 ; 0x3ea + 480: 88 23 and r24, r24 + 482: 71 f3 breq .-36 ; 0x460 + 484: 2f e7 ldi r18, 0x7F ; 127 + 486: 88 e3 ldi r24, 0x38 ; 56 + 488: 91 e0 ldi r25, 0x01 ; 1 + 48a: 21 50 subi r18, 0x01 ; 1 + 48c: 80 40 sbci r24, 0x00 ; 0 + 48e: 90 40 sbci r25, 0x00 ; 0 + 490: e1 f7 brne .-8 ; 0x48a + 492: 00 c0 rjmp .+0 ; 0x494 + 494: 00 00 nop + 496: a8 95 wdr + 498: f0 cf rjmp .-32 ; 0x47a + +0000049a : + 49a: f8 94 cli + 49c: bc 9a sbi 0x17, 4 ; 23 + 49e: 8f eb ldi r24, 0xBF ; 191 + 4a0: 93 e0 ldi r25, 0x03 ; 3 + 4a2: 01 97 sbiw r24, 0x01 ; 1 + 4a4: f1 f7 brne .-4 ; 0x4a2 + 4a6: 00 c0 rjmp .+0 ; 0x4a8 + 4a8: 00 00 nop + 4aa: bc 98 cbi 0x17, 4 ; 23 + 4ac: 9a eb ldi r25, 0xBA ; 186 + 4ae: 9a 95 dec r25 + 4b0: f1 f7 brne .-4 ; 0x4ae + 4b2: 00 c0 rjmp .+0 ; 0x4b4 + 4b4: 86 b3 in r24, 0x16 ; 22 + 4b6: e3 e3 ldi r30, 0x33 ; 51 + 4b8: f3 e0 ldi r31, 0x03 ; 3 + 4ba: 31 97 sbiw r30, 0x01 ; 1 + 4bc: f1 f7 brne .-4 ; 0x4ba + 4be: 00 c0 rjmp .+0 ; 0x4c0 + 4c0: 00 00 nop + 4c2: 78 94 sei + 4c4: 82 95 swap r24 + 4c6: 81 70 andi r24, 0x01 ; 1 + 4c8: 91 e0 ldi r25, 0x01 ; 1 + 4ca: 89 27 eor r24, r25 + 4cc: 08 95 ret + +000004ce : + 4ce: 98 e0 ldi r25, 0x08 ; 8 + 4d0: 0d c0 rjmp .+26 ; 0x4ec + 4d2: bc 9a sbi 0x17, 4 ; 23 + 4d4: 20 ea ldi r18, 0xA0 ; 160 + 4d6: 2a 95 dec r18 + 4d8: f1 f7 brne .-4 ; 0x4d6 + 4da: bc 98 cbi 0x17, 4 ; 23 + 4dc: 2a e1 ldi r18, 0x1A ; 26 + 4de: 2a 95 dec r18 + 4e0: f1 f7 brne .-4 ; 0x4de + 4e2: 00 c0 rjmp .+0 ; 0x4e4 + 4e4: 78 94 sei + 4e6: 86 95 lsr r24 + 4e8: 91 50 subi r25, 0x01 ; 1 + 4ea: 69 f0 breq .+26 ; 0x506 + 4ec: f8 94 cli + 4ee: 80 ff sbrs r24, 0 + 4f0: f0 cf rjmp .-32 ; 0x4d2 + 4f2: bc 9a sbi 0x17, 4 ; 23 + 4f4: 20 e1 ldi r18, 0x10 ; 16 + 4f6: 2a 95 dec r18 + 4f8: f1 f7 brne .-4 ; 0x4f6 + 4fa: bc 98 cbi 0x17, 4 ; 23 + 4fc: 2a ea ldi r18, 0xAA ; 170 + 4fe: 2a 95 dec r18 + 500: f1 f7 brne .-4 ; 0x4fe + 502: 00 c0 rjmp .+0 ; 0x504 + 504: ef cf rjmp .-34 ; 0x4e4 + 506: 08 95 ret + +00000508 : + 508: 98 e0 ldi r25, 0x08 ; 8 + 50a: 80 e0 ldi r24, 0x00 ; 0 + 50c: 07 c0 rjmp .+14 ; 0x51c + 50e: 22 e9 ldi r18, 0x92 ; 146 + 510: 2a 95 dec r18 + 512: f1 f7 brne .-4 ; 0x510 + 514: 00 c0 rjmp .+0 ; 0x516 + 516: 78 94 sei + 518: 91 50 subi r25, 0x01 ; 1 + 51a: 71 f0 breq .+28 ; 0x538 + 51c: f8 94 cli + 51e: 86 95 lsr r24 + 520: bc 9a sbi 0x17, 4 ; 23 + 522: 20 e1 ldi r18, 0x10 ; 16 + 524: 2a 95 dec r18 + 526: f1 f7 brne .-4 ; 0x524 + 528: bc 98 cbi 0x17, 4 ; 23 + 52a: 28 e1 ldi r18, 0x18 ; 24 + 52c: 2a 95 dec r18 + 52e: f1 f7 brne .-4 ; 0x52c + 530: b4 9b sbis 0x16, 4 ; 22 + 532: ed cf rjmp .-38 ; 0x50e + 534: 80 68 ori r24, 0x80 ; 128 + 536: eb cf rjmp .-42 ; 0x50e + 538: 08 95 ret + +0000053a : + 53a: af df rcall .-162 ; 0x49a + 53c: 81 11 cpse r24, r1 + 53e: 01 c0 rjmp .+2 ; 0x542 + 540: 08 95 ret + 542: 8c ec ldi r24, 0xCC ; 204 + 544: c4 df rcall .-120 ; 0x4ce + 546: 81 e0 ldi r24, 0x01 ; 1 + 548: fb cf rjmp .-10 ; 0x540 + +0000054a : + 54a: 0f 93 push r16 + 54c: 1f 93 push r17 + 54e: cf 93 push r28 + 550: df 93 push r29 + 552: 8c 01 movw r16, r24 + 554: a2 df rcall .-188 ; 0x49a + 556: 81 11 cpse r24, r1 + 558: 05 c0 rjmp .+10 ; 0x564 + 55a: df 91 pop r29 + 55c: cf 91 pop r28 + 55e: 1f 91 pop r17 + 560: 0f 91 pop r16 + 562: 08 95 ret + 564: 83 e3 ldi r24, 0x33 ; 51 + 566: b3 df rcall .-154 ; 0x4ce + 568: e8 01 movw r28, r16 + 56a: 08 5f subi r16, 0xF8 ; 248 + 56c: 1f 4f sbci r17, 0xFF ; 255 + 56e: cc df rcall .-104 ; 0x508 + 570: 89 93 st Y+, r24 + 572: c0 17 cp r28, r16 + 574: d1 07 cpc r29, r17 + 576: d9 f7 brne .-10 ; 0x56e + 578: 81 e0 ldi r24, 0x01 ; 1 + 57a: ef cf rjmp .-34 ; 0x55a + +0000057c : + 57c: fc 01 movw r30, r24 + 57e: 68 0f add r22, r24 + 580: 79 1f adc r23, r25 + 582: 80 e0 ldi r24, 0x00 ; 0 + 584: 2c e8 ldi r18, 0x8C ; 140 + 586: 0b c0 rjmp .+22 ; 0x59e + 588: 86 95 lsr r24 + 58a: 91 50 subi r25, 0x01 ; 1 + 58c: 29 f0 breq .+10 ; 0x598 + 58e: 80 ff sbrs r24, 0 + 590: fb cf rjmp .-10 ; 0x588 + 592: 86 95 lsr r24 + 594: 82 27 eor r24, r18 + 596: f9 cf rjmp .-14 ; 0x58a + 598: e6 17 cp r30, r22 + 59a: f7 07 cpc r31, r23 + 59c: 21 f0 breq .+8 ; 0x5a6 + 59e: 91 91 ld r25, Z+ + 5a0: 89 27 eor r24, r25 + 5a2: 98 e0 ldi r25, 0x08 ; 8 + 5a4: f4 cf rjmp .-24 ; 0x58e + 5a6: 08 95 ret + +000005a8 : + 5a8: ef 92 push r14 + 5aa: ff 92 push r15 + 5ac: 0f 93 push r16 + 5ae: 1f 93 push r17 + 5b0: cf 93 push r28 + 5b2: df 93 push r29 + 5b4: 7c 01 movw r14, r24 + 5b6: c1 df rcall .-126 ; 0x53a + 5b8: 8e eb ldi r24, 0xBE ; 190 + 5ba: 89 df rcall .-238 ; 0x4ce + 5bc: e7 01 movw r28, r14 + 5be: 87 01 movw r16, r14 + 5c0: 08 5f subi r16, 0xF8 ; 248 + 5c2: 1f 4f sbci r17, 0xFF ; 255 + 5c4: a1 df rcall .-190 ; 0x508 + 5c6: 89 93 st Y+, r24 + 5c8: c0 17 cp r28, r16 + 5ca: d1 07 cpc r29, r17 + 5cc: d9 f7 brne .-10 ; 0x5c4 + 5ce: 68 e0 ldi r22, 0x08 ; 8 + 5d0: 70 e0 ldi r23, 0x00 ; 0 + 5d2: c7 01 movw r24, r14 + 5d4: d3 df rcall .-90 ; 0x57c + 5d6: c8 2f mov r28, r24 + 5d8: 97 df rcall .-210 ; 0x508 + 5da: 91 e0 ldi r25, 0x01 ; 1 + 5dc: c8 13 cpse r28, r24 + 5de: 90 e0 ldi r25, 0x00 ; 0 + 5e0: 89 2f mov r24, r25 + 5e2: df 91 pop r29 + 5e4: cf 91 pop r28 + 5e6: 1f 91 pop r17 + 5e8: 0f 91 pop r16 + 5ea: ff 90 pop r15 + 5ec: ef 90 pop r14 + 5ee: 08 95 ret + +000005f0 : + 5f0: 54 df rcall .-344 ; 0x49a + 5f2: 81 11 cpse r24, r1 + 5f4: 01 c0 rjmp .+2 ; 0x5f8 + 5f6: 08 95 ret + 5f8: a0 df rcall .-192 ; 0x53a + 5fa: 88 e4 ldi r24, 0x48 ; 72 + 5fc: 68 df rcall .-304 ; 0x4ce + 5fe: 81 e0 ldi r24, 0x01 ; 1 + 600: fa cf rjmp .-12 ; 0x5f6 + +00000602 : + 602: cf 93 push r28 + 604: df 93 push r29 + 606: ec 01 movw r28, r24 + 608: 98 df rcall .-208 ; 0x53a + 60a: 8e e4 ldi r24, 0x4E ; 78 + 60c: 60 df rcall .-320 ; 0x4ce + 60e: 88 81 ld r24, Y + 610: 5e df rcall .-324 ; 0x4ce + 612: 89 81 ldd r24, Y+1 ; 0x01 + 614: 5c df rcall .-328 ; 0x4ce + 616: 8a 81 ldd r24, Y+2 ; 0x02 + 618: 5a df rcall .-332 ; 0x4ce + 61a: ea df rcall .-44 ; 0x5f0 + 61c: df 91 pop r29 + 61e: cf 91 pop r28 + 620: 08 95 ret + +00000622 : + 622: ff 92 push r15 + 624: 0f 93 push r16 + 626: 1f 93 push r17 + 628: cf 93 push r28 + 62a: df 93 push r29 + 62c: 00 d0 rcall .+0 ; 0x62e + 62e: 1f 92 push r1 + 630: cd b7 in r28, 0x3d ; 61 + 632: de b7 in r29, 0x3e ; 62 + 634: 8c 01 movw r16, r24 + 636: f6 2e mov r15, r22 + 638: b7 df rcall .-146 ; 0x5a8 + 63a: f8 01 movw r30, r16 + 63c: 82 81 ldd r24, Z+2 ; 0x02 + 63e: 89 83 std Y+1, r24 ; 0x01 + 640: 83 81 ldd r24, Z+3 ; 0x03 + 642: 8a 83 std Y+2, r24 ; 0x02 + 644: fa e0 ldi r31, 0x0A ; 10 + 646: ff 16 cp r15, r31 + 648: b9 f0 breq .+46 ; 0x678 + 64a: 8b e0 ldi r24, 0x0B ; 11 + 64c: f8 16 cp r15, r24 + 64e: 89 f0 breq .+34 ; 0x672 + 650: e9 e0 ldi r30, 0x09 ; 9 + 652: fe 16 cp r15, r30 + 654: a1 f0 breq .+40 ; 0x67e + 656: 8f e7 ldi r24, 0x7F ; 127 + 658: 8b 83 std Y+3, r24 ; 0x03 + 65a: ce 01 movw r24, r28 + 65c: 01 96 adiw r24, 0x01 ; 1 + 65e: d1 df rcall .-94 ; 0x602 + 660: 0f 90 pop r0 + 662: 0f 90 pop r0 + 664: 0f 90 pop r0 + 666: df 91 pop r29 + 668: cf 91 pop r28 + 66a: 1f 91 pop r17 + 66c: 0f 91 pop r16 + 66e: ff 90 pop r15 + 670: 08 95 ret + 672: 8f e5 ldi r24, 0x5F ; 95 + 674: 8b 83 std Y+3, r24 ; 0x03 + 676: f1 cf rjmp .-30 ; 0x65a + 678: 8f e3 ldi r24, 0x3F ; 63 + 67a: 8b 83 std Y+3, r24 ; 0x03 + 67c: ee cf rjmp .-36 ; 0x65a + 67e: 8f e1 ldi r24, 0x1F ; 31 + 680: 8b 83 std Y+3, r24 ; 0x03 + 682: eb cf rjmp .-42 ; 0x65a + +00000684 : + 684: 0a df rcall .-492 ; 0x49a + 686: 81 11 cpse r24, r1 + 688: 01 c0 rjmp .+2 ; 0x68c + 68a: 08 95 ret + 68c: 8c ec ldi r24, 0xCC ; 204 + 68e: 1f df rcall .-450 ; 0x4ce + 690: 84 e4 ldi r24, 0x44 ; 68 + 692: 1d df rcall .-454 ; 0x4ce + 694: 81 e0 ldi r24, 0x01 ; 1 + 696: f9 cf rjmp .-14 ; 0x68a + +00000698 : + 698: cf 93 push r28 + 69a: df 93 push r29 + 69c: ec 01 movw r28, r24 + 69e: fd de rcall .-518 ; 0x49a + 6a0: 81 11 cpse r24, r1 + 6a2: 04 c0 rjmp .+8 ; 0x6ac + 6a4: 81 e0 ldi r24, 0x01 ; 1 + 6a6: df 91 pop r29 + 6a8: cf 91 pop r28 + 6aa: 08 95 ret + 6ac: ce 01 movw r24, r28 + 6ae: 08 96 adiw r24, 0x08 ; 8 + 6b0: 4c df rcall .-360 ; 0x54a + 6b2: 88 85 ldd r24, Y+8 ; 0x08 + 6b4: 88 32 cpi r24, 0x28 ; 40 + 6b6: 11 f0 breq .+4 ; 0x6bc + 6b8: 82 e0 ldi r24, 0x02 ; 2 + 6ba: f5 cf rjmp .-22 ; 0x6a6 + 6bc: ce 01 movw r24, r28 + 6be: 74 df rcall .-280 ; 0x5a8 + 6c0: 88 23 and r24, r24 + 6c2: 11 f0 breq .+4 ; 0x6c8 + 6c4: 80 e0 ldi r24, 0x00 ; 0 + 6c6: ef cf rjmp .-34 ; 0x6a6 + 6c8: 83 e0 ldi r24, 0x03 ; 3 + 6ca: ed cf rjmp .-38 ; 0x6a6 + +000006cc : + 6cc: cf 93 push r28 + 6ce: df 93 push r29 + 6d0: ec 01 movw r28, r24 + 6d2: d8 df rcall .-80 ; 0x684 + 6d4: 88 23 and r24, r24 + 6d6: 09 f4 brne .+2 ; 0x6da + 6d8: 5e c0 rjmp .+188 ; 0x796 + 6da: 2c 81 ldd r18, Y+4 ; 0x04 + 6dc: 82 2f mov r24, r18 + 6de: 90 e0 ldi r25, 0x00 ; 0 + 6e0: 80 95 com r24 + 6e2: 90 95 com r25 + 6e4: 80 76 andi r24, 0x60 ; 96 + 6e6: 99 27 eor r25, r25 + 6e8: 89 2b or r24, r25 + 6ea: 09 f0 breq .+2 ; 0x6ee + 6ec: 57 c0 rjmp .+174 ; 0x79c + 6ee: 2f e7 ldi r18, 0x7F ; 127 + 6f0: 3f e4 ldi r19, 0x4F ; 79 + 6f2: 82 e1 ldi r24, 0x12 ; 18 + 6f4: 21 50 subi r18, 0x01 ; 1 + 6f6: 30 40 sbci r19, 0x00 ; 0 + 6f8: 80 40 sbci r24, 0x00 ; 0 + 6fa: e1 f7 brne .-8 ; 0x6f4 + 6fc: 00 c0 rjmp .+0 ; 0x6fe + 6fe: 00 00 nop + 700: ce 01 movw r24, r28 + 702: 52 df rcall .-348 ; 0x5a8 + 704: 88 23 and r24, r24 + 706: 09 f4 brne .+2 ; 0x70a + 708: 6b c0 rjmp .+214 ; 0x7e0 + 70a: 1d 8a std Y+21, r1 ; 0x15 + 70c: 89 81 ldd r24, Y+1 ; 0x01 + 70e: 90 e0 ldi r25, 0x00 ; 0 + 710: 48 81 ld r20, Y + 712: 24 2f mov r18, r20 + 714: 38 2f mov r19, r24 + 716: 33 23 and r19, r19 + 718: 0c f4 brge .+2 ; 0x71c + 71a: 65 c0 rjmp .+202 ; 0x7e6 + 71c: 35 95 asr r19 + 71e: 27 95 ror r18 + 720: 35 95 asr r19 + 722: 27 95 ror r18 + 724: 35 95 asr r19 + 726: 27 95 ror r18 + 728: 35 95 asr r19 + 72a: 27 95 ror r18 + 72c: 39 8b std Y+17, r19 ; 0x11 + 72e: 28 8b std Y+16, r18 ; 0x10 + 730: 80 95 com r24 + 732: 90 95 com r25 + 734: 88 7f andi r24, 0xF8 ; 248 + 736: 99 27 eor r25, r25 + 738: 89 2b or r24, r25 + 73a: 09 f0 breq .+2 ; 0x73e + 73c: 57 c0 rjmp .+174 ; 0x7ec + 73e: 81 e0 ldi r24, 0x01 ; 1 + 740: 8c 8b std Y+20, r24 ; 0x14 + 742: 41 95 neg r20 + 744: 48 83 st Y, r20 + 746: 88 81 ld r24, Y + 748: 8f 70 andi r24, 0x0F ; 15 + 74a: 28 2f mov r18, r24 + 74c: 30 e0 ldi r19, 0x00 ; 0 + 74e: c9 01 movw r24, r18 + 750: 88 0f add r24, r24 + 752: 99 1f adc r25, r25 + 754: 82 95 swap r24 + 756: 92 95 swap r25 + 758: 90 7f andi r25, 0xF0 ; 240 + 75a: 98 27 eor r25, r24 + 75c: 80 7f andi r24, 0xF0 ; 240 + 75e: 98 27 eor r25, r24 + 760: 82 1b sub r24, r18 + 762: 93 0b sbc r25, r19 + 764: 88 0f add r24, r24 + 766: 99 1f adc r25, r25 + 768: 88 0f add r24, r24 + 76a: 99 1f adc r25, r25 + 76c: 82 0f add r24, r18 + 76e: 93 1f adc r25, r19 + 770: 88 0f add r24, r24 + 772: 99 1f adc r25, r25 + 774: 88 0f add r24, r24 + 776: 99 1f adc r25, r25 + 778: 88 0f add r24, r24 + 77a: 99 1f adc r25, r25 + 77c: 9c 01 movw r18, r24 + 77e: 99 23 and r25, r25 + 780: bc f1 brlt .+110 ; 0x7f0 + 782: 35 95 asr r19 + 784: 27 95 ror r18 + 786: 35 95 asr r19 + 788: 27 95 ror r18 + 78a: 35 95 asr r19 + 78c: 27 95 ror r18 + 78e: 35 95 asr r19 + 790: 27 95 ror r18 + 792: 3b 8b std Y+19, r19 ; 0x13 + 794: 2a 8b std Y+18, r18 ; 0x12 + 796: df 91 pop r29 + 798: cf 91 pop r28 + 79a: 08 95 ret + 79c: 26 ff sbrs r18, 6 + 79e: 0a c0 rjmp .+20 ; 0x7b4 + 7a0: 9f eb ldi r25, 0xBF ; 191 + 7a2: 27 e2 ldi r18, 0x27 ; 39 + 7a4: 39 e0 ldi r19, 0x09 ; 9 + 7a6: 91 50 subi r25, 0x01 ; 1 + 7a8: 20 40 sbci r18, 0x00 ; 0 + 7aa: 30 40 sbci r19, 0x00 ; 0 + 7ac: e1 f7 brne .-8 ; 0x7a6 + 7ae: 00 c0 rjmp .+0 ; 0x7b0 + 7b0: 00 00 nop + 7b2: a6 cf rjmp .-180 ; 0x700 + 7b4: 25 ff sbrs r18, 5 + 7b6: 0a c0 rjmp .+20 ; 0x7cc + 7b8: 8f ef ldi r24, 0xFF ; 255 + 7ba: 96 e9 ldi r25, 0x96 ; 150 + 7bc: 24 e0 ldi r18, 0x04 ; 4 + 7be: 81 50 subi r24, 0x01 ; 1 + 7c0: 90 40 sbci r25, 0x00 ; 0 + 7c2: 20 40 sbci r18, 0x00 ; 0 + 7c4: e1 f7 brne .-8 ; 0x7be + 7c6: 00 c0 rjmp .+0 ; 0x7c8 + 7c8: 00 00 nop + 7ca: 9a cf rjmp .-204 ; 0x700 + 7cc: 3f e7 ldi r19, 0x7F ; 127 + 7ce: 8b e4 ldi r24, 0x4B ; 75 + 7d0: 92 e0 ldi r25, 0x02 ; 2 + 7d2: 31 50 subi r19, 0x01 ; 1 + 7d4: 80 40 sbci r24, 0x00 ; 0 + 7d6: 90 40 sbci r25, 0x00 ; 0 + 7d8: e1 f7 brne .-8 ; 0x7d2 + 7da: 00 c0 rjmp .+0 ; 0x7dc + 7dc: 00 00 nop + 7de: 90 cf rjmp .-224 ; 0x700 + 7e0: 81 e0 ldi r24, 0x01 ; 1 + 7e2: 8d 8b std Y+21, r24 ; 0x15 + 7e4: d8 cf rjmp .-80 ; 0x796 + 7e6: 21 5f subi r18, 0xF1 ; 241 + 7e8: 3f 4f sbci r19, 0xFF ; 255 + 7ea: 98 cf rjmp .-208 ; 0x71c + 7ec: 1c 8a std Y+20, r1 ; 0x14 + 7ee: ab cf rjmp .-170 ; 0x746 + 7f0: 21 5f subi r18, 0xF1 ; 241 + 7f2: 3f 4f sbci r19, 0xFF ; 255 + 7f4: c6 cf rjmp .-116 ; 0x782 + +000007f6 <__udivmodhi4>: + 7f6: aa 1b sub r26, r26 + 7f8: bb 1b sub r27, r27 + 7fa: 51 e1 ldi r21, 0x11 ; 17 + 7fc: 07 c0 rjmp .+14 ; 0x80c <__udivmodhi4_ep> + +000007fe <__udivmodhi4_loop>: + 7fe: aa 1f adc r26, r26 + 800: bb 1f adc r27, r27 + 802: a6 17 cp r26, r22 + 804: b7 07 cpc r27, r23 + 806: 10 f0 brcs .+4 ; 0x80c <__udivmodhi4_ep> + 808: a6 1b sub r26, r22 + 80a: b7 0b sbc r27, r23 + +0000080c <__udivmodhi4_ep>: + 80c: 88 1f adc r24, r24 + 80e: 99 1f adc r25, r25 + 810: 5a 95 dec r21 + 812: a9 f7 brne .-22 ; 0x7fe <__udivmodhi4_loop> + 814: 80 95 com r24 + 816: 90 95 com r25 + 818: bc 01 movw r22, r24 + 81a: cd 01 movw r24, r26 + 81c: 08 95 ret + +0000081e <__divmodhi4>: + 81e: 97 fb bst r25, 7 + 820: 07 2e mov r0, r23 + 822: 16 f4 brtc .+4 ; 0x828 <__divmodhi4+0xa> + 824: 00 94 com r0 + 826: 06 d0 rcall .+12 ; 0x834 <__divmodhi4_neg1> + 828: 77 fd sbrc r23, 7 + 82a: 08 d0 rcall .+16 ; 0x83c <__divmodhi4_neg2> + 82c: e4 df rcall .-56 ; 0x7f6 <__udivmodhi4> + 82e: 07 fc sbrc r0, 7 + 830: 05 d0 rcall .+10 ; 0x83c <__divmodhi4_neg2> + 832: 3e f4 brtc .+14 ; 0x842 <__divmodhi4_exit> + +00000834 <__divmodhi4_neg1>: + 834: 90 95 com r25 + 836: 81 95 neg r24 + 838: 9f 4f sbci r25, 0xFF ; 255 + 83a: 08 95 ret + +0000083c <__divmodhi4_neg2>: + 83c: 70 95 com r23 + 83e: 61 95 neg r22 + 840: 7f 4f sbci r23, 0xFF ; 255 + +00000842 <__divmodhi4_exit>: + 842: 08 95 ret + +00000844 <_exit>: + 844: f8 94 cli + +00000846 <__stop_program>: + 846: ff cf rjmp .-2 ; 0x846 <__stop_program> diff --git a/firmware/dist/default/production/attiny45v_thermometer.X.production.map b/firmware/dist/default/production/firmware.production.map similarity index 86% rename from firmware/dist/default/production/attiny45v_thermometer.X.production.map rename to firmware/dist/default/production/firmware.production.map index 60705b4..08cf002 100644 --- a/firmware/dist/default/production/attiny45v_thermometer.X.production.map +++ b/firmware/dist/default/production/firmware.production.map @@ -193,7 +193,7 @@ END GROUP .rela.plt *(.rela.plt) -.text 0x0000000000000000 0x830 +.text 0x0000000000000000 0x848 *(.vectors) .vectors 0x0000000000000000 0x1e /home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151/gcc/dev/attiny45/avr25/crtattiny45.o 0x0000000000000000 __vectors @@ -297,59 +297,62 @@ END GROUP .text.TM1637_DisplayFixedNum 0x0000000000000208 0x1e2 build/default/production/main.o 0x0000000000000208 TM1637_DisplayFixedNum - .text.main 0x00000000000003ea 0x98 build/default/production/main.o - 0x00000000000003ea main + .text.SensorErrorHandler + 0x00000000000003ea 0x20 build/default/production/main.o + 0x00000000000003ea SensorErrorHandler + .text.main 0x000000000000040a 0x90 build/default/production/main.o + 0x000000000000040a main .text.OneWire_Presence - 0x0000000000000482 0x34 build/default/production/onewire.o - 0x0000000000000482 OneWire_Presence + 0x000000000000049a 0x34 build/default/production/onewire.o + 0x000000000000049a OneWire_Presence .text.OneWire_WriteByte - 0x00000000000004b6 0x3a build/default/production/onewire.o - 0x00000000000004b6 OneWire_WriteByte + 0x00000000000004ce 0x3a build/default/production/onewire.o + 0x00000000000004ce OneWire_WriteByte .text.OneWire_ReadByte - 0x00000000000004f0 0x32 build/default/production/onewire.o - 0x00000000000004f0 OneWire_ReadByte + 0x0000000000000508 0x32 build/default/production/onewire.o + 0x0000000000000508 OneWire_ReadByte .text.OneWire_SkipROM - 0x0000000000000522 0x10 build/default/production/onewire.o - 0x0000000000000522 OneWire_SkipROM + 0x000000000000053a 0x10 build/default/production/onewire.o + 0x000000000000053a OneWire_SkipROM .text.OneWire_ReadROM - 0x0000000000000532 0x32 build/default/production/onewire.o - 0x0000000000000532 OneWire_ReadROM + 0x000000000000054a 0x32 build/default/production/onewire.o + 0x000000000000054a OneWire_ReadROM .text.OneWire_CRC8_Update - 0x0000000000000564 0x2c build/default/production/onewire.o - 0x0000000000000564 OneWire_CRC8_Update + 0x000000000000057c 0x2c build/default/production/onewire.o + 0x000000000000057c OneWire_CRC8_Update .text.DallasTemp_ReadScratchpad - 0x0000000000000590 0x48 build/default/production/dstemperature.o - 0x0000000000000590 DallasTemp_ReadScratchpad + 0x00000000000005a8 0x48 build/default/production/dstemperature.o + 0x00000000000005a8 DallasTemp_ReadScratchpad .text.DallasTemp_CopyScratchpad - 0x00000000000005d8 0x12 build/default/production/dstemperature.o - 0x00000000000005d8 DallasTemp_CopyScratchpad + 0x00000000000005f0 0x12 build/default/production/dstemperature.o + 0x00000000000005f0 DallasTemp_CopyScratchpad .text.DallasTemp_WriteScratchpad - 0x00000000000005ea 0x20 build/default/production/dstemperature.o - 0x00000000000005ea DallasTemp_WriteScratchpad + 0x0000000000000602 0x20 build/default/production/dstemperature.o + 0x0000000000000602 DallasTemp_WriteScratchpad .text.DallasTemp_SetResolution - 0x000000000000060a 0x62 build/default/production/dstemperature.o - 0x000000000000060a DallasTemp_SetResolution + 0x0000000000000622 0x62 build/default/production/dstemperature.o + 0x0000000000000622 DallasTemp_SetResolution .text.DallasTemp_Convert - 0x000000000000066c 0x14 build/default/production/dstemperature.o - 0x000000000000066c DallasTemp_Convert + 0x0000000000000684 0x14 build/default/production/dstemperature.o + 0x0000000000000684 DallasTemp_Convert .text.DallasTemp_CheckError - 0x0000000000000680 0x34 build/default/production/dstemperature.o - 0x0000000000000680 DallasTemp_CheckError + 0x0000000000000698 0x34 build/default/production/dstemperature.o + 0x0000000000000698 DallasTemp_CheckError .text.DallasTemp_GetTemperature - 0x00000000000006b4 0x12a build/default/production/dstemperature.o - 0x00000000000006b4 DallasTemp_GetTemperature + 0x00000000000006cc 0x12a build/default/production/dstemperature.o + 0x00000000000006cc DallasTemp_GetTemperature .text.libgcc.div - 0x00000000000007de 0x28 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_udivmodhi4.o) - 0x00000000000007de __udivmodhi4 + 0x00000000000007f6 0x28 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_udivmodhi4.o) + 0x00000000000007f6 __udivmodhi4 .text.libgcc.div - 0x0000000000000806 0x26 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_divmodhi4.o) - 0x0000000000000806 __divmodhi4 - 0x0000000000000806 _div - 0x000000000000082c . = ALIGN (0x2) + 0x000000000000081e 0x26 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_divmodhi4.o) + 0x000000000000081e __divmodhi4 + 0x000000000000081e _div + 0x0000000000000844 . = ALIGN (0x2) *(.fini9) - .fini9 0x000000000000082c 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_exit.o) - 0x000000000000082c exit - 0x000000000000082c _exit + .fini9 0x0000000000000844 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_exit.o) + 0x0000000000000844 exit + 0x0000000000000844 _exit *(.fini9) *(.fini8) *(.fini8) @@ -368,11 +371,11 @@ END GROUP *(.fini1) *(.fini1) *(.fini0) - .fini0 0x000000000000082c 0x4 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_exit.o) + .fini0 0x0000000000000844 0x4 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_exit.o) *(.fini0) - 0x0000000000000830 _etext = . + 0x0000000000000848 _etext = . -.data 0x0000000000800060 0x0 load address 0x0000000000000830 +.data 0x0000000000800060 0x0 load address 0x0000000000000848 [!provide] PROVIDE (__data_start, .) *(.data) *(.data*) @@ -390,8 +393,8 @@ END GROUP *(.bss*) *(COMMON) [!provide] PROVIDE (__bss_end, .) - 0x0000000000000830 __data_load_start = LOADADDR (.data) - 0x0000000000000830 __data_load_end = (__data_load_start + SIZEOF (.data)) + 0x0000000000000848 __data_load_start = LOADADDR (.data) + 0x0000000000000848 __data_load_end = (__data_load_start + SIZEOF (.data)) .noinit 0x0000000000800060 0x0 [!provide] PROVIDE (__noinit_start, .) @@ -515,5 +518,5 @@ END GROUP .debug_macro *(.debug_macro) -OUTPUT(dist/default/production/attiny45v_thermometer.X.production.elf elf32-avr) +OUTPUT(dist/default/production/firmware.production.elf elf32-avr) LOAD linker stubs diff --git a/firmware/main.c b/firmware/main.c index e872853..de3c2d7 100644 --- a/firmware/main.c +++ b/firmware/main.c @@ -6,6 +6,8 @@ #include "onewire.h" #include "dstemperature.h" +#define ENABLE_ERROR_HANDLER 1 + #define DDR_TWI DDRB #define PORT_TWI PORTB #define PIN_TWI PINB @@ -234,6 +236,33 @@ void TM1637_DisplayFixedNum(int16_t num, uint8_t frac, uint8_t presicion, uint8_ TM1637_DisplaySymbol(get_symbol(frac), j); } +/** + * Обработка ошибки одного датчика + * @param Sensor - датчик + * @return "1" - есть ошибка, "0" - нет ошибки + */ +uint8_t SensorErrorHandler(DallasSensor *Sensor) { + DallasSensorError error = DallasTemp_CheckError(Sensor); + if (error) { + switch (error) { + case ERR_NO_PRESENCE: + PORTB |= _BV(PIN_LED_ERR); + TM1637_DisplayInt(error); + break; + case ERR_F_CODE_INVALID: + break; + case ERR_CRC8_RAM: + break; + default: + break; + } + return 1; + } + + PORTB &= ~_BV(PIN_LED_ERR); + return 0; +} + int main(void) { DDRB |= _BV(PIN_LED_ERR); PORTB &= ~_BV(PIN_LED_ERR); @@ -250,19 +279,13 @@ int main(void) { _delay_ms(100); while (1) { - /** - * Обработка ошибки одного датчика - */ - DallasSensorError error = DallasTemp_CheckError(&Sensor_01); - if (error) { - PORTB |= _BV(PIN_LED_ERR); - TM1637_DisplayInt(error); - _delay_ms(50); - wdt_reset(); - continue; - } else { - PORTB &= ~_BV(PIN_LED_ERR); - } + #if ENABLE_ERROR_HANDLER + if (SensorErrorHandler(&Sensor_01)) { + _delay_ms(50); + wdt_reset(); + continue; + } + #endif /** * Получение температуры и вывод на индикатор diff --git a/firmware/nbproject/Makefile-default.mk b/firmware/nbproject/Makefile-default.mk index 3bc1338..b62094b 100644 --- a/firmware/nbproject/Makefile-default.mk +++ b/firmware/nbproject/Makefile-default.mk @@ -30,12 +30,12 @@ ifeq ($(TYPE_IMAGE), DEBUG_RUN) IMAGE_TYPE=debug OUTPUT_SUFFIX=elf DEBUGGABLE_SUFFIX=elf -FINAL_IMAGE=${DISTDIR}/attiny45v_thermometer.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX} +FINAL_IMAGE=${DISTDIR}/firmware.${IMAGE_TYPE}.${OUTPUT_SUFFIX} else IMAGE_TYPE=production OUTPUT_SUFFIX=hex DEBUGGABLE_SUFFIX=elf -FINAL_IMAGE=${DISTDIR}/attiny45v_thermometer.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX} +FINAL_IMAGE=${DISTDIR}/firmware.${IMAGE_TYPE}.${OUTPUT_SUFFIX} endif ifeq ($(COMPARE_BUILD), true) @@ -92,7 +92,7 @@ FIXDEPS=fixDeps ifneq ($(INFORMATION_MESSAGE), ) @echo $(INFORMATION_MESSAGE) endif - ${MAKE} -f nbproject/Makefile-default.mk ${DISTDIR}/attiny45v_thermometer.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX} + ${MAKE} -f nbproject/Makefile-default.mk ${DISTDIR}/firmware.${IMAGE_TYPE}.${OUTPUT_SUFFIX} MP_PROCESSOR_OPTION=ATtiny45 # ------------------------------------------------------------------------------------ @@ -110,38 +110,38 @@ endif # ------------------------------------------------------------------------------------ # Rules for buildStep: compile ifeq ($(TYPE_IMAGE), DEBUG_RUN) -${OBJECTDIR}/main.o: main.c .generated_files/flags/default/ebd6578f553cc856320c4e3fab74007688bb7df4 .generated_files/flags/default/12c67fe6cdcd6963bda122da91f9033805394b5f +${OBJECTDIR}/main.o: main.c .generated_files/flags/default/18f599bddb2372a424a592cb1b143801cd7db1d .generated_files/flags/default/12c67fe6cdcd6963bda122da91f9033805394b5f @${MKDIR} "${OBJECTDIR}" @${RM} ${OBJECTDIR}/main.o.d @${RM} ${OBJECTDIR}/main.o ${MP_CC} $(MP_EXTRA_CC_PRE) -mmcu=attiny45 ${PACK_COMPILER_OPTIONS} ${PACK_COMMON_OPTIONS} -g -DDEBUG -gdwarf-2 -x c -c -D__$(MP_PROCESSOR_OPTION)__ -funsigned-char -funsigned-bitfields -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -Wall -MD -MP -MF "${OBJECTDIR}/main.o.d" -MT "${OBJECTDIR}/main.o.d" -MT ${OBJECTDIR}/main.o -o ${OBJECTDIR}/main.o main.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -DF_CPU=8000000UL -${OBJECTDIR}/onewire.o: onewire.c .generated_files/flags/default/f032a224192bd107f2123e08604a3b5b0f41643c .generated_files/flags/default/12c67fe6cdcd6963bda122da91f9033805394b5f +${OBJECTDIR}/onewire.o: onewire.c .generated_files/flags/default/cc4122e796c2108754ce016f3c0d3dc9c13879bd .generated_files/flags/default/12c67fe6cdcd6963bda122da91f9033805394b5f @${MKDIR} "${OBJECTDIR}" @${RM} ${OBJECTDIR}/onewire.o.d @${RM} ${OBJECTDIR}/onewire.o ${MP_CC} $(MP_EXTRA_CC_PRE) -mmcu=attiny45 ${PACK_COMPILER_OPTIONS} ${PACK_COMMON_OPTIONS} -g -DDEBUG -gdwarf-2 -x c -c -D__$(MP_PROCESSOR_OPTION)__ -funsigned-char -funsigned-bitfields -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -Wall -MD -MP -MF "${OBJECTDIR}/onewire.o.d" -MT "${OBJECTDIR}/onewire.o.d" -MT ${OBJECTDIR}/onewire.o -o ${OBJECTDIR}/onewire.o onewire.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -DF_CPU=8000000UL -${OBJECTDIR}/dstemperature.o: dstemperature.c .generated_files/flags/default/80d105638d61b31dfb20a22d20c8ded4b921bb3f .generated_files/flags/default/12c67fe6cdcd6963bda122da91f9033805394b5f +${OBJECTDIR}/dstemperature.o: dstemperature.c .generated_files/flags/default/69e466464f473642f912549d7526718e2ab8bdd3 .generated_files/flags/default/12c67fe6cdcd6963bda122da91f9033805394b5f @${MKDIR} "${OBJECTDIR}" @${RM} ${OBJECTDIR}/dstemperature.o.d @${RM} ${OBJECTDIR}/dstemperature.o ${MP_CC} $(MP_EXTRA_CC_PRE) -mmcu=attiny45 ${PACK_COMPILER_OPTIONS} ${PACK_COMMON_OPTIONS} -g -DDEBUG -gdwarf-2 -x c -c -D__$(MP_PROCESSOR_OPTION)__ -funsigned-char -funsigned-bitfields -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -Wall -MD -MP -MF "${OBJECTDIR}/dstemperature.o.d" -MT "${OBJECTDIR}/dstemperature.o.d" -MT ${OBJECTDIR}/dstemperature.o -o ${OBJECTDIR}/dstemperature.o dstemperature.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -DF_CPU=8000000UL else -${OBJECTDIR}/main.o: main.c .generated_files/flags/default/852a931b512b8c8a6143655dd7f5022a6cb025f5 .generated_files/flags/default/12c67fe6cdcd6963bda122da91f9033805394b5f +${OBJECTDIR}/main.o: main.c .generated_files/flags/default/e8b0a82687c5817bdc823aa0198151107a4c0b07 .generated_files/flags/default/12c67fe6cdcd6963bda122da91f9033805394b5f @${MKDIR} "${OBJECTDIR}" @${RM} ${OBJECTDIR}/main.o.d @${RM} ${OBJECTDIR}/main.o ${MP_CC} $(MP_EXTRA_CC_PRE) -mmcu=attiny45 ${PACK_COMPILER_OPTIONS} ${PACK_COMMON_OPTIONS} -x c -c -D__$(MP_PROCESSOR_OPTION)__ -funsigned-char -funsigned-bitfields -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -Wall -MD -MP -MF "${OBJECTDIR}/main.o.d" -MT "${OBJECTDIR}/main.o.d" -MT ${OBJECTDIR}/main.o -o ${OBJECTDIR}/main.o main.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -DF_CPU=8000000UL -${OBJECTDIR}/onewire.o: onewire.c .generated_files/flags/default/5312daf68dcab5b5e0043f8514afba88eb8ddeb0 .generated_files/flags/default/12c67fe6cdcd6963bda122da91f9033805394b5f +${OBJECTDIR}/onewire.o: onewire.c .generated_files/flags/default/47a05aa6e2089994b98fb7a7b4c7fb38d19d902f .generated_files/flags/default/12c67fe6cdcd6963bda122da91f9033805394b5f @${MKDIR} "${OBJECTDIR}" @${RM} ${OBJECTDIR}/onewire.o.d @${RM} ${OBJECTDIR}/onewire.o ${MP_CC} $(MP_EXTRA_CC_PRE) -mmcu=attiny45 ${PACK_COMPILER_OPTIONS} ${PACK_COMMON_OPTIONS} -x c -c -D__$(MP_PROCESSOR_OPTION)__ -funsigned-char -funsigned-bitfields -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -Wall -MD -MP -MF "${OBJECTDIR}/onewire.o.d" -MT "${OBJECTDIR}/onewire.o.d" -MT ${OBJECTDIR}/onewire.o -o ${OBJECTDIR}/onewire.o onewire.c -DXPRJ_default=$(CND_CONF) $(COMPARISON_BUILD) -DF_CPU=8000000UL -${OBJECTDIR}/dstemperature.o: dstemperature.c .generated_files/flags/default/6842ec3b8e5e6b0b001addd084df5d184933bbe5 .generated_files/flags/default/12c67fe6cdcd6963bda122da91f9033805394b5f +${OBJECTDIR}/dstemperature.o: dstemperature.c .generated_files/flags/default/ddf87487dd00aa036a9a53dff157eefaf70d8f5f .generated_files/flags/default/12c67fe6cdcd6963bda122da91f9033805394b5f @${MKDIR} "${OBJECTDIR}" @${RM} ${OBJECTDIR}/dstemperature.o.d @${RM} ${OBJECTDIR}/dstemperature.o @@ -158,22 +158,22 @@ endif # ------------------------------------------------------------------------------------ # Rules for buildStep: link ifeq ($(TYPE_IMAGE), DEBUG_RUN) -${DISTDIR}/attiny45v_thermometer.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}: ${OBJECTFILES} nbproject/Makefile-${CND_CONF}.mk +${DISTDIR}/firmware.${IMAGE_TYPE}.${OUTPUT_SUFFIX}: ${OBJECTFILES} nbproject/Makefile-${CND_CONF}.mk @${MKDIR} ${DISTDIR} - ${MP_CC} $(MP_EXTRA_LD_PRE) -mmcu=attiny45 ${PACK_COMMON_OPTIONS} -gdwarf-2 -D__$(MP_PROCESSOR_OPTION)__ -Wl,-Map="${DISTDIR}/attiny45v_thermometer.X.${IMAGE_TYPE}.map" -o ${DISTDIR}/attiny45v_thermometer.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX} ${OBJECTFILES_QUOTED_IF_SPACED} -DXPRJ_default=$(CND_CONF) -DF_CPU=8000000UL $(COMPARISON_BUILD) -Wl,--defsym=__MPLAB_BUILD=1$(MP_EXTRA_LD_POST)$(MP_LINKER_FILE_OPTION),--defsym=__ICD2RAM=1,--defsym=__MPLAB_DEBUG=1,--defsym=__DEBUG=1 -Wl,--gc-sections -Wl,--start-group -Wl,-lm -Wl,--end-group + ${MP_CC} $(MP_EXTRA_LD_PRE) -mmcu=attiny45 ${PACK_COMMON_OPTIONS} -gdwarf-2 -D__$(MP_PROCESSOR_OPTION)__ -Wl,-Map="${DISTDIR}/firmware.${IMAGE_TYPE}.map" -o ${DISTDIR}/firmware.${IMAGE_TYPE}.${OUTPUT_SUFFIX} ${OBJECTFILES_QUOTED_IF_SPACED} -DXPRJ_default=$(CND_CONF) -DF_CPU=8000000UL $(COMPARISON_BUILD) -Wl,--defsym=__MPLAB_BUILD=1$(MP_EXTRA_LD_POST)$(MP_LINKER_FILE_OPTION),--defsym=__ICD2RAM=1,--defsym=__MPLAB_DEBUG=1,--defsym=__DEBUG=1 -Wl,--gc-sections -Wl,--start-group -Wl,-lm -Wl,--end-group - ${MP_CC_DIR}/avr-objdump -h -S "${DISTDIR}/attiny45v_thermometer.X.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX}" > "${DISTDIR}/attiny45v_thermometer.X.${IMAGE_TYPE}.lss" + ${MP_CC_DIR}/avr-objdump -h -S "${DISTDIR}/firmware.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX}" > "${DISTDIR}/firmware.${IMAGE_TYPE}.lss" else -${DISTDIR}/attiny45v_thermometer.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}: ${OBJECTFILES} nbproject/Makefile-${CND_CONF}.mk +${DISTDIR}/firmware.${IMAGE_TYPE}.${OUTPUT_SUFFIX}: ${OBJECTFILES} nbproject/Makefile-${CND_CONF}.mk @${MKDIR} ${DISTDIR} - ${MP_CC} $(MP_EXTRA_LD_PRE) -mmcu=attiny45 ${PACK_COMMON_OPTIONS} -D__$(MP_PROCESSOR_OPTION)__ -Wl,-Map="${DISTDIR}/attiny45v_thermometer.X.${IMAGE_TYPE}.map" -o ${DISTDIR}/attiny45v_thermometer.X.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX} ${OBJECTFILES_QUOTED_IF_SPACED} -DXPRJ_default=$(CND_CONF) -DF_CPU=8000000UL $(COMPARISON_BUILD) -Wl,--defsym=__MPLAB_BUILD=1$(MP_EXTRA_LD_POST)$(MP_LINKER_FILE_OPTION) -Wl,--gc-sections -Wl,--start-group -Wl,-lm -Wl,--end-group - ${MP_CC_DIR}/avr-objcopy -O ihex "${DISTDIR}/attiny45v_thermometer.X.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX}" "${DISTDIR}/attiny45v_thermometer.X.${IMAGE_TYPE}.hex" + ${MP_CC} $(MP_EXTRA_LD_PRE) -mmcu=attiny45 ${PACK_COMMON_OPTIONS} -D__$(MP_PROCESSOR_OPTION)__ -Wl,-Map="${DISTDIR}/firmware.${IMAGE_TYPE}.map" -o ${DISTDIR}/firmware.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX} ${OBJECTFILES_QUOTED_IF_SPACED} -DXPRJ_default=$(CND_CONF) -DF_CPU=8000000UL $(COMPARISON_BUILD) -Wl,--defsym=__MPLAB_BUILD=1$(MP_EXTRA_LD_POST)$(MP_LINKER_FILE_OPTION) -Wl,--gc-sections -Wl,--start-group -Wl,-lm -Wl,--end-group + ${MP_CC_DIR}/avr-objcopy -O ihex "${DISTDIR}/firmware.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX}" "${DISTDIR}/firmware.${IMAGE_TYPE}.hex" - ${MP_CC_DIR}/avr-objdump -h -S "${DISTDIR}/attiny45v_thermometer.X.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX}" > "${DISTDIR}/attiny45v_thermometer.X.${IMAGE_TYPE}.lss" + ${MP_CC_DIR}/avr-objdump -h -S "${DISTDIR}/firmware.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX}" > "${DISTDIR}/firmware.${IMAGE_TYPE}.lss" diff --git a/firmware/nbproject/Makefile-genesis.properties b/firmware/nbproject/Makefile-genesis.properties index b51ae65..b42e2e8 100644 --- a/firmware/nbproject/Makefile-genesis.properties +++ b/firmware/nbproject/Makefile-genesis.properties @@ -1,14 +1,14 @@ # -#Sun Aug 06 20:27:07 MSK 2023 +#Mon Aug 07 11:59:03 MSK 2023 default.languagetoolchain.version=7.3.0 default.Pack.dfplocation=/home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151 default.com-microchip-mplab-nbide-toolchain-avr-AVRLanguageToolchain.md5=f7c8f2a9c7d7748a6cb97af5c32efadd conf.ids=default default.languagetoolchain.dir=/opt/avr8-gnu-toolchain-linux_x86_64/bin -host.id=256x-epq9-v8 +host.id=hdtj-iuke-f configurations-xml=d1bd56b6b541f41583a2af96dac4f51f default.com-microchip-mplab-mdbcore-snap-SnapToolImpl.md5=eaa336cefb7fc46db8b50b7b2b6e54ca com-microchip-mplab-nbide-embedded-makeproject-MakeProject.md5=6e02ca5e9f5042ffd365b42ab82d3a9b user-defined-mime-resolver-xml=none -proj.dir=/home/sergeyyarkov/Documents/Projects/Firmwares/AVR/attiny45v_thermometer.X +proj.dir=/home/sergeyyarkov/Documents/Projects/Firmwares/AVR/attiny45v_thermometer/firmware host.platform=linux diff --git a/firmware/nbproject/Makefile-impl.mk b/firmware/nbproject/Makefile-impl.mk index ac27e40..99d42f3 100644 --- a/firmware/nbproject/Makefile-impl.mk +++ b/firmware/nbproject/Makefile-impl.mk @@ -24,7 +24,7 @@ CLEAN_SUBPROJECTS=${CLEAN_SUBPROJECTS_${SUBPROJECTS}} # Project Name -PROJECTNAME=attiny45v_thermometer.X +PROJECTNAME=firmware # Active Configuration DEFAULTCONF=default diff --git a/firmware/nbproject/Makefile-variables.mk b/firmware/nbproject/Makefile-variables.mk index c5ef6ed..8b25acb 100644 --- a/firmware/nbproject/Makefile-variables.mk +++ b/firmware/nbproject/Makefile-variables.mk @@ -6,5 +6,5 @@ CND_BASEDIR=`pwd` # default configuration CND_ARTIFACT_DIR_default=dist/default/production -CND_ARTIFACT_NAME_default=attiny45v_thermometer.X.production.hex -CND_ARTIFACT_PATH_default=dist/default/production/attiny45v_thermometer.X.production.hex +CND_ARTIFACT_NAME_default=firmware.production.hex +CND_ARTIFACT_PATH_default=dist/default/production/firmware.production.hex diff --git a/firmware/nbproject/private/private.xml b/firmware/nbproject/private/private.xml index 3b84be6..cb8d677 100644 --- a/firmware/nbproject/private/private.xml +++ b/firmware/nbproject/private/private.xml @@ -3,7 +3,7 @@ - file:/home/sergeyyarkov/Documents/Projects/Firmwares/AVR/attiny45v_thermometer.X/main.c + file:/home/sergeyyarkov/Documents/Projects/Firmwares/AVR/attiny45v_thermometer/firmware/main.c