GAS LISTING /tmp/ccjWWE5a.s page 1 1 .file "tracer.c" 2 __SP_H__ = 0x3e 3 __SP_L__ = 0x3d 4 __SREG__ = 0x3f 5 __RAMPZ__ = 0x3b 6 __tmp_reg__ = 0 7 __zero_reg__ = 1 8 .section .text.NutTraceTimer1IRQ,"ax",@progbits 9 .type NutTraceTimer1IRQ, @function 10 NutTraceTimer1IRQ: 11 /* prologue: function */ 12 /* frame size = 0 */ 13 /* stack size = 0 */ 14 .L__stack_usage = 0 15 0000 8091 0000 lds r24,micros_high 16 0004 9091 0000 lds r25,micros_high+1 17 0008 0196 adiw r24,1 18 000a 9093 0000 sts micros_high+1,r25 19 000e 8093 0000 sts micros_high,r24 20 0012 0895 ret 21 .size NutTraceTimer1IRQ, .-NutTraceTimer1IRQ 22 .section .text.NutTraceClear,"ax",@progbits 23 .global NutTraceClear 24 .type NutTraceClear, @function 25 NutTraceClear: 26 /* prologue: function */ 27 /* frame size = 0 */ 28 /* stack size = 0 */ 29 .L__stack_usage = 0 30 0000 1092 0000 sts trace_isfull,__zero_reg__ 31 0004 1092 0000 sts trace_head+1,__zero_reg__ 32 0008 1092 0000 sts trace_head,__zero_reg__ 33 000c 8091 0000 lds r24,trace_mode 34 0010 8823 tst r24 35 0012 01F4 brne .+2 36 0014 00C0 rjmp .L2 37 0016 9091 0000 lds r25,trace_mask+8 38 001a 9130 cpi r25,lo8(1) 39 001c 01F4 brne .L2 40 /* #APP */ 41 ; 173 "../../nut/os/tracer.c" 1 42 001e 0FB6 in __tmp_reg__, __SREG__ 43 0020 0F92 push __tmp_reg__ 44 0022 F894 cli 45 46 ; 0 "" 2 47 /* #NOAPP */ 48 0024 E091 0000 lds r30,trace_items 49 0028 F091 0000 lds r31,trace_items+1 50 002c 21E0 ldi r18,lo8(1) 51 002e 30E0 ldi r19,0 52 0030 3093 0000 sts trace_head+1,r19 53 0034 2093 0000 sts trace_head,r18 54 0038 F093 0000 sts trace_current+1,r31 55 003c E093 0000 sts trace_current,r30 56 0040 28E0 ldi r18,lo8(8) 57 0042 2083 st Z,r18 GAS LISTING /tmp/ccjWWE5a.s page 2 58 0044 1282 std Z+2,__zero_reg__ 59 0046 1182 std Z+1,__zero_reg__ 60 0048 2091 0000 lds r18,micros_high 61 004c 3091 0000 lds r19,micros_high+1 62 0050 3483 std Z+4,r19 63 0052 2383 std Z+3,r18 64 0054 2091 8400 lds r18,132 65 0058 3091 8500 lds r19,132+1 66 005c 3683 std Z+6,r19 67 005e 2583 std Z+5,r18 68 0060 2091 0000 lds r18,trace_size 69 0064 3091 0000 lds r19,trace_size+1 70 0068 2230 cpi r18,2 71 006a 3105 cpc r19,__zero_reg__ 72 006c 04F4 brge .L5 73 006e 9093 0000 sts trace_isfull,r25 74 0072 1092 0000 sts trace_head+1,__zero_reg__ 75 0076 1092 0000 sts trace_head,__zero_reg__ 76 007a 8230 cpi r24,lo8(2) 77 007c 01F4 brne .L5 78 007e 1092 0000 sts trace_mode,__zero_reg__ 79 .L5: 80 /* #APP */ 81 ; 173 "../../nut/os/tracer.c" 1 82 0082 0F90 pop __tmp_reg__ 83 0084 0FBE out __SREG__, __tmp_reg__ 84 85 ; 0 "" 2 86 /* #NOAPP */ 87 .L2: 88 0086 0895 ret 89 .size NutTraceClear, .-NutTraceClear 90 .section .text.NutTraceInit,"ax",@progbits 91 .global NutTraceInit 92 .type NutTraceInit, @function 93 NutTraceInit: 94 0000 1F93 push r17 95 0002 CF93 push r28 96 0004 DF93 push r29 97 /* prologue: function */ 98 /* frame size = 0 */ 99 /* stack size = 3 */ 100 .L__stack_usage = 3 101 0006 EC01 movw r28,r24 102 0008 162F mov r17,r22 103 000a 8091 0000 lds r24,trace_isinit 104 000e 8111 cpse r24,__zero_reg__ 105 0010 00C0 rjmp .L12 106 0012 82E0 ldi r24,lo8(2) 107 0014 8093 8100 sts 129,r24 108 0018 40E0 ldi r20,0 109 001a 50E0 ldi r21,0 110 001c 60E0 ldi r22,lo8(gs(NutTraceTimer1IRQ)) 111 001e 70E0 ldi r23,hi8(gs(NutTraceTimer1IRQ)) 112 0020 80E0 ldi r24,lo8(sig_OVERFLOW1) 113 0022 90E0 ldi r25,hi8(sig_OVERFLOW1) 114 0024 0E94 0000 call NutRegisterIrqHandler GAS LISTING /tmp/ccjWWE5a.s page 3 115 0028 8091 6E00 lds r24,110 116 002c 8160 ori r24,lo8(1) 117 002e 8093 6E00 sts 110,r24 118 0032 81E0 ldi r24,lo8(1) 119 0034 8093 0000 sts trace_isinit,r24 120 .L12: 121 0038 2097 sbiw r28,0 122 003a 01F4 brne .L13 123 003c C4EF ldi r28,lo8(-12) 124 003e D1E0 ldi r29,lo8(1) 125 .L13: 126 0040 8091 0000 lds r24,trace_size 127 0044 9091 0000 lds r25,trace_size+1 128 0048 C817 cp r28,r24 129 004a D907 cpc r29,r25 130 004c 01F0 breq .L14 131 004e 6091 0000 lds r22,trace_items 132 0052 7091 0000 lds r23,trace_items+1 133 0056 6115 cp r22,__zero_reg__ 134 0058 7105 cpc r23,__zero_reg__ 135 005a 01F0 breq .L15 136 005c 80E0 ldi r24,lo8(heapFreeList) 137 005e 90E0 ldi r25,hi8(heapFreeList) 138 0060 0E94 0000 call NutHeapRootFree 139 .L15: 140 0064 87E0 ldi r24,lo8(7) 141 0066 8C9F mul r24,r28 142 0068 B001 movw r22,r0 143 006a 8D9F mul r24,r29 144 006c 700D add r23,r0 145 006e 1124 clr __zero_reg__ 146 0070 80E0 ldi r24,lo8(heapFreeList) 147 0072 90E0 ldi r25,hi8(heapFreeList) 148 0074 0E94 0000 call NutHeapRootAlloc 149 0078 9093 0000 sts trace_items+1,r25 150 007c 8093 0000 sts trace_items,r24 151 0080 892B or r24,r25 152 0082 01F4 brne .L16 153 0084 1092 0000 sts trace_size+1,__zero_reg__ 154 0088 1092 0000 sts trace_size,__zero_reg__ 155 008c 80E0 ldi r24,0 156 008e 90E0 ldi r25,0 157 0090 00C0 rjmp .L17 158 .L16: 159 0092 D093 0000 sts trace_size+1,r29 160 0096 C093 0000 sts trace_size,r28 161 .L14: 162 009a 1093 0000 sts trace_mode,r17 163 009e 0E94 0000 call NutTraceClear 164 00a2 8091 0000 lds r24,trace_size 165 00a6 9091 0000 lds r25,trace_size+1 166 .L17: 167 /* epilogue start */ 168 00aa DF91 pop r29 169 00ac CF91 pop r28 170 00ae 1F91 pop r17 171 00b0 0895 ret GAS LISTING /tmp/ccjWWE5a.s page 4 172 .size NutTraceInit, .-NutTraceInit 173 .section .text.NutTraceStop,"ax",@progbits 174 .global NutTraceStop 175 .type NutTraceStop, @function 176 NutTraceStop: 177 /* prologue: function */ 178 /* frame size = 0 */ 179 /* stack size = 0 */ 180 .L__stack_usage = 0 181 0000 8091 0000 lds r24,trace_mode 182 0004 8823 tst r24 183 0006 01F4 brne .+2 184 0008 00C0 rjmp .L22 185 000a 2091 0000 lds r18,trace_mask+9 186 000e 2130 cpi r18,lo8(1) 187 0010 01F0 breq .+2 188 0012 00C0 rjmp .L22 189 /* #APP */ 190 ; 178 "../../nut/os/tracer.c" 1 191 0014 0FB6 in __tmp_reg__, __SREG__ 192 0016 0F92 push __tmp_reg__ 193 0018 F894 cli 194 195 ; 0 "" 2 196 /* #NOAPP */ 197 001a E091 0000 lds r30,trace_items 198 001e F091 0000 lds r31,trace_items+1 199 0022 6091 0000 lds r22,trace_head 200 0026 7091 0000 lds r23,trace_head+1 201 002a AB01 movw r20,r22 202 002c 4F5F subi r20,-1 203 002e 5F4F sbci r21,-1 204 0030 5093 0000 sts trace_head+1,r21 205 0034 4093 0000 sts trace_head,r20 206 0038 37E0 ldi r19,lo8(7) 207 003a 369F mul r19,r22 208 003c C001 movw r24,r0 209 003e 379F mul r19,r23 210 0040 900D add r25,r0 211 0042 1124 clr __zero_reg__ 212 0044 E80F add r30,r24 213 0046 F91F adc r31,r25 214 0048 F093 0000 sts trace_current+1,r31 215 004c E093 0000 sts trace_current,r30 216 0050 89E0 ldi r24,lo8(9) 217 0052 8083 st Z,r24 218 0054 1282 std Z+2,__zero_reg__ 219 0056 1182 std Z+1,__zero_reg__ 220 0058 8091 0000 lds r24,micros_high 221 005c 9091 0000 lds r25,micros_high+1 222 0060 9483 std Z+4,r25 223 0062 8383 std Z+3,r24 224 0064 8091 8400 lds r24,132 225 0068 9091 8500 lds r25,132+1 226 006c 9683 std Z+6,r25 227 006e 8583 std Z+5,r24 228 0070 8091 0000 lds r24,trace_size GAS LISTING /tmp/ccjWWE5a.s page 5 229 0074 9091 0000 lds r25,trace_size+1 230 0078 4817 cp r20,r24 231 007a 5907 cpc r21,r25 232 007c 04F0 brlt .L23 233 007e 2093 0000 sts trace_isfull,r18 234 0082 1092 0000 sts trace_head+1,__zero_reg__ 235 0086 1092 0000 sts trace_head,__zero_reg__ 236 .L23: 237 /* #APP */ 238 ; 178 "../../nut/os/tracer.c" 1 239 008a 0F90 pop __tmp_reg__ 240 008c 0FBE out __SREG__, __tmp_reg__ 241 242 ; 0 "" 2 243 /* #NOAPP */ 244 .L22: 245 008e 1092 0000 sts trace_mode,__zero_reg__ 246 0092 0895 ret 247 .size NutTraceStop, .-NutTraceStop 248 .section .rodata.str1.1,"aMS",@progbits,1 249 .LC0: 250 0000 5452 4143 .string "TRACE STATUS" 250 4520 5354 250 4154 5553 250 00 251 .LC1: 252 000d 204D 6F64 .string " Mode is %s\n" 252 6520 6973 252 2025 730A 252 00 253 .LC2: 254 001a 2053 697A .string " Size is %d\n" 254 6520 6973 254 2025 640A 254 00 255 .LC3: 256 0027 2069 7320 .string " is full" 256 6675 6C6C 256 00 257 .LC4: 258 0030 2063 6F6E .string " contains %d elements\n" 258 7461 696E 258 7320 2564 258 2065 6C65 258 6D65 6E74 259 .section .text.NutTraceStatusPrint,"ax",@progbits 260 .global NutTraceStatusPrint 261 .type NutTraceStatusPrint, @function 262 NutTraceStatusPrint: 263 /* prologue: function */ 264 /* frame size = 0 */ 265 /* stack size = 0 */ 266 .L__stack_usage = 0 267 0000 80E0 ldi r24,lo8(.LC0) 268 0002 90E0 ldi r25,hi8(.LC0) 269 0004 0E94 0000 call puts 270 0008 E091 0000 lds r30,trace_mode GAS LISTING /tmp/ccjWWE5a.s page 6 271 000c EE0F lsl r30 272 000e FF0B sbc r31,r31 273 0010 E050 subi r30,lo8(-(mode_string)) 274 0012 F040 sbci r31,hi8(-(mode_string)) 275 0014 8181 ldd r24,Z+1 276 0016 8F93 push r24 277 0018 8081 ld r24,Z 278 001a 8F93 push r24 279 001c 80E0 ldi r24,lo8(.LC1) 280 001e 90E0 ldi r25,hi8(.LC1) 281 0020 9F93 push r25 282 0022 8F93 push r24 283 0024 0E94 0000 call printf 284 0028 8091 0000 lds r24,trace_size+1 285 002c 8F93 push r24 286 002e 8091 0000 lds r24,trace_size 287 0032 8F93 push r24 288 0034 80E0 ldi r24,lo8(.LC2) 289 0036 90E0 ldi r25,hi8(.LC2) 290 0038 9F93 push r25 291 003a 8F93 push r24 292 003c 0E94 0000 call printf 293 0040 8DB7 in r24,__SP_L__ 294 0042 9EB7 in r25,__SP_H__ 295 0044 0896 adiw r24,8 296 0046 0FB6 in __tmp_reg__,__SREG__ 297 0048 F894 cli 298 004a 9EBF out __SP_H__,r25 299 004c 0FBE out __SREG__,__tmp_reg__ 300 004e 8DBF out __SP_L__,r24 301 0050 8091 0000 lds r24,trace_isfull 302 0054 8823 tst r24 303 0056 01F0 breq .L28 304 0058 80E0 ldi r24,lo8(.LC3) 305 005a 90E0 ldi r25,hi8(.LC3) 306 005c 0C94 0000 jmp puts 307 .L28: 308 0060 8091 0000 lds r24,trace_head+1 309 0064 8F93 push r24 310 0066 8091 0000 lds r24,trace_head 311 006a 8F93 push r24 312 006c 80E0 ldi r24,lo8(.LC4) 313 006e 90E0 ldi r25,hi8(.LC4) 314 0070 9F93 push r25 315 0072 8F93 push r24 316 0074 0E94 0000 call printf 317 0078 0F90 pop __tmp_reg__ 318 007a 0F90 pop __tmp_reg__ 319 007c 0F90 pop __tmp_reg__ 320 007e 0F90 pop __tmp_reg__ 321 0080 0895 ret 322 .size NutTraceStatusPrint, .-NutTraceStatusPrint 323 .section .rodata.str1.1 324 .LC5: 325 0047 0A54 5241 .string "\nTRACE" 325 4345 00 326 .LC6: GAS LISTING /tmp/ccjWWE5a.s page 7 327 004e 206E 6F74 .string " not initialized!\n" 327 2069 6E69 327 7469 616C 327 697A 6564 327 210A 00 328 .LC7: 329 0061 2063 6F6E .string " contains %d items, " 329 7461 696E 329 7320 2564 329 2069 7465 329 6D73 2C20 330 .LC8: 331 0076 2070 7269 .string " printing %d items.\n" 331 6E74 696E 331 6720 2564 331 2069 7465 331 6D73 2E0A 332 .LC9: 333 008b 5469 6D65 .string "Time [s:ms:us]" 333 205B 733A 333 6D73 3A75 333 735D 00 334 .LC10: 335 009a 5043 2F49 .string "PC/Info" 335 6E66 6F00 336 .LC11: 337 00a2 5441 4700 .string "TAG" 338 .LC12: 339 00a6 252D 3230 .string "%-20s%-12s%-12s\n" 339 7325 2D31 339 3273 252D 339 3132 730A 339 00 340 .LC13: 341 00b7 2D2D 2D2D .string "-----------------------------------------------" 341 2D2D 2D2D 341 2D2D 2D2D 341 2D2D 2D2D 341 2D2D 2D2D 342 .LC14: 343 00e7 252D 3230 .string "%-20s%-15s%7u:%03u:%03u\n" 343 7325 2D31 343 3573 2537 343 753A 2530 343 3375 3A25 344 .LC15: 345 0100 252D 3230 .string "%-20s%-#15x%7u:%03u:%03u\n" 345 7325 2D23 345 3135 7825 345 3775 3A25 345 3033 753A 346 .section .text.NutTracePrint,"ax",@progbits 347 .global NutTracePrint 348 .type NutTracePrint, @function 349 NutTracePrint: 350 0000 2F92 push r2 351 0002 3F92 push r3 GAS LISTING /tmp/ccjWWE5a.s page 8 352 0004 4F92 push r4 353 0006 5F92 push r5 354 0008 6F92 push r6 355 000a 7F92 push r7 356 000c 8F92 push r8 357 000e 9F92 push r9 358 0010 AF92 push r10 359 0012 BF92 push r11 360 0014 CF92 push r12 361 0016 DF92 push r13 362 0018 EF92 push r14 363 001a FF92 push r15 364 001c 0F93 push r16 365 001e 1F93 push r17 366 0020 CF93 push r28 367 0022 DF93 push r29 368 0024 00D0 rcall . 369 0026 CDB7 in r28,__SP_L__ 370 0028 DEB7 in r29,__SP_H__ 371 /* prologue: function */ 372 /* frame size = 3 */ 373 /* stack size = 21 */ 374 .L__stack_usage = 21 375 002a 8C01 movw r16,r24 376 002c 2091 0000 lds r18,trace_mode 377 0030 2983 std Y+1,r18 378 0032 1092 0000 sts trace_mode,__zero_reg__ 379 0036 80E0 ldi r24,lo8(.LC5) 380 0038 90E0 ldi r25,hi8(.LC5) 381 003a 9F93 push r25 382 003c 8F93 push r24 383 003e 0E94 0000 call printf 384 0042 8091 0000 lds r24,trace_size 385 0046 9091 0000 lds r25,trace_size+1 386 004a 0F90 pop __tmp_reg__ 387 004c 0F90 pop __tmp_reg__ 388 004e 0097 sbiw r24,0 389 0050 01F4 brne .L30 390 0052 80E0 ldi r24,lo8(.LC6) 391 0054 90E0 ldi r25,hi8(.LC6) 392 /* epilogue start */ 393 0056 0F90 pop __tmp_reg__ 394 0058 0F90 pop __tmp_reg__ 395 005a 0F90 pop __tmp_reg__ 396 005c DF91 pop r29 397 005e CF91 pop r28 398 0060 1F91 pop r17 399 0062 0F91 pop r16 400 0064 FF90 pop r15 401 0066 EF90 pop r14 402 0068 DF90 pop r13 403 006a CF90 pop r12 404 006c BF90 pop r11 405 006e AF90 pop r10 406 0070 9F90 pop r9 407 0072 8F90 pop r8 408 0074 7F90 pop r7 GAS LISTING /tmp/ccjWWE5a.s page 9 409 0076 6F90 pop r6 410 0078 5F90 pop r5 411 007a 4F90 pop r4 412 007c 3F90 pop r3 413 007e 2F90 pop r2 414 0080 0C94 0000 jmp puts 415 .L30: 416 0084 2091 0000 lds r18,trace_isfull 417 0088 2111 cpse r18,__zero_reg__ 418 008a 00C0 rjmp .L31 419 008c 8091 0000 lds r24,trace_head 420 0090 9091 0000 lds r25,trace_head+1 421 .L31: 422 0094 9F93 push r25 423 0096 8F93 push r24 424 0098 80E0 ldi r24,lo8(.LC7) 425 009a 90E0 ldi r25,hi8(.LC7) 426 009c 9F93 push r25 427 009e 8F93 push r24 428 00a0 0E94 0000 call printf 429 00a4 0F90 pop __tmp_reg__ 430 00a6 0F90 pop __tmp_reg__ 431 00a8 0F90 pop __tmp_reg__ 432 00aa 0F90 pop __tmp_reg__ 433 00ac 0115 cp r16,__zero_reg__ 434 00ae 1105 cpc r17,__zero_reg__ 435 00b0 01F4 brne .L32 436 00b2 0091 0000 lds r16,trace_size 437 00b6 1091 0000 lds r17,trace_size+1 438 .L32: 439 00ba 8091 0000 lds r24,trace_isfull 440 00be 8823 tst r24 441 00c0 01F0 breq .L33 442 00c2 8091 0000 lds r24,trace_size 443 00c6 9091 0000 lds r25,trace_size+1 444 00ca 00C0 rjmp .L48 445 .L33: 446 00cc 8091 0000 lds r24,trace_head 447 00d0 9091 0000 lds r25,trace_head+1 448 .L48: 449 00d4 8017 cp r24,r16 450 00d6 9107 cpc r25,r17 451 00d8 04F4 brge .L35 452 00da 8C01 movw r16,r24 453 .L35: 454 00dc 1F93 push r17 455 00de 0F93 push r16 456 00e0 80E0 ldi r24,lo8(.LC8) 457 00e2 90E0 ldi r25,hi8(.LC8) 458 00e4 9F93 push r25 459 00e6 8F93 push r24 460 00e8 0E94 0000 call printf 461 00ec 80E0 ldi r24,lo8(.LC9) 462 00ee 90E0 ldi r25,hi8(.LC9) 463 00f0 9F93 push r25 464 00f2 8F93 push r24 465 00f4 80E0 ldi r24,lo8(.LC10) GAS LISTING /tmp/ccjWWE5a.s page 10 466 00f6 90E0 ldi r25,hi8(.LC10) 467 00f8 9F93 push r25 468 00fa 8F93 push r24 469 00fc 80E0 ldi r24,lo8(.LC11) 470 00fe 90E0 ldi r25,hi8(.LC11) 471 0100 9F93 push r25 472 0102 8F93 push r24 473 0104 80E0 ldi r24,lo8(.LC12) 474 0106 90E0 ldi r25,hi8(.LC12) 475 0108 9F93 push r25 476 010a 8F93 push r24 477 010c 0E94 0000 call printf 478 0110 80E0 ldi r24,lo8(.LC13) 479 0112 90E0 ldi r25,hi8(.LC13) 480 0114 0E94 0000 call puts 481 0118 C801 movw r24,r16 482 011a 0197 sbiw r24,1 483 011c 9B83 std Y+3,r25 484 011e 8A83 std Y+2,r24 485 0120 0FB6 in __tmp_reg__,__SREG__ 486 0122 F894 cli 487 0124 DEBF out __SP_H__,r29 488 0126 0FBE out __SREG__,__tmp_reg__ 489 0128 CDBF out __SP_L__,r28 490 012a 58EE ldi r21,lo8(-24) 491 012c 452E mov r4,r21 492 012e 53E0 ldi r21,lo8(3) 493 0130 552E mov r5,r21 494 0132 612C mov r6,__zero_reg__ 495 0134 712C mov r7,__zero_reg__ 496 0136 60E0 ldi r22,lo8(.LC14) 497 0138 E62E mov r14,r22 498 013a 60E0 ldi r22,hi8(.LC14) 499 013c F62E mov r15,r22 500 .L37: 501 013e AA81 ldd r26,Y+2 502 0140 BB81 ldd r27,Y+3 503 0142 B7FD sbrc r27,7 504 0144 00C0 rjmp .L53 505 0146 8091 0000 lds r24,trace_head 506 014a 9091 0000 lds r25,trace_head+1 507 014e EA81 ldd r30,Y+2 508 0150 FB81 ldd r31,Y+3 509 0152 8E1B sub r24,r30 510 0154 9F0B sbc r25,r31 511 0156 0197 sbiw r24,1 512 0158 97FF sbrs r25,7 513 015a 00C0 rjmp .L38 514 015c 2091 0000 lds r18,trace_size 515 0160 3091 0000 lds r19,trace_size+1 516 0164 820F add r24,r18 517 0166 931F adc r25,r19 518 .L38: 519 0168 F7E0 ldi r31,lo8(7) 520 016a F89F mul r31,r24 521 016c 9001 movw r18,r0 522 016e F99F mul r31,r25 GAS LISTING /tmp/ccjWWE5a.s page 11 523 0170 300D add r19,r0 524 0172 1124 clr __zero_reg__ 525 0174 0091 0000 lds r16,trace_items 526 0178 1091 0000 lds r17,trace_items+1 527 017c 020F add r16,r18 528 017e 131F adc r17,r19 529 0180 D801 movw r26,r16 530 0182 1396 adiw r26,3 531 0184 8D90 ld r8,X+ 532 0186 9C90 ld r9,X 533 0188 1497 sbiw r26,3+1 534 018a A12C mov r10,__zero_reg__ 535 018c B12C mov r11,__zero_reg__ 536 018e D401 movw r26,r8 537 0190 9927 clr r25 538 0192 8827 clr r24 539 0194 F801 movw r30,r16 540 0196 8580 ldd r8,Z+5 541 0198 9680 ldd r9,Z+6 542 019a A12C mov r10,__zero_reg__ 543 019c B12C mov r11,__zero_reg__ 544 019e 882A or r8,r24 545 01a0 992A or r9,r25 546 01a2 AA2A or r10,r26 547 01a4 BB2A or r11,r27 548 01a6 C501 movw r24,r10 549 01a8 B401 movw r22,r8 550 01aa A301 movw r20,r6 551 01ac 9201 movw r18,r4 552 01ae 0E94 0000 call __udivmodsi4 553 01b2 362E mov r3,r22 554 01b4 272E mov r2,r23 555 01b6 CA01 movw r24,r20 556 01b8 B901 movw r22,r18 557 01ba A301 movw r20,r6 558 01bc 9201 movw r18,r4 559 01be 0E94 0000 call __udivmodsi4 560 01c2 D62E mov r13,r22 561 01c4 C72E mov r12,r23 562 01c6 C501 movw r24,r10 563 01c8 B401 movw r22,r8 564 01ca 20E4 ldi r18,lo8(64) 565 01cc 32E4 ldi r19,lo8(66) 566 01ce 4FE0 ldi r20,lo8(15) 567 01d0 50E0 ldi r21,0 568 01d2 0E94 0000 call __udivmodsi4 569 01d6 D801 movw r26,r16 570 01d8 EC91 ld r30,X 571 01da E830 cpi r30,lo8(8) 572 01dc 00F4 brsh .L40 573 01de 8E2F mov r24,r30 574 01e0 90E0 ldi r25,0 575 01e2 E630 cpi r30,lo8(6) 576 01e4 00F4 brsh .L41 577 01e6 E230 cpi r30,lo8(2) 578 01e8 00F4 brsh .+2 579 01ea 00C0 rjmp .L39 GAS LISTING /tmp/ccjWWE5a.s page 12 580 01ec 2F92 push r2 581 01ee 3F92 push r3 582 01f0 CF92 push r12 583 01f2 DF92 push r13 584 01f4 3F93 push r19 585 01f6 2F93 push r18 586 01f8 F801 movw r30,r16 587 01fa 2181 ldd r18,Z+1 588 01fc 3281 ldd r19,Z+2 589 01fe 2A5F subi r18,-6 590 0200 3F4F sbci r19,-1 591 0202 3F93 push r19 592 0204 00C0 rjmp .L52 593 .L40: 594 0206 EA30 cpi r30,lo8(10) 595 0208 01F4 brne .L39 596 020a 2F92 push r2 597 020c 3F92 push r3 598 020e CF92 push r12 599 0210 DF92 push r13 600 0212 3F93 push r19 601 0214 2F93 push r18 602 0216 D801 movw r26,r16 603 0218 1196 adiw r26,1 604 021a ED91 ld r30,X+ 605 021c FC91 ld r31,X 606 021e 1297 sbiw r26,1+1 607 0220 EE0F lsl r30 608 0222 FF1F rol r31 609 0224 E050 subi r30,lo8(-(user_string)) 610 0226 F040 sbci r31,hi8(-(user_string)) 611 0228 8181 ldd r24,Z+1 612 022a 8F93 push r24 613 022c 8081 ld r24,Z 614 022e 8F93 push r24 615 0230 8091 0000 lds r24,tag_string+21 616 0234 8F93 push r24 617 0236 8091 0000 lds r24,tag_string+20 618 023a 00C0 rjmp .L51 619 .L41: 620 023c 2F92 push r2 621 023e 3F92 push r3 622 0240 CF92 push r12 623 0242 DF92 push r13 624 0244 3F93 push r19 625 0246 2F93 push r18 626 0248 D801 movw r26,r16 627 024a 1196 adiw r26,1 628 024c ED91 ld r30,X+ 629 024e FC91 ld r31,X 630 0250 1297 sbiw r26,1+1 631 0252 EE0F lsl r30 632 0254 FF1F rol r31 633 0256 E050 subi r30,lo8(-(int_string)) 634 0258 F040 sbci r31,hi8(-(int_string)) 635 025a 2181 ldd r18,Z+1 636 025c 2F93 push r18 GAS LISTING /tmp/ccjWWE5a.s page 13 637 025e 2081 ld r18,Z 638 .L52: 639 0260 2F93 push r18 640 0262 FC01 movw r30,r24 641 0264 EE0F lsl r30 642 0266 FF1F rol r31 643 0268 E050 subi r30,lo8(-(tag_string)) 644 026a F040 sbci r31,hi8(-(tag_string)) 645 026c 8181 ldd r24,Z+1 646 026e 8F93 push r24 647 0270 8081 ld r24,Z 648 .L51: 649 0272 8F93 push r24 650 0274 FF92 push r15 651 0276 EF92 push r14 652 0278 00C0 rjmp .L49 653 .L39: 654 027a 2F92 push r2 655 027c 3F92 push r3 656 027e CF92 push r12 657 0280 DF92 push r13 658 0282 3F93 push r19 659 0284 2F93 push r18 660 0286 D801 movw r26,r16 661 0288 1296 adiw r26,2 662 028a 8C91 ld r24,X 663 028c 1297 sbiw r26,2 664 028e 8F93 push r24 665 0290 1196 adiw r26,1 666 0292 8C91 ld r24,X 667 0294 8F93 push r24 668 0296 F0E0 ldi r31,0 669 0298 EE0F lsl r30 670 029a FF1F rol r31 671 029c E050 subi r30,lo8(-(tag_string)) 672 029e F040 sbci r31,hi8(-(tag_string)) 673 02a0 8181 ldd r24,Z+1 674 02a2 8F93 push r24 675 02a4 8081 ld r24,Z 676 02a6 8F93 push r24 677 02a8 A0E0 ldi r26,lo8(.LC15) 678 02aa B0E0 ldi r27,hi8(.LC15) 679 02ac BF93 push r27 680 02ae AF93 push r26 681 .L49: 682 02b0 0E94 0000 call printf 683 02b4 0FB6 in __tmp_reg__,__SREG__ 684 02b6 F894 cli 685 02b8 DEBF out __SP_H__,r29 686 02ba 0FBE out __SREG__,__tmp_reg__ 687 02bc CDBF out __SP_L__,r28 688 02be 8A81 ldd r24,Y+2 689 02c0 9B81 ldd r25,Y+3 690 02c2 0197 sbiw r24,1 691 02c4 9B83 std Y+3,r25 692 02c6 8A83 std Y+2,r24 693 02c8 00C0 rjmp .L37 GAS LISTING /tmp/ccjWWE5a.s page 14 694 .L53: 695 02ca B981 ldd r27,Y+1 696 02cc B093 0000 sts trace_mode,r27 697 /* epilogue start */ 698 02d0 0F90 pop __tmp_reg__ 699 02d2 0F90 pop __tmp_reg__ 700 02d4 0F90 pop __tmp_reg__ 701 02d6 DF91 pop r29 702 02d8 CF91 pop r28 703 02da 1F91 pop r17 704 02dc 0F91 pop r16 705 02de FF90 pop r15 706 02e0 EF90 pop r14 707 02e2 DF90 pop r13 708 02e4 CF90 pop r12 709 02e6 BF90 pop r11 710 02e8 AF90 pop r10 711 02ea 9F90 pop r9 712 02ec 8F90 pop r8 713 02ee 7F90 pop r7 714 02f0 6F90 pop r6 715 02f2 5F90 pop r5 716 02f4 4F90 pop r4 717 02f6 3F90 pop r3 718 02f8 2F90 pop r2 719 02fa 0895 ret 720 .size NutTracePrint, .-NutTracePrint 721 .section .text.NutTraceGetPC,"ax",@progbits 722 .global NutTraceGetPC 723 .type NutTraceGetPC, @function 724 NutTraceGetPC: 725 /* prologue: function */ 726 /* frame size = 0 */ 727 /* stack size = 0 */ 728 .L__stack_usage = 0 729 0000 EDB7 in r30,__SP_L__ 730 0002 FEB7 in r31,__SP_L__+1 731 0004 8181 ldd r24,Z+1 732 0006 082E mov __tmp_reg__,r24 733 0008 000C lsl r0 734 000a 990B sbc r25,r25 735 000c 982F mov r25,r24 736 000e 8827 clr r24 737 0010 EDB7 in r30,__SP_L__ 738 0012 FEB7 in r31,__SP_L__+1 739 0014 2281 ldd r18,Z+2 740 0016 822B or r24,r18 741 0018 880F lsl r24 742 001a 991F rol r25 743 001c 0895 ret 744 .size NutTraceGetPC, .-NutTraceGetPC 745 .section .text.NutTraceMaskSet,"ax",@progbits 746 .global NutTraceMaskSet 747 .type NutTraceMaskSet, @function 748 NutTraceMaskSet: 749 /* prologue: function */ 750 /* frame size = 0 */ GAS LISTING /tmp/ccjWWE5a.s page 15 751 /* stack size = 0 */ 752 .L__stack_usage = 0 753 0000 8B30 cpi r24,11 754 0002 9105 cpc r25,__zero_reg__ 755 0004 04F4 brge .L55 756 0006 FC01 movw r30,r24 757 0008 E050 subi r30,lo8(-(trace_mask)) 758 000a F040 sbci r31,hi8(-(trace_mask)) 759 000c 21E0 ldi r18,lo8(1) 760 000e 2083 st Z,r18 761 .L55: 762 0010 0895 ret 763 .size NutTraceMaskSet, .-NutTraceMaskSet 764 .section .text.NutTraceMaskClear,"ax",@progbits 765 .global NutTraceMaskClear 766 .type NutTraceMaskClear, @function 767 NutTraceMaskClear: 768 /* prologue: function */ 769 /* frame size = 0 */ 770 /* stack size = 0 */ 771 .L__stack_usage = 0 772 0000 8B30 cpi r24,11 773 0002 9105 cpc r25,__zero_reg__ 774 0004 04F4 brge .L57 775 0006 FC01 movw r30,r24 776 0008 E050 subi r30,lo8(-(trace_mask)) 777 000a F040 sbci r31,hi8(-(trace_mask)) 778 000c 1082 st Z,__zero_reg__ 779 .L57: 780 000e 0895 ret 781 .size NutTraceMaskClear, .-NutTraceMaskClear 782 .section .rodata.str1.1 783 .LC16: 784 011a 5452 4143 .string "TRACEMASK" 784 454D 4153 784 4B00 785 .LC17: 786 0124 2025 6420 .string " %d %s " 786 2573 2000 787 .LC18: 788 012c 4F4E 00 .string "ON" 789 .LC19: 790 012f 4F46 4600 .string "OFF" 791 .section .text.NutTraceMaskPrint,"ax",@progbits 792 .global NutTraceMaskPrint 793 .type NutTraceMaskPrint, @function 794 NutTraceMaskPrint: 795 0000 CF92 push r12 796 0002 DF92 push r13 797 0004 EF92 push r14 798 0006 FF92 push r15 799 0008 0F93 push r16 800 000a 1F93 push r17 801 000c CF93 push r28 802 000e DF93 push r29 803 /* prologue: function */ 804 /* frame size = 0 */ GAS LISTING /tmp/ccjWWE5a.s page 16 805 /* stack size = 8 */ 806 .L__stack_usage = 8 807 0010 80E0 ldi r24,lo8(.LC16) 808 0012 90E0 ldi r25,hi8(.LC16) 809 0014 0E94 0000 call puts 810 0018 00E0 ldi r16,lo8(tag_string) 811 001a 10E0 ldi r17,hi8(tag_string) 812 001c 80E0 ldi r24,lo8(trace_mask) 813 001e E82E mov r14,r24 814 0020 80E0 ldi r24,hi8(trace_mask) 815 0022 F82E mov r15,r24 816 0024 C0E0 ldi r28,0 817 0026 D0E0 ldi r29,0 818 0028 90E0 ldi r25,lo8(.LC17) 819 002a C92E mov r12,r25 820 002c 90E0 ldi r25,hi8(.LC17) 821 002e D92E mov r13,r25 822 .L62: 823 0030 F801 movw r30,r16 824 0032 8081 ld r24,Z 825 0034 9181 ldd r25,Z+1 826 0036 0E5F subi r16,-2 827 0038 1F4F sbci r17,-1 828 003a 9F93 push r25 829 003c 8F93 push r24 830 003e DF93 push r29 831 0040 CF93 push r28 832 0042 DF92 push r13 833 0044 CF92 push r12 834 0046 0E94 0000 call printf 835 004a F701 movw r30,r14 836 004c 8191 ld r24,Z+ 837 004e 7F01 movw r14,r30 838 0050 0F90 pop __tmp_reg__ 839 0052 0F90 pop __tmp_reg__ 840 0054 0F90 pop __tmp_reg__ 841 0056 0F90 pop __tmp_reg__ 842 0058 0F90 pop __tmp_reg__ 843 005a 0F90 pop __tmp_reg__ 844 005c 8823 tst r24 845 005e 01F0 breq .L60 846 0060 80E0 ldi r24,lo8(.LC18) 847 0062 90E0 ldi r25,hi8(.LC18) 848 0064 00C0 rjmp .L64 849 .L60: 850 0066 80E0 ldi r24,lo8(.LC19) 851 0068 90E0 ldi r25,hi8(.LC19) 852 .L64: 853 006a 0E94 0000 call puts 854 006e 2196 adiw r28,1 855 0070 CB30 cpi r28,11 856 0072 D105 cpc r29,__zero_reg__ 857 0074 01F4 brne .L62 858 /* epilogue start */ 859 0076 DF91 pop r29 860 0078 CF91 pop r28 861 007a 1F91 pop r17 GAS LISTING /tmp/ccjWWE5a.s page 17 862 007c 0F91 pop r16 863 007e FF90 pop r15 864 0080 EF90 pop r14 865 0082 DF90 pop r13 866 0084 CF90 pop r12 867 0086 0895 ret 868 .size NutTraceMaskPrint, .-NutTraceMaskPrint 869 .section .rodata.str1.1 870 .LC20: 871 0133 7072 696E .string "print%d" 871 7425 6400 872 .LC21: 873 013b 7072 696E .string "print" 873 7400 874 .LC22: 875 0141 6F6E 6573 .string "oneshot" 875 686F 7400 876 .LC23: 877 0149 5452 4143 .string "TRACE mode %s, restarted\n" 877 4520 6D6F 877 6465 2025 877 732C 2072 877 6573 7461 878 .LC24: 879 0163 6369 7263 .string "circular" 879 756C 6172 879 00 880 .LC25: 881 016c 7369 7A65 .string "size%d" 881 2564 00 882 .LC26: 883 0173 5452 4143 .string "TRACE new size: %d\n" 883 4520 6E65 883 7720 7369 883 7A65 3A20 883 2564 0A00 884 .LC27: 885 0187 7374 6F70 .string "stop" 885 00 886 .LC28: 887 018c 5452 4143 .string "TRACE stopped" 887 4520 7374 887 6F70 7065 887 6400 888 .LC29: 889 019a 6D61 736B .string "mask%d" 889 2564 00 890 .LC30: 891 01a1 6D61 736B .string "mask" 891 00 892 .LC31: 893 01a6 5359 4E54 .string "SYNTAX: trace [print []|oneshot|circular|size |stop|mask []]" 893 4158 3A20 893 7472 6163 893 6520 5B70 893 7269 6E74 894 .section .text.NutTraceTerminal,"ax",@progbits GAS LISTING /tmp/ccjWWE5a.s page 18 895 .global NutTraceTerminal 896 .type NutTraceTerminal, @function 897 NutTraceTerminal: 898 0000 EF92 push r14 899 0002 FF92 push r15 900 0004 0F93 push r16 901 0006 1F93 push r17 902 0008 CF93 push r28 903 000a DF93 push r29 904 000c 1F92 push __zero_reg__ 905 000e 1F92 push __zero_reg__ 906 0010 CDB7 in r28,__SP_L__ 907 0012 DEB7 in r29,__SP_H__ 908 /* prologue: function */ 909 /* frame size = 2 */ 910 /* stack size = 8 */ 911 .L__stack_usage = 8 912 0014 8C01 movw r16,r24 913 0016 CE01 movw r24,r28 914 0018 0196 adiw r24,1 915 001a 7C01 movw r14,r24 916 001c 9F93 push r25 917 001e 8F93 push r24 918 0020 80E0 ldi r24,lo8(.LC20) 919 0022 90E0 ldi r25,hi8(.LC20) 920 0024 9F93 push r25 921 0026 8F93 push r24 922 0028 1F93 push r17 923 002a 0F93 push r16 924 002c 0E94 0000 call sscanf 925 0030 0F90 pop __tmp_reg__ 926 0032 0F90 pop __tmp_reg__ 927 0034 0F90 pop __tmp_reg__ 928 0036 0F90 pop __tmp_reg__ 929 0038 0F90 pop __tmp_reg__ 930 003a 0F90 pop __tmp_reg__ 931 003c 0197 sbiw r24,1 932 003e 01F4 brne .L66 933 0040 8981 ldd r24,Y+1 934 0042 9A81 ldd r25,Y+2 935 0044 00C0 rjmp .L84 936 .L66: 937 0046 45E0 ldi r20,lo8(5) 938 0048 50E0 ldi r21,0 939 004a 60E0 ldi r22,lo8(.LC21) 940 004c 70E0 ldi r23,hi8(.LC21) 941 004e C801 movw r24,r16 942 0050 0E94 0000 call strncmp 943 0054 892B or r24,r25 944 0056 01F4 brne .L68 945 0058 80E0 ldi r24,0 946 005a 90E0 ldi r25,0 947 .L84: 948 005c 0E94 0000 call NutTracePrint 949 0060 00C0 rjmp .L65 950 .L68: 951 0062 47E0 ldi r20,lo8(7) GAS LISTING /tmp/ccjWWE5a.s page 19 952 0064 50E0 ldi r21,0 953 0066 60E0 ldi r22,lo8(.LC22) 954 0068 70E0 ldi r23,hi8(.LC22) 955 006a C801 movw r24,r16 956 006c 0E94 0000 call strncmp 957 0070 892B or r24,r25 958 0072 01F4 brne .L69 959 0074 62E0 ldi r22,lo8(2) 960 0076 00C0 rjmp .L86 961 .L69: 962 0078 48E0 ldi r20,lo8(8) 963 007a 50E0 ldi r21,0 964 007c 60E0 ldi r22,lo8(.LC24) 965 007e 70E0 ldi r23,hi8(.LC24) 966 0080 C801 movw r24,r16 967 0082 0E94 0000 call strncmp 968 0086 892B or r24,r25 969 0088 01F4 brne .L70 970 008a 61E0 ldi r22,lo8(1) 971 .L86: 972 008c 8091 0000 lds r24,trace_size 973 0090 9091 0000 lds r25,trace_size+1 974 0094 0E94 0000 call NutTraceInit 975 0098 E091 0000 lds r30,trace_mode 976 009c EE0F lsl r30 977 009e FF0B sbc r31,r31 978 00a0 E050 subi r30,lo8(-(mode_string)) 979 00a2 F040 sbci r31,hi8(-(mode_string)) 980 00a4 8181 ldd r24,Z+1 981 00a6 8F93 push r24 982 00a8 8081 ld r24,Z 983 00aa 8F93 push r24 984 00ac 80E0 ldi r24,lo8(.LC23) 985 00ae 90E0 ldi r25,hi8(.LC23) 986 00b0 00C0 rjmp .L85 987 .L70: 988 00b2 FF92 push r15 989 00b4 EF92 push r14 990 00b6 80E0 ldi r24,lo8(.LC25) 991 00b8 90E0 ldi r25,hi8(.LC25) 992 00ba 9F93 push r25 993 00bc 8F93 push r24 994 00be 1F93 push r17 995 00c0 0F93 push r16 996 00c2 0E94 0000 call sscanf 997 00c6 0F90 pop __tmp_reg__ 998 00c8 0F90 pop __tmp_reg__ 999 00ca 0F90 pop __tmp_reg__ 1000 00cc 0F90 pop __tmp_reg__ 1001 00ce 0F90 pop __tmp_reg__ 1002 00d0 0F90 pop __tmp_reg__ 1003 00d2 0197 sbiw r24,1 1004 00d4 01F4 brne .L71 1005 00d6 6091 0000 lds r22,trace_mode 1006 00da 8981 ldd r24,Y+1 1007 00dc 9A81 ldd r25,Y+2 1008 00de 0E94 0000 call NutTraceInit GAS LISTING /tmp/ccjWWE5a.s page 20 1009 00e2 9F93 push r25 1010 00e4 8F93 push r24 1011 00e6 80E0 ldi r24,lo8(.LC26) 1012 00e8 90E0 ldi r25,hi8(.LC26) 1013 .L85: 1014 00ea 9F93 push r25 1015 00ec 8F93 push r24 1016 00ee 0E94 0000 call printf 1017 00f2 0F90 pop __tmp_reg__ 1018 00f4 0F90 pop __tmp_reg__ 1019 00f6 0F90 pop __tmp_reg__ 1020 00f8 0F90 pop __tmp_reg__ 1021 00fa 00C0 rjmp .L65 1022 .L71: 1023 00fc 44E0 ldi r20,lo8(4) 1024 00fe 50E0 ldi r21,0 1025 0100 60E0 ldi r22,lo8(.LC27) 1026 0102 70E0 ldi r23,hi8(.LC27) 1027 0104 C801 movw r24,r16 1028 0106 0E94 0000 call strncmp 1029 010a 892B or r24,r25 1030 010c 01F4 brne .L72 1031 010e 0E94 0000 call NutTraceStop 1032 0112 80E0 ldi r24,lo8(.LC28) 1033 0114 90E0 ldi r25,hi8(.LC28) 1034 0116 00C0 rjmp .L83 1035 .L72: 1036 0118 FF92 push r15 1037 011a EF92 push r14 1038 011c 80E0 ldi r24,lo8(.LC29) 1039 011e 90E0 ldi r25,hi8(.LC29) 1040 0120 9F93 push r25 1041 0122 8F93 push r24 1042 0124 1F93 push r17 1043 0126 0F93 push r16 1044 0128 0E94 0000 call sscanf 1045 012c 0F90 pop __tmp_reg__ 1046 012e 0F90 pop __tmp_reg__ 1047 0130 0F90 pop __tmp_reg__ 1048 0132 0F90 pop __tmp_reg__ 1049 0134 0F90 pop __tmp_reg__ 1050 0136 0F90 pop __tmp_reg__ 1051 0138 0197 sbiw r24,1 1052 013a 01F4 brne .L73 1053 013c E981 ldd r30,Y+1 1054 013e FA81 ldd r31,Y+2 1055 0140 EB30 cpi r30,11 1056 0142 F105 cpc r31,__zero_reg__ 1057 0144 04F4 brge .L74 1058 0146 E050 subi r30,lo8(-(trace_mask)) 1059 0148 F040 sbci r31,hi8(-(trace_mask)) 1060 014a 81E0 ldi r24,lo8(1) 1061 014c 9081 ld r25,Z 1062 014e 9111 cpse r25,__zero_reg__ 1063 0150 80E0 ldi r24,0 1064 .L75: 1065 0152 8083 st Z,r24 GAS LISTING /tmp/ccjWWE5a.s page 21 1066 0154 0E94 0000 call NutTraceClear 1067 .L74: 1068 0158 0E94 0000 call NutTraceMaskPrint 1069 015c 00C0 rjmp .L65 1070 .L73: 1071 015e 44E0 ldi r20,lo8(4) 1072 0160 50E0 ldi r21,0 1073 0162 60E0 ldi r22,lo8(.LC30) 1074 0164 70E0 ldi r23,hi8(.LC30) 1075 0166 C801 movw r24,r16 1076 0168 0E94 0000 call strncmp 1077 016c 892B or r24,r25 1078 016e 01F0 breq .L74 1079 0170 0E94 0000 call NutTraceStatusPrint 1080 0174 80E0 ldi r24,lo8(.LC31) 1081 0176 90E0 ldi r25,hi8(.LC31) 1082 .L83: 1083 0178 0E94 0000 call puts 1084 .L65: 1085 /* epilogue start */ 1086 017c 0F90 pop __tmp_reg__ 1087 017e 0F90 pop __tmp_reg__ 1088 0180 DF91 pop r29 1089 0182 CF91 pop r28 1090 0184 1F91 pop r17 1091 0186 0F91 pop r16 1092 0188 FF90 pop r15 1093 018a EF90 pop r14 1094 018c 0895 ret 1095 .size NutTraceTerminal, .-NutTraceTerminal 1096 .section .text.NutTraceRegisterUserTag,"ax",@progbits 1097 .global NutTraceRegisterUserTag 1098 .type NutTraceRegisterUserTag, @function 1099 NutTraceRegisterUserTag: 1100 /* prologue: function */ 1101 /* frame size = 0 */ 1102 /* stack size = 0 */ 1103 .L__stack_usage = 0 1104 0000 8A30 cpi r24,10 1105 0002 9105 cpc r25,__zero_reg__ 1106 0004 04F4 brge .L89 1107 0006 FC01 movw r30,r24 1108 0008 EE0F lsl r30 1109 000a FF1F rol r31 1110 000c E050 subi r30,lo8(-(user_string)) 1111 000e F040 sbci r31,hi8(-(user_string)) 1112 0010 7183 std Z+1,r23 1113 0012 6083 st Z,r22 1114 0014 0895 ret 1115 .L89: 1116 0016 8FEF ldi r24,lo8(-1) 1117 0018 9FEF ldi r25,lo8(-1) 1118 001a 0895 ret 1119 .size NutTraceRegisterUserTag, .-NutTraceRegisterUserTag 1120 .comm user_string,20,1 1121 .global mode_string 1122 .section .rodata.str1.1 GAS LISTING /tmp/ccjWWE5a.s page 22 1123 .LC32: 1124 01f4 4349 5243 .string "CIRCULAR" 1124 554C 4152 1124 00 1125 .LC33: 1126 01fd 4F4E 4553 .string "ONESHOT" 1126 484F 5400 1127 .data 1128 .type mode_string, @object 1129 .size mode_string, 6 1130 mode_string: 1131 0000 0000 .word .LC19 1132 0002 0000 .word .LC32 1133 0004 0000 .word .LC33 1134 .global int_string 1135 .section .rodata.str1.1 1136 .LC34: 1137 0205 5541 5254 .string "UART0_CTS" 1137 305F 4354 1137 5300 1138 .LC35: 1139 020f 5541 5254 .string "UART0_RXCOMPL" 1139 305F 5258 1139 434F 4D50 1139 4C00 1140 .LC36: 1141 021d 5541 5254 .string "UART0_TXEMPTY" 1141 305F 5458 1141 454D 5054 1141 5900 1142 .LC37: 1143 022b 5541 5254 .string "UART1_CTS" 1143 315F 4354 1143 5300 1144 .LC38: 1145 0235 5541 5254 .string "UART1_RXCOMPL" 1145 315F 5258 1145 434F 4D50 1145 4C00 1146 .LC39: 1147 0243 5541 5254 .string "UART1_TXEMPTY" 1147 315F 5458 1147 454D 5054 1147 5900 1148 .LC40: 1149 0251 5449 4D45 .string "TIMER0_OVERFL" 1149 5230 5F4F 1149 5645 5246 1149 4C00 1150 .LC41: 1151 025f 5449 4D45 .string "TIMER1_OVERFL" 1151 5231 5F4F 1151 5645 5246 1151 4C00 1152 .LC42: 1153 026d 5355 4152 .string "SUART_TIMER" 1153 545F 5449 GAS LISTING /tmp/ccjWWE5a.s page 23 1153 4D45 5200 1154 .LC43: 1155 0279 5355 4152 .string "SUART_RX" 1155 545F 5258 1155 00 1156 .data 1157 .type int_string, @object 1158 .size int_string, 20 1159 int_string: 1160 0006 0000 .word .LC34 1161 0008 0000 .word .LC35 1162 000a 0000 .word .LC36 1163 000c 0000 .word .LC37 1164 000e 0000 .word .LC38 1165 0010 0000 .word .LC39 1166 0012 0000 .word .LC40 1167 0014 0000 .word .LC41 1168 0016 0000 .word .LC42 1169 0018 0000 .word .LC43 1170 .global tag_string 1171 .section .rodata.str1.1 1172 .LC44: 1173 0282 4372 6974 .string "Critical Enter" 1173 6963 616C 1173 2020 456E 1173 7465 7200 1174 .LC45: 1175 0292 4372 6974 .string "Critical Exit" 1175 6963 616C 1175 2020 4578 1175 6974 00 1176 .LC46: 1177 02a1 5468 7265 .string "Thread Yield" 1177 6164 2020 1177 2020 5969 1177 656C 6400 1178 .LC47: 1179 02b1 5468 7265 .string "Thread SetPrio" 1179 6164 2020 1179 2020 5365 1179 7450 7269 1179 6F00 1180 .LC48: 1181 02c3 5468 7265 .string "Thread Wait" 1181 6164 2020 1181 2020 5761 1181 6974 00 1182 .LC49: 1183 02d2 5468 7265 .string "Thread Sleep" 1183 6164 2020 1183 2020 536C 1183 6565 7000 1184 .LC50: 1185 02e2 496E 7465 .string "Interrupt Enter" 1185 7272 7570 1185 7420 456E 1185 7465 7200 GAS LISTING /tmp/ccjWWE5a.s page 24 1186 .LC51: 1187 02f2 496E 7465 .string "Interrupt Exit" 1187 7272 7570 1187 7420 4578 1187 6974 00 1188 .LC52: 1189 0301 5472 6163 .string "Trace Start" 1189 6520 5374 1189 6172 7400 1190 .LC53: 1191 030d 5472 6163 .string "Trace Stop" 1191 6520 5374 1191 6F70 00 1192 .LC54: 1193 0318 5573 6572 .string "User *" 1193 202A 00 1194 .data 1195 .type tag_string, @object 1196 .size tag_string, 22 1197 tag_string: 1198 001a 0000 .word .LC44 1199 001c 0000 .word .LC45 1200 001e 0000 .word .LC46 1201 0020 0000 .word .LC47 1202 0022 0000 .word .LC48 1203 0024 0000 .word .LC49 1204 0026 0000 .word .LC50 1205 0028 0000 .word .LC51 1206 002a 0000 .word .LC52 1207 002c 0000 .word .LC53 1208 002e 0000 .word .LC54 1209 .global trace_mask 1210 .type trace_mask, @object 1211 .size trace_mask, 11 1212 trace_mask: 1213 0030 00 .byte 0 1214 0031 00 .byte 0 1215 0032 01 .byte 1 1216 0033 01 .byte 1 1217 0034 01 .byte 1 1218 0035 01 .byte 1 1219 0036 00 .byte 0 1220 0037 00 .byte 0 1221 0038 01 .byte 1 1222 0039 01 .byte 1 1223 003a 01 .byte 1 1224 .global trace_mode 1225 .section .bss 1226 .type trace_mode, @object 1227 .size trace_mode, 1 1228 trace_mode: 1229 0000 00 .zero 1 1230 .global trace_isinit 1231 .type trace_isinit, @object 1232 .size trace_isinit, 1 1233 trace_isinit: 1234 0001 00 .zero 1 GAS LISTING /tmp/ccjWWE5a.s page 25 1235 .global trace_isfull 1236 .type trace_isfull, @object 1237 .size trace_isfull, 1 1238 trace_isfull: 1239 0002 00 .zero 1 1240 .global trace_size 1241 .type trace_size, @object 1242 .size trace_size, 2 1243 trace_size: 1244 0003 0000 .zero 2 1245 .global trace_head 1246 .type trace_head, @object 1247 .size trace_head, 2 1248 trace_head: 1249 0005 0000 .zero 2 1250 .global trace_current 1251 .type trace_current, @object 1252 .size trace_current, 2 1253 trace_current: 1254 0007 0000 .zero 2 1255 .global trace_items 1256 .type trace_items, @object 1257 .size trace_items, 2 1258 trace_items: 1259 0009 0000 .zero 2 1260 .global micros_high 1261 .type micros_high, @object 1262 .size micros_high, 2 1263 micros_high: 1264 000b 0000 .zero 2 1265 .ident "GCC: (GNU) 5.3.0" 1266 .global __do_copy_data 1267 .global __do_clear_bss GAS LISTING /tmp/ccjWWE5a.s page 26 DEFINED SYMBOLS *ABS*:0000000000000000 tracer.c /tmp/ccjWWE5a.s:2 *ABS*:000000000000003e __SP_H__ /tmp/ccjWWE5a.s:3 *ABS*:000000000000003d __SP_L__ /tmp/ccjWWE5a.s:4 *ABS*:000000000000003f __SREG__ /tmp/ccjWWE5a.s:5 *ABS*:000000000000003b __RAMPZ__ /tmp/ccjWWE5a.s:6 *ABS*:0000000000000000 __tmp_reg__ /tmp/ccjWWE5a.s:7 *ABS*:0000000000000001 __zero_reg__ /tmp/ccjWWE5a.s:10 .text.NutTraceTimer1IRQ:0000000000000000 NutTraceTimer1IRQ /tmp/ccjWWE5a.s:1263 .bss:000000000000000b micros_high /tmp/ccjWWE5a.s:25 .text.NutTraceClear:0000000000000000 NutTraceClear /tmp/ccjWWE5a.s:1238 .bss:0000000000000002 trace_isfull /tmp/ccjWWE5a.s:1248 .bss:0000000000000005 trace_head /tmp/ccjWWE5a.s:1228 .bss:0000000000000000 trace_mode /tmp/ccjWWE5a.s:1212 .data:0000000000000030 trace_mask /tmp/ccjWWE5a.s:1258 .bss:0000000000000009 trace_items /tmp/ccjWWE5a.s:1253 .bss:0000000000000007 trace_current /tmp/ccjWWE5a.s:1243 .bss:0000000000000003 trace_size /tmp/ccjWWE5a.s:93 .text.NutTraceInit:0000000000000000 NutTraceInit /tmp/ccjWWE5a.s:1233 .bss:0000000000000001 trace_isinit /tmp/ccjWWE5a.s:176 .text.NutTraceStop:0000000000000000 NutTraceStop /tmp/ccjWWE5a.s:262 .text.NutTraceStatusPrint:0000000000000000 NutTraceStatusPrint /tmp/ccjWWE5a.s:1130 .data:0000000000000000 mode_string /tmp/ccjWWE5a.s:349 .text.NutTracePrint:0000000000000000 NutTracePrint *COM*:0000000000000014 user_string /tmp/ccjWWE5a.s:1197 .data:000000000000001a tag_string /tmp/ccjWWE5a.s:1159 .data:0000000000000006 int_string /tmp/ccjWWE5a.s:724 .text.NutTraceGetPC:0000000000000000 NutTraceGetPC /tmp/ccjWWE5a.s:748 .text.NutTraceMaskSet:0000000000000000 NutTraceMaskSet /tmp/ccjWWE5a.s:767 .text.NutTraceMaskClear:0000000000000000 NutTraceMaskClear /tmp/ccjWWE5a.s:794 .text.NutTraceMaskPrint:0000000000000000 NutTraceMaskPrint /tmp/ccjWWE5a.s:897 .text.NutTraceTerminal:0000000000000000 NutTraceTerminal /tmp/ccjWWE5a.s:1099 .text.NutTraceRegisterUserTag:0000000000000000 NutTraceRegisterUserTag UNDEFINED SYMBOLS sig_OVERFLOW1 NutRegisterIrqHandler heapFreeList NutHeapRootFree NutHeapRootAlloc puts printf __udivmodsi4 sscanf strncmp __do_copy_data __do_clear_bss