📄 main.ls1
字号:
007B E0 836 MOVX A,@DPTR
007C FE 837 MOV R6,A
007D A3 838 INC DPTR
007E E0 839 MOVX A,@DPTR
007F FF 840 MOV R7,A
0080 900000 F 841 MOV DPTR,#buf?142
0083 E0 842 MOVX A,@DPTR
0084 FB 843 MOV R3,A
0085 A3 844 INC DPTR
0086 E4 845 CLR A
0087 75F001 846 MOV B,#01H
008A 120000 F 847 LCALL ?C?ILDIX
008D A9F0 848 MOV R1,B
008F FA 849 MOV R2,A
0090 120000 F 850 LCALL ?C?CLDPTR
0093 FD 851 MOV R5,A
0094 120000 F 852 LCALL _flash_boot_write_with_poll
853 ; status.u.status.checkSum += *p++;
854 ; SOURCE LINE # 329
0097 900000 F 855 MOV DPTR,#p?144
009A E4 856 CLR A
009B 75F001 857 MOV B,#01H
009E 120000 F 858 LCALL ?C?ILDIX
00A1 85F082 859 MOV DPL,B
00A4 F583 860 MOV DPH,A
00A6 E0 861 MOVX A,@DPTR
00A7 FF 862 MOV R7,A
00A8 900000 F 863 MOV DPTR,#status+05H
00AB E0 864 MOVX A,@DPTR
00AC 2F 865 ADD A,R7
00AD F0 866 MOVX @DPTR,A
867 ; }
868 ; SOURCE LINE # 330
00AE 80BA 869 SJMP ?C0006
870 ; }
871 ; SOURCE LINE # 331
872 ; }
873 ; SOURCE LINE # 332
00B0 874 ?C0008:
00B0 22 875 RET
876 ; END OF _WriteBufferToFlash
877
878 ;
879 ;
880 ;
881 ;
882 ; static void ReadBufferFromFlash(uint16 address, uchar* buf, uint16 cb)
883
---- 884 RSEG ?PR?_ReadBufferFromFlash?MAIN
0000 885 _ReadBufferFromFlash:
886 USING 0
887 ; SOURCE LINE # 337
0000 900000 F 888 MOV DPTR,#buf?246
0003 EB 889 MOV A,R3
0004 F0 890 MOVX @DPTR,A
0005 A3 891 INC DPTR
0006 EA 892 MOV A,R2
0007 F0 893 MOVX @DPTR,A
0008 A3 894 INC DPTR
A51 MACRO ASSEMBLER MAIN 04/30/2004 12:57:59 PAGE 15
0009 E9 895 MOV A,R1
000A F0 896 MOVX @DPTR,A
897 ;---- Variable 'address?245' assigned to Register 'R6/R7' ----
898 ; /******************************************************************************
899 ; Function : static void ReadBufferFromFlash()
900 ; Parameters : (uint16 address, uchar* buf, uint16 cb)
901 ; Description: ReadBufferFromFlash()
902 ; ******************************************************************************/
903 ; {
904 ; SOURCE LINE # 343
905 ; // Assume desired flash segment is mapped into high 32k of xdata space
906 ; volatile uchar xdata* p = (volatile uchar xdata*) address;
907 ; SOURCE LINE # 345
908 ;---- Variable 'p?248' assigned to Register 'R6/R7' ----
000B 909 ?C0009:
910 ;
911 ; while (cb--)
912 ; SOURCE LINE # 347
000B 900000 F 913 MOV DPTR,#cb?247
000E 74FF 914 MOV A,#0FFH
0010 F5F0 915 MOV B,A
0012 120000 F 916 LCALL ?C?ILDIX
0015 45F0 917 ORL A,B
0017 6025 918 JZ ?C0011
919 ; {
920 ; SOURCE LINE # 348
921 ; *buf++ = *p++;
922 ; SOURCE LINE # 349
0019 0F 923 INC R7
001A EF 924 MOV A,R7
001B CC 925 XCH A,R4
001C EE 926 MOV A,R6
001D CC 927 XCH A,R4
001E 7001 928 JNZ ?C0108
0020 0E 929 INC R6
0021 930 ?C0108:
0021 14 931 DEC A
0022 F582 932 MOV DPL,A
0024 8C83 933 MOV DPH,R4
0026 E0 934 MOVX A,@DPTR
0027 FD 935 MOV R5,A
0028 900000 F 936 MOV DPTR,#buf?246
002B E0 937 MOVX A,@DPTR
002C FB 938 MOV R3,A
002D A3 939 INC DPTR
002E E4 940 CLR A
002F 75F001 941 MOV B,#01H
0032 120000 F 942 LCALL ?C?ILDIX
0035 A9F0 943 MOV R1,B
0037 FA 944 MOV R2,A
0038 ED 945 MOV A,R5
0039 120000 F 946 LCALL ?C?CSTPTR
947 ; }
948 ; SOURCE LINE # 350
003C 80CD 949 SJMP ?C0009
950 ; }
951 ; SOURCE LINE # 351
003E 952 ?C0011:
003E 22 953 RET
954 ; END OF _ReadBufferFromFlash
955
956 ;
957 ;
958 ;
959 ;
960 ;
A51 MACRO ASSEMBLER MAIN 04/30/2004 12:57:59 PAGE 16
961 ;
962 ;
963 ;
964 ;
965 ;
966 ;
967 ;
968 ;
969 ; void OnDeviceConfigured()
970
---- 971 RSEG ?PR?OnDeviceConfigured?MAIN
0000 972 OnDeviceConfigured:
973 ; SOURCE LINE # 365
974 ; /******************************************************************************
975 ; Function : void OnDeviceConfigured()
976 ; Parameters : none
977 ; Description: Called after device is completely configured.
978 ; ******************************************************************************/
979 ; {
980 ; SOURCE LINE # 371
981 ; TXD1F = 1; // Set up first tx on EP1 if not
982 ; SOURCE LINE # 372
0000 D2EA 983 SETB TXD1F
984 ; }
985 ; SOURCE LINE # 373
0002 22 986 RET
987 ; END OF OnDeviceConfigured
988
989 ;
990 ;
991 ;
992 ;
993 ;
994 ;
995 ;
996 ;
997 ; static void PrepareTransmitSegment(uchar index)
998
---- 999 RSEG ?PR?_PrepareTransmitSegment?MAIN
0000 1000 _PrepareTransmitSegment:
1001 USING 0
1002 ; SOURCE LINE # 382
0000 900000 F 1003 MOV DPTR,#index?449
0003 EF 1004 MOV A,R7
0004 F0 1005 MOVX @DPTR,A
1006 ; /******************************************************************************
1007 ; Function : static void PrepareTransmitSegment()
1008 ; Parameters : (uchar index) - current byte index into txReport.
1009 ; Description: Prepare next segment of feature report for transmission.
1010 ; ******************************************************************************/
1011 ; {
1012 ; SOURCE LINE # 388
1013 ; data uchar cbData;
1014 ; data uchar i;
1015 ;
1016 ; if (returnStatus)
1017 ; SOURCE LINE # 392
0005 E500 F 1018 MOV A,returnStatus
0007 6037 1019 JZ ?C0013
1020 ; {
1021 ; SOURCE LINE # 393
1022 ; if (index == 0) // Prepare the whole status report on first call
1023 ; SOURCE LINE # 394
0009 E0 1024 MOVX A,@DPTR
000A 6003 1025 JZ $ + 5H
000C 020000 F 1026 LJMP ?C0015
A51 MACRO ASSEMBLER MAIN 04/30/2004 12:57:59 PAGE 17
1027 ; {
1028 ; SOURCE LINE # 395
1029 ; status.u.cmd = CMD_STATUS;
1030 ; SOURCE LINE # 396
000F 900000 F 1031 MOV DPTR,#status
0012 7405 1032 MOV A,#05H
0014 F0 1033 MOVX @DPTR,A
1034 ; status.u.status.currentCmd = currentCmd.u.cmd;
1035 ; SOURCE LINE # 397
0015 900000 F 1036 MOV DPTR,#currentCmd
0018 E0 1037 MOVX A,@DPTR
0019 900000 F 1038 MOV DPTR,#status+01H
001C F0 1039 MOVX @DPTR,A
1040 ; status.u.status.page = UPSD_xreg.PAGE;
1041 ; SOURCE LINE # 398
001D 900000 F 1042 MOV DPTR,#UPSD_xreg+0E0H
0020 E0 1043 MOVX A,@DPTR
0021 900000 F 1044 MOV DPTR,#status+02H
0024 F0 1045 MOVX @DPTR,A
1046 ; status.u.status.vm = UPSD_xreg.VM;
1047 ; SOURCE LINE # 399
0025 900000 F 1048 MOV DPTR,#UPSD_xreg+0E2H
002
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -