📄 kertimer.lst
字号:
792 02f0 A105 cpc r26,__zero_reg__
793 02f2 B105 cpc r27,__zero_reg__
794 02f4 09F4 brne .+2
795 02f6 56C0 rjmp .L29
208:kertimer.c **** {
209:kertimer.c **** mTimerList[i].ticksLeft -= (mInterval+1) ;
797 .LM67:
798 02f8 8091 0000 lds r24,mInterval
799 02fc 9927 clr r25
800 02fe 0196 adiw r24,1
801 0300 AA27 clr r26
802 0302 97FD sbrc r25,7
803 0304 A095 com r26
804 0306 BA2F mov r27,r26
805 0308 F601 movw r30,r12
806 030a 2581 ldd r18,Z+5
807 030c 3681 ldd r19,Z+6
808 030e 4781 ldd r20,Z+7
809 0310 5085 ldd r21,Z+8
810 0312 281B sub r18,r24
811 0314 390B sbc r19,r25
812 0316 4A0B sbc r20,r26
813 0318 5B0B sbc r21,r27
814 031a 2583 std Z+5,r18
815 031c 3683 std Z+6,r19
816 031e 4783 std Z+7,r20
817 0320 5087 std Z+8,r21
210:kertimer.c **** if (mTimerList[i].ticksLeft<=2)
819 .LM68:
820 0322 2330 cpi r18,lo8(3)
821 0324 3105 cpc r19,__zero_reg__
822 0326 4105 cpc r20,__zero_reg__
823 0328 5105 cpc r21,__zero_reg__
824 032a E4F5 brge .L29
211:kertimer.c **** {
212:kertimer.c **** if (mTimerList[i].type==KERTIMER_REPEAT)
826 .LM69:
827 032c 8081 ld r24,Z
828 032e 8823 tst r24
829 0330 69F4 brne .L32
213:kertimer.c **** {
214:kertimer.c **** mTimerList[i].ticksLeft += mTimerList[i].ticks;
831 .LM70:
832 0332 8181 ldd r24,Z+1
833 0334 9281 ldd r25,Z+2
834 0336 A381 ldd r26,Z+3
835 0338 B481 ldd r27,Z+4
836 033a 280F add r18,r24
837 033c 391F adc r19,r25
838 033e 4A1F adc r20,r26
839 0340 5B1F adc r21,r27
840 0342 2583 std Z+5,r18
841 0344 3683 std Z+6,r19
842 0346 4783 std Z+7,r20
843 0348 5087 std Z+8,r21
844 034a 12C0 rjmp .L33
845 .L32:
215:kertimer.c **** }
216:kertimer.c **** else
217:kertimer.c **** {// one shot timer
218:kertimer.c **** mState &=~(0x1L<<i);
847 .LM71:
848 034c D801 movw r26,r16
849 034e C701 movw r24,r14
850 0350 8095 com r24
851 0352 9095 com r25
852 0354 A095 com r26
853 0356 B095 com r27
854 0358 4822 and r4,r24
855 035a 5922 and r5,r25
856 035c 6A22 and r6,r26
857 035e 7B22 and r7,r27
858 0360 4092 0000 sts mState,r4
859 0364 5092 0000 sts (mState)+1,r5
860 0368 6092 0000 sts (mState)+2,r6
861 036c 7092 0000 sts (mState)+3,r7
862 .L33:
863 .LBB11:
864 .LBB12:
866 .LM72:
867 0370 8091 0000 lds r24,queue_tail
868 0374 8230 cpi r24,lo8(2)
869 0376 19F4 brne .L34
871 .LM73:
872 0378 8FEF ldi r24,lo8(-1)
873 037a 8093 0000 sts queue_tail,r24
874 .L34:
876 .LM74:
877 037e 9091 0000 lds r25,queue_tail
878 0382 9F5F subi r25,lo8(-(1))
879 0384 9093 0000 sts queue_tail,r25
881 .LM75:
882 0388 8091 0000 lds r24,queue_size
883 038c 8F5F subi r24,lo8(-(1))
884 038e 8093 0000 sts queue_size,r24
886 .LM76:
887 0392 E92F mov r30,r25
888 0394 FF27 clr r31
889 0396 E050 subi r30,lo8(-(queue))
890 0398 F040 sbci r31,hi8(-(queue))
891 039a 9082 st Z,r9
892 .LBE12:
893 .LBE11:
219:kertimer.c **** }
220:kertimer.c **** enqueue(i);
221:kertimer.c **** OS_post (&KERTimer_fired);
895 .LM77:
896 039c 80E0 ldi r24,lo8(pm(KERTimer_fired))
897 039e 90E0 ldi r25,hi8(pm(KERTimer_fired))
898 03a0 0E94 0000 call OS_post
899 .L29:
901 .LM78:
902 03a4 9394 inc r9
903 03a6 0894 sec
904 03a8 A11C adc r10,__zero_reg__
905 03aa B11C adc r11,__zero_reg__
906 03ac 8BE0 ldi r24,lo8(11)
907 03ae 90E0 ldi r25,hi8(11)
908 03b0 C80E add r12,r24
909 03b2 D91E adc r13,r25
910 03b4 92E0 ldi r25,lo8(2)
911 03b6 9915 cp r25,r9
912 03b8 08F0 brlo .+2
913 03ba 7ECF rjmp .L36
914 .L26:
915 .LBB13:
916 .LBB14:
918 .LM79:
919 03bc 46EE ldi r20,lo8(-26)
920 03be E42E mov r14,r20
922 .LM80:
923 03c0 4090 0000 lds r4,mState
924 03c4 5090 0000 lds r5,(mState)+1
925 03c8 6090 0000 lds r6,(mState)+2
926 03cc 7090 0000 lds r7,(mState)+3
927 03d0 4114 cp r4,__zero_reg__
928 03d2 5104 cpc r5,__zero_reg__
929 03d4 6104 cpc r6,__zero_reg__
930 03d6 7104 cpc r7,__zero_reg__
931 03d8 99F1 breq .L37
932 03da 31E0 ldi r19,lo8(1)
933 03dc A32E mov r10,r19
934 03de B12C mov r11,__zero_reg__
935 03e0 C12C mov r12,__zero_reg__
936 03e2 D12C mov r13,__zero_reg__
937 03e4 60E0 ldi r22,lo8(mTimerList)
938 03e6 70E0 ldi r23,hi8(mTimerList)
939 03e8 00E0 ldi r16,lo8(0)
940 03ea 10E0 ldi r17,hi8(0)
941 03ec 22E0 ldi r18,lo8(2)
942 03ee F22E mov r15,r18
943 .L42:
945 .LM81:
946 03f0 D601 movw r26,r12
947 03f2 C501 movw r24,r10
948 03f4 002E mov r0,r16
949 03f6 04C0 rjmp 2f
950 03f8 880F 1: lsl r24
951 03fa 991F rol r25
952 03fc AA1F rol r26
953 03fe BB1F rol r27
954 0400 0A94 2: dec r0
955 0402 D2F7 brpl 1b
956 0404 8421 and r24,r4
957 0406 9521 and r25,r5
958 0408 A621 and r26,r6
959 040a B721 and r27,r7
960 040c 0097 sbiw r24,0
961 040e A105 cpc r26,__zero_reg__
962 0410 B105 cpc r27,__zero_reg__
963 0412 79F0 breq .L40
964 0414 2E2D mov r18,r14
965 0416 3327 clr r19
966 0418 4427 clr r20
967 041a 5527 clr r21
968 041c FB01 movw r30,r22
969 041e 8581 ldd r24,Z+5
970 0420 9681 ldd r25,Z+6
971 0422 A781 ldd r26,Z+7
972 0424 B085 ldd r27,Z+8
973 0426 8217 cp r24,r18
974 0428 9307 cpc r25,r19
975 042a A407 cpc r26,r20
976 042c B507 cpc r27,r21
977 042e 0CF4 brge .L40
979 .LM82:
980 0430 E580 ldd r14,Z+5
981 .L40:
983 .LM83:
984 0432 FA94 dec r15
985 0434 0F5F subi r16,lo8(-(1))
986 0436 1F4F sbci r17,hi8(-(1))
987 0438 655F subi r22,lo8(-(11))
988 043a 7F4F sbci r23,hi8(-(11))
989 043c F7FE sbrs r15,7
990 043e D8CF rjmp .L42
991 .L37:
992 .LBB15:
994 .LM84:
995 0440 0E94 0000 call os_atomic_start
996 0444 182F mov r17,r24
998 .LM85:
999 0446 E092 0000 sts mInterval,r14
1001 .LM86:
1002 044a 8E2D mov r24,r14
1003 044c 0E94 0000 call timer0_setInterval
1005 .LM87:
1006 0450 1092 0000 sts setIntervalFlag,__zero_reg__
1008 .LM88:
1009 0454 812F mov r24,r17
1010 0456 0E94 0000 call os_atomic_end
1011 .LBE15:
1012 .LBE14:
1013 .LBE13:
1014 /* epilogue: frame size=0 */
1015 045a DF91 pop r29
1016 045c CF91 pop r28
1017 045e 1F91 pop r17
1018 0460 0F91 pop r16
1019 0462 FF90 pop r15
1020 0464 EF90 pop r14
1021 0466 DF90 pop r13
1022 0468 CF90 pop r12
1023 046a BF90 pop r11
1024 046c AF90 pop r10
1025 046e 9F90 pop r9
1026 0470 7F90 pop r7
1027 0472 6F90 pop r6
1028 0474 5F90 pop r5
1029 0476 4F90 pop r4
1030 0478 0895 ret
1031 /* epilogue end (size=16) */
1032 /* function KERTimer_Fire size 263 (232) */
1046 .comm OS_queue,16,1
1047 .comm OS_sched_full,1,1
1048 .comm OS_sched_free,1,1
1049 .comm currentTime,2,1
1050 .comm head_of_systimer_queue,2,1
1051 .comm timestamp_H,2,1
1052 .comm cc2420_bramspi,1,1
1053 .comm cc2420_rambuf,2,1
1054 .comm cc2420_ramlen,1,1
1055 .comm cc2420_ramaddr,2,1
1056 .comm cc2420fifo_bspi,1,1
1057 .comm cc2420fifo_txbuf,2,1
1058 .comm cc2420fifo_txlength,1,1
1059 .comm cc2420_rxbuf,4,1
1060 .comm cc2420_rxlength,1,1
1061 .comm cc2420_rxbuf_now,2,1
1062 .comm cc2420_rxlength_now,1,1
1063 .comm cc2420_rxbufuse,1,1
1064 .comm rfpackernum,1,1
1065 .comm cc2420_rxflag,1,1
1066 .comm cc2420_currentparameters,28,1
1067 .comm receive_timestamp,4,1
1068 .comm send_timestamp,4,1
1069 .comm cc2420_stateRadio,1,1
1070 .comm cc2420_LocalAddr,2,1
1071 .comm ieee_address,8,1
1072 .comm GTSDirectionMask,1,1
1073 .comm phy_channel_state,1,1
1074 .comm rxbuf_flag,1,1
1075 .comm ppib,3,1
1076 .comm SENSOR_DATA_VALUE,20,1
1077 .comm ADC_INTERRUPT_FLAG,1,1
1078 .comm mState,4,1
1079 .comm setIntervalFlag,1,1
1080 .comm mScale,1,1
1081 .comm mInterval,1,1
1082 .comm queue_head,1,1
1083 .comm queue_tail,1,1
1084 .comm queue_size,1,1
1085 .comm queue,3,1
1086 .comm mTimerList,33,1
1128 .text
1130 Letext:
1131 /* File "kertimer.c": code 575 = 0x023f ( 509), prologues 29, epilogues 37 */
DEFINED SYMBOLS
*ABS*:00000000 kertimer.c
*ABS*:0000003f __SREG__
*ABS*:0000003e __SP_H__
*ABS*:0000003d __SP_L__
*ABS*:00000000 __tmp_reg__
*ABS*:00000001 __zero_reg__
C:\DOCUME~1\ADMINI~2\LOCALS~1\Temp/ccYRaaaa.s:223 .text:00000000 timer0_setInterval
C:\DOCUME~1\ADMINI~2\LOCALS~1\Temp/ccYRaaaa.s:273 .text:0000002a timer0_getInterval
C:\DOCUME~1\ADMINI~2\LOCALS~1\Temp/ccYRaaaa.s:289 .text:00000032 timer0_hardware_get_counter
C:\DOCUME~1\ADMINI~2\LOCALS~1\Temp/ccYRaaaa.s:308 .text:00000038 kertimer_init
*COM*:00000004 mState
*COM*:00000001 setIntervalFlag
*COM*:00000001 queue_tail
*COM*:00000001 queue_head
*COM*:00000001 queue_size
*COM*:00000001 mScale
*COM*:00000001 mInterval
C:\DOCUME~1\ADMINI~2\LOCALS~1\Temp/ccYRaaaa.s:397 .text:00000094 kertimer_start
*COM*:00000021 mTimerList
C:\DOCUME~1\ADMINI~2\LOCALS~1\Temp/ccYRaaaa.s:554 .text:0000017a kertimer_stop
C:\DOCUME~1\ADMINI~2\LOCALS~1\Temp/ccYRaaaa.s:638 .text:0000020a KERTimer_fired
*COM*:00000003 queue
C:\DOCUME~1\ADMINI~2\LOCALS~1\Temp/ccYRaaaa.s:721 .text:0000026c KERTimer_Fire
*COM*:00000010 OS_queue
*COM*:00000001 OS_sched_full
*COM*:00000001 OS_sched_free
*COM*:00000002 currentTime
*COM*:00000002 head_of_systimer_queue
*COM*:00000002 timestamp_H
*COM*:00000001 cc2420_bramspi
*COM*:00000002 cc2420_rambuf
*COM*:00000001 cc2420_ramlen
*COM*:00000002 cc2420_ramaddr
*COM*:00000001 cc2420fifo_bspi
*COM*:00000002 cc2420fifo_txbuf
*COM*:00000001 cc2420fifo_txlength
*COM*:00000004 cc2420_rxbuf
*COM*:00000001 cc2420_rxlength
*COM*:00000002 cc2420_rxbuf_now
*COM*:00000001 cc2420_rxlength_now
*COM*:00000001 cc2420_rxbufuse
*COM*:00000001 rfpackernum
*COM*:00000001 cc2420_rxflag
*COM*:0000001c cc2420_currentparameters
*COM*:00000004 receive_timestamp
*COM*:00000004 send_timestamp
*COM*:00000001 cc2420_stateRadio
*COM*:00000002 cc2420_LocalAddr
*COM*:00000008 ieee_address
*COM*:00000001 GTSDirectionMask
*COM*:00000001 phy_channel_state
*COM*:00000001 rxbuf_flag
*COM*:00000003 ppib
*COM*:00000014 SENSOR_DATA_VALUE
*COM*:00000001 ADC_INTERRUPT_FLAG
C:\DOCUME~1\ADMINI~2\LOCALS~1\Temp/ccYRaaaa.s:1130 .text:0000047a Letext
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
os_atomic_start
os_atomic_end
OS_post
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -