📄 mod_response.asm
字号:
*******************************************************
* TMS320C2x/C2xx/C5x ANSI C Codegen Version 7.00
*******************************************************
; C:\tic2xx\c2000\cgtools\bin\dspac.exe -v2xx mod_response.c C:\DOCUME~1\jjd\LOCALS~1\Temp\mod_response.if
; dspopt NOT RUN
; C:\tic2xx\c2000\cgtools\bin\dspcg.exe -o -v2xx -o C:\DOCUME~1\jjd\LOCALS~1\Temp\mod_response.if C:\DOCUME~1\jjd\LOCALS~1\Temp\mod_response.asm C:\DOCUME~1\jjd\LOCALS~1\Temp\mod_response.tmp
.port
.bss _i3,1,1
.bss _i6,1
.bss _i1,1
.bss _i5,1
.bss _i$1,1
.bss _res_buf,20
.bss _res_data,103
.file "mod_response.c"
.file "f2407_c.h"
.globl _portFF0F
.globl _portFFFF
.file "mod_response.c"
.stag _datatype,1648
.member _data_add_h,0,14,8,16
.member _data_add_l,16,14,8,16
.member _data_buf,32,62,8,1600,,100
.member _data_byte_num,1632,14,8,16
.eos
.globl _res_data
.globl _disable
.globl _enable
.globl _mod_fun
.globl _lcddata
.globl _start_addr_h
.globl _start_addr_l
.globl _n_data_h
.globl _n_data_l
.globl _res_buf
.sect ".cinit"
.word 1,_i3
.word 0
.sym _i3,_i3,14,2,16
.globl _i3
.word 1,_i6
.word 0
.sym _i6,_i6,14,2,16
.globl _i6
.word 1,_i1
.word 0
.sym _i1,_i1,14,2,16
.globl _i1
.word 1,_i5
.word 0
.sym _i5,_i5,14,2,16
.globl _i5
.text
.sym _reset_response,_reset_response,32,2,0
.globl _reset_response
.func 20
;>>>> void reset_response(void)
;>>>> unsigned int i;
******************************************************
* FUNCTION DEF : _reset_response
******************************************************
_reset_response:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,2
LAR AR0,*0+,AR2
.sym _i,1,14,1,16
.line 4
;>>>> for(i=0;i<20;i++)res_buf[i]=0;
LACK 0
LARK AR2,1
MAR *0+
SACL *
ZALS *
SUBK 20
BGEZ L2
L1:
LAC * ,AR0
ADLK _res_buf+0,0
SACL *
LAR AR3,* ,AR3
LACK 0
SACL * ,AR2
LAC *
ADDK 1
SACL *
ZALS *
SUBK 20
BLZ L1
L2:
.line 5
;>>>> mod_fun=0;
LACK 0
LDPK _mod_fun
SACL _mod_fun
EPI0_1:
.line 6
MAR * ,AR1
SBRK 3
LAR AR0,*-
PSHD *
RET
.endfunc 25,000000000H,2
.sym _uart_send,_uart_send,32,2,0
.globl _uart_send
.func 27
;>>>> void uart_send(void)
;>>>> static int i=0;
;>>>> switch(mod_fun)
;>>>> case 3:
******************************************************
* FUNCTION DEF : _uart_send
******************************************************
_uart_send:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,1
LAR AR0,*0+
.sect ".cinit"
.word 1,_i$1
.word 0
.text
.sym _i,_i$1,4,3,16
B L3
L4:
.line 8
;>>>> if(i>=i3){i=0;reset_response();return;}
LDPK _i$1
ZALS _i$1
SUBS _i3
BLZ L6
LACK 0
SACL _i$1
CALL _reset_response,AR1
B EPI0_2
.line 9
;>>>> break;
;>>>> case 6:
L7:
.line 13
;>>>> if(i>=i6){i=0;reset_response();return;}
LDPK _i$1
ZALS _i$1
SUBS _i6
BLZ L6
LACK 0
SACL _i$1
CALL _reset_response,AR1
B EPI0_2
.line 14
;>>>> break;
;>>>> case 5:
L9:
.line 18
;>>>> if(i>=i5){i=0;reset_response();return;}
LDPK _i$1
ZALS _i$1
SUBS _i5
BLZ L6
LACK 0
SACL _i$1
CALL _reset_response,AR1
B EPI0_2
.line 19
;>>>> break;
;>>>> case 1:
L11:
.line 23
;>>>> if(i>=i1){i=0;reset_response();return;}
LDPK _i$1
ZALS _i$1
SUBS _i1
BLZ L6
LACK 0
SACL _i$1
CALL _reset_response,AR1
B EPI0_2
.line 24
;>>>> break;
.line 26
;>>>> default:return;
L3:
.line 4
LDPK _mod_fun
ZALS _mod_fun
SUBK 1
BZ L11
SUBK 2
BZ L4
SUBK 2
BZ L9
SUBK 1
BZ L7
B EPI0_2
L6:
.line 28
;>>>> *SCITXBUF=res_buf[i++];
LAC _i$1
ADDK 1
SACL _i$1
SUBK 1
ADLK _res_buf+0,0
MAR * ,AR0
SACL *
LAR AR3,* ,AR3
LARK AR4,28761
LAC * ,AR4
SACL * ,AR3
.line 29
;>>>> *IFR=0x0010;
LARK AR3,6
LACK 16
SACL * ,AR1
.line 30
;>>>> enable();
CALL _enable
EPI0_2:
.line 31
MAR * ,AR1
SBRK 2
LAR AR0,*-
PSHD *
RET
.endfunc 57,000000000H,1
.sym _mod_res,_mod_res,32,2,0
.globl _mod_res
.func 64
;>>>> void mod_res(void)
;>>>> unsigned int i,crc_temp,j;
******************************************************
* FUNCTION DEF : _mod_res
******************************************************
_mod_res:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,4
LAR AR0,*0+
.sym _i,1,14,1,16
.sym _crc_temp,2,14,1,16
.sym _j,3,14,1,16
.line 4
;>>>> delay(1000);
LACK 1000
SACL *+
CALL _delay
MAR *-
.line 5
;>>>> rs485_send_rd();
;>>>> switch(mod_fun)
;>>>> case 3: /*response to Read Holding Registers*/
CALL _rs485_send_rd
B L14
L15:
.line 10
;>>>> res_buf[0]=0x01;
LACK 1
LDPK _res_buf
SACL _res_buf
.line 11
;>>>> res_buf[1]=0x03;
LACK 3
SACL _res_buf+1
.line 12
;>>>> res_buf[2]=res_data.data_byte_num;
BLKD #_res_data+102,_res_buf+2
.line 13
;>>>> for(i=0;i<res_data.data_byte_num;i++)
LACK 0
MAR * ,AR2
LARK AR2,1
MAR *0+
SACL *
ZALS *
SUBS _res_data+102
BGEZ L17
L16:
.line 14
;>>>> res_buf[3+i]=res_data.data_buf[i];
LAC * ,AR0
ADLK _res_data+2,0
SACL *
LAR AR3,* ,AR2
LAC * ,AR0
ADLK _res_buf+3,0
SACL *
LAR AR4,* ,AR3
LAC * ,AR4
SACL * ,AR2
.line 13
LAC *
ADDK 1
SACL *
ZALS *
LDPK _res_data+102
SUBS _res_data+102
BLZ L16
L17:
.line 15
;>>>> crc_temp=CRC16(res_buf,3+i);
LAC * ,AR1
ADDK 3
SACL *+
LALK _res_buf+0
SACL *+
CALL _CRC16
SBRK 2
MAR * ,AR2
LARK AR2,2
MAR *0+
SACL *
.line 16
;>>>> res_buf[3+i]=crc_temp/0x0100;
RSXM
LAC *-,7,AR1
SACH * ,1,AR2
LAC *+,AR0
ADLK _res_buf+3,0
SACL *
LAR AR3,* ,AR1
LAC * ,AR3
SACL * ,AR2
.line 17
;>>>> res_buf[4+i]=crc_temp%0x0100;
LACK 255
AND *-,AR1
SACL * ,AR2
LAC * ,AR0
ADLK _res_buf+4,0
SACL *
LAR AR3,* ,AR1
LAC * ,AR3
SACL * ,AR2
.line 19
;>>>> i3=5+i;
LAC *
ADDK 5
LDPK _i3
SACL _i3
.line 29
;>>>> break;
;>>>> case 6:
B L18
L19:
.line 34
;>>>> res_buf[0]=0x01;
LACK 1
LDPK _res_buf
SACL _res_buf
.line 35
;>>>> res_buf[1]=0x06;
LACK 6
SACL _res_buf+1
.line 36
;>>>> res_buf[2]=res_data.data_add_h;
BLKD #_res_data,_res_buf+2
.line 37
;>>>> res_buf[3]=res_data.data_add_l;
BLKD #_res_data+1,_res_buf+3
.line 38
;>>>> res_buf[4]=res_data.data_buf[0];
BLKD #_res_data+2,_res_buf+4
.line 39
;>>>> res_buf[5]=res_data.data_buf[1];
BLKD #_res_data+3,_res_buf+5
.line 40
;>>>> crc_temp=CRC16(res_buf,6);
MAR * ,AR1
SACL *+
LALK _res_buf+0
SACL *+
CALL _CRC16
SBRK 2
MAR * ,AR2
LARK AR2,2
MAR *0+
SACL *
.line 41
;>>>> res_buf[6]=crc_temp/0x0100;
RSXM
LAC * ,7
LDPK _res_buf+6
SACH _res_buf+6,1
.line 42
;>>>> res_buf[7]=crc_temp%0x0100;
LACK 255
AND *
SACL _res_buf+7
.line 44
;>>>> i6=8;
LACK 8
SACL _i6
.line 54
;>>>> break;
;>>>> case 1:
B L18
L20:
.line 59
;>>>> res_buf[0]=0x01;
LACK 1
LDPK _res_buf
SACL _res_buf
.line 60
;>>>> res_buf[1]=0x01;
SACL _res_buf+1
.line 61
;>>>> res_buf[2]=res_data.data_byte_num;
BLKD #_res_data+102,_res_buf+2
.line 62
;>>>> for(i=0;i<res_data.data_byte_num;i++)
LACK 0
MAR * ,AR2
LARK AR2,1
MAR *0+
SACL *
ZALS *
SUBS _res_data+102
BGEZ L22
L21:
.line 63
;>>>> res_buf[3+i]=res_data.data_buf[i];
LAC * ,AR0
ADLK _res_data+2,0
SACL *
LAR AR3,* ,AR2
LAC * ,AR0
ADLK _res_buf+3,0
SACL *
LAR AR4,* ,AR3
LAC * ,AR4
SACL * ,AR2
.line 62
LAC *
ADDK 1
SACL *
ZALS *
LDPK _res_data+102
SUBS _res_data+102
BLZ L21
L22:
.line 64
;>>>> crc_temp=CRC16(res_buf,3+i);
LAC * ,AR1
ADDK 3
SACL *+
LALK _res_buf+0
SACL *+
CALL _CRC16
SBRK 2
MAR * ,AR2
LARK AR2,2
MAR *0+
SACL *
.line 65
;>>>> res_buf[3+i]=crc_temp/0x0100;
RSXM
LAC *-,7,AR1
SACH * ,1,AR2
LAC *+,AR0
ADLK _res_buf+3,0
SACL *
LAR AR3,* ,AR1
LAC * ,AR3
SACL * ,AR2
.line 66
;>>>> res_buf[4+i]=crc_temp%0x0100;
LACK 255
AND *-,AR1
SACL * ,AR2
LAC * ,AR0
ADLK _res_buf+4,0
SACL *
LAR AR3,* ,AR1
LAC * ,AR3
SACL * ,AR2
.line 68
;>>>> i1=5+i;
LAC *
ADDK 5
LDPK _i1
SACL _i1
.line 78
;>>>> break;
;>>>> case 5:
B L18
L23:
.line 83
;>>>> res_buf[0]=0x01;
LACK 1
LDPK _res_buf
SACL _res_buf
.line 84
;>>>> res_buf[1]=0x05;
LACK 5
SACL _res_buf+1
.line 85
;>>>> res_buf[2]=res_data.data_add_h;
BLKD #_res_data,_res_buf+2
.line 86
;>>>> res_buf[3]=res_data.data_add_l;
BLKD #_res_data+1,_res_buf+3
.line 87
;>>>> res_buf[4]=res_data.data_buf[0];
BLKD #_res_data+2,_res_buf+4
.line 88
;>>>> res_buf[5]=res_data.data_buf[1];
BLKD #_res_data+3,_res_buf+5
.line 89
;>>>> crc_temp=CRC16(res_buf,6);
MAR * ,AR1
LACK 6
SACL *+
LALK _res_buf+0
SACL *+
CALL _CRC16
SBRK 2
MAR * ,AR2
LARK AR2,2
MAR *0+
SACL *
.line 90
;>>>> res_buf[6]=crc_temp/0x0100;
RSXM
LAC * ,7
LDPK _res_buf+6
SACH _res_buf+6,1
.line 91
;>>>> res_buf[7]=crc_temp%0x0100;
LACK 255
AND *
SACL _res_buf+7
.line 93
;>>>> i5=8;
LACK 8
SACL _i5
.line 103
;>>>> break;
B L18
L24:
.line 106
;>>>> default:reset_response();
CALL _reset_response,AR1
B L18
L14:
.line 6
LDPK _mod_fun
ZALS _mod_fun
SUBK 1
BZ L20
SUBK 2
BZ L15
SUBK 2
BZ L23
SUBK 1
BZ L19
B L24
L18:
.line 109
;>>>> rs485_rec_rd();
CALL _rs485_rec_rd,AR1
EPI0_3:
.line 110
SBRK 5
LAR AR0,*-
PSHD *
RET
.endfunc 173,000000000H,4
.sym _transaction,_transaction,32,2,0
.globl _transaction
.func 183
;>>>> extern void transaction(void)
;>>>> unsigned int i,j,temp;
;>>>> switch(mod_fun)
;>>>> case 3:
******************************************************
* FUNCTION DEF : _transaction
******************************************************
_transaction:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,4
LAR AR0,*0+
.sym _i,1,14,1,16
.sym _j,2,14,1,16
.sym _temp,3,14,1,16
B L25
L26:
.line 9
;>>>> res_data.data_byte_num=2*(n_data_h*0x0100+n_data_l);
LDPK _n_data_l
LAC _n_data_l
LDPK _n_data_h
ADD _n_data_h,8
MAR * ,AR0
SACL *
LT * ,AR2
MPYK 2
LDPK _res_data+102
SPL _res_data+102
.line 10
;>>>> for(i=0,j=0;j<(n_data_h*0x0100+n_data_l);i+=2,j++)
LACK 0
LARK AR2,1
MAR *0+
SACL *+
SACL *
LDPK _n_data_l
ZALS _n_data_l
RSXM
LDPK _n_data_h
ADD _n_data_h,8
ANDK 0FFFFh
SUBS *
BLEZ L29
L27:
.line 12
;>>>> temp=*(start_addr_h*0x0100+start_addr_l+lcddata+j);
LDPK _start_addr_h
LAC _start_addr_h,8
ADLK _lcddata+0,0
LDPK _start_addr_l
ADD _start_addr_l
ADD *+,AR0
SACL *
LAR AR3,* ,AR3
LAC * ,AR2
SACL *
.line 13
;>>>> res_data.data_buf[i]=temp/0x0100;
LAC * ,7,AR1
SACH *+,1,AR2
SBRK 2
LAC * ,AR0
ADLK _res_data+2,0
SACL *
LAR AR3,* ,AR1
MAR *-
LAC * ,AR3
SACL * ,AR2
.line 14
;>>>> res_data.data_buf[i+1]=temp%0x0100;
LACK 255
ADRK 2
AND * ,AR1
SACL *+,AR2
SBRK 2
LAC * ,AR0
ADLK _res_data+3,0
SACL *
LAR AR3,* ,AR1
MAR *-
LAC * ,AR3
SACL * ,AR2
.line 10
LAC *
ADDK 2
SACL *+
LAC *
ADDK 1
SACL *
LDPK _n_data_l
ZALS _n_data_l
LDPK _n_data_h
ADD _n_data_h,8
ANDK 0FFFFh
SUBS *
BGZ L27
.line 16
;>>>> break;
;>>>> case 6:
B L29
L30:
.line 20
;>>>> res_data.data_add_h=start_addr_h;
LDPK _start_addr_h
BLDD _start_addr_h,#_res_data
.line 21
;>>>> res_data.data_add_l=start_addr_l;
LDPK _start_addr_l
BLDD _start_addr_l,#_res_data+1
.line 22
;>>>> *(start_addr_h*0x0100+start_addr_l+lcddata)=n_data_h*0x0100+n_data_l;
LDPK _n_data_l
LAC _n_data_l
LDPK _n_data_h
ADD _n_data_h,8
MAR * ,AR1
SACL * ,AR0
RSXM
LDPK _start_addr_h
LAC _start_addr_h,8
ADLK _lcddata+0,0
LDPK _start_addr_l
ADD _start_addr_l
SACL *
LAR AR3,* ,AR1
LAC * ,AR3
SACL *
.line 23
;>>>> res_data.data_buf[0]=n_data_h;
LDPK _n_data_h
BLDD _n_data_h,#_res_data+2
.line 24
;>>>> res_data.data_buf[1]=n_data_l;
LDPK _n_data_l
BLDD _n_data_l,#_res_data+3
.line 26
;>>>> break;
B L29
.line 28
;>>>> default:return;
L25:
.line 5
LDPK _mod_fun
ZALS _mod_fun
SUBK 3
BZ L26
SUBK 3
BZ L30
B EPI0_4
L29:
.line 30
;>>>> mod_res();
CALL _mod_res,AR1
EPI0_4:
.line 32
MAR * ,AR1
SBRK 5
LAR AR0,*-
PSHD *
RET
.endfunc 214,000000000H,4
.sym _res_buf,_res_buf,62,2,320,,20
.globl _res_buf
.sym _res_data,_res_data,8,2,1648,_datatype
.globl _res_data
*****************************************************
* UNDEFINED REFERENCES *
*****************************************************
.global _delay
.global _rs485_send_rd
.global _CRC16
.global _rs485_rec_rd
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -