os_time.ls1
来自「在51单片机上移植成功的UCOS-II操作系统源代码,包括源代码及相关注释」· LS1 代码 · 共 1,130 行 · 第 1/5 页
LS1
1,130 行
827 ; } else {
828 ; SOURCE LINE # 155
00E1 829 ?C0016:
830 ; OS_EXIT_CRITICAL();
831 ; SOURCE LINE # 156
00E1 D2AF 832 SETB EA
833 ; return (OS_TIME_NOT_DLY); /* Indicate that task was not
delayed */
834 ; SOURCE LINE # 157
00E3 7F50 835 MOV R7,#050H
00E5 8004 836 SJMP ?C0014
837 ; }
838 ; SOURCE LINE # 158
839 ; } else {
840 ; SOURCE LINE # 159
00E7 841 ?C0015:
842 ; OS_EXIT_CRITICAL();
843 ; SOURCE LINE # 160
00E7 D2AF 844 SETB EA
845 ; return (OS_TASK_NOT_EXIST); /* The task does not exist
*/
846 ; SOURCE LINE # 161
00E9 7F0B 847 MOV R7,#0BH
848 ; }
849 ; SOURCE LINE # 162
850 ; }
851 ; SOURCE LINE # 163
00EB 852 ?C0014:
00EB 900004 853 MOV DPTR,#04H
00EE 020000 F 854 LJMP ?C?ADDXBP
855 ; END OF _?OSTimeDlyResume
856
857 ; /*$PAGE*/
858 ; /*
859 ; *****************************************************************************************
****************
860 ; * GET CURRENT SYSTEM TIME
861 ; *
862 ; * Description: This function is used by your application to obtain the current value of t
he 32-bit
863 ; * counter which keeps track of the number of clock ticks.
864 ; *
865 ; * Arguments : none
866 ; *
867 ; * Returns : The current value of OSTime
868 ; *****************************************************************************************
****************
A51 MACRO ASSEMBLER OS_TIME 09/09/2007 21:13:22 PAGE 15
869 ; */
870 ;
871 ; INT32U OSTimeGet (void) reentrant
872
---- 873 RSEG ?PR?_?OSTimeGet?OS_TIME
0000 874 _?OSTimeGet:
875 USING 0
876 ; SOURCE LINE # 178
0000 90FFFC 877 MOV DPTR,#0FFFCH
0003 120000 F 878 LCALL ?C?ADDXBP
879 ; {
880 ; INT32U ticks;
881 ;
882 ;
883 ; OS_ENTER_CRITICAL();
884 ; SOURCE LINE # 183
0006 C2AF 885 CLR EA
886 ; ticks = OSTime;
887 ; SOURCE LINE # 184
0008 900000 F 888 MOV DPTR,#OSTime
000B E0 889 MOVX A,@DPTR
000C FC 890 MOV R4,A
000D A3 891 INC DPTR
000E E0 892 MOVX A,@DPTR
000F FD 893 MOV R5,A
0010 A3 894 INC DPTR
0011 E0 895 MOVX A,@DPTR
0012 FE 896 MOV R6,A
0013 A3 897 INC DPTR
0014 E0 898 MOVX A,@DPTR
0015 FF 899 MOV R7,A
0016 850083 F 900 MOV DPH,?C_XBP
0019 850082 F 901 MOV DPL,?C_XBP+01H
001C 120000 F 902 LCALL ?C?LSTXDATA
903 ; OS_EXIT_CRITICAL();
904 ; SOURCE LINE # 185
001F D2AF 905 SETB EA
906 ; return (ticks);
907 ; SOURCE LINE # 186
0021 850083 F 908 MOV DPH,?C_XBP
0024 850082 F 909 MOV DPL,?C_XBP+01H
0027 E0 910 MOVX A,@DPTR
0028 FC 911 MOV R4,A
0029 A3 912 INC DPTR
002A E0 913 MOVX A,@DPTR
002B FD 914 MOV R5,A
002C A3 915 INC DPTR
002D E0 916 MOVX A,@DPTR
002E FE 917 MOV R6,A
002F A3 918 INC DPTR
0030 E0 919 MOVX A,@DPTR
0031 FF 920 MOV R7,A
921 ; }
922 ; SOURCE LINE # 187
0032 923 ?C0021:
0032 900004 924 MOV DPTR,#04H
0035 020000 F 925 LJMP ?C?ADDXBP
926 ; END OF _?OSTimeGet
927
928 ;
929 ; /*
930 ; *****************************************************************************************
****************
931 ; * SET SYSTEM CLOCK
932 ; *
933 ; * Description: This function sets the 32-bit counter which keeps track of the number of c
A51 MACRO ASSEMBLER OS_TIME 09/09/2007 21:13:22 PAGE 16
lock ticks.
934 ; *
935 ; * Arguments : ticks specifies the new value that OSTime needs to take.
936 ; *
937 ; * Returns : none
938 ; *****************************************************************************************
****************
939 ; */
940 ;
941 ; void OSTimeSet (INT32U ticks) reentrant
942
---- 943 RSEG ?PR?_?OSTimeSet?OS_TIME
0000 944 _?OSTimeSet:
945 USING 0
946 ; SOURCE LINE # 201
0000 90FFFC 947 MOV DPTR,#0FFFCH
0003 120000 F 948 LCALL ?C?ADDXBP
0006 120000 F 949 LCALL ?C?LSTXDATA
950 ; {
951 ; OS_ENTER_CRITICAL();
952 ; SOURCE LINE # 203
0009 C2AF 953 CLR EA
954 ; OSTime = ticks;
955 ; SOURCE LINE # 204
000B 850083 F 956 MOV DPH,?C_XBP
000E 850082 F 957 MOV DPL,?C_XBP+01H
0011 E0 958 MOVX A,@DPTR
0012 FC 959 MOV R4,A
0013 A3 960 INC DPTR
0014 E0 961 MOVX A,@DPTR
0015 FD 962 MOV R5,A
0016 A3 963 INC DPTR
0017 E0 964 MOVX A,@DPTR
0018 FE 965 MOV R6,A
0019 A3 966 INC DPTR
001A E0 967 MOVX A,@DPTR
001B FF 968 MOV R7,A
001C 900000 F 969 MOV DPTR,#OSTime
001F 120000 F 970 LCALL ?C?LSTXDATA
971 ; OS_EXIT_CRITICAL();
972 ; SOURCE LINE # 205
0022 D2AF 973 SETB EA
974 ; }
975 ; SOURCE LINE # 206
0024 900004 976 MOV DPTR,#04H
0027 020000 F 977 LJMP ?C?ADDXBP
978 ; END OF _?OSTimeSet
979
980 END
A51 MACRO ASSEMBLER OS_TIME 09/09/2007 21:13:22 PAGE 17
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
?C0002. . . . . . . . . . . . C ADDR 006DH R SEG=?PR?_?OSTIMEDLY?OS_TIME
?C0003. . . . . . . . . . . . C ADDR 0085H R SEG=?PR?_?OSTIMEDLY?OS_TIME
?C0004. . . . . . . . . . . . C ADDR 01C4H R SEG=?PR?_?OSTIMEDLYHMSM?OS_TIME
?C0005. . . . . . . . . . . . C ADDR 0057H R SEG=?PR?_?OSTIMEDLYHMSM?OS_TIME
?C0006. . . . . . . . . . . . C ADDR 0069H R SEG=?PR?_?OSTIMEDLYHMSM?OS_TIME
?C0007. . . . . . . . . . . . C ADDR 01C6H R SEG=?PR?_?OSTIMEDLYHMSM?OS_TIME
?C0008. . . . . . . . . . . . C ADDR 007AH R SEG=?PR?_?OSTIMEDLYHMSM?OS_TIME
?C0009. . . . . . . . . . . . C ADDR 0091H R SEG=?PR?_?OSTIMEDLYHMSM?OS_TIME
?C0010. . . . . . . . . . . . C ADDR 0191H R SEG=?PR?_?OSTIMEDLYHMSM?OS_TIME
?C0011. . . . . . . . . . . . C ADDR 01C0H R SEG=?PR?_?OSTIMEDLYHMSM?OS_TIME
?C0013. . . . . . . . . . . . C ADDR 0020H R SEG=?PR?_?OSTIMEDLYRESUME?OS_TIME
?C0014. . . . . . . . . . . . C ADDR 00EBH R SEG=?PR?_?OSTIMEDLYRESUME?OS_TIME
?C0015. . . . . . . . . . . . C ADDR 00E7H R SEG=?PR?_?OSTIMEDLYRESUME?OS_TIME
?C0016. . . . . . . . . . . . C ADDR 00E1H R SEG=?PR?_?OSTIMEDLYRESUME?OS_TIME
?C0017. . . . . . . . . . . . C ADDR 00DBH R SEG=?PR?_?OSTIMEDLYRESUME?OS_TIME
?C0018. . . . . . . . . . . . C ADDR 00DDH R SEG=?PR?_?OSTIMEDLYRESUME?OS_TIME
?C0021. . . . . . . . . . . . C ADDR 0032H R SEG=?PR?_?OSTIMEGET?OS_TIME
?C?ADDXBP . . . . . . . . . . C ADDR ----- EXT
?C?CLDOPTR. . . . . . . . . . C ADDR ----- EXT
?C?IILDX. . . . . . . . . . . C ADDR ----- EXT
?C?ILDOPTR. . . . . . . . . . C ADDR ----- EXT
?C?ISTOPTR. . . . . . . . . . C ADDR ----- EXT
?C?LMUL . . . . . . . . . . . C ADDR ----- EXT
?C?LSTXDATA . . . . . . . . . C ADDR ----- EXT
?C?ULDIV. . . . . . . . . . . C ADDR ----- EXT
?C?XBPOFF . . . . . . . . . . C ADDR ----- EXT
?C_XBP. . . . . . . . . . . . D ADDR ----- EXT
?PR?_?OSTIMEDLY?OS_TIME . . . C SEG 008BH REL=UNIT
?PR?_?OSTIMEDLYHMSM?OS_TIME . C SEG 01CCH REL=UNIT
?PR?_?OSTIMEDLYRESUME?OS_TIME C SEG 00F1H REL=UNIT
?PR?_?OSTIMEGET?OS_TIME . . . C SEG 0038H REL=UNIT
?PR?_?OSTIMESET?OS_TIME . . . C SEG 002AH REL=UNIT
AC. . . . . . . . . . . . . . B ADDR 00D0H.6 A
ACC . . . . . . . . . . . . . D ADDR 00E0H A
AR0 . . . . . . . . . . . . . D ADDR 0000H A
AR1 . . . . . . . . . . . . . D ADDR 0001H A
AR2 . . . . . . . . . . . . . D ADDR 0002H A
AR3 . . . . . . . . . . . . . D ADDR 0003H A
AR4 . . . . . . . . . . . . . D ADDR 0004H A
AR5 . . . . . . . . . . . . . D ADDR 0005H A
AR6 . . . . . . . . . . . . . D ADDR 0006H A
AR7 . . . . . . . . . . . . . D ADDR 0007H A
B . . . . . . . . . . . . . . D ADDR 00F0H A
CY. . . . . . . . . . . . . . B ADDR 00D0H.7 A
DPH . . . . . . . . . . . . . D ADDR 0083H A
DPL . . . . . . . . . . . . . D ADDR 0082H A
EA. . . . . . . . . . . . . . B ADDR 00A8H.7 A
ES. . . . . . . . . . . . . . B ADDR 00A8H.4 A
ET0 . . . . . . . . . . . . . B ADDR 00A8H.1 A
ET1 . . . . . . . . . . . . . B ADDR 00A8H.3 A
EX0 . . . . . . . . . . . . . B ADDR 00A8H.0 A
EX1 . . . . . . .
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?