serial.lst
来自「dsp tmslf2407a 汇编,c的原代码,包括i2c,scitimer,f」· LST 代码 · 共 1,452 行 · 第 1/5 页
LST
1,452 行
Copyright (c) 1987-1999 Texas Instruments Incorporated
serial.asm PAGE 16
766 .sym _rec,1,12,1,16
767 .sym _temp,2,12,1,16
768 .sym _i,3,12,1,16
769 .sym _simSerial,4,14,1,16
770 .line 3
771 ;>>>> uchar rec = 0,temp;
772 ;>>>> uchar i;
773 ;>>>> uint simSerial;
774 0162 b900 LACK 0
775 0163 b201 LARK AR2,1
776 0164 8be0 MAR *0+
777 0165 9080 SACL *
778 .line 7
779 ;>>>> simSerial = cfgdata[18] >> 8;
780 ;>>>> switch( PIVR)
781 ;>>>> case 0x0006:
782 0166 be46 RSXM
783 0167 bc00! LDPK _cfgdata+18
784 0168 1712! LAC _cfgdata+18,7
785 0169 7803 ADRK 3
786 016a 9980 SACH * ,1
787 016b 7980 B L18
016c 02f2'
788 016d L19:
789 .line 12
790 ;>>>> b_com_success = 1;
791 016d b901 LACK 1
792 016e bc00! LDPK _b_com_success
793 016f 9000! SACL _b_com_success
794 .line 13
795 ;>>>> if(status_rx == 0 )
796 0170 bc00! LDPK _status_rx
797 0171 1000! LAC _status_rx
798 0172 e308 BNZ L20
0173 0193'
799 .line 15
800 ;>>>> len_rx = SCIRXBUF;
801 0174 bc00! LDPK _SCIRXBUF
802 0175 a900! BLDD _SCIRXBUF,#_len_rx
0176 0000!
803 .line 16
804 ;>>>> if((len_rx > 4)&&(len_rx <188)) //接收数至少要有5个字节
805 0177 bc00! LDPK _len_rx
806 0178 6900! ZALS _len_rx
807 0179 ba04 SUBK 4
808 017a e3cc BLEZ L22
017b 01b4'
809 017c 6900! ZALS _len_rx
810 017d babc SUBK 188
811 017e e38c BGEZ L22
017f 01b4'
812 .line 18
813 ;>>>> p_rx = 0;
814 0180 b900 LACK 0
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00 Thu Dec 8 11:06:24 2005
Copyright (c) 1987-1999 Texas Instruments Incorporated
serial.asm PAGE 17
815 0181 bc00! LDPK _p_rx
816 0182 9000! SACL _p_rx
817 .line 19
818 ;>>>> pcdata[0] = len_rx;
819 0183 bc00! LDPK _len_rx
820 0184 a900! BLDD _len_rx,#_pcdata
0185 0000!
821 .line 20
822 ;>>>> status_rx = 1;
823 0186 b901 LACK 1
824 0187 bc00! LDPK _status_rx
825 0188 9000! SACL _status_rx
826 .line 21
827 ;>>>> len_rx --;
828 0189 bc00! LDPK _len_rx
829 018a 1000! LAC _len_rx
830 018b ba01 SUBK 1
831 018c 9000! SACL _len_rx
832 .line 22
833 ;>>>> p_rx ++;
834 018d bc00! LDPK _p_rx
835 018e 1000! LAC _p_rx
836 018f b801 ADDK 1
837 0190 9000! SACL _p_rx
838 0191 7980 B L22
0192 01b4'
839 0193 L20:
840 .line 25
841 ;>>>> else if(status_rx == 1)
842 0193 1000! LAC _status_rx
843 0194 ba01 SUBK 1
844 0195 e308 BNZ L23
0196 01af'
845 .line 27
846 ;>>>> pcdata[p_rx] = SCIRXBUF;
847 0197 bc00! LDPK _p_rx
848 0198 1000! LAC _p_rx
849 0199 bf90 ADLK _pcdata+0,0
019a 0000!
850 019b 8b88 MAR * ,AR0
851 019c 9080 SACL *
852 019d 038b LAR AR3,* ,AR3
853 019e a880 BLKD #_SCIRXBUF,*
019f 0000!
854 .line 28
855 ;>>>> p_rx ++;
856 01a0 1000! LAC _p_rx
857 01a1 b801 ADDK 1
858 01a2 9000! SACL _p_rx
859 .line 29
860 ;>>>> len_rx--;
861 01a3 bc00! LDPK _len_rx
862 01a4 1000! LAC _len_rx
863 01a5 ba01 SUBK 1
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00 Thu Dec 8 11:06:24 2005
Copyright (c) 1987-1999 Texas Instruments Incorporated
serial.asm PAGE 18
864 01a6 9000! SACL _len_rx
865 .line 30
866 ;>>>> if(len_rx == 0)
867 01a7 1000! LAC _len_rx
868 01a8 e308 BNZ L22
01a9 01b4'
869 .line 32
870 ;>>>> status_rx = 2;
871 01aa b902 LACK 2
872 01ab bc00! LDPK _status_rx
873 01ac 9000! SACL _status_rx
874 01ad 7980 B L22
01ae 01b4'
875 01af L23:
876 .line 35
877 ;>>>> else{rec=SCIRXBUF;} //read to clear RXRDY flag
878 01af 8b8a MAR * ,AR2
879 01b0 b201 LARK AR2,1
880 01b1 8be0 MAR *0+
881 01b2 a880 BLKD #_SCIRXBUF,*
01b3 0000!
882 01b4 L22:
883 .line 36
884 ;>>>> IFR |= 0x01;
885 01b4 b901 LACK 1
886 01b5 bc00! LDPK _IFR
887 01b6 6d00! OR _IFR
888 01b7 9000! SACL _IFR
889 .line 37
890 ;>>>> break;
891 ;>>>> case 0x0001: //高优先级模式的外部引脚1中断
892 01b8 7980 B L25
01b9 02fb'
893 01ba L26:
894 .line 41
895 ;>>>> if(simSerial == 0x06)delay52us(); //取电平的中间位置
896 01ba 8b8a MAR * ,AR2
897 01bb b204 LARK AR2,4
898 01bc 8be0 MAR *0+
899 01bd 1080 LAC *
900 01be ba06 SUBK 6
901 01bf e308 BNZ L27
01c0 01c5'
902 01c1 7a89 CALL _delay52us,AR1
01c2 0000!
903 01c3 7980 B L28
01c4 01d7'
904 01c5 L27:
905 .line 42
906 ;>>>> else if(simSerial == 0x07)delay26us();
907 01c5 1080 LAC *
908 01c6 ba07 SUBK 7
909 01c7 e308 BNZ L29
01c8 01cd'
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00 Thu Dec 8 11:06:24 2005
Copyright (c) 1987-1999 Texas Instruments Incorporated
serial.asm PAGE 19
910 01c9 7a89 CALL _delay26us,AR1
01ca 0000!
911 01cb 7980 B L28
01cc 01d7'
912 01cd L29:
913 .line 43
914 ;>>>> else if(simSerial == 0x08)delay17us();
915 01cd 1080 LAC *
916 01ce ba08 SUBK 8
917 01cf e308 BNZ L30
01d0 01d5'
918 01d1 7a89 CALL _delay17us,AR1
01d2 0000!
919 01d3 7980 B L28
01d4 01d7'
920 01d5 L30:
921 .line 44
922 ;>>>> else delay26us();
923 01d5 7a89 CALL _delay26us,AR1
01d6 0000!
924 01d7 L28:
925 .line 46
926 ;>>>> for(i=0;i<8;i++)//读取一个字节
927 01d7 b900 LACK 0
928 01d8 8b8a MAR * ,AR2
929 01d9 b203 LARK AR2,3
930 01da 8be0 MAR *0+
931 01db 9080 SACL *
932 01dc 6980 ZALS *
933 01dd ba08 SUBK 8
934 01de e38c BGEZ L32
01df 02a6'
935 01e0 8ba0 MAR *+
936 01e1 L31:
937 .line 48
938 ;>>>> if(simSerial == 0x06)delay104us(); //位与位之间宽度
939 01e1 1080 LAC *
940 01e2 ba06 SUBK 6
941 01e3 e308 BNZ L33
01e4 01e9'
942 01e5 7a89 CALL _delay104us,AR1
01e6 0000!
943 01e7 7980 B L37
01e8 028d'
944 01e9 L33:
945 .line 49
946 ;>>>> else if(simSerial == 0x07)delay52us();
947 01e9 1080 LAC *
948 01ea ba07 SUBK 7
949 01eb e308 BNZ L35
01ec 01f1'
950 01ed 7a89 CALL _delay52us,AR1
01ee 0000!
951 01ef 7980 B L37
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00 Thu Dec 8 11:06:24 2005
Copyright (c) 1987-1999 Texas Instruments Incorporated
serial.asm PAGE 20
01f0 028d'
952 01f1 L35:
953 .line 50
954 ;>>>> else if(simSerial == 0x08)delay34us();
955 01f1 1080 LAC *
956 01f2 ba08 SUBK 8
957 01f3 e308 BNZ L36
01f4 01f9'
958 01f5 7a89 CALL _delay34us,AR1
01f6 0000!
959 01f7 7980 B L37
01f8 028d'
960 01f9 L36:
961 .line 51
962 ;>>>> else delay52us();
963 ;>>>> switch(i)
964 01f9 7a89 CALL _delay52us,AR1
01fa 0000!
965 01fb 7980 B L37
01fc 028d'
966 01fd L38:
967 .line 54
968 ;>>>> case 0:{if( (PCDATDIR&0x10) == 0x10 )rec |= 0x01;break;}
969 01fd b910 LACK 16
970 01fe bc00! LDPK _PCDATDIR
971 01ff 6e00! AND _PCDATDIR
972 0200 8b89 MAR * ,AR1
973 0201 9080 SACL *
974 0202 be47 SSXM
975 0203 1080 LAC *
976 0204 ba10 SUBK 16
977 0205 e308 BNZ L40
0206 029c'
978 0207 b901 LACK 1
979 0208 8b8a MAR * ,AR2
980 0209 b201 LARK AR2,1
981 020a 8be0 MAR *0+
982 020b 6d80 OR *
983 020c 9080 SACL *
984 020d 7980 B L40
020e 029c'
985 020f L41:
986 .line 55
987 ;>>>> case 1:{if( (PCDATDIR&0x10) == 0x10 )rec |= 0x02;break;}
988 020f b910 LACK 16
989 0210 bc00! LDPK _PCDATDIR
990 0211 6e00! AND _PCDATDIR
991 0212 8b89 MAR * ,AR1
992 0213 9080 SACL *
993 0214 be47 SSXM
994 0215 1080 LAC *
995 0216 ba10 SUBK 16
996 0217 e308 BNZ L40
0218 029c'
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00 Thu Dec 8 11:06:24 2005
Copyright (c) 1987-1999 Texas Instruments Incorporated
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?