GAS LISTING /tmp/ccsXWNE7.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_a8_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/ccsXWNE7.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/include/stdarg.h",130,0,0,0 94 .stabs "__gnuc_va_list:t(9,1)=(9,2)=*(0,15)",128,0,43,0 95 .stabs "va_list:t(9,3)=(9,1)",128,0,105,0 96 .stabn 162,0,0,0 97 .stabs "timers.h",130,0,0,0 98 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/stdint.h",130,0,0,0 99 .stabs "int8_t:t(11,1)=(0,10)",128,0,121,0 100 .stabs "uint8_t:t(11,2)=(0,11)",128,0,122,0 101 .stabs "int16_t:t(11,3)=(0,1)",128,0,123,0 102 .stabs "uint16_t:t(11,4)=(0,4)",128,0,124,0 103 .stabs "int32_t:t(11,5)=(0,3)",128,0,125,0 104 .stabs "uint32_t:t(11,6)=(0,5)",128,0,126,0 105 .stabs "int64_t:t(11,7)=(0,6)",128,0,128,0 106 .stabs "uint64_t:t(11,8)=(0,7)",128,0,129,0 107 .stabs "intptr_t:t(11,9)=(11,3)",128,0,142,0 108 .stabs "uintptr_t:t(11,10)=(11,4)",128,0,147,0 109 .stabs "int_least8_t:t(11,11)=(11,1)",128,0,159,0 110 .stabs "uint_least8_t:t(11,12)=(11,2)",128,0,164,0 111 .stabs "int_least16_t:t(11,13)=(11,3)",128,0,169,0 112 .stabs "uint_least16_t:t(11,14)=(11,4)",128,0,174,0 113 .stabs "int_least32_t:t(11,15)=(11,5)",128,0,179,0 114 .stabs "uint_least32_t:t(11,16)=(11,6)",128,0,184,0 GAS LISTING /tmp/ccsXWNE7.s page 3 115 .stabs "int_least64_t:t(11,17)=(11,7)",128,0,192,0 116 .stabs "uint_least64_t:t(11,18)=(11,8)",128,0,199,0 117 .stabs "int_fast8_t:t(11,19)=(11,1)",128,0,213,0 118 .stabs "uint_fast8_t:t(11,20)=(11,2)",128,0,218,0 119 .stabs "int_fast16_t:t(11,21)=(11,3)",128,0,223,0 120 .stabs "uint_fast16_t:t(11,22)=(11,4)",128,0,228,0 121 .stabs "int_fast32_t:t(11,23)=(11,5)",128,0,233,0 122 .stabs "uint_fast32_t:t(11,24)=(11,6)",128,0,238,0 123 .stabs "int_fast64_t:t(11,25)=(11,7)",128,0,246,0 124 .stabs "uint_fast64_t:t(11,26)=(11,8)",128,0,253,0 125 .stabs "intmax_t:t(11,27)=(11,7)",128,0,273,0 126 .stabs "uintmax_t:t(11,28)=(11,8)",128,0,278,0 127 .stabn 162,0,0,0 128 .stabn 162,0,0,0 129 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/io.h",130,0,0,0 130 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/sfr_defs.h",130,0,0,0 131 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/inttypes.h",130,0,0,0 132 .stabs "int_farptr_t:t(14,1)=(11,5)",128,0,77,0 133 .stabs "uint_farptr_t:t(14,2)=(11,6)",128,0,81,0 134 .stabn 162,0,0,0 135 .stabn 162,0,0,0 136 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/fuse.h",130,0,0,0 137 .stabs "__fuse_t:t(15,1)=(15,2)=s3low:(0,11),0,8;high:(0,11),8,8;extended:(0,11),16,8;;",128,0,219 138 .stabn 162,0,0,0 139 .stabn 162,0,0,0 140 .stabs "pin_ctl.h",130,0,0,0 141 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/stdint.h",130,0,0,0 142 .stabs "int8_t:t(17,1)=(0,10)",128,0,121,0 143 .stabs "uint8_t:t(17,2)=(0,11)",128,0,122,0 144 .stabs "int16_t:t(17,3)=(0,1)",128,0,123,0 145 .stabs "uint16_t:t(17,4)=(0,4)",128,0,124,0 146 .stabs "int32_t:t(17,5)=(0,3)",128,0,125,0 147 .stabs "uint32_t:t(17,6)=(0,5)",128,0,126,0 148 .stabs "int64_t:t(17,7)=(0,6)",128,0,128,0 149 .stabs "uint64_t:t(17,8)=(0,7)",128,0,129,0 150 .stabs "intptr_t:t(17,9)=(17,3)",128,0,142,0 151 .stabs "uintptr_t:t(17,10)=(17,4)",128,0,147,0 152 .stabs "int_least8_t:t(17,11)=(17,1)",128,0,159,0 153 .stabs "uint_least8_t:t(17,12)=(17,2)",128,0,164,0 154 .stabs "int_least16_t:t(17,13)=(17,3)",128,0,169,0 155 .stabs "uint_least16_t:t(17,14)=(17,4)",128,0,174,0 156 .stabs "int_least32_t:t(17,15)=(17,5)",128,0,179,0 157 .stabs "uint_least32_t:t(17,16)=(17,6)",128,0,184,0 158 .stabs "int_least64_t:t(17,17)=(17,7)",128,0,192,0 159 .stabs "uint_least64_t:t(17,18)=(17,8)",128,0,199,0 160 .stabs "int_fast8_t:t(17,19)=(17,1)",128,0,213,0 161 .stabs "uint_fast8_t:t(17,20)=(17,2)",128,0,218,0 162 .stabs "int_fast16_t:t(17,21)=(17,3)",128,0,223,0 163 .stabs "uint_fast16_t:t(17,22)=(17,4)",128,0,228,0 164 .stabs "int_fast32_t:t(17,23)=(17,5)",128,0,233,0 165 .stabs "uint_fast32_t:t(17,24)=(17,6)",128,0,238,0 166 .stabs "int_fast64_t:t(17,25)=(17,7)",128,0,246,0 167 .stabs "uint_fast64_t:t(17,26)=(17,8)",128,0,253,0 168 .stabs "intmax_t:t(17,27)=(17,7)",128,0,273,0 169 .stabs "uintmax_t:t(17,28)=(17,8)",128,0,278,0 170 .stabn 162,0,0,0 171 .stabn 162,0,0,0 GAS LISTING /tmp/ccsXWNE7.s page 4 172 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/io.h",130,0,0,0 173 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/sfr_defs.h",130,0,0,0 174 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/inttypes.h",130,0,0,0 175 .stabs "int_farptr_t:t(20,1)=(17,5)",128,0,77,0 176 .stabs "uint_farptr_t:t(20,2)=(17,6)",128,0,81,0 177 .stabn 162,0,0,0 178 .stabn 162,0,0,0 179 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/fuse.h",130,0,0,0 180 .stabs "__fuse_t:t(21,1)=(21,2)=s3low:(0,11),0,8;high:(0,11),8,8;extended:(0,11),16,8;;",128,0,219 181 .stabn 162,0,0,0 182 .stabn 162,0,0,0 183 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/stdint.h",130,0,0,0 184 .stabs "int8_t:t(22,1)=(0,10)",128,0,121,0 185 .stabs "uint8_t:t(22,2)=(0,11)",128,0,122,0 186 .stabs "int16_t:t(22,3)=(0,1)",128,0,123,0 187 .stabs "uint16_t:t(22,4)=(0,4)",128,0,124,0 188 .stabs "int32_t:t(22,5)=(0,3)",128,0,125,0 189 .stabs "uint32_t:t(22,6)=(0,5)",128,0,126,0 190 .stabs "int64_t:t(22,7)=(0,6)",128,0,128,0 191 .stabs "uint64_t:t(22,8)=(0,7)",128,0,129,0 192 .stabs "intptr_t:t(22,9)=(22,3)",128,0,142,0 193 .stabs "uintptr_t:t(22,10)=(22,4)",128,0,147,0 194 .stabs "int_least8_t:t(22,11)=(22,1)",128,0,159,0 195 .stabs "uint_least8_t:t(22,12)=(22,2)",128,0,164,0 196 .stabs "int_least16_t:t(22,13)=(22,3)",128,0,169,0 197 .stabs "uint_least16_t:t(22,14)=(22,4)",128,0,174,0 198 .stabs "int_least32_t:t(22,15)=(22,5)",128,0,179,0 199 .stabs "uint_least32_t:t(22,16)=(22,6)",128,0,184,0 200 .stabs "int_least64_t:t(22,17)=(22,7)",128,0,192,0 201 .stabs "uint_least64_t:t(22,18)=(22,8)",128,0,199,0 202 .stabs "int_fast8_t:t(22,19)=(22,1)",128,0,213,0 203 .stabs "uint_fast8_t:t(22,20)=(22,2)",128,0,218,0 204 .stabs "int_fast16_t:t(22,21)=(22,3)",128,0,223,0 205 .stabs "uint_fast16_t:t(22,22)=(22,4)",128,0,228,0 206 .stabs "int_fast32_t:t(22,23)=(22,5)",128,0,233,0 207 .stabs "uint_fast32_t:t(22,24)=(22,6)",128,0,238,0 208 .stabs "int_fast64_t:t(22,25)=(22,7)",128,0,246,0 209 .stabs "uint_fast64_t:t(22,26)=(22,8)",128,0,253,0 210 .stabs "intmax_t:t(22,27)=(22,7)",128,0,273,0 211 .stabs "uintmax_t:t(22,28)=(22,8)",128,0,278,0 212 .stabn 162,0,0,0 213 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/io.h",130,0,0,0 214 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/sfr_defs.h",130,0,0,0 215 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/inttypes.h",130,0,0,0 216 .stabs "int_farptr_t:t(25,1)=(22,5)",128,0,77,0 217 .stabs "uint_farptr_t:t(25,2)=(22,6)",128,0,81,0 218 .stabn 162,0,0,0 219 .stabn 162,0,0,0 220 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/fuse.h",130,0,0,0 221 .stabs "__fuse_t:t(26,1)=(26,2)=s3low:(0,11),0,8;high:(0,11),8,8;extended:(0,11),16,8;;",128,0,219 222 .stabn 162,0,0,0 223 .stabn 162,0,0,0 224 .stabs "../lib/devicelock.h",130,0,0,0 225 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/stdint.h",130,0,0,0 226 .stabs "int8_t:t(28,1)=(0,10)",128,0,121,0 227 .stabs "uint8_t:t(28,2)=(0,11)",128,0,122,0 228 .stabs "int16_t:t(28,3)=(0,1)",128,0,123,0 GAS LISTING /tmp/ccsXWNE7.s page 5 229 .stabs "uint16_t:t(28,4)=(0,4)",128,0,124,0 230 .stabs "int32_t:t(28,5)=(0,3)",128,0,125,0 231 .stabs "uint32_t:t(28,6)=(0,5)",128,0,126,0 232 .stabs "int64_t:t(28,7)=(0,6)",128,0,128,0 233 .stabs "uint64_t:t(28,8)=(0,7)",128,0,129,0 234 .stabs "intptr_t:t(28,9)=(28,3)",128,0,142,0 235 .stabs "uintptr_t:t(28,10)=(28,4)",128,0,147,0 236 .stabs "int_least8_t:t(28,11)=(28,1)",128,0,159,0 237 .stabs "uint_least8_t:t(28,12)=(28,2)",128,0,164,0 238 .stabs "int_least16_t:t(28,13)=(28,3)",128,0,169,0 239 .stabs "uint_least16_t:t(28,14)=(28,4)",128,0,174,0 240 .stabs "int_least32_t:t(28,15)=(28,5)",128,0,179,0 241 .stabs "uint_least32_t:t(28,16)=(28,6)",128,0,184,0 242 .stabs "int_least64_t:t(28,17)=(28,7)",128,0,192,0 243 .stabs "uint_least64_t:t(28,18)=(28,8)",128,0,199,0 244 .stabs "int_fast8_t:t(28,19)=(28,1)",128,0,213,0 245 .stabs "uint_fast8_t:t(28,20)=(28,2)",128,0,218,0 246 .stabs "int_fast16_t:t(28,21)=(28,3)",128,0,223,0 247 .stabs "uint_fast16_t:t(28,22)=(28,4)",128,0,228,0 248 .stabs "int_fast32_t:t(28,23)=(28,5)",128,0,233,0 249 .stabs "uint_fast32_t:t(28,24)=(28,6)",128,0,238,0 250 .stabs "int_fast64_t:t(28,25)=(28,7)",128,0,246,0 251 .stabs "uint_fast64_t:t(28,26)=(28,8)",128,0,253,0 252 .stabs "intmax_t:t(28,27)=(28,7)",128,0,273,0 253 .stabs "uintmax_t:t(28,28)=(28,8)",128,0,278,0 254 .stabn 162,0,0,0 255 .stabn 162,0,0,0 256 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/inttypes.h",130,0,0,0 257 .stabs "int_farptr_t:t(29,1)=(28,5)",128,0,77,0 258 .stabs "uint_farptr_t:t(29,2)=(28,6)",128,0,81,0 259 .stabn 162,0,0,0 260 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/io.h",130,0,0,0 261 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/fuse.h",130,0,0,0 262 .stabs "__fuse_t:t(31,1)=(31,2)=s3low:(0,11),0,8;high:(0,11),8,8;extended:(0,11),16,8;;",128,0,219 263 .stabn 162,0,0,0 264 .stabn 162,0,0,0 265 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/pgmspace.h",130,0,0,0 266 .stabs "/usr/lib/gcc/avr/4.3.2/include/stddef.h",130,0,0,0 267 .stabs "size_t:t(33,1)=(0,4)",128,0,214,0 268 .stabn 162,0,0,0 269 .stabs "prog_void:t(32,1)=(5,2)",128,0,210,0 270 .stabs "prog_char:t(32,2)=(5,4)",128,0,211,0 271 .stabs "prog_uchar:t(32,3)=(5,4)",128,0,212,0 272 .stabs "prog_int8_t:t(32,4)=(5,7)",128,0,214,0 273 .stabs "prog_uint8_t:t(32,5)=(5,4)",128,0,215,0 274 .stabs "prog_int16_t:t(32,6)=(5,10)",128,0,216,0 275 .stabs "prog_uint16_t:t(32,7)=(5,12)",128,0,217,0 276 .stabs "prog_int32_t:t(32,8)=(5,14)",128,0,218,0 277 .stabs "prog_uint32_t:t(32,9)=(5,16)",128,0,219,0 278 .stabs "prog_int64_t:t(32,10)=(5,18)",128,0,221,0 279 .stabs "prog_uint64_t:t(32,11)=(5,20)",128,0,222,0 280 .stabn 162,0,0,0 281 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/stdlib.h",130,0,0,0 282 .stabs "/usr/lib/gcc/avr/4.3.2/include/stddef.h",130,0,0,0 283 .stabs "wchar_t:t(35,1)=(0,1)",128,0,326,0 284 .stabn 162,0,0,0 285 .stabs "div_t:t(34,1)=(34,2)=s4quot:(0,1),0,16;rem:(0,1),16,16;;",128,0,71,0 GAS LISTING /tmp/ccsXWNE7.s page 6 286 .stabs "ldiv_t:t(34,3)=(34,4)=s8quot:(0,3),0,32;rem:(0,3),32,32;;",128,0,77,0 287 .stabs "__compar_fn_t:t(34,5)=(7,6)",128,0,80,0 288 .stabn 162,0,0,0 289 .stabs "/usr/lib/gcc/avr/4.3.2/include/stdarg.h",130,0,0,0 290 .stabs "__gnuc_va_list:t(36,1)=(9,2)",128,0,43,0 291 .stabs "va_list:t(36,2)=(36,1)",128,0,105,0 292 .stabn 162,0,0,0 293 .stabs "../lib/byte_to_hex.h",130,0,0,0 294 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/stdint.h",130,0,0,0 295 .stabs "int8_t:t(38,1)=(0,10)",128,0,121,0 296 .stabs "uint8_t:t(38,2)=(0,11)",128,0,122,0 297 .stabs "int16_t:t(38,3)=(0,1)",128,0,123,0 298 .stabs "uint16_t:t(38,4)=(0,4)",128,0,124,0 299 .stabs "int32_t:t(38,5)=(0,3)",128,0,125,0 300 .stabs "uint32_t:t(38,6)=(0,5)",128,0,126,0 301 .stabs "int64_t:t(38,7)=(0,6)",128,0,128,0 302 .stabs "uint64_t:t(38,8)=(0,7)",128,0,129,0 303 .stabs "intptr_t:t(38,9)=(38,3)",128,0,142,0 304 .stabs "uintptr_t:t(38,10)=(38,4)",128,0,147,0 305 .stabs "int_least8_t:t(38,11)=(38,1)",128,0,159,0 306 .stabs "uint_least8_t:t(38,12)=(38,2)",128,0,164,0 307 .stabs "int_least16_t:t(38,13)=(38,3)",128,0,169,0 308 .stabs "uint_least16_t:t(38,14)=(38,4)",128,0,174,0 309 .stabs "int_least32_t:t(38,15)=(38,5)",128,0,179,0 310 .stabs "uint_least32_t:t(38,16)=(38,6)",128,0,184,0 311 .stabs "int_least64_t:t(38,17)=(38,7)",128,0,192,0 312 .stabs "uint_least64_t:t(38,18)=(38,8)",128,0,199,0 313 .stabs "int_fast8_t:t(38,19)=(38,1)",128,0,213,0 314 .stabs "uint_fast8_t:t(38,20)=(38,2)",128,0,218,0 315 .stabs "int_fast16_t:t(38,21)=(38,3)",128,0,223,0 316 .stabs "uint_fast16_t:t(38,22)=(38,4)",128,0,228,0 317 .stabs "int_fast32_t:t(38,23)=(38,5)",128,0,233,0 318 .stabs "uint_fast32_t:t(38,24)=(38,6)",128,0,238,0 319 .stabs "int_fast64_t:t(38,25)=(38,7)",128,0,246,0 320 .stabs "uint_fast64_t:t(38,26)=(38,8)",128,0,253,0 321 .stabs "intmax_t:t(38,27)=(38,7)",128,0,273,0 322 .stabs "uintmax_t:t(38,28)=(38,8)",128,0,278,0 323 .stabn 162,0,0,0 324 .stabn 162,0,0,0 325 .stabs "../lib/serial.h",130,0,0,0 326 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/pgmspace.h",130,0,0,0 327 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/inttypes.h",130,0,0,0 328 .stabs "int_farptr_t:t(41,1)=(38,5)",128,0,77,0 329 .stabs "uint_farptr_t:t(41,2)=(38,6)",128,0,81,0 330 .stabn 162,0,0,0 331 .stabs "/usr/lib/gcc/avr/4.3.2/include/stddef.h",130,0,0,0 332 .stabs "size_t:t(42,1)=(0,4)",128,0,214,0 333 .stabn 162,0,0,0 334 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/io.h",130,0,0,0 335 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/fuse.h",130,0,0,0 336 .stabs "__fuse_t:t(44,1)=(44,2)=s3low:(0,11),0,8;high:(0,11),8,8;extended:(0,11),16,8;;",128,0,219 337 .stabn 162,0,0,0 338 .stabn 162,0,0,0 339 .stabs "prog_void:t(40,1)=(5,2)",128,0,210,0 340 .stabs "prog_char:t(40,2)=(5,4)",128,0,211,0 341 .stabs "prog_uchar:t(40,3)=(5,4)",128,0,212,0 342 .stabs "prog_int8_t:t(40,4)=(5,7)",128,0,214,0 GAS LISTING /tmp/ccsXWNE7.s page 7 343 .stabs "prog_uint8_t:t(40,5)=(5,4)",128,0,215,0 344 .stabs "prog_int16_t:t(40,6)=(5,10)",128,0,216,0 345 .stabs "prog_uint16_t:t(40,7)=(5,12)",128,0,217,0 346 .stabs "prog_int32_t:t(40,8)=(5,14)",128,0,218,0 347 .stabs "prog_uint32_t:t(40,9)=(5,16)",128,0,219,0 348 .stabs "prog_int64_t:t(40,10)=(5,18)",128,0,221,0 349 .stabs "prog_uint64_t:t(40,11)=(5,20)",128,0,222,0 350 .stabn 162,0,0,0 351 .stabn 162,0,0,0 352 .stabs "../lib/sleep.h",130,0,0,0 353 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/stdint.h",130,0,0,0 354 .stabs "int8_t:t(46,1)=(0,10)",128,0,121,0 355 .stabs "uint8_t:t(46,2)=(0,11)",128,0,122,0 356 .stabs "int16_t:t(46,3)=(0,1)",128,0,123,0 357 .stabs "uint16_t:t(46,4)=(0,4)",128,0,124,0 358 .stabs "int32_t:t(46,5)=(0,3)",128,0,125,0 359 .stabs "uint32_t:t(46,6)=(0,5)",128,0,126,0 360 .stabs "int64_t:t(46,7)=(0,6)",128,0,128,0 361 .stabs "uint64_t:t(46,8)=(0,7)",128,0,129,0 362 .stabs "intptr_t:t(46,9)=(46,3)",128,0,142,0 363 .stabs "uintptr_t:t(46,10)=(46,4)",128,0,147,0 364 .stabs "int_least8_t:t(46,11)=(46,1)",128,0,159,0 365 .stabs "uint_least8_t:t(46,12)=(46,2)",128,0,164,0 366 .stabs "int_least16_t:t(46,13)=(46,3)",128,0,169,0 367 .stabs "uint_least16_t:t(46,14)=(46,4)",128,0,174,0 368 .stabs "int_least32_t:t(46,15)=(46,5)",128,0,179,0 369 .stabs "uint_least32_t:t(46,16)=(46,6)",128,0,184,0 370 .stabs "int_least64_t:t(46,17)=(46,7)",128,0,192,0 371 .stabs "uint_least64_t:t(46,18)=(46,8)",128,0,199,0 372 .stabs "int_fast8_t:t(46,19)=(46,1)",128,0,213,0 373 .stabs "uint_fast8_t:t(46,20)=(46,2)",128,0,218,0 374 .stabs "int_fast16_t:t(46,21)=(46,3)",128,0,223,0 375 .stabs "uint_fast16_t:t(46,22)=(46,4)",128,0,228,0 376 .stabs "int_fast32_t:t(46,23)=(46,5)",128,0,233,0 377 .stabs "uint_fast32_t:t(46,24)=(46,6)",128,0,238,0 378 .stabs "int_fast64_t:t(46,25)=(46,7)",128,0,246,0 379 .stabs "uint_fast64_t:t(46,26)=(46,8)",128,0,253,0 380 .stabs "intmax_t:t(46,27)=(46,7)",128,0,273,0 381 .stabs "uintmax_t:t(46,28)=(46,8)",128,0,278,0 382 .stabn 162,0,0,0 383 .stabn 162,0,0,0 384 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/inttypes.h",130,0,0,0 385 .stabs "int_farptr_t:t(47,1)=(46,5)",128,0,77,0 386 .stabs "uint_farptr_t:t(47,2)=(46,6)",128,0,81,0 387 .stabn 162,0,0,0 388 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/io.h",130,0,0,0 389 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/fuse.h",130,0,0,0 390 .stabs "__fuse_t:t(49,1)=(49,2)=s3low:(0,11),0,8;high:(0,11),8,8;extended:(0,11),16,8;;",128,0,219 391 .stabn 162,0,0,0 392 .stabn 162,0,0,0 393 .stabs "/usr/lib/gcc/avr/4.3.2/../../../avr/include/avr/pgmspace.h",130,0,0,0 394 .stabs "/usr/lib/gcc/avr/4.3.2/include/stddef.h",130,0,0,0 395 .stabs "size_t:t(51,1)=(0,4)",128,0,214,0 396 .stabn 162,0,0,0 397 .stabs "prog_void:t(50,1)=(5,2)",128,0,210,0 398 .stabs "prog_char:t(50,2)=(5,4)",128,0,211,0 399 .stabs "prog_uchar:t(50,3)=(5,4)",128,0,212,0 GAS LISTING /tmp/ccsXWNE7.s page 8 400 .stabs "prog_int8_t:t(50,4)=(5,7)",128,0,214,0 401 .stabs "prog_uint8_t:t(50,5)=(5,4)",128,0,215,0 402 .stabs "prog_int16_t:t(50,6)=(5,10)",128,0,216,0 403 .stabs "prog_uint16_t:t(50,7)=(5,12)",128,0,217,0 404 .stabs "prog_int32_t:t(50,8)=(5,14)",128,0,218,0 405 .stabs "prog_uint32_t:t(50,9)=(5,16)",128,0,219,0 406 .stabs "prog_int64_t:t(50,10)=(5,18)",128,0,221,0 407 .stabs "prog_uint64_t:t(50,11)=(5,20)",128,0,222,0 408 .stabn 162,0,0,0 409 .stabs "__vector_default:F(0,15)",36,0,18,__vector_default 410 .global __vector_default 411 .type __vector_default, @function 412 __vector_default: 413 .stabd 46,0,0 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 **** 8:main.c **** #include 9:main.c **** #include 10:main.c **** #include 11:main.c **** 12:main.c **** #include "pin_ctl.h" 13:main.c **** #include "timers.h" 14:main.c **** #include "sleep.h" 15:main.c **** #include "i2c_slave.h" 16:main.c **** 17:main.c **** ISR(BADISR_vect) 18:main.c **** { 414 .stabn 68,0,18,.LM0-.LFBB1 415 .LM0: 416 .LFBB1: 417 0000 1F92 push __zero_reg__ 418 0002 0F92 push r0 419 0004 0FB6 in r0,__SREG__ 420 0006 0F92 push r0 421 0008 1124 clr __zero_reg__ 422 /* prologue: Signal */ 423 /* frame size = 0 */ 424 /* epilogue start */ 19:main.c **** } 425 .stabn 68,0,19,.LM1-.LFBB1 426 .LM1: 427 000a 0F90 pop r0 428 000c 0FBE out __SREG__,r0 429 000e 0F90 pop r0 430 0010 1F90 pop __zero_reg__ 431 0012 1895 reti 432 .size __vector_default, .-__vector_default 433 .Lscope1: 434 .stabs "",36,0,0,.Lscope1-.LFBB1 435 .stabd 78,0,0 436 .stabs "set_output.1659:f(0,15)",36,0,14,set_output.1659 437 .stabs "val:P(17,2)",64,0,13,24 GAS LISTING /tmp/ccsXWNE7.s page 9 438 .type set_output.1659, @function 439 set_output.1659: 440 .stabd 46,0,0 441 .stabs "pin_ctl.c",132,0,0,.Ltext1 442 .Ltext1: 1:pin_ctl.c **** #include "pin_ctl.h" 2:pin_ctl.c **** #include 3:pin_ctl.c **** 4:pin_ctl.c **** void set_leds(uint8_t val) 5:pin_ctl.c **** { 6:pin_ctl.c **** val = ~val; 7:pin_ctl.c **** val &= 0x07; 8:pin_ctl.c **** val <<= 5; 9:pin_ctl.c **** PORTD &= 0x1f; 10:pin_ctl.c **** PORTD |= val; 11:pin_ctl.c **** } 12:pin_ctl.c **** 13:pin_ctl.c **** void set_output(uint8_t val) 14:pin_ctl.c **** { 443 .stabn 68,0,14,.LM2-.LFBB2 444 .LM2: 445 .LFBB2: 446 /* prologue: function */ 447 /* frame size = 0 */ 15:pin_ctl.c **** if(val & (1<<0)) { 448 .stabn 68,0,15,.LM3-.LFBB2 449 .LM3: 450 0014 80FF sbrs r24,0 451 0016 00C0 rjmp .L4 16:pin_ctl.c **** PORTD |= (1<<4); 452 .stabn 68,0,16,.LM4-.LFBB2 453 .LM4: 454 0018 5C9A sbi 43-32,4 455 001a 00C0 rjmp .L5 456 .L4: 17:pin_ctl.c **** } else { 18:pin_ctl.c **** PORTD &= ~(1<<4); 457 .stabn 68,0,18,.LM5-.LFBB2 458 .LM5: 459 001c 5C98 cbi 43-32,4 460 .L5: 19:pin_ctl.c **** } 20:pin_ctl.c **** 21:pin_ctl.c **** if(val & (1<<1)) { 461 .stabn 68,0,21,.LM6-.LFBB2 462 .LM6: 463 001e 81FF sbrs r24,1 464 0020 00C0 rjmp .L6 22:pin_ctl.c **** PORTC |= (1<<3); 465 .stabn 68,0,22,.LM7-.LFBB2 466 .LM7: 467 0022 439A sbi 40-32,3 468 0024 00C0 rjmp .L7 469 .L6: 23:pin_ctl.c **** } else { 24:pin_ctl.c **** PORTC &= ~(1<<3); 470 .stabn 68,0,24,.LM8-.LFBB2 GAS LISTING /tmp/ccsXWNE7.s page 10 471 .LM8: 472 0026 4398 cbi 40-32,3 473 .L7: 25:pin_ctl.c **** } 26:pin_ctl.c **** 27:pin_ctl.c **** if(val & (1<<2)) { 474 .stabn 68,0,27,.LM9-.LFBB2 475 .LM9: 476 0028 82FF sbrs r24,2 477 002a 00C0 rjmp .L8 28:pin_ctl.c **** PORTD |= (1<<0); 478 .stabn 68,0,28,.LM10-.LFBB2 479 .LM10: 480 002c 589A sbi 43-32,0 481 002e 00C0 rjmp .L9 482 .L8: 29:pin_ctl.c **** } else { 30:pin_ctl.c **** PORTD &= ~(1<<0); 483 .stabn 68,0,30,.LM11-.LFBB2 484 .LM11: 485 0030 5898 cbi 43-32,0 486 .L9: 31:pin_ctl.c **** } 32:pin_ctl.c **** 33:pin_ctl.c **** if(val & (1<<3)) { 487 .stabn 68,0,33,.LM12-.LFBB2 488 .LM12: 489 0032 83FF sbrs r24,3 490 0034 00C0 rjmp .L10 34:pin_ctl.c **** PORTD |= (1<<1); 491 .stabn 68,0,34,.LM13-.LFBB2 492 .LM13: 493 0036 599A sbi 43-32,1 494 0038 0895 ret 495 .L10: 35:pin_ctl.c **** } else { 36:pin_ctl.c **** PORTD &= ~(1<<1); 496 .stabn 68,0,36,.LM14-.LFBB2 497 .LM14: 498 003a 5998 cbi 43-32,1 499 003c 0895 ret 500 .size set_output.1659, .-set_output.1659 501 .Lscope2: 502 .stabs "",36,0,0,.Lscope2-.LFBB2 503 .stabd 78,0,0 504 .stabs "main:F(0,1)",36,0,22,main 505 .global main 506 .type main, @function 507 main: 508 .stabd 46,0,0 509 .stabs "main.c",132,0,0,.Ltext2 510 .Ltext2: 20:main.c **** 21:main.c **** int main(void) 22:main.c **** { 511 .stabn 68,0,22,.LM15-.LFBB3 512 .LM15: GAS LISTING /tmp/ccsXWNE7.s page 11 513 .LFBB3: 514 /* prologue: function */ 515 /* frame size = 0 */ 23:main.c **** PORTB = (1<<0)|(1<<1)|(1<<2); 516 .stabn 68,0,23,.LM16-.LFBB3 517 .LM16: 518 003e 87E0 ldi r24,lo8(7) 519 0040 85B9 out 37-32,r24 24:main.c **** PORTC = 0; 520 .stabn 68,0,24,.LM17-.LFBB3 521 .LM17: 522 0042 18B8 out 40-32,__zero_reg__ 25:main.c **** PORTD = (1<<2)|(1<<3); 523 .stabn 68,0,25,.LM18-.LFBB3 524 .LM18: 525 0044 8CE0 ldi r24,lo8(12) 526 0046 8BB9 out 43-32,r24 26:main.c **** DDRB = 0; 527 .stabn 68,0,26,.LM19-.LFBB3 528 .LM19: 529 0048 14B8 out 36-32,__zero_reg__ 27:main.c **** DDRC = (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5); 530 .stabn 68,0,27,.LM20-.LFBB3 531 .LM20: 532 004a 8FE3 ldi r24,lo8(63) 533 004c 87B9 out 39-32,r24 28:main.c **** DDRD = (1<<0) | (1<<1) | (1<<4) | (1<<5) | (1<<6) | (1<<7); 534 .stabn 68,0,28,.LM21-.LFBB3 535 .LM21: 536 004e 83EF ldi r24,lo8(-13) 537 0050 8AB9 out 42-32,r24 538 .LBB53: 539 .LBB54: 540 .stabs "pin_ctl.c",132,0,0,.Ltext3 541 .Ltext3: 542 .stabn 68,0,9,.LM22-.LFBB3 543 .LM22: 544 0052 8BB1 in r24,43-32 545 0054 8F71 andi r24,lo8(31) 546 0056 8BB9 out 43-32,r24 547 .stabn 68,0,10,.LM23-.LFBB3 548 .LM23: 549 0058 8BB1 in r24,43-32 550 005a 806E ori r24,lo8(-32) 551 005c 8BB9 out 43-32,r24 552 .LBE54: 553 .LBE53: 554 .stabs "main.c",132,0,0,.Ltext4 555 .Ltext4: 29:main.c **** 30:main.c **** set_leds(0); 31:main.c **** set_output(0); 556 .stabn 68,0,31,.LM24-.LFBB3 557 .LM24: 558 005e 80E0 ldi r24,lo8(0) 559 0060 00D0 rcall set_output.1659 560 .LBB55: GAS LISTING /tmp/ccsXWNE7.s page 12 561 .LBB56: 562 .stabs "timers.c",132,0,0,.Ltext5 563 .Ltext5: 1:timers.c **** #include "timers.h" 2:timers.c **** #include 3:timers.c **** #include 4:timers.c **** #include 5:timers.c **** 6:timers.c **** volatile uint16_t out[3]; 7:timers.c **** volatile uint32_t outoff[3]; 8:timers.c **** volatile uint16_t ins[3]; 9:timers.c **** volatile uint32_t lastchange[3]; 10:timers.c **** 11:timers.c **** volatile uint32_t ct; 12:timers.c **** 13:timers.c **** void set_sv0(uint16_t v) {out[0] = 20*v;} 14:timers.c **** void set_sv1(uint16_t v) {out[1] = 20*v;} 15:timers.c **** void set_sv2(uint16_t v) {out[2] = 20*v;} 16:timers.c **** 17:timers.c **** void timer_setup(void) 18:timers.c **** { 19:timers.c **** TCCR1A = 0; 564 .stabn 68,0,19,.LM25-.LFBB3 565 .LM25: 566 0062 1092 8000 sts 128,__zero_reg__ 20:timers.c **** ICR1 = 50000; 567 .stabn 68,0,20,.LM26-.LFBB3 568 .LM26: 569 0066 80E5 ldi r24,lo8(-15536) 570 0068 93EC ldi r25,hi8(-15536) 571 006a 9093 8700 sts (134)+1,r25 572 006e 8093 8600 sts 134,r24 21:timers.c **** 22:timers.c **** OCR2A = 20; 573 .stabn 68,0,22,.LM27-.LFBB3 574 .LM27: 575 0072 84E1 ldi r24,lo8(20) 576 0074 8093 B300 sts 179,r24 23:timers.c **** 24:timers.c **** TCCR2A = (1< 2:i2c_slave.c **** #include "i2c_slave.h" 3:i2c_slave.c **** 4:i2c_slave.c **** #include 5:i2c_slave.c **** #include 6:i2c_slave.c **** 7:i2c_slave.c **** #include "devicelock.h" 8:i2c_slave.c **** 9:i2c_slave.c **** #include "pin_ctl.h" 10:i2c_slave.c **** #include "timers.h" 11:i2c_slave.c **** 12:i2c_slave.c **** volatile uint8_t i2cbuf[10]; 13:i2c_slave.c **** volatile uint8_t i2cptr; 14:i2c_slave.c **** volatile uint8_t i2coutbuf[10]; 15:i2c_slave.c **** 16:i2c_slave.c **** void i2c_slave_setup(uint8_t address) 17:i2c_slave.c **** { 18:i2c_slave.c **** TWAR = (address & 0x7f) << 1; 604 .stabn 68,0,18,.LM34-.LFBB3 605 .LM34: 606 0096 8CEC ldi r24,lo8(-52) 607 0098 8093 BA00 sts 186,r24 19:i2c_slave.c **** TWCR = (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 GAS LISTING /tmp/ccsXWNE7.s page 14 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(); 617 .stabn 68,0,18,.LM36-.LFBB3 618 .LM36: 619 /* #APP */ 620 ; 18 "../lib/devicelock.c" 1 621 00a2 F894 cli 622 ; 0 "" 2 19:../lib/devicelock.c **** if((device_locks & which) == 0) { 623 .stabn 68,0,19,.LM37-.LFBB3 624 .LM37: 625 /* #NOAPP */ 626 00a4 8091 0000 lds r24,device_locks.2110 627 00a8 82FF sbrs r24,2 628 00aa 00C0 rjmp .L14 629 00ac 80E0 ldi r24,lo8(0) 630 00ae 00C0 rjmp .L15 631 .L14: 20:../lib/devicelock.c **** device_locks |= which; 632 .stabn 68,0,20,.LM38-.LFBB3 633 .LM38: 634 00b0 8091 0000 lds r24,device_locks.2110 635 00b4 8460 ori r24,lo8(4) 636 00b6 8093 0000 sts device_locks.2110,r24 637 00ba 81E0 ldi r24,lo8(1) 638 .L15: 21:../lib/devicelock.c **** acquired = 1; 22:../lib/devicelock.c **** } 23:../lib/devicelock.c **** sei(); 639 .stabn 68,0,23,.LM39-.LFBB3 640 .LM39: 641 /* #APP */ 642 ; 23 "../lib/devicelock.c" 1 643 00bc 7894 sei 644 ; 0 "" 2 24:../lib/devicelock.c **** } while(acquired == 0); 645 .stabn 68,0,24,.LM40-.LFBB3 646 .LM40: 647 /* #NOAPP */ 648 00be 8823 tst r24 649 00c0 01F0 breq .L16 650 .LBE60: 651 .LBE59: 652 .LBE58: 653 .LBE57: 654 .stabs "main.c",132,0,0,.Ltext8 655 .Ltext8: 32:main.c **** 33:main.c **** timer_setup(); 34:main.c **** i2c_slave_setup(102); GAS LISTING /tmp/ccsXWNE7.s page 15 35:main.c **** sei(); 656 .stabn 68,0,35,.LM41-.LFBB3 657 .LM41: 658 /* #APP */ 659 ; 35 "main.c" 1 660 00c2 7894 sei 661 ; 0 "" 2 36:main.c **** 37:main.c **** while(1) { 38:main.c **** i2coutbuf[0] = 'A'; 662 .stabn 68,0,38,.LM42-.LFBB3 663 .LM42: 664 /* #NOAPP */ 665 00c4 21E4 ldi r18,lo8(65) 666 .L23: 667 00c6 2093 0000 sts i2coutbuf.1677,r18 39:main.c **** *((uint16_t*)(i2coutbuf+1)) = ins[0]; 668 .stabn 68,0,39,.LM43-.LFBB3 669 .LM43: 670 00ca 8091 0000 lds r24,ins.1660 671 00ce 9091 0000 lds r25,(ins.1660)+1 672 00d2 9093 0000 sts (i2coutbuf.1677+1)+1,r25 673 00d6 8093 0000 sts i2coutbuf.1677+1,r24 40:main.c **** *((uint16_t*)(i2coutbuf+3)) = ins[1]; 674 .stabn 68,0,40,.LM44-.LFBB3 675 .LM44: 676 00da 8091 0000 lds r24,ins.1660+2 677 00de 9091 0000 lds r25,(ins.1660+2)+1 678 00e2 9093 0000 sts (i2coutbuf.1677+3)+1,r25 679 00e6 8093 0000 sts i2coutbuf.1677+3,r24 41:main.c **** *((uint16_t*)(i2coutbuf+5)) = ins[2]; 680 .stabn 68,0,41,.LM45-.LFBB3 681 .LM45: 682 00ea 8091 0000 lds r24,ins.1660+4 683 00ee 9091 0000 lds r25,(ins.1660+4)+1 684 00f2 9093 0000 sts (i2coutbuf.1677+5)+1,r25 685 00f6 8093 0000 sts i2coutbuf.1677+5,r24 42:main.c **** i2coutbuf[7] = 0; 686 .stabn 68,0,42,.LM46-.LFBB3 687 .LM46: 688 00fa 1092 0000 sts i2coutbuf.1677+7,__zero_reg__ 43:main.c **** 44:main.c **** if(!(PIND & (1<<2))) i2coutbuf[7] |= (1<<0); 689 .stabn 68,0,44,.LM47-.LFBB3 690 .LM47: 691 00fe 4A99 sbic 41-32,2 692 0100 00C0 rjmp .L17 693 0102 8091 0000 lds r24,i2coutbuf.1677+7 694 0106 8160 ori r24,lo8(1) 695 0108 8093 0000 sts i2coutbuf.1677+7,r24 696 .L17: 45:main.c **** if(!(PIND & (1<<3))) i2coutbuf[7] |= (1<<1); 697 .stabn 68,0,45,.LM48-.LFBB3 698 .LM48: 699 010c 4B99 sbic 41-32,3 700 010e 00C0 rjmp .L23 701 0110 8091 0000 lds r24,i2coutbuf.1677+7 GAS LISTING /tmp/ccsXWNE7.s page 16 702 0114 8260 ori r24,lo8(2) 703 0116 8093 0000 sts i2coutbuf.1677+7,r24 704 011a 00C0 rjmp .L23 705 .size main, .-main 706 .stabs "acquired:r(28,2)",64,0,16,24 707 .stabn 192,0,0,.LBB60-.LFBB3 708 .stabn 224,0,0,.LBE60-.LFBB3 709 .Lscope3: 710 .stabs "",36,0,0,.Lscope3-.LFBB3 711 .stabd 78,0,0 712 .stabs "__vector_10:F(0,15)",36,0,39,__vector_10 713 .global __vector_10 714 .type __vector_10, @function 715 __vector_10: 716 .stabd 46,0,0 717 .stabs "timers.c",132,0,0,.Ltext9 718 .Ltext9: 31:timers.c **** } 32:timers.c **** 33:timers.c **** volatile uint8_t ov2; 34:timers.c **** volatile uint8_t offseq[3]; 35:timers.c **** volatile uint16_t nextoff[2]; 36:timers.c **** volatile uint8_t offint; 37:timers.c **** 38:timers.c **** ISR(TIMER1_CAPT_vect) 39:timers.c **** { 719 .stabn 68,0,39,.LM49-.LFBB4 720 .LM49: 721 .LFBB4: 722 011c 1F92 push __zero_reg__ 723 011e 0F92 push r0 724 0120 0FB6 in r0,__SREG__ 725 0122 0F92 push r0 726 0124 1124 clr __zero_reg__ 727 0126 EF92 push r14 728 0128 FF92 push r15 729 012a 0F93 push r16 730 012c 1F93 push r17 731 012e 2F93 push r18 732 0130 3F93 push r19 733 0132 4F93 push r20 734 0134 5F93 push r21 735 0136 6F93 push r22 736 0138 8F93 push r24 737 013a 9F93 push r25 738 013c AF93 push r26 739 013e BF93 push r27 740 /* prologue: Signal */ 741 /* frame size = 0 */ 40:timers.c **** ct += 50000; 742 .stabn 68,0,40,.LM50-.LFBB4 743 .LM50: 744 0140 8091 0000 lds r24,ct.1799 745 0144 9091 0000 lds r25,(ct.1799)+1 746 0148 A091 0000 lds r26,(ct.1799)+2 747 014c B091 0000 lds r27,(ct.1799)+3 748 0150 805B subi r24,lo8(-(50000)) GAS LISTING /tmp/ccsXWNE7.s page 17 749 0152 9C43 sbci r25,hi8(-(50000)) 750 0154 AF4F sbci r26,hlo8(-(50000)) 751 0156 BF4F sbci r27,hhi8(-(50000)) 752 0158 8093 0000 sts ct.1799,r24 753 015c 9093 0000 sts (ct.1799)+1,r25 754 0160 A093 0000 sts (ct.1799)+2,r26 755 0164 B093 0000 sts (ct.1799)+3,r27 41:timers.c **** if(ct >= 4000000000UL) ct = 0; 756 .stabn 68,0,41,.LM51-.LFBB4 757 .LM51: 758 0168 8091 0000 lds r24,ct.1799 759 016c 9091 0000 lds r25,(ct.1799)+1 760 0170 A091 0000 lds r26,(ct.1799)+2 761 0174 B091 0000 lds r27,(ct.1799)+3 762 0178 8050 subi r24,lo8(-294967296) 763 017a 9842 sbci r25,hi8(-294967296) 764 017c AB46 sbci r26,hlo8(-294967296) 765 017e BE4E sbci r27,hhi8(-294967296) 766 0180 00F0 brlo .L25 767 0182 1092 0000 sts ct.1799,__zero_reg__ 768 0186 1092 0000 sts (ct.1799)+1,__zero_reg__ 769 018a 1092 0000 sts (ct.1799)+2,__zero_reg__ 770 018e 1092 0000 sts (ct.1799)+3,__zero_reg__ 771 .L25: 42:timers.c **** 43:timers.c **** if(ov2 == 8) { //20ms 772 .stabn 68,0,43,.LM52-.LFBB4 773 .LM52: 774 0192 8091 0000 lds r24,ov2.1823 775 0196 8830 cpi r24,lo8(8) 776 0198 01F0 breq .+2 777 019a 00C0 rjmp .L26 778 .LBB61: 779 .LBB62: 780 .LBB63: 44:timers.c **** uint32_t now = get_timer(); 45:timers.c **** ov2 = 0; 46:timers.c **** if(get_diff(lastchange[0], now) > 1000000) { 47:timers.c **** ins[0] = 0; 48:timers.c **** lastchange[0] = now; 49:timers.c **** } 50:timers.c **** if(get_diff(lastchange[1], now) > 1000000) { 51:timers.c **** ins[1] = 0; 52:timers.c **** lastchange[1] = now; 53:timers.c **** } 54:timers.c **** if(get_diff(lastchange[2], now) > 1000000) { 55:timers.c **** ins[2] = 0; 56:timers.c **** lastchange[2] = now; 57:timers.c **** } 58:timers.c **** 59:timers.c **** if(!out[0]) PORTC &= ~(1<<0); 60:timers.c **** else PORTC |= (1<<0); 61:timers.c **** 62:timers.c **** if(!out[1]) PORTC &= ~(1<<1); 63:timers.c **** else PORTC |= (1<<1); 64:timers.c **** 65:timers.c **** if(!out[2]) PORTC &= ~(1<<2); GAS LISTING /tmp/ccsXWNE7.s page 18 66:timers.c **** else PORTC |= (1<<2); 67:timers.c **** 68:timers.c **** } 69:timers.c **** 70:timers.c **** ov2++; 71:timers.c **** } 72:timers.c **** 73:timers.c **** uint32_t get_timer(void) 74:timers.c **** { 75:timers.c **** return ct + TCNT1; 781 .stabn 68,0,75,.LM53-.LFBB4 782 .LM53: 783 019c 2091 0000 lds r18,ct.1799 784 01a0 3091 0000 lds r19,(ct.1799)+1 785 01a4 4091 0000 lds r20,(ct.1799)+2 786 01a8 5091 0000 lds r21,(ct.1799)+3 787 01ac 8091 8400 lds r24,132 788 01b0 9091 8500 lds r25,(132)+1 789 01b4 A0E0 ldi r26,lo8(0) 790 01b6 B0E0 ldi r27,hi8(0) 791 01b8 820F add r24,r18 792 01ba 931F adc r25,r19 793 01bc A41F adc r26,r20 794 01be B51F adc r27,r21 795 .LBE63: 796 .LBE62: 797 .stabn 68,0,45,.LM54-.LFBB4 798 .LM54: 799 01c0 1092 0000 sts ov2.1823,__zero_reg__ 800 .stabn 68,0,46,.LM55-.LFBB4 801 .LM55: 802 01c4 2091 0000 lds r18,lastchange.1798 803 01c8 3091 0000 lds r19,(lastchange.1798)+1 804 01cc 4091 0000 lds r20,(lastchange.1798)+2 805 01d0 5091 0000 lds r21,(lastchange.1798)+3 806 .LBB64: 807 .LBB65: 76:timers.c **** } 77:timers.c **** 78:timers.c **** uint32_t get_diff(uint32_t t1, uint32_t t2) 79:timers.c **** { 80:timers.c **** if(t1 <= t2) { 808 .stabn 68,0,80,.LM56-.LFBB4 809 .LM56: 810 01d4 8217 cp r24,r18 811 01d6 9307 cpc r25,r19 812 01d8 A407 cpc r26,r20 813 01da B507 cpc r27,r21 814 01dc 00F0 brlo .L27 81:timers.c **** return t2 - t1; 815 .stabn 68,0,81,.LM57-.LFBB4 816 .LM57: 817 01de 7C01 movw r14,r24 818 01e0 8D01 movw r16,r26 819 01e2 E21A sub r14,r18 820 01e4 F30A sbc r15,r19 821 01e6 040B sbc r16,r20 GAS LISTING /tmp/ccsXWNE7.s page 19 822 01e8 150B sbc r17,r21 823 01ea A801 movw r20,r16 824 01ec 9701 movw r18,r14 825 01ee 00C0 rjmp .L28 826 .L27: 82:timers.c **** } else { 83:timers.c **** return 4000000000UL - (t1 - t2); 827 .stabn 68,0,83,.LM58-.LFBB4 828 .LM58: 829 01f0 7C01 movw r14,r24 830 01f2 8D01 movw r16,r26 831 01f4 E21A sub r14,r18 832 01f6 F30A sbc r15,r19 833 01f8 040B sbc r16,r20 834 01fa 150B sbc r17,r21 835 01fc A801 movw r20,r16 836 01fe 9701 movw r18,r14 837 0200 2050 subi r18,lo8(-(-294967296)) 838 0202 384D sbci r19,hi8(-(-294967296)) 839 0204 4449 sbci r20,hlo8(-(-294967296)) 840 0206 5141 sbci r21,hhi8(-(-294967296)) 841 .L28: 842 .LBE65: 843 .LBE64: 844 .stabn 68,0,46,.LM59-.LFBB4 845 .LM59: 846 0208 2154 subi r18,lo8(1000001) 847 020a 3244 sbci r19,hi8(1000001) 848 020c 4F40 sbci r20,hlo8(1000001) 849 020e 5040 sbci r21,hhi8(1000001) 850 0210 00F0 brlo .L29 851 .stabn 68,0,47,.LM60-.LFBB4 852 .LM60: 853 0212 1092 0000 sts (ins.1660)+1,__zero_reg__ 854 0216 1092 0000 sts ins.1660,__zero_reg__ 855 .stabn 68,0,48,.LM61-.LFBB4 856 .LM61: 857 021a 8093 0000 sts lastchange.1798,r24 858 021e 9093 0000 sts (lastchange.1798)+1,r25 859 0222 A093 0000 sts (lastchange.1798)+2,r26 860 0226 B093 0000 sts (lastchange.1798)+3,r27 861 .L29: 862 .stabn 68,0,50,.LM62-.LFBB4 863 .LM62: 864 022a 2091 0000 lds r18,lastchange.1798+4 865 022e 3091 0000 lds r19,(lastchange.1798+4)+1 866 0232 4091 0000 lds r20,(lastchange.1798+4)+2 867 0236 5091 0000 lds r21,(lastchange.1798+4)+3 868 .LBB66: 869 .LBB67: 870 .stabn 68,0,80,.LM63-.LFBB4 871 .LM63: 872 023a 8217 cp r24,r18 873 023c 9307 cpc r25,r19 874 023e A407 cpc r26,r20 875 0240 B507 cpc r27,r21 876 0242 00F0 brlo .L30 GAS LISTING /tmp/ccsXWNE7.s page 20 877 .stabn 68,0,81,.LM64-.LFBB4 878 .LM64: 879 0244 7C01 movw r14,r24 880 0246 8D01 movw r16,r26 881 0248 E21A sub r14,r18 882 024a F30A sbc r15,r19 883 024c 040B sbc r16,r20 884 024e 150B sbc r17,r21 885 0250 A801 movw r20,r16 886 0252 9701 movw r18,r14 887 0254 00C0 rjmp .L31 888 .L30: 889 .stabn 68,0,83,.LM65-.LFBB4 890 .LM65: 891 0256 7C01 movw r14,r24 892 0258 8D01 movw r16,r26 893 025a E21A sub r14,r18 894 025c F30A sbc r15,r19 895 025e 040B sbc r16,r20 896 0260 150B sbc r17,r21 897 0262 A801 movw r20,r16 898 0264 9701 movw r18,r14 899 0266 2050 subi r18,lo8(-(-294967296)) 900 0268 384D sbci r19,hi8(-(-294967296)) 901 026a 4449 sbci r20,hlo8(-(-294967296)) 902 026c 5141 sbci r21,hhi8(-(-294967296)) 903 .L31: 904 .LBE67: 905 .LBE66: 906 .stabn 68,0,50,.LM66-.LFBB4 907 .LM66: 908 026e 2154 subi r18,lo8(1000001) 909 0270 3244 sbci r19,hi8(1000001) 910 0272 4F40 sbci r20,hlo8(1000001) 911 0274 5040 sbci r21,hhi8(1000001) 912 0276 00F0 brlo .L32 913 .stabn 68,0,51,.LM67-.LFBB4 914 .LM67: 915 0278 1092 0000 sts (ins.1660+2)+1,__zero_reg__ 916 027c 1092 0000 sts ins.1660+2,__zero_reg__ 917 .stabn 68,0,52,.LM68-.LFBB4 918 .LM68: 919 0280 8093 0000 sts lastchange.1798+4,r24 920 0284 9093 0000 sts (lastchange.1798+4)+1,r25 921 0288 A093 0000 sts (lastchange.1798+4)+2,r26 922 028c B093 0000 sts (lastchange.1798+4)+3,r27 923 .L32: 924 .stabn 68,0,54,.LM69-.LFBB4 925 .LM69: 926 0290 2091 0000 lds r18,lastchange.1798+8 927 0294 3091 0000 lds r19,(lastchange.1798+8)+1 928 0298 4091 0000 lds r20,(lastchange.1798+8)+2 929 029c 5091 0000 lds r21,(lastchange.1798+8)+3 930 .LBB68: 931 .LBB69: 932 .stabn 68,0,80,.LM70-.LFBB4 933 .LM70: GAS LISTING /tmp/ccsXWNE7.s page 21 934 02a0 8217 cp r24,r18 935 02a2 9307 cpc r25,r19 936 02a4 A407 cpc r26,r20 937 02a6 B507 cpc r27,r21 938 02a8 00F0 brlo .L33 939 .stabn 68,0,81,.LM71-.LFBB4 940 .LM71: 941 02aa 7C01 movw r14,r24 942 02ac 8D01 movw r16,r26 943 02ae E21A sub r14,r18 944 02b0 F30A sbc r15,r19 945 02b2 040B sbc r16,r20 946 02b4 150B sbc r17,r21 947 02b6 A801 movw r20,r16 948 02b8 9701 movw r18,r14 949 02ba 00C0 rjmp .L34 950 .L33: 951 .stabn 68,0,83,.LM72-.LFBB4 952 .LM72: 953 02bc 7C01 movw r14,r24 954 02be 8D01 movw r16,r26 955 02c0 E21A sub r14,r18 956 02c2 F30A sbc r15,r19 957 02c4 040B sbc r16,r20 958 02c6 150B sbc r17,r21 959 02c8 A801 movw r20,r16 960 02ca 9701 movw r18,r14 961 02cc 2050 subi r18,lo8(-(-294967296)) 962 02ce 384D sbci r19,hi8(-(-294967296)) 963 02d0 4449 sbci r20,hlo8(-(-294967296)) 964 02d2 5141 sbci r21,hhi8(-(-294967296)) 965 .L34: 966 .LBE69: 967 .LBE68: 968 .stabn 68,0,54,.LM73-.LFBB4 969 .LM73: 970 02d4 2154 subi r18,lo8(1000001) 971 02d6 3244 sbci r19,hi8(1000001) 972 02d8 4F40 sbci r20,hlo8(1000001) 973 02da 5040 sbci r21,hhi8(1000001) 974 02dc 00F0 brlo .L35 975 .stabn 68,0,55,.LM74-.LFBB4 976 .LM74: 977 02de 1092 0000 sts (ins.1660+4)+1,__zero_reg__ 978 02e2 1092 0000 sts ins.1660+4,__zero_reg__ 979 .stabn 68,0,56,.LM75-.LFBB4 980 .LM75: 981 02e6 8093 0000 sts lastchange.1798+8,r24 982 02ea 9093 0000 sts (lastchange.1798+8)+1,r25 983 02ee A093 0000 sts (lastchange.1798+8)+2,r26 984 02f2 B093 0000 sts (lastchange.1798+8)+3,r27 985 .L35: 986 .stabn 68,0,59,.LM76-.LFBB4 987 .LM76: 988 02f6 8091 0000 lds r24,out.1795 989 02fa 9091 0000 lds r25,(out.1795)+1 990 02fe 892B or r24,r25 GAS LISTING /tmp/ccsXWNE7.s page 22 991 0300 01F4 brne .L36 992 0302 4098 cbi 40-32,0 993 0304 00C0 rjmp .L37 994 .L36: 995 .stabn 68,0,60,.LM77-.LFBB4 996 .LM77: 997 0306 409A sbi 40-32,0 998 .L37: 999 .stabn 68,0,62,.LM78-.LFBB4 1000 .LM78: 1001 0308 8091 0000 lds r24,out.1795+2 1002 030c 9091 0000 lds r25,(out.1795+2)+1 1003 0310 892B or r24,r25 1004 0312 01F4 brne .L38 1005 0314 4198 cbi 40-32,1 1006 0316 00C0 rjmp .L39 1007 .L38: 1008 .stabn 68,0,63,.LM79-.LFBB4 1009 .LM79: 1010 0318 419A sbi 40-32,1 1011 .L39: 1012 .stabn 68,0,65,.LM80-.LFBB4 1013 .LM80: 1014 031a 8091 0000 lds r24,out.1795+4 1015 031e 9091 0000 lds r25,(out.1795+4)+1 1016 0322 892B or r24,r25 1017 0324 01F4 brne .L40 1018 0326 4298 cbi 40-32,2 1019 0328 00C0 rjmp .L26 1020 .L40: 1021 .stabn 68,0,66,.LM81-.LFBB4 1022 .LM81: 1023 032a 429A sbi 40-32,2 1024 .L26: 1025 .LBE61: 1026 .stabn 68,0,70,.LM82-.LFBB4 1027 .LM82: 1028 032c 8091 0000 lds r24,ov2.1823 1029 0330 8F5F subi r24,lo8(-(1)) 1030 0332 8093 0000 sts ov2.1823,r24 1031 /* epilogue start */ 1032 .stabn 68,0,71,.LM83-.LFBB4 1033 .LM83: 1034 0336 BF91 pop r27 1035 0338 AF91 pop r26 1036 033a 9F91 pop r25 1037 033c 8F91 pop r24 1038 033e 6F91 pop r22 1039 0340 5F91 pop r21 1040 0342 4F91 pop r20 1041 0344 3F91 pop r19 1042 0346 2F91 pop r18 1043 0348 1F91 pop r17 1044 034a 0F91 pop r16 1045 034c FF90 pop r15 1046 034e EF90 pop r14 1047 0350 0F90 pop r0 GAS LISTING /tmp/ccsXWNE7.s page 23 1048 0352 0FBE out __SREG__,r0 1049 0354 0F90 pop r0 1050 0356 1F90 pop __zero_reg__ 1051 0358 1895 reti 1052 .size __vector_10, .-__vector_10 1053 .stabs "now:r(11,6)",64,0,44,24 1054 .stabn 192,0,0,.LBB61-.LFBB4 1055 .stabn 224,0,0,.LBE61-.LFBB4 1056 .Lscope4: 1057 .stabs "",36,0,0,.Lscope4-.LFBB4 1058 .stabd 78,0,0 1059 .stabs "__vector_7:F(0,15)",36,0,93,__vector_7 1060 .global __vector_7 1061 .type __vector_7, @function 1062 __vector_7: 1063 .stabd 46,0,0 84:timers.c **** } 85:timers.c **** } 86:timers.c **** 87:timers.c **** uint8_t past(uint32_t t); 88:timers.c **** 89:timers.c **** volatile uint8_t inpp; 90:timers.c **** volatile uint32_t on0, on1, on2; 91:timers.c **** 92:timers.c **** ISR(TIMER2_COMPA_vect) 93:timers.c **** { 1064 .stabn 68,0,93,.LM84-.LFBB5 1065 .LM84: 1066 .LFBB5: 1067 035a 1F92 push __zero_reg__ 1068 035c 0F92 push r0 1069 035e 0FB6 in r0,__SREG__ 1070 0360 0F92 push r0 1071 0362 1124 clr __zero_reg__ 1072 0364 EF92 push r14 1073 0366 FF92 push r15 1074 0368 0F93 push r16 1075 036a 1F93 push r17 1076 036c 2F93 push r18 1077 036e 3F93 push r19 1078 0370 4F93 push r20 1079 0372 5F93 push r21 1080 0374 6F93 push r22 1081 0376 7F93 push r23 1082 0378 8F93 push r24 1083 037a 9F93 push r25 1084 037c AF93 push r26 1085 037e BF93 push r27 1086 0380 EF93 push r30 1087 /* prologue: Signal */ 1088 /* frame size = 0 */ 94:timers.c **** uint8_t inp = PINB & 0x07; 1089 .stabn 68,0,94,.LM85-.LFBB5 1090 .LM85: 1091 0382 E3B1 in r30,35-32 1092 0384 E770 andi r30,lo8(7) 95:timers.c **** #if 1 GAS LISTING /tmp/ccsXWNE7.s page 24 96:timers.c **** if(inp != inpp) { // change! 1093 .stabn 68,0,96,.LM86-.LFBB5 1094 .LM86: 1095 0386 8091 0000 lds r24,inpp.1878 1096 038a E817 cp r30,r24 1097 038c 01F4 brne .+2 1098 038e 00C0 rjmp .L43 97:timers.c **** if((inp & (1<<0)) != (inpp & (1<<0))) { 1099 .stabn 68,0,97,.LM87-.LFBB5 1100 .LM87: 1101 0390 6E2F mov r22,r30 1102 0392 70E0 ldi r23,lo8(0) 1103 0394 8091 0000 lds r24,inpp.1878 1104 0398 90E0 ldi r25,lo8(0) 1105 039a 8627 eor r24,r22 1106 039c 9727 eor r25,r23 1107 039e 80FF sbrs r24,0 1108 03a0 00C0 rjmp .L44 98:timers.c **** if(!(inp & (1<<0))) on0 = get_timer(); 1109 .stabn 68,0,98,.LM88-.LFBB5 1110 .LM88: 1111 03a2 E0FD sbrc r30,0 1112 03a4 00C0 rjmp .L45 1113 .LBB70: 1114 .LBB71: 1115 .stabn 68,0,75,.LM89-.LFBB5 1116 .LM89: 1117 03a6 2091 0000 lds r18,ct.1799 1118 03aa 3091 0000 lds r19,(ct.1799)+1 1119 03ae 4091 0000 lds r20,(ct.1799)+2 1120 03b2 5091 0000 lds r21,(ct.1799)+3 1121 03b6 8091 8400 lds r24,132 1122 03ba 9091 8500 lds r25,(132)+1 1123 03be A0E0 ldi r26,lo8(0) 1124 03c0 B0E0 ldi r27,hi8(0) 1125 03c2 820F add r24,r18 1126 03c4 931F adc r25,r19 1127 03c6 A41F adc r26,r20 1128 03c8 B51F adc r27,r21 1129 .LBE71: 1130 .LBE70: 1131 .stabn 68,0,98,.LM90-.LFBB5 1132 .LM90: 1133 03ca 8093 0000 sts on0.1879,r24 1134 03ce 9093 0000 sts (on0.1879)+1,r25 1135 03d2 A093 0000 sts (on0.1879)+2,r26 1136 03d6 B093 0000 sts (on0.1879)+3,r27 1137 03da 00C0 rjmp .L44 1138 .L45: 99:timers.c **** else { 100:timers.c **** ins[0] = get_diff(on0, get_timer()); 1139 .stabn 68,0,100,.LM91-.LFBB5 1140 .LM91: 1141 03dc E090 0000 lds r14,on0.1879 1142 03e0 F090 0000 lds r15,(on0.1879)+1 1143 03e4 0091 0000 lds r16,(on0.1879)+2 1144 03e8 1091 0000 lds r17,(on0.1879)+3 GAS LISTING /tmp/ccsXWNE7.s page 25 1145 .LBB72: 1146 .LBB73: 1147 .stabn 68,0,75,.LM92-.LFBB5 1148 .LM92: 1149 03ec 2091 0000 lds r18,ct.1799 1150 03f0 3091 0000 lds r19,(ct.1799)+1 1151 03f4 4091 0000 lds r20,(ct.1799)+2 1152 03f8 5091 0000 lds r21,(ct.1799)+3 1153 03fc 8091 8400 lds r24,132 1154 0400 9091 8500 lds r25,(132)+1 1155 0404 A0E0 ldi r26,lo8(0) 1156 0406 B0E0 ldi r27,hi8(0) 1157 0408 820F add r24,r18 1158 040a 931F adc r25,r19 1159 040c A41F adc r26,r20 1160 040e B51F adc r27,r21 1161 .LBE73: 1162 .LBE72: 1163 .LBB74: 1164 .LBB75: 1165 .stabn 68,0,80,.LM93-.LFBB5 1166 .LM93: 1167 0410 8E15 cp r24,r14 1168 0412 9F05 cpc r25,r15 1169 0414 A007 cpc r26,r16 1170 0416 B107 cpc r27,r17 1171 0418 00F0 brlo .L46 1172 .stabn 68,0,81,.LM94-.LFBB5 1173 .LM94: 1174 041a 8E19 sub r24,r14 1175 041c 9F09 sbc r25,r15 1176 041e A00B sbc r26,r16 1177 0420 B10B sbc r27,r17 1178 0422 00C0 rjmp .L47 1179 .L46: 1180 .stabn 68,0,83,.LM95-.LFBB5 1181 .LM95: 1182 0424 8E19 sub r24,r14 1183 0426 9F09 sbc r25,r15 1184 0428 A00B sbc r26,r16 1185 042a B10B sbc r27,r17 1186 042c 8050 subi r24,lo8(-(-294967296)) 1187 042e 984D sbci r25,hi8(-(-294967296)) 1188 0430 A449 sbci r26,hlo8(-(-294967296)) 1189 0432 B141 sbci r27,hhi8(-(-294967296)) 1190 .L47: 1191 .LBE75: 1192 .LBE74: 1193 .stabn 68,0,100,.LM96-.LFBB5 1194 .LM96: 1195 0434 9093 0000 sts (ins.1660)+1,r25 1196 0438 8093 0000 sts ins.1660,r24 1197 .LBB76: 1198 .LBB77: 1199 .stabn 68,0,75,.LM97-.LFBB5 1200 .LM97: 1201 043c 2091 0000 lds r18,ct.1799 GAS LISTING /tmp/ccsXWNE7.s page 26 1202 0440 3091 0000 lds r19,(ct.1799)+1 1203 0444 4091 0000 lds r20,(ct.1799)+2 1204 0448 5091 0000 lds r21,(ct.1799)+3 1205 044c 8091 8400 lds r24,132 1206 0450 9091 8500 lds r25,(132)+1 1207 0454 A0E0 ldi r26,lo8(0) 1208 0456 B0E0 ldi r27,hi8(0) 1209 0458 820F add r24,r18 1210 045a 931F adc r25,r19 1211 045c A41F adc r26,r20 1212 045e B51F adc r27,r21 1213 .LBE77: 1214 .LBE76: 101:timers.c **** lastchange[0] = get_timer(); 1215 .stabn 68,0,101,.LM98-.LFBB5 1216 .LM98: 1217 0460 8093 0000 sts lastchange.1798,r24 1218 0464 9093 0000 sts (lastchange.1798)+1,r25 1219 0468 A093 0000 sts (lastchange.1798)+2,r26 1220 046c B093 0000 sts (lastchange.1798)+3,r27 1221 .L44: 102:timers.c **** } 103:timers.c **** } 104:timers.c **** if((inp & (1<<1)) != (inpp & (1<<1))) { 1222 .stabn 68,0,104,.LM99-.LFBB5 1223 .LM99: 1224 0470 8091 0000 lds r24,inpp.1878 1225 0474 90E0 ldi r25,lo8(0) 1226 0476 8627 eor r24,r22 1227 0478 9727 eor r25,r23 1228 047a 81FF sbrs r24,1 1229 047c 00C0 rjmp .L48 105:timers.c **** if(!(inp & (1<<1))) on1 = get_timer(); 1230 .stabn 68,0,105,.LM100-.LFBB5 1231 .LM100: 1232 047e 61FD sbrc r22,1 1233 0480 00C0 rjmp .L49 1234 .LBB78: 1235 .LBB79: 1236 .stabn 68,0,75,.LM101-.LFBB5 1237 .LM101: 1238 0482 2091 0000 lds r18,ct.1799 1239 0486 3091 0000 lds r19,(ct.1799)+1 1240 048a 4091 0000 lds r20,(ct.1799)+2 1241 048e 5091 0000 lds r21,(ct.1799)+3 1242 0492 8091 8400 lds r24,132 1243 0496 9091 8500 lds r25,(132)+1 1244 049a A0E0 ldi r26,lo8(0) 1245 049c B0E0 ldi r27,hi8(0) 1246 049e 820F add r24,r18 1247 04a0 931F adc r25,r19 1248 04a2 A41F adc r26,r20 1249 04a4 B51F adc r27,r21 1250 .LBE79: 1251 .LBE78: 1252 .stabn 68,0,105,.LM102-.LFBB5 1253 .LM102: GAS LISTING /tmp/ccsXWNE7.s page 27 1254 04a6 8093 0000 sts on1.1880,r24 1255 04aa 9093 0000 sts (on1.1880)+1,r25 1256 04ae A093 0000 sts (on1.1880)+2,r26 1257 04b2 B093 0000 sts (on1.1880)+3,r27 1258 04b6 00C0 rjmp .L48 1259 .L49: 106:timers.c **** else { 107:timers.c **** ins[1] = get_diff(on1, get_timer()); 1260 .stabn 68,0,107,.LM103-.LFBB5 1261 .LM103: 1262 04b8 E090 0000 lds r14,on1.1880 1263 04bc F090 0000 lds r15,(on1.1880)+1 1264 04c0 0091 0000 lds r16,(on1.1880)+2 1265 04c4 1091 0000 lds r17,(on1.1880)+3 1266 .LBB80: 1267 .LBB81: 1268 .stabn 68,0,75,.LM104-.LFBB5 1269 .LM104: 1270 04c8 2091 0000 lds r18,ct.1799 1271 04cc 3091 0000 lds r19,(ct.1799)+1 1272 04d0 4091 0000 lds r20,(ct.1799)+2 1273 04d4 5091 0000 lds r21,(ct.1799)+3 1274 04d8 8091 8400 lds r24,132 1275 04dc 9091 8500 lds r25,(132)+1 1276 04e0 A0E0 ldi r26,lo8(0) 1277 04e2 B0E0 ldi r27,hi8(0) 1278 04e4 820F add r24,r18 1279 04e6 931F adc r25,r19 1280 04e8 A41F adc r26,r20 1281 04ea B51F adc r27,r21 1282 .LBE81: 1283 .LBE80: 1284 .LBB82: 1285 .LBB83: 1286 .stabn 68,0,80,.LM105-.LFBB5 1287 .LM105: 1288 04ec 8E15 cp r24,r14 1289 04ee 9F05 cpc r25,r15 1290 04f0 A007 cpc r26,r16 1291 04f2 B107 cpc r27,r17 1292 04f4 00F0 brlo .L50 1293 .stabn 68,0,81,.LM106-.LFBB5 1294 .LM106: 1295 04f6 8E19 sub r24,r14 1296 04f8 9F09 sbc r25,r15 1297 04fa A00B sbc r26,r16 1298 04fc B10B sbc r27,r17 1299 04fe 00C0 rjmp .L51 1300 .L50: 1301 .stabn 68,0,83,.LM107-.LFBB5 1302 .LM107: 1303 0500 8E19 sub r24,r14 1304 0502 9F09 sbc r25,r15 1305 0504 A00B sbc r26,r16 1306 0506 B10B sbc r27,r17 1307 0508 8050 subi r24,lo8(-(-294967296)) 1308 050a 984D sbci r25,hi8(-(-294967296)) GAS LISTING /tmp/ccsXWNE7.s page 28 1309 050c A449 sbci r26,hlo8(-(-294967296)) 1310 050e B141 sbci r27,hhi8(-(-294967296)) 1311 .L51: 1312 .LBE83: 1313 .LBE82: 1314 .stabn 68,0,107,.LM108-.LFBB5 1315 .LM108: 1316 0510 9093 0000 sts (ins.1660+2)+1,r25 1317 0514 8093 0000 sts ins.1660+2,r24 1318 .LBB84: 1319 .LBB85: 1320 .stabn 68,0,75,.LM109-.LFBB5 1321 .LM109: 1322 0518 2091 0000 lds r18,ct.1799 1323 051c 3091 0000 lds r19,(ct.1799)+1 1324 0520 4091 0000 lds r20,(ct.1799)+2 1325 0524 5091 0000 lds r21,(ct.1799)+3 1326 0528 8091 8400 lds r24,132 1327 052c 9091 8500 lds r25,(132)+1 1328 0530 A0E0 ldi r26,lo8(0) 1329 0532 B0E0 ldi r27,hi8(0) 1330 0534 820F add r24,r18 1331 0536 931F adc r25,r19 1332 0538 A41F adc r26,r20 1333 053a B51F adc r27,r21 1334 .LBE85: 1335 .LBE84: 108:timers.c **** lastchange[1] = get_timer(); 1336 .stabn 68,0,108,.LM110-.LFBB5 1337 .LM110: 1338 053c 8093 0000 sts lastchange.1798+4,r24 1339 0540 9093 0000 sts (lastchange.1798+4)+1,r25 1340 0544 A093 0000 sts (lastchange.1798+4)+2,r26 1341 0548 B093 0000 sts (lastchange.1798+4)+3,r27 1342 .L48: 109:timers.c **** } 110:timers.c **** } 111:timers.c **** 112:timers.c **** if((inp & (1<<2)) != (inpp & (1<<2))) { 1343 .stabn 68,0,112,.LM111-.LFBB5 1344 .LM111: 1345 054c 8091 0000 lds r24,inpp.1878 1346 0550 90E0 ldi r25,lo8(0) 1347 0552 8627 eor r24,r22 1348 0554 9727 eor r25,r23 1349 0556 82FF sbrs r24,2 1350 0558 00C0 rjmp .L43 113:timers.c **** if(!(inp & (1<<2))) on2 = get_timer(); 1351 .stabn 68,0,113,.LM112-.LFBB5 1352 .LM112: 1353 055a 62FD sbrc r22,2 1354 055c 00C0 rjmp .L52 1355 .LBB86: 1356 .LBB87: 1357 .stabn 68,0,75,.LM113-.LFBB5 1358 .LM113: 1359 055e 2091 0000 lds r18,ct.1799 GAS LISTING /tmp/ccsXWNE7.s page 29 1360 0562 3091 0000 lds r19,(ct.1799)+1 1361 0566 4091 0000 lds r20,(ct.1799)+2 1362 056a 5091 0000 lds r21,(ct.1799)+3 1363 056e 8091 8400 lds r24,132 1364 0572 9091 8500 lds r25,(132)+1 1365 0576 A0E0 ldi r26,lo8(0) 1366 0578 B0E0 ldi r27,hi8(0) 1367 057a 820F add r24,r18 1368 057c 931F adc r25,r19 1369 057e A41F adc r26,r20 1370 0580 B51F adc r27,r21 1371 .LBE87: 1372 .LBE86: 1373 .stabn 68,0,113,.LM114-.LFBB5 1374 .LM114: 1375 0582 8093 0000 sts on2.1881,r24 1376 0586 9093 0000 sts (on2.1881)+1,r25 1377 058a A093 0000 sts (on2.1881)+2,r26 1378 058e B093 0000 sts (on2.1881)+3,r27 1379 0592 00C0 rjmp .L43 1380 .L52: 114:timers.c **** else { 115:timers.c **** ins[2] = get_diff(on2, get_timer()); 1381 .stabn 68,0,115,.LM115-.LFBB5 1382 .LM115: 1383 0594 E090 0000 lds r14,on2.1881 1384 0598 F090 0000 lds r15,(on2.1881)+1 1385 059c 0091 0000 lds r16,(on2.1881)+2 1386 05a0 1091 0000 lds r17,(on2.1881)+3 1387 .LBB88: 1388 .LBB89: 1389 .stabn 68,0,75,.LM116-.LFBB5 1390 .LM116: 1391 05a4 2091 0000 lds r18,ct.1799 1392 05a8 3091 0000 lds r19,(ct.1799)+1 1393 05ac 4091 0000 lds r20,(ct.1799)+2 1394 05b0 5091 0000 lds r21,(ct.1799)+3 1395 05b4 8091 8400 lds r24,132 1396 05b8 9091 8500 lds r25,(132)+1 1397 05bc A0E0 ldi r26,lo8(0) 1398 05be B0E0 ldi r27,hi8(0) 1399 05c0 820F add r24,r18 1400 05c2 931F adc r25,r19 1401 05c4 A41F adc r26,r20 1402 05c6 B51F adc r27,r21 1403 .LBE89: 1404 .LBE88: 1405 .LBB90: 1406 .LBB91: 1407 .stabn 68,0,80,.LM117-.LFBB5 1408 .LM117: 1409 05c8 8E15 cp r24,r14 1410 05ca 9F05 cpc r25,r15 1411 05cc A007 cpc r26,r16 1412 05ce B107 cpc r27,r17 1413 05d0 00F0 brlo .L53 1414 .stabn 68,0,81,.LM118-.LFBB5 GAS LISTING /tmp/ccsXWNE7.s page 30 1415 .LM118: 1416 05d2 8E19 sub r24,r14 1417 05d4 9F09 sbc r25,r15 1418 05d6 A00B sbc r26,r16 1419 05d8 B10B sbc r27,r17 1420 05da 00C0 rjmp .L54 1421 .L53: 1422 .stabn 68,0,83,.LM119-.LFBB5 1423 .LM119: 1424 05dc 8E19 sub r24,r14 1425 05de 9F09 sbc r25,r15 1426 05e0 A00B sbc r26,r16 1427 05e2 B10B sbc r27,r17 1428 05e4 8050 subi r24,lo8(-(-294967296)) 1429 05e6 984D sbci r25,hi8(-(-294967296)) 1430 05e8 A449 sbci r26,hlo8(-(-294967296)) 1431 05ea B141 sbci r27,hhi8(-(-294967296)) 1432 .L54: 1433 .LBE91: 1434 .LBE90: 1435 .stabn 68,0,115,.LM120-.LFBB5 1436 .LM120: 1437 05ec 9093 0000 sts (ins.1660+4)+1,r25 1438 05f0 8093 0000 sts ins.1660+4,r24 1439 .LBB92: 1440 .LBB93: 1441 .stabn 68,0,75,.LM121-.LFBB5 1442 .LM121: 1443 05f4 2091 0000 lds r18,ct.1799 1444 05f8 3091 0000 lds r19,(ct.1799)+1 1445 05fc 4091 0000 lds r20,(ct.1799)+2 1446 0600 5091 0000 lds r21,(ct.1799)+3 1447 0604 8091 8400 lds r24,132 1448 0608 9091 8500 lds r25,(132)+1 1449 060c A0E0 ldi r26,lo8(0) 1450 060e B0E0 ldi r27,hi8(0) 1451 0610 820F add r24,r18 1452 0612 931F adc r25,r19 1453 0614 A41F adc r26,r20 1454 0616 B51F adc r27,r21 1455 .LBE93: 1456 .LBE92: 116:timers.c **** lastchange[2] = get_timer(); 1457 .stabn 68,0,116,.LM122-.LFBB5 1458 .LM122: 1459 0618 8093 0000 sts lastchange.1798+8,r24 1460 061c 9093 0000 sts (lastchange.1798+8)+1,r25 1461 0620 A093 0000 sts (lastchange.1798+8)+2,r26 1462 0624 B093 0000 sts (lastchange.1798+8)+3,r27 1463 .L43: 117:timers.c **** } 118:timers.c **** } 119:timers.c **** } 120:timers.c **** #endif 121:timers.c **** //if(off0 < get_timer()) PORTC |= (1<<0); 122:timers.c **** //if(off1 < get_timer()) PORTC |= (1<<1); 123:timers.c **** //if(off2 < get_timer()) PORTC |= (1<<2); GAS LISTING /tmp/ccsXWNE7.s page 31 124:timers.c **** uint16_t tct = TCNT1; 1464 .stabn 68,0,124,.LM123-.LFBB5 1465 .LM123: 1466 0628 2091 8400 lds r18,132 1467 062c 3091 8500 lds r19,(132)+1 125:timers.c **** if(tct > out[0]) PORTC &= ~(1<<0); 1468 .stabn 68,0,125,.LM124-.LFBB5 1469 .LM124: 1470 0630 8091 0000 lds r24,out.1795 1471 0634 9091 0000 lds r25,(out.1795)+1 1472 0638 8217 cp r24,r18 1473 063a 9307 cpc r25,r19 1474 063c 00F4 brsh .L55 1475 063e 4098 cbi 40-32,0 1476 .L55: 126:timers.c **** if(tct > out[1]) PORTC &= ~(1<<1); 1477 .stabn 68,0,126,.LM125-.LFBB5 1478 .LM125: 1479 0640 8091 0000 lds r24,out.1795+2 1480 0644 9091 0000 lds r25,(out.1795+2)+1 1481 0648 8217 cp r24,r18 1482 064a 9307 cpc r25,r19 1483 064c 00F4 brsh .L56 1484 064e 4198 cbi 40-32,1 1485 .L56: 127:timers.c **** if(tct > out[2]) PORTC &= ~(1<<2); 1486 .stabn 68,0,127,.LM126-.LFBB5 1487 .LM126: 1488 0650 8091 0000 lds r24,out.1795+4 1489 0654 9091 0000 lds r25,(out.1795+4)+1 1490 0658 8217 cp r24,r18 1491 065a 9307 cpc r25,r19 1492 065c 00F4 brsh .L57 1493 065e 4298 cbi 40-32,2 1494 .L57: 128:timers.c **** 129:timers.c **** 130:timers.c **** inpp = inp; 1495 .stabn 68,0,130,.LM127-.LFBB5 1496 .LM127: 1497 0660 E093 0000 sts inpp.1878,r30 1498 /* epilogue start */ 131:timers.c **** } 1499 .stabn 68,0,131,.LM128-.LFBB5 1500 .LM128: 1501 0664 EF91 pop r30 1502 0666 BF91 pop r27 1503 0668 AF91 pop r26 1504 066a 9F91 pop r25 1505 066c 8F91 pop r24 1506 066e 7F91 pop r23 1507 0670 6F91 pop r22 1508 0672 5F91 pop r21 1509 0674 4F91 pop r20 1510 0676 3F91 pop r19 1511 0678 2F91 pop r18 1512 067a 1F91 pop r17 GAS LISTING /tmp/ccsXWNE7.s page 32 1513 067c 0F91 pop r16 1514 067e FF90 pop r15 1515 0680 EF90 pop r14 1516 0682 0F90 pop r0 1517 0684 0FBE out __SREG__,r0 1518 0686 0F90 pop r0 1519 0688 1F90 pop __zero_reg__ 1520 068a 1895 reti 1521 .size __vector_7, .-__vector_7 1522 .stabs "inp:r(11,2)",64,0,94,30 1523 .stabs "tct:r(11,4)",64,0,124,18 1524 .stabn 192,0,0,.LFBB5-.LFBB5 1525 .stabn 224,0,0,.Lscope5-.LFBB5 1526 .Lscope5: 1527 .stabs "",36,0,0,.Lscope5-.LFBB5 1528 .stabd 78,0,0 1529 .stabs "__vector_24:F(0,15)",36,0,24,__vector_24 1530 .global __vector_24 1531 .type __vector_24, @function 1532 __vector_24: 1533 .stabd 46,0,0 1534 .stabs "i2c_slave.c",132,0,0,.Ltext10 1535 .Ltext10: 20:i2c_slave.c **** get_device_lock(DEVICE_LOCK_TWI); 21:i2c_slave.c **** } 22:i2c_slave.c **** 23:i2c_slave.c **** ISR(TWI_vect) 24:i2c_slave.c **** { 1536 .stabn 68,0,24,.LM129-.LFBB6 1537 .LM129: 1538 .LFBB6: 1539 068c 1F92 push __zero_reg__ 1540 068e 0F92 push r0 1541 0690 0FB6 in r0,__SREG__ 1542 0692 0F92 push r0 1543 0694 1124 clr __zero_reg__ 1544 0696 2F93 push r18 1545 0698 3F93 push r19 1546 069a 4F93 push r20 1547 069c 5F93 push r21 1548 069e 6F93 push r22 1549 06a0 7F93 push r23 1550 06a2 8F93 push r24 1551 06a4 9F93 push r25 1552 06a6 AF93 push r26 1553 06a8 BF93 push r27 1554 06aa EF93 push r30 1555 06ac FF93 push r31 1556 /* prologue: Signal */ 1557 /* frame size = 0 */ 25:i2c_slave.c **** uint8_t sr = TWSR & 0xf8; 1558 .stabn 68,0,25,.LM130-.LFBB6 1559 .LM130: 1560 06ae 8091 B900 lds r24,185 26:i2c_slave.c **** 27:i2c_slave.c **** switch(sr) { 1561 .stabn 68,0,27,.LM131-.LFBB6 GAS LISTING /tmp/ccsXWNE7.s page 33 1562 .LM131: 1563 06b2 887F andi r24,lo8(-8) 1564 06b4 8039 cpi r24,lo8(-112) 1565 06b6 01F4 brne .+2 1566 06b8 00C0 rjmp .L62 1567 06ba 8139 cpi r24,lo8(-111) 1568 06bc 00F4 brsh .L68 1569 06be 8037 cpi r24,lo8(112) 1570 06c0 01F4 brne .+2 1571 06c2 00C0 rjmp .L61 1572 06c4 8137 cpi r24,lo8(113) 1573 06c6 00F4 brsh .L69 1574 06c8 8036 cpi r24,lo8(96) 1575 06ca 01F0 breq .L61 1576 06cc 8836 cpi r24,lo8(104) 1577 06ce 01F0 breq .+2 1578 06d0 00C0 rjmp .L60 1579 06d2 00C0 rjmp .L61 1580 .L69: 1581 06d4 8038 cpi r24,lo8(-128) 1582 06d6 01F0 breq .L62 1583 06d8 8838 cpi r24,lo8(-120) 1584 06da 01F4 brne .+2 1585 06dc 00C0 rjmp .L63 1586 06de 8837 cpi r24,lo8(120) 1587 06e0 01F0 breq .+2 1588 06e2 00C0 rjmp .L60 1589 06e4 00C0 rjmp .L61 1590 .L68: 1591 06e6 803B cpi r24,lo8(-80) 1592 06e8 01F0 breq .L65 1593 06ea 813B cpi r24,lo8(-79) 1594 06ec 00F4 brsh .L70 1595 06ee 803A cpi r24,lo8(-96) 1596 06f0 01F4 brne .+2 1597 06f2 00C0 rjmp .L64 1598 06f4 883A cpi r24,lo8(-88) 1599 06f6 01F0 breq .L65 1600 06f8 8839 cpi r24,lo8(-104) 1601 06fa 01F0 breq .+2 1602 06fc 00C0 rjmp .L60 1603 06fe 00C0 rjmp .L63 1604 .L70: 1605 0700 803C cpi r24,lo8(-64) 1606 0702 01F0 breq .L67 1607 0704 883C cpi r24,lo8(-56) 1608 0706 01F0 breq .L67 1609 0708 883B cpi r24,lo8(-72) 1610 070a 01F0 breq .+2 1611 070c 00C0 rjmp .L60 1612 070e 00C0 rjmp .L66 1613 .L65: 28:i2c_slave.c **** // slave TX modes 29:i2c_slave.c **** case 0xa8: // slave tx, got my address, load udr 30:i2c_slave.c **** case 0xb0: 31:i2c_slave.c **** i2cptr = 0; 1614 .stabn 68,0,31,.LM132-.LFBB6 GAS LISTING /tmp/ccsXWNE7.s page 34 1615 .LM132: 1616 0710 1092 0000 sts i2cptr.2138,__zero_reg__ 1617 .L66: 32:i2c_slave.c **** case 0xb8: 33:i2c_slave.c **** TWDR = i2coutbuf[i2cptr++]; 1618 .stabn 68,0,33,.LM133-.LFBB6 1619 .LM133: 1620 0714 9091 0000 lds r25,i2cptr.2138 1621 0718 E92F mov r30,r25 1622 071a F0E0 ldi r31,lo8(0) 1623 071c E050 subi r30,lo8(-(i2coutbuf.1677)) 1624 071e F040 sbci r31,hi8(-(i2coutbuf.1677)) 1625 0720 8081 ld r24,Z 1626 0722 8093 BB00 sts 187,r24 1627 0726 9F5F subi r25,lo8(-(1)) 1628 0728 9093 0000 sts i2cptr.2138,r25 34:i2c_slave.c **** if(i2cptr == 9) { 1629 .stabn 68,0,34,.LM134-.LFBB6 1630 .LM134: 1631 072c 8091 0000 lds r24,i2cptr.2138 1632 0730 8930 cpi r24,lo8(9) 1633 0732 01F4 brne .L73 1634 0734 00C0 rjmp .L76 1635 .L67: 35:i2c_slave.c **** TWCR &= ~(1<> 3); 1733 .stabn 68,0,71,.LM150-.LFBB6 1734 .LM150: 1735 07c8 8091 0000 lds r24,i2cbuf.2137+7 1736 07cc 8695 lsr r24 1737 07ce 8695 lsr r24 1738 07d0 8695 lsr r24 1739 07d2 00D0 rcall set_output.1659 1740 .LBB96: 1741 .LBB97: 1742 .stabs "timers.c",132,0,0,.Ltext13 1743 .Ltext13: 1744 .stabn 68,0,13,.LM151-.LFBB6 1745 .LM151: GAS LISTING /tmp/ccsXWNE7.s page 37 1746 07d4 8091 0000 lds r24,i2cbuf.2137+1 1747 07d8 9091 0000 lds r25,(i2cbuf.2137+1)+1 1748 07dc 24E1 ldi r18,lo8(20) 1749 07de 30E0 ldi r19,hi8(20) 1750 07e0 AC01 movw r20,r24 1751 07e2 429F mul r20,r18 1752 07e4 C001 movw r24,r0 1753 07e6 439F mul r20,r19 1754 07e8 900D add r25,r0 1755 07ea 529F mul r21,r18 1756 07ec 900D add r25,r0 1757 07ee 1124 clr r1 1758 07f0 9093 0000 sts (out.1795)+1,r25 1759 07f4 8093 0000 sts out.1795,r24 1760 .LBE97: 1761 .LBE96: 1762 .LBB98: 1763 .LBB99: 1764 .stabn 68,0,14,.LM152-.LFBB6 1765 .LM152: 1766 07f8 8091 0000 lds r24,i2cbuf.2137+3 1767 07fc 9091 0000 lds r25,(i2cbuf.2137+3)+1 1768 0800 AC01 movw r20,r24 1769 0802 429F mul r20,r18 1770 0804 C001 movw r24,r0 1771 0806 439F mul r20,r19 1772 0808 900D add r25,r0 1773 080a 529F mul r21,r18 1774 080c 900D add r25,r0 1775 080e 1124 clr r1 1776 0810 9093 0000 sts (out.1795+2)+1,r25 1777 0814 8093 0000 sts out.1795+2,r24 1778 .LBE99: 1779 .LBE98: 1780 .LBB100: 1781 .LBB101: 1782 .stabn 68,0,15,.LM153-.LFBB6 1783 .LM153: 1784 0818 8091 0000 lds r24,i2cbuf.2137+5 1785 081c 9091 0000 lds r25,(i2cbuf.2137+5)+1 1786 0820 AC01 movw r20,r24 1787 0822 429F mul r20,r18 1788 0824 C001 movw r24,r0 1789 0826 439F mul r20,r19 1790 0828 900D add r25,r0 1791 082a 529F mul r21,r18 1792 082c 900D add r25,r0 1793 082e 1124 clr r1 1794 0830 9093 0000 sts (out.1795+4)+1,r25 1795 0834 8093 0000 sts out.1795+4,r24 1796 0838 00C0 rjmp .L74 1797 .L64: 1798 .LBE101: 1799 .LBE100: 1800 .stabs "i2c_slave.c",132,0,0,.Ltext14 1801 .Ltext14: 72:i2c_slave.c **** set_sv0(*((uint16_t *)(i2cbuf+1))); GAS LISTING /tmp/ccsXWNE7.s page 38 73:i2c_slave.c **** set_sv1(*((uint16_t *)(i2cbuf+3))); 74:i2c_slave.c **** set_sv2(*((uint16_t *)(i2cbuf+5))); 75:i2c_slave.c **** } 76:i2c_slave.c **** break; 77:i2c_slave.c **** case 0xA0: // repeated start / stop 78:i2c_slave.c **** TWCR |= (1<