GAS LISTING /tmp/ccEMtt4X.s page 1 1 .file "main.c" 2 __SREG__ = 0x3f 3 __SP_H__ = 0x3e 4 __SP_L__ = 0x3d 5 __CCP__ = 0x34 6 __tmp_reg__ = 0 7 __zero_reg__ = 1 8 .global __do_copy_data 9 .global __do_clear_bss 10 .stabs "/home/anrp/oldhome/microcontroller/avr/kcb_a32_v1/",100,0,2,.Ltext0 11 .stabs "main.c",100,0,2,.Ltext0 12 .text 13 .Ltext0: 14 .stabs "gcc2_compiled.",60,0,0,0 15 .stabs "int:t(0,1)=r(0,1);-32768;32767;",128,0,1,0 16 .stabs "char:t(0,2)=@s8;r(0,2);0;255;",128,0,1,0 17 .stabs "long int:t(0,3)=@s32;r(0,3);020000000000;017777777777;",128,0,1,0 18 .stabs "unsigned int:t(0,4)=r(0,4);0;0177777;",128,0,1,0 19 .stabs "long unsigned int:t(0,5)=@s32;r(0,5);0;037777777777;",128,0,1,0 20 .stabs "long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;",128,0,1, 21 .stabs "long long unsigned int:t(0,7)=@s64;r(0,7);0;01777777777777777777777;",128,0,1,0 22 .stabs "short int:t(0,8)=r(0,8);-32768;32767;",128,0,1,0 23 .stabs "short unsigned int:t(0,9)=r(0,9);0;0177777;",128,0,1,0 24 .stabs "signed char:t(0,10)=@s8;r(0,10);-128;127;",128,0,1,0 25 .stabs "unsigned char:t(0,11)=@s8;r(0,11);0;255;",128,0,1,0 26 .stabs "float:t(0,12)=r(0,1);4;0;",128,0,1,0 27 .stabs "double:t(0,13)=r(0,1);4;0;",128,0,1,0 28 .stabs "long double:t(0,14)=r(0,1);4;0;",128,0,1,0 29 .stabs "void:t(0,15)=(0,15)",128,0,1,0 30 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/inttypes.h",130,0,0,0 31 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/stdint.h",130,0,0,0 32 .stabs "int8_t:t(2,1)=(0,10)",128,0,121,0 33 .stabs "uint8_t:t(2,2)=(0,11)",128,0,122,0 34 .stabs "int16_t:t(2,3)=(0,1)",128,0,123,0 35 .stabs "uint16_t:t(2,4)=(0,4)",128,0,124,0 36 .stabs "int32_t:t(2,5)=(0,3)",128,0,125,0 37 .stabs "uint32_t:t(2,6)=(0,5)",128,0,126,0 38 .stabs "int64_t:t(2,7)=(0,6)",128,0,128,0 39 .stabs "uint64_t:t(2,8)=(0,7)",128,0,129,0 40 .stabs "intptr_t:t(2,9)=(2,3)",128,0,142,0 41 .stabs "uintptr_t:t(2,10)=(2,4)",128,0,147,0 42 .stabs "int_least8_t:t(2,11)=(2,1)",128,0,159,0 43 .stabs "uint_least8_t:t(2,12)=(2,2)",128,0,164,0 44 .stabs "int_least16_t:t(2,13)=(2,3)",128,0,169,0 45 .stabs "uint_least16_t:t(2,14)=(2,4)",128,0,174,0 46 .stabs "int_least32_t:t(2,15)=(2,5)",128,0,179,0 47 .stabs "uint_least32_t:t(2,16)=(2,6)",128,0,184,0 48 .stabs "int_least64_t:t(2,17)=(2,7)",128,0,192,0 49 .stabs "uint_least64_t:t(2,18)=(2,8)",128,0,199,0 50 .stabs "int_fast8_t:t(2,19)=(2,1)",128,0,213,0 51 .stabs "uint_fast8_t:t(2,20)=(2,2)",128,0,218,0 52 .stabs "int_fast16_t:t(2,21)=(2,3)",128,0,223,0 53 .stabs "uint_fast16_t:t(2,22)=(2,4)",128,0,228,0 54 .stabs "int_fast32_t:t(2,23)=(2,5)",128,0,233,0 55 .stabs "uint_fast32_t:t(2,24)=(2,6)",128,0,238,0 56 .stabs "int_fast64_t:t(2,25)=(2,7)",128,0,246,0 57 .stabs "uint_fast64_t:t(2,26)=(2,8)",128,0,253,0 GAS LISTING /tmp/ccEMtt4X.s page 2 58 .stabs "intmax_t:t(2,27)=(2,7)",128,0,273,0 59 .stabs "uintmax_t:t(2,28)=(2,8)",128,0,278,0 60 .stabn 162,0,0,0 61 .stabs "int_farptr_t:t(1,1)=(2,5)",128,0,77,0 62 .stabs "uint_farptr_t:t(1,2)=(2,6)",128,0,81,0 63 .stabn 162,0,0,0 64 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/io.h",130,0,0,0 65 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/fuse.h",130,0,0,0 66 .stabs "__fuse_t:t(4,1)=(4,2)=s3low:(0,11),0,8;high:(0,11),8,8;extended:(0,11),16,8;;",128,0,219,0 67 .stabn 162,0,0,0 68 .stabn 162,0,0,0 69 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/pgmspace.h",130,0,0,0 70 .stabs "/usr/lib/gcc/avr/4.3.2/include/stddef.h",130,0,0,0 71 .stabs "size_t:t(6,1)=(0,4)",128,0,214,0 72 .stabn 162,0,0,0 73 .stabs "prog_void:t(5,1)=(5,2)=(5,2)",128,0,210,0 74 .stabs "prog_char:t(5,3)=(5,4)=@s8;r(5,4);0;255;",128,0,211,0 75 .stabs "prog_uchar:t(5,5)=(5,4)",128,0,212,0 76 .stabs "prog_int8_t:t(5,6)=(5,7)=(0,10)",128,0,214,0 77 .stabs "prog_uint8_t:t(5,8)=(5,4)",128,0,215,0 78 .stabs "prog_int16_t:t(5,9)=(5,10)=(0,1)",128,0,216,0 79 .stabs "prog_uint16_t:t(5,11)=(5,12)=(0,4)",128,0,217,0 80 .stabs "prog_int32_t:t(5,13)=(5,14)=(0,3)",128,0,218,0 81 .stabs "prog_uint32_t:t(5,15)=(5,16)=(0,5)",128,0,219,0 82 .stabs "prog_int64_t:t(5,17)=(5,18)=(0,6)",128,0,221,0 83 .stabs "prog_uint64_t:t(5,19)=(5,20)=(0,7)",128,0,222,0 84 .stabn 162,0,0,0 85 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/stdlib.h",130,0,0,0 86 .stabs "/usr/lib/gcc/avr/4.3.2/include/stddef.h",130,0,0,0 87 .stabs "wchar_t:t(8,1)=(0,1)",128,0,326,0 88 .stabn 162,0,0,0 89 .stabs "div_t:t(7,1)=(7,2)=s4quot:(0,1),0,16;rem:(0,1),16,16;;",128,0,71,0 90 .stabs "ldiv_t:t(7,3)=(7,4)=s8quot:(0,3),0,32;rem:(0,3),32,32;;",128,0,77,0 91 .stabs "__compar_fn_t:t(7,5)=(7,6)=*(7,7)=f(0,1)",128,0,80,0 92 .stabn 162,0,0,0 93 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/stdio.h",130,0,0,0 94 .stabs "/usr/lib/gcc/avr/4.3.2/include/stdarg.h",130,0,0,0 95 .stabs "__gnuc_va_list:t(10,1)=(10,2)=*(0,15)",128,0,43,0 96 .stabs "va_list:t(10,3)=(10,1)",128,0,105,0 97 .stabn 162,0,0,0 98 .stabs "__file:T(9,1)=s14buf:(9,2)=*(0,2),0,16;unget:(0,11),16,8;flags:(2,2),24,8;size:(0,1),32,16 99 .stabn 162,0,0,0 100 .stabs "timers.h",130,0,0,0 101 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/stdint.h",130,0,0,0 102 .stabs "int8_t:t(12,1)=(0,10)",128,0,121,0 103 .stabs "uint8_t:t(12,2)=(0,11)",128,0,122,0 104 .stabs "int16_t:t(12,3)=(0,1)",128,0,123,0 105 .stabs "uint16_t:t(12,4)=(0,4)",128,0,124,0 106 .stabs "int32_t:t(12,5)=(0,3)",128,0,125,0 107 .stabs "uint32_t:t(12,6)=(0,5)",128,0,126,0 108 .stabs "int64_t:t(12,7)=(0,6)",128,0,128,0 109 .stabs "uint64_t:t(12,8)=(0,7)",128,0,129,0 110 .stabs "intptr_t:t(12,9)=(12,3)",128,0,142,0 111 .stabs "uintptr_t:t(12,10)=(12,4)",128,0,147,0 112 .stabs "int_least8_t:t(12,11)=(12,1)",128,0,159,0 113 .stabs "uint_least8_t:t(12,12)=(12,2)",128,0,164,0 114 .stabs "int_least16_t:t(12,13)=(12,3)",128,0,169,0 GAS LISTING /tmp/ccEMtt4X.s page 3 115 .stabs "uint_least16_t:t(12,14)=(12,4)",128,0,174,0 116 .stabs "int_least32_t:t(12,15)=(12,5)",128,0,179,0 117 .stabs "uint_least32_t:t(12,16)=(12,6)",128,0,184,0 118 .stabs "int_least64_t:t(12,17)=(12,7)",128,0,192,0 119 .stabs "uint_least64_t:t(12,18)=(12,8)",128,0,199,0 120 .stabs "int_fast8_t:t(12,19)=(12,1)",128,0,213,0 121 .stabs "uint_fast8_t:t(12,20)=(12,2)",128,0,218,0 122 .stabs "int_fast16_t:t(12,21)=(12,3)",128,0,223,0 123 .stabs "uint_fast16_t:t(12,22)=(12,4)",128,0,228,0 124 .stabs "int_fast32_t:t(12,23)=(12,5)",128,0,233,0 125 .stabs "uint_fast32_t:t(12,24)=(12,6)",128,0,238,0 126 .stabs "int_fast64_t:t(12,25)=(12,7)",128,0,246,0 127 .stabs "uint_fast64_t:t(12,26)=(12,8)",128,0,253,0 128 .stabs "intmax_t:t(12,27)=(12,7)",128,0,273,0 129 .stabs "uintmax_t:t(12,28)=(12,8)",128,0,278,0 130 .stabn 162,0,0,0 131 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/io.h",130,0,0,0 132 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/sfr_defs.h",130,0,0,0 133 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/inttypes.h",130,0,0,0 134 .stabs "int_farptr_t:t(15,1)=(12,5)",128,0,77,0 135 .stabs "uint_farptr_t:t(15,2)=(12,6)",128,0,81,0 136 .stabn 162,0,0,0 137 .stabn 162,0,0,0 138 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/fuse.h",130,0,0,0 139 .stabs "__fuse_t:t(16,1)=(16,2)=s3low:(0,11),0,8;high:(0,11),8,8;extended:(0,11),16,8;;",128,0,219 140 .stabn 162,0,0,0 141 .stabn 162,0,0,0 142 .stabn 162,0,0,0 143 .stabs "eeprom_data_locs.h",130,0,0,0 144 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/io.h",130,0,0,0 145 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/sfr_defs.h",130,0,0,0 146 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/inttypes.h",130,0,0,0 147 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/stdint.h",130,0,0,0 148 .stabs "int8_t:t(21,1)=(0,10)",128,0,121,0 149 .stabs "uint8_t:t(21,2)=(0,11)",128,0,122,0 150 .stabs "int16_t:t(21,3)=(0,1)",128,0,123,0 151 .stabs "uint16_t:t(21,4)=(0,4)",128,0,124,0 152 .stabs "int32_t:t(21,5)=(0,3)",128,0,125,0 153 .stabs "uint32_t:t(21,6)=(0,5)",128,0,126,0 154 .stabs "int64_t:t(21,7)=(0,6)",128,0,128,0 155 .stabs "uint64_t:t(21,8)=(0,7)",128,0,129,0 156 .stabs "intptr_t:t(21,9)=(21,3)",128,0,142,0 157 .stabs "uintptr_t:t(21,10)=(21,4)",128,0,147,0 158 .stabs "int_least8_t:t(21,11)=(21,1)",128,0,159,0 159 .stabs "uint_least8_t:t(21,12)=(21,2)",128,0,164,0 160 .stabs "int_least16_t:t(21,13)=(21,3)",128,0,169,0 161 .stabs "uint_least16_t:t(21,14)=(21,4)",128,0,174,0 162 .stabs "int_least32_t:t(21,15)=(21,5)",128,0,179,0 163 .stabs "uint_least32_t:t(21,16)=(21,6)",128,0,184,0 164 .stabs "int_least64_t:t(21,17)=(21,7)",128,0,192,0 165 .stabs "uint_least64_t:t(21,18)=(21,8)",128,0,199,0 166 .stabs "int_fast8_t:t(21,19)=(21,1)",128,0,213,0 167 .stabs "uint_fast8_t:t(21,20)=(21,2)",128,0,218,0 168 .stabs "int_fast16_t:t(21,21)=(21,3)",128,0,223,0 169 .stabs "uint_fast16_t:t(21,22)=(21,4)",128,0,228,0 170 .stabs "int_fast32_t:t(21,23)=(21,5)",128,0,233,0 171 .stabs "uint_fast32_t:t(21,24)=(21,6)",128,0,238,0 GAS LISTING /tmp/ccEMtt4X.s page 4 172 .stabs "int_fast64_t:t(21,25)=(21,7)",128,0,246,0 173 .stabs "uint_fast64_t:t(21,26)=(21,8)",128,0,253,0 174 .stabs "intmax_t:t(21,27)=(21,7)",128,0,273,0 175 .stabs "uintmax_t:t(21,28)=(21,8)",128,0,278,0 176 .stabn 162,0,0,0 177 .stabs "int_farptr_t:t(20,1)=(21,5)",128,0,77,0 178 .stabs "uint_farptr_t:t(20,2)=(21,6)",128,0,81,0 179 .stabn 162,0,0,0 180 .stabn 162,0,0,0 181 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/fuse.h",130,0,0,0 182 .stabs "__fuse_t:t(22,1)=(22,2)=s3low:(0,11),0,8;high:(0,11),8,8;extended:(0,11),16,8;;",128,0,219 183 .stabn 162,0,0,0 184 .stabn 162,0,0,0 185 .stabn 162,0,0,0 186 .stabs "adc.h",130,0,0,0 187 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/stdint.h",130,0,0,0 188 .stabs "int8_t:t(24,1)=(0,10)",128,0,121,0 189 .stabs "uint8_t:t(24,2)=(0,11)",128,0,122,0 190 .stabs "int16_t:t(24,3)=(0,1)",128,0,123,0 191 .stabs "uint16_t:t(24,4)=(0,4)",128,0,124,0 192 .stabs "int32_t:t(24,5)=(0,3)",128,0,125,0 193 .stabs "uint32_t:t(24,6)=(0,5)",128,0,126,0 194 .stabs "int64_t:t(24,7)=(0,6)",128,0,128,0 195 .stabs "uint64_t:t(24,8)=(0,7)",128,0,129,0 196 .stabs "intptr_t:t(24,9)=(24,3)",128,0,142,0 197 .stabs "uintptr_t:t(24,10)=(24,4)",128,0,147,0 198 .stabs "int_least8_t:t(24,11)=(24,1)",128,0,159,0 199 .stabs "uint_least8_t:t(24,12)=(24,2)",128,0,164,0 200 .stabs "int_least16_t:t(24,13)=(24,3)",128,0,169,0 201 .stabs "uint_least16_t:t(24,14)=(24,4)",128,0,174,0 202 .stabs "int_least32_t:t(24,15)=(24,5)",128,0,179,0 203 .stabs "uint_least32_t:t(24,16)=(24,6)",128,0,184,0 204 .stabs "int_least64_t:t(24,17)=(24,7)",128,0,192,0 205 .stabs "uint_least64_t:t(24,18)=(24,8)",128,0,199,0 206 .stabs "int_fast8_t:t(24,19)=(24,1)",128,0,213,0 207 .stabs "uint_fast8_t:t(24,20)=(24,2)",128,0,218,0 208 .stabs "int_fast16_t:t(24,21)=(24,3)",128,0,223,0 209 .stabs "uint_fast16_t:t(24,22)=(24,4)",128,0,228,0 210 .stabs "int_fast32_t:t(24,23)=(24,5)",128,0,233,0 211 .stabs "uint_fast32_t:t(24,24)=(24,6)",128,0,238,0 212 .stabs "int_fast64_t:t(24,25)=(24,7)",128,0,246,0 213 .stabs "uint_fast64_t:t(24,26)=(24,8)",128,0,253,0 214 .stabs "intmax_t:t(24,27)=(24,7)",128,0,273,0 215 .stabs "uintmax_t:t(24,28)=(24,8)",128,0,278,0 216 .stabn 162,0,0,0 217 .stabn 162,0,0,0 218 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/io.h",130,0,0,0 219 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/sfr_defs.h",130,0,0,0 220 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/inttypes.h",130,0,0,0 221 .stabs "int_farptr_t:t(27,1)=(24,5)",128,0,77,0 222 .stabs "uint_farptr_t:t(27,2)=(24,6)",128,0,81,0 223 .stabn 162,0,0,0 224 .stabn 162,0,0,0 225 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/fuse.h",130,0,0,0 226 .stabs "__fuse_t:t(28,1)=(28,2)=s3low:(0,11),0,8;high:(0,11),8,8;extended:(0,11),16,8;;",128,0,219 227 .stabn 162,0,0,0 228 .stabn 162,0,0,0 GAS LISTING /tmp/ccEMtt4X.s page 5 229 .stabs "display.h",130,0,0,0 230 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/stdint.h",130,0,0,0 231 .stabs "int8_t:t(30,1)=(0,10)",128,0,121,0 232 .stabs "uint8_t:t(30,2)=(0,11)",128,0,122,0 233 .stabs "int16_t:t(30,3)=(0,1)",128,0,123,0 234 .stabs "uint16_t:t(30,4)=(0,4)",128,0,124,0 235 .stabs "int32_t:t(30,5)=(0,3)",128,0,125,0 236 .stabs "uint32_t:t(30,6)=(0,5)",128,0,126,0 237 .stabs "int64_t:t(30,7)=(0,6)",128,0,128,0 238 .stabs "uint64_t:t(30,8)=(0,7)",128,0,129,0 239 .stabs "intptr_t:t(30,9)=(30,3)",128,0,142,0 240 .stabs "uintptr_t:t(30,10)=(30,4)",128,0,147,0 241 .stabs "int_least8_t:t(30,11)=(30,1)",128,0,159,0 242 .stabs "uint_least8_t:t(30,12)=(30,2)",128,0,164,0 243 .stabs "int_least16_t:t(30,13)=(30,3)",128,0,169,0 244 .stabs "uint_least16_t:t(30,14)=(30,4)",128,0,174,0 245 .stabs "int_least32_t:t(30,15)=(30,5)",128,0,179,0 246 .stabs "uint_least32_t:t(30,16)=(30,6)",128,0,184,0 247 .stabs "int_least64_t:t(30,17)=(30,7)",128,0,192,0 248 .stabs "uint_least64_t:t(30,18)=(30,8)",128,0,199,0 249 .stabs "int_fast8_t:t(30,19)=(30,1)",128,0,213,0 250 .stabs "uint_fast8_t:t(30,20)=(30,2)",128,0,218,0 251 .stabs "int_fast16_t:t(30,21)=(30,3)",128,0,223,0 252 .stabs "uint_fast16_t:t(30,22)=(30,4)",128,0,228,0 253 .stabs "int_fast32_t:t(30,23)=(30,5)",128,0,233,0 254 .stabs "uint_fast32_t:t(30,24)=(30,6)",128,0,238,0 255 .stabs "int_fast64_t:t(30,25)=(30,7)",128,0,246,0 256 .stabs "uint_fast64_t:t(30,26)=(30,8)",128,0,253,0 257 .stabs "intmax_t:t(30,27)=(30,7)",128,0,273,0 258 .stabs "uintmax_t:t(30,28)=(30,8)",128,0,278,0 259 .stabn 162,0,0,0 260 .stabn 162,0,0,0 261 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay.h",130,0,0,0 262 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/inttypes.h",130,0,0,0 263 .stabs "int_farptr_t:t(32,1)=(30,5)",128,0,77,0 264 .stabs "uint_farptr_t:t(32,2)=(30,6)",128,0,81,0 265 .stabn 162,0,0,0 266 .stabn 162,0,0,0 267 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/io.h",130,0,0,0 268 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/fuse.h",130,0,0,0 269 .stabs "__fuse_t:t(34,1)=(34,2)=s3low:(0,11),0,8;high:(0,11),8,8;extended:(0,11),16,8;;",128,0,219 270 .stabn 162,0,0,0 271 .stabn 162,0,0,0 272 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/string.h",130,0,0,0 273 .stabs "/usr/lib/gcc/avr/4.3.2/include/stddef.h",130,0,0,0 274 .stabs "size_t:t(36,1)=(0,4)",128,0,214,0 275 .stabn 162,0,0,0 276 .stabn 162,0,0,0 277 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/stdlib.h",130,0,0,0 278 .stabs "/usr/lib/gcc/avr/4.3.2/include/stddef.h",130,0,0,0 279 .stabs "wchar_t:t(38,1)=(0,1)",128,0,326,0 280 .stabn 162,0,0,0 281 .stabs "div_t:t(37,1)=(37,2)=s4quot:(0,1),0,16;rem:(0,1),16,16;;",128,0,71,0 282 .stabs "ldiv_t:t(37,3)=(37,4)=s8quot:(0,3),0,32;rem:(0,3),32,32;;",128,0,77,0 283 .stabs "__compar_fn_t:t(37,5)=(7,6)",128,0,80,0 284 .stabn 162,0,0,0 285 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/pgmspace.h",130,0,0,0 GAS LISTING /tmp/ccEMtt4X.s page 6 286 .stabs "prog_void:t(39,1)=(5,2)",128,0,210,0 287 .stabs "prog_char:t(39,2)=(5,4)",128,0,211,0 288 .stabs "prog_uchar:t(39,3)=(5,4)",128,0,212,0 289 .stabs "prog_int8_t:t(39,4)=(5,7)",128,0,214,0 290 .stabs "prog_uint8_t:t(39,5)=(5,4)",128,0,215,0 291 .stabs "prog_int16_t:t(39,6)=(5,10)",128,0,216,0 292 .stabs "prog_uint16_t:t(39,7)=(5,12)",128,0,217,0 293 .stabs "prog_int32_t:t(39,8)=(5,14)",128,0,218,0 294 .stabs "prog_uint32_t:t(39,9)=(5,16)",128,0,219,0 295 .stabs "prog_int64_t:t(39,10)=(5,18)",128,0,221,0 296 .stabs "prog_uint64_t:t(39,11)=(5,20)",128,0,222,0 297 .stabn 162,0,0,0 298 .stabs "statemachine.h",130,0,0,0 299 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/stdint.h",130,0,0,0 300 .stabs "int8_t:t(41,1)=(0,10)",128,0,121,0 301 .stabs "uint8_t:t(41,2)=(0,11)",128,0,122,0 302 .stabs "int16_t:t(41,3)=(0,1)",128,0,123,0 303 .stabs "uint16_t:t(41,4)=(0,4)",128,0,124,0 304 .stabs "int32_t:t(41,5)=(0,3)",128,0,125,0 305 .stabs "uint32_t:t(41,6)=(0,5)",128,0,126,0 306 .stabs "int64_t:t(41,7)=(0,6)",128,0,128,0 307 .stabs "uint64_t:t(41,8)=(0,7)",128,0,129,0 308 .stabs "intptr_t:t(41,9)=(41,3)",128,0,142,0 309 .stabs "uintptr_t:t(41,10)=(41,4)",128,0,147,0 310 .stabs "int_least8_t:t(41,11)=(41,1)",128,0,159,0 311 .stabs "uint_least8_t:t(41,12)=(41,2)",128,0,164,0 312 .stabs "int_least16_t:t(41,13)=(41,3)",128,0,169,0 313 .stabs "uint_least16_t:t(41,14)=(41,4)",128,0,174,0 314 .stabs "int_least32_t:t(41,15)=(41,5)",128,0,179,0 315 .stabs "uint_least32_t:t(41,16)=(41,6)",128,0,184,0 316 .stabs "int_least64_t:t(41,17)=(41,7)",128,0,192,0 317 .stabs "uint_least64_t:t(41,18)=(41,8)",128,0,199,0 318 .stabs "int_fast8_t:t(41,19)=(41,1)",128,0,213,0 319 .stabs "uint_fast8_t:t(41,20)=(41,2)",128,0,218,0 320 .stabs "int_fast16_t:t(41,21)=(41,3)",128,0,223,0 321 .stabs "uint_fast16_t:t(41,22)=(41,4)",128,0,228,0 322 .stabs "int_fast32_t:t(41,23)=(41,5)",128,0,233,0 323 .stabs "uint_fast32_t:t(41,24)=(41,6)",128,0,238,0 324 .stabs "int_fast64_t:t(41,25)=(41,7)",128,0,246,0 325 .stabs "uint_fast64_t:t(41,26)=(41,8)",128,0,253,0 326 .stabs "intmax_t:t(41,27)=(41,7)",128,0,273,0 327 .stabs "uintmax_t:t(41,28)=(41,8)",128,0,278,0 328 .stabn 162,0,0,0 329 .stabn 162,0,0,0 330 .stabs "timers.h",130,0,0,0 331 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/io.h",130,0,0,0 332 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/sfr_defs.h",130,0,0,0 333 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/inttypes.h",130,0,0,0 334 .stabs "int_farptr_t:t(45,1)=(41,5)",128,0,77,0 335 .stabs "uint_farptr_t:t(45,2)=(41,6)",128,0,81,0 336 .stabn 162,0,0,0 337 .stabn 162,0,0,0 338 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/fuse.h",130,0,0,0 339 .stabs "__fuse_t:t(46,1)=(46,2)=s3low:(0,11),0,8;high:(0,11),8,8;extended:(0,11),16,8;;",128,0,219 340 .stabn 162,0,0,0 341 .stabn 162,0,0,0 342 .stabn 162,0,0,0 GAS LISTING /tmp/ccEMtt4X.s page 7 343 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/pgmspace.h",130,0,0,0 344 .stabs "/usr/lib/gcc/avr/4.3.2/include/stddef.h",130,0,0,0 345 .stabs "size_t:t(48,1)=(0,4)",128,0,214,0 346 .stabn 162,0,0,0 347 .stabs "prog_void:t(47,1)=(5,2)",128,0,210,0 348 .stabs "prog_char:t(47,2)=(5,4)",128,0,211,0 349 .stabs "prog_uchar:t(47,3)=(5,4)",128,0,212,0 350 .stabs "prog_int8_t:t(47,4)=(5,7)",128,0,214,0 351 .stabs "prog_uint8_t:t(47,5)=(5,4)",128,0,215,0 352 .stabs "prog_int16_t:t(47,6)=(5,10)",128,0,216,0 353 .stabs "prog_uint16_t:t(47,7)=(5,12)",128,0,217,0 354 .stabs "prog_int32_t:t(47,8)=(5,14)",128,0,218,0 355 .stabs "prog_uint32_t:t(47,9)=(5,16)",128,0,219,0 356 .stabs "prog_int64_t:t(47,10)=(5,18)",128,0,221,0 357 .stabs "prog_uint64_t:t(47,11)=(5,20)",128,0,222,0 358 .stabn 162,0,0,0 359 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/stdio.h",130,0,0,0 360 .stabs "/usr/lib/gcc/avr/4.3.2/include/stdarg.h",130,0,0,0 361 .stabs "__gnuc_va_list:t(50,1)=(10,2)",128,0,43,0 362 .stabs "va_list:t(50,2)=(50,1)",128,0,105,0 363 .stabn 162,0,0,0 364 .stabs "__file:T(49,1)=s14buf:(9,2),0,16;unget:(0,11),16,8;flags:(41,2),24,8;size:(0,1),32,16;len: 365 .stabn 162,0,0,0 366 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/stdlib.h",130,0,0,0 367 .stabs "/usr/lib/gcc/avr/4.3.2/include/stddef.h",130,0,0,0 368 .stabs "wchar_t:t(52,1)=(0,1)",128,0,326,0 369 .stabn 162,0,0,0 370 .stabs "div_t:t(51,1)=(51,2)=s4quot:(0,1),0,16;rem:(0,1),16,16;;",128,0,71,0 371 .stabs "ldiv_t:t(51,3)=(51,4)=s8quot:(0,3),0,32;rem:(0,3),32,32;;",128,0,77,0 372 .stabs "__compar_fn_t:t(51,5)=(7,6)",128,0,80,0 373 .stabn 162,0,0,0 374 .stabs "../lib/devicelock.h",130,0,0,0 375 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/stdint.h",130,0,0,0 376 .stabs "int8_t:t(54,1)=(0,10)",128,0,121,0 377 .stabs "uint8_t:t(54,2)=(0,11)",128,0,122,0 378 .stabs "int16_t:t(54,3)=(0,1)",128,0,123,0 379 .stabs "uint16_t:t(54,4)=(0,4)",128,0,124,0 380 .stabs "int32_t:t(54,5)=(0,3)",128,0,125,0 381 .stabs "uint32_t:t(54,6)=(0,5)",128,0,126,0 382 .stabs "int64_t:t(54,7)=(0,6)",128,0,128,0 383 .stabs "uint64_t:t(54,8)=(0,7)",128,0,129,0 384 .stabs "intptr_t:t(54,9)=(54,3)",128,0,142,0 385 .stabs "uintptr_t:t(54,10)=(54,4)",128,0,147,0 386 .stabs "int_least8_t:t(54,11)=(54,1)",128,0,159,0 387 .stabs "uint_least8_t:t(54,12)=(54,2)",128,0,164,0 388 .stabs "int_least16_t:t(54,13)=(54,3)",128,0,169,0 389 .stabs "uint_least16_t:t(54,14)=(54,4)",128,0,174,0 390 .stabs "int_least32_t:t(54,15)=(54,5)",128,0,179,0 391 .stabs "uint_least32_t:t(54,16)=(54,6)",128,0,184,0 392 .stabs "int_least64_t:t(54,17)=(54,7)",128,0,192,0 393 .stabs "uint_least64_t:t(54,18)=(54,8)",128,0,199,0 394 .stabs "int_fast8_t:t(54,19)=(54,1)",128,0,213,0 395 .stabs "uint_fast8_t:t(54,20)=(54,2)",128,0,218,0 396 .stabs "int_fast16_t:t(54,21)=(54,3)",128,0,223,0 397 .stabs "uint_fast16_t:t(54,22)=(54,4)",128,0,228,0 398 .stabs "int_fast32_t:t(54,23)=(54,5)",128,0,233,0 399 .stabs "uint_fast32_t:t(54,24)=(54,6)",128,0,238,0 GAS LISTING /tmp/ccEMtt4X.s page 8 400 .stabs "int_fast64_t:t(54,25)=(54,7)",128,0,246,0 401 .stabs "uint_fast64_t:t(54,26)=(54,8)",128,0,253,0 402 .stabs "intmax_t:t(54,27)=(54,7)",128,0,273,0 403 .stabs "uintmax_t:t(54,28)=(54,8)",128,0,278,0 404 .stabn 162,0,0,0 405 .stabn 162,0,0,0 406 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/inttypes.h",130,0,0,0 407 .stabs "int_farptr_t:t(55,1)=(54,5)",128,0,77,0 408 .stabs "uint_farptr_t:t(55,2)=(54,6)",128,0,81,0 409 .stabn 162,0,0,0 410 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/io.h",130,0,0,0 411 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/fuse.h",130,0,0,0 412 .stabs "__fuse_t:t(57,1)=(57,2)=s3low:(0,11),0,8;high:(0,11),8,8;extended:(0,11),16,8;;",128,0,219 413 .stabn 162,0,0,0 414 .stabn 162,0,0,0 415 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/pgmspace.h",130,0,0,0 416 .stabs "/usr/lib/gcc/avr/4.3.2/include/stddef.h",130,0,0,0 417 .stabs "size_t:t(59,1)=(0,4)",128,0,214,0 418 .stabn 162,0,0,0 419 .stabs "prog_void:t(58,1)=(5,2)",128,0,210,0 420 .stabs "prog_char:t(58,2)=(5,4)",128,0,211,0 421 .stabs "prog_uchar:t(58,3)=(5,4)",128,0,212,0 422 .stabs "prog_int8_t:t(58,4)=(5,7)",128,0,214,0 423 .stabs "prog_uint8_t:t(58,5)=(5,4)",128,0,215,0 424 .stabs "prog_int16_t:t(58,6)=(5,10)",128,0,216,0 425 .stabs "prog_uint16_t:t(58,7)=(5,12)",128,0,217,0 426 .stabs "prog_int32_t:t(58,8)=(5,14)",128,0,218,0 427 .stabs "prog_uint32_t:t(58,9)=(5,16)",128,0,219,0 428 .stabs "prog_int64_t:t(58,10)=(5,18)",128,0,221,0 429 .stabs "prog_uint64_t:t(58,11)=(5,20)",128,0,222,0 430 .stabn 162,0,0,0 431 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/stdlib.h",130,0,0,0 432 .stabs "/usr/lib/gcc/avr/4.3.2/include/stddef.h",130,0,0,0 433 .stabs "wchar_t:t(61,1)=(0,1)",128,0,326,0 434 .stabn 162,0,0,0 435 .stabs "div_t:t(60,1)=(60,2)=s4quot:(0,1),0,16;rem:(0,1),16,16;;",128,0,71,0 436 .stabs "ldiv_t:t(60,3)=(60,4)=s8quot:(0,3),0,32;rem:(0,3),32,32;;",128,0,77,0 437 .stabs "__compar_fn_t:t(60,5)=(7,6)",128,0,80,0 438 .stabn 162,0,0,0 439 .stabs "/usr/lib/gcc/avr/4.3.2/include/stdarg.h",130,0,0,0 440 .stabs "__gnuc_va_list:t(62,1)=(10,2)",128,0,43,0 441 .stabs "va_list:t(62,2)=(62,1)",128,0,105,0 442 .stabn 162,0,0,0 443 .stabs "../lib/byte_to_hex.h",130,0,0,0 444 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/stdint.h",130,0,0,0 445 .stabs "int8_t:t(64,1)=(0,10)",128,0,121,0 446 .stabs "uint8_t:t(64,2)=(0,11)",128,0,122,0 447 .stabs "int16_t:t(64,3)=(0,1)",128,0,123,0 448 .stabs "uint16_t:t(64,4)=(0,4)",128,0,124,0 449 .stabs "int32_t:t(64,5)=(0,3)",128,0,125,0 450 .stabs "uint32_t:t(64,6)=(0,5)",128,0,126,0 451 .stabs "int64_t:t(64,7)=(0,6)",128,0,128,0 452 .stabs "uint64_t:t(64,8)=(0,7)",128,0,129,0 453 .stabs "intptr_t:t(64,9)=(64,3)",128,0,142,0 454 .stabs "uintptr_t:t(64,10)=(64,4)",128,0,147,0 455 .stabs "int_least8_t:t(64,11)=(64,1)",128,0,159,0 456 .stabs "uint_least8_t:t(64,12)=(64,2)",128,0,164,0 GAS LISTING /tmp/ccEMtt4X.s page 9 457 .stabs "int_least16_t:t(64,13)=(64,3)",128,0,169,0 458 .stabs "uint_least16_t:t(64,14)=(64,4)",128,0,174,0 459 .stabs "int_least32_t:t(64,15)=(64,5)",128,0,179,0 460 .stabs "uint_least32_t:t(64,16)=(64,6)",128,0,184,0 461 .stabs "int_least64_t:t(64,17)=(64,7)",128,0,192,0 462 .stabs "uint_least64_t:t(64,18)=(64,8)",128,0,199,0 463 .stabs "int_fast8_t:t(64,19)=(64,1)",128,0,213,0 464 .stabs "uint_fast8_t:t(64,20)=(64,2)",128,0,218,0 465 .stabs "int_fast16_t:t(64,21)=(64,3)",128,0,223,0 466 .stabs "uint_fast16_t:t(64,22)=(64,4)",128,0,228,0 467 .stabs "int_fast32_t:t(64,23)=(64,5)",128,0,233,0 468 .stabs "uint_fast32_t:t(64,24)=(64,6)",128,0,238,0 469 .stabs "int_fast64_t:t(64,25)=(64,7)",128,0,246,0 470 .stabs "uint_fast64_t:t(64,26)=(64,8)",128,0,253,0 471 .stabs "intmax_t:t(64,27)=(64,7)",128,0,273,0 472 .stabs "uintmax_t:t(64,28)=(64,8)",128,0,278,0 473 .stabn 162,0,0,0 474 .stabn 162,0,0,0 475 .stabs "../lib/serial.h",130,0,0,0 476 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/pgmspace.h",130,0,0,0 477 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/inttypes.h",130,0,0,0 478 .stabs "int_farptr_t:t(67,1)=(64,5)",128,0,77,0 479 .stabs "uint_farptr_t:t(67,2)=(64,6)",128,0,81,0 480 .stabn 162,0,0,0 481 .stabs "/usr/lib/gcc/avr/4.3.2/include/stddef.h",130,0,0,0 482 .stabs "size_t:t(68,1)=(0,4)",128,0,214,0 483 .stabn 162,0,0,0 484 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/io.h",130,0,0,0 485 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/fuse.h",130,0,0,0 486 .stabs "__fuse_t:t(70,1)=(70,2)=s3low:(0,11),0,8;high:(0,11),8,8;extended:(0,11),16,8;;",128,0,219 487 .stabn 162,0,0,0 488 .stabn 162,0,0,0 489 .stabs "prog_void:t(66,1)=(5,2)",128,0,210,0 490 .stabs "prog_char:t(66,2)=(5,4)",128,0,211,0 491 .stabs "prog_uchar:t(66,3)=(5,4)",128,0,212,0 492 .stabs "prog_int8_t:t(66,4)=(5,7)",128,0,214,0 493 .stabs "prog_uint8_t:t(66,5)=(5,4)",128,0,215,0 494 .stabs "prog_int16_t:t(66,6)=(5,10)",128,0,216,0 495 .stabs "prog_uint16_t:t(66,7)=(5,12)",128,0,217,0 496 .stabs "prog_int32_t:t(66,8)=(5,14)",128,0,218,0 497 .stabs "prog_uint32_t:t(66,9)=(5,16)",128,0,219,0 498 .stabs "prog_int64_t:t(66,10)=(5,18)",128,0,221,0 499 .stabs "prog_uint64_t:t(66,11)=(5,20)",128,0,222,0 500 .stabn 162,0,0,0 501 .stabn 162,0,0,0 502 .stabs "../lib/eeprom.h",130,0,0,0 503 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/stdint.h",130,0,0,0 504 .stabs "int8_t:t(72,1)=(0,10)",128,0,121,0 505 .stabs "uint8_t:t(72,2)=(0,11)",128,0,122,0 506 .stabs "int16_t:t(72,3)=(0,1)",128,0,123,0 507 .stabs "uint16_t:t(72,4)=(0,4)",128,0,124,0 508 .stabs "int32_t:t(72,5)=(0,3)",128,0,125,0 509 .stabs "uint32_t:t(72,6)=(0,5)",128,0,126,0 510 .stabs "int64_t:t(72,7)=(0,6)",128,0,128,0 511 .stabs "uint64_t:t(72,8)=(0,7)",128,0,129,0 512 .stabs "intptr_t:t(72,9)=(72,3)",128,0,142,0 513 .stabs "uintptr_t:t(72,10)=(72,4)",128,0,147,0 GAS LISTING /tmp/ccEMtt4X.s page 10 514 .stabs "int_least8_t:t(72,11)=(72,1)",128,0,159,0 515 .stabs "uint_least8_t:t(72,12)=(72,2)",128,0,164,0 516 .stabs "int_least16_t:t(72,13)=(72,3)",128,0,169,0 517 .stabs "uint_least16_t:t(72,14)=(72,4)",128,0,174,0 518 .stabs "int_least32_t:t(72,15)=(72,5)",128,0,179,0 519 .stabs "uint_least32_t:t(72,16)=(72,6)",128,0,184,0 520 .stabs "int_least64_t:t(72,17)=(72,7)",128,0,192,0 521 .stabs "uint_least64_t:t(72,18)=(72,8)",128,0,199,0 522 .stabs "int_fast8_t:t(72,19)=(72,1)",128,0,213,0 523 .stabs "uint_fast8_t:t(72,20)=(72,2)",128,0,218,0 524 .stabs "int_fast16_t:t(72,21)=(72,3)",128,0,223,0 525 .stabs "uint_fast16_t:t(72,22)=(72,4)",128,0,228,0 526 .stabs "int_fast32_t:t(72,23)=(72,5)",128,0,233,0 527 .stabs "uint_fast32_t:t(72,24)=(72,6)",128,0,238,0 528 .stabs "int_fast64_t:t(72,25)=(72,7)",128,0,246,0 529 .stabs "uint_fast64_t:t(72,26)=(72,8)",128,0,253,0 530 .stabs "intmax_t:t(72,27)=(72,7)",128,0,273,0 531 .stabs "uintmax_t:t(72,28)=(72,8)",128,0,278,0 532 .stabn 162,0,0,0 533 .stabn 162,0,0,0 534 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/io.h",130,0,0,0 535 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/sfr_defs.h",130,0,0,0 536 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/inttypes.h",130,0,0,0 537 .stabs "int_farptr_t:t(75,1)=(72,5)",128,0,77,0 538 .stabs "uint_farptr_t:t(75,2)=(72,6)",128,0,81,0 539 .stabn 162,0,0,0 540 .stabn 162,0,0,0 541 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/fuse.h",130,0,0,0 542 .stabs "__fuse_t:t(76,1)=(76,2)=s3low:(0,11),0,8;high:(0,11),8,8;extended:(0,11),16,8;;",128,0,219 543 .stabn 162,0,0,0 544 .stabn 162,0,0,0 545 .stabs "../lib/nmea.h",130,0,0,0 546 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/stdint.h",130,0,0,0 547 .stabs "int8_t:t(78,1)=(0,10)",128,0,121,0 548 .stabs "uint8_t:t(78,2)=(0,11)",128,0,122,0 549 .stabs "int16_t:t(78,3)=(0,1)",128,0,123,0 550 .stabs "uint16_t:t(78,4)=(0,4)",128,0,124,0 551 .stabs "int32_t:t(78,5)=(0,3)",128,0,125,0 552 .stabs "uint32_t:t(78,6)=(0,5)",128,0,126,0 553 .stabs "int64_t:t(78,7)=(0,6)",128,0,128,0 554 .stabs "uint64_t:t(78,8)=(0,7)",128,0,129,0 555 .stabs "intptr_t:t(78,9)=(78,3)",128,0,142,0 556 .stabs "uintptr_t:t(78,10)=(78,4)",128,0,147,0 557 .stabs "int_least8_t:t(78,11)=(78,1)",128,0,159,0 558 .stabs "uint_least8_t:t(78,12)=(78,2)",128,0,164,0 559 .stabs "int_least16_t:t(78,13)=(78,3)",128,0,169,0 560 .stabs "uint_least16_t:t(78,14)=(78,4)",128,0,174,0 561 .stabs "int_least32_t:t(78,15)=(78,5)",128,0,179,0 562 .stabs "uint_least32_t:t(78,16)=(78,6)",128,0,184,0 563 .stabs "int_least64_t:t(78,17)=(78,7)",128,0,192,0 564 .stabs "uint_least64_t:t(78,18)=(78,8)",128,0,199,0 565 .stabs "int_fast8_t:t(78,19)=(78,1)",128,0,213,0 566 .stabs "uint_fast8_t:t(78,20)=(78,2)",128,0,218,0 567 .stabs "int_fast16_t:t(78,21)=(78,3)",128,0,223,0 568 .stabs "uint_fast16_t:t(78,22)=(78,4)",128,0,228,0 569 .stabs "int_fast32_t:t(78,23)=(78,5)",128,0,233,0 570 .stabs "uint_fast32_t:t(78,24)=(78,6)",128,0,238,0 GAS LISTING /tmp/ccEMtt4X.s page 11 571 .stabs "int_fast64_t:t(78,25)=(78,7)",128,0,246,0 572 .stabs "uint_fast64_t:t(78,26)=(78,8)",128,0,253,0 573 .stabs "intmax_t:t(78,27)=(78,7)",128,0,273,0 574 .stabs "uintmax_t:t(78,28)=(78,8)",128,0,278,0 575 .stabn 162,0,0,0 576 .stabn 162,0,0,0 577 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/string.h",130,0,0,0 578 .stabs "/usr/lib/gcc/avr/4.3.2/include/stddef.h",130,0,0,0 579 .stabs "size_t:t(80,1)=(0,4)",128,0,214,0 580 .stabn 162,0,0,0 581 .stabn 162,0,0,0 582 .stabs "../lib/serial.h",130,0,0,0 583 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/pgmspace.h",130,0,0,0 584 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/inttypes.h",130,0,0,0 585 .stabs "int_farptr_t:t(83,1)=(78,5)",128,0,77,0 586 .stabs "uint_farptr_t:t(83,2)=(78,6)",128,0,81,0 587 .stabn 162,0,0,0 588 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/io.h",130,0,0,0 589 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/fuse.h",130,0,0,0 590 .stabs "__fuse_t:t(85,1)=(85,2)=s3low:(0,11),0,8;high:(0,11),8,8;extended:(0,11),16,8;;",128,0,219 591 .stabn 162,0,0,0 592 .stabn 162,0,0,0 593 .stabs "prog_void:t(82,1)=(5,2)",128,0,210,0 594 .stabs "prog_char:t(82,2)=(5,4)",128,0,211,0 595 .stabs "prog_uchar:t(82,3)=(5,4)",128,0,212,0 596 .stabs "prog_int8_t:t(82,4)=(5,7)",128,0,214,0 597 .stabs "prog_uint8_t:t(82,5)=(5,4)",128,0,215,0 598 .stabs "prog_int16_t:t(82,6)=(5,10)",128,0,216,0 599 .stabs "prog_uint16_t:t(82,7)=(5,12)",128,0,217,0 600 .stabs "prog_int32_t:t(82,8)=(5,14)",128,0,218,0 601 .stabs "prog_uint32_t:t(82,9)=(5,16)",128,0,219,0 602 .stabs "prog_int64_t:t(82,10)=(5,18)",128,0,221,0 603 .stabs "prog_uint64_t:t(82,11)=(5,20)",128,0,222,0 604 .stabn 162,0,0,0 605 .stabn 162,0,0,0 606 .stabs "../lib/nmea_verify.h",130,0,0,0 607 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/stdint.h",130,0,0,0 608 .stabs "int8_t:t(87,1)=(0,10)",128,0,121,0 609 .stabs "uint8_t:t(87,2)=(0,11)",128,0,122,0 610 .stabs "int16_t:t(87,3)=(0,1)",128,0,123,0 611 .stabs "uint16_t:t(87,4)=(0,4)",128,0,124,0 612 .stabs "int32_t:t(87,5)=(0,3)",128,0,125,0 613 .stabs "uint32_t:t(87,6)=(0,5)",128,0,126,0 614 .stabs "int64_t:t(87,7)=(0,6)",128,0,128,0 615 .stabs "uint64_t:t(87,8)=(0,7)",128,0,129,0 616 .stabs "intptr_t:t(87,9)=(87,3)",128,0,142,0 617 .stabs "uintptr_t:t(87,10)=(87,4)",128,0,147,0 618 .stabs "int_least8_t:t(87,11)=(87,1)",128,0,159,0 619 .stabs "uint_least8_t:t(87,12)=(87,2)",128,0,164,0 620 .stabs "int_least16_t:t(87,13)=(87,3)",128,0,169,0 621 .stabs "uint_least16_t:t(87,14)=(87,4)",128,0,174,0 622 .stabs "int_least32_t:t(87,15)=(87,5)",128,0,179,0 623 .stabs "uint_least32_t:t(87,16)=(87,6)",128,0,184,0 624 .stabs "int_least64_t:t(87,17)=(87,7)",128,0,192,0 625 .stabs "uint_least64_t:t(87,18)=(87,8)",128,0,199,0 626 .stabs "int_fast8_t:t(87,19)=(87,1)",128,0,213,0 627 .stabs "uint_fast8_t:t(87,20)=(87,2)",128,0,218,0 GAS LISTING /tmp/ccEMtt4X.s page 12 628 .stabs "int_fast16_t:t(87,21)=(87,3)",128,0,223,0 629 .stabs "uint_fast16_t:t(87,22)=(87,4)",128,0,228,0 630 .stabs "int_fast32_t:t(87,23)=(87,5)",128,0,233,0 631 .stabs "uint_fast32_t:t(87,24)=(87,6)",128,0,238,0 632 .stabs "int_fast64_t:t(87,25)=(87,7)",128,0,246,0 633 .stabs "uint_fast64_t:t(87,26)=(87,8)",128,0,253,0 634 .stabs "intmax_t:t(87,27)=(87,7)",128,0,273,0 635 .stabs "uintmax_t:t(87,28)=(87,8)",128,0,278,0 636 .stabn 162,0,0,0 637 .stabn 162,0,0,0 638 .stabs "/usr/lib/gcc/avr/4.3.2/include/stdarg.h",130,0,0,0 639 .stabs "__gnuc_va_list:t(88,1)=(10,2)",128,0,43,0 640 .stabs "va_list:t(88,2)=(88,1)",128,0,105,0 641 .stabn 162,0,0,0 642 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/string.h",130,0,0,0 643 .stabs "/usr/lib/gcc/avr/4.3.2/include/stddef.h",130,0,0,0 644 .stabs "size_t:t(90,1)=(0,4)",128,0,214,0 645 .stabn 162,0,0,0 646 .stabn 162,0,0,0 647 .stabs "../lib/serial.h",130,0,0,0 648 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/pgmspace.h",130,0,0,0 649 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/inttypes.h",130,0,0,0 650 .stabs "int_farptr_t:t(93,1)=(87,5)",128,0,77,0 651 .stabs "uint_farptr_t:t(93,2)=(87,6)",128,0,81,0 652 .stabn 162,0,0,0 653 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/io.h",130,0,0,0 654 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/fuse.h",130,0,0,0 655 .stabs "__fuse_t:t(95,1)=(95,2)=s3low:(0,11),0,8;high:(0,11),8,8;extended:(0,11),16,8;;",128,0,219 656 .stabn 162,0,0,0 657 .stabn 162,0,0,0 658 .stabs "prog_void:t(92,1)=(5,2)",128,0,210,0 659 .stabs "prog_char:t(92,2)=(5,4)",128,0,211,0 660 .stabs "prog_uchar:t(92,3)=(5,4)",128,0,212,0 661 .stabs "prog_int8_t:t(92,4)=(5,7)",128,0,214,0 662 .stabs "prog_uint8_t:t(92,5)=(5,4)",128,0,215,0 663 .stabs "prog_int16_t:t(92,6)=(5,10)",128,0,216,0 664 .stabs "prog_uint16_t:t(92,7)=(5,12)",128,0,217,0 665 .stabs "prog_int32_t:t(92,8)=(5,14)",128,0,218,0 666 .stabs "prog_uint32_t:t(92,9)=(5,16)",128,0,219,0 667 .stabs "prog_int64_t:t(92,10)=(5,18)",128,0,221,0 668 .stabs "prog_uint64_t:t(92,11)=(5,20)",128,0,222,0 669 .stabn 162,0,0,0 670 .stabn 162,0,0,0 671 .stabs "../lib/serial.h",130,0,0,0 672 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/stdint.h",130,0,0,0 673 .stabs "int8_t:t(97,1)=(0,10)",128,0,121,0 674 .stabs "uint8_t:t(97,2)=(0,11)",128,0,122,0 675 .stabs "int16_t:t(97,3)=(0,1)",128,0,123,0 676 .stabs "uint16_t:t(97,4)=(0,4)",128,0,124,0 677 .stabs "int32_t:t(97,5)=(0,3)",128,0,125,0 678 .stabs "uint32_t:t(97,6)=(0,5)",128,0,126,0 679 .stabs "int64_t:t(97,7)=(0,6)",128,0,128,0 680 .stabs "uint64_t:t(97,8)=(0,7)",128,0,129,0 681 .stabs "intptr_t:t(97,9)=(97,3)",128,0,142,0 682 .stabs "uintptr_t:t(97,10)=(97,4)",128,0,147,0 683 .stabs "int_least8_t:t(97,11)=(97,1)",128,0,159,0 684 .stabs "uint_least8_t:t(97,12)=(97,2)",128,0,164,0 GAS LISTING /tmp/ccEMtt4X.s page 13 685 .stabs "int_least16_t:t(97,13)=(97,3)",128,0,169,0 686 .stabs "uint_least16_t:t(97,14)=(97,4)",128,0,174,0 687 .stabs "int_least32_t:t(97,15)=(97,5)",128,0,179,0 688 .stabs "uint_least32_t:t(97,16)=(97,6)",128,0,184,0 689 .stabs "int_least64_t:t(97,17)=(97,7)",128,0,192,0 690 .stabs "uint_least64_t:t(97,18)=(97,8)",128,0,199,0 691 .stabs "int_fast8_t:t(97,19)=(97,1)",128,0,213,0 692 .stabs "uint_fast8_t:t(97,20)=(97,2)",128,0,218,0 693 .stabs "int_fast16_t:t(97,21)=(97,3)",128,0,223,0 694 .stabs "uint_fast16_t:t(97,22)=(97,4)",128,0,228,0 695 .stabs "int_fast32_t:t(97,23)=(97,5)",128,0,233,0 696 .stabs "uint_fast32_t:t(97,24)=(97,6)",128,0,238,0 697 .stabs "int_fast64_t:t(97,25)=(97,7)",128,0,246,0 698 .stabs "uint_fast64_t:t(97,26)=(97,8)",128,0,253,0 699 .stabs "intmax_t:t(97,27)=(97,7)",128,0,273,0 700 .stabs "uintmax_t:t(97,28)=(97,8)",128,0,278,0 701 .stabn 162,0,0,0 702 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/pgmspace.h",130,0,0,0 703 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/inttypes.h",130,0,0,0 704 .stabs "int_farptr_t:t(99,1)=(97,5)",128,0,77,0 705 .stabs "uint_farptr_t:t(99,2)=(97,6)",128,0,81,0 706 .stabn 162,0,0,0 707 .stabs "/usr/lib/gcc/avr/4.3.2/include/stddef.h",130,0,0,0 708 .stabs "size_t:t(100,1)=(0,4)",128,0,214,0 709 .stabn 162,0,0,0 710 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/io.h",130,0,0,0 711 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/fuse.h",130,0,0,0 712 .stabs "__fuse_t:t(102,1)=(102,2)=s3low:(0,11),0,8;high:(0,11),8,8;extended:(0,11),16,8;;",128,0,2 713 .stabn 162,0,0,0 714 .stabn 162,0,0,0 715 .stabs "prog_void:t(98,1)=(5,2)",128,0,210,0 716 .stabs "prog_char:t(98,2)=(5,4)",128,0,211,0 717 .stabs "prog_uchar:t(98,3)=(5,4)",128,0,212,0 718 .stabs "prog_int8_t:t(98,4)=(5,7)",128,0,214,0 719 .stabs "prog_uint8_t:t(98,5)=(5,4)",128,0,215,0 720 .stabs "prog_int16_t:t(98,6)=(5,10)",128,0,216,0 721 .stabs "prog_uint16_t:t(98,7)=(5,12)",128,0,217,0 722 .stabs "prog_int32_t:t(98,8)=(5,14)",128,0,218,0 723 .stabs "prog_uint32_t:t(98,9)=(5,16)",128,0,219,0 724 .stabs "prog_int64_t:t(98,10)=(5,18)",128,0,221,0 725 .stabs "prog_uint64_t:t(98,11)=(5,20)",128,0,222,0 726 .stabn 162,0,0,0 727 .stabn 162,0,0,0 728 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/stdlib.h",130,0,0,0 729 .stabs "/usr/lib/gcc/avr/4.3.2/include/stddef.h",130,0,0,0 730 .stabs "wchar_t:t(104,1)=(0,1)",128,0,326,0 731 .stabn 162,0,0,0 732 .stabs "div_t:t(103,1)=(103,2)=s4quot:(0,1),0,16;rem:(0,1),16,16;;",128,0,71,0 733 .stabs "ldiv_t:t(103,3)=(103,4)=s8quot:(0,3),0,32;rem:(0,3),32,32;;",128,0,77,0 734 .stabs "__compar_fn_t:t(103,5)=(7,6)",128,0,80,0 735 .stabn 162,0,0,0 736 .stabs "/usr/lib/gcc/avr/4.3.2/include/stdarg.h",130,0,0,0 737 .stabs "__gnuc_va_list:t(105,1)=(10,2)",128,0,43,0 738 .stabs "va_list:t(105,2)=(105,1)",128,0,105,0 739 .stabn 162,0,0,0 740 .stabs "../lib/sleep.h",130,0,0,0 741 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/stdint.h",130,0,0,0 GAS LISTING /tmp/ccEMtt4X.s page 14 742 .stabs "int8_t:t(107,1)=(0,10)",128,0,121,0 743 .stabs "uint8_t:t(107,2)=(0,11)",128,0,122,0 744 .stabs "int16_t:t(107,3)=(0,1)",128,0,123,0 745 .stabs "uint16_t:t(107,4)=(0,4)",128,0,124,0 746 .stabs "int32_t:t(107,5)=(0,3)",128,0,125,0 747 .stabs "uint32_t:t(107,6)=(0,5)",128,0,126,0 748 .stabs "int64_t:t(107,7)=(0,6)",128,0,128,0 749 .stabs "uint64_t:t(107,8)=(0,7)",128,0,129,0 750 .stabs "intptr_t:t(107,9)=(107,3)",128,0,142,0 751 .stabs "uintptr_t:t(107,10)=(107,4)",128,0,147,0 752 .stabs "int_least8_t:t(107,11)=(107,1)",128,0,159,0 753 .stabs "uint_least8_t:t(107,12)=(107,2)",128,0,164,0 754 .stabs "int_least16_t:t(107,13)=(107,3)",128,0,169,0 755 .stabs "uint_least16_t:t(107,14)=(107,4)",128,0,174,0 756 .stabs "int_least32_t:t(107,15)=(107,5)",128,0,179,0 757 .stabs "uint_least32_t:t(107,16)=(107,6)",128,0,184,0 758 .stabs "int_least64_t:t(107,17)=(107,7)",128,0,192,0 759 .stabs "uint_least64_t:t(107,18)=(107,8)",128,0,199,0 760 .stabs "int_fast8_t:t(107,19)=(107,1)",128,0,213,0 761 .stabs "uint_fast8_t:t(107,20)=(107,2)",128,0,218,0 762 .stabs "int_fast16_t:t(107,21)=(107,3)",128,0,223,0 763 .stabs "uint_fast16_t:t(107,22)=(107,4)",128,0,228,0 764 .stabs "int_fast32_t:t(107,23)=(107,5)",128,0,233,0 765 .stabs "uint_fast32_t:t(107,24)=(107,6)",128,0,238,0 766 .stabs "int_fast64_t:t(107,25)=(107,7)",128,0,246,0 767 .stabs "uint_fast64_t:t(107,26)=(107,8)",128,0,253,0 768 .stabs "intmax_t:t(107,27)=(107,7)",128,0,273,0 769 .stabs "uintmax_t:t(107,28)=(107,8)",128,0,278,0 770 .stabn 162,0,0,0 771 .stabn 162,0,0,0 772 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/inttypes.h",130,0,0,0 773 .stabs "int_farptr_t:t(108,1)=(107,5)",128,0,77,0 774 .stabs "uint_farptr_t:t(108,2)=(107,6)",128,0,81,0 775 .stabn 162,0,0,0 776 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/io.h",130,0,0,0 777 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/fuse.h",130,0,0,0 778 .stabs "__fuse_t:t(110,1)=(110,2)=s3low:(0,11),0,8;high:(0,11),8,8;extended:(0,11),16,8;;",128,0,2 779 .stabn 162,0,0,0 780 .stabn 162,0,0,0 781 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/pgmspace.h",130,0,0,0 782 .stabs "/usr/lib/gcc/avr/4.3.2/include/stddef.h",130,0,0,0 783 .stabs "size_t:t(112,1)=(0,4)",128,0,214,0 784 .stabn 162,0,0,0 785 .stabs "prog_void:t(111,1)=(5,2)",128,0,210,0 786 .stabs "prog_char:t(111,2)=(5,4)",128,0,211,0 787 .stabs "prog_uchar:t(111,3)=(5,4)",128,0,212,0 788 .stabs "prog_int8_t:t(111,4)=(5,7)",128,0,214,0 789 .stabs "prog_uint8_t:t(111,5)=(5,4)",128,0,215,0 790 .stabs "prog_int16_t:t(111,6)=(5,10)",128,0,216,0 791 .stabs "prog_uint16_t:t(111,7)=(5,12)",128,0,217,0 792 .stabs "prog_int32_t:t(111,8)=(5,14)",128,0,218,0 793 .stabs "prog_uint32_t:t(111,9)=(5,16)",128,0,219,0 794 .stabs "prog_int64_t:t(111,10)=(5,18)",128,0,221,0 795 .stabs "prog_uint64_t:t(111,11)=(5,20)",128,0,222,0 796 .stabn 162,0,0,0 797 .stabs "../lib/i2c.h",130,0,0,0 798 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/stdint.h",130,0,0,0 GAS LISTING /tmp/ccEMtt4X.s page 15 799 .stabs "int8_t:t(114,1)=(0,10)",128,0,121,0 800 .stabs "uint8_t:t(114,2)=(0,11)",128,0,122,0 801 .stabs "int16_t:t(114,3)=(0,1)",128,0,123,0 802 .stabs "uint16_t:t(114,4)=(0,4)",128,0,124,0 803 .stabs "int32_t:t(114,5)=(0,3)",128,0,125,0 804 .stabs "uint32_t:t(114,6)=(0,5)",128,0,126,0 805 .stabs "int64_t:t(114,7)=(0,6)",128,0,128,0 806 .stabs "uint64_t:t(114,8)=(0,7)",128,0,129,0 807 .stabs "intptr_t:t(114,9)=(114,3)",128,0,142,0 808 .stabs "uintptr_t:t(114,10)=(114,4)",128,0,147,0 809 .stabs "int_least8_t:t(114,11)=(114,1)",128,0,159,0 810 .stabs "uint_least8_t:t(114,12)=(114,2)",128,0,164,0 811 .stabs "int_least16_t:t(114,13)=(114,3)",128,0,169,0 812 .stabs "uint_least16_t:t(114,14)=(114,4)",128,0,174,0 813 .stabs "int_least32_t:t(114,15)=(114,5)",128,0,179,0 814 .stabs "uint_least32_t:t(114,16)=(114,6)",128,0,184,0 815 .stabs "int_least64_t:t(114,17)=(114,7)",128,0,192,0 816 .stabs "uint_least64_t:t(114,18)=(114,8)",128,0,199,0 817 .stabs "int_fast8_t:t(114,19)=(114,1)",128,0,213,0 818 .stabs "uint_fast8_t:t(114,20)=(114,2)",128,0,218,0 819 .stabs "int_fast16_t:t(114,21)=(114,3)",128,0,223,0 820 .stabs "uint_fast16_t:t(114,22)=(114,4)",128,0,228,0 821 .stabs "int_fast32_t:t(114,23)=(114,5)",128,0,233,0 822 .stabs "uint_fast32_t:t(114,24)=(114,6)",128,0,238,0 823 .stabs "int_fast64_t:t(114,25)=(114,7)",128,0,246,0 824 .stabs "uint_fast64_t:t(114,26)=(114,8)",128,0,253,0 825 .stabs "intmax_t:t(114,27)=(114,7)",128,0,273,0 826 .stabs "uintmax_t:t(114,28)=(114,8)",128,0,278,0 827 .stabn 162,0,0,0 828 .stabn 162,0,0,0 829 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/inttypes.h",130,0,0,0 830 .stabs "int_farptr_t:t(115,1)=(114,5)",128,0,77,0 831 .stabs "uint_farptr_t:t(115,2)=(114,6)",128,0,81,0 832 .stabn 162,0,0,0 833 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/io.h",130,0,0,0 834 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/fuse.h",130,0,0,0 835 .stabs "__fuse_t:t(117,1)=(117,2)=s3low:(0,11),0,8;high:(0,11),8,8;extended:(0,11),16,8;;",128,0,2 836 .stabn 162,0,0,0 837 .stabn 162,0,0,0 838 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/pgmspace.h",130,0,0,0 839 .stabs "/usr/lib/gcc/avr/4.3.2/include/stddef.h",130,0,0,0 840 .stabs "size_t:t(119,1)=(0,4)",128,0,214,0 841 .stabn 162,0,0,0 842 .stabs "prog_void:t(118,1)=(5,2)",128,0,210,0 843 .stabs "prog_char:t(118,2)=(5,4)",128,0,211,0 844 .stabs "prog_uchar:t(118,3)=(5,4)",128,0,212,0 845 .stabs "prog_int8_t:t(118,4)=(5,7)",128,0,214,0 846 .stabs "prog_uint8_t:t(118,5)=(5,4)",128,0,215,0 847 .stabs "prog_int16_t:t(118,6)=(5,10)",128,0,216,0 848 .stabs "prog_uint16_t:t(118,7)=(5,12)",128,0,217,0 849 .stabs "prog_int32_t:t(118,8)=(5,14)",128,0,218,0 850 .stabs "prog_uint32_t:t(118,9)=(5,16)",128,0,219,0 851 .stabs "prog_int64_t:t(118,10)=(5,18)",128,0,221,0 852 .stabs "prog_uint64_t:t(118,11)=(5,20)",128,0,222,0 853 .stabn 162,0,0,0 854 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/stdlib.h",130,0,0,0 855 .stabs "/usr/lib/gcc/avr/4.3.2/include/stddef.h",130,0,0,0 GAS LISTING /tmp/ccEMtt4X.s page 16 856 .stabs "wchar_t:t(121,1)=(0,1)",128,0,326,0 857 .stabn 162,0,0,0 858 .stabs "div_t:t(120,1)=(120,2)=s4quot:(0,1),0,16;rem:(0,1),16,16;;",128,0,71,0 859 .stabs "ldiv_t:t(120,3)=(120,4)=s8quot:(0,3),0,32;rem:(0,3),32,32;;",128,0,77,0 860 .stabs "__compar_fn_t:t(120,5)=(7,6)",128,0,80,0 861 .stabn 162,0,0,0 862 .stabs "/usr/lib/gcc/avr/4.3.2/include/stdarg.h",130,0,0,0 863 .stabs "__gnuc_va_list:t(122,1)=(10,2)",128,0,43,0 864 .stabs "va_list:t(122,2)=(122,1)",128,0,105,0 865 .stabn 162,0,0,0 866 .stabs "byte_to_hex.1903:f(0,15)",36,0,13,byte_to_hex.1903 867 .stabs "byte:P(64,2)",64,0,12,19 868 .stabs "out:P(0,16)=*(64,2)",64,0,12,30 869 .type byte_to_hex.1903, @function 870 byte_to_hex.1903: 871 .stabd 46,0,0 872 .stabs "../lib/byte_to_hex.c",132,0,0,.Ltext1 873 .Ltext1: 1:../lib/byte_to_hex.c **** #include "byte_to_hex.h" 2:../lib/byte_to_hex.c **** 3:../lib/byte_to_hex.c **** #include 4:../lib/byte_to_hex.c **** #include "serial.h" 5:../lib/byte_to_hex.c **** 6:../lib/byte_to_hex.c **** #ifndef B2H_NO_CAPS 7:../lib/byte_to_hex.c **** #define BTH_L_BASE 0x37 8:../lib/byte_to_hex.c **** #else 9:../lib/byte_to_hex.c **** #define BTH_L_BASE 0x57 10:../lib/byte_to_hex.c **** #endif 11:../lib/byte_to_hex.c **** 12:../lib/byte_to_hex.c **** void byte_to_hex(uint8_t byte, uint8_t *out) 13:../lib/byte_to_hex.c **** { 874 .stabn 68,0,13,.LM0-.LFBB1 875 .LM0: 876 .LFBB1: 877 /* prologue: function */ 878 /* frame size = 0 */ 879 0000 382F mov r19,r24 880 0002 FB01 movw r30,r22 14:../lib/byte_to_hex.c **** if((byte & 0x0f) < 0x0a) { 881 .stabn 68,0,14,.LM1-.LFBB1 882 .LM1: 883 0004 90E0 ldi r25,lo8(0) 884 0006 8F70 andi r24,lo8(15) 885 0008 9070 andi r25,hi8(15) 886 000a 232F mov r18,r19 887 000c 2F70 andi r18,lo8(15) 888 000e 0A97 sbiw r24,10 889 0010 04F4 brge .L2 15:../lib/byte_to_hex.c **** out[1] = (byte & 0x0f) + 0x30; 890 .stabn 68,0,15,.LM2-.LFBB1 891 .LM2: 892 0012 205D subi r18,lo8(-(48)) 893 0014 00C0 rjmp .L7 894 .L2: 16:../lib/byte_to_hex.c **** } else { 17:../lib/byte_to_hex.c **** out[1] = (byte & 0x0f) + BTH_L_BASE; 895 .stabn 68,0,17,.LM3-.LFBB1 GAS LISTING /tmp/ccEMtt4X.s page 17 896 .LM3: 897 0016 295C subi r18,lo8(-(55)) 898 .L7: 899 0018 2183 std Z+1,r18 18:../lib/byte_to_hex.c **** } 19:../lib/byte_to_hex.c **** 20:../lib/byte_to_hex.c **** if((byte>>4) < 0x0a) { 900 .stabn 68,0,20,.LM4-.LFBB1 901 .LM4: 902 001a 832F mov r24,r19 903 001c 8295 swap r24 904 001e 8F70 andi r24,lo8(15) 905 0020 8A30 cpi r24,lo8(10) 906 0022 00F4 brsh .L4 21:../lib/byte_to_hex.c **** out[0] = (byte>>4) + 0x30; 907 .stabn 68,0,21,.LM5-.LFBB1 908 .LM5: 909 0024 805D subi r24,lo8(-(48)) 910 0026 00C0 rjmp .L8 911 .L4: 22:../lib/byte_to_hex.c **** } else { 23:../lib/byte_to_hex.c **** out[0] = (byte>>4) + BTH_L_BASE; 912 .stabn 68,0,23,.LM6-.LFBB1 913 .LM6: 914 0028 895C subi r24,lo8(-(55)) 915 .L8: 916 002a 8083 st Z,r24 917 002c 0895 ret 918 .size byte_to_hex.1903, .-byte_to_hex.1903 919 .Lscope1: 920 .stabs "",36,0,0,.Lscope1-.LFBB1 921 .stabd 78,0,0 922 .stabs "serial_waitchar.1882:f(97,2)",36,0,94,serial_waitchar.1882 923 .type serial_waitchar.1882, @function 924 serial_waitchar.1882: 925 .stabd 46,0,0 926 .stabs "../lib/serial_x8.c",132,0,0,.Ltext2 927 .Ltext2: 1:../lib/serial_x8.c **** #include "serial.h" 2:../lib/serial_x8.c **** 3:../lib/serial_x8.c **** #include 4:../lib/serial_x8.c **** #include 5:../lib/serial_x8.c **** #include 6:../lib/serial_x8.c **** #include 7:../lib/serial_x8.c **** #include 8:../lib/serial_x8.c **** #include 9:../lib/serial_x8.c **** #include 10:../lib/serial_x8.c **** #include 11:../lib/serial_x8.c **** 12:../lib/serial_x8.c **** #ifndef UART_RX_FIFO 13:../lib/serial_x8.c **** #define UART_RX_FIFO 32 14:../lib/serial_x8.c **** #endif 15:../lib/serial_x8.c **** #define UART_TX_FIFO 32 16:../lib/serial_x8.c **** 17:../lib/serial_x8.c **** volatile uint8_t serial_tx_fifo[UART_TX_FIFO]; 18:../lib/serial_x8.c **** volatile uint8_t serial_tx_len = 0; 19:../lib/serial_x8.c **** volatile uint8_t serial_rx_fifo[UART_RX_FIFO]; GAS LISTING /tmp/ccEMtt4X.s page 18 20:../lib/serial_x8.c **** volatile uint8_t serial_rx_len = 0; 21:../lib/serial_x8.c **** 22:../lib/serial_x8.c **** volatile uint8_t serial_echo_on = 0; 23:../lib/serial_x8.c **** 24:../lib/serial_x8.c **** ISR(SIG_USART_DATA) 25:../lib/serial_x8.c **** { 26:../lib/serial_x8.c **** uint8_t i; 27:../lib/serial_x8.c **** if(serial_tx_len == 0) { 28:../lib/serial_x8.c **** UCSR0B &= (unsigned char)~(1< 0) { 58:../lib/serial_x8.c **** cli(); 59:../lib/serial_x8.c **** while(serial_tx_len < UART_TX_FIFO && l > 0) { 60:../lib/serial_x8.c **** serial_tx_fifo[serial_tx_len++] = *data++; 61:../lib/serial_x8.c **** l--; 62:../lib/serial_x8.c **** } 63:../lib/serial_x8.c **** UCSR0B |= (1< 4:../lib/devicelock.c **** #include 5:../lib/devicelock.c **** #include 6:../lib/devicelock.c **** #include 7:../lib/devicelock.c **** #include 8:../lib/devicelock.c **** #include 9:../lib/devicelock.c **** #include 10:../lib/devicelock.c **** #include 11:../lib/devicelock.c **** 12:../lib/devicelock.c **** volatile uint8_t device_locks = 0; 13:../lib/devicelock.c **** 14:../lib/devicelock.c **** void get_device_lock(uint8_t which) 15:../lib/devicelock.c **** { 16:../lib/devicelock.c **** uint8_t acquired = 0; 17:../lib/devicelock.c **** do { 18:../lib/devicelock.c **** cli(); 938 .stabn 68,0,18,.LM8-.LFBB2 939 .LM8: 940 /* #APP */ 941 ; 18 "../lib/devicelock.c" 1 942 002e F894 cli 943 ; 0 "" 2 19:../lib/devicelock.c **** if((device_locks & which) == 0) { 944 .stabn 68,0,19,.LM9-.LFBB2 945 .LM9: 946 /* #NOAPP */ 947 0030 8091 0000 lds r24,device_locks.1810 GAS LISTING /tmp/ccEMtt4X.s page 20 948 0034 81FF sbrs r24,1 949 0036 00C0 rjmp .L10 950 0038 80E0 ldi r24,lo8(0) 951 003a 00C0 rjmp .L11 952 .L10: 20:../lib/devicelock.c **** device_locks |= which; 953 .stabn 68,0,20,.LM10-.LFBB2 954 .LM10: 955 003c 8091 0000 lds r24,device_locks.1810 956 0040 8260 ori r24,lo8(2) 957 0042 8093 0000 sts device_locks.1810,r24 958 0046 81E0 ldi r24,lo8(1) 959 .L11: 21:../lib/devicelock.c **** acquired = 1; 22:../lib/devicelock.c **** } 23:../lib/devicelock.c **** sei(); 960 .stabn 68,0,23,.LM11-.LFBB2 961 .LM11: 962 /* #APP */ 963 ; 23 "../lib/devicelock.c" 1 964 0048 7894 sei 965 ; 0 "" 2 24:../lib/devicelock.c **** } while(acquired == 0); 966 .stabn 68,0,24,.LM12-.LFBB2 967 .LM12: 968 /* #NOAPP */ 969 004a 8823 tst r24 970 004c 01F0 breq .L12 971 .L17: 972 .LBE717: 973 .LBE716: 974 .stabs "../lib/serial_x8.c",132,0,0,.Ltext4 975 .Ltext4: 95:../lib/serial_x8.c **** uint8_t tmp; 96:../lib/serial_x8.c **** uint8_t i; 97:../lib/serial_x8.c **** get_device_lock(DEVICE_LOCK_UART_RX); 98:../lib/serial_x8.c **** while(serial_rx_len == 0); 976 .stabn 68,0,98,.LM13-.LFBB2 977 .LM13: 978 004e 8091 0000 lds r24,serial_rx_len.7614 979 0052 8823 tst r24 980 0054 01F0 breq .L17 99:../lib/serial_x8.c **** 100:../lib/serial_x8.c **** cli(); 981 .stabn 68,0,100,.LM14-.LFBB2 982 .LM14: 983 /* #APP */ 984 ; 100 "../lib/serial_x8.c" 1 985 0056 F894 cli 986 ; 0 "" 2 101:../lib/serial_x8.c **** tmp = serial_rx_fifo[0]; 987 .stabn 68,0,101,.LM15-.LFBB2 988 .LM15: 989 /* #NOAPP */ 990 0058 3091 0000 lds r19,serial_rx_fifo.7613 991 005c 20E0 ldi r18,lo8(0) 992 005e 00C0 rjmp .L14 GAS LISTING /tmp/ccEMtt4X.s page 21 993 .L15: 102:../lib/serial_x8.c **** for(i=0;i 5:timers.c **** #include 6:timers.c **** 7:timers.c **** // timer0 is system clocker 8:timers.c **** // timer1 OCA is backlight gate drive 9:timers.c **** // timer1 OCB is contrast voltage drive 10:timers.c **** 11:timers.c **** volatile uint16_t timer_counts; 12:timers.c **** volatile int32_t timer; 13:timers.c **** volatile uint8_t timer_hits; 14:timers.c **** GAS LISTING /tmp/ccEMtt4X.s page 23 15:timers.c **** int32_t time(void) { return timer; } 16:timers.c **** 17:timers.c **** void timer_setup(void) 18:timers.c **** { 19:timers.c **** timer_hits = timer_counts = 0; 20:timers.c **** 21:timers.c **** TCCR0A = (uint8_t)((1< 5:../lib/eeprom_x8.c **** #include 6:../lib/eeprom_x8.c **** 7:../lib/eeprom_x8.c **** #define EEPROM_BUF_LEN 5 8:../lib/eeprom_x8.c **** 9:../lib/eeprom_x8.c **** #define mEEP_TD(type, bits) \ 10:../lib/eeprom_x8.c **** type eeprom_read_ ## type(uint16_t) __attribute__ ((alias("eeprom_read" # bits))); \ 11:../lib/eeprom_x8.c **** void eeprom_write_##type(uint16_t, type) __attribute__((alias("eeprom_write" # bits))) 12:../lib/eeprom_x8.c **** 13:../lib/eeprom_x8.c **** volatile uint8_t eeprom_buf[EEPROM_BUF_LEN*3]; 14:../lib/eeprom_x8.c **** volatile uint8_t eeprom_buf_size; 15:../lib/eeprom_x8.c **** volatile uint8_t eeprom_read_waiting; 16:../lib/eeprom_x8.c **** 17:../lib/eeprom_x8.c **** ISR(SIG_EEPROM_READY) 18:../lib/eeprom_x8.c **** { 19:../lib/eeprom_x8.c **** if(eeprom_read_waiting) { 20:../lib/eeprom_x8.c **** EECR &= ~(1<= EEPROM_BUF_LEN); 44:../lib/eeprom_x8.c **** cli(); 45:../lib/eeprom_x8.c **** eeprom_buf[eeprom_buf_size*3 + 0] = addr >> 8; 46:../lib/eeprom_x8.c **** eeprom_buf[eeprom_buf_size*3 + 1] = addr & 0xff; 47:../lib/eeprom_x8.c **** eeprom_buf[eeprom_buf_size*3 + 2] = data; 48:../lib/eeprom_x8.c **** eeprom_buf_size++; 49:../lib/eeprom_x8.c **** sei(); 50:../lib/eeprom_x8.c **** deep_sleep_block |= DEEP_SLEEP_BLOCK_EEPROM; 51:../lib/eeprom_x8.c **** EECR |= (1<> 8) & 0xff); 57:../lib/eeprom_x8.c **** eeprom_write8(addr+1, data & 0xff); 58:../lib/eeprom_x8.c **** } 59:../lib/eeprom_x8.c **** 60:../lib/eeprom_x8.c **** void eeprom_write32(uint16_t addr, uint32_t data) 61:../lib/eeprom_x8.c **** { 62:../lib/eeprom_x8.c **** eeprom_write8(addr+0, (data >> 24) & 0xff); 63:../lib/eeprom_x8.c **** eeprom_write8(addr+1, (data >> 16) & 0xff); 64:../lib/eeprom_x8.c **** eeprom_write8(addr+2, (data >> 8) & 0xff); 65:../lib/eeprom_x8.c **** eeprom_write8(addr+3, (data >> 0) & 0xff); 66:../lib/eeprom_x8.c **** } 67:../lib/eeprom_x8.c **** 68:../lib/eeprom_x8.c **** uint8_t eeprom_read8(uint16_t addr) 69:../lib/eeprom_x8.c **** { 70:../lib/eeprom_x8.c **** uint8_t tmp; 71:../lib/eeprom_x8.c **** eeprom_read_waiting = 1; 72:../lib/eeprom_x8.c **** while(EECR & (1< GAS LISTING /tmp/ccEMtt4X.s page 32 5:eeprom_data_locs.h **** #include "eeprom.h" 6:eeprom_data_locs.h **** #include "eeprom_definer.h" 7:eeprom_data_locs.h **** 8:eeprom_data_locs.h **** 9:eeprom_data_locs.h **** EEPROM_U_DEF(0, 8, display_contrast) 1437 .stabn 68,0,9,.LM71-.LFBB7 1438 .LM71: 1439 0258 80E0 ldi r24,lo8(0) 1440 025a 90E0 ldi r25,hi8(0) 1441 025c 6091 0000 lds r22,display_contrast.1948 1442 0260 0E94 0000 call eeprom_write8.1821 1443 .LBE727: 1444 .LBE726: 1445 .LBB728: 1446 .LBB729: 10:eeprom_data_locs.h **** EEPROM_U_DEF(1, 8, display_brightness) 1447 .stabn 68,0,10,.LM72-.LFBB7 1448 .LM72: 1449 0264 81E0 ldi r24,lo8(1) 1450 0266 90E0 ldi r25,hi8(1) 1451 0268 6091 0000 lds r22,display_brightness.1959 1452 026c 0E94 0000 call eeprom_write8.1821 1453 .LBE729: 1454 .LBE728: 1455 .LBB730: 1456 .LBB731: 11:eeprom_data_locs.h **** EEPROM_U_DEF(2, 16, vs_calib_12v) 1457 .stabn 68,0,11,.LM73-.LFBB7 1458 .LM73: 1459 0270 6091 0000 lds r22,vs_calib_12v.1970 1460 0274 7091 0000 lds r23,(vs_calib_12v.1970)+1 1461 0278 82E0 ldi r24,lo8(2) 1462 027a 90E0 ldi r25,hi8(2) 1463 027c 0E94 0000 call eeprom_write16.1824 1464 .LBE731: 1465 .LBE730: 1466 .LBB732: 1467 .LBB733: 12:eeprom_data_locs.h **** EEPROM_U_DEF(4, 16, cs0_calib_0a) 1468 .stabn 68,0,12,.LM74-.LFBB7 1469 .LM74: 1470 0280 6091 0000 lds r22,cs0_calib_0a.1981 1471 0284 7091 0000 lds r23,(cs0_calib_0a.1981)+1 1472 0288 84E0 ldi r24,lo8(4) 1473 028a 90E0 ldi r25,hi8(4) 1474 028c 0E94 0000 call eeprom_write16.1824 1475 .LBE733: 1476 .LBE732: 1477 .LBB734: 1478 .LBB735: 13:eeprom_data_locs.h **** EEPROM_U_DEF(6, 16, cs0_calib_10a) 1479 .stabn 68,0,13,.LM75-.LFBB7 1480 .LM75: 1481 0290 6091 0000 lds r22,cs0_calib_10a.1992 1482 0294 7091 0000 lds r23,(cs0_calib_10a.1992)+1 1483 0298 86E0 ldi r24,lo8(6) 1484 029a 90E0 ldi r25,hi8(6) GAS LISTING /tmp/ccEMtt4X.s page 33 1485 029c 0E94 0000 call eeprom_write16.1824 1486 .LBE735: 1487 .LBE734: 1488 .LBB736: 1489 .LBB737: 14:eeprom_data_locs.h **** EEPROM_U_DEF(8, 16, cs1_calib_0a) 1490 .stabn 68,0,14,.LM76-.LFBB7 1491 .LM76: 1492 02a0 6091 0000 lds r22,cs1_calib_0a.2003 1493 02a4 7091 0000 lds r23,(cs1_calib_0a.2003)+1 1494 02a8 88E0 ldi r24,lo8(8) 1495 02aa 90E0 ldi r25,hi8(8) 1496 02ac 0E94 0000 call eeprom_write16.1824 1497 .LBE737: 1498 .LBE736: 1499 .LBB738: 1500 .LBB739: 15:eeprom_data_locs.h **** EEPROM_U_DEF(10, 16, cs1_calib_10a) 1501 .stabn 68,0,15,.LM77-.LFBB7 1502 .LM77: 1503 02b0 6091 0000 lds r22,cs1_calib_10a.2014 1504 02b4 7091 0000 lds r23,(cs1_calib_10a.2014)+1 1505 02b8 8AE0 ldi r24,lo8(10) 1506 02ba 90E0 ldi r25,hi8(10) 1507 02bc 0E94 0000 call eeprom_write16.1824 1508 .LBE739: 1509 .LBE738: 1510 .LBB740: 1511 .LBB741: 16:eeprom_data_locs.h **** EEPROM_U_DEF(12, 16, cs2_calib_0a) 1512 .stabn 68,0,16,.LM78-.LFBB7 1513 .LM78: 1514 02c0 6091 0000 lds r22,cs2_calib_0a.2025 1515 02c4 7091 0000 lds r23,(cs2_calib_0a.2025)+1 1516 02c8 8CE0 ldi r24,lo8(12) 1517 02ca 90E0 ldi r25,hi8(12) 1518 02cc 0E94 0000 call eeprom_write16.1824 1519 .LBE741: 1520 .LBE740: 1521 .LBB742: 1522 .LBB743: 17:eeprom_data_locs.h **** EEPROM_U_DEF(14, 16, cs2_calib_10a) 1523 .stabn 68,0,17,.LM79-.LFBB7 1524 .LM79: 1525 02d0 6091 0000 lds r22,cs2_calib_10a.2036 1526 02d4 7091 0000 lds r23,(cs2_calib_10a.2036)+1 1527 02d8 8EE0 ldi r24,lo8(14) 1528 02da 90E0 ldi r25,hi8(14) 1529 02dc 0E94 0000 call eeprom_write16.1824 1530 .LBE743: 1531 .LBE742: 1532 .LBB744: 1533 .LBB745: 18:eeprom_data_locs.h **** EEPROM_U_DEF(16, 16, temp1_beta) 1534 .stabn 68,0,18,.LM80-.LFBB7 1535 .LM80: 1536 02e0 6091 0000 lds r22,temp1_beta.2047 GAS LISTING /tmp/ccEMtt4X.s page 34 1537 02e4 7091 0000 lds r23,(temp1_beta.2047)+1 1538 02e8 80E1 ldi r24,lo8(16) 1539 02ea 90E0 ldi r25,hi8(16) 1540 02ec 0E94 0000 call eeprom_write16.1824 1541 .LBE745: 1542 .LBE744: 1543 .LBB746: 1544 .LBB747: 19:eeprom_data_locs.h **** EEPROM_U_DEF(18, 16, temp1_rinf) 1545 .stabn 68,0,19,.LM81-.LFBB7 1546 .LM81: 1547 02f0 6091 0000 lds r22,temp1_rinf.2058 1548 02f4 7091 0000 lds r23,(temp1_rinf.2058)+1 1549 02f8 82E1 ldi r24,lo8(18) 1550 02fa 90E0 ldi r25,hi8(18) 1551 02fc 0E94 0000 call eeprom_write16.1824 1552 .LBE747: 1553 .LBE746: 1554 .LBB748: 1555 .LBB749: 20:eeprom_data_locs.h **** EEPROM_U_DEF(20, 16, temp2_beta) 1556 .stabn 68,0,20,.LM82-.LFBB7 1557 .LM82: 1558 0300 6091 0000 lds r22,temp2_beta.2069 1559 0304 7091 0000 lds r23,(temp2_beta.2069)+1 1560 0308 84E1 ldi r24,lo8(20) 1561 030a 90E0 ldi r25,hi8(20) 1562 030c 0E94 0000 call eeprom_write16.1824 1563 .LBE749: 1564 .LBE748: 1565 .LBB750: 1566 .LBB751: 21:eeprom_data_locs.h **** EEPROM_U_DEF(22, 16, temp2_rinf) 1567 .stabn 68,0,21,.LM83-.LFBB7 1568 .LM83: 1569 0310 6091 0000 lds r22,temp2_rinf.2080 1570 0314 7091 0000 lds r23,(temp2_rinf.2080)+1 1571 0318 86E1 ldi r24,lo8(22) 1572 031a 90E0 ldi r25,hi8(22) 1573 031c 0E94 0000 call eeprom_write16.1824 1574 .LBE751: 1575 .LBE750: 1576 .LBB752: 1577 .LBB753: 22:eeprom_data_locs.h **** EEPROM_U_DEF(24, 16, critical_voltage) 23:eeprom_data_locs.h **** 24:eeprom_data_locs.h **** EEPROM_U_DEF(E2END-1, 8, eeprom_status) 1578 .stabn 68,0,24,.LM84-.LFBB7 1579 .LM84: 1580 0320 8EEF ldi r24,lo8(1022) 1581 0322 93E0 ldi r25,hi8(1022) 1582 0324 6091 0000 lds r22,eeprom_status.2102 1583 0328 0E94 0000 call eeprom_write8.1821 1584 .LBE753: 1585 .LBE752: 1586 .LBB754: 1587 .LBB755: GAS LISTING /tmp/ccEMtt4X.s page 35 1588 .stabn 68,0,22,.LM85-.LFBB7 1589 .LM85: 1590 032c 6091 0000 lds r22,critical_voltage.2091 1591 0330 7091 0000 lds r23,(critical_voltage.2091)+1 1592 0334 88E1 ldi r24,lo8(24) 1593 0336 90E0 ldi r25,hi8(24) 1594 0338 0E94 0000 call eeprom_write16.1824 1595 /* epilogue start */ 1596 .LBE755: 1597 .LBE754: 1598 .stabs "eeprom_l.c",132,0,0,.Ltext11 1599 .Ltext11: 14:eeprom_l.c **** C(display_contrast); 15:eeprom_l.c **** C(display_brightness); 16:eeprom_l.c **** C(vs_calib_12v); 17:eeprom_l.c **** C(cs0_calib_0a); 18:eeprom_l.c **** C(cs0_calib_10a); 19:eeprom_l.c **** C(cs1_calib_0a); 20:eeprom_l.c **** C(cs1_calib_10a); 21:eeprom_l.c **** C(cs2_calib_0a); 22:eeprom_l.c **** C(cs2_calib_10a); 23:eeprom_l.c **** C(temp1_beta); 24:eeprom_l.c **** C(temp1_rinf); 25:eeprom_l.c **** C(temp2_beta); 26:eeprom_l.c **** C(temp2_rinf); 27:eeprom_l.c **** C(eeprom_status); 28:eeprom_l.c **** C(critical_voltage); 29:eeprom_l.c **** } 1600 .stabn 68,0,29,.LM86-.LFBB7 1601 .LM86: 1602 033c 0895 ret 1603 .size eeprom_save.2116, .-eeprom_save.2116 1604 .Lscope7: 1605 .stabs "",36,0,0,.Lscope7-.LFBB7 1606 .stabd 78,0,0 1607 .stabs "temperature_compute.3510:f(24,3)",36,0,37,temperature_compute.3510 1608 .stabs "val:P(24,4)",64,0,36,24 1609 .stabs "betai:P(24,4)",64,0,36,6 1610 .stabs "rinfi:P(24,4)",64,0,36,14 1611 .type temperature_compute.3510, @function 1612 temperature_compute.3510: 1613 .stabd 46,0,0 1614 .stabs "adc.c",132,0,0,.Ltext12 1615 .Ltext12: 1:adc.c **** #include "adc.h" 2:adc.c **** 3:adc.c **** #include 4:adc.c **** #include 5:adc.c **** 6:adc.c **** #include 7:adc.c **** 8:adc.c **** #include "eeprom_data_locs.h" 9:adc.c **** 10:adc.c **** volatile uint16_t adcval[8]; 11:adc.c **** volatile uint8_t adccyc[8]; 12:adc.c **** volatile uint16_t adc_accum; 13:adc.c **** volatile uint8_t adc_rep; GAS LISTING /tmp/ccEMtt4X.s page 36 14:adc.c **** 15:adc.c **** volatile uint16_t voltage; // millivolts 16:adc.c **** volatile int16_t current[3]; // centiamps 17:adc.c **** volatile int16_t temperature[2]; //centi-degC 18:adc.c **** volatile uint8_t buttons; 19:adc.c **** 20:adc.c **** void adc_setup(void) 21:adc.c **** { 22:adc.c **** // ADC 23:adc.c **** 24:adc.c **** ADMUX = (uint8_t)(1<= 7) { 1815 .stabn 68,0,76,.LM99-.LFBB9 1816 .LM99: 1817 04b0 4730 cpi r20,lo8(7) 1818 04b2 00F0 brlo .L42 77:adc.c **** ADMUX &= 0xf0; 1819 .stabn 68,0,77,.LM100-.LFBB9 1820 .LM100: 1821 04b4 8091 7C00 lds r24,124 1822 04b8 807F andi r24,lo8(-16) 1823 04ba 00C0 rjmp .L62 1824 .L42: 78:adc.c **** } else { 79:adc.c **** ADMUX &= 0xf0; 1825 .stabn 68,0,79,.LM101-.LFBB9 1826 .LM101: 1827 04bc 8091 7C00 lds r24,124 1828 04c0 807F andi r24,lo8(-16) 1829 04c2 8093 7C00 sts 124,r24 80:adc.c **** ADMUX |= (uint8_t)(which+1); 1830 .stabn 68,0,80,.LM102-.LFBB9 1831 .LM102: 1832 04c6 9091 7C00 lds r25,124 1833 04ca 842F mov r24,r20 GAS LISTING /tmp/ccEMtt4X.s page 41 1834 04cc 8F5F subi r24,lo8(-(1)) 1835 04ce 892B or r24,r25 1836 .L62: 1837 04d0 8093 7C00 sts 124,r24 81:adc.c **** } 82:adc.c **** 83:adc.c **** adcval[which] = adc_accum; 1838 .stabn 68,0,83,.LM103-.LFBB9 1839 .LM103: 1840 04d4 A42F mov r26,r20 1841 04d6 B0E0 ldi r27,lo8(0) 1842 04d8 8091 0000 lds r24,adc_accum.2151 1843 04dc 9091 0000 lds r25,(adc_accum.2151)+1 1844 04e0 FD01 movw r30,r26 1845 04e2 EE0F lsl r30 1846 04e4 FF1F rol r31 1847 04e6 E050 subi r30,lo8(-(adcval.2150)) 1848 04e8 F040 sbci r31,hi8(-(adcval.2150)) 1849 04ea 9183 std Z+1,r25 1850 04ec 8083 st Z,r24 84:adc.c **** adccyc[which] = N_REP; 1851 .stabn 68,0,84,.LM104-.LFBB9 1852 .LM104: 1853 04ee A050 subi r26,lo8(-(adccyc.2153)) 1854 04f0 B040 sbci r27,hi8(-(adccyc.2153)) 1855 04f2 80E4 ldi r24,lo8(64) 1856 04f4 8C93 st X,r24 85:adc.c **** 86:adc.c **** adc_accum = adc_rep = 0; 1857 .stabn 68,0,86,.LM105-.LFBB9 1858 .LM105: 1859 04f6 1092 0000 sts adc_rep.2152,__zero_reg__ 1860 04fa 1092 0000 sts (adc_accum.2151)+1,__zero_reg__ 1861 04fe 1092 0000 sts adc_accum.2151,__zero_reg__ 1862 .L41: 87:adc.c **** } 88:adc.c **** 89:adc.c **** ADCSRA |= (uint8_t)(1< 0x7000 && adcval[which] < 0x9000) { 2003 .stabn 68,0,101,.LM118-.LFBB9 2004 .LM118: 2005 0612 8091 0000 lds r24,adcval.2150+4 2006 0616 9091 0000 lds r25,(adcval.2150+4)+1 2007 061a 8150 subi r24,lo8(28673) 2008 061c 9047 sbci r25,hi8(28673) 2009 061e 00F0 brlo .L54 2010 0620 8091 0000 lds r24,adcval.2150+4 2011 0624 9091 0000 lds r25,(adcval.2150+4)+1 2012 0628 8050 subi r24,lo8(-28672) 2013 062a 9049 sbci r25,hi8(-28672) 2014 062c 00F4 brsh .L54 102:adc.c **** buttons &= ~(1<<1); 2015 .stabn 68,0,102,.LM119-.LFBB9 2016 .LM119: 2017 062e 8091 0000 lds r24,buttons.2159 2018 0632 8D7F andi r24,lo8(-3) 2019 0634 00C0 rjmp .L63 2020 .L54: 103:adc.c **** } else { 104:adc.c **** buttons |= (1<<1); 2021 .stabn 68,0,104,.LM120-.LFBB9 2022 .LM120: 2023 0636 8091 0000 lds r24,buttons.2159 2024 063a 8260 ori r24,lo8(2) 2025 .L63: 2026 063c 8093 0000 sts buttons.2159,r24 2027 0640 00C0 rjmp .L60 2028 .L48: 105:adc.c **** } 106:adc.c **** break; 107:adc.c **** case 3: // in1 108:adc.c **** if(adcval[which] > 0x7000 && adcval[which] < 0x9000) { 2029 .stabn 68,0,108,.LM121-.LFBB9 2030 .LM121: 2031 0642 8091 0000 lds r24,adcval.2150+6 2032 0646 9091 0000 lds r25,(adcval.2150+6)+1 2033 064a 8150 subi r24,lo8(28673) GAS LISTING /tmp/ccEMtt4X.s page 45 2034 064c 9047 sbci r25,hi8(28673) 2035 064e 00F0 brlo .L55 2036 0650 8091 0000 lds r24,adcval.2150+6 2037 0654 9091 0000 lds r25,(adcval.2150+6)+1 2038 0658 8050 subi r24,lo8(-28672) 2039 065a 9049 sbci r25,hi8(-28672) 2040 065c 00F4 brsh .L55 109:adc.c **** buttons &= ~(1<<0); 2041 .stabn 68,0,109,.LM122-.LFBB9 2042 .LM122: 2043 065e 8091 0000 lds r24,buttons.2159 2044 0662 8E7F andi r24,lo8(-2) 2045 0664 00C0 rjmp .L63 2046 .L55: 110:adc.c **** } else { 111:adc.c **** buttons |= (1<<0); 2047 .stabn 68,0,111,.LM123-.LFBB9 2048 .LM123: 2049 0666 8091 0000 lds r24,buttons.2159 2050 066a 8160 ori r24,lo8(1) 2051 066c 00C0 rjmp .L63 2052 .L49: 112:adc.c **** } 113:adc.c **** break; 114:adc.c **** case 4: // temp2 115:adc.c **** if(adcval[which] > 0x7100 || adcval[which] < 0x1100) { 2053 .stabn 68,0,115,.LM124-.LFBB9 2054 .LM124: 2055 066e 8091 0000 lds r24,adcval.2150+8 2056 0672 9091 0000 lds r25,(adcval.2150+8)+1 2057 0676 8150 subi r24,lo8(28929) 2058 0678 9147 sbci r25,hi8(28929) 2059 067a 00F4 brsh .L56 2060 067c 8091 0000 lds r24,adcval.2150+8 2061 0680 9091 0000 lds r25,(adcval.2150+8)+1 2062 0684 8050 subi r24,lo8(4352) 2063 0686 9141 sbci r25,hi8(4352) 2064 0688 00F4 brsh .L57 2065 .L56: 116:adc.c **** temperature[1] = INVALID_TEMP; 2066 .stabn 68,0,116,.LM125-.LFBB9 2067 .LM125: 2068 068a 82E0 ldi r24,lo8(-32766) 2069 068c 90E8 ldi r25,hi8(-32766) 2070 068e 00C0 rjmp .L65 2071 .L57: 117:adc.c **** } else { 118:adc.c **** temperature[1] = temperature_compute(adcval[which], temp2_beta, temp2_rinf); 2072 .stabn 68,0,118,.LM126-.LFBB9 2073 .LM126: 2074 0690 8091 0000 lds r24,adcval.2150+8 2075 0694 9091 0000 lds r25,(adcval.2150+8)+1 2076 0698 6091 0000 lds r22,temp2_beta.2069 2077 069c 7091 0000 lds r23,(temp2_beta.2069)+1 2078 06a0 4091 0000 lds r20,temp2_rinf.2080 2079 06a4 5091 0000 lds r21,(temp2_rinf.2080)+1 2080 06a8 0E94 0000 call temperature_compute.3510 GAS LISTING /tmp/ccEMtt4X.s page 46 2081 .L65: 2082 06ac 9093 0000 sts (temperature.2158+2)+1,r25 2083 06b0 8093 0000 sts temperature.2158+2,r24 2084 06b4 00C0 rjmp .L60 2085 .L50: 119:adc.c **** } 120:adc.c **** break; 121:adc.c **** case 5: // temp1 122:adc.c **** if(adcval[which] > 0x7100 || adcval[which] < 0x1100) { 2086 .stabn 68,0,122,.LM127-.LFBB9 2087 .LM127: 2088 06b6 8091 0000 lds r24,adcval.2150+10 2089 06ba 9091 0000 lds r25,(adcval.2150+10)+1 2090 06be 8150 subi r24,lo8(28929) 2091 06c0 9147 sbci r25,hi8(28929) 2092 06c2 00F4 brsh .L58 2093 06c4 8091 0000 lds r24,adcval.2150+10 2094 06c8 9091 0000 lds r25,(adcval.2150+10)+1 2095 06cc 8050 subi r24,lo8(4352) 2096 06ce 9141 sbci r25,hi8(4352) 2097 06d0 00F4 brsh .L59 2098 .L58: 123:adc.c **** temperature[0] = INVALID_TEMP; 2099 .stabn 68,0,123,.LM128-.LFBB9 2100 .LM128: 2101 06d2 82E0 ldi r24,lo8(-32766) 2102 06d4 90E8 ldi r25,hi8(-32766) 2103 06d6 00C0 rjmp .L64 2104 .L59: 124:adc.c **** } else { 125:adc.c **** temperature[0] = temperature_compute(adcval[which], temp1_beta, temp1_rinf); 2105 .stabn 68,0,125,.LM129-.LFBB9 2106 .LM129: 2107 06d8 8091 0000 lds r24,adcval.2150+10 2108 06dc 9091 0000 lds r25,(adcval.2150+10)+1 2109 06e0 6091 0000 lds r22,temp1_beta.2047 2110 06e4 7091 0000 lds r23,(temp1_beta.2047)+1 2111 06e8 4091 0000 lds r20,temp1_rinf.2058 2112 06ec 5091 0000 lds r21,(temp1_rinf.2058)+1 2113 06f0 0E94 0000 call temperature_compute.3510 2114 .L64: 2115 06f4 9093 0000 sts (temperature.2158)+1,r25 2116 06f8 8093 0000 sts temperature.2158,r24 2117 06fc 00C0 rjmp .L60 2118 .L51: 126:adc.c **** } 127:adc.c **** break; 128:adc.c **** case 6: // vs 129:adc.c **** f1 = adcval[which]; 2119 .stabn 68,0,129,.LM130-.LFBB9 2120 .LM130: 2121 06fe 6091 0000 lds r22,adcval.2150+12 2122 0702 7091 0000 lds r23,(adcval.2150+12)+1 2123 0706 80E0 ldi r24,lo8(0) 2124 0708 90E0 ldi r25,hi8(0) 2125 070a 0E94 0000 call __floatunsisf 2126 070e 7B01 movw r14,r22 GAS LISTING /tmp/ccEMtt4X.s page 47 2127 0710 8C01 movw r16,r24 130:adc.c **** f1 /= (float)vs_calib_12v; 2128 .stabn 68,0,130,.LM131-.LFBB9 2129 .LM131: 2130 0712 6091 0000 lds r22,vs_calib_12v.1970 2131 0716 7091 0000 lds r23,(vs_calib_12v.1970)+1 2132 071a 80E0 ldi r24,lo8(0) 2133 071c 90E0 ldi r25,hi8(0) 2134 071e 0E94 0000 call __floatunsisf 2135 0722 9B01 movw r18,r22 2136 0724 AC01 movw r20,r24 2137 0726 C801 movw r24,r16 2138 0728 B701 movw r22,r14 2139 072a 0E94 0000 call __divsf3 131:adc.c **** f1 *= 12000.0; 132:adc.c **** voltage = f1; 2140 .stabn 68,0,132,.LM132-.LFBB9 2141 .LM132: 2142 072e 20E0 ldi r18,lo8(0x463b8000) 2143 0730 30E8 ldi r19,hi8(0x463b8000) 2144 0732 4BE3 ldi r20,hlo8(0x463b8000) 2145 0734 56E4 ldi r21,hhi8(0x463b8000) 2146 0736 0E94 0000 call __mulsf3 2147 073a 0E94 0000 call __fixunssfsi 2148 073e 7093 0000 sts (voltage.2156)+1,r23 2149 0742 6093 0000 sts voltage.2156,r22 2150 0746 00C0 rjmp .L60 2151 .L67: 133:adc.c **** break; 134:adc.c **** case 7: // cs0 135:adc.c **** current[0] = -currescale(adcval[which], cs0_calib_0a, cs0_calib_10a); 2152 .stabn 68,0,135,.LM133-.LFBB9 2153 .LM133: 2154 0748 6091 0000 lds r22,adcval.2150+14 2155 074c 7091 0000 lds r23,(adcval.2150+14)+1 2156 .LBB760: 2157 .LBB761: 2158 .stabn 68,0,60,.LM134-.LFBB9 2159 .LM134: 2160 0750 80E0 ldi r24,lo8(0) 2161 0752 90E0 ldi r25,hi8(0) 2162 0754 0E94 0000 call __floatunsisf 2163 0758 7B01 movw r14,r22 2164 075a 8C01 movw r16,r24 2165 .stabn 68,0,62,.LM135-.LFBB9 2166 .LM135: 2167 075c 6091 0000 lds r22,cs0_calib_0a.1981 2168 0760 7091 0000 lds r23,(cs0_calib_0a.1981)+1 2169 0764 80E0 ldi r24,lo8(0) 2170 0766 90E0 ldi r25,hi8(0) 2171 0768 0E94 0000 call __floatunsisf 2172 076c 9B01 movw r18,r22 2173 076e AC01 movw r20,r24 2174 0770 C801 movw r24,r16 2175 0772 B701 movw r22,r14 2176 0774 0E94 0000 call __subsf3 2177 0778 7B01 movw r14,r22 GAS LISTING /tmp/ccEMtt4X.s page 48 2178 077a 8C01 movw r16,r24 2179 .LBE761: 2180 .LBE760: 2181 .stabn 68,0,135,.LM136-.LFBB9 2182 .LM136: 2183 077c 6091 0000 lds r22,cs0_calib_10a.1992 2184 0780 7091 0000 lds r23,(cs0_calib_10a.1992)+1 2185 0784 80E0 ldi r24,lo8(0) 2186 0786 90E0 ldi r25,hi8(0) 2187 0788 0E94 0000 call __floatunsisf 2188 078c 9B01 movw r18,r22 2189 078e AC01 movw r20,r24 2190 0790 C801 movw r24,r16 2191 0792 B701 movw r22,r14 2192 0794 0E94 0000 call __divsf3 2193 0798 20E0 ldi r18,lo8(0x447a0000) 2194 079a 30E0 ldi r19,hi8(0x447a0000) 2195 079c 4AE7 ldi r20,hlo8(0x447a0000) 2196 079e 54E4 ldi r21,hhi8(0x447a0000) 2197 07a0 0E94 0000 call __mulsf3 2198 07a4 0E94 0000 call __fixsfsi 2199 07a8 7095 com r23 2200 07aa 6195 neg r22 2201 07ac 7F4F sbci r23,lo8(-1) 2202 07ae 7093 0000 sts (current.2157)+1,r23 2203 07b2 6093 0000 sts current.2157,r22 2204 .L60: 2205 /* epilogue start */ 136:adc.c **** break; 137:adc.c **** } 138:adc.c **** } 2206 .stabn 68,0,138,.LM137-.LFBB9 2207 .LM137: 2208 07b6 FF91 pop r31 2209 07b8 EF91 pop r30 2210 07ba BF91 pop r27 2211 07bc AF91 pop r26 2212 07be 9F91 pop r25 2213 07c0 8F91 pop r24 2214 07c2 7F91 pop r23 2215 07c4 6F91 pop r22 2216 07c6 5F91 pop r21 2217 07c8 4F91 pop r20 2218 07ca 3F91 pop r19 2219 07cc 2F91 pop r18 2220 07ce 1F91 pop r17 2221 07d0 0F91 pop r16 2222 07d2 FF90 pop r15 2223 07d4 EF90 pop r14 2224 07d6 0F90 pop r0 2225 07d8 0FBE out __SREG__,r0 2226 07da 0F90 pop r0 2227 07dc 1F90 pop __zero_reg__ 2228 07de 1895 reti 2229 .size __vector_24, .-__vector_24 2230 .stabs "which:r(24,2)",64,0,69,20 2231 .stabn 192,0,0,.LFBB9-.LFBB9 GAS LISTING /tmp/ccEMtt4X.s page 49 2232 .stabn 224,0,0,.Lscope9-.LFBB9 2233 .Lscope9: 2234 .stabs "",36,0,0,.Lscope9-.LFBB9 2235 .stabd 78,0,0 2236 .stabs "display_read.4120:f(30,2)",36,0,69,display_read.4120 2237 .type display_read.4120, @function 2238 display_read.4120: 2239 .stabd 46,0,0 2240 .stabs "display.c",132,0,0,.Ltext13 2241 .Ltext13: 1:display.c **** #include "display.h" 2:display.c **** #include 3:display.c **** #include 4:display.c **** #include 5:display.c **** #include 6:display.c **** #include "byte_to_hex.h" 7:display.c **** #include 8:display.c **** 9:display.c **** // PORTD.6 = RS 10:display.c **** // PORTD.7 = R/W_ 11:display.c **** // PORTB.3 = DB7 12:display.c **** // PORTB.2 = DB6 13:display.c **** // PORTB.1 = DB5 14:display.c **** // PORTB.0 = DB4 15:display.c **** // 16:display.c **** // PORTB.4 = E 17:display.c **** 18:display.c **** static void SET_E(void) { PORTB |= (uint8_t)(1<<4); } 19:display.c **** static void CLR_E(void) { PORTB &= (uint8_t)(~(1<<4)); } 20:display.c **** static void STROBE_E_FW(void) { SET_E(); _delay_us(1); CLR_E(); _delay_us(1); } 21:display.c **** 22:display.c **** static void SET_RS_LOW(void) { PORTD &= (uint8_t)(~(1<<6)); } 23:display.c **** static void SET_RS_HIGH(void) { PORTD |= (uint8_t)(1<<6); } 24:display.c **** 25:display.c **** static void SET_DATA_LOW(void) { PORTB &= (uint8_t)0xf0; } 26:display.c **** static void SET_DATA_INPUT(void) { SET_DATA_LOW(); DDRB &= (uint8_t)0xf0; } 27:display.c **** static void SET_DATA_OUTPUT(void) { SET_DATA_LOW(); DDRB |= (uint8_t)0x0f; } 28:display.c **** 29:display.c **** static void SET_WRITE(void) { PORTD &= (uint8_t)(~(1<<7)); } 30:display.c **** static void SET_READ(void) { PORTD |= (uint8_t)(1<<7); } 31:display.c **** 32:display.c **** static uint8_t display_read(void); 33:display.c **** 34:display.c **** static void wait_for_free(void) 35:display.c **** { 36:display.c **** SET_RS_LOW(); 37:display.c **** while(display_read() & 0x80); 38:display.c **** display_read(); 39:display.c **** } 40:display.c **** 41:display.c **** static void display_write(uint8_t b) 42:display.c **** { 43:display.c **** SET_WRITE(); 44:display.c **** 45:display.c **** SET_DATA_LOW(); 46:display.c **** PORTB |= ((uint8_t)((uint8_t)b & (uint8_t)0xf0)) >> 4; 47:display.c **** STROBE_E_FW(); GAS LISTING /tmp/ccEMtt4X.s page 50 48:display.c **** 49:display.c **** SET_DATA_LOW(); 50:display.c **** PORTB |= ((uint8_t)(((uint8_t)b << 4) & (uint8_t)0xf0)) >> 4; 51:display.c **** STROBE_E_FW(); 52:display.c **** } 53:display.c **** 54:display.c **** static void display_write_rs_l(uint8_t b) 55:display.c **** { 56:display.c **** wait_for_free(); 57:display.c **** SET_RS_LOW(); 58:display.c **** display_write(b); 59:display.c **** } 60:display.c **** 61:display.c **** static void display_write_rs_h(uint8_t b) 62:display.c **** { 63:display.c **** wait_for_free(); 64:display.c **** SET_RS_HIGH(); 65:display.c **** display_write(b); 66:display.c **** } 67:display.c **** 68:display.c **** static uint8_t display_read(void) 69:display.c **** { 2242 .stabn 68,0,69,.LM138-.LFBB10 2243 .LM138: 2244 .LFBB10: 2245 /* prologue: function */ 2246 /* frame size = 0 */ 2247 .LBB762: 2248 .LBB763: 2249 .LBB764: 2250 .LBB765: 2251 .stabn 68,0,25,.LM139-.LFBB10 2252 .LM139: 2253 07e0 85B1 in r24,37-32 2254 07e2 807F andi r24,lo8(-16) 2255 07e4 85B9 out 37-32,r24 2256 .LBE765: 2257 .LBE764: 2258 .stabn 68,0,26,.LM140-.LFBB10 2259 .LM140: 2260 07e6 84B1 in r24,36-32 2261 07e8 807F andi r24,lo8(-16) 2262 07ea 84B9 out 36-32,r24 2263 .LBE763: 2264 .LBE762: 2265 .LBB766: 2266 .LBB767: 2267 .stabn 68,0,30,.LM141-.LFBB10 2268 .LM141: 2269 07ec 5F9A sbi 43-32,7 2270 07ee 80E0 ldi r24,lo8(0) 2271 .LBE767: 2272 .LBE766: 2273 .LBB768: 2274 .LBB769: 2275 .LBB770: 2276 .LBB771: GAS LISTING /tmp/ccEMtt4X.s page 51 2277 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h",132,0,0,.Ltext14 2278 .Ltext14: 1:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** /* Copyright (c) 2002, Marek Michalkiewicz 2:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** Copyright (c) 2007 Joerg Wunsch 3:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** All rights reserved. 4:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** 5:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** Redistribution and use in source and binary forms, with or without 6:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** modification, are permitted provided that the following conditions are met: 7:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** 8:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** * Redistributions of source code must retain the above copyright 9:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** notice, this list of conditions and the following disclaimer. 10:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** 11:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** * Redistributions in binary form must reproduce the above copyright 12:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** notice, this list of conditions and the following disclaimer in 13:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** the documentation and/or other materials provided with the 14:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** distribution. 15:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** 16:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** * Neither the name of the copyright holders nor the names of 17:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** contributors may be used to endorse or promote products derived 18:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** from this software without specific prior written permission. 19:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** 20:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 23:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 24:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 25:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 26:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 27:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 28:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 29:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 30:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** POSSIBILITY OF SUCH DAMAGE. */ 31:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** 32:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** /* $Id: delay_basic.h,v 1.1 2007/05/13 21:23:20 joerg_wunsch Exp $ */ 33:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** 34:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** #ifndef _UTIL_DELAY_BASIC_H_ 35:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** #define _UTIL_DELAY_BASIC_H_ 1 36:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** 37:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** #include 38:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** 39:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** /** \file */ 40:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** /** \defgroup util_delay_basic : Basic busy-wait delay loops 41:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** \code 42:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** #include 43:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** \endcode 44:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** 45:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** The functions in this header file implement simple delay loops 46:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** that perform a busy-waiting. They are typically used to 47:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** facilitate short delays in the program execution. They are 48:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** implemented as count-down loops with a well-known CPU cycle 49:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** count per loop iteration. As such, no other processing can 50:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** occur simultaneously. It should be kept in mind that the 51:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** functions described here do not disable interrupts. 52:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** 53:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** In general, for long delays, the use of hardware timers is 54:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** much preferrable, as they free the CPU, and allow for 55:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** concurrent processing of other events while the timer is GAS LISTING /tmp/ccEMtt4X.s page 52 56:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** running. However, in particular for very short delays, the 57:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** overhead of setting up a hardware timer is too much compared 58:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** to the overall delay time. 59:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** 60:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** Two inline functions are provided for the actual delay algorithms. 61:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** 62:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** */ 63:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** 64:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** #if !defined(__DOXYGEN__) 65:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** static inline void _delay_loop_1(uint8_t __count) __attribute__((always_inline)); 66:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** static inline void _delay_loop_2(uint16_t __count) __attribute__((always_inline)); 67:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** #endif 68:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** 69:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** /** \ingroup util_delay_basic 70:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** 71:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** Delay loop using an 8-bit counter \c __count, so up to 256 72:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** iterations are possible. (The value 256 would have to be passed 73:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** as 0.) The loop executes three CPU cycles per iteration, not 74:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** including the overhead the compiler needs to setup the counter 75:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** register. 76:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** 77:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** Thus, at a CPU speed of 1 MHz, delays of up to 768 microseconds 78:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** can be achieved. 79:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** */ 80:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** void 81:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** _delay_loop_1(uint8_t __count) 82:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** { 83:/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h **** __asm__ volatile ( 2279 .stabn 68,0,83,.LM142-.LFBB10 2280 .LM142: 2281 07f0 2DEF ldi r18,lo8(-3) 2282 .L69: 2283 07f2 922F mov r25,r18 2284 /* #APP */ 2285 ; 83 "/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h" 1 2286 07f4 9A95 1: dec r25 2287 07f6 01F4 brne 1b 2288 ; 0 "" 2 2289 /* #NOAPP */ 2290 .LBE771: 2291 .LBE770: 2292 .LBE769: 2293 .LBE768: 2294 .stabs "display.c",132,0,0,.Ltext15 2295 .Ltext15: 70:display.c **** uint8_t i, res = 0; 71:display.c **** 72:display.c **** SET_DATA_INPUT(); 73:display.c **** SET_READ(); 74:display.c **** for(i=0; i<10; i++) { 2296 .stabn 68,0,74,.LM143-.LFBB10 2297 .LM143: 2298 07f8 8F5F subi r24,lo8(-(1)) 2299 07fa 8A30 cpi r24,lo8(10) 2300 07fc 01F4 brne .L69 2301 .LBB772: 2302 .LBB773: GAS LISTING /tmp/ccEMtt4X.s page 53 2303 .stabn 68,0,18,.LM144-.LFBB10 2304 .LM144: 2305 07fe 2C9A sbi 37-32,4 2306 .LBE773: 2307 .LBE772: 2308 .LBB775: 2309 .LBB776: 2310 .LBB777: 2311 .LBB778: 2312 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h",132,0,0,.Ltext16 2313 .Ltext16: 2314 .stabn 68,0,83,.LM145-.LFBB10 2315 .LM145: 2316 0800 26E0 ldi r18,lo8(6) 2317 0802 822F mov r24,r18 2318 /* #APP */ 2319 ; 83 "/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h" 1 2320 0804 8A95 1: dec r24 2321 0806 01F4 brne 1b 2322 ; 0 "" 2 2323 /* #NOAPP */ 2324 .LBE778: 2325 .LBE777: 2326 .LBE776: 2327 .LBE775: 2328 .stabs "display.c",132,0,0,.Ltext17 2329 .Ltext17: 75:display.c **** _delay_us(38); 76:display.c **** } 77:display.c **** 78:display.c **** for(i=0; i<2; i++) { 79:display.c **** SET_E(); 80:display.c **** _delay_us(1); 81:display.c **** if(i==0) { 82:display.c **** res |= PORTB & 0x0f << 4; 2330 .stabn 68,0,82,.LM146-.LFBB10 2331 .LM146: 2332 0808 85B1 in r24,37-32 2333 .LBB782: 2334 .LBB783: 2335 .stabn 68,0,19,.LM147-.LFBB10 2336 .LM147: 2337 080a 2C98 cbi 37-32,4 2338 .LBE783: 2339 .LBE782: 2340 .LBB785: 2341 .LBB786: 2342 .LBB787: 2343 .LBB788: 2344 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h",132,0,0,.Ltext18 2345 .Ltext18: 2346 .stabn 68,0,83,.LM148-.LFBB10 2347 .LM148: 2348 080c 922F mov r25,r18 2349 /* #APP */ 2350 ; 83 "/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h" 1 2351 080e 9A95 1: dec r25 GAS LISTING /tmp/ccEMtt4X.s page 54 2352 0810 01F4 brne 1b 2353 ; 0 "" 2 2354 /* #NOAPP */ 2355 .LBE788: 2356 .LBE787: 2357 .LBE786: 2358 .LBE785: 2359 .LBB792: 2360 .LBB774: 2361 .stabs "display.c",132,0,0,.Ltext19 2362 .Ltext19: 2363 .stabn 68,0,18,.LM149-.LFBB10 2364 .LM149: 2365 0812 2C9A sbi 37-32,4 2366 .LBE774: 2367 .LBE792: 2368 .LBB793: 2369 .LBB781: 2370 .LBB780: 2371 .LBB779: 2372 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h",132,0,0,.Ltext20 2373 .Ltext20: 2374 .stabn 68,0,83,.LM150-.LFBB10 2375 .LM150: 2376 0814 922F mov r25,r18 2377 /* #APP */ 2378 ; 83 "/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h" 1 2379 0816 9A95 1: dec r25 2380 0818 01F4 brne 1b 2381 ; 0 "" 2 2382 /* #NOAPP */ 2383 .LBE779: 2384 .LBE780: 2385 .LBE781: 2386 .LBE793: 2387 .stabs "display.c",132,0,0,.Ltext21 2388 .Ltext21: 83:display.c **** } else { 84:display.c **** res |= (PORTB & 0x0f); 2389 .stabn 68,0,84,.LM151-.LFBB10 2390 .LM151: 2391 081a 95B1 in r25,37-32 2392 081c 807F andi r24,lo8(-16) 2393 081e 9F70 andi r25,lo8(15) 2394 0820 892B or r24,r25 2395 .LBB794: 2396 .LBB784: 2397 .stabn 68,0,19,.LM152-.LFBB10 2398 .LM152: 2399 0822 2C98 cbi 37-32,4 2400 .LBE784: 2401 .LBE794: 2402 .LBB795: 2403 .LBB791: 2404 .LBB790: 2405 .LBB789: 2406 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h",132,0,0,.Ltext22 GAS LISTING /tmp/ccEMtt4X.s page 55 2407 .Ltext22: 2408 .stabn 68,0,83,.LM153-.LFBB10 2409 .LM153: 2410 0824 922F mov r25,r18 2411 /* #APP */ 2412 ; 83 "/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h" 1 2413 0826 9A95 1: dec r25 2414 0828 01F4 brne 1b 2415 ; 0 "" 2 2416 /* #NOAPP */ 2417 .LBE789: 2418 .LBE790: 2419 .LBE791: 2420 .LBE795: 2421 .LBB796: 2422 .LBB797: 2423 .stabs "display.c",132,0,0,.Ltext23 2424 .Ltext23: 2425 .stabn 68,0,29,.LM154-.LFBB10 2426 .LM154: 2427 082a 5F98 cbi 43-32,7 2428 .LBE797: 2429 .LBE796: 2430 .LBB798: 2431 .LBB799: 2432 .LBB800: 2433 .LBB801: 2434 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h",132,0,0,.Ltext24 2435 .Ltext24: 2436 .stabn 68,0,83,.LM155-.LFBB10 2437 .LM155: 2438 /* #APP */ 2439 ; 83 "/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h" 1 2440 082c 2A95 1: dec r18 2441 082e 01F4 brne 1b 2442 ; 0 "" 2 2443 /* #NOAPP */ 2444 .LBE801: 2445 .LBE800: 2446 .LBE799: 2447 .LBE798: 2448 .LBB802: 2449 .LBB803: 2450 .LBB804: 2451 .LBB805: 2452 .stabs "display.c",132,0,0,.Ltext25 2453 .Ltext25: 2454 .stabn 68,0,25,.LM156-.LFBB10 2455 .LM156: 2456 0830 95B1 in r25,37-32 2457 0832 907F andi r25,lo8(-16) 2458 0834 95B9 out 37-32,r25 2459 .LBE805: 2460 .LBE804: 2461 .stabn 68,0,27,.LM157-.LFBB10 2462 .LM157: 2463 0836 94B1 in r25,36-32 GAS LISTING /tmp/ccEMtt4X.s page 56 2464 0838 9F60 ori r25,lo8(15) 2465 083a 94B9 out 36-32,r25 2466 /* epilogue start */ 2467 .LBE803: 2468 .LBE802: 85:display.c **** } 86:display.c **** 87:display.c **** CLR_E(); 88:display.c **** _delay_us(1); 89:display.c **** } 90:display.c **** 91:display.c **** SET_WRITE(); 92:display.c **** _delay_us(1); 93:display.c **** SET_DATA_OUTPUT(); 94:display.c **** 95:display.c **** return res; 96:display.c **** } 2469 .stabn 68,0,96,.LM158-.LFBB10 2470 .LM158: 2471 083c 0895 ret 2472 .size display_read.4120, .-display_read.4120 2473 .stabs "i:r(30,2)",64,0,70,24 2474 .stabn 192,0,0,.LFBB10-.LFBB10 2475 .stabn 224,0,0,.Lscope10-.LFBB10 2476 .Lscope10: 2477 .stabs "",36,0,0,.Lscope10-.LFBB10 2478 .stabd 78,0,0 2479 .stabs "wait_for_free.4122:f(0,15)",36,0,35,wait_for_free.4122 2480 .type wait_for_free.4122, @function 2481 wait_for_free.4122: 2482 .stabd 46,0,0 2483 .stabn 68,0,35,.LM159-.LFBB11 2484 .LM159: 2485 .LFBB11: 2486 /* prologue: function */ 2487 /* frame size = 0 */ 2488 .LBB806: 2489 .LBB807: 2490 .stabn 68,0,22,.LM160-.LFBB11 2491 .LM160: 2492 083e 5E98 cbi 43-32,6 2493 .L73: 2494 .LBE807: 2495 .LBE806: 2496 .stabn 68,0,37,.LM161-.LFBB11 2497 .LM161: 2498 0840 0E94 0000 call display_read.4120 2499 0844 87FD sbrc r24,7 2500 0846 00C0 rjmp .L73 2501 .stabn 68,0,38,.LM162-.LFBB11 2502 .LM162: 2503 0848 0E94 0000 call display_read.4120 2504 /* epilogue start */ 2505 .stabn 68,0,39,.LM163-.LFBB11 2506 .LM163: 2507 084c 0895 ret 2508 .size wait_for_free.4122, .-wait_for_free.4122 GAS LISTING /tmp/ccEMtt4X.s page 57 2509 .Lscope11: 2510 .stabs "",36,0,0,.Lscope11-.LFBB11 2511 .stabd 78,0,0 2512 .stabs "display_write_rs_h.4149:f(0,15)",36,0,62,display_write_rs_h.4149 2513 .stabs "b:P(30,2)",64,0,61,17 2514 .type display_write_rs_h.4149, @function 2515 display_write_rs_h.4149: 2516 .stabd 46,0,0 2517 .stabn 68,0,62,.LM164-.LFBB12 2518 .LM164: 2519 .LFBB12: 2520 084e 1F93 push r17 2521 /* prologue: function */ 2522 /* frame size = 0 */ 2523 0850 182F mov r17,r24 2524 .stabn 68,0,63,.LM165-.LFBB12 2525 .LM165: 2526 0852 0E94 0000 call wait_for_free.4122 2527 .LBB808: 2528 .LBB809: 2529 .stabn 68,0,23,.LM166-.LFBB12 2530 .LM166: 2531 0856 5E9A sbi 43-32,6 2532 .LBE809: 2533 .LBE808: 2534 .LBB810: 2535 .LBB811: 2536 .LBB812: 2537 .LBB813: 2538 .stabn 68,0,29,.LM167-.LFBB12 2539 .LM167: 2540 0858 5F98 cbi 43-32,7 2541 .LBE813: 2542 .LBE812: 2543 .LBB814: 2544 .LBB815: 2545 .stabn 68,0,25,.LM168-.LFBB12 2546 .LM168: 2547 085a 85B1 in r24,37-32 2548 085c 807F andi r24,lo8(-16) 2549 085e 85B9 out 37-32,r24 2550 .LBE815: 2551 .LBE814: 2552 .stabn 68,0,46,.LM169-.LFBB12 2553 .LM169: 2554 0860 95B1 in r25,37-32 2555 0862 812F mov r24,r17 2556 0864 8295 swap r24 2557 0866 8F70 andi r24,lo8(15) 2558 0868 892B or r24,r25 2559 086a 85B9 out 37-32,r24 2560 .LBB816: 2561 .LBB817: 2562 .LBB818: 2563 .LBB819: 2564 .stabn 68,0,18,.LM170-.LFBB12 2565 .LM170: GAS LISTING /tmp/ccEMtt4X.s page 58 2566 086c 2C9A sbi 37-32,4 2567 .LBE819: 2568 .LBE818: 2569 .LBB820: 2570 .LBB821: 2571 .LBB822: 2572 .LBB823: 2573 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h",132,0,0,.Ltext26 2574 .Ltext26: 2575 .stabn 68,0,83,.LM171-.LFBB12 2576 .LM171: 2577 086e 96E0 ldi r25,lo8(6) 2578 0870 892F mov r24,r25 2579 /* #APP */ 2580 ; 83 "/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h" 1 2581 0872 8A95 1: dec r24 2582 0874 01F4 brne 1b 2583 ; 0 "" 2 2584 /* #NOAPP */ 2585 .LBE823: 2586 .LBE822: 2587 .LBE821: 2588 .LBE820: 2589 .LBB824: 2590 .LBB825: 2591 .stabs "display.c",132,0,0,.Ltext27 2592 .Ltext27: 2593 .stabn 68,0,19,.LM172-.LFBB12 2594 .LM172: 2595 0876 2C98 cbi 37-32,4 2596 .LBE825: 2597 .LBE824: 2598 .LBB826: 2599 .LBB827: 2600 .LBB828: 2601 .LBB829: 2602 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h",132,0,0,.Ltext28 2603 .Ltext28: 2604 .stabn 68,0,83,.LM173-.LFBB12 2605 .LM173: 2606 0878 892F mov r24,r25 2607 /* #APP */ 2608 ; 83 "/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h" 1 2609 087a 8A95 1: dec r24 2610 087c 01F4 brne 1b 2611 ; 0 "" 2 2612 /* #NOAPP */ 2613 .LBE829: 2614 .LBE828: 2615 .LBE827: 2616 .LBE826: 2617 .LBE817: 2618 .LBE816: 2619 .LBB830: 2620 .LBB831: 2621 .stabs "display.c",132,0,0,.Ltext29 2622 .Ltext29: GAS LISTING /tmp/ccEMtt4X.s page 59 2623 .stabn 68,0,25,.LM174-.LFBB12 2624 .LM174: 2625 087e 85B1 in r24,37-32 2626 0880 807F andi r24,lo8(-16) 2627 0882 85B9 out 37-32,r24 2628 .LBE831: 2629 .LBE830: 2630 .stabn 68,0,50,.LM175-.LFBB12 2631 .LM175: 2632 0884 85B1 in r24,37-32 2633 0886 1F70 andi r17,lo8(15) 2634 0888 812B or r24,r17 2635 088a 85B9 out 37-32,r24 2636 .LBB832: 2637 .LBB833: 2638 .LBB834: 2639 .LBB835: 2640 .stabn 68,0,18,.LM176-.LFBB12 2641 .LM176: 2642 088c 2C9A sbi 37-32,4 2643 .LBE835: 2644 .LBE834: 2645 .LBB836: 2646 .LBB837: 2647 .LBB838: 2648 .LBB839: 2649 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h",132,0,0,.Ltext30 2650 .Ltext30: 2651 .stabn 68,0,83,.LM177-.LFBB12 2652 .LM177: 2653 088e 892F mov r24,r25 2654 /* #APP */ 2655 ; 83 "/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h" 1 2656 0890 8A95 1: dec r24 2657 0892 01F4 brne 1b 2658 ; 0 "" 2 2659 /* #NOAPP */ 2660 .LBE839: 2661 .LBE838: 2662 .LBE837: 2663 .LBE836: 2664 .LBB840: 2665 .LBB841: 2666 .stabs "display.c",132,0,0,.Ltext31 2667 .Ltext31: 2668 .stabn 68,0,19,.LM178-.LFBB12 2669 .LM178: 2670 0894 2C98 cbi 37-32,4 2671 .LBE841: 2672 .LBE840: 2673 .LBB842: 2674 .LBB843: 2675 .LBB844: 2676 .LBB845: 2677 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h",132,0,0,.Ltext32 2678 .Ltext32: 2679 .stabn 68,0,83,.LM179-.LFBB12 GAS LISTING /tmp/ccEMtt4X.s page 60 2680 .LM179: 2681 /* #APP */ 2682 ; 83 "/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h" 1 2683 0896 9A95 1: dec r25 2684 0898 01F4 brne 1b 2685 ; 0 "" 2 2686 /* epilogue start */ 2687 /* #NOAPP */ 2688 .LBE845: 2689 .LBE844: 2690 .LBE843: 2691 .LBE842: 2692 .LBE833: 2693 .LBE832: 2694 .LBE811: 2695 .LBE810: 2696 .stabs "display.c",132,0,0,.Ltext33 2697 .Ltext33: 2698 .stabn 68,0,66,.LM180-.LFBB12 2699 .LM180: 2700 089a 1F91 pop r17 2701 089c 0895 ret 2702 .size display_write_rs_h.4149, .-display_write_rs_h.4149 2703 .Lscope12: 2704 .stabs "",36,0,0,.Lscope12-.LFBB12 2705 .stabd 78,0,0 2706 .stabs "display_write_rs_l.4146:f(0,15)",36,0,55,display_write_rs_l.4146 2707 .stabs "b:P(30,2)",64,0,54,17 2708 .type display_write_rs_l.4146, @function 2709 display_write_rs_l.4146: 2710 .stabd 46,0,0 2711 .stabn 68,0,55,.LM181-.LFBB13 2712 .LM181: 2713 .LFBB13: 2714 089e 1F93 push r17 2715 /* prologue: function */ 2716 /* frame size = 0 */ 2717 08a0 182F mov r17,r24 2718 .stabn 68,0,56,.LM182-.LFBB13 2719 .LM182: 2720 08a2 0E94 0000 call wait_for_free.4122 2721 .LBB846: 2722 .LBB847: 2723 .stabn 68,0,22,.LM183-.LFBB13 2724 .LM183: 2725 08a6 5E98 cbi 43-32,6 2726 .LBE847: 2727 .LBE846: 2728 .LBB848: 2729 .LBB849: 2730 .LBB850: 2731 .LBB851: 2732 .stabn 68,0,29,.LM184-.LFBB13 2733 .LM184: 2734 08a8 5F98 cbi 43-32,7 2735 .LBE851: 2736 .LBE850: GAS LISTING /tmp/ccEMtt4X.s page 61 2737 .LBB852: 2738 .LBB853: 2739 .stabn 68,0,25,.LM185-.LFBB13 2740 .LM185: 2741 08aa 85B1 in r24,37-32 2742 08ac 807F andi r24,lo8(-16) 2743 08ae 85B9 out 37-32,r24 2744 .LBE853: 2745 .LBE852: 2746 .stabn 68,0,46,.LM186-.LFBB13 2747 .LM186: 2748 08b0 95B1 in r25,37-32 2749 08b2 812F mov r24,r17 2750 08b4 8295 swap r24 2751 08b6 8F70 andi r24,lo8(15) 2752 08b8 892B or r24,r25 2753 08ba 85B9 out 37-32,r24 2754 .LBB854: 2755 .LBB855: 2756 .LBB856: 2757 .LBB857: 2758 .stabn 68,0,18,.LM187-.LFBB13 2759 .LM187: 2760 08bc 2C9A sbi 37-32,4 2761 .LBE857: 2762 .LBE856: 2763 .LBB858: 2764 .LBB859: 2765 .LBB860: 2766 .LBB861: 2767 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h",132,0,0,.Ltext34 2768 .Ltext34: 2769 .stabn 68,0,83,.LM188-.LFBB13 2770 .LM188: 2771 08be 96E0 ldi r25,lo8(6) 2772 08c0 892F mov r24,r25 2773 /* #APP */ 2774 ; 83 "/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h" 1 2775 08c2 8A95 1: dec r24 2776 08c4 01F4 brne 1b 2777 ; 0 "" 2 2778 /* #NOAPP */ 2779 .LBE861: 2780 .LBE860: 2781 .LBE859: 2782 .LBE858: 2783 .LBB862: 2784 .LBB863: 2785 .stabs "display.c",132,0,0,.Ltext35 2786 .Ltext35: 2787 .stabn 68,0,19,.LM189-.LFBB13 2788 .LM189: 2789 08c6 2C98 cbi 37-32,4 2790 .LBE863: 2791 .LBE862: 2792 .LBB864: 2793 .LBB865: GAS LISTING /tmp/ccEMtt4X.s page 62 2794 .LBB866: 2795 .LBB867: 2796 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h",132,0,0,.Ltext36 2797 .Ltext36: 2798 .stabn 68,0,83,.LM190-.LFBB13 2799 .LM190: 2800 08c8 892F mov r24,r25 2801 /* #APP */ 2802 ; 83 "/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h" 1 2803 08ca 8A95 1: dec r24 2804 08cc 01F4 brne 1b 2805 ; 0 "" 2 2806 /* #NOAPP */ 2807 .LBE867: 2808 .LBE866: 2809 .LBE865: 2810 .LBE864: 2811 .LBE855: 2812 .LBE854: 2813 .LBB868: 2814 .LBB869: 2815 .stabs "display.c",132,0,0,.Ltext37 2816 .Ltext37: 2817 .stabn 68,0,25,.LM191-.LFBB13 2818 .LM191: 2819 08ce 85B1 in r24,37-32 2820 08d0 807F andi r24,lo8(-16) 2821 08d2 85B9 out 37-32,r24 2822 .LBE869: 2823 .LBE868: 2824 .stabn 68,0,50,.LM192-.LFBB13 2825 .LM192: 2826 08d4 85B1 in r24,37-32 2827 08d6 1F70 andi r17,lo8(15) 2828 08d8 812B or r24,r17 2829 08da 85B9 out 37-32,r24 2830 .LBB870: 2831 .LBB871: 2832 .LBB872: 2833 .LBB873: 2834 .stabn 68,0,18,.LM193-.LFBB13 2835 .LM193: 2836 08dc 2C9A sbi 37-32,4 2837 .LBE873: 2838 .LBE872: 2839 .LBB874: 2840 .LBB875: 2841 .LBB876: 2842 .LBB877: 2843 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h",132,0,0,.Ltext38 2844 .Ltext38: 2845 .stabn 68,0,83,.LM194-.LFBB13 2846 .LM194: 2847 08de 892F mov r24,r25 2848 /* #APP */ 2849 ; 83 "/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h" 1 2850 08e0 8A95 1: dec r24 GAS LISTING /tmp/ccEMtt4X.s page 63 2851 08e2 01F4 brne 1b 2852 ; 0 "" 2 2853 /* #NOAPP */ 2854 .LBE877: 2855 .LBE876: 2856 .LBE875: 2857 .LBE874: 2858 .LBB878: 2859 .LBB879: 2860 .stabs "display.c",132,0,0,.Ltext39 2861 .Ltext39: 2862 .stabn 68,0,19,.LM195-.LFBB13 2863 .LM195: 2864 08e4 2C98 cbi 37-32,4 2865 .LBE879: 2866 .LBE878: 2867 .LBB880: 2868 .LBB881: 2869 .LBB882: 2870 .LBB883: 2871 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h",132,0,0,.Ltext40 2872 .Ltext40: 2873 .stabn 68,0,83,.LM196-.LFBB13 2874 .LM196: 2875 /* #APP */ 2876 ; 83 "/usr/lib/gcc/avr/4.3.2/../../../avr/include/util/delay_basic.h" 1 2877 08e6 9A95 1: dec r25 2878 08e8 01F4 brne 1b 2879 ; 0 "" 2 2880 /* epilogue start */ 2881 /* #NOAPP */ 2882 .LBE883: 2883 .LBE882: 2884 .LBE881: 2885 .LBE880: 2886 .LBE871: 2887 .LBE870: 2888 .LBE849: 2889 .LBE848: 2890 .stabs "display.c",132,0,0,.Ltext41 2891 .Ltext41: 2892 .stabn 68,0,59,.LM197-.LFBB13 2893 .LM197: 2894 08ea 1F91 pop r17 2895 08ec 0895 ret 2896 .size display_write_rs_l.4146, .-display_write_rs_l.4146 2897 .Lscope13: 2898 .stabs "",36,0,0,.Lscope13-.LFBB13 2899 .stabd 78,0,0 2900 .stabs "serial_tx.1877:f(0,15)",36,0,54,serial_tx.1877 2901 .stabs "l:P(97,2)",64,0,53,18 2902 .stabs "data:P(0,17)=*(0,18)=k(97,2)",64,0,53,26 2903 .type serial_tx.1877, @function 2904 serial_tx.1877: 2905 .stabd 46,0,0 2906 .stabs "../lib/serial_x8.c",132,0,0,.Ltext42 2907 .Ltext42: GAS LISTING /tmp/ccEMtt4X.s page 64 2908 .stabn 68,0,54,.LM198-.LFBB14 2909 .LM198: 2910 .LFBB14: 2911 /* prologue: function */ 2912 /* frame size = 0 */ 2913 08ee 282F mov r18,r24 2914 08f0 DB01 movw r26,r22 2915 .L83: 2916 .LBB884: 2917 .LBB885: 2918 .stabs "../lib/devicelock.c",132,0,0,.Ltext43 2919 .Ltext43: 2920 .stabn 68,0,18,.LM199-.LFBB14 2921 .LM199: 2922 /* #APP */ 2923 ; 18 "../lib/devicelock.c" 1 2924 08f2 F894 cli 2925 ; 0 "" 2 2926 .stabn 68,0,19,.LM200-.LFBB14 2927 .LM200: 2928 /* #NOAPP */ 2929 08f4 8091 0000 lds r24,device_locks.1810 2930 08f8 80FF sbrs r24,0 2931 08fa 00C0 rjmp .L81 2932 08fc 80E0 ldi r24,lo8(0) 2933 08fe 00C0 rjmp .L82 2934 .L81: 2935 .stabn 68,0,20,.LM201-.LFBB14 2936 .LM201: 2937 0900 8091 0000 lds r24,device_locks.1810 2938 0904 8160 ori r24,lo8(1) 2939 0906 8093 0000 sts device_locks.1810,r24 2940 090a 81E0 ldi r24,lo8(1) 2941 .L82: 2942 .stabn 68,0,23,.LM202-.LFBB14 2943 .LM202: 2944 /* #APP */ 2945 ; 23 "../lib/devicelock.c" 1 2946 090c 7894 sei 2947 ; 0 "" 2 2948 .stabn 68,0,24,.LM203-.LFBB14 2949 .LM203: 2950 /* #NOAPP */ 2951 090e 8823 tst r24 2952 0910 01F0 breq .L83 2953 0912 00C0 rjmp .L93 2954 .L89: 2955 .LBE885: 2956 .LBE884: 2957 .stabs "../lib/serial_x8.c",132,0,0,.Ltext44 2958 .Ltext44: 2959 .stabn 68,0,58,.LM204-.LFBB14 2960 .LM204: 2961 /* #APP */ 2962 ; 58 "../lib/serial_x8.c" 1 2963 0914 F894 cli 2964 ; 0 "" 2 GAS LISTING /tmp/ccEMtt4X.s page 65 2965 /* #NOAPP */ 2966 0916 00C0 rjmp .L85 2967 .L87: 2968 .stabn 68,0,60,.LM205-.LFBB14 2969 .LM205: 2970 0918 8091 0000 lds r24,serial_tx_len.7612 2971 091c E82F mov r30,r24 2972 091e F0E0 ldi r31,lo8(0) 2973 0920 9D91 ld r25,X+ 2974 0922 E050 subi r30,lo8(-(serial_tx_fifo.7611)) 2975 0924 F040 sbci r31,hi8(-(serial_tx_fifo.7611)) 2976 0926 9083 st Z,r25 2977 0928 8F5F subi r24,lo8(-(1)) 2978 092a 8093 0000 sts serial_tx_len.7612,r24 2979 .stabn 68,0,61,.LM206-.LFBB14 2980 .LM206: 2981 092e 2150 subi r18,lo8(-(-1)) 2982 .L85: 2983 .stabn 68,0,59,.LM207-.LFBB14 2984 .LM207: 2985 0930 8091 0000 lds r24,serial_tx_len.7612 2986 0934 8032 cpi r24,lo8(32) 2987 0936 00F4 brsh .L86 2988 0938 2223 tst r18 2989 093a 01F4 brne .L87 2990 .L86: 2991 .stabn 68,0,63,.LM208-.LFBB14 2992 .LM208: 2993 093c 8091 C100 lds r24,193 2994 0940 8062 ori r24,lo8(32) 2995 0942 8093 C100 sts 193,r24 2996 .stabn 68,0,64,.LM209-.LFBB14 2997 .LM209: 2998 /* #APP */ 2999 ; 64 "../lib/serial_x8.c" 1 3000 0946 7894 sei 3001 ; 0 "" 2 3002 /* #NOAPP */ 3003 .L88: 3004 .stabn 68,0,65,.LM210-.LFBB14 3005 .LM210: 3006 0948 8091 0000 lds r24,serial_tx_len.7612 3007 094c 8032 cpi r24,lo8(32) 3008 094e 01F0 breq .L88 3009 .L93: 3010 .stabn 68,0,57,.LM211-.LFBB14 3011 .LM211: 3012 0950 2223 tst r18 3013 0952 01F4 brne .L89 3014 .LBB886: 3015 .LBB887: 3016 .stabs "../lib/devicelock.c",132,0,0,.Ltext45 3017 .Ltext45: 3018 .stabn 68,0,29,.LM212-.LFBB14 3019 .LM212: 3020 /* #APP */ 3021 ; 29 "../lib/devicelock.c" 1 GAS LISTING /tmp/ccEMtt4X.s page 66 3022 0954 F894 cli 3023 ; 0 "" 2 3024 .stabn 68,0,30,.LM213-.LFBB14 3025 .LM213: 3026 /* #NOAPP */ 3027 0956 8091 0000 lds r24,device_locks.1810 3028 095a 8E7F andi r24,lo8(-2) 3029 095c 8093 0000 sts device_locks.1810,r24 3030 .stabn 68,0,31,.LM214-.LFBB14 3031 .LM214: 3032 /* #APP */ 3033 ; 31 "../lib/devicelock.c" 1 3034 0960 7894 sei 3035 ; 0 "" 2 3036 /* epilogue start */ 3037 /* #NOAPP */ 3038 .LBE887: 3039 .LBE886: 3040 .stabs "../lib/serial_x8.c",132,0,0,.Ltext46 3041 .Ltext46: 3042 .stabn 68,0,69,.LM215-.LFBB14 3043 .LM215: 3044 0962 0895 ret 3045 .size serial_tx.1877, .-serial_tx.1877 3046 .stabs "acquired:r(54,2)",64,0,16,24 3047 .stabn 192,0,0,.LBB885-.LFBB14 3048 .stabn 224,0,0,.LBE885-.LFBB14 3049 .Lscope14: 3050 .stabs "",36,0,0,.Lscope14-.LFBB14 3051 .stabd 78,0,0 3052 .data 3053 .LC0: 3054 0000 2400 .string "$" 3055 .LC1: 3056 0002 4B41 00 .string "KA" 3057 .LC2: 3058 0005 2A00 .string "*" 3059 .LC3: 3060 0007 0D0A 00 .string "\r\n" 3061 .text 3062 .stabs "nmea_tx_str.1915:f(0,15)",36,0,8,nmea_tx_str.1915 3063 .type nmea_tx_str.1915, @function 3064 nmea_tx_str.1915: 3065 .stabd 46,0,0 3066 .stabs "../lib/nmea.c",132,0,0,.Ltext47 3067 .Ltext47: 1:../lib/nmea.c **** #include "nmea.h" 2:../lib/nmea.c **** 3:../lib/nmea.c **** #include 4:../lib/nmea.c **** #include "serial.h" 5:../lib/nmea.c **** #include "byte_to_hex.h" 6:../lib/nmea.c **** 7:../lib/nmea.c **** void nmea_tx_str(const uint8_t *data) 8:../lib/nmea.c **** { 3068 .stabn 68,0,8,.LM216-.LFBB15 3069 .LM216: 3070 .LFBB15: GAS LISTING /tmp/ccEMtt4X.s page 67 3071 0964 DF92 push r13 3072 0966 EF92 push r14 3073 0968 FF92 push r15 3074 096a 0F93 push r16 3075 096c 1F93 push r17 3076 096e DF93 push r29 3077 0970 CF93 push r28 3078 0972 00D0 rcall . 3079 0974 CDB7 in r28,__SP_L__ 3080 0976 DEB7 in r29,__SP_H__ 3081 /* prologue: function */ 3082 /* frame size = 2 */ 3083 0978 F82E mov r15,r24 3084 097a E92E mov r14,r25 9:../lib/nmea.c **** uint8_t cks = 0, i; 10:../lib/nmea.c **** uint8_t hex[2]; 11:../lib/nmea.c **** uint8_t l = strlen((char *)data); 3085 .stabn 68,0,11,.LM217-.LFBB15 3086 .LM217: 3087 097c A82F mov r26,r24 3088 097e B92F mov r27,r25 3089 0980 FD01 movw r30,r26 3090 0982 0190 ld __tmp_reg__,Z+ 3091 0984 0020 tst __tmp_reg__ 3092 0986 01F4 brne .-6 3093 0988 3197 sbiw r30,1 3094 098a DE2E mov r13,r30 3095 098c D81A sub r13,r24 3096 098e 282F mov r18,r24 3097 0990 392F mov r19,r25 3098 0992 C901 movw r24,r18 3099 0994 FC01 movw r30,r24 3100 0996 2AE0 ldi r18,lo8(10) 3101 0998 90E0 ldi r25,lo8(0) 3102 099a 00C0 rjmp .L95 3103 .L96: 12:../lib/nmea.c **** 13:../lib/nmea.c **** cks ^= NMEA_TX_HEADER[0]; 14:../lib/nmea.c **** cks ^= NMEA_TX_HEADER[1]; 15:../lib/nmea.c **** for(i=0; i> 8, out); 30:../lib/byte_to_hex.c **** byte_to_hex(word & 0xff, out+2); 31:../lib/byte_to_hex.c **** } 32:../lib/byte_to_hex.c **** 33:../lib/byte_to_hex.c **** uint8_t hex_to_nibble(uint8_t b) 34:../lib/byte_to_hex.c **** { 35:../lib/byte_to_hex.c **** if(b < 0x3a) return b - 0x30; 36:../lib/byte_to_hex.c **** else if(b < 0x47) return b - (0x41 - 0x0a); 37:../lib/byte_to_hex.c **** else if(b < 0x67) return b - (0x61 - 0x0a); 38:../lib/byte_to_hex.c **** else return 0; 39:../lib/byte_to_hex.c **** } 40:../lib/byte_to_hex.c **** 41:../lib/byte_to_hex.c **** uint8_t hex_to_byte(uint8_t in[2]) 42:../lib/byte_to_hex.c **** { 3496 .stabn 68,0,42,.LM269-.LFBB17 3497 .LM269: 3498 .LFBB17: 3499 0ba8 0F93 push r16 3500 0baa 1F93 push r17 3501 0bac CF93 push r28 3502 0bae DF93 push r29 GAS LISTING /tmp/ccEMtt4X.s page 76 3503 /* prologue: function */ 3504 /* frame size = 0 */ 3505 0bb0 EC01 movw r28,r24 43:../lib/byte_to_hex.c **** if(!isxdigit(in[0]) || !isxdigit(in[1])) return 0; 3506 .stabn 68,0,43,.LM270-.LFBB17 3507 .LM270: 3508 0bb2 0881 ld r16,Y 3509 0bb4 802F mov r24,r16 3510 0bb6 90E0 ldi r25,lo8(0) 3511 0bb8 0E94 0000 call isxdigit 3512 0bbc 892B or r24,r25 3513 0bbe 01F0 breq .L106 3514 0bc0 1981 ldd r17,Y+1 3515 0bc2 812F mov r24,r17 3516 0bc4 90E0 ldi r25,lo8(0) 3517 0bc6 0E94 0000 call isxdigit 3518 0bca 892B or r24,r25 3519 0bcc 01F0 breq .L106 3520 .LBB916: 3521 .LBB917: 3522 .stabn 68,0,35,.LM271-.LFBB17 3523 .LM271: 3524 0bce 1A33 cpi r17,lo8(58) 3525 0bd0 00F4 brsh .L107 3526 0bd2 912F mov r25,r17 3527 0bd4 9053 subi r25,lo8(-(-48)) 3528 0bd6 00C0 rjmp .L108 3529 .L107: 3530 .stabn 68,0,36,.LM272-.LFBB17 3531 .LM272: 3532 0bd8 1734 cpi r17,lo8(71) 3533 0bda 00F4 brsh .L109 3534 0bdc 912F mov r25,r17 3535 0bde 9753 subi r25,lo8(-(-55)) 3536 0be0 00C0 rjmp .L108 3537 .L109: 3538 .stabn 68,0,37,.LM273-.LFBB17 3539 .LM273: 3540 0be2 1736 cpi r17,lo8(103) 3541 0be4 00F0 brlo .L110 3542 0be6 90E0 ldi r25,lo8(0) 3543 0be8 00C0 rjmp .L108 3544 .L110: 3545 0bea 912F mov r25,r17 3546 0bec 9755 subi r25,lo8(-(-87)) 3547 .L108: 3548 .LBE917: 3549 .LBE916: 3550 .LBB918: 3551 .LBB919: 3552 .stabn 68,0,35,.LM274-.LFBB17 3553 .LM274: 3554 0bee 0A33 cpi r16,lo8(58) 3555 0bf0 00F4 brsh .L111 3556 0bf2 802F mov r24,r16 3557 0bf4 8053 subi r24,lo8(-(-48)) 3558 0bf6 00C0 rjmp .L112 GAS LISTING /tmp/ccEMtt4X.s page 77 3559 .L111: 3560 .stabn 68,0,36,.LM275-.LFBB17 3561 .LM275: 3562 0bf8 0734 cpi r16,lo8(71) 3563 0bfa 00F4 brsh .L113 3564 0bfc 802F mov r24,r16 3565 0bfe 8753 subi r24,lo8(-(-55)) 3566 0c00 00C0 rjmp .L112 3567 .L113: 3568 .stabn 68,0,37,.LM276-.LFBB17 3569 .LM276: 3570 0c02 0736 cpi r16,lo8(103) 3571 0c04 00F0 brlo .L114 3572 0c06 80E0 ldi r24,lo8(0) 3573 0c08 00C0 rjmp .L112 3574 .L114: 3575 0c0a 802F mov r24,r16 3576 0c0c 8755 subi r24,lo8(-(-87)) 3577 .L112: 3578 .LBE919: 3579 .LBE918: 44:../lib/byte_to_hex.c **** return hex_to_nibble(in[1]) | (hex_to_nibble(in[0]) << 4); 3580 .stabn 68,0,44,.LM277-.LFBB17 3581 .LM277: 3582 0c0e 8295 swap r24 3583 0c10 807F andi r24,lo8(-16) 3584 0c12 892B or r24,r25 3585 0c14 00C0 rjmp .L115 3586 .L106: 3587 0c16 80E0 ldi r24,lo8(0) 3588 .L115: 3589 /* epilogue start */ 45:../lib/byte_to_hex.c **** } 3590 .stabn 68,0,45,.LM278-.LFBB17 3591 .LM278: 3592 0c18 DF91 pop r29 3593 0c1a CF91 pop r28 3594 0c1c 1F91 pop r17 3595 0c1e 0F91 pop r16 3596 0c20 0895 ret 3597 .size hex_to_byte.1910, .-hex_to_byte.1910 3598 .Lscope17: 3599 .stabs "",36,0,0,.Lscope17-.LFBB17 3600 .stabd 78,0,0 3601 .data 3602 .LC6: 3603 0043 4E46 4F2C .string "NFO,20091217,0.1,anrp@anrp.net" 3603 3230 3039 3603 3132 3137 3603 2C30 2E31 3603 2C61 6E72 3604 .LC7: 3605 0062 4B61 7961 .string "Kayak control bd" 3605 6B20 636F 3605 6E74 726F 3605 6C20 6264 3605 00 GAS LISTING /tmp/ccEMtt4X.s page 78 3606 .LC8: 3607 0073 2863 2961 .string "(c)anrp@anrp.net" 3607 6E72 7040 3607 616E 7270 3607 2E6E 6574 3607 00 3608 .LC9: 3609 0084 4964 6C65 .string "Idle " 3609 2020 2020 3609 2020 2020 3609 2020 2020 3609 00 3610 .LC10: 3611 0095 4964 6C65 .string "Idle, WD disabld" 3611 2C20 5744 3611 2064 6973 3611 6162 6C64 3611 00 3612 .LC11: 3613 00a6 5072 6573 .string "Press button on " 3613 7320 6275 3613 7474 6F6E 3613 206F 6E20 3613 00 3614 .LC12: 3615 00b7 5072 6573 .string "Press button off" 3615 7320 6275 3615 7474 6F6E 3615 206F 6666 3615 00 3616 .LC13: 3617 00c8 5761 7463 .string "Watchdog waiting" 3617 6864 6F67 3617 2077 6169 3617 7469 6E67 3617 00 3618 .LC14: 3619 00d9 5761 7463 .string "Watching... " 3619 6869 6E67 3619 2E2E 2E20 3619 2020 2020 3619 00 3620 .LC15: 3621 00ea 5761 7463 .string "Watchdg late hit" 3621 6864 6720 3621 6C61 7465 3621 2068 6974 3621 00 3622 .LC16: 3623 00fb 5353 522C .string "SSR,%04x,%04x,%04x" 3623 2530 3478 3623 2C25 3034 3623 782C 2530 3623 3478 00 3624 .LC17: 3625 010e 5344 522C .string "SDR,%02x,%02x" 3625 2530 3278 GAS LISTING /tmp/ccEMtt4X.s page 79 3625 2C25 3032 3625 7800 3626 .LC18: 3627 011c 5356 522C .string "SVR,%li,%05u,%i,%i,%i,%i,%i" 3627 256C 692C 3627 2530 3575 3627 2C25 692C 3627 2569 2C25 3628 .LC19: 3629 0138 2532 692E .string "%2i.%03iV %c%03i.%02iA" 3629 2530 3369 3629 5620 2563 3629 2530 3369 3629 2E25 3032 3630 .LC20: 3631 014f 2D2D 2D2E .string "---.--C " 3631 2D2D 4320 3631 2000 3632 .LC21: 3633 0159 2563 2532 .string "%c%2i.%02iC " 3633 692E 2530 3633 3269 4320 3633 2000 3634 .LC22: 3635 0167 2D2D 2D2E .string "---.--C" 3635 2D2D 4300 3636 .LC23: 3637 016f 2563 2532 .string "%c%2i.%02iC" 3637 692E 2530 3637 3269 4300 3638 .LC24: 3639 017b 2575 2025 .string "%u %02x%02x " 3639 3032 7825 3639 3032 7820 3639 00 3640 .LC25: 3641 0188 2563 2530 .string "%c%03i " 3641 3369 2000 3642 .LC26: 3643 0190 2D2D 2D2D .string "---- " 3643 2000 3644 .LC27: 3645 0196 2563 2530 .string "%c%03i" 3645 3369 00 3646 .LC28: 3647 019d 2D2D 2D2D .string "----" 3647 00 3648 .LC29: 3649 01a2 4261 7474 .string "Battery critical" 3649 6572 7920 3649 6372 6974 3649 6963 616C 3649 00 3650 .LC30: 3651 01b3 5468 7275 .string "Thrust limited " 3651 7374 206C 3651 696D 6974 GAS LISTING /tmp/ccEMtt4X.s page 80 3651 6564 2020 3651 00 3652 .LC32: 3653 01c4 4552 522C .string "ERR,Invalid" 3653 496E 7661 3653 6C69 6400 3654 .LC33: 3655 01d0 4552 522C .string "ERR,SERIN,OVERFLOW" 3655 5345 5249 3655 4E2C 4F56 3655 4552 464C 3655 4F57 00 3656 .LC31: 3657 01e3 4552 522C .string "ERR,NMEA,X" 3657 4E4D 4541 3657 2C58 00 3658 01ee 00 .skip 1,0 3659 .text 3660 .stabs "main:F(0,1)",36,0,44,main 3661 .global main 3662 .type main, @function 3663 main: 3664 .stabd 46,0,0 3665 .stabs "main.c",132,0,0,.Ltext54 3666 .Ltext54: 1:main.c **** #include 2:main.c **** #include 3:main.c **** #include 4:main.c **** #include 5:main.c **** #include 6:main.c **** #include 7:main.c **** #include 8:main.c **** 9:main.c **** #include 10:main.c **** #include 11:main.c **** #include 12:main.c **** 13:main.c **** #include "devicelock.h" 14:main.c **** #include "eeprom.h" 15:main.c **** #include "serial.h" 16:main.c **** #include "byte_to_hex.h" 17:main.c **** #include "nmea.h" 18:main.c **** #include "nmea_verify.h" 19:main.c **** #include "sleep.h" 20:main.c **** #include "digit_to_num.h" 21:main.c **** #include "i2c.h" 22:main.c **** #include "eeprom_l.h" 23:main.c **** #include "timers.h" 24:main.c **** #include "display.h" 25:main.c **** #include "adc.h" 26:main.c **** 27:main.c **** #include "statemachine.h" 28:main.c **** 29:main.c **** #include "digit_to_num.h" 30:main.c **** 31:main.c **** uint8_t handle_serial_in_with_cks(uint8_t); 32:main.c **** void update_i2c(void); GAS LISTING /tmp/ccEMtt4X.s page 81 33:main.c **** void transmit_status(void); 34:main.c **** 35:main.c **** uint16_t inservo[3]; 36:main.c **** uint8_t insig; 37:main.c **** uint8_t outsig; 38:main.c **** uint16_t outservo[3]; 39:main.c **** uint16_t serservo[3]; 40:main.c **** int32_t lastserup; 41:main.c **** 42:main.c **** 43:main.c **** int main(void) 44:main.c **** { 3667 .stabn 68,0,44,.LM279-.LFBB18 3668 .LM279: 3669 .LFBB18: 3670 0c22 2F92 push r2 3671 0c24 3F92 push r3 3672 0c26 4F92 push r4 3673 0c28 5F92 push r5 3674 0c2a 6F92 push r6 3675 0c2c 7F92 push r7 3676 0c2e 8F92 push r8 3677 0c30 9F92 push r9 3678 0c32 AF92 push r10 3679 0c34 BF92 push r11 3680 0c36 CF92 push r12 3681 0c38 DF92 push r13 3682 0c3a EF92 push r14 3683 0c3c FF92 push r15 3684 0c3e 0F93 push r16 3685 0c40 1F93 push r17 3686 0c42 DF93 push r29 3687 0c44 CF93 push r28 3688 0c46 CDB7 in r28,__SP_L__ 3689 0c48 DEB7 in r29,__SP_H__ 3690 0c4a C95A subi r28,lo8(-(-169)) 3691 0c4c D040 sbci r29,hi8(-(-169)) 3692 0c4e 0FB6 in __tmp_reg__,__SREG__ 3693 0c50 F894 cli 3694 0c52 DEBF out __SP_H__,r29 3695 0c54 0FBE out __SREG__,__tmp_reg__ 3696 0c56 CDBF out __SP_L__,r28 3697 /* prologue: function */ 3698 /* frame size = 169 */ 45:main.c **** PORTB = 0; 3699 .stabn 68,0,45,.LM280-.LFBB18 3700 .LM280: 3701 0c58 15B8 out 37-32,__zero_reg__ 46:main.c **** PORTC = (1<<1) | (1<<0); // i2c lines 3702 .stabn 68,0,46,.LM281-.LFBB18 3703 .LM281: 3704 0c5a 83E0 ldi r24,lo8(3) 3705 0c5c 88B9 out 40-32,r24 47:main.c **** PORTD = 0; 3706 .stabn 68,0,47,.LM282-.LFBB18 3707 .LM282: 3708 0c5e 1BB8 out 43-32,__zero_reg__ GAS LISTING /tmp/ccEMtt4X.s page 82 48:main.c **** DDRB = (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4); 3709 .stabn 68,0,48,.LM283-.LFBB18 3710 .LM283: 3711 0c60 8FE1 ldi r24,lo8(31) 3712 0c62 84B9 out 36-32,r24 49:main.c **** DDRC = (1<<2) | (1<<3) | (1<<4) | (1<<5); 3713 .stabn 68,0,49,.LM284-.LFBB18 3714 .LM284: 3715 0c64 8CE3 ldi r24,lo8(60) 3716 0c66 87B9 out 39-32,r24 50:main.c **** DDRD = (1<<1) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7); 3717 .stabn 68,0,50,.LM285-.LFBB18 3718 .LM285: 3719 0c68 8AEF ldi r24,lo8(-6) 3720 0c6a 8AB9 out 42-32,r24 51:main.c **** 52:main.c **** PORTC |= (1<<2); 3721 .stabn 68,0,52,.LM286-.LFBB18 3722 .LM286: 3723 0c6c 429A sbi 40-32,2 53:main.c **** 54:main.c **** outsig = 0x02; 3724 .stabn 68,0,54,.LM287-.LFBB18 3725 .LM287: 3726 0c6e 82E0 ldi r24,lo8(2) 3727 0c70 8093 0000 sts outsig.2165,r24 55:main.c **** lastserup = -1; 3728 .stabn 68,0,55,.LM288-.LFBB18 3729 .LM288: 3730 0c74 8FEF ldi r24,lo8(-1) 3731 0c76 9FEF ldi r25,hi8(-1) 3732 0c78 AFEF ldi r26,hlo8(-1) 3733 0c7a BFEF ldi r27,hhi8(-1) 3734 0c7c 8093 0000 sts lastserup.2168,r24 3735 0c80 9093 0000 sts (lastserup.2168)+1,r25 3736 0c84 A093 0000 sts (lastserup.2168)+2,r26 3737 0c88 B093 0000 sts (lastserup.2168)+3,r27 3738 .LBB1217: 3739 .LBB1218: 3740 .stabs "../lib/serial_x8.c",132,0,0,.Ltext55 3741 .Ltext55: 111:../lib/serial_x8.c **** 112:../lib/serial_x8.c **** 113:../lib/serial_x8.c **** void serial_init(uint16_t val) 114:../lib/serial_x8.c **** { 115:../lib/serial_x8.c **** UCSR0A = 0; 3742 .stabn 68,0,115,.LM289-.LFBB18 3743 .LM289: 3744 0c8c 1092 C000 sts 192,__zero_reg__ 116:../lib/serial_x8.c **** UCSR0B = (1< 4:../lib/i2c.c **** #include 5:../lib/i2c.c **** #include 6:../lib/i2c.c **** #include 7:../lib/i2c.c **** #include 8:../lib/i2c.c **** 9:../lib/i2c.c **** #include "devicelock.h" 10:../lib/i2c.c **** 11:../lib/i2c.c **** #include 12:../lib/i2c.c **** #include 13:../lib/i2c.c **** #include 14:../lib/i2c.c **** 15:../lib/i2c.c **** #ifndef I2C_MAX_DATA_LEN 16:../lib/i2c.c **** #define I2C_MAX_DATA_LEN 8 17:../lib/i2c.c **** #endif 18:../lib/i2c.c **** 19:../lib/i2c.c **** volatile uint8_t i2c_slave_addr; 20:../lib/i2c.c **** volatile uint8_t i2c_status; 21:../lib/i2c.c **** volatile uint8_t i2c_result; 22:../lib/i2c.c **** volatile uint8_t i2c_code; 23:../lib/i2c.c **** volatile uint8_t i2c_speed; 24:../lib/i2c.c **** 25:../lib/i2c.c **** volatile uint8_t i2c_data_len; 26:../lib/i2c.c **** volatile uint8_t i2c_data_idx; 27:../lib/i2c.c **** volatile uint8_t i2c_data[I2C_MAX_DATA_LEN]; 28:../lib/i2c.c **** 29:../lib/i2c.c **** void i2c_finish(uint8_t stop, uint8_t result) 30:../lib/i2c.c **** { 31:../lib/i2c.c **** if(stop) 32:../lib/i2c.c **** TWCR |= (1< 48 144:../lib/i2c.c **** void setup_i2c(uint8_t twbr) 145:../lib/i2c.c **** { 146:../lib/i2c.c **** i2c_status = I2C_IDLE; 3761 .stabn 68,0,146,.LM292-.LFBB18 3762 .LM292: 3763 0ca2 1092 0000 sts i2c_status.1928,__zero_reg__ 147:../lib/i2c.c **** TWBR = twbr; 3764 .stabn 68,0,147,.LM293-.LFBB18 3765 .LM293: 3766 0ca6 9FEE ldi r25,lo8(-17) 3767 0ca8 9093 B800 sts 184,r25 148:../lib/i2c.c **** TWSR &= ~((1<<1) | (1<<0)); 3768 .stabn 68,0,148,.LM294-.LFBB18 GAS LISTING /tmp/ccEMtt4X.s page 86 3769 .LM294: 3770 0cac 8091 B900 lds r24,185 3771 0cb0 8C7F andi r24,lo8(-4) 3772 0cb2 8093 B900 sts 185,r24 149:../lib/i2c.c **** TWCR = (1< 6:statemachine.c **** #include 7:statemachine.c **** #include "eeprom_data_locs.h" 8:statemachine.c **** #include "eeprom_l.h" 9:statemachine.c **** #include 10:statemachine.c **** #include 11:statemachine.c **** #include 12:statemachine.c **** 13:statemachine.c **** void fanon(void) { PORTC &= ~(1<<5); } 14:statemachine.c **** void fanoff(void) { PORTC |= (1<<5); } 15:statemachine.c **** void pumpon(void) { PORTC &= ~(1<<4); } 16:statemachine.c **** void pumpoff(void) { PORTC |= (1<<4); } 17:statemachine.c **** 18:statemachine.c **** uint8_t machinemode; 19:statemachine.c **** uint8_t nextmode; 20:statemachine.c **** int32_t switchmode; 21:statemachine.c **** int32_t lastwdhit; 22:statemachine.c **** uint8_t numscreens; 23:statemachine.c **** 24:statemachine.c **** void statemachine_init(void) 25:statemachine.c **** { 26:statemachine.c **** machinemode = MODE_BANNER; 4247 .stabn 68,0,26,.LM338-.LFBB18 4248 .LM338: 4249 0d98 1092 0000 sts machinemode.2162,__zero_reg__ 27:statemachine.c **** switchmode = -1; 4250 .stabn 68,0,27,.LM339-.LFBB18 4251 .LM339: 4252 0d9c 8FEF ldi r24,lo8(-1) 4253 0d9e 9FEF ldi r25,hi8(-1) 4254 0da0 AFEF ldi r26,hlo8(-1) GAS LISTING /tmp/ccEMtt4X.s page 97 4255 0da2 BFEF ldi r27,hhi8(-1) 4256 0da4 8093 0000 sts switchmode.5104,r24 4257 0da8 9093 0000 sts (switchmode.5104)+1,r25 4258 0dac A093 0000 sts (switchmode.5104)+2,r26 4259 0db0 B093 0000 sts (switchmode.5104)+3,r27 28:statemachine.c **** lastwdhit = 0; 4260 .stabn 68,0,28,.LM340-.LFBB18 4261 .LM340: 4262 0db4 1092 0000 sts lastwdhit.2169,__zero_reg__ 4263 0db8 1092 0000 sts (lastwdhit.2169)+1,__zero_reg__ 4264 0dbc 1092 0000 sts (lastwdhit.2169)+2,__zero_reg__ 4265 0dc0 1092 0000 sts (lastwdhit.2169)+3,__zero_reg__ 29:statemachine.c **** numscreens = 9; 4266 .stabn 68,0,29,.LM341-.LFBB18 4267 .LM341: 4268 0dc4 89E0 ldi r24,lo8(9) 4269 0dc6 8093 0000 sts numscreens.5106,r24 4270 .LBE1316: 4271 .LBE1315: 4272 .stabs "main.c",132,0,0,.Ltext80 4273 .Ltext80: 67:main.c **** 68:main.c **** statemachine_init(); 69:main.c **** 70:main.c **** nmea_tx_str("NFO," DATESTR "," VERSTR ",anrp@anrp.net"); 4274 .stabn 68,0,70,.LM342-.LFBB18 4275 .LM342: 4276 0dca 80E0 ldi r24,lo8(.LC6) 4277 0dcc 90E0 ldi r25,hi8(.LC6) 4278 0dce 0E94 0000 call nmea_tx_str.1915 71:main.c **** 72:main.c **** eeprom_load(0); 4279 .stabn 68,0,72,.LM343-.LFBB18 4280 .LM343: 4281 0dd2 80E0 ldi r24,lo8(0) 4282 0dd4 0E94 0000 call eeprom_load.2114 4283 .LBB1317: 4284 .LBB1318: 4285 .stabs "timers.c",132,0,0,.Ltext81 4286 .Ltext81: 4287 .stabn 68,0,19,.LM344-.LFBB18 4288 .LM344: 4289 0dd8 1092 0000 sts (timer_counts.2117)+1,__zero_reg__ 4290 0ddc 1092 0000 sts timer_counts.2117,__zero_reg__ 4291 0de0 1092 0000 sts timer_hits.2118,__zero_reg__ 4292 .stabn 68,0,21,.LM345-.LFBB18 4293 .LM345: 4294 0de4 83E0 ldi r24,lo8(3) 4295 0de6 84BD out 68-32,r24 4296 .stabn 68,0,22,.LM346-.LFBB18 4297 .LM346: 4298 0de8 81E0 ldi r24,lo8(1) 4299 0dea 8093 6E00 sts 110,r24 4300 .stabn 68,0,23,.LM347-.LFBB18 4301 .LM347: 4302 0dee 83EC ldi r24,lo8(-61) 4303 0df0 87BD out 71-32,r24 GAS LISTING /tmp/ccEMtt4X.s page 98 4304 .stabn 68,0,24,.LM348-.LFBB18 4305 .LM348: 4306 0df2 8DE0 ldi r24,lo8(13) 4307 0df4 85BD out 69-32,r24 4308 .stabn 68,0,26,.LM349-.LFBB18 4309 .LM349: 4310 0df6 82EA ldi r24,lo8(-94) 4311 0df8 8093 8000 sts 128,r24 4312 .stabn 68,0,27,.LM350-.LFBB18 4313 .LM350: 4314 0dfc 88E1 ldi r24,lo8(24) 4315 0dfe 8093 8100 sts 129,r24 4316 .stabn 68,0,29,.LM351-.LFBB18 4317 .LM351: 4318 0e02 84E6 ldi r24,lo8(100) 4319 0e04 90E0 ldi r25,hi8(100) 4320 0e06 9093 8700 sts (134)+1,r25 4321 0e0a 8093 8600 sts 134,r24 4322 .LBB1319: 4323 .LBB1320: 4324 .stabn 68,0,37,.LM352-.LFBB18 4325 .LM352: 4326 0e0e 8091 0000 lds r24,display_brightness.1959 4327 0e12 90E0 ldi r25,lo8(0) 4328 0e14 9093 8900 sts (136)+1,r25 4329 0e18 8093 8800 sts 136,r24 4330 .stabn 68,0,38,.LM353-.LFBB18 4331 .LM353: 4332 0e1c 8091 0000 lds r24,display_contrast.1948 4333 0e20 90E0 ldi r25,lo8(0) 4334 0e22 9093 8B00 sts (138)+1,r25 4335 0e26 8093 8A00 sts 138,r24 4336 .LBE1320: 4337 .LBE1319: 4338 .stabn 68,0,32,.LM354-.LFBB18 4339 .LM354: 4340 0e2a 8091 8100 lds r24,129 4341 0e2e 8160 ori r24,lo8(1) 4342 0e30 8093 8100 sts 129,r24 4343 0e34 4424 clr r4 4344 0e36 7724 clr r7 4345 0e38 6624 clr r6 4346 0e3a 5524 clr r5 4347 .LBE1318: 4348 .LBE1317: 4349 .LBB1322: 4350 .LBB1360: 4351 .LBB1361: 4352 .LBB1362: 4353 .LBB1363: 4354 .LBB1364: 4355 .stabs "display.c",132,0,0,.Ltext82 4356 .Ltext82: 4357 .stabn 68,0,147,.LM355-.LFBB18 4358 .LM355: 4359 0e3c 0FE1 ldi r16,lo8(31) 4360 0e3e 802E mov r8,r16 GAS LISTING /tmp/ccEMtt4X.s page 99 4361 0e40 912C mov r9,__zero_reg__ 4362 0e42 8C0E add r8,r28 4363 0e44 9D1E adc r9,r29 4364 .LBE1364: 4365 .LBE1363: 4366 .LBE1362: 4367 .LBE1361: 4368 .LBE1360: 4369 .LBB1323: 4370 .stabs "main.c",132,0,0,.Ltext83 4371 .Ltext83: 73:main.c **** timer_setup(); 74:main.c **** 75:main.c **** uint8_t okretry = 0; 76:main.c **** 77:main.c **** uint8_t modeswitchok = 0; 78:main.c **** 79:main.c **** uint8_t lvcount = 0; 80:main.c **** uint8_t elvcount = 0; 81:main.c **** 82:main.c **** while(1) { 83:main.c **** outsig &= 0xf8; 84:main.c **** 85:main.c **** if(modeswitchok > 25) { 86:main.c **** // radio control 87:main.c **** outsig |= 0x01; 88:main.c **** outservo[2] = inservo[0]; 89:main.c **** outservo[0] = inservo[1]; 90:main.c **** if(outservo[0] <= 1220) outservo[0] = 920; 91:main.c **** if(outservo[0] >= 1920) outservo[0] = 2120; 92:main.c **** outservo[1] = 0;//inservo[2]; 93:main.c **** } else { 94:main.c **** if(age(lastserup) < 3) { 95:main.c **** outsig |= 0x02; 96:main.c **** outservo[2] = serservo[0]; 97:main.c **** outservo[0] = serservo[1]; 98:main.c **** outservo[1] = serservo[2]; 99:main.c **** } else { 100:main.c **** outsig |= 0x04; 101:main.c **** outservo[0] = outservo[1] = outservo[2] = 0; 102:main.c **** } 103:main.c **** } 104:main.c **** 105:main.c **** if(is_i2c_finished()) { 106:main.c **** okretry = 1; 107:main.c **** i2c_read_begin(102, 8); 108:main.c **** } 109:main.c **** 110:main.c **** if(timer_hits & TIMER_EVERY_50MS) { 111:main.c **** timer_hits &= ~(TIMER_EVERY_50MS); 112:main.c **** us_50ms(); 113:main.c **** } 114:main.c **** 115:main.c **** if(timer_hits & TIMER_EVERY_100MS) { 116:main.c **** if(i2c_result == 6) { 117:main.c **** reset_i2c(); 118:main.c **** i2c_result = 0; GAS LISTING /tmp/ccEMtt4X.s page 100 119:main.c **** } 120:main.c **** 121:main.c **** if(voltage < critical_voltage && lvcount <= 99) lvcount++; 122:main.c **** if(voltage >= critical_voltage && lvcount >= 1) lvcount--; 123:main.c **** 124:main.c **** if(voltage < 8000 && elvcount < 99) elvcount++; 125:main.c **** if(voltage >= 8000 && elvcount >= 1) elvcount--; 126:main.c **** 127:main.c **** timer_hits &= ~(TIMER_EVERY_100MS); 128:main.c **** } 129:main.c **** 130:main.c **** if(elvcount > 60) { // 6 seconds ... byebye! 131:main.c **** PORTC |= (1<<3); 132:main.c **** } else { 133:main.c **** PORTC &= ~(1<<3); 134:main.c **** } 135:main.c **** 136:main.c **** if(timer_hits & TIMER_EVERY_500MS) { 137:main.c **** timer_hits &= ~(TIMER_EVERY_500MS); 138:main.c **** transmit_status(); 139:main.c **** us_500ms(); 140:main.c **** } 141:main.c **** 142:main.c **** if(timer_hits & TIMER_EVERY_1S) { 143:main.c **** timer_hits &= ~(TIMER_EVERY_1S); 144:main.c **** 145:main.c **** PORTC &= ~(1<<2); 146:main.c **** 147:main.c **** us_second(); 148:main.c **** } 149:main.c **** 150:main.c **** int8_t pos; 151:main.c **** 152:main.c **** while(serial_rx_q_len() && serial_rx_peek() != '$') serial_waitchar(); 153:main.c **** 154:main.c **** while((pos = serial_in_rx_buffer('\r')) != -1) { 155:main.c **** handle_serial_in_with_cks(pos); 156:main.c **** 157:main.c **** serial_rx_delete_until('\r'); 158:main.c **** serial_rx_delete_until('\n'); 159:main.c **** } 160:main.c **** 161:main.c **** if(serial_rx_q_full()) { 162:main.c **** serial_rx_q_reset(); 163:main.c **** nmea_tx_str("ERR,SERIN,OVERFLOW"); 164:main.c **** } 165:main.c **** 166:main.c **** if(lvcount > 50) { 167:main.c **** set_batterycritical(); 168:main.c **** if(outservo[0] != 0 && outservo[0] < 1320) outservo[0] = 1320; 169:main.c **** if(outservo[0] > 1720) outservo[0] = 1720; 170:main.c **** } else { 171:main.c **** unset_batterycritical(); 172:main.c **** } 173:main.c **** 174:main.c **** if(okretry && is_i2c_finished()) { 175:main.c **** if(lvcount > 50) { GAS LISTING /tmp/ccEMtt4X.s page 101 176:main.c **** if(time() % 2 == 0) outsig &= 0xf8; 177:main.c **** } 178:main.c **** update_i2c(); 179:main.c **** if(inservo[2] >= 1820) { 180:main.c **** modeswitchok++; 181:main.c **** if(modeswitchok >= 35) modeswitchok = 34; 182:main.c **** } else { 183:main.c **** if(modeswitchok <= 15) modeswitchok = 16; 184:main.c **** modeswitchok--; 185:main.c **** } 186:main.c **** okretry = 0; 187:main.c **** } 188:main.c **** } 189:main.c **** } 190:main.c **** 191:main.c **** uint8_t handle_serial_in_with_cks(uint8_t ec_pos) 192:main.c **** { 193:main.c **** uint8_t cin[32]; 194:main.c **** 195:main.c **** if(nmea_verify_serial_in(cin, 32, ec_pos) != NMEA_OK) return 0; 196:main.c **** //nmea_tx_str("ACK,NMEA"); 197:main.c **** 198:main.c **** if(cin[3] == 'R') { // read 199:main.c **** if(cin[4] == 'R') { // raw 200:main.c **** if(cin[5] == 'A') { // adc 201:main.c **** uint8_t which = DIGIT_TO_NUM(cin[7]); 202:main.c **** uint16_t val; uint8_t cyc; 203:main.c **** cli(); val = adcval[which]; cyc = adccyc[which]; sei(); 204:main.c **** cin[8] = ','; 205:main.c **** byte_to_hex(cyc, &(cin[9])); 206:main.c **** cin[11] = ','; 207:main.c **** byte_to_hex(val >> 8, &(cin[12])); 208:main.c **** byte_to_hex(val & 0xff, &(cin[14])); 209:main.c **** cin[16] = 0; 210:main.c **** nmea_tx_str(cin+3); 211:main.c **** //display_set_cursor(0); 212:main.c **** //display_write_str(cin); 213:main.c **** } else { 214:main.c **** goto error; 215:main.c **** } 216:main.c **** } else { 217:main.c **** goto error; 218:main.c **** } 219:main.c **** } else if(cin[3] == 'S' && cin[4] == 'K') { // hit 220:main.c **** if(cin[5] == 'F') { // fandisable 221:main.c **** int32_t t = atoi(cin+7); 222:main.c **** if(t <= 0) us_setfankilltime(0); 223:main.c **** else us_setfankilltime(t+time()); 224:main.c **** } else if(cin[5] == 'P') { 225:main.c **** int32_t t = atoi(cin+7); 226:main.c **** if(t <= 0) us_setpumpkilltime(0); 227:main.c **** else us_setpumpkilltime(t+time()); 228:main.c **** } else { 229:main.c **** goto error; 230:main.c **** } 231:main.c **** } else if(cin[3] == 'W' && cin[4] == 'D' && cin[5] == 'H') { 232:main.c **** lastwdhit = time(); GAS LISTING /tmp/ccEMtt4X.s page 102 233:main.c **** } else if(cin[3] == 'W' && cin[4] == 'D' && cin[5] == 'D') { 234:main.c **** lastwdhit = -1; 235:main.c **** } else if(cin[3] == 'S' && cin[4] == 'S' && cin[5] == 'P') { 236:main.c **** lastserup = time(); 237:main.c **** serservo[0] = hex_to_byte(cin+7) << 8 | hex_to_byte(cin+9); 238:main.c **** serservo[1] = hex_to_byte(cin+12) << 8 | hex_to_byte(cin+14); 239:main.c **** serservo[2] = hex_to_byte(cin+17) << 8 | hex_to_byte(cin+19); 4372 .stabn 68,0,239,.LM356-.LFBB18 4373 .LM356: 4374 0e46 20E3 ldi r18,lo8(48) 4375 0e48 30E0 ldi r19,hi8(48) 4376 0e4a 2C0F add r18,r28 4377 0e4c 3D1F adc r19,r29 4378 0e4e 2F5E subi r18,lo8(-(17)) 4379 0e50 3F4F sbci r19,hi8(-(17)) 4380 0e52 CC55 subi r28,lo8(-164) 4381 0e54 DF4F sbci r29,hi8(-164) 4382 0e56 3983 std Y+1,r19 4383 0e58 2883 st Y,r18 4384 0e5a C45A subi r28,lo8(164) 4385 0e5c D040 sbci r29,hi8(164) 4386 0e5e 00C0 rjmp .L308 4387 .L281: 4388 .LBE1323: 4389 .LBE1322: 4390 .LBB1498: 4391 .LBB1321: 4392 .stabs "timers.c",132,0,0,.Ltext84 4393 .Ltext84: 4394 .stabn 68,0,32,.LM357-.LFBB18 4395 .LM357: 4396 0e60 4424 clr r4 4397 .L308: 4398 .LBE1321: 4399 .LBE1498: 4400 .LBB1499: 4401 .stabs "main.c",132,0,0,.Ltext85 4402 .Ltext85: 4403 .stabn 68,0,83,.LM358-.LFBB18 4404 .LM358: 4405 0e62 6091 0000 lds r22,outsig.2165 4406 0e66 687F andi r22,lo8(-8) 4407 0e68 6093 0000 sts outsig.2165,r22 4408 .stabn 68,0,85,.LM359-.LFBB18 4409 .LM359: 4410 0e6c 39E1 ldi r19,lo8(25) 4411 0e6e 3715 cp r19,r7 4412 0e70 00F4 brsh .L119 4413 .stabn 68,0,87,.LM360-.LFBB18 4414 .LM360: 4415 0e72 6160 ori r22,lo8(1) 4416 0e74 6093 0000 sts outsig.2165,r22 4417 .stabn 68,0,88,.LM361-.LFBB18 4418 .LM361: 4419 0e78 8091 0000 lds r24,inservo.2163 4420 0e7c 9091 0000 lds r25,(inservo.2163)+1 4421 0e80 9093 0000 sts (outservo.2166+4)+1,r25 GAS LISTING /tmp/ccEMtt4X.s page 103 4422 0e84 8093 0000 sts outservo.2166+4,r24 4423 .stabn 68,0,89,.LM362-.LFBB18 4424 .LM362: 4425 0e88 8091 0000 lds r24,inservo.2163+2 4426 0e8c 9091 0000 lds r25,(inservo.2163+2)+1 4427 0e90 9093 0000 sts (outservo.2166)+1,r25 4428 0e94 8093 0000 sts outservo.2166,r24 4429 .stabn 68,0,90,.LM363-.LFBB18 4430 .LM363: 4431 0e98 855C subi r24,lo8(1221) 4432 0e9a 9440 sbci r25,hi8(1221) 4433 0e9c 00F4 brsh .L120 4434 0e9e 88E9 ldi r24,lo8(920) 4435 0ea0 93E0 ldi r25,hi8(920) 4436 0ea2 9093 0000 sts (outservo.2166)+1,r25 4437 0ea6 8093 0000 sts outservo.2166,r24 4438 .L120: 4439 .stabn 68,0,91,.LM364-.LFBB18 4440 .LM364: 4441 0eaa 8091 0000 lds r24,outservo.2166 4442 0eae 9091 0000 lds r25,(outservo.2166)+1 4443 0eb2 8058 subi r24,lo8(1920) 4444 0eb4 9740 sbci r25,hi8(1920) 4445 0eb6 00F0 brlo .L121 4446 0eb8 88E4 ldi r24,lo8(2120) 4447 0eba 98E0 ldi r25,hi8(2120) 4448 0ebc 9093 0000 sts (outservo.2166)+1,r25 4449 0ec0 8093 0000 sts outservo.2166,r24 4450 .L121: 4451 .stabn 68,0,92,.LM365-.LFBB18 4452 .LM365: 4453 0ec4 1092 0000 sts (outservo.2166+2)+1,__zero_reg__ 4454 0ec8 1092 0000 sts outservo.2166+2,__zero_reg__ 4455 0ecc 00C0 rjmp .L122 4456 .L119: 4457 .LBB1399: 4458 .LBB1400: 4459 .stabs "timers.c",132,0,0,.Ltext86 4460 .Ltext86: 4461 .stabn 68,0,15,.LM366-.LFBB18 4462 .LM366: 4463 0ece 8091 0000 lds r24,timer.2777 4464 0ed2 9091 0000 lds r25,(timer.2777)+1 4465 0ed6 A091 0000 lds r26,(timer.2777)+2 4466 0eda B091 0000 lds r27,(timer.2777)+3 4467 .LBE1400: 4468 .LBE1399: 4469 .stabs "main.c",132,0,0,.Ltext87 4470 .Ltext87: 4471 .stabn 68,0,94,.LM367-.LFBB18 4472 .LM367: 4473 0ede 2091 0000 lds r18,lastserup.2168 4474 0ee2 3091 0000 lds r19,(lastserup.2168)+1 4475 0ee6 4091 0000 lds r20,(lastserup.2168)+2 4476 0eea 5091 0000 lds r21,(lastserup.2168)+3 4477 0eee 821B sub r24,r18 4478 0ef0 930B sbc r25,r19 GAS LISTING /tmp/ccEMtt4X.s page 104 4479 0ef2 A40B sbc r26,r20 4480 0ef4 B50B sbc r27,r21 4481 0ef6 0397 sbiw r24,3 4482 0ef8 A105 cpc r26,__zero_reg__ 4483 0efa B105 cpc r27,__zero_reg__ 4484 0efc 04F4 brge .L123 4485 .stabn 68,0,95,.LM368-.LFBB18 4486 .LM368: 4487 0efe 6260 ori r22,lo8(2) 4488 0f00 6093 0000 sts outsig.2165,r22 4489 .stabn 68,0,96,.LM369-.LFBB18 4490 .LM369: 4491 0f04 8091 0000 lds r24,serservo.2167 4492 0f08 9091 0000 lds r25,(serservo.2167)+1 4493 0f0c 9093 0000 sts (outservo.2166+4)+1,r25 4494 0f10 8093 0000 sts outservo.2166+4,r24 4495 .stabn 68,0,97,.LM370-.LFBB18 4496 .LM370: 4497 0f14 8091 0000 lds r24,serservo.2167+2 4498 0f18 9091 0000 lds r25,(serservo.2167+2)+1 4499 0f1c 9093 0000 sts (outservo.2166)+1,r25 4500 0f20 8093 0000 sts outservo.2166,r24 4501 .stabn 68,0,98,.LM371-.LFBB18 4502 .LM371: 4503 0f24 8091 0000 lds r24,serservo.2167+4 4504 0f28 9091 0000 lds r25,(serservo.2167+4)+1 4505 0f2c 9093 0000 sts (outservo.2166+2)+1,r25 4506 0f30 8093 0000 sts outservo.2166+2,r24 4507 0f34 00C0 rjmp .L122 4508 .L123: 4509 .stabn 68,0,100,.LM372-.LFBB18 4510 .LM372: 4511 0f36 6460 ori r22,lo8(4) 4512 0f38 6093 0000 sts outsig.2165,r22 4513 .stabn 68,0,101,.LM373-.LFBB18 4514 .LM373: 4515 0f3c 1092 0000 sts (outservo.2166+4)+1,__zero_reg__ 4516 0f40 1092 0000 sts outservo.2166+4,__zero_reg__ 4517 0f44 1092 0000 sts (outservo.2166+2)+1,__zero_reg__ 4518 0f48 1092 0000 sts outservo.2166+2,__zero_reg__ 4519 0f4c 1092 0000 sts (outservo.2166)+1,__zero_reg__ 4520 0f50 1092 0000 sts outservo.2166,__zero_reg__ 4521 .L122: 4522 .LBB1401: 4523 .LBB1402: 4524 .stabs "../lib/devicelock.c",132,0,0,.Ltext88 4525 .Ltext88: 32:../lib/devicelock.c **** } 33:../lib/devicelock.c **** 34:../lib/devicelock.c **** void release_device_lock_irq(uint8_t which) 35:../lib/devicelock.c **** { 36:../lib/devicelock.c **** device_locks &= (unsigned char)~(which); 37:../lib/devicelock.c **** } 38:../lib/devicelock.c **** 39:../lib/devicelock.c **** uint8_t is_device_locked(uint8_t which) 40:../lib/devicelock.c **** { 41:../lib/devicelock.c **** return device_locks & which ? 1 : 0; GAS LISTING /tmp/ccEMtt4X.s page 105 4526 .stabn 68,0,41,.LM374-.LFBB18 4527 .LM374: 4528 0f54 8091 0000 lds r24,device_locks.1810 4529 .LBE1402: 4530 .LBE1401: 4531 .stabs "main.c",132,0,0,.Ltext89 4532 .Ltext89: 4533 .stabn 68,0,105,.LM375-.LFBB18 4534 .LM375: 4535 0f58 82FD sbrc r24,2 4536 0f5a 00C0 rjmp .L124 4537 .L287: 4538 .LBB1403: 4539 .LBB1404: 4540 .LBB1405: 4541 .LBB1406: 4542 .stabs "../lib/devicelock.c",132,0,0,.Ltext90 4543 .Ltext90: 4544 .stabn 68,0,18,.LM376-.LFBB18 4545 .LM376: 4546 /* #APP */ 4547 ; 18 "../lib/devicelock.c" 1 4548 0f5c F894 cli 4549 ; 0 "" 2 4550 .stabn 68,0,19,.LM377-.LFBB18 4551 .LM377: 4552 /* #NOAPP */ 4553 0f5e 8091 0000 lds r24,device_locks.1810 4554 0f62 82FF sbrs r24,2 4555 0f64 00C0 rjmp .L125 4556 0f66 80E0 ldi r24,lo8(0) 4557 0f68 00C0 rjmp .L126 4558 .L125: 4559 .stabn 68,0,20,.LM378-.LFBB18 4560 .LM378: 4561 0f6a 8091 0000 lds r24,device_locks.1810 4562 0f6e 8460 ori r24,lo8(4) 4563 0f70 8093 0000 sts device_locks.1810,r24 4564 0f74 81E0 ldi r24,lo8(1) 4565 .L126: 4566 .stabn 68,0,23,.LM379-.LFBB18 4567 .LM379: 4568 /* #APP */ 4569 ; 23 "../lib/devicelock.c" 1 4570 0f76 7894 sei 4571 ; 0 "" 2 4572 .stabn 68,0,24,.LM380-.LFBB18 4573 .LM380: 4574 /* #NOAPP */ 4575 0f78 8823 tst r24 4576 0f7a 01F0 breq .L287 4577 .LBE1406: 4578 .LBE1405: 4579 .stabs "../lib/i2c.c",132,0,0,.Ltext91 4580 .Ltext91: 151:../lib/i2c.c **** } 152:../lib/i2c.c **** GAS LISTING /tmp/ccEMtt4X.s page 106 153:../lib/i2c.c **** void reset_i2c(void) 154:../lib/i2c.c **** { 155:../lib/i2c.c **** TWCR = 0; 156:../lib/i2c.c **** TWCR |= (1< I2C_MAX_DATA_LEN) len = I2C_MAX_DATA_LEN; // bad! 171:../lib/i2c.c **** i2c_data_len = len; 172:../lib/i2c.c **** 173:../lib/i2c.c **** for(tmp = 0; tmp < len; tmp++) { 174:../lib/i2c.c **** i2c_data[tmp] = bytes[tmp]; 175:../lib/i2c.c **** } 176:../lib/i2c.c **** 177:../lib/i2c.c **** i2c_slave_addr = slave_addr << 1; // R/W bit = 0 for MT 178:../lib/i2c.c **** i2c_status = I2C_WRITE_TRANSACTION; 179:../lib/i2c.c **** 180:../lib/i2c.c **** TWCR |= (1< I2C_MAX_DATA_LEN) len = I2C_MAX_DATA_LEN; 190:../lib/i2c.c **** i2c_data_len = len; 191:../lib/i2c.c **** i2c_data[0] = regaddr; 192:../lib/i2c.c **** 193:../lib/i2c.c **** i2c_slave_addr = slave_addr << 1; 194:../lib/i2c.c **** i2c_status = I2C_READ_TRANSACTION; 195:../lib/i2c.c **** 196:../lib/i2c.c **** TWCR |= (1< I2C_MAX_DATA_LEN) len = I2C_MAX_DATA_LEN; 206:../lib/i2c.c **** i2c_data_len = len; // workaround for internal first-byte-is-regaddr 4581 .stabn 68,0,206,.LM381-.LFBB18 4582 .LM381: 4583 0f7c 88E0 ldi r24,lo8(8) GAS LISTING /tmp/ccEMtt4X.s page 107 4584 0f7e 8093 0000 sts i2c_data_len.8375,r24 207:../lib/i2c.c **** 208:../lib/i2c.c **** i2c_slave_addr = 1 | (slave_addr << 1); 4585 .stabn 68,0,208,.LM382-.LFBB18 4586 .LM382: 4587 0f82 8DEC ldi r24,lo8(-51) 4588 0f84 8093 0000 sts i2c_slave_addr.8370,r24 209:../lib/i2c.c **** i2c_status = I2C_READ_ONLY_TRANSACTION; 4589 .stabn 68,0,209,.LM383-.LFBB18 4590 .LM383: 4591 0f88 84E0 ldi r24,lo8(4) 4592 0f8a 8093 0000 sts i2c_status.1928,r24 210:../lib/i2c.c **** 211:../lib/i2c.c **** TWCR |= (1<= 0 && time() % numscreens < 3) { 56:statemachine.c **** snprintf(s, 17, "%2i.%03iV %c%03i.%02iA", 57:statemachine.c **** voltage / 1000, voltage % 1000, 58:statemachine.c **** LTCHARS(current[0]), ABS(current[0]) / 100, ABS(current[0]) % 100); 59:statemachine.c **** } else if(time() % numscreens >= 3 && time() % numscreens < 6) { 60:statemachine.c **** if(temperature[0] == INVALID_TEMP) { 61:statemachine.c **** snprintf(s, 17, "---.--C "); 62:statemachine.c **** } else { 63:statemachine.c **** snprintf(s, 17, "%c%2i.%02iC ", 64:statemachine.c **** LTCHAR(temperature[0]), ABS(temperature[0]) / 100, ABS(temperature[0]) % 100); 65:statemachine.c **** } 66:statemachine.c **** 67:statemachine.c **** if(temperature[1] == INVALID_TEMP) { 68:statemachine.c **** snprintf(s+9, 8, "---.--C"); 69:statemachine.c **** } else { 70:statemachine.c **** snprintf(s+9, 8, "%c%2i.%02iC", 71:statemachine.c **** LTCHAR(temperature[1]), ABS(temperature[1]) / 100, ABS(temperature[1]) % 100); 72:statemachine.c **** } 73:statemachine.c **** } else if(time() % numscreens >= 6 && time() % numscreens < 9) { 74:statemachine.c **** snprintf(s, 17, "%u %02x%02x ", 75:statemachine.c **** MODE_MASK & machinemode, 76:statemachine.c **** insig, buttons); 77:statemachine.c **** 78:statemachine.c **** int tmp; 79:statemachine.c **** if(outservo[2] != 0) { 80:statemachine.c **** tmp = outservo[2] - (920+600); 81:statemachine.c **** snprintf(s+7, 9, "%c%03i ", LTCHAR(tmp), ABS(tmp) / 6); 82:statemachine.c **** } else { 83:statemachine.c **** snprintf(s+7, 9, "---- "); 84:statemachine.c **** } 85:statemachine.c **** 86:statemachine.c **** if(outservo[0] != 0) { 87:statemachine.c **** tmp = outservo[0] - (920+600); 88:statemachine.c **** snprintf(s+12, 5, "%c%03i", LTCHAR(tmp), ABS(tmp) / 6); 89:statemachine.c **** } else { 90:statemachine.c **** snprintf(s+12, 5, "----"); 91:statemachine.c **** } 92:statemachine.c **** } else if(time() % numscreens >= 9 && time() % numscreens < 11) { // error state! 93:statemachine.c **** snprintf(s, 17, "Battery critical"); 94:statemachine.c **** } else if(time() % numscreens >= 11 && time() % numscreens < 13) { 95:statemachine.c **** snprintf(s, 17, "Thrust limited "); 96:statemachine.c **** } 97:statemachine.c **** 98:statemachine.c **** display_write_str(s); 99:statemachine.c **** display_set_cursor(0x40); 100:statemachine.c **** display_set_cursor(0x40); 101:statemachine.c **** display_write_str_l(16, line2); 102:statemachine.c **** } 103:statemachine.c **** GAS LISTING /tmp/ccEMtt4X.s page 109 104:statemachine.c **** int32_t fanontime, pumpontime; 105:statemachine.c **** uint8_t buttoncount; 106:statemachine.c **** 107:statemachine.c **** void us_50ms(void) 108:statemachine.c **** { 109:statemachine.c **** if(fanontime == -1 || past(fanontime)) fanon(); 4619 .stabn 68,0,109,.LM387-.LFBB18 4620 .LM387: 4621 0fae 2091 0000 lds r18,fanontime.5210 4622 0fb2 3091 0000 lds r19,(fanontime.5210)+1 4623 0fb6 4091 0000 lds r20,(fanontime.5210)+2 4624 0fba 5091 0000 lds r21,(fanontime.5210)+3 4625 0fbe 2F3F cpi r18,lo8(-1) 4626 0fc0 8FEF ldi r24,hi8(-1) 4627 0fc2 3807 cpc r19,r24 4628 0fc4 8FEF ldi r24,hlo8(-1) 4629 0fc6 4807 cpc r20,r24 4630 0fc8 8FEF ldi r24,hhi8(-1) 4631 0fca 5807 cpc r21,r24 4632 0fcc 01F0 breq .L129 4633 .LBB1432: 4634 .LBB1433: 4635 .stabs "timers.c",132,0,0,.Ltext94 4636 .Ltext94: 4637 .stabn 68,0,15,.LM388-.LFBB18 4638 .LM388: 4639 0fce 8091 0000 lds r24,timer.2777 4640 0fd2 9091 0000 lds r25,(timer.2777)+1 4641 0fd6 A091 0000 lds r26,(timer.2777)+2 4642 0fda B091 0000 lds r27,(timer.2777)+3 4643 .LBE1433: 4644 .LBE1432: 4645 .stabs "statemachine.c",132,0,0,.Ltext95 4646 .Ltext95: 4647 .stabn 68,0,109,.LM389-.LFBB18 4648 .LM389: 4649 0fde 2817 cp r18,r24 4650 0fe0 3907 cpc r19,r25 4651 0fe2 4A07 cpc r20,r26 4652 0fe4 5B07 cpc r21,r27 4653 0fe6 04F4 brge .L130 4654 .L129: 4655 .LBB1430: 4656 .LBB1431: 4657 .stabn 68,0,13,.LM390-.LFBB18 4658 .LM390: 4659 0fe8 4598 cbi 40-32,5 4660 .L130: 4661 .LBE1431: 4662 .LBE1430: 110:statemachine.c **** if(pumpontime == -1 || past(pumpontime)) pumpon(); 4663 .stabn 68,0,110,.LM391-.LFBB18 4664 .LM391: 4665 0fea 2091 0000 lds r18,pumpontime.5211 4666 0fee 3091 0000 lds r19,(pumpontime.5211)+1 4667 0ff2 4091 0000 lds r20,(pumpontime.5211)+2 4668 0ff6 5091 0000 lds r21,(pumpontime.5211)+3 GAS LISTING /tmp/ccEMtt4X.s page 110 4669 0ffa 2F3F cpi r18,lo8(-1) 4670 0ffc 9FEF ldi r25,hi8(-1) 4671 0ffe 3907 cpc r19,r25 4672 1000 9FEF ldi r25,hlo8(-1) 4673 1002 4907 cpc r20,r25 4674 1004 9FEF ldi r25,hhi8(-1) 4675 1006 5907 cpc r21,r25 4676 1008 01F0 breq .L131 4677 .LBB1428: 4678 .LBB1429: 4679 .stabs "timers.c",132,0,0,.Ltext96 4680 .Ltext96: 4681 .stabn 68,0,15,.LM392-.LFBB18 4682 .LM392: 4683 100a 8091 0000 lds r24,timer.2777 4684 100e 9091 0000 lds r25,(timer.2777)+1 4685 1012 A091 0000 lds r26,(timer.2777)+2 4686 1016 B091 0000 lds r27,(timer.2777)+3 4687 .LBE1429: 4688 .LBE1428: 4689 .stabs "statemachine.c",132,0,0,.Ltext97 4690 .Ltext97: 4691 .stabn 68,0,110,.LM393-.LFBB18 4692 .LM393: 4693 101a 2817 cp r18,r24 4694 101c 3907 cpc r19,r25 4695 101e 4A07 cpc r20,r26 4696 1020 5B07 cpc r21,r27 4697 1022 04F4 brge .L132 4698 .L131: 4699 .LBB1426: 4700 .LBB1427: 4701 .stabn 68,0,15,.LM394-.LFBB18 4702 .LM394: 4703 1024 4498 cbi 40-32,4 4704 .L132: 4705 .LBE1427: 4706 .LBE1426: 111:statemachine.c **** 112:statemachine.c **** if(!(machinemode & MODE_ENTERED)) { 4707 .stabn 68,0,112,.LM395-.LFBB18 4708 .LM395: 4709 1026 8091 0000 lds r24,machinemode.2162 4710 102a 86FD sbrc r24,6 4711 102c 00C0 rjmp .L133 113:statemachine.c **** // initial entry into state 114:statemachine.c **** machinemode |= MODE_ENTERED; 4712 .stabn 68,0,114,.LM396-.LFBB18 4713 .LM396: 4714 102e 8064 ori r24,lo8(64) 4715 1030 8093 0000 sts machinemode.2162,r24 115:statemachine.c **** 116:statemachine.c **** switch(MODE_MASK & machinemode) { 4716 .stabn 68,0,116,.LM397-.LFBB18 4717 .LM397: 4718 1034 90E0 ldi r25,lo8(0) 4719 1036 8F71 andi r24,lo8(31) GAS LISTING /tmp/ccEMtt4X.s page 111 4720 1038 9070 andi r25,hi8(31) 4721 103a 8430 cpi r24,4 4722 103c 9105 cpc r25,__zero_reg__ 4723 103e 01F4 brne .+2 4724 1040 00C0 rjmp .L138 4725 1042 8530 cpi r24,5 4726 1044 9105 cpc r25,__zero_reg__ 4727 1046 04F4 brge .L143 4728 1048 8130 cpi r24,1 4729 104a 9105 cpc r25,__zero_reg__ 4730 104c 01F0 breq .L135 4731 104e 8230 cpi r24,2 4732 1050 9105 cpc r25,__zero_reg__ 4733 1052 04F4 brge .L144 4734 1054 892B or r24,r25 4735 1056 01F0 breq .L134 4736 1058 00C0 rjmp .L133 4737 .L144: 4738 105a 8230 cpi r24,2 4739 105c 9105 cpc r25,__zero_reg__ 4740 105e 01F0 breq .L136 4741 1060 0397 sbiw r24,3 4742 1062 01F0 breq .+2 4743 1064 00C0 rjmp .L133 4744 1066 00C0 rjmp .L330 4745 .L143: 4746 1068 8630 cpi r24,6 4747 106a 9105 cpc r25,__zero_reg__ 4748 106c 01F4 brne .+2 4749 106e 00C0 rjmp .L140 4750 1070 8630 cpi r24,6 4751 1072 9105 cpc r25,__zero_reg__ 4752 1074 04F0 brlt .L139 4753 1076 8730 cpi r24,7 4754 1078 9105 cpc r25,__zero_reg__ 4755 107a 01F4 brne .+2 4756 107c 00C0 rjmp .L141 4757 107e 0897 sbiw r24,8 4758 1080 01F0 breq .+2 4759 1082 00C0 rjmp .L133 4760 1084 00C0 rjmp .L331 4761 .L134: 117:statemachine.c **** case MODE_BANNER: 118:statemachine.c **** memcpy(line2, "Kayak control bd", 16); 4762 .stabn 68,0,118,.LM398-.LFBB18 4763 .LM398: 4764 1086 A0E0 ldi r26,lo8(line2.5110) 4765 1088 B0E0 ldi r27,hi8(line2.5110) 4766 108a E0E0 ldi r30,lo8(.LC7) 4767 108c F0E0 ldi r31,hi8(.LC7) 4768 108e 80E1 ldi r24,lo8(16) 4769 .L145: 4770 1090 0190 ld r0,Z+ 4771 1092 0D92 st X+,r0 4772 1094 8150 subi r24,lo8(-(-1)) 4773 1096 01F4 brne .L145 4774 1098 00C0 rjmp .L133 GAS LISTING /tmp/ccEMtt4X.s page 112 4775 .L135: 119:statemachine.c **** break; 120:statemachine.c **** case MODE_BANNER2: 121:statemachine.c **** memcpy(line2, "(c)anrp@anrp.net", 16); 4776 .stabn 68,0,121,.LM399-.LFBB18 4777 .LM399: 4778 109a A0E0 ldi r26,lo8(line2.5110) 4779 109c B0E0 ldi r27,hi8(line2.5110) 4780 109e E0E0 ldi r30,lo8(.LC8) 4781 10a0 F0E0 ldi r31,hi8(.LC8) 4782 10a2 80E1 ldi r24,lo8(16) 4783 .L146: 4784 10a4 0190 ld r0,Z+ 4785 10a6 0D92 st X+,r0 4786 10a8 8150 subi r24,lo8(-(-1)) 4787 10aa 01F4 brne .L146 4788 10ac 00C0 rjmp .L133 4789 .L136: 122:statemachine.c **** break; 123:statemachine.c **** case MODE_IDLE_OFF: 124:statemachine.c **** memcpy(line2, "Idle ", 16); 4790 .stabn 68,0,124,.LM400-.LFBB18 4791 .LM400: 4792 10ae A0E0 ldi r26,lo8(line2.5110) 4793 10b0 B0E0 ldi r27,hi8(line2.5110) 4794 10b2 E0E0 ldi r30,lo8(.LC9) 4795 10b4 F0E0 ldi r31,hi8(.LC9) 4796 10b6 80E1 ldi r24,lo8(16) 4797 .L147: 4798 10b8 0190 ld r0,Z+ 4799 10ba 0D92 st X+,r0 4800 10bc 8150 subi r24,lo8(-(-1)) 4801 10be 01F4 brne .L147 4802 10c0 00C0 rjmp .L133 4803 .L330: 125:statemachine.c **** break; 126:statemachine.c **** case MODE_IDLE_DONTKNOW: 127:statemachine.c **** memcpy(line2, "Idle, WD disabld", 16); 4804 .stabn 68,0,127,.LM401-.LFBB18 4805 .LM401: 4806 10c2 A0E0 ldi r26,lo8(line2.5110) 4807 10c4 B0E0 ldi r27,hi8(line2.5110) 4808 10c6 E0E0 ldi r30,lo8(.LC10) 4809 10c8 F0E0 ldi r31,hi8(.LC10) 4810 10ca 80E1 ldi r24,lo8(16) 4811 .L148: 4812 10cc 0190 ld r0,Z+ 4813 10ce 0D92 st X+,r0 4814 10d0 8150 subi r24,lo8(-(-1)) 4815 10d2 01F4 brne .L148 4816 10d4 00C0 rjmp .L133 4817 .L139: 128:statemachine.c **** break; 129:statemachine.c **** case MODE_PRESSBUTTON: 130:statemachine.c **** memcpy(line2, "Press button on ", 16); 4818 .stabn 68,0,130,.LM402-.LFBB18 4819 .LM402: GAS LISTING /tmp/ccEMtt4X.s page 113 4820 10d6 A0E0 ldi r26,lo8(line2.5110) 4821 10d8 B0E0 ldi r27,hi8(line2.5110) 4822 10da E0E0 ldi r30,lo8(.LC11) 4823 10dc F0E0 ldi r31,hi8(.LC11) 4824 10de 80E1 ldi r24,lo8(16) 4825 .L149: 4826 10e0 0190 ld r0,Z+ 4827 10e2 0D92 st X+,r0 4828 10e4 8150 subi r24,lo8(-(-1)) 4829 10e6 01F4 brne .L149 131:statemachine.c **** outsig |= (1<<3); 4830 .stabn 68,0,131,.LM403-.LFBB18 4831 .LM403: 4832 10e8 8091 0000 lds r24,outsig.2165 4833 10ec 8860 ori r24,lo8(8) 4834 10ee 8093 0000 sts outsig.2165,r24 4835 .LBB1424: 4836 .LBB1425: 4837 .stabs "timers.c",132,0,0,.Ltext98 4838 .Ltext98: 4839 .stabn 68,0,15,.LM404-.LFBB18 4840 .LM404: 4841 10f2 8091 0000 lds r24,timer.2777 4842 10f6 9091 0000 lds r25,(timer.2777)+1 4843 10fa A091 0000 lds r26,(timer.2777)+2 4844 10fe B091 0000 lds r27,(timer.2777)+3 4845 .LBE1425: 4846 .LBE1424: 4847 .stabs "statemachine.c",132,0,0,.Ltext99 4848 .Ltext99: 132:statemachine.c **** switchmode = time()+1; 4849 .stabn 68,0,132,.LM405-.LFBB18 4850 .LM405: 4851 1102 0196 adiw r24,1 4852 1104 A11D adc r26,__zero_reg__ 4853 1106 B11D adc r27,__zero_reg__ 4854 1108 8093 0000 sts switchmode.5104,r24 4855 110c 9093 0000 sts (switchmode.5104)+1,r25 4856 1110 A093 0000 sts (switchmode.5104)+2,r26 4857 1114 B093 0000 sts (switchmode.5104)+3,r27 133:statemachine.c **** nextmode = MODE_CON_WOFF; 4858 .stabn 68,0,133,.LM406-.LFBB18 4859 .LM406: 4860 1118 86E0 ldi r24,lo8(6) 4861 111a 8093 0000 sts nextmode.5103,r24 4862 111e 00C0 rjmp .L133 4863 .L138: 134:statemachine.c **** break; 135:statemachine.c **** case MODE_FORCE_OFF: 136:statemachine.c **** memcpy(line2, "Press button off", 16); 4864 .stabn 68,0,136,.LM407-.LFBB18 4865 .LM407: 4866 1120 A0E0 ldi r26,lo8(line2.5110) 4867 1122 B0E0 ldi r27,hi8(line2.5110) 4868 1124 E0E0 ldi r30,lo8(.LC12) 4869 1126 F0E0 ldi r31,hi8(.LC12) 4870 1128 80E1 ldi r24,lo8(16) GAS LISTING /tmp/ccEMtt4X.s page 114 4871 .L150: 4872 112a 0190 ld r0,Z+ 4873 112c 0D92 st X+,r0 4874 112e 8150 subi r24,lo8(-(-1)) 4875 1130 01F4 brne .L150 137:statemachine.c **** outsig |= (1<<3); 4876 .stabn 68,0,137,.LM408-.LFBB18 4877 .LM408: 4878 1132 8091 0000 lds r24,outsig.2165 4879 1136 8860 ori r24,lo8(8) 4880 1138 8093 0000 sts outsig.2165,r24 4881 .LBB1422: 4882 .LBB1423: 4883 .stabs "timers.c",132,0,0,.Ltext100 4884 .Ltext100: 4885 .stabn 68,0,15,.LM409-.LFBB18 4886 .LM409: 4887 113c 8091 0000 lds r24,timer.2777 4888 1140 9091 0000 lds r25,(timer.2777)+1 4889 1144 A091 0000 lds r26,(timer.2777)+2 4890 1148 B091 0000 lds r27,(timer.2777)+3 4891 .LBE1423: 4892 .LBE1422: 4893 .stabs "statemachine.c",132,0,0,.Ltext101 4894 .Ltext101: 138:statemachine.c **** switchmode = time()+6; 4895 .stabn 68,0,138,.LM410-.LFBB18 4896 .LM410: 4897 114c 0696 adiw r24,6 4898 114e A11D adc r26,__zero_reg__ 4899 1150 B11D adc r27,__zero_reg__ 4900 1152 8093 0000 sts switchmode.5104,r24 4901 1156 9093 0000 sts (switchmode.5104)+1,r25 4902 115a A093 0000 sts (switchmode.5104)+2,r26 4903 115e B093 0000 sts (switchmode.5104)+3,r27 4904 1162 00C0 rjmp .L133 4905 .L140: 139:statemachine.c **** break; 140:statemachine.c **** case MODE_CON_WOFF: 141:statemachine.c **** memcpy(line2, "Watchdog waiting", 16); 4906 .stabn 68,0,141,.LM411-.LFBB18 4907 .LM411: 4908 1164 A0E0 ldi r26,lo8(line2.5110) 4909 1166 B0E0 ldi r27,hi8(line2.5110) 4910 1168 E0E0 ldi r30,lo8(.LC13) 4911 116a F0E0 ldi r31,hi8(.LC13) 4912 116c 80E1 ldi r24,lo8(16) 4913 .L151: 4914 116e 0190 ld r0,Z+ 4915 1170 0D92 st X+,r0 4916 1172 8150 subi r24,lo8(-(-1)) 4917 1174 01F4 brne .L151 4918 1176 00C0 rjmp .L133 4919 .L141: 142:statemachine.c **** break; 143:statemachine.c **** case MODE_CON_WON: 144:statemachine.c **** memcpy(line2, "Watching... ", 16); GAS LISTING /tmp/ccEMtt4X.s page 115 4920 .stabn 68,0,144,.LM412-.LFBB18 4921 .LM412: 4922 1178 A0E0 ldi r26,lo8(line2.5110) 4923 117a B0E0 ldi r27,hi8(line2.5110) 4924 117c E0E0 ldi r30,lo8(.LC14) 4925 117e F0E0 ldi r31,hi8(.LC14) 4926 1180 80E1 ldi r24,lo8(16) 4927 .L152: 4928 1182 0190 ld r0,Z+ 4929 1184 0D92 st X+,r0 4930 1186 8150 subi r24,lo8(-(-1)) 4931 1188 01F4 brne .L152 4932 118a 00C0 rjmp .L133 4933 .L331: 145:statemachine.c **** break; 146:statemachine.c **** case MODE_CON_WON_TIMEOUT: 147:statemachine.c **** memcpy(line2, "Watchdg late hit", 16); 4934 .stabn 68,0,147,.LM413-.LFBB18 4935 .LM413: 4936 118c A0E0 ldi r26,lo8(line2.5110) 4937 118e B0E0 ldi r27,hi8(line2.5110) 4938 1190 E0E0 ldi r30,lo8(.LC15) 4939 1192 F0E0 ldi r31,hi8(.LC15) 4940 1194 80E1 ldi r24,lo8(16) 4941 .L153: 4942 1196 0190 ld r0,Z+ 4943 1198 0D92 st X+,r0 4944 119a 8150 subi r24,lo8(-(-1)) 4945 119c 01F4 brne .L153 4946 .L133: 148:statemachine.c **** break; 149:statemachine.c **** default: 150:statemachine.c **** break; 151:statemachine.c **** } 152:statemachine.c **** } 153:statemachine.c **** 154:statemachine.c **** switch(MODE_MASK & machinemode) { 4947 .stabn 68,0,154,.LM414-.LFBB18 4948 .LM414: 4949 119e 8091 0000 lds r24,machinemode.2162 4950 11a2 90E0 ldi r25,lo8(0) 4951 11a4 8F71 andi r24,lo8(31) 4952 11a6 9070 andi r25,hi8(31) 4953 11a8 8330 cpi r24,3 4954 11aa 9105 cpc r25,__zero_reg__ 4955 11ac 01F0 breq .L157 4956 11ae 8430 cpi r24,4 4957 11b0 9105 cpc r25,__zero_reg__ 4958 11b2 04F4 brge .L161 4959 11b4 0097 sbiw r24,0 4960 11b6 01F0 breq .L155 4961 11b8 0197 sbiw r24,1 4962 11ba 01F0 breq .+2 4963 11bc 00C0 rjmp .L154 4964 11be 00C0 rjmp .L332 4965 .L161: 4966 11c0 8730 cpi r24,7 GAS LISTING /tmp/ccEMtt4X.s page 116 4967 11c2 9105 cpc r25,__zero_reg__ 4968 11c4 01F4 brne .+2 4969 11c6 00C0 rjmp .L159 4970 11c8 8830 cpi r24,8 4971 11ca 9105 cpc r25,__zero_reg__ 4972 11cc 01F4 brne .+2 4973 11ce 00C0 rjmp .L160 4974 11d0 0697 sbiw r24,6 4975 11d2 01F0 breq .+2 4976 11d4 00C0 rjmp .L154 4977 11d6 00C0 rjmp .L333 4978 .L155: 4979 .LBB1420: 4980 .LBB1421: 4981 .stabs "timers.c",132,0,0,.Ltext102 4982 .Ltext102: 4983 .stabn 68,0,15,.LM415-.LFBB18 4984 .LM415: 4985 11d8 8091 0000 lds r24,timer.2777 4986 11dc 9091 0000 lds r25,(timer.2777)+1 4987 11e0 A091 0000 lds r26,(timer.2777)+2 4988 11e4 B091 0000 lds r27,(timer.2777)+3 4989 .LBE1421: 4990 .LBE1420: 4991 .stabs "statemachine.c",132,0,0,.Ltext103 4992 .Ltext103: 155:statemachine.c **** case MODE_BANNER: 156:statemachine.c **** if(past(0)) machinemode = MODE_BANNER2; 4993 .stabn 68,0,156,.LM416-.LFBB18 4994 .LM416: 4995 11e8 1816 cp __zero_reg__,r24 4996 11ea 1906 cpc __zero_reg__,r25 4997 11ec 1A06 cpc __zero_reg__,r26 4998 11ee 1B06 cpc __zero_reg__,r27 4999 11f0 04F0 brlt .+2 5000 11f2 00C0 rjmp .L154 5001 11f4 81E0 ldi r24,lo8(1) 5002 11f6 00C0 rjmp .L311 5003 .L332: 5004 .LBB1418: 5005 .LBB1419: 5006 .stabs "timers.c",132,0,0,.Ltext104 5007 .Ltext104: 5008 .stabn 68,0,15,.LM417-.LFBB18 5009 .LM417: 5010 11f8 8091 0000 lds r24,timer.2777 5011 11fc 9091 0000 lds r25,(timer.2777)+1 5012 1200 A091 0000 lds r26,(timer.2777)+2 5013 1204 B091 0000 lds r27,(timer.2777)+3 5014 .LBE1419: 5015 .LBE1418: 5016 .stabs "statemachine.c",132,0,0,.Ltext105 5017 .Ltext105: 157:statemachine.c **** break; 158:statemachine.c **** case MODE_BANNER2: 159:statemachine.c **** if(past(1)) machinemode = MODE_IDLE_OFF; 5018 .stabn 68,0,159,.LM418-.LFBB18 GAS LISTING /tmp/ccEMtt4X.s page 117 5019 .LM418: 5020 1208 0297 sbiw r24,2 5021 120a A105 cpc r26,__zero_reg__ 5022 120c B105 cpc r27,__zero_reg__ 5023 120e 04F4 brge .+2 5024 1210 00C0 rjmp .L154 5025 1212 82E0 ldi r24,lo8(2) 5026 .L311: 5027 1214 8093 0000 sts machinemode.2162,r24 5028 1218 00C0 rjmp .L154 5029 .L157: 160:statemachine.c **** break; 161:statemachine.c **** case MODE_IDLE_OFF: 162:statemachine.c **** break; 163:statemachine.c **** case MODE_IDLE_DONTKNOW: 164:statemachine.c **** if(lastwdhit != -1) { 5030 .stabn 68,0,164,.LM419-.LFBB18 5031 .LM419: 5032 121a 8091 0000 lds r24,lastwdhit.2169 5033 121e 9091 0000 lds r25,(lastwdhit.2169)+1 5034 1222 A091 0000 lds r26,(lastwdhit.2169)+2 5035 1226 B091 0000 lds r27,(lastwdhit.2169)+3 5036 122a 8F5F subi r24,lo8(-1) 5037 122c 9F4F sbci r25,hi8(-1) 5038 122e AF4F sbci r26,hlo8(-1) 5039 1230 BF4F sbci r27,hhi8(-1) 5040 1232 01F0 breq .+2 5041 1234 00C0 rjmp .L325 5042 1236 00C0 rjmp .L154 5043 .L333: 165:statemachine.c **** machinemode = MODE_CON_WON; 166:statemachine.c **** } 167:statemachine.c **** break; 168:statemachine.c **** case MODE_CON_WOFF: 169:statemachine.c **** if(past(lastwdhit)) machinemode = MODE_CON_WON; 5044 .stabn 68,0,169,.LM420-.LFBB18 5045 .LM420: 5046 1238 2091 0000 lds r18,lastwdhit.2169 5047 123c 3091 0000 lds r19,(lastwdhit.2169)+1 5048 1240 4091 0000 lds r20,(lastwdhit.2169)+2 5049 1244 5091 0000 lds r21,(lastwdhit.2169)+3 5050 1248 2F3F cpi r18,lo8(-1) 5051 124a FFEF ldi r31,hi8(-1) 5052 124c 3F07 cpc r19,r31 5053 124e FFEF ldi r31,hlo8(-1) 5054 1250 4F07 cpc r20,r31 5055 1252 FFEF ldi r31,hhi8(-1) 5056 1254 5F07 cpc r21,r31 5057 1256 01F4 brne .+2 5058 1258 00C0 rjmp .L154 5059 .LBB1416: 5060 .LBB1417: 5061 .stabs "timers.c",132,0,0,.Ltext106 5062 .Ltext106: 5063 .stabn 68,0,15,.LM421-.LFBB18 5064 .LM421: 5065 125a 8091 0000 lds r24,timer.2777 GAS LISTING /tmp/ccEMtt4X.s page 118 5066 125e 9091 0000 lds r25,(timer.2777)+1 5067 1262 A091 0000 lds r26,(timer.2777)+2 5068 1266 B091 0000 lds r27,(timer.2777)+3 5069 .LBE1417: 5070 .LBE1416: 5071 .stabs "statemachine.c",132,0,0,.Ltext107 5072 .Ltext107: 5073 .stabn 68,0,169,.LM422-.LFBB18 5074 .LM422: 5075 126a 2817 cp r18,r24 5076 126c 3907 cpc r19,r25 5077 126e 4A07 cpc r20,r26 5078 1270 5B07 cpc r21,r27 5079 1272 04F0 brlt .+2 5080 1274 00C0 rjmp .L154 5081 1276 00C0 rjmp .L325 5082 .L159: 170:statemachine.c **** break; 171:statemachine.c **** case MODE_CON_WON: 172:statemachine.c **** if(lastwdhit == -1) { 5083 .stabn 68,0,172,.LM423-.LFBB18 5084 .LM423: 5085 1278 2091 0000 lds r18,lastwdhit.2169 5086 127c 3091 0000 lds r19,(lastwdhit.2169)+1 5087 1280 4091 0000 lds r20,(lastwdhit.2169)+2 5088 1284 5091 0000 lds r21,(lastwdhit.2169)+3 5089 1288 2F3F cpi r18,lo8(-1) 5090 128a 6FEF ldi r22,hi8(-1) 5091 128c 3607 cpc r19,r22 5092 128e 6FEF ldi r22,hlo8(-1) 5093 1290 4607 cpc r20,r22 5094 1292 6FEF ldi r22,hhi8(-1) 5095 1294 5607 cpc r21,r22 5096 1296 01F0 breq .L326 5097 .L162: 173:statemachine.c **** machinemode = MODE_IDLE_DONTKNOW; 174:statemachine.c **** } else if(past(lastwdhit+5)) { 5098 .stabn 68,0,174,.LM424-.LFBB18 5099 .LM424: 5100 1298 2A3F cpi r18,lo8(-6) 5101 129a 7FEF ldi r23,hi8(-6) 5102 129c 3707 cpc r19,r23 5103 129e 7FEF ldi r23,hlo8(-6) 5104 12a0 4707 cpc r20,r23 5105 12a2 7FEF ldi r23,hhi8(-6) 5106 12a4 5707 cpc r21,r23 5107 12a6 01F4 brne .+2 5108 12a8 00C0 rjmp .L154 5109 .LBB1414: 5110 .LBB1415: 5111 .stabs "timers.c",132,0,0,.Ltext108 5112 .Ltext108: 5113 .stabn 68,0,15,.LM425-.LFBB18 5114 .LM425: 5115 12aa 8091 0000 lds r24,timer.2777 5116 12ae 9091 0000 lds r25,(timer.2777)+1 5117 12b2 A091 0000 lds r26,(timer.2777)+2 GAS LISTING /tmp/ccEMtt4X.s page 119 5118 12b6 B091 0000 lds r27,(timer.2777)+3 5119 .LBE1415: 5120 .LBE1414: 5121 .stabs "statemachine.c",132,0,0,.Ltext109 5122 .Ltext109: 5123 .stabn 68,0,174,.LM426-.LFBB18 5124 .LM426: 5125 12ba 2B5F subi r18,lo8(-(5)) 5126 12bc 3F4F sbci r19,hi8(-(5)) 5127 12be 4F4F sbci r20,hlo8(-(5)) 5128 12c0 5F4F sbci r21,hhi8(-(5)) 5129 12c2 2817 cp r18,r24 5130 12c4 3907 cpc r19,r25 5131 12c6 4A07 cpc r20,r26 5132 12c8 5B07 cpc r21,r27 5133 12ca 04F0 brlt .+2 5134 12cc 00C0 rjmp .L154 175:statemachine.c **** machinemode = MODE_CON_WON_TIMEOUT; 5135 .stabn 68,0,175,.LM427-.LFBB18 5136 .LM427: 5137 12ce 88E0 ldi r24,lo8(8) 5138 12d0 00C0 rjmp .L311 5139 .L160: 176:statemachine.c **** } 177:statemachine.c **** break; 178:statemachine.c **** case MODE_CON_WON_TIMEOUT: 179:statemachine.c **** if(lastwdhit == -1) { 5140 .stabn 68,0,179,.LM428-.LFBB18 5141 .LM428: 5142 12d2 2091 0000 lds r18,lastwdhit.2169 5143 12d6 3091 0000 lds r19,(lastwdhit.2169)+1 5144 12da 4091 0000 lds r20,(lastwdhit.2169)+2 5145 12de 5091 0000 lds r21,(lastwdhit.2169)+3 5146 12e2 2F3F cpi r18,lo8(-1) 5147 12e4 8FEF ldi r24,hi8(-1) 5148 12e6 3807 cpc r19,r24 5149 12e8 8FEF ldi r24,hlo8(-1) 5150 12ea 4807 cpc r20,r24 5151 12ec 8FEF ldi r24,hhi8(-1) 5152 12ee 5807 cpc r21,r24 5153 12f0 01F4 brne .L163 5154 .L326: 180:statemachine.c **** machinemode = MODE_IDLE_DONTKNOW; 5155 .stabn 68,0,180,.LM429-.LFBB18 5156 .LM429: 5157 12f2 83E0 ldi r24,lo8(3) 5158 12f4 00C0 rjmp .L311 5159 .L163: 5160 .LBB1412: 5161 .LBB1413: 5162 .stabs "timers.c",132,0,0,.Ltext110 5163 .Ltext110: 5164 .stabn 68,0,15,.LM430-.LFBB18 5165 .LM430: 5166 12f6 8091 0000 lds r24,timer.2777 5167 12fa 9091 0000 lds r25,(timer.2777)+1 5168 12fe A091 0000 lds r26,(timer.2777)+2 GAS LISTING /tmp/ccEMtt4X.s page 120 5169 1302 B091 0000 lds r27,(timer.2777)+3 5170 .LBE1413: 5171 .LBE1412: 5172 .stabs "statemachine.c",132,0,0,.Ltext111 5173 .Ltext111: 181:statemachine.c **** } else if(time() - lastwdhit < 2) { 5174 .stabn 68,0,181,.LM431-.LFBB18 5175 .LM431: 5176 1306 821B sub r24,r18 5177 1308 930B sbc r25,r19 5178 130a A40B sbc r26,r20 5179 130c B50B sbc r27,r21 5180 130e 0297 sbiw r24,2 5181 1310 A105 cpc r26,__zero_reg__ 5182 1312 B105 cpc r27,__zero_reg__ 5183 1314 04F4 brge .L164 5184 .L325: 182:statemachine.c **** machinemode = MODE_CON_WON; 5185 .stabn 68,0,182,.LM432-.LFBB18 5186 .LM432: 5187 1316 87E0 ldi r24,lo8(7) 5188 1318 00C0 rjmp .L311 5189 .L164: 183:statemachine.c **** } else if(past(lastwdhit+30)) { 5190 .stabn 68,0,183,.LM433-.LFBB18 5191 .LM433: 5192 131a 213E cpi r18,lo8(-31) 5193 131c 9FEF ldi r25,hi8(-31) 5194 131e 3907 cpc r19,r25 5195 1320 9FEF ldi r25,hlo8(-31) 5196 1322 4907 cpc r20,r25 5197 1324 9FEF ldi r25,hhi8(-31) 5198 1326 5907 cpc r21,r25 5199 1328 01F0 breq .L154 5200 .LBB1410: 5201 .LBB1411: 5202 .stabs "timers.c",132,0,0,.Ltext112 5203 .Ltext112: 5204 .stabn 68,0,15,.LM434-.LFBB18 5205 .LM434: 5206 132a 8091 0000 lds r24,timer.2777 5207 132e 9091 0000 lds r25,(timer.2777)+1 5208 1332 A091 0000 lds r26,(timer.2777)+2 5209 1336 B091 0000 lds r27,(timer.2777)+3 5210 .LBE1411: 5211 .LBE1410: 5212 .stabs "statemachine.c",132,0,0,.Ltext113 5213 .Ltext113: 5214 .stabn 68,0,183,.LM435-.LFBB18 5215 .LM435: 5216 133a 225E subi r18,lo8(-(30)) 5217 133c 3F4F sbci r19,hi8(-(30)) 5218 133e 4F4F sbci r20,hlo8(-(30)) 5219 1340 5F4F sbci r21,hhi8(-(30)) 5220 1342 2817 cp r18,r24 5221 1344 3907 cpc r19,r25 5222 1346 4A07 cpc r20,r26 GAS LISTING /tmp/ccEMtt4X.s page 121 5223 1348 5B07 cpc r21,r27 5224 134a 04F4 brge .L154 184:statemachine.c **** machinemode = MODE_FORCE_OFF; 5225 .stabn 68,0,184,.LM436-.LFBB18 5226 .LM436: 5227 134c 84E0 ldi r24,lo8(4) 5228 134e 8093 0000 sts machinemode.2162,r24 185:statemachine.c **** nextmode = MODE_PRESSBUTTON; 5229 .stabn 68,0,185,.LM437-.LFBB18 5230 .LM437: 5231 1352 85E0 ldi r24,lo8(5) 5232 1354 8093 0000 sts nextmode.5103,r24 5233 .L154: 186:statemachine.c **** } 187:statemachine.c **** } 188:statemachine.c **** 189:statemachine.c **** if((machinemode & MODE_BUTTONMASK) == 0) { 5234 .stabn 68,0,189,.LM438-.LFBB18 5235 .LM438: 5236 1358 9091 0000 lds r25,machinemode.2162 5237 135c 97FD sbrc r25,7 5238 135e 00C0 rjmp .L165 190:statemachine.c **** // wait until button release after switching modes before checking 191:statemachine.c **** if(buttons == 0) { 5239 .stabn 68,0,191,.LM439-.LFBB18 5240 .LM439: 5241 1360 8091 0000 lds r24,buttons.2159 5242 1364 8823 tst r24 5243 1366 01F4 brne .L165 192:statemachine.c **** buttoncount = 0; 5244 .stabn 68,0,192,.LM440-.LFBB18 5245 .LM440: 5246 1368 1092 0000 sts buttoncount.5212,__zero_reg__ 193:statemachine.c **** machinemode |= MODE_BUTTONMASK; 5247 .stabn 68,0,193,.LM441-.LFBB18 5248 .LM441: 5249 136c 9068 ori r25,lo8(-128) 5250 136e 9093 0000 sts machinemode.2162,r25 5251 .L165: 194:statemachine.c **** } 195:statemachine.c **** } 196:statemachine.c **** 197:statemachine.c **** if(machinemode & MODE_BUTTONMASK) { 5252 .stabn 68,0,197,.LM442-.LFBB18 5253 .LM442: 5254 1372 9091 0000 lds r25,machinemode.2162 5255 1376 97FF sbrs r25,7 5256 1378 00C0 rjmp .L166 198:statemachine.c **** if(buttoncount > 4 && buttons & (1<<0)) { // power switch 5257 .stabn 68,0,198,.LM443-.LFBB18 5258 .LM443: 5259 137a 8091 0000 lds r24,buttoncount.5212 5260 137e 8530 cpi r24,lo8(5) 5261 1380 00F0 brlo .L167 5262 1382 8091 0000 lds r24,buttons.2159 5263 1386 80FF sbrs r24,0 5264 1388 00C0 rjmp .L167 GAS LISTING /tmp/ccEMtt4X.s page 122 5265 .LBB1409: 199:statemachine.c **** uint8_t mm = machinemode & MODE_MASK; 5266 .stabn 68,0,199,.LM444-.LFBB18 5267 .LM444: 5268 138a 892F mov r24,r25 5269 138c 8F71 andi r24,lo8(31) 200:statemachine.c **** if(mm == MODE_IDLE_OFF) { 5270 .stabn 68,0,200,.LM445-.LFBB18 5271 .LM445: 5272 138e 8230 cpi r24,lo8(2) 5273 1390 01F4 brne .L168 201:statemachine.c **** machinemode = MODE_PRESSBUTTON; 5274 .stabn 68,0,201,.LM446-.LFBB18 5275 .LM446: 5276 1392 85E0 ldi r24,lo8(5) 5277 1394 8093 0000 sts machinemode.2162,r24 202:statemachine.c **** nextmode = MODE_CON_WOFF; 5278 .stabn 68,0,202,.LM447-.LFBB18 5279 .LM447: 5280 1398 86E0 ldi r24,lo8(6) 5281 139a 00C0 rjmp .L312 5282 .L168: 203:statemachine.c **** } else if(mm == MODE_IDLE_DONTKNOW) { 5283 .stabn 68,0,203,.LM448-.LFBB18 5284 .LM448: 5285 139c 8330 cpi r24,lo8(3) 5286 139e 01F0 breq .L327 5287 .L169: 204:statemachine.c **** machinemode = MODE_FORCE_OFF; 205:statemachine.c **** nextmode = MODE_IDLE_OFF; 206:statemachine.c **** } else if(mm == MODE_PRESSBUTTON) { 5288 .stabn 68,0,206,.LM449-.LFBB18 5289 .LM449: 5290 13a0 8530 cpi r24,lo8(5) 5291 13a2 01F0 breq .L167 207:statemachine.c **** } else if(mm == MODE_FORCE_OFF) { 5292 .stabn 68,0,207,.LM450-.LFBB18 5293 .LM450: 5294 13a4 8430 cpi r24,lo8(4) 5295 13a6 01F0 breq .L167 208:statemachine.c **** } else if(mm == MODE_CON_WOFF) { 5296 .stabn 68,0,208,.LM451-.LFBB18 5297 .LM451: 5298 13a8 8630 cpi r24,lo8(6) 5299 13aa 01F0 breq .L327 5300 .L170: 209:statemachine.c **** machinemode = MODE_FORCE_OFF; 210:statemachine.c **** nextmode = MODE_IDLE_OFF; 211:statemachine.c **** } else if(mm == MODE_CON_WON) { 5301 .stabn 68,0,211,.LM452-.LFBB18 5302 .LM452: 5303 13ac 8730 cpi r24,lo8(7) 5304 13ae 01F0 breq .L327 5305 .L171: 212:statemachine.c **** machinemode = MODE_FORCE_OFF; 213:statemachine.c **** nextmode = MODE_IDLE_OFF; 214:statemachine.c **** } else if(mm == MODE_CON_WON_TIMEOUT) { GAS LISTING /tmp/ccEMtt4X.s page 123 5306 .stabn 68,0,214,.LM453-.LFBB18 5307 .LM453: 5308 13b0 8830 cpi r24,lo8(8) 5309 13b2 01F4 brne .L167 5310 .L327: 215:statemachine.c **** machinemode = MODE_FORCE_OFF; 5311 .stabn 68,0,215,.LM454-.LFBB18 5312 .LM454: 5313 13b4 84E0 ldi r24,lo8(4) 5314 13b6 8093 0000 sts machinemode.2162,r24 216:statemachine.c **** nextmode = MODE_IDLE_OFF; 5315 .stabn 68,0,216,.LM455-.LFBB18 5316 .LM455: 5317 13ba 82E0 ldi r24,lo8(2) 5318 .L312: 5319 13bc 8093 0000 sts nextmode.5103,r24 5320 .L167: 5321 .LBE1409: 217:statemachine.c **** } 218:statemachine.c **** } 219:statemachine.c **** 220:statemachine.c **** if(buttons & (1<<0)) buttoncount++; 5322 .stabn 68,0,220,.LM456-.LFBB18 5323 .LM456: 5324 13c0 8091 0000 lds r24,buttons.2159 5325 .LBE1408: 5326 13c4 80FF sbrs r24,0 5327 13c6 00C0 rjmp .L172 5328 .LBB1438: 5329 13c8 8091 0000 lds r24,buttoncount.5212 5330 13cc 8F5F subi r24,lo8(-(1)) 5331 13ce 8093 0000 sts buttoncount.5212,r24 5332 13d2 00C0 rjmp .L166 5333 .L172: 221:statemachine.c **** else buttoncount = 0; 5334 .stabn 68,0,221,.LM457-.LFBB18 5335 .LM457: 5336 13d4 1092 0000 sts buttoncount.5212,__zero_reg__ 5337 .L166: 222:statemachine.c **** } 223:statemachine.c **** 224:statemachine.c **** if(past(switchmode)) { 5338 .stabn 68,0,224,.LM458-.LFBB18 5339 .LM458: 5340 13d8 2091 0000 lds r18,switchmode.5104 5341 13dc 3091 0000 lds r19,(switchmode.5104)+1 5342 13e0 4091 0000 lds r20,(switchmode.5104)+2 5343 13e4 5091 0000 lds r21,(switchmode.5104)+3 5344 13e8 2F3F cpi r18,lo8(-1) 5345 13ea AFEF ldi r26,hi8(-1) 5346 13ec 3A07 cpc r19,r26 5347 13ee AFEF ldi r26,hlo8(-1) 5348 13f0 4A07 cpc r20,r26 5349 13f2 AFEF ldi r26,hhi8(-1) 5350 13f4 5A07 cpc r21,r26 5351 13f6 01F4 brne .+2 5352 13f8 00C0 rjmp .L128 GAS LISTING /tmp/ccEMtt4X.s page 124 5353 .LBB1434: 5354 .LBB1435: 5355 .stabs "timers.c",132,0,0,.Ltext114 5356 .Ltext114: 5357 .stabn 68,0,15,.LM459-.LFBB18 5358 .LM459: 5359 13fa 8091 0000 lds r24,timer.2777 5360 13fe 9091 0000 lds r25,(timer.2777)+1 5361 1402 A091 0000 lds r26,(timer.2777)+2 5362 1406 B091 0000 lds r27,(timer.2777)+3 5363 .LBE1435: 5364 .LBE1434: 5365 .stabs "statemachine.c",132,0,0,.Ltext115 5366 .Ltext115: 5367 .stabn 68,0,224,.LM460-.LFBB18 5368 .LM460: 5369 140a 2817 cp r18,r24 5370 140c 3907 cpc r19,r25 5371 140e 4A07 cpc r20,r26 5372 1410 5B07 cpc r21,r27 5373 1412 04F4 brge .L128 225:statemachine.c **** outsig &= ~(1<<3); 5374 .stabn 68,0,225,.LM461-.LFBB18 5375 .LM461: 5376 1414 8091 0000 lds r24,outsig.2165 5377 1418 877F andi r24,lo8(-9) 5378 141a 8093 0000 sts outsig.2165,r24 226:statemachine.c **** if(past(switchmode+1)) { 5379 .stabn 68,0,226,.LM462-.LFBB18 5380 .LM462: 5381 141e 2E3F cpi r18,lo8(-2) 5382 1420 BFEF ldi r27,hi8(-2) 5383 1422 3B07 cpc r19,r27 5384 1424 BFEF ldi r27,hlo8(-2) 5385 1426 4B07 cpc r20,r27 5386 1428 BFEF ldi r27,hhi8(-2) 5387 142a 5B07 cpc r21,r27 5388 142c 01F0 breq .L128 5389 .LBB1436: 5390 .LBB1437: 5391 .stabs "timers.c",132,0,0,.Ltext116 5392 .Ltext116: 5393 .stabn 68,0,15,.LM463-.LFBB18 5394 .LM463: 5395 142e 8091 0000 lds r24,timer.2777 5396 1432 9091 0000 lds r25,(timer.2777)+1 5397 1436 A091 0000 lds r26,(timer.2777)+2 5398 143a B091 0000 lds r27,(timer.2777)+3 5399 .LBE1437: 5400 .LBE1436: 5401 .stabs "statemachine.c",132,0,0,.Ltext117 5402 .Ltext117: 5403 .stabn 68,0,226,.LM464-.LFBB18 5404 .LM464: 5405 143e 2F5F subi r18,lo8(-(1)) 5406 1440 3F4F sbci r19,hi8(-(1)) 5407 1442 4F4F sbci r20,hlo8(-(1)) GAS LISTING /tmp/ccEMtt4X.s page 125 5408 1444 5F4F sbci r21,hhi8(-(1)) 5409 1446 2817 cp r18,r24 5410 1448 3907 cpc r19,r25 5411 144a 4A07 cpc r20,r26 5412 144c 5B07 cpc r21,r27 5413 144e 04F4 brge .L128 227:statemachine.c **** machinemode = nextmode; 5414 .stabn 68,0,227,.LM465-.LFBB18 5415 .LM465: 5416 1450 8091 0000 lds r24,nextmode.5103 5417 1454 8093 0000 sts machinemode.2162,r24 228:statemachine.c **** nextmode = 0; 5418 .stabn 68,0,228,.LM466-.LFBB18 5419 .LM466: 5420 1458 1092 0000 sts nextmode.5103,__zero_reg__ 229:statemachine.c **** lastwdhit = -1; 5421 .stabn 68,0,229,.LM467-.LFBB18 5422 .LM467: 5423 145c 8FEF ldi r24,lo8(-1) 5424 145e 9FEF ldi r25,hi8(-1) 5425 1460 AFEF ldi r26,hlo8(-1) 5426 1462 BFEF ldi r27,hhi8(-1) 5427 1464 8093 0000 sts lastwdhit.2169,r24 5428 1468 9093 0000 sts (lastwdhit.2169)+1,r25 5429 146c A093 0000 sts (lastwdhit.2169)+2,r26 5430 1470 B093 0000 sts (lastwdhit.2169)+3,r27 230:statemachine.c **** switchmode = -1; 5431 .stabn 68,0,230,.LM468-.LFBB18 5432 .LM468: 5433 1474 8093 0000 sts switchmode.5104,r24 5434 1478 9093 0000 sts (switchmode.5104)+1,r25 5435 147c A093 0000 sts (switchmode.5104)+2,r26 5436 1480 B093 0000 sts (switchmode.5104)+3,r27 5437 .L128: 5438 .LBE1438: 5439 .LBE1407: 5440 .stabs "main.c",132,0,0,.Ltext118 5441 .Ltext118: 5442 .stabn 68,0,115,.LM469-.LFBB18 5443 .LM469: 5444 1484 8091 0000 lds r24,timer_hits.2118 5445 1488 81FF sbrs r24,1 5446 148a 00C0 rjmp .L173 5447 .stabn 68,0,116,.LM470-.LFBB18 5448 .LM470: 5449 148c 8091 0000 lds r24,i2c_result.1929 5450 1490 8630 cpi r24,lo8(6) 5451 1492 01F4 brne .L174 5452 .LBB1439: 5453 .LBB1440: 5454 .stabs "../lib/i2c.c",132,0,0,.Ltext119 5455 .Ltext119: 5456 .stabn 68,0,155,.LM471-.LFBB18 5457 .LM471: 5458 1494 1092 BC00 sts 188,__zero_reg__ 5459 .stabn 68,0,156,.LM472-.LFBB18 5460 .LM472: GAS LISTING /tmp/ccEMtt4X.s page 126 5461 1498 8091 BC00 lds r24,188 5462 149c 8068 ori r24,lo8(-128) 5463 149e 8093 BC00 sts 188,r24 5464 .LBB1441: 5465 .LBB1442: 5466 .stabs "../lib/devicelock.c",132,0,0,.Ltext120 5467 .Ltext120: 5468 .stabn 68,0,29,.LM473-.LFBB18 5469 .LM473: 5470 /* #APP */ 5471 ; 29 "../lib/devicelock.c" 1 5472 14a2 F894 cli 5473 ; 0 "" 2 5474 .stabn 68,0,30,.LM474-.LFBB18 5475 .LM474: 5476 /* #NOAPP */ 5477 14a4 8091 0000 lds r24,device_locks.1810 5478 14a8 8B7F andi r24,lo8(-5) 5479 14aa 8093 0000 sts device_locks.1810,r24 5480 .stabn 68,0,31,.LM475-.LFBB18 5481 .LM475: 5482 /* #APP */ 5483 ; 31 "../lib/devicelock.c" 1 5484 14ae 7894 sei 5485 ; 0 "" 2 5486 /* #NOAPP */ 5487 .LBE1442: 5488 .LBE1441: 5489 .stabs "../lib/i2c.c",132,0,0,.Ltext121 5490 .Ltext121: 5491 .stabn 68,0,159,.LM476-.LFBB18 5492 .LM476: 5493 14b0 9091 0000 lds r25,i2c_speed.8374 5494 .LBB1443: 5495 .LBB1444: 5496 .stabn 68,0,146,.LM477-.LFBB18 5497 .LM477: 5498 14b4 1092 0000 sts i2c_status.1928,__zero_reg__ 5499 .stabn 68,0,147,.LM478-.LFBB18 5500 .LM478: 5501 14b8 9093 B800 sts 184,r25 5502 .stabn 68,0,148,.LM479-.LFBB18 5503 .LM479: 5504 14bc 8091 B900 lds r24,185 5505 14c0 8C7F andi r24,lo8(-4) 5506 14c2 8093 B900 sts 185,r24 5507 .stabn 68,0,149,.LM480-.LFBB18 5508 .LM480: 5509 14c6 85E0 ldi r24,lo8(5) 5510 14c8 8093 BC00 sts 188,r24 5511 .stabn 68,0,150,.LM481-.LFBB18 5512 .LM481: 5513 14cc 9093 0000 sts i2c_speed.8374,r25 5514 .LBE1444: 5515 .LBE1443: 5516 .LBE1440: 5517 .LBE1439: GAS LISTING /tmp/ccEMtt4X.s page 127 5518 .stabs "main.c",132,0,0,.Ltext122 5519 .Ltext122: 5520 .stabn 68,0,118,.LM482-.LFBB18 5521 .LM482: 5522 14d0 1092 0000 sts i2c_result.1929,__zero_reg__ 5523 .L174: 5524 .stabn 68,0,121,.LM483-.LFBB18 5525 .LM483: 5526 14d4 8091 0000 lds r24,voltage.2156 5527 14d8 9091 0000 lds r25,(voltage.2156)+1 5528 14dc 2091 0000 lds r18,critical_voltage.2091 5529 14e0 3091 0000 lds r19,(critical_voltage.2091)+1 5530 14e4 8217 cp r24,r18 5531 14e6 9307 cpc r25,r19 5532 14e8 00F4 brsh .L175 5533 14ea E3E6 ldi r30,lo8(99) 5534 14ec E615 cp r30,r6 5535 14ee 00F0 brlo .L175 5536 14f0 6394 inc r6 5537 .L175: 5538 .stabn 68,0,122,.LM484-.LFBB18 5539 .LM484: 5540 14f2 8091 0000 lds r24,voltage.2156 5541 14f6 9091 0000 lds r25,(voltage.2156)+1 5542 14fa 8217 cp r24,r18 5543 14fc 9307 cpc r25,r19 5544 14fe 00F0 brlo .L176 5545 1500 6110 cpse r6,__zero_reg__ 5546 1502 6A94 dec r6 5547 .L176: 5548 .stabn 68,0,124,.LM485-.LFBB18 5549 .LM485: 5550 1504 8091 0000 lds r24,voltage.2156 5551 1508 9091 0000 lds r25,(voltage.2156)+1 5552 150c 8054 subi r24,lo8(8000) 5553 150e 9F41 sbci r25,hi8(8000) 5554 1510 00F4 brsh .L177 5555 1512 22E6 ldi r18,lo8(98) 5556 1514 2515 cp r18,r5 5557 1516 00F0 brlo .L177 5558 1518 5394 inc r5 5559 .L177: 5560 .stabn 68,0,125,.LM486-.LFBB18 5561 .LM486: 5562 151a 8091 0000 lds r24,voltage.2156 5563 151e 9091 0000 lds r25,(voltage.2156)+1 5564 1522 8054 subi r24,lo8(8000) 5565 1524 9F41 sbci r25,hi8(8000) 5566 1526 00F0 brlo .L178 5567 1528 5110 cpse r5,__zero_reg__ 5568 152a 5A94 dec r5 5569 .L178: 5570 .stabn 68,0,127,.LM487-.LFBB18 5571 .LM487: 5572 152c 8091 0000 lds r24,timer_hits.2118 5573 1530 8D7F andi r24,lo8(-3) 5574 1532 8093 0000 sts timer_hits.2118,r24 GAS LISTING /tmp/ccEMtt4X.s page 128 5575 .L173: 5576 .stabn 68,0,130,.LM488-.LFBB18 5577 .LM488: 5578 1536 6CE3 ldi r22,lo8(60) 5579 1538 6515 cp r22,r5 5580 153a 00F4 brsh .L179 5581 .stabn 68,0,131,.LM489-.LFBB18 5582 .LM489: 5583 153c 439A sbi 40-32,3 5584 153e 00C0 rjmp .L180 5585 .L179: 5586 .stabn 68,0,133,.LM490-.LFBB18 5587 .LM490: 5588 1540 4398 cbi 40-32,3 5589 .L180: 5590 .stabn 68,0,136,.LM491-.LFBB18 5591 .LM491: 5592 1542 8091 0000 lds r24,timer_hits.2118 5593 1546 82FF sbrs r24,2 5594 1548 00C0 rjmp .L181 5595 .stabn 68,0,137,.LM492-.LFBB18 5596 .LM492: 5597 154a 8091 0000 lds r24,timer_hits.2118 5598 154e 8B7F andi r24,lo8(-5) 5599 1550 8093 0000 sts timer_hits.2118,r24 5600 .LBB1445: 5601 .LBB1446: 240:main.c **** } else if(cin[3] == 'C') { // calibrate/configure 241:main.c **** if(cin[4] == 'C') { // current sensor zero 242:main.c **** uint8_t num = DIGIT_TO_NUM(cin[5]); 243:main.c **** if(num >= 1 && num <= 3) { 244:main.c **** if(num == 1) { 245:main.c **** cs0_calib_0a = adcval[7]; 246:main.c **** } else if(num == 2) { 247:main.c **** cs1_calib_0a = adcval[0]; 248:main.c **** } else if(num == 3) { 249:main.c **** cs2_calib_0a = adcval[1]; 250:main.c **** } 251:main.c **** eeprom_save(); 252:main.c **** } else goto error; 253:main.c **** } else if(cin[4] == 'V') { // voltage 254:main.c **** if(cin[5] == 'N') { // nominal (12v) 255:main.c **** vs_calib_12v = adcval[6]; 256:main.c **** eeprom_save(); 257:main.c **** cin[6] = ','; 258:main.c **** cin[7] = 'O'; 259:main.c **** cin[8] = 'K'; 260:main.c **** cin[9] = 0; 261:main.c **** nmea_tx_str(cin+3); 262:main.c **** } else goto error; 263:main.c **** } else if(cin[4] == 'R') { 264:main.c **** if(cin[5] == 'A') { 265:main.c **** // reset all 266:main.c **** eeprom_load(1); 267:main.c **** } else goto error; 268:main.c **** } 269:main.c **** } else { GAS LISTING /tmp/ccEMtt4X.s page 129 270:main.c **** goto error; 271:main.c **** } 272:main.c **** 273:main.c **** return 0; 274:main.c **** 275:main.c **** error: 276:main.c **** nmea_tx_str("ERR,Invalid"); 277:main.c **** return 1; 278:main.c **** } 279:main.c **** 280:main.c **** void update_i2c(void) 281:main.c **** { 282:main.c **** uint8_t in[10]; 283:main.c **** in[0] = 0; 284:main.c **** if(i2c_read_end_transaction(in) == 0) { 285:main.c **** in[0] = 'T'; 286:main.c **** in[1] = 'W'; 287:main.c **** in[2] = 'I'; 288:main.c **** in[3] = ','; 289:main.c **** in[4] = 'F'; 290:main.c **** in[5] = 'A'; 291:main.c **** in[6] = 'I'; 292:main.c **** in[7] = 'L'; 293:main.c **** in[8] = 0; 294:main.c **** nmea_tx_str(in); 295:main.c **** reset_i2c(); 296:main.c **** return; 297:main.c **** } 298:main.c **** 299:main.c **** if(in[0] == 'A') { 300:main.c **** // good data 301:main.c **** inservo[0] = *((uint16_t *)(in+1)); 302:main.c **** inservo[1] = *((uint16_t *)(in+3)); 303:main.c **** inservo[2] = *((uint16_t *)(in+5)); 304:main.c **** inservo[0] /= 20; 305:main.c **** inservo[1] /= 20; 306:main.c **** inservo[2] /= 20; 307:main.c **** insig = in[7]; 308:main.c **** } else { 309:main.c **** in[0] = 'F'; 310:main.c **** in[1] = 0; 311:main.c **** nmea_tx_str(in); 312:main.c **** } 313:main.c **** 314:main.c **** uint8_t write[8]; 315:main.c **** write[0] = 'C'; 316:main.c **** *((uint16_t *)(write+1)) = outservo[0]; 317:main.c **** *((uint16_t *)(write+3)) = outservo[1]; 318:main.c **** *((uint16_t *)(write+5)) = outservo[2]; 319:main.c **** write[7] = outsig; 320:main.c **** i2c_write_transaction(102, 8, write); 321:main.c **** } 322:main.c **** 323:main.c **** void transmit_status(void) 324:main.c **** { 325:main.c **** uint8_t s[80]; 326:main.c **** GAS LISTING /tmp/ccEMtt4X.s page 130 327:main.c **** snprintf(s, 80, "SSR,%04x,%04x,%04x", inservo[0], inservo[1], inservo[2]); 5602 .stabn 68,0,327,.LM493-.LFBB18 5603 .LM493: 5604 1554 8DB7 in r24,__SP_L__ 5605 1556 9EB7 in r25,__SP_H__ 5606 1558 0C97 sbiw r24,12 5607 155a 0FB6 in __tmp_reg__,__SREG__ 5608 155c F894 cli 5609 155e 9EBF out __SP_H__,r25 5610 1560 0FBE out __SREG__,__tmp_reg__ 5611 1562 8DBF out __SP_L__,r24 5612 1564 EDB7 in r30,__SP_L__ 5613 1566 FEB7 in r31,__SP_H__ 5614 1568 3196 adiw r30,1 5615 156a 20E5 ldi r18,lo8(80) 5616 156c 30E0 ldi r19,hi8(80) 5617 156e 2C0F add r18,r28 5618 1570 3D1F adc r19,r29 5619 1572 ADB7 in r26,__SP_L__ 5620 1574 BEB7 in r27,__SP_H__ 5621 1576 1296 adiw r26,1+1 5622 1578 3C93 st X,r19 5623 157a 2E93 st -X,r18 5624 157c 1197 sbiw r26,1 5625 157e 00E5 ldi r16,lo8(80) 5626 1580 10E0 ldi r17,hi8(80) 5627 1582 1383 std Z+3,r17 5628 1584 0283 std Z+2,r16 5629 1586 60E0 ldi r22,lo8(.LC16) 5630 1588 70E0 ldi r23,hi8(.LC16) 5631 158a 7583 std Z+5,r23 5632 158c 6483 std Z+4,r22 5633 158e 8091 0000 lds r24,inservo.2163 5634 1592 9091 0000 lds r25,(inservo.2163)+1 5635 1596 9783 std Z+7,r25 5636 1598 8683 std Z+6,r24 5637 159a 8091 0000 lds r24,inservo.2163+2 5638 159e 9091 0000 lds r25,(inservo.2163+2)+1 5639 15a2 9187 std Z+9,r25 5640 15a4 8087 std Z+8,r24 5641 15a6 8091 0000 lds r24,inservo.2163+4 5642 15aa 9091 0000 lds r25,(inservo.2163+4)+1 5643 15ae 9387 std Z+11,r25 5644 15b0 8287 std Z+10,r24 5645 15b2 0E94 0000 call snprintf 328:main.c **** nmea_tx_str(s); 5646 .stabn 68,0,328,.LM494-.LFBB18 5647 .LM494: 5648 15b6 8DB7 in r24,__SP_L__ 5649 15b8 9EB7 in r25,__SP_H__ 5650 15ba 0C96 adiw r24,12 5651 15bc 0FB6 in __tmp_reg__,__SREG__ 5652 15be F894 cli 5653 15c0 9EBF out __SP_H__,r25 5654 15c2 0FBE out __SREG__,__tmp_reg__ 5655 15c4 8DBF out __SP_L__,r24 5656 15c6 CE01 movw r24,r28 GAS LISTING /tmp/ccEMtt4X.s page 131 5657 15c8 805B subi r24,lo8(-(80)) 5658 15ca 9F4F sbci r25,hi8(-(80)) 5659 15cc 0E94 0000 call nmea_tx_str.1915 329:main.c **** snprintf(s, 80, "SDR,%02x,%02x", insig, buttons); 5660 .stabn 68,0,329,.LM495-.LFBB18 5661 .LM495: 5662 15d0 9091 0000 lds r25,buttons.2159 5663 15d4 ADB7 in r26,__SP_L__ 5664 15d6 BEB7 in r27,__SP_H__ 5665 15d8 1A97 sbiw r26,10 5666 15da 0FB6 in __tmp_reg__,__SREG__ 5667 15dc F894 cli 5668 15de BEBF out __SP_H__,r27 5669 15e0 0FBE out __SREG__,__tmp_reg__ 5670 15e2 ADBF out __SP_L__,r26 5671 15e4 EDB7 in r30,__SP_L__ 5672 15e6 FEB7 in r31,__SP_H__ 5673 15e8 3196 adiw r30,1 5674 15ea 20E5 ldi r18,lo8(80) 5675 15ec 30E0 ldi r19,hi8(80) 5676 15ee 2C0F add r18,r28 5677 15f0 3D1F adc r19,r29 5678 15f2 1296 adiw r26,1+1 5679 15f4 3C93 st X,r19 5680 15f6 2E93 st -X,r18 5681 15f8 1197 sbiw r26,1 5682 15fa 1383 std Z+3,r17 5683 15fc 0283 std Z+2,r16 5684 15fe 60E0 ldi r22,lo8(.LC17) 5685 1600 70E0 ldi r23,hi8(.LC17) 5686 1602 7583 std Z+5,r23 5687 1604 6483 std Z+4,r22 5688 1606 8091 0000 lds r24,insig.2164 5689 160a 8683 std Z+6,r24 5690 160c 1782 std Z+7,__zero_reg__ 5691 160e 9087 std Z+8,r25 5692 1610 1186 std Z+9,__zero_reg__ 5693 1612 0E94 0000 call snprintf 330:main.c **** nmea_tx_str(s); 5694 .stabn 68,0,330,.LM496-.LFBB18 5695 .LM496: 5696 1616 8DB7 in r24,__SP_L__ 5697 1618 9EB7 in r25,__SP_H__ 5698 161a 0A96 adiw r24,10 5699 161c 0FB6 in __tmp_reg__,__SREG__ 5700 161e F894 cli 5701 1620 9EBF out __SP_H__,r25 5702 1622 0FBE out __SREG__,__tmp_reg__ 5703 1624 8DBF out __SP_L__,r24 5704 1626 CE01 movw r24,r28 5705 1628 805B subi r24,lo8(-(80)) 5706 162a 9F4F sbci r25,hi8(-(80)) 5707 162c 0E94 0000 call nmea_tx_str.1915 5708 .LBB1447: 5709 .LBB1448: 5710 .stabs "timers.c",132,0,0,.Ltext123 5711 .Ltext123: GAS LISTING /tmp/ccEMtt4X.s page 132 5712 .stabn 68,0,15,.LM497-.LFBB18 5713 .LM497: 5714 1630 6091 0000 lds r22,timer.2777 5715 1634 7091 0000 lds r23,(timer.2777)+1 5716 1638 8091 0000 lds r24,(timer.2777)+2 5717 163c 9091 0000 lds r25,(timer.2777)+3 5718 1640 CA55 subi r28,lo8(-166) 5719 1642 DF4F sbci r29,hi8(-166) 5720 1644 6883 st Y,r22 5721 1646 7983 std Y+1,r23 5722 1648 8A83 std Y+2,r24 5723 164a 9B83 std Y+3,r25 5724 164c C65A subi r28,lo8(166) 5725 164e D040 sbci r29,hi8(166) 5726 .LBE1448: 5727 .LBE1447: 5728 .stabs "main.c",132,0,0,.Ltext124 5729 .Ltext124: 331:main.c **** 332:main.c **** snprintf(s, 80, "SVR,%"PRIi32",%05u,%i,%i,%i,%i,%i", 5730 .stabn 68,0,332,.LM498-.LFBB18 5731 .LM498: 5732 1650 2091 0000 lds r18,voltage.2156 5733 1654 3091 0000 lds r19,(voltage.2156)+1 5734 1658 4091 0000 lds r20,current.2157 5735 165c 5091 0000 lds r21,(current.2157)+1 5736 1660 6091 0000 lds r22,current.2157+2 5737 1664 7091 0000 lds r23,(current.2157+2)+1 5738 1668 E090 0000 lds r14,current.2157+4 5739 166c F090 0000 lds r15,(current.2157+4)+1 5740 1670 C090 0000 lds r12,temperature.2158 5741 1674 D090 0000 lds r13,(temperature.2158)+1 5742 1678 A090 0000 lds r10,temperature.2158+2 5743 167c B090 0000 lds r11,(temperature.2158+2)+1 5744 1680 8DB7 in r24,__SP_L__ 5745 1682 9EB7 in r25,__SP_H__ 5746 1684 4697 sbiw r24,22 5747 1686 0FB6 in __tmp_reg__,__SREG__ 5748 1688 F894 cli 5749 168a 9EBF out __SP_H__,r25 5750 168c 0FBE out __SREG__,__tmp_reg__ 5751 168e 8DBF out __SP_L__,r24 5752 1690 EDB7 in r30,__SP_L__ 5753 1692 FEB7 in r31,__SP_H__ 5754 1694 3196 adiw r30,1 5755 1696 80E5 ldi r24,lo8(80) 5756 1698 90E0 ldi r25,hi8(80) 5757 169a 8C0F add r24,r28 5758 169c 9D1F adc r25,r29 5759 169e ADB7 in r26,__SP_L__ 5760 16a0 BEB7 in r27,__SP_H__ 5761 16a2 1296 adiw r26,1+1 5762 16a4 9C93 st X,r25 5763 16a6 8E93 st -X,r24 5764 16a8 1197 sbiw r26,1 5765 16aa 1383 std Z+3,r17 5766 16ac 0283 std Z+2,r16 GAS LISTING /tmp/ccEMtt4X.s page 133 5767 16ae A0E0 ldi r26,lo8(.LC18) 5768 16b0 B0E0 ldi r27,hi8(.LC18) 5769 16b2 B583 std Z+5,r27 5770 16b4 A483 std Z+4,r26 5771 16b6 CA55 subi r28,lo8(-166) 5772 16b8 DF4F sbci r29,hi8(-166) 5773 16ba 8881 ld r24,Y 5774 16bc 9981 ldd r25,Y+1 5775 16be AA81 ldd r26,Y+2 5776 16c0 BB81 ldd r27,Y+3 5777 16c2 C65A subi r28,lo8(166) 5778 16c4 D040 sbci r29,hi8(166) 5779 16c6 8683 std Z+6,r24 5780 16c8 9783 std Z+7,r25 5781 16ca A087 std Z+8,r26 5782 16cc B187 std Z+9,r27 5783 16ce 3387 std Z+11,r19 5784 16d0 2287 std Z+10,r18 5785 16d2 5587 std Z+13,r21 5786 16d4 4487 std Z+12,r20 5787 16d6 7787 std Z+15,r23 5788 16d8 6687 std Z+14,r22 5789 16da F18A std Z+17,r15 5790 16dc E08A std Z+16,r14 5791 16de D38A std Z+19,r13 5792 16e0 C28A std Z+18,r12 5793 16e2 B58A std Z+21,r11 5794 16e4 A48A std Z+20,r10 5795 16e6 0E94 0000 call snprintf 333:main.c **** time(), voltage, current[0], current[1], current[2], temperature[0], temperature[1]); 334:main.c **** 335:main.c **** nmea_tx_str(s); 5796 .stabn 68,0,335,.LM499-.LFBB18 5797 .LM499: 5798 16ea ADB7 in r26,__SP_L__ 5799 16ec BEB7 in r27,__SP_H__ 5800 16ee 5696 adiw r26,22 5801 16f0 0FB6 in __tmp_reg__,__SREG__ 5802 16f2 F894 cli 5803 16f4 BEBF out __SP_H__,r27 5804 16f6 0FBE out __SREG__,__tmp_reg__ 5805 16f8 ADBF out __SP_L__,r26 5806 16fa CE01 movw r24,r28 5807 16fc 805B subi r24,lo8(-(80)) 5808 16fe 9F4F sbci r25,hi8(-(80)) 5809 1700 0E94 0000 call nmea_tx_str.1915 5810 .LBE1446: 5811 .LBE1445: 5812 .LBB1449: 5813 .LBB1398: 5814 .LBB1397: 5815 .LBB1396: 5816 .LBB1366: 5817 .LBB1367: 5818 .stabs "display.c",132,0,0,.Ltext125 5819 .Ltext125: 5820 .stabn 68,0,142,.LM500-.LFBB18 GAS LISTING /tmp/ccEMtt4X.s page 134 5821 .LM500: 5822 1704 80E8 ldi r24,lo8(-128) 5823 1706 0E94 0000 call display_write_rs_l.4146 5824 .LBE1367: 5825 .LBE1366: 5826 .LBB1368: 5827 .LBB1369: 5828 .stabs "timers.c",132,0,0,.Ltext126 5829 .Ltext126: 5830 .stabn 68,0,15,.LM501-.LFBB18 5831 .LM501: 5832 170a 6091 0000 lds r22,timer.2777 5833 170e 7091 0000 lds r23,(timer.2777)+1 5834 1712 8091 0000 lds r24,(timer.2777)+2 5835 1716 9091 0000 lds r25,(timer.2777)+3 5836 .LBE1369: 5837 .LBE1368: 5838 .stabs "statemachine.c",132,0,0,.Ltext127 5839 .Ltext127: 5840 .stabn 68,0,55,.LM502-.LFBB18 5841 .LM502: 5842 171a 2091 0000 lds r18,numscreens.5106 5843 171e E22E mov r14,r18 5844 1720 FF24 clr r15 5845 1722 00E0 ldi r16,lo8(0) 5846 1724 10E0 ldi r17,hi8(0) 5847 1726 A801 movw r20,r16 5848 1728 9701 movw r18,r14 5849 172a 0E94 0000 call __divmodsi4 5850 172e 97FD sbrc r25,7 5851 1730 00C0 rjmp .L182 5852 .LBB1370: 5853 .LBB1371: 5854 .stabs "timers.c",132,0,0,.Ltext128 5855 .Ltext128: 5856 .stabn 68,0,15,.LM503-.LFBB18 5857 .LM503: 5858 1732 6091 0000 lds r22,timer.2777 5859 1736 7091 0000 lds r23,(timer.2777)+1 5860 173a 8091 0000 lds r24,(timer.2777)+2 5861 173e 9091 0000 lds r25,(timer.2777)+3 5862 .LBE1371: 5863 .LBE1370: 5864 .stabs "statemachine.c",132,0,0,.Ltext129 5865 .Ltext129: 5866 .stabn 68,0,55,.LM504-.LFBB18 5867 .LM504: 5868 1742 A801 movw r20,r16 5869 1744 9701 movw r18,r14 5870 1746 0E94 0000 call __divmodsi4 5871 174a 6330 cpi r22,lo8(3) 5872 174c 7105 cpc r23,__zero_reg__ 5873 174e 8105 cpc r24,__zero_reg__ 5874 1750 9105 cpc r25,__zero_reg__ 5875 1752 04F0 brlt .+2 5876 1754 00C0 rjmp .L182 5877 .stabn 68,0,56,.LM505-.LFBB18 GAS LISTING /tmp/ccEMtt4X.s page 135 5878 .LM505: 5879 1756 E090 0000 lds r14,voltage.2156 5880 175a F090 0000 lds r15,(voltage.2156)+1 5881 175e A090 0000 lds r10,voltage.2156 5882 1762 B090 0000 lds r11,(voltage.2156)+1 5883 1766 8091 0000 lds r24,current.2157 5884 176a 9091 0000 lds r25,(current.2157)+1 5885 176e 97FD sbrc r25,7 5886 1770 00C0 rjmp .L183 5887 1772 00E2 ldi r16,lo8(32) 5888 1774 10E0 ldi r17,hi8(32) 5889 1776 00C0 rjmp .L184 5890 .L183: 5891 1778 0DE2 ldi r16,lo8(45) 5892 177a 10E0 ldi r17,hi8(45) 5893 .L184: 5894 177c 8091 0000 lds r24,current.2157 5895 1780 9091 0000 lds r25,(current.2157)+1 5896 1784 97FF sbrs r25,7 5897 1786 00C0 rjmp .L185 5898 1788 8091 0000 lds r24,current.2157 5899 178c 9091 0000 lds r25,(current.2157)+1 5900 1790 6CE9 ldi r22,lo8(-100) 5901 1792 7FEF ldi r23,hi8(-100) 5902 1794 00C0 rjmp .L313 5903 .L185: 5904 1796 8091 0000 lds r24,current.2157 5905 179a 9091 0000 lds r25,(current.2157)+1 5906 179e 64E6 ldi r22,lo8(100) 5907 17a0 70E0 ldi r23,hi8(100) 5908 .L313: 5909 17a2 0E94 0000 call __divmodhi4 5910 17a6 C62E mov r12,r22 5911 17a8 472F mov r20,r23 5912 17aa 8091 0000 lds r24,current.2157 5913 17ae 9091 0000 lds r25,(current.2157)+1 5914 17b2 97FF sbrs r25,7 5915 17b4 00C0 rjmp .L187 5916 17b6 8091 0000 lds r24,current.2157 5917 17ba 9091 0000 lds r25,(current.2157)+1 5918 17be 9095 com r25 5919 17c0 8195 neg r24 5920 17c2 9F4F sbci r25,lo8(-1) 5921 17c4 00C0 rjmp .L314 5922 .L187: 5923 17c6 8091 0000 lds r24,current.2157 5924 17ca 9091 0000 lds r25,(current.2157)+1 5925 .L314: 5926 17ce 64E6 ldi r22,lo8(100) 5927 17d0 70E0 ldi r23,hi8(100) 5928 17d2 0E94 0000 call __divmodhi4 5929 17d6 382F mov r19,r24 5930 17d8 292F mov r18,r25 5931 17da EDB7 in r30,__SP_L__ 5932 17dc FEB7 in r31,__SP_H__ 5933 17de 7097 sbiw r30,16 5934 17e0 0FB6 in __tmp_reg__,__SREG__ GAS LISTING /tmp/ccEMtt4X.s page 136 5935 17e2 F894 cli 5936 17e4 FEBF out __SP_H__,r31 5937 17e6 0FBE out __SREG__,__tmp_reg__ 5938 17e8 EDBF out __SP_L__,r30 5939 17ea 3196 adiw r30,1 5940 17ec ADB7 in r26,__SP_L__ 5941 17ee BEB7 in r27,__SP_H__ 5942 17f0 1296 adiw r26,1+1 5943 17f2 9C92 st X,r9 5944 17f4 8E92 st -X,r8 5945 17f6 1197 sbiw r26,1 5946 17f8 81E1 ldi r24,lo8(17) 5947 17fa 90E0 ldi r25,hi8(17) 5948 17fc 9383 std Z+3,r25 5949 17fe 8283 std Z+2,r24 5950 1800 80E0 ldi r24,lo8(.LC19) 5951 1802 90E0 ldi r25,hi8(.LC19) 5952 1804 9583 std Z+5,r25 5953 1806 8483 std Z+4,r24 5954 1808 C701 movw r24,r14 5955 180a 68EE ldi r22,lo8(1000) 5956 180c 73E0 ldi r23,hi8(1000) 5957 180e 0E94 0000 call __udivmodhi4 5958 1812 7783 std Z+7,r23 5959 1814 6683 std Z+6,r22 5960 1816 C501 movw r24,r10 5961 1818 68EE ldi r22,lo8(1000) 5962 181a 73E0 ldi r23,hi8(1000) 5963 181c 0E94 0000 call __udivmodhi4 5964 1820 9187 std Z+9,r25 5965 1822 8087 std Z+8,r24 5966 1824 1387 std Z+11,r17 5967 1826 0287 std Z+10,r16 5968 1828 C486 std Z+12,r12 5969 182a 4587 std Z+13,r20 5970 182c 3687 std Z+14,r19 5971 182e 2787 std Z+15,r18 5972 1830 0E94 0000 call snprintf 5973 1834 EDB7 in r30,__SP_L__ 5974 1836 FEB7 in r31,__SP_H__ 5975 1838 7096 adiw r30,16 5976 183a 00C0 rjmp .L321 5977 .L182: 5978 .LBB1372: 5979 .LBB1373: 5980 .stabs "timers.c",132,0,0,.Ltext130 5981 .Ltext130: 5982 .stabn 68,0,15,.LM506-.LFBB18 5983 .LM506: 5984 183c 6091 0000 lds r22,timer.2777 5985 1840 7091 0000 lds r23,(timer.2777)+1 5986 1844 8091 0000 lds r24,(timer.2777)+2 5987 1848 9091 0000 lds r25,(timer.2777)+3 5988 .LBE1373: 5989 .LBE1372: 5990 .stabs "statemachine.c",132,0,0,.Ltext131 5991 .Ltext131: GAS LISTING /tmp/ccEMtt4X.s page 137 5992 .stabn 68,0,59,.LM507-.LFBB18 5993 .LM507: 5994 184c A801 movw r20,r16 5995 184e 9701 movw r18,r14 5996 1850 0E94 0000 call __divmodsi4 5997 1854 6330 cpi r22,lo8(3) 5998 1856 7105 cpc r23,__zero_reg__ 5999 1858 8105 cpc r24,__zero_reg__ 6000 185a 9105 cpc r25,__zero_reg__ 6001 185c 04F4 brge .+2 6002 185e 00C0 rjmp .L190 6003 .LBB1374: 6004 .LBB1375: 6005 .stabs "timers.c",132,0,0,.Ltext132 6006 .Ltext132: 6007 .stabn 68,0,15,.LM508-.LFBB18 6008 .LM508: 6009 1860 6091 0000 lds r22,timer.2777 6010 1864 7091 0000 lds r23,(timer.2777)+1 6011 1868 8091 0000 lds r24,(timer.2777)+2 6012 186c 9091 0000 lds r25,(timer.2777)+3 6013 .LBE1375: 6014 .LBE1374: 6015 .stabs "statemachine.c",132,0,0,.Ltext133 6016 .Ltext133: 6017 .stabn 68,0,59,.LM509-.LFBB18 6018 .LM509: 6019 1870 A801 movw r20,r16 6020 1872 9701 movw r18,r14 6021 1874 0E94 0000 call __divmodsi4 6022 1878 6630 cpi r22,lo8(6) 6023 187a 7105 cpc r23,__zero_reg__ 6024 187c 8105 cpc r24,__zero_reg__ 6025 187e 9105 cpc r25,__zero_reg__ 6026 1880 04F0 brlt .+2 6027 1882 00C0 rjmp .L190 6028 .stabn 68,0,60,.LM510-.LFBB18 6029 .LM510: 6030 1884 8091 0000 lds r24,temperature.2158 6031 1888 9091 0000 lds r25,(temperature.2158)+1 6032 188c 8250 subi r24,lo8(-32766) 6033 188e 9048 sbci r25,hi8(-32766) 6034 1890 01F4 brne .L191 6035 .stabn 68,0,61,.LM511-.LFBB18 6036 .LM511: 6037 1892 00D0 rcall . 6038 1894 00D0 rcall . 6039 1896 00D0 rcall . 6040 1898 EDB7 in r30,__SP_L__ 6041 189a FEB7 in r31,__SP_H__ 6042 189c 3196 adiw r30,1 6043 189e ADB7 in r26,__SP_L__ 6044 18a0 BEB7 in r27,__SP_H__ 6045 18a2 1296 adiw r26,1+1 6046 18a4 9C92 st X,r9 6047 18a6 8E92 st -X,r8 6048 18a8 1197 sbiw r26,1 GAS LISTING /tmp/ccEMtt4X.s page 138 6049 18aa 81E1 ldi r24,lo8(17) 6050 18ac 90E0 ldi r25,hi8(17) 6051 18ae 9383 std Z+3,r25 6052 18b0 8283 std Z+2,r24 6053 18b2 80E0 ldi r24,lo8(.LC20) 6054 18b4 90E0 ldi r25,hi8(.LC20) 6055 18b6 9583 std Z+5,r25 6056 18b8 8483 std Z+4,r24 6057 18ba 0E94 0000 call snprintf 6058 18be EDB7 in r30,__SP_L__ 6059 18c0 FEB7 in r31,__SP_H__ 6060 18c2 3696 adiw r30,6 6061 18c4 00C0 rjmp .L317 6062 .L191: 6063 .stabn 68,0,63,.LM512-.LFBB18 6064 .LM512: 6065 18c6 8091 0000 lds r24,temperature.2158 6066 18ca 9091 0000 lds r25,(temperature.2158)+1 6067 18ce 97FD sbrc r25,7 6068 18d0 00C0 rjmp .L193 6069 18d2 0BE2 ldi r16,lo8(43) 6070 18d4 10E0 ldi r17,hi8(43) 6071 18d6 00C0 rjmp .L194 6072 .L193: 6073 18d8 0DE2 ldi r16,lo8(45) 6074 18da 10E0 ldi r17,hi8(45) 6075 .L194: 6076 18dc 8091 0000 lds r24,temperature.2158 6077 18e0 9091 0000 lds r25,(temperature.2158)+1 6078 18e4 97FF sbrs r25,7 6079 18e6 00C0 rjmp .L195 6080 18e8 8091 0000 lds r24,temperature.2158 6081 18ec 9091 0000 lds r25,(temperature.2158)+1 6082 18f0 6CE9 ldi r22,lo8(-100) 6083 18f2 7FEF ldi r23,hi8(-100) 6084 18f4 00C0 rjmp .L315 6085 .L195: 6086 18f6 8091 0000 lds r24,temperature.2158 6087 18fa 9091 0000 lds r25,(temperature.2158)+1 6088 18fe 64E6 ldi r22,lo8(100) 6089 1900 70E0 ldi r23,hi8(100) 6090 .L315: 6091 1902 0E94 0000 call __divmodhi4 6092 1906 F62E mov r15,r22 6093 1908 472F mov r20,r23 6094 190a 8091 0000 lds r24,temperature.2158 6095 190e 9091 0000 lds r25,(temperature.2158)+1 6096 1912 97FF sbrs r25,7 6097 1914 00C0 rjmp .L197 6098 1916 8091 0000 lds r24,temperature.2158 6099 191a 9091 0000 lds r25,(temperature.2158)+1 6100 191e 9095 com r25 6101 1920 8195 neg r24 6102 1922 9F4F sbci r25,lo8(-1) 6103 1924 00C0 rjmp .L316 6104 .L197: 6105 1926 8091 0000 lds r24,temperature.2158 GAS LISTING /tmp/ccEMtt4X.s page 139 6106 192a 9091 0000 lds r25,(temperature.2158)+1 6107 .L316: 6108 192e 64E6 ldi r22,lo8(100) 6109 1930 70E0 ldi r23,hi8(100) 6110 1932 0E94 0000 call __divmodhi4 6111 1936 382F mov r19,r24 6112 1938 292F mov r18,r25 6113 193a 6DB7 in r22,__SP_L__ 6114 193c 7EB7 in r23,__SP_H__ 6115 193e 6C50 subi r22,lo8(-(-12)) 6116 1940 7040 sbci r23,hi8(-(-12)) 6117 1942 0FB6 in __tmp_reg__,__SREG__ 6118 1944 F894 cli 6119 1946 7EBF out __SP_H__,r23 6120 1948 0FBE out __SREG__,__tmp_reg__ 6121 194a 6DBF out __SP_L__,r22 6122 194c EDB7 in r30,__SP_L__ 6123 194e FEB7 in r31,__SP_H__ 6124 1950 3196 adiw r30,1 6125 1952 ADB7 in r26,__SP_L__ 6126 1954 BEB7 in r27,__SP_H__ 6127 1956 1296 adiw r26,1+1 6128 1958 9C92 st X,r9 6129 195a 8E92 st -X,r8 6130 195c 1197 sbiw r26,1 6131 195e 81E1 ldi r24,lo8(17) 6132 1960 90E0 ldi r25,hi8(17) 6133 1962 9383 std Z+3,r25 6134 1964 8283 std Z+2,r24 6135 1966 80E0 ldi r24,lo8(.LC21) 6136 1968 90E0 ldi r25,hi8(.LC21) 6137 196a 9583 std Z+5,r25 6138 196c 8483 std Z+4,r24 6139 196e 1783 std Z+7,r17 6140 1970 0683 std Z+6,r16 6141 1972 F086 std Z+8,r15 6142 1974 4187 std Z+9,r20 6143 1976 3287 std Z+10,r19 6144 1978 2387 std Z+11,r18 6145 197a 0E94 0000 call snprintf 6146 197e EDB7 in r30,__SP_L__ 6147 1980 FEB7 in r31,__SP_H__ 6148 1982 3C96 adiw r30,12 6149 .L317: 6150 1984 0FB6 in __tmp_reg__,__SREG__ 6151 1986 F894 cli 6152 1988 FEBF out __SP_H__,r31 6153 198a 0FBE out __SREG__,__tmp_reg__ 6154 198c EDBF out __SP_L__,r30 6155 .stabn 68,0,67,.LM513-.LFBB18 6156 .LM513: 6157 198e 8091 0000 lds r24,temperature.2158+2 6158 1992 9091 0000 lds r25,(temperature.2158+2)+1 6159 1996 8250 subi r24,lo8(-32766) 6160 1998 9048 sbci r25,hi8(-32766) 6161 199a 01F4 brne .L199 6162 .stabn 68,0,68,.LM514-.LFBB18 GAS LISTING /tmp/ccEMtt4X.s page 140 6163 .LM514: 6164 199c 00D0 rcall . 6165 199e 00D0 rcall . 6166 19a0 00D0 rcall . 6167 19a2 EDB7 in r30,__SP_L__ 6168 19a4 FEB7 in r31,__SP_H__ 6169 19a6 3196 adiw r30,1 6170 19a8 CE01 movw r24,r28 6171 19aa 8896 adiw r24,40 6172 19ac ADB7 in r26,__SP_L__ 6173 19ae BEB7 in r27,__SP_H__ 6174 19b0 1296 adiw r26,1+1 6175 19b2 9C93 st X,r25 6176 19b4 8E93 st -X,r24 6177 19b6 1197 sbiw r26,1 6178 19b8 88E0 ldi r24,lo8(8) 6179 19ba 90E0 ldi r25,hi8(8) 6180 19bc 9383 std Z+3,r25 6181 19be 8283 std Z+2,r24 6182 19c0 80E0 ldi r24,lo8(.LC22) 6183 19c2 90E0 ldi r25,hi8(.LC22) 6184 .L328: 6185 19c4 9583 std Z+5,r25 6186 19c6 8483 std Z+4,r24 6187 19c8 0E94 0000 call snprintf 6188 19cc EDB7 in r30,__SP_L__ 6189 19ce FEB7 in r31,__SP_H__ 6190 19d0 3696 adiw r30,6 6191 .L321: 6192 19d2 0FB6 in __tmp_reg__,__SREG__ 6193 19d4 F894 cli 6194 19d6 FEBF out __SP_H__,r31 6195 19d8 0FBE out __SREG__,__tmp_reg__ 6196 19da EDBF out __SP_L__,r30 6197 19dc 00C0 rjmp .L189 6198 .L199: 6199 .stabn 68,0,70,.LM515-.LFBB18 6200 .LM515: 6201 19de 8091 0000 lds r24,temperature.2158+2 6202 19e2 9091 0000 lds r25,(temperature.2158+2)+1 6203 19e6 97FD sbrc r25,7 6204 19e8 00C0 rjmp .L200 6205 19ea 0BE2 ldi r16,lo8(43) 6206 19ec 10E0 ldi r17,hi8(43) 6207 19ee 00C0 rjmp .L201 6208 .L200: 6209 19f0 0DE2 ldi r16,lo8(45) 6210 19f2 10E0 ldi r17,hi8(45) 6211 .L201: 6212 19f4 8091 0000 lds r24,temperature.2158+2 6213 19f8 9091 0000 lds r25,(temperature.2158+2)+1 6214 19fc 97FF sbrs r25,7 6215 19fe 00C0 rjmp .L202 6216 1a00 8091 0000 lds r24,temperature.2158+2 6217 1a04 9091 0000 lds r25,(temperature.2158+2)+1 6218 1a08 6CE9 ldi r22,lo8(-100) 6219 1a0a 7FEF ldi r23,hi8(-100) GAS LISTING /tmp/ccEMtt4X.s page 141 6220 1a0c 00C0 rjmp .L318 6221 .L202: 6222 1a0e 8091 0000 lds r24,temperature.2158+2 6223 1a12 9091 0000 lds r25,(temperature.2158+2)+1 6224 1a16 64E6 ldi r22,lo8(100) 6225 1a18 70E0 ldi r23,hi8(100) 6226 .L318: 6227 1a1a 0E94 0000 call __divmodhi4 6228 1a1e F62E mov r15,r22 6229 1a20 472F mov r20,r23 6230 1a22 8091 0000 lds r24,temperature.2158+2 6231 1a26 9091 0000 lds r25,(temperature.2158+2)+1 6232 1a2a 97FF sbrs r25,7 6233 1a2c 00C0 rjmp .L204 6234 1a2e 8091 0000 lds r24,temperature.2158+2 6235 1a32 9091 0000 lds r25,(temperature.2158+2)+1 6236 1a36 9095 com r25 6237 1a38 8195 neg r24 6238 1a3a 9F4F sbci r25,lo8(-1) 6239 1a3c 00C0 rjmp .L319 6240 .L204: 6241 1a3e 8091 0000 lds r24,temperature.2158+2 6242 1a42 9091 0000 lds r25,(temperature.2158+2)+1 6243 .L319: 6244 1a46 64E6 ldi r22,lo8(100) 6245 1a48 70E0 ldi r23,hi8(100) 6246 1a4a 0E94 0000 call __divmodhi4 6247 1a4e 382F mov r19,r24 6248 1a50 292F mov r18,r25 6249 1a52 6DB7 in r22,__SP_L__ 6250 1a54 7EB7 in r23,__SP_H__ 6251 1a56 6C50 subi r22,lo8(-(-12)) 6252 1a58 7040 sbci r23,hi8(-(-12)) 6253 1a5a 0FB6 in __tmp_reg__,__SREG__ 6254 1a5c F894 cli 6255 1a5e 7EBF out __SP_H__,r23 6256 1a60 0FBE out __SREG__,__tmp_reg__ 6257 1a62 6DBF out __SP_L__,r22 6258 1a64 EDB7 in r30,__SP_L__ 6259 1a66 FEB7 in r31,__SP_H__ 6260 1a68 3196 adiw r30,1 6261 1a6a CE01 movw r24,r28 6262 1a6c 8896 adiw r24,40 6263 1a6e ADB7 in r26,__SP_L__ 6264 1a70 BEB7 in r27,__SP_H__ 6265 1a72 1296 adiw r26,1+1 6266 1a74 9C93 st X,r25 6267 1a76 8E93 st -X,r24 6268 1a78 1197 sbiw r26,1 6269 1a7a 88E0 ldi r24,lo8(8) 6270 1a7c 90E0 ldi r25,hi8(8) 6271 1a7e 9383 std Z+3,r25 6272 1a80 8283 std Z+2,r24 6273 1a82 80E0 ldi r24,lo8(.LC23) 6274 1a84 90E0 ldi r25,hi8(.LC23) 6275 1a86 9583 std Z+5,r25 6276 1a88 8483 std Z+4,r24 GAS LISTING /tmp/ccEMtt4X.s page 142 6277 1a8a 1783 std Z+7,r17 6278 1a8c 0683 std Z+6,r16 6279 1a8e F086 std Z+8,r15 6280 1a90 4187 std Z+9,r20 6281 1a92 3287 std Z+10,r19 6282 1a94 2387 std Z+11,r18 6283 1a96 0E94 0000 call snprintf 6284 1a9a EDB7 in r30,__SP_L__ 6285 1a9c FEB7 in r31,__SP_H__ 6286 1a9e 3C96 adiw r30,12 6287 1aa0 00C0 rjmp .L321 6288 .L190: 6289 .LBB1376: 6290 .LBB1377: 6291 .stabs "timers.c",132,0,0,.Ltext134 6292 .Ltext134: 6293 .stabn 68,0,15,.LM516-.LFBB18 6294 .LM516: 6295 1aa2 6091 0000 lds r22,timer.2777 6296 1aa6 7091 0000 lds r23,(timer.2777)+1 6297 1aaa 8091 0000 lds r24,(timer.2777)+2 6298 1aae 9091 0000 lds r25,(timer.2777)+3 6299 .LBE1377: 6300 .LBE1376: 6301 .stabs "statemachine.c",132,0,0,.Ltext135 6302 .Ltext135: 6303 .stabn 68,0,73,.LM517-.LFBB18 6304 .LM517: 6305 1ab2 A801 movw r20,r16 6306 1ab4 9701 movw r18,r14 6307 1ab6 0E94 0000 call __divmodsi4 6308 1aba 6630 cpi r22,lo8(6) 6309 1abc 7105 cpc r23,__zero_reg__ 6310 1abe 8105 cpc r24,__zero_reg__ 6311 1ac0 9105 cpc r25,__zero_reg__ 6312 1ac2 04F4 brge .+2 6313 1ac4 00C0 rjmp .L206 6314 .LBB1378: 6315 .LBB1379: 6316 .stabs "timers.c",132,0,0,.Ltext136 6317 .Ltext136: 6318 .stabn 68,0,15,.LM518-.LFBB18 6319 .LM518: 6320 1ac6 6091 0000 lds r22,timer.2777 6321 1aca 7091 0000 lds r23,(timer.2777)+1 6322 1ace 8091 0000 lds r24,(timer.2777)+2 6323 1ad2 9091 0000 lds r25,(timer.2777)+3 6324 .LBE1379: 6325 .LBE1378: 6326 .stabs "statemachine.c",132,0,0,.Ltext137 6327 .Ltext137: 6328 .stabn 68,0,73,.LM519-.LFBB18 6329 .LM519: 6330 1ad6 A801 movw r20,r16 6331 1ad8 9701 movw r18,r14 6332 1ada 0E94 0000 call __divmodsi4 6333 1ade 6930 cpi r22,lo8(9) GAS LISTING /tmp/ccEMtt4X.s page 143 6334 1ae0 7105 cpc r23,__zero_reg__ 6335 1ae2 8105 cpc r24,__zero_reg__ 6336 1ae4 9105 cpc r25,__zero_reg__ 6337 1ae6 04F0 brlt .+2 6338 1ae8 00C0 rjmp .L206 6339 .LBB1380: 6340 .stabn 68,0,74,.LM520-.LFBB18 6341 .LM520: 6342 1aea 2091 0000 lds r18,buttons.2159 6343 1aee 6DB7 in r22,__SP_L__ 6344 1af0 7EB7 in r23,__SP_H__ 6345 1af2 6C50 subi r22,lo8(-(-12)) 6346 1af4 7040 sbci r23,hi8(-(-12)) 6347 1af6 0FB6 in __tmp_reg__,__SREG__ 6348 1af8 F894 cli 6349 1afa 7EBF out __SP_H__,r23 6350 1afc 0FBE out __SREG__,__tmp_reg__ 6351 1afe 6DBF out __SP_L__,r22 6352 1b00 EDB7 in r30,__SP_L__ 6353 1b02 FEB7 in r31,__SP_H__ 6354 1b04 3196 adiw r30,1 6355 1b06 ADB7 in r26,__SP_L__ 6356 1b08 BEB7 in r27,__SP_H__ 6357 1b0a 1296 adiw r26,1+1 6358 1b0c 9C92 st X,r9 6359 1b0e 8E92 st -X,r8 6360 1b10 1197 sbiw r26,1 6361 1b12 81E1 ldi r24,lo8(17) 6362 1b14 90E0 ldi r25,hi8(17) 6363 1b16 9383 std Z+3,r25 6364 1b18 8283 std Z+2,r24 6365 1b1a 60E0 ldi r22,lo8(.LC24) 6366 1b1c 70E0 ldi r23,hi8(.LC24) 6367 1b1e 7583 std Z+5,r23 6368 1b20 6483 std Z+4,r22 6369 1b22 8091 0000 lds r24,machinemode.2162 6370 1b26 90E0 ldi r25,lo8(0) 6371 1b28 8F71 andi r24,lo8(31) 6372 1b2a 9070 andi r25,hi8(31) 6373 1b2c 9783 std Z+7,r25 6374 1b2e 8683 std Z+6,r24 6375 1b30 8091 0000 lds r24,insig.2164 6376 1b34 8087 std Z+8,r24 6377 1b36 1186 std Z+9,__zero_reg__ 6378 1b38 2287 std Z+10,r18 6379 1b3a 1386 std Z+11,__zero_reg__ 6380 1b3c 0E94 0000 call snprintf 6381 .stabn 68,0,79,.LM521-.LFBB18 6382 .LM521: 6383 1b40 8091 0000 lds r24,outservo.2166+4 6384 1b44 9091 0000 lds r25,(outservo.2166+4)+1 6385 1b48 ADB7 in r26,__SP_L__ 6386 1b4a BEB7 in r27,__SP_H__ 6387 1b4c 1C96 adiw r26,12 6388 1b4e 0FB6 in __tmp_reg__,__SREG__ 6389 1b50 F894 cli 6390 1b52 BEBF out __SP_H__,r27 GAS LISTING /tmp/ccEMtt4X.s page 144 6391 1b54 0FBE out __SREG__,__tmp_reg__ 6392 1b56 ADBF out __SP_L__,r26 6393 1b58 0097 sbiw r24,0 6394 1b5a 01F0 breq .L207 6395 .stabn 68,0,80,.LM522-.LFBB18 6396 .LM522: 6397 1b5c AC01 movw r20,r24 6398 1b5e 405F subi r20,lo8(-(-1520)) 6399 1b60 5540 sbci r21,hi8(-(-1520)) 6400 .stabn 68,0,81,.LM523-.LFBB18 6401 .LM523: 6402 1b62 57FD sbrc r21,7 6403 1b64 00C0 rjmp .L208 6404 1b66 2BE2 ldi r18,lo8(43) 6405 1b68 30E0 ldi r19,hi8(43) 6406 1b6a 00C0 rjmp .L209 6407 .L208: 6408 1b6c 2DE2 ldi r18,lo8(45) 6409 1b6e 30E0 ldi r19,hi8(45) 6410 .L209: 6411 1b70 EDB7 in r30,__SP_L__ 6412 1b72 FEB7 in r31,__SP_H__ 6413 1b74 3A97 sbiw r30,10 6414 1b76 0FB6 in __tmp_reg__,__SREG__ 6415 1b78 F894 cli 6416 1b7a FEBF out __SP_H__,r31 6417 1b7c 0FBE out __SREG__,__tmp_reg__ 6418 1b7e EDBF out __SP_L__,r30 6419 1b80 3196 adiw r30,1 6420 1b82 CE01 movw r24,r28 6421 1b84 8696 adiw r24,38 6422 1b86 ADB7 in r26,__SP_L__ 6423 1b88 BEB7 in r27,__SP_H__ 6424 1b8a 1296 adiw r26,1+1 6425 1b8c 9C93 st X,r25 6426 1b8e 8E93 st -X,r24 6427 1b90 1197 sbiw r26,1 6428 1b92 89E0 ldi r24,lo8(9) 6429 1b94 90E0 ldi r25,hi8(9) 6430 1b96 9383 std Z+3,r25 6431 1b98 8283 std Z+2,r24 6432 1b9a 80E0 ldi r24,lo8(.LC25) 6433 1b9c 90E0 ldi r25,hi8(.LC25) 6434 1b9e 9583 std Z+5,r25 6435 1ba0 8483 std Z+4,r24 6436 1ba2 3783 std Z+7,r19 6437 1ba4 2683 std Z+6,r18 6438 1ba6 CA01 movw r24,r20 6439 1ba8 57FF sbrs r21,7 6440 1baa 00C0 rjmp .L210 6441 1bac 9095 com r25 6442 1bae 8195 neg r24 6443 1bb0 9F4F sbci r25,lo8(-1) 6444 .L210: 6445 1bb2 66E0 ldi r22,lo8(6) 6446 1bb4 70E0 ldi r23,hi8(6) 6447 1bb6 0E94 0000 call __divmodhi4 GAS LISTING /tmp/ccEMtt4X.s page 145 6448 1bba 7187 std Z+9,r23 6449 1bbc 6087 std Z+8,r22 6450 1bbe 0E94 0000 call snprintf 6451 1bc2 EDB7 in r30,__SP_L__ 6452 1bc4 FEB7 in r31,__SP_H__ 6453 1bc6 3A96 adiw r30,10 6454 1bc8 00C0 rjmp .L320 6455 .L207: 6456 .stabn 68,0,83,.LM524-.LFBB18 6457 .LM524: 6458 1bca 00D0 rcall . 6459 1bcc 00D0 rcall . 6460 1bce 00D0 rcall . 6461 1bd0 EDB7 in r30,__SP_L__ 6462 1bd2 FEB7 in r31,__SP_H__ 6463 1bd4 3196 adiw r30,1 6464 1bd6 CE01 movw r24,r28 6465 1bd8 8696 adiw r24,38 6466 1bda ADB7 in r26,__SP_L__ 6467 1bdc BEB7 in r27,__SP_H__ 6468 1bde 1296 adiw r26,1+1 6469 1be0 9C93 st X,r25 6470 1be2 8E93 st -X,r24 6471 1be4 1197 sbiw r26,1 6472 1be6 89E0 ldi r24,lo8(9) 6473 1be8 90E0 ldi r25,hi8(9) 6474 1bea 9383 std Z+3,r25 6475 1bec 8283 std Z+2,r24 6476 1bee 80E0 ldi r24,lo8(.LC26) 6477 1bf0 90E0 ldi r25,hi8(.LC26) 6478 1bf2 9583 std Z+5,r25 6479 1bf4 8483 std Z+4,r24 6480 1bf6 0E94 0000 call snprintf 6481 1bfa EDB7 in r30,__SP_L__ 6482 1bfc FEB7 in r31,__SP_H__ 6483 1bfe 3696 adiw r30,6 6484 .L320: 6485 1c00 0FB6 in __tmp_reg__,__SREG__ 6486 1c02 F894 cli 6487 1c04 FEBF out __SP_H__,r31 6488 1c06 0FBE out __SREG__,__tmp_reg__ 6489 1c08 EDBF out __SP_L__,r30 6490 .stabn 68,0,86,.LM525-.LFBB18 6491 .LM525: 6492 1c0a 8091 0000 lds r24,outservo.2166 6493 1c0e 9091 0000 lds r25,(outservo.2166)+1 6494 1c12 0097 sbiw r24,0 6495 1c14 01F0 breq .L212 6496 .stabn 68,0,87,.LM526-.LFBB18 6497 .LM526: 6498 1c16 AC01 movw r20,r24 6499 1c18 405F subi r20,lo8(-(-1520)) 6500 1c1a 5540 sbci r21,hi8(-(-1520)) 6501 .stabn 68,0,88,.LM527-.LFBB18 6502 .LM527: 6503 1c1c 57FD sbrc r21,7 6504 1c1e 00C0 rjmp .L213 GAS LISTING /tmp/ccEMtt4X.s page 146 6505 1c20 2BE2 ldi r18,lo8(43) 6506 1c22 30E0 ldi r19,hi8(43) 6507 1c24 00C0 rjmp .L214 6508 .L213: 6509 1c26 2DE2 ldi r18,lo8(45) 6510 1c28 30E0 ldi r19,hi8(45) 6511 .L214: 6512 1c2a 6DB7 in r22,__SP_L__ 6513 1c2c 7EB7 in r23,__SP_H__ 6514 1c2e 6A50 subi r22,lo8(-(-10)) 6515 1c30 7040 sbci r23,hi8(-(-10)) 6516 1c32 0FB6 in __tmp_reg__,__SREG__ 6517 1c34 F894 cli 6518 1c36 7EBF out __SP_H__,r23 6519 1c38 0FBE out __SREG__,__tmp_reg__ 6520 1c3a 6DBF out __SP_L__,r22 6521 1c3c EDB7 in r30,__SP_L__ 6522 1c3e FEB7 in r31,__SP_H__ 6523 1c40 3196 adiw r30,1 6524 1c42 CE01 movw r24,r28 6525 1c44 8B96 adiw r24,43 6526 1c46 ADB7 in r26,__SP_L__ 6527 1c48 BEB7 in r27,__SP_H__ 6528 1c4a 1296 adiw r26,1+1 6529 1c4c 9C93 st X,r25 6530 1c4e 8E93 st -X,r24 6531 1c50 1197 sbiw r26,1 6532 1c52 85E0 ldi r24,lo8(5) 6533 1c54 90E0 ldi r25,hi8(5) 6534 1c56 9383 std Z+3,r25 6535 1c58 8283 std Z+2,r24 6536 1c5a 80E0 ldi r24,lo8(.LC27) 6537 1c5c 90E0 ldi r25,hi8(.LC27) 6538 1c5e 9583 std Z+5,r25 6539 1c60 8483 std Z+4,r24 6540 1c62 3783 std Z+7,r19 6541 1c64 2683 std Z+6,r18 6542 1c66 CA01 movw r24,r20 6543 1c68 57FF sbrs r21,7 6544 1c6a 00C0 rjmp .L215 6545 1c6c 9095 com r25 6546 1c6e 8195 neg r24 6547 1c70 9F4F sbci r25,lo8(-1) 6548 .L215: 6549 1c72 66E0 ldi r22,lo8(6) 6550 1c74 70E0 ldi r23,hi8(6) 6551 1c76 0E94 0000 call __divmodhi4 6552 1c7a 7187 std Z+9,r23 6553 1c7c 6087 std Z+8,r22 6554 1c7e 0E94 0000 call snprintf 6555 1c82 EDB7 in r30,__SP_L__ 6556 1c84 FEB7 in r31,__SP_H__ 6557 1c86 3A96 adiw r30,10 6558 1c88 00C0 rjmp .L321 6559 .L212: 6560 .stabn 68,0,90,.LM528-.LFBB18 6561 .LM528: GAS LISTING /tmp/ccEMtt4X.s page 147 6562 1c8a 00D0 rcall . 6563 1c8c 00D0 rcall . 6564 1c8e 00D0 rcall . 6565 1c90 EDB7 in r30,__SP_L__ 6566 1c92 FEB7 in r31,__SP_H__ 6567 1c94 3196 adiw r30,1 6568 1c96 CE01 movw r24,r28 6569 1c98 8B96 adiw r24,43 6570 1c9a ADB7 in r26,__SP_L__ 6571 1c9c BEB7 in r27,__SP_H__ 6572 1c9e 1296 adiw r26,1+1 6573 1ca0 9C93 st X,r25 6574 1ca2 8E93 st -X,r24 6575 1ca4 1197 sbiw r26,1 6576 1ca6 85E0 ldi r24,lo8(5) 6577 1ca8 90E0 ldi r25,hi8(5) 6578 1caa 9383 std Z+3,r25 6579 1cac 8283 std Z+2,r24 6580 1cae 80E0 ldi r24,lo8(.LC28) 6581 1cb0 90E0 ldi r25,hi8(.LC28) 6582 1cb2 00C0 rjmp .L328 6583 .L206: 6584 .LBE1380: 6585 .LBB1381: 6586 .LBB1382: 6587 .stabs "timers.c",132,0,0,.Ltext138 6588 .Ltext138: 6589 .stabn 68,0,15,.LM529-.LFBB18 6590 .LM529: 6591 1cb4 6091 0000 lds r22,timer.2777 6592 1cb8 7091 0000 lds r23,(timer.2777)+1 6593 1cbc 8091 0000 lds r24,(timer.2777)+2 6594 1cc0 9091 0000 lds r25,(timer.2777)+3 6595 .LBE1382: 6596 .LBE1381: 6597 .stabs "statemachine.c",132,0,0,.Ltext139 6598 .Ltext139: 6599 .stabn 68,0,92,.LM530-.LFBB18 6600 .LM530: 6601 1cc4 A801 movw r20,r16 6602 1cc6 9701 movw r18,r14 6603 1cc8 0E94 0000 call __divmodsi4 6604 1ccc 6930 cpi r22,lo8(9) 6605 1cce 7105 cpc r23,__zero_reg__ 6606 1cd0 8105 cpc r24,__zero_reg__ 6607 1cd2 9105 cpc r25,__zero_reg__ 6608 1cd4 04F0 brlt .L216 6609 .LBB1383: 6610 .LBB1384: 6611 .stabs "timers.c",132,0,0,.Ltext140 6612 .Ltext140: 6613 .stabn 68,0,15,.LM531-.LFBB18 6614 .LM531: 6615 1cd6 6091 0000 lds r22,timer.2777 6616 1cda 7091 0000 lds r23,(timer.2777)+1 6617 1cde 8091 0000 lds r24,(timer.2777)+2 6618 1ce2 9091 0000 lds r25,(timer.2777)+3 GAS LISTING /tmp/ccEMtt4X.s page 148 6619 .LBE1384: 6620 .LBE1383: 6621 .stabs "statemachine.c",132,0,0,.Ltext141 6622 .Ltext141: 6623 .stabn 68,0,92,.LM532-.LFBB18 6624 .LM532: 6625 1ce6 A801 movw r20,r16 6626 1ce8 9701 movw r18,r14 6627 1cea 0E94 0000 call __divmodsi4 6628 1cee 6B30 cpi r22,lo8(11) 6629 1cf0 7105 cpc r23,__zero_reg__ 6630 1cf2 8105 cpc r24,__zero_reg__ 6631 1cf4 9105 cpc r25,__zero_reg__ 6632 1cf6 04F4 brge .L216 6633 .stabn 68,0,93,.LM533-.LFBB18 6634 .LM533: 6635 1cf8 00D0 rcall . 6636 1cfa 00D0 rcall . 6637 1cfc 00D0 rcall . 6638 1cfe EDB7 in r30,__SP_L__ 6639 1d00 FEB7 in r31,__SP_H__ 6640 1d02 3196 adiw r30,1 6641 1d04 ADB7 in r26,__SP_L__ 6642 1d06 BEB7 in r27,__SP_H__ 6643 1d08 1296 adiw r26,1+1 6644 1d0a 9C92 st X,r9 6645 1d0c 8E92 st -X,r8 6646 1d0e 1197 sbiw r26,1 6647 1d10 81E1 ldi r24,lo8(17) 6648 1d12 90E0 ldi r25,hi8(17) 6649 1d14 9383 std Z+3,r25 6650 1d16 8283 std Z+2,r24 6651 1d18 20E0 ldi r18,lo8(.LC29) 6652 1d1a 30E0 ldi r19,hi8(.LC29) 6653 1d1c 00C0 rjmp .L322 6654 .L216: 6655 .LBB1385: 6656 .LBB1386: 6657 .stabs "timers.c",132,0,0,.Ltext142 6658 .Ltext142: 6659 .stabn 68,0,15,.LM534-.LFBB18 6660 .LM534: 6661 1d1e 6091 0000 lds r22,timer.2777 6662 1d22 7091 0000 lds r23,(timer.2777)+1 6663 1d26 8091 0000 lds r24,(timer.2777)+2 6664 1d2a 9091 0000 lds r25,(timer.2777)+3 6665 .LBE1386: 6666 .LBE1385: 6667 .stabs "statemachine.c",132,0,0,.Ltext143 6668 .Ltext143: 6669 .stabn 68,0,94,.LM535-.LFBB18 6670 .LM535: 6671 1d2e A801 movw r20,r16 6672 1d30 9701 movw r18,r14 6673 1d32 0E94 0000 call __divmodsi4 6674 1d36 6B30 cpi r22,lo8(11) 6675 1d38 7105 cpc r23,__zero_reg__ GAS LISTING /tmp/ccEMtt4X.s page 149 6676 1d3a 8105 cpc r24,__zero_reg__ 6677 1d3c 9105 cpc r25,__zero_reg__ 6678 1d3e 04F0 brlt .L189 6679 .LBB1387: 6680 .LBB1388: 6681 .stabs "timers.c",132,0,0,.Ltext144 6682 .Ltext144: 6683 .stabn 68,0,15,.LM536-.LFBB18 6684 .LM536: 6685 1d40 6091 0000 lds r22,timer.2777 6686 1d44 7091 0000 lds r23,(timer.2777)+1 6687 1d48 8091 0000 lds r24,(timer.2777)+2 6688 1d4c 9091 0000 lds r25,(timer.2777)+3 6689 .LBE1388: 6690 .LBE1387: 6691 .stabs "statemachine.c",132,0,0,.Ltext145 6692 .Ltext145: 6693 .stabn 68,0,94,.LM537-.LFBB18 6694 .LM537: 6695 1d50 A801 movw r20,r16 6696 1d52 9701 movw r18,r14 6697 1d54 0E94 0000 call __divmodsi4 6698 1d58 6D30 cpi r22,lo8(13) 6699 1d5a 7105 cpc r23,__zero_reg__ 6700 1d5c 8105 cpc r24,__zero_reg__ 6701 1d5e 9105 cpc r25,__zero_reg__ 6702 1d60 04F4 brge .L189 6703 .stabn 68,0,95,.LM538-.LFBB18 6704 .LM538: 6705 1d62 00D0 rcall . 6706 1d64 00D0 rcall . 6707 1d66 00D0 rcall . 6708 1d68 EDB7 in r30,__SP_L__ 6709 1d6a FEB7 in r31,__SP_H__ 6710 1d6c 3196 adiw r30,1 6711 1d6e ADB7 in r26,__SP_L__ 6712 1d70 BEB7 in r27,__SP_H__ 6713 1d72 1296 adiw r26,1+1 6714 1d74 9C92 st X,r9 6715 1d76 8E92 st -X,r8 6716 1d78 1197 sbiw r26,1 6717 1d7a 81E1 ldi r24,lo8(17) 6718 1d7c 90E0 ldi r25,hi8(17) 6719 1d7e 9383 std Z+3,r25 6720 1d80 8283 std Z+2,r24 6721 1d82 20E0 ldi r18,lo8(.LC30) 6722 1d84 30E0 ldi r19,hi8(.LC30) 6723 .L322: 6724 1d86 3583 std Z+5,r19 6725 1d88 2483 std Z+4,r18 6726 1d8a 0E94 0000 call snprintf 6727 1d8e 6DB7 in r22,__SP_L__ 6728 1d90 7EB7 in r23,__SP_H__ 6729 1d92 6A5F subi r22,lo8(-(6)) 6730 1d94 7F4F sbci r23,hi8(-(6)) 6731 1d96 0FB6 in __tmp_reg__,__SREG__ 6732 1d98 F894 cli GAS LISTING /tmp/ccEMtt4X.s page 150 6733 1d9a 7EBF out __SP_H__,r23 6734 1d9c 0FBE out __SREG__,__tmp_reg__ 6735 1d9e 6DBF out __SP_L__,r22 6736 .L189: 6737 .LBB1389: 6738 .stabs "display.c",132,0,0,.Ltext146 6739 .Ltext146: 6740 .stabn 68,0,147,.LM539-.LFBB18 6741 .LM539: 6742 1da0 F401 movw r30,r8 6743 1da2 0190 ld __tmp_reg__,Z+ 6744 1da4 0020 tst __tmp_reg__ 6745 1da6 01F4 brne .-6 6746 1da8 3197 sbiw r30,1 6747 .LBB1365: 6748 1daa E819 sub r30,r8 6749 1dac 8401 movw r16,r8 6750 .stabn 68,0,148,.LM540-.LFBB18 6751 .LM540: 6752 1dae 7401 movw r14,r8 6753 1db0 EE0E add r14,r30 6754 1db2 F11C adc r15,__zero_reg__ 6755 1db4 00C0 rjmp .L217 6756 .L218: 6757 .stabn 68,0,149,.LM541-.LFBB18 6758 .LM541: 6759 1db6 D801 movw r26,r16 6760 1db8 8D91 ld r24,X+ 6761 1dba 8D01 movw r16,r26 6762 1dbc 0E94 0000 call display_write_rs_h.4149 6763 .L217: 6764 .stabn 68,0,148,.LM542-.LFBB18 6765 .LM542: 6766 1dc0 0E15 cp r16,r14 6767 1dc2 1F05 cpc r17,r15 6768 1dc4 01F4 brne .L218 6769 .LBE1365: 6770 .LBE1389: 6771 .LBB1390: 6772 .LBB1391: 6773 .stabn 68,0,142,.LM543-.LFBB18 6774 .LM543: 6775 1dc6 80EC ldi r24,lo8(-64) 6776 1dc8 0E94 0000 call display_write_rs_l.4146 6777 .LBE1391: 6778 .LBE1390: 6779 .LBB1392: 6780 .LBB1393: 6781 1dcc 80EC ldi r24,lo8(-64) 6782 1dce 0E94 0000 call display_write_rs_l.4146 6783 1dd2 00E0 ldi r16,lo8(line2.5110) 6784 1dd4 10E0 ldi r17,hi8(line2.5110) 6785 1dd6 00C0 rjmp .L219 6786 .L220: 6787 .LBE1393: 6788 .LBE1392: 6789 .LBB1394: GAS LISTING /tmp/ccEMtt4X.s page 151 6790 .LBB1395: 6791 .stabn 68,0,155,.LM544-.LFBB18 6792 .LM544: 6793 1dd8 F801 movw r30,r16 6794 1dda 8191 ld r24,Z+ 6795 1ddc 8F01 movw r16,r30 6796 1dde 0E94 0000 call display_write_rs_h.4149 6797 .L219: 6798 1de2 F0E0 ldi r31,hi8(line2.5110+16) 6799 1de4 0030 cpi r16,lo8(line2.5110+16) 6800 1de6 1F07 cpc r17,r31 6801 1de8 01F4 brne .L220 6802 .L181: 6803 .LBE1395: 6804 .LBE1394: 6805 .LBE1396: 6806 .LBE1397: 6807 .LBE1398: 6808 .LBE1449: 6809 .stabs "main.c",132,0,0,.Ltext147 6810 .Ltext147: 6811 .stabn 68,0,142,.LM545-.LFBB18 6812 .LM545: 6813 1dea 8091 0000 lds r24,timer_hits.2118 6814 1dee 83FF sbrs r24,3 6815 1df0 00C0 rjmp .L306 6816 .stabn 68,0,143,.LM546-.LFBB18 6817 .LM546: 6818 1df2 8091 0000 lds r24,timer_hits.2118 6819 1df6 877F andi r24,lo8(-9) 6820 1df8 8093 0000 sts timer_hits.2118,r24 6821 .stabn 68,0,145,.LM547-.LFBB18 6822 .LM547: 6823 1dfc 4298 cbi 40-32,2 6824 1dfe 00C0 rjmp .L306 6825 .L223: 6826 .stabn 68,0,152,.LM548-.LFBB18 6827 .LM548: 6828 1e00 0E94 0000 call serial_waitchar.1882 6829 .L306: 6830 .LBB1450: 6831 .LBB1451: 6832 .stabs "../lib/serial_x8.c",132,0,0,.Ltext148 6833 .Ltext148: 123:../lib/serial_x8.c **** } 124:../lib/serial_x8.c **** 125:../lib/serial_x8.c **** int8_t serial_in_rx_buffer(const uint8_t c) 126:../lib/serial_x8.c **** { 127:../lib/serial_x8.c **** uint8_t i, l = serial_rx_len; 128:../lib/serial_x8.c **** for(i=0; i 4:../lib/nmea_verify.c **** #include 5:../lib/nmea_verify.c **** #include 6:../lib/nmea_verify.c **** 7:../lib/nmea_verify.c **** #include "nmea.h" 8:../lib/nmea_verify.c **** #include "serial.h" 9:../lib/nmea_verify.c **** #include "byte_to_hex.h" 10:../lib/nmea_verify.c **** 11:../lib/nmea_verify.c **** #define NMEA_NOTME 0 12:../lib/nmea_verify.c **** #define NMEA_ERR 1 13:../lib/nmea_verify.c **** #define NMEA_OK 2 14:../lib/nmea_verify.c **** 15:../lib/nmea_verify.c **** void nmea_next_arg(const uint8_t *buf, const uint8_t len, uint8_t *pos, uint8_t *rl) 16:../lib/nmea_verify.c **** { 17:../lib/nmea_verify.c **** uint8_t i; 18:../lib/nmea_verify.c **** 19:../lib/nmea_verify.c **** if(*pos >= len) { 20:../lib/nmea_verify.c **** *pos = len; 21:../lib/nmea_verify.c **** return; 22:../lib/nmea_verify.c **** } 23:../lib/nmea_verify.c **** 24:../lib/nmea_verify.c **** for(i=*pos; i<=len; i++) { 25:../lib/nmea_verify.c **** if(buf[i] == ',') { 26:../lib/nmea_verify.c **** *pos = i+1; 27:../lib/nmea_verify.c **** *rl = 0; 28:../lib/nmea_verify.c **** while(++i < len && buf[i] != '*' && buf[i] != ',') (*rl)++; 29:../lib/nmea_verify.c **** return; 30:../lib/nmea_verify.c **** } 31:../lib/nmea_verify.c **** } 32:../lib/nmea_verify.c **** 33:../lib/nmea_verify.c **** *pos = len; 34:../lib/nmea_verify.c **** return; 35:../lib/nmea_verify.c **** } 36:../lib/nmea_verify.c **** 37:../lib/nmea_verify.c **** 38:../lib/nmea_verify.c **** inline uint8_t nmea_verify_serial_in(uint8_t *cin, const uint8_t cin_len, uint8_t ec_pos) 39:../lib/nmea_verify.c **** { 40:../lib/nmea_verify.c **** uint8_t i, err, em[12] = "ERR,NMEA,X"; 6869 .stabn 68,0,40,.LM553-.LFBB18 6870 .LM553: 6871 1e18 DE01 movw r26,r28 6872 1e1a 5396 adiw r26,19 6873 1e1c E0E0 ldi r30,lo8(.LC31) 6874 1e1e F0E0 ldi r31,hi8(.LC31) 6875 1e20 8BE0 ldi r24,lo8(11) GAS LISTING /tmp/ccEMtt4X.s page 154 6876 .L224: 6877 1e22 0190 ld r0,Z+ 6878 1e24 0D92 st X+,r0 6879 1e26 8150 subi r24,lo8(-(-1)) 6880 1e28 01F4 brne .L224 6881 1e2a 1E8E std Y+30,__zero_reg__ 41:../lib/nmea_verify.c **** uint8_t cksg = 0, cks; 42:../lib/nmea_verify.c **** 43:../lib/nmea_verify.c **** if(ec_pos > cin_len) { 6882 .stabn 68,0,43,.LM554-.LFBB18 6883 .LM554: 6884 1e2c 9132 cpi r25,lo8(33) 6885 1e2e 00F0 brlo .+2 6886 1e30 00C0 rjmp .L226 44:../lib/nmea_verify.c **** err = 0; 45:../lib/nmea_verify.c **** goto error; 46:../lib/nmea_verify.c **** } else if(ec_pos == 0) { 6887 .stabn 68,0,46,.LM555-.LFBB18 6888 .LM555: 6889 1e32 9923 tst r25 6890 1e34 01F4 brne .+2 6891 1e36 00C0 rjmp .L227 47:../lib/nmea_verify.c **** return NMEA_ERR; 48:../lib/nmea_verify.c **** } else if(ec_pos < 7) { 6892 .stabn 68,0,48,.LM556-.LFBB18 6893 .LM556: 6894 1e38 9730 cpi r25,lo8(7) 6895 1e3a 00F4 brsh .L228 6896 1e3c 81E0 ldi r24,lo8(1) 6897 1e3e 00C0 rjmp .L226 6898 .L228: 49:../lib/nmea_verify.c **** err = 1; 50:../lib/nmea_verify.c **** goto error; 51:../lib/nmea_verify.c **** } 52:../lib/nmea_verify.c **** 53:../lib/nmea_verify.c **** ec_pos -= 1; 6899 .stabn 68,0,53,.LM557-.LFBB18 6900 .LM557: 6901 1e40 092F mov r16,r25 6902 1e42 0150 subi r16,lo8(-(-1)) 6903 1e44 10E0 ldi r17,lo8(0) 6904 .L229: 6905 .LBE1341: 54:../lib/nmea_verify.c **** 55:../lib/nmea_verify.c **** for(i=0; i<=ec_pos; i++) cin[i] = serial_waitchar(); 6906 .stabn 68,0,55,.LM558-.LFBB18 6907 .LM558: 6908 1e46 0E94 0000 call serial_waitchar.1882 6909 .LBB1342: 6910 1e4a E0E3 ldi r30,lo8(48) 6911 1e4c F0E0 ldi r31,hi8(48) 6912 1e4e EC0F add r30,r28 6913 1e50 FD1F adc r31,r29 6914 1e52 E10F add r30,r17 6915 1e54 F11D adc r31,__zero_reg__ 6916 1e56 8083 st Z,r24 6917 1e58 1F5F subi r17,lo8(-(1)) GAS LISTING /tmp/ccEMtt4X.s page 155 6918 1e5a 0117 cp r16,r17 6919 1e5c 00F4 brsh .L229 56:../lib/nmea_verify.c **** 57:../lib/nmea_verify.c **** if(cin[0] != '$') { 6920 .stabn 68,0,57,.LM559-.LFBB18 6921 .LM559: 6922 1e5e 88A9 ldd r24,Y+48 6923 1e60 8432 cpi r24,lo8(36) 6924 1e62 01F0 breq .L230 6925 1e64 82E0 ldi r24,lo8(2) 6926 1e66 00C0 rjmp .L226 6927 .L230: 58:../lib/nmea_verify.c **** err = 2; 59:../lib/nmea_verify.c **** goto error; 60:../lib/nmea_verify.c **** } 61:../lib/nmea_verify.c **** 62:../lib/nmea_verify.c **** if(cin[1] != NMEA_RX_HEADER[0] || cin[2] != NMEA_RX_HEADER[1]) { 6928 .stabn 68,0,62,.LM560-.LFBB18 6929 .LM560: 6930 1e68 89A9 ldd r24,Y+49 6931 1e6a 8B34 cpi r24,lo8(75) 6932 1e6c 01F0 breq .+2 6933 1e6e 00C0 rjmp .L227 6934 1e70 8AA9 ldd r24,Y+50 6935 1e72 8334 cpi r24,lo8(67) 6936 1e74 01F0 breq .+2 6937 1e76 00C0 rjmp .L227 63:../lib/nmea_verify.c **** // not for me 64:../lib/nmea_verify.c **** return NMEA_NOTME; 65:../lib/nmea_verify.c **** } 66:../lib/nmea_verify.c **** 67:../lib/nmea_verify.c **** #ifndef NO_NMEA_CHECKSUM 68:../lib/nmea_verify.c **** if(cin[ec_pos - 2] != '*') { 6938 .stabn 68,0,68,.LM561-.LFBB18 6939 .LM561: 6940 1e78 10E0 ldi r17,lo8(0) 6941 1e7a E0E3 ldi r30,lo8(48) 6942 1e7c F0E0 ldi r31,hi8(48) 6943 1e7e EC0F add r30,r28 6944 1e80 FD1F adc r31,r29 6945 1e82 E00F add r30,r16 6946 1e84 F11F adc r31,r17 6947 1e86 3297 sbiw r30,2 6948 1e88 8081 ld r24,Z 6949 1e8a 8A32 cpi r24,lo8(42) 6950 1e8c 01F0 breq .L231 6951 1e8e 83E0 ldi r24,lo8(3) 6952 1e90 00C0 rjmp .L226 6953 .L231: 6954 .LBE1342: 69:../lib/nmea_verify.c **** err = 3; 70:../lib/nmea_verify.c **** goto error; 71:../lib/nmea_verify.c **** } 72:../lib/nmea_verify.c **** 73:../lib/nmea_verify.c **** cks = hex_to_byte(cin+(ec_pos-1)); 6955 .stabn 68,0,73,.LM562-.LFBB18 6956 .LM562: GAS LISTING /tmp/ccEMtt4X.s page 156 6957 1e92 0150 subi r16,lo8(-(-1)) 6958 1e94 1040 sbci r17,hi8(-(-1)) 6959 1e96 80E3 ldi r24,lo8(48) 6960 1e98 90E0 ldi r25,hi8(48) 6961 1e9a 8C0F add r24,r28 6962 1e9c 9D1F adc r25,r29 6963 1e9e 800F add r24,r16 6964 1ea0 911F adc r25,r17 6965 1ea2 0E94 0000 call hex_to_byte.1910 6966 1ea6 382F mov r19,r24 6967 1ea8 91E0 ldi r25,lo8(1) 6968 1eaa 20E0 ldi r18,lo8(0) 6969 .LBB1343: 74:../lib/nmea_verify.c **** 75:../lib/nmea_verify.c **** for(i=1; i