📄 baset.asm
字号:
.line 11
;----------------------------------------------------------------------
; 104 | Delay1us();
;----------------------------------------------------------------------
ldp @CL2,DP
ldiu @CL2,r0 ; |104|
callu r0 ; far call to _Delay1us ; |104|
; |104| Far Call Occurs
.line 13
;----------------------------------------------------------------------
; 106 | DS1302WriteByte(SourceCode); //burst方式读DS1302
;----------------------------------------------------------------------
ldp @CL3,DP
ldiu *-fp(2),r0 ; |106|
ldiu @CL3,r1 ; |106|
push r0 ; |106|
callu r1 ; far call to _DS1302WriteByte ; |106|
; |106| Far Call Occurs
subi 1,sp ; |106|
.line 15
;----------------------------------------------------------------------
; 108 | DataInMode(); //DSP口线设置为输入方式
;----------------------------------------------------------------------
ldiu 4063,r0 ; |108|
and3 r0,*ar1,r0 ; |108|
sti r0,*ar1 ; |108|
.line 17
;----------------------------------------------------------------------
; 110 | for(i = 0; i < Length; i ++)
;----------------------------------------------------------------------
ldiu 0,rs ; |110|
cmpi *-fp(4),rs ; |110|
bhs L21 ; |110|
;* Branch Occurs to L21 ; |110|
L20:
.line 18
;----------------------------------------------------------------------
; 111 | *pDestination++ = DS1302ReadByte();
;----------------------------------------------------------------------
ldp @CL4,DP
ldiu @CL4,r0 ; |111|
callu r0 ; far call to _DS1302ReadByte ; |111|
; |111| Far Call Occurs
ldiu 1,r1 ; |111|
ldiu *-fp(3),ar0 ; |111|
addi ar0,r1 ; |111|
sti r1,*-fp(3) ; |111|
sti r0,*ar0 ; |111|
.line 17
addi 1,rs ; |110| Unsigned
cmpi *-fp(4),rs ; |110|
blo L20 ; |110|
;* Branch Occurs to L20 ; |110|
L21:
.line 20
;----------------------------------------------------------------------
; 113 | *pSerialPort0XCTRL = 0x222; //DSP口线设置为输出方式,值为0
;----------------------------------------------------------------------
ldiu 546,r0 ; |113|
sti r0,*ar1 ; |113|
.line 21
; Begin Epilog Code
ldiu *-fp(1),r1
ldiu *fp,fp
; Unallocate the Frame
subi 2,sp
bu r1
;* Branch Occurs to r1
.endfunc 114,000000000h,0
.sect ".text"
.global _DS1302BurstWrite
.sym _DS1302BurstWrite,_DS1302BurstWrite,32,2,0
.func 119
;******************************************************************************
;* FUNCTION NAME: _DS1302BurstWrite *
;* *
;* Architecture : TMS320C32 *
;* Calling Convention : Stack Parameter Convention *
;* Function Uses Regs : r0,r1,r3,ar0,ar1,ar2,fp,sp,st *
;* Regs Saved : *
;* Stack Frame : Full (w/ debug) *
;* Total Frame Size : 2 Call + 3 Parm + 0 Auto + 0 SOE = 5 words *
;******************************************************************************
_DS1302BurstWrite:
.sym _DestinationCode,-2,14,9,32
.sym _pSource,-3,30,9,32
.sym _Length,-4,14,9,32
.bss _uDS1302_use$1,1
.sym _uDS1302_use,_uDS1302_use$1,14,3,32
;* ar2 assigned to _p
.sym _p,10,30,4,32
;* r3 assigned to _i
.sym _i,3,14,4,32
;* ar1 assigned to _pSerialPort0XCTRL
.sym _pSerialPort0XCTRL,9,30,4,32
.line 1
;----------------------------------------------------------------------
; 119 | VOID DS1302BurstWrite(UNSIGNED DestinationCode, UNSIGNED *pSource, U
; | NSIGNED Length)
;----------------------------------------------------------------------
push fp
ldiu sp,fp
.line 2
;----------------------------------------------------------------------
; 121 | static UNSIGNED uDS1302_use;
;----------------------------------------------------------------------
.line 5
;----------------------------------------------------------------------
; 123 | register UNSIGNED *p = pSource, i;
;----------------------------------------------------------------------
ldiu *-fp(3),ar2 ; |123|
.line 6
;----------------------------------------------------------------------
; 124 | register UNSIGNED *pSerialPort0XCTRL = (UNSIGNED *)0x808042;
;----------------------------------------------------------------------
ldp @CL1,DP
ldiu @CL1,ar1 ; |124|
L25:
.line 8
;----------------------------------------------------------------------
; 126 | while(uDS1302_use);
;----------------------------------------------------------------------
ldp @CL5,DP
ldiu @CL5,ar0 ; |126|
ldiu *ar0,r0 ; |126|
cmpi 0,r0 ; |126|
bne L25 ; |126|
;* Branch Occurs to L25 ; |126|
.line 9
;----------------------------------------------------------------------
; 127 | uDS1302_use = 1;
;----------------------------------------------------------------------
ldp @CL5,DP
ldiu @CL5,ar0 ; |127|
ldiu 1,r0 ; |127|
sti r0,*ar0 ; |127|
.line 11
;----------------------------------------------------------------------
; 129 | *pSerialPort0XCTRL = 0x222; //DSP口线设置为输出方式,值为0
;----------------------------------------------------------------------
ldiu 546,r0 ; |129|
sti r0,*ar1 ; |129|
.line 12
;----------------------------------------------------------------------
; 130 | Delay1us();
;----------------------------------------------------------------------
ldp @CL2,DP
ldiu @CL2,r0 ; |130|
callu r0 ; far call to _Delay1us ; |130|
; |130| Far Call Occurs
.line 13
;----------------------------------------------------------------------
; 131 | SetSRST(); //RST置1,允许操作DS1302
;----------------------------------------------------------------------
ldiu 1024,r0 ; |131|
or3 r0,*ar1,r0 ; |131|
sti r0,*ar1 ; |131|
.line 14
;----------------------------------------------------------------------
; 132 | Delay1us();
;----------------------------------------------------------------------
ldp @CL2,DP
ldiu @CL2,r0 ; |132|
callu r0 ; far call to _Delay1us ; |132|
; |132| Far Call Occurs
.line 15
;----------------------------------------------------------------------
; 133 | Delay1us();
;----------------------------------------------------------------------
ldp @CL2,DP
ldiu @CL2,r0 ; |133|
callu r0 ; far call to _Delay1us ; |133|
; |133| Far Call Occurs
.line 17
;----------------------------------------------------------------------
; 135 | DS1302WriteByte(0x8e); //清DS1302写保护WP位
;----------------------------------------------------------------------
ldp @CL3,DP
ldiu 142,r0 ; |135|
ldiu @CL3,r1 ; |135|
push r0 ; |135|
callu r1 ; far call to _DS1302WriteByte ; |135|
; |135| Far Call Occurs
subi 1,sp ; |135|
.line 18
;----------------------------------------------------------------------
; 136 | DS1302WriteByte(0x0);
;----------------------------------------------------------------------
ldp @CL3,DP
ldiu 0,r1 ; |136|
ldiu @CL3,r0 ; |136|
push r1 ; |136|
callu r0 ; far call to _DS1302WriteByte ; |136|
; |136| Far Call Occurs
subi 1,sp ; |136|
.line 20
;----------------------------------------------------------------------
; 138 | *pSerialPort0XCTRL = 0x222; //DSP口线设置为输出方式,值为0
;----------------------------------------------------------------------
ldiu 546,r0 ; |138|
sti r0,*ar1 ; |138|
.line 21
;----------------------------------------------------------------------
; 139 | Delay1us();
;----------------------------------------------------------------------
ldp @CL2,DP
ldiu @CL2,r0 ; |139|
callu r0 ; far call to _Delay1us ; |139|
; |139| Far Call Occurs
.line 22
;----------------------------------------------------------------------
; 140 | SetSRST(); //RST置1,允许操作DS1302
;----------------------------------------------------------------------
ldiu 1024,r0 ; |140|
or3 r0,*ar1,r0 ; |140|
sti r0,*ar1 ; |140|
.line 23
;----------------------------------------------------------------------
; 141 | Delay1us();
;----------------------------------------------------------------------
ldp @CL2,DP
ldiu @CL2,r0 ; |141|
callu r0 ; far call to _Delay1us ; |141|
; |141| Far Call Occurs
.line 24
;----------------------------------------------------------------------
; 142 | Delay1us();
;----------------------------------------------------------------------
ldp @CL2,DP
ldiu @CL2,r0 ; |142|
callu r0 ; far call to _Delay1us ; |142|
; |142| Far Call Occurs
.line 26
;----------------------------------------------------------------------
; 144 | DS1302WriteByte(DestinationCode); //burst方式写DS1302
;----------------------------------------------------------------------
ldiu *-fp(2),r1 ; |144|
ldp @CL3,DP
push r1 ; |144|
ldiu @CL3,r0 ; |144|
callu r0 ; far call to _DS1302WriteByte ; |144|
; |144| Far Call Occurs
subi 1,sp ; |144|
.line 28
;----------------------------------------------------------------------
; 146 | for(i = 0; i < Length; i ++) DS1302WriteByte(*p++);
;----------------------------------------------------------------------
ldiu 0,r3 ; |146|
cmpi *-fp(4),r3 ; |146|
bhs L28 ; |146|
;* Branch Occurs to L28 ; |146|
L27:
ldp @CL3,DP
ldiu *ar2++(1),r0 ; |146|
ldiu @CL3,r1 ; |146|
push r0 ; |146|
callu r1 ; far call to _DS1302WriteByte ; |146|
; |146| Far Call Occurs
subi 1,sp ; |146|
addi 1,r3 ; |146| Unsigned
cmpi *-fp(4),r3 ; |146|
blo L27 ; |146|
;* Branch Occurs to L27 ; |146|
L28:
.line 30
;----------------------------------------------------------------------
; 148 | *pSerialPort0XCTRL = 0x222; //DSP口线设置为输出方式,值为0
;----------------------------------------------------------------------
ldiu 546,r0 ; |148|
sti r0,*ar1 ; |148|
.line 31
;----------------------------------------------------------------------
; 149 | Delay1us();
;----------------------------------------------------------------------
ldp @CL2,DP
ldiu @CL2,r0 ; |149|
callu r0 ; far call to _Delay1us ; |149|
; |149| Far Call Occurs
.line 32
;----------------------------------------------------------------------
; 150 | SetSRST(); //RST置1,允许操作DS1302
;----------------------------------------------------------------------
ldiu 1024,r0 ; |150|
or3 r0,*ar1,r0 ; |150|
sti r0,*ar1 ; |150|
.line 33
;----------------------------------------------------------------------
; 151 | Delay1us();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -