📄 sci.asm
字号:
*******************************************************
* TMS320C24xx ANSI C Codegen Version 7.04
*******************************************************
; dspac -v2xx -iD:/CCStudio_v3.1/c2400/cgtools/include sci.c C:\DOCUME~1\ADMINI~1.GUO\LOCALS~1\Temp\sci.if
; dspopt NOT RUN
; dspcg -o -v2xx -o C:\DOCUME~1\ADMINI~1.GUO\LOCALS~1\Temp\sci.if C:\DOCUME~1\ADMINI~1.GUO\LOCALS~1\Temp\sci.asm C:\DOCUME~1\ADMINI~1.GUO\LOCALS~1\Temp\sci.tmp
.port
.bss _uiRecNum,1,1
.bss _cParaNo,1
.bss _SciRecData,10
.bss _Len_RecChar,1
.bss _uldata_fh,1
.file "sci.c"
.file "f2407_c.h"
.globl _portFF0F
.globl _portFFFF
.file "D:/CCStudio_v3.1/c2400/cgtools/include\stdio.h"
.sym _size_t,0,14,13,16
.stag .fake0,112
.member _fd,0,4,8,16
.member _buf,16,28,8,16
.member _pos,32,28,8,16
.member _bufend,48,28,8,16
.member _buff_stop,64,28,8,16
.member _flags,80,14,8,16
.member _index,96,4,8,16
.eos
.sym _FILE,0,8,13,112,.fake0
.sym _fpos_t,0,5,13,32
.stag .fake1,272
.member _name,0,50,8,144,,9
.member _flags,144,13,8,16
.member _OPEN,160,148,8,16
.member _CLOSE,176,148,8,16
.member _READ,192,148,8,16
.member _WRITE,208,148,8,16
.member _LSEEK,224,149,8,16
.member _UNLINK,240,148,8,16
.member _RENAME,256,148,8,16
.eos
.sym __DEVICE,0,8,13,272,.fake1
.globl __ftable
.globl __tmpnams
.globl _remove
.globl _rename
.globl _tmpfile
.globl _tmpnam
.globl _fclose
.globl _fopen
.globl _freopen
.globl _setbuf
.globl _setvbuf
.globl _fflush
.globl _fprintf
.globl _fscanf
.globl _printf
.globl _scanf
.globl _sprintf
.globl _sscanf
.globl _vfprintf
.globl _vprintf
.globl _vsprintf
.globl _fgetc
.globl _fgets
.globl _fputc
.globl _fputs
.globl _getc
.globl _getchar
.globl _gets
.globl _putc
.globl _putchar
.globl _puts
.globl _ungetc
.globl _fread
.globl _fwrite
.globl _fgetpos
.globl _fseek
.globl _fsetpos
.globl _ftell
.globl _rewind
.globl _clearerr
.globl _feof
.globl _ferror
.globl _perror
.globl _getenv
.globl _add_device
.file "D:/CCStudio_v3.1/c2400/cgtools/include\string.h"
.globl _memchr
.globl _memcmp
.globl _memcpy
.globl _memmove
.globl _memset
.globl _strcat
.globl _strchr
.globl _strcmp
.globl _strcoll
.globl _strcpy
.globl _strcspn
.globl _strerror
.globl _strlen
.globl _strncat
.globl _strncmp
.globl _strncpy
.globl _strpbrk
.globl _strrchr
.globl _strspn
.globl _strstr
.globl _strtok
.globl _strxfrm
.file "sci.h"
.sym _uchar,0,12,13,16
.sym _uint,0,14,13,16
.sym _ulong,0,15,13,32
.globl _test_sci
.globl _UartRec
.globl _sci_init
.file "sci.c"
.globl _SciRecBuf
.globl _SciRecData
.globl _read_flag
.globl _Encode_counter
.globl _Maxest_counter
.globl _ucSq
.globl _pc_qubai
.globl _pc_tuixiao
.globl _pc_impact
.globl _pc_fangbai
.globl _ReadArr
.globl _uldata_fh
.globl _cParaNo
.globl _uipreangle
.globl _ltoascii
.globl _ltofascii
.globl _Len_RecChar
.globl _uiRecNum
.text
.sym _sci_init,_sci_init,32,2,0
.globl _sci_init
.func 27
;>>>> void sci_init(void)
******************************************************
* FUNCTION DEF : _sci_init
******************************************************
_sci_init:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,1
LAR AR0,*0+
.line 3
;>>>> disable_int();
CALL _disable_int
.line 4
;>>>> *SCSR1=*SCSR1|0x0040; //enable SCI clock//
LARK AR3,28696
LACK 64
MAR * ,AR3
OR *
SACL *
.line 5
;>>>> *MCRA=*MCRA|0x0003; //enable TXD and RXD//
LACK 3
ADRK 120
OR *
SACL *
.line 6
;>>>> *SCICCR=0x07; //1 stop bit ,no even(odd)check,8bitdata;
LACK 7
SBRK 64
SACL *+
.line 7
;>>>> *SCICTL1=0x0013; //no RX ERR,SCI SRESET,no TXWAKE,no sleep,enable TX & RX;
LACK 19
SACL *
.line 8
;>>>> *SCICTL2=0x0002; //enable RX int,disable TX int;03:enable TX & RX int;
LACK 2
ADRK 3
SACL *
.line 9
;>>>> *SCIHBAUD=(BAUD_9600_40M/0x100); //BAUD : 9600bps;
SBRK 2
SACL *+
.line 10
;>>>> *SCILBAUD=(BAUD_9600_40M%0x100);
LACK 8
SACL *
.line 11
;>>>> *SCIPRI = 0x00; //SCI为高优先级中断
LACK 0
ADRK 12
SACL *
.line 12
;>>>> *SCICTL1=0x0033; //使SCI脱离复位状态;
LACK 51
SBRK 14
SACL *
.line 13
;>>>> *PADATDIR=*PADATDIR|0x0003;
LACK 3
ADRK 71
OR *
SACL * ,AR4
.line 14
;>>>> *IMR = *IMR|0x01;
LARK AR4,4
LACK 1
OR *
SACL * ,AR1
.line 15
;>>>> enable_int();
CALL _enable_int
EPI0_1:
.line 16
SBRK 2
LAR AR0,*-
PSHD *
RET
.endfunc 42,000000000H,1
.sym _send_char_com,_send_char_com,32,2,0
.globl _send_char_com
.func 46
;>>>> void send_char_com( unsigned char ch)
******************************************************
* FUNCTION DEF : _send_char_com
******************************************************
_send_char_com:
LF2 .set 0
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,1
LAR AR0,*0+,AR3
.sym _ch,-3+LF2,12,9,16
.line 2
.line 4
;>>>> while ((*SCICTL2 & 0x0080) == 0x0000)
LARK AR3,28756
BIT * ,8
BBNZ L2
MAR * ,AR1
L1:
.line 6
;>>>> delay(0x01);
;>>>> } ;
LACK 1
SACL *+
CALL _delay
MAR *-,AR3
.line 4
LARK AR3,28756
BIT * ,8,AR1
BBZ L1
L2:
.line 8
;>>>> *SCITXBUF = ch;
MAR * ,AR2
LARK AR2,-3+LF2
MAR *0+
LAC * ,AR3
ADRK 5
SACL *
.line 9
;>>>> while ((*SCICTL2 & 0x0040) == 0x0000)
SBRK 5
BIT * ,9
BBNZ L4
MAR * ,AR1
L3:
.line 11
;>>>> delay(0x1);
;>>>> } ;
;>>>> // delay(0xff);
LACK 1
SACL *+
CALL _delay
MAR *-,AR3
.line 9
LARK AR3,28756
BIT * ,9,AR1
BBZ L3
L4:
EPI0_2:
.line 16
MAR * ,AR1
SBRK 2
LAR AR0,*-
PSHD *
RET
.endfunc 61,000000000H,1
.sym _send_string_com,_send_string_com,32,2,0
.globl _send_string_com
.func 67
;>>>> void send_string_com(char *str, unsigned int strlen)
******************************************************
* FUNCTION DEF : _send_string_com
******************************************************
_send_string_com:
LF3 .set 0
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,2
LAR AR0,*0+,AR2
.sym _str,-3+LF3,18,9,16
.sym _strlen,-4+LF3,14,9,16
.sym _k,1,14,1,16
.line 2
;>>>> unsigned int k ;
.line 4
;>>>> k=0;
;>>>> do
LACK 0
LARK AR2,1
MAR *0+
SACL *
L5:
.line 7
;>>>> send_char_com(*(str + k));
LAC *
SBRK 4-LF3
ADD * ,AR0
SACL *
LAR AR3,* ,AR3
LAC * ,AR1
SACL *+
CALL _send_char_com
MAR *-,AR2
.line 8
;>>>> k++;
LARK AR2,1
MAR *0+
LAC *
ADDK 1
SACL *
.line 10
;>>>> while (k < strlen);
ZALS *
SBRK 5-LF3
SUBS *
ADRK 5-LF3
BLZ L5
EPI0_3:
.line 12
MAR * ,AR1
SBRK 3
LAR AR0,*-
PSHD *
RET
.endfunc 78,000000000H,2
.sym _send_num_com,_send_num_com,46,2,0
.globl _send_num_com
.func 84
;>>>> unsigned int send_num_com(unsigned long ul_x,unsigned int n_bit)
******************************************************
* FUNCTION DEF : _send_num_com
******************************************************
_send_num_com:
LF4 .set 0
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,22
LAR AR0,*0+,AR2
.sym _ul_x,-4+LF4,15,9,32
.sym _n_bit,-5+LF4,14,9,16
.sym _asi_num,1,60,1,320,,20
.sym _i,21,4,1,16
.line 2
;>>>> unsigned char asi_num[20];
;>>>> int i;
.line 6
;>>>> for (i = 0; i<n_bit ; i++)
LACK 0
LARK AR2,21
MAR *0+
SACL *
ZALS *
SBRK 26-LF4
SUBS *
BGEZ L7
MAR *+,AR1
L6:
.line 8
;>>>> asi_num[i]= (unsigned char)(ul_x%10 + 0x30);
LACK 10
SACL *+
SACH *+,AR2
ZALS *+
ADDH * ,AR1
CALL L$$MODU
ADDK 48
SACL *+,AR2
ADRK 24-LF4
LAR AR3,* ,AR3
MAR *0+,AR1
MAR *-
LAC * ,AR3
MAR *+
SACL * ,AR1
.line 9
;>>>> ul_x = ul_x/10;
LACK 10
SACL *+
SACH *+,AR2
SBRK 25-LF4
ZALS *+
ADDH *-,AR1
CALL L$$DIVU
MAR * ,AR2
SACL *+
SACH *
.line 6
ADRK 24-LF4
LAC *
ADDK 1
SACL *
ZALS *
SBRK 26-LF4
SUBS *+,AR1
BLZ L6
L7:
.line 11
;>>>> i = 0;
;>>>> // if(uldata_fh == 0x2d)
;>>>> // {
;>>>> // send_char_com(0x2d);
;>>>> // i = 1;
;>>>> // }
LACK 0
MAR * ,AR2
LARK AR2,21
MAR *0+
SACL *
.line 17
;>>>> for( ; i<n_bit ;i++ )
ZALS *
SBRK 26-LF4
SUBS *
BGEZ L9
L8:
.line 19
;>>>> send_char_com(asi_num[n_bit-1-i]);
LAC * ,AR0
SUBK 1
SAR AR0,*
ADDS * ,AR2
ADDK 1
ADRK 26-LF4
SUB * ,AR0
SACL *
LAR AR3,* ,AR3
LAC * ,AR1
SACL *+
CALL _send_char_com
MAR *-,AR2
.line 17
LARK AR2,21
MAR *0+
LAC *
ADDK 1
SACL *
ZALS *
SBRK 26-LF4
SUBS *
BLZ L8
L9:
.line 22
;>>>> return(0);
LACK 0
EPI0_4:
.line 23
MAR * ,AR1
SBRK 23
LAR AR0,*-
PSHD *
RET
.endfunc 106,000000000H,22
.sym _test_sci,_test_sci,46,2,0
.globl _test_sci
.func 110
;>>>> unsigned int test_sci(void)
;>>>> unsigned int data_to_send,data_received;
******************************************************
* FUNCTION DEF : _test_sci
******************************************************
_test_sci:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,3
LAR AR0,*0+
.sym _data_to_send,1,14,1,16
.sym _data_received,2,14,1,16
.line 5
;>>>> if(read_flag == 1)
;>>>> // *PBDATDIR = *PBDATDIR | 0xffff;
LDPK _read_flag
LAC _read_flag
SUBK 1
BNZ L10
.line 9
;>>>> DIE_H;
LARK AR3,28826
LACK 1028
MAR * ,AR3
OR *
SACL * ,AR1
.line 11
;>>>> delay(0x10);
LACK 16
SACL *+
CALL _delay
MAR *-
.line 12
;>>>> send_num_com(Encode_counter,6);
LACK 6
SACL *+
LDPK _Encode_counter
ZALS _Encode_counter
ADDH _Encode_counter+1
SACL *+
SACH *+
CALL _send_num_com
SBRK 3
.line 13
;>>>> send_string_com(SciRecBuf,Len_RecChar);
BLKD _Len_RecChar+0,*+
LALK _SciRecBuf+0
SACL *+
CALL _send_string_com
SBRK 2
.line 15
;>>>> while ((*SCICTL2&0x0040) == 0x0000)
LARK AR3,28756
MAR * ,AR3
BIT * ,9
BBNZ L12
MAR * ,AR1
L11:
.line 16
;>>>> {delay(0x01);
;>>>> } ;
LACK 1
SACL *+
CALL _delay
MAR *-,AR3
.line 15
LARK AR3,28756
BIT * ,9,AR1
BBZ L11
L12:
.line 18
;>>>> delay(0xff);
;>>>> //*PBDATDIR=*PBDATDIR & 0xfffb;
MAR * ,AR1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -