📄 baset.asm
字号:
;----------------------------------------------------------------------
ldp @CL2,DP
ldiu @CL2,r0 ; |151|
callu r0 ; far call to _Delay1us ; |151|
; |151| Far Call Occurs
.line 34
;----------------------------------------------------------------------
; 152 | Delay1us();
;----------------------------------------------------------------------
ldp @CL2,DP
ldiu @CL2,r0 ; |152|
callu r0 ; far call to _Delay1us ; |152|
; |152| Far Call Occurs
.line 36
;----------------------------------------------------------------------
; 154 | DS1302WriteByte(0x8e); //置DS1302写保护WP位
;----------------------------------------------------------------------
ldp @CL3,DP
ldiu 142,r1 ; |154|
ldiu @CL3,r0 ; |154|
push r1 ; |154|
callu r0 ; far call to _DS1302WriteByte ; |154|
; |154| Far Call Occurs
subi 1,sp ; |154|
.line 37
;----------------------------------------------------------------------
; 155 | DS1302WriteByte(0x80);
;----------------------------------------------------------------------
ldp @CL3,DP
ldiu 128,r1 ; |155|
ldiu @CL3,r0 ; |155|
push r1 ; |155|
callu r0 ; far call to _DS1302WriteByte ; |155|
; |155| Far Call Occurs
subi 1,sp ; |155|
.line 39
;----------------------------------------------------------------------
; 157 | *pSerialPort0XCTRL = 0x222; //DSP口线设置为输出方式,值为0
;----------------------------------------------------------------------
ldiu 546,r0 ; |157|
sti r0,*ar1 ; |157|
.line 41
;----------------------------------------------------------------------
; 159 | uDS1302_use = 0;
;----------------------------------------------------------------------
ldp @CL5,DP
ldiu @CL5,ar0 ; |159|
ldiu 0,r0 ; |159|
sti r0,*ar0 ; |159|
.line 42
; Begin Epilog Code
ldiu *-fp(1),r1
ldiu *fp,fp
; Unallocate the Frame
subi 2,sp
bu r1
;* Branch Occurs to r1
.endfunc 160,000000000h,0
.sect ".text"
.global _Time_Initialize
.sym _Time_Initialize,_Time_Initialize,32,2,0
.func 165
;******************************************************************************
;* FUNCTION NAME: _Time_Initialize *
;* *
;* Architecture : TMS320C32 *
;* Calling Convention : Stack Parameter Convention *
;* Function Uses Regs : r0,r1,r2,fp,ar4,ar5,sp,st *
;* Regs Saved : ar4,ar5 *
;* Stack Frame : Full (w/ debug) *
;* Total Frame Size : 2 Call + 0 Parm + 0 Auto + 2 SOE = 4 words *
;******************************************************************************
_Time_Initialize:
;* ar4 assigned to _p
.sym _p,12,24,4,32,.fake2
;* ar5 assigned to _pp
.sym _pp,13,30,4,32
;* r0 assigned to _i
.sym _i,0,14,4,32
.line 1
;----------------------------------------------------------------------
; 165 | VOID Time_Initialize(VOID)
;----------------------------------------------------------------------
push fp
ldiu sp,fp
push ar4
push ar5
.line 3
;----------------------------------------------------------------------
; 167 | register Clock *p = &DS1302Time;
;----------------------------------------------------------------------
ldp @CL6,DP
ldiu @CL6,ar4 ; |167|
.line 4
;----------------------------------------------------------------------
; 168 | register UNSIGNED *pp = SoftCLK;
; 169 | register UNSIGNED i;
;----------------------------------------------------------------------
ldp @CL7,DP
ldiu @CL7,ar5 ; |168|
.line 7
;----------------------------------------------------------------------
; 171 | DS1302BurstRead(0xbf, (UNSIGNED *)p, sizeof(Clock)); //读时间
;----------------------------------------------------------------------
ldiu 8,r0 ; |171|
ldiu 191,r1 ; |171|
push r0 ; |171|
ldp @CL8,DP
push ar4 ; |171|
ldiu @CL8,r0 ; |171|
push r1 ; |171|
callu r0 ; far call to _DS1302BurstRead ; |171|
; |171| Far Call Occurs
subi 3,sp ; |171|
.line 9
;----------------------------------------------------------------------
; 173 | if((p->sec & 0x80) || (p->hour & 0x80))
;----------------------------------------------------------------------
ldiu 128,r0 ; |173|
tstb3 *ar4,r0 ; |173|
bne L33 ; |173|
;* Branch Occurs to L33 ; |173|
tstb *+ar4(2),r0 ; |173|
beq L34 ; |173|
;* Branch Occurs to L34 ; |173|
L33:
.line 11
;----------------------------------------------------------------------
; 175 | p->sec &= 0x7f;
;----------------------------------------------------------------------
ldiu 127,r0 ; |175|
and3 r0,*ar4,r0 ; |175|
sti r0,*ar4 ; |175|
.line 12
;----------------------------------------------------------------------
; 176 | p->hour &= 0x7f;
;----------------------------------------------------------------------
ldiu 127,r0 ; |176|
and *+ar4(2),r0 ; |176|
sti r0,*+ar4(2) ; |176|
.line 13
;----------------------------------------------------------------------
; 177 | DS1302BurstWrite(0xbe, (UNSIGNED *)p, sizeof(Clock));
; 180 | //将时分秒合成一字节,用毫秒数表示
;----------------------------------------------------------------------
ldp @CL9,DP
ldiu 8,r2 ; |177|
ldiu @CL9,r1 ; |177|
push r2 ; |177|
ldiu 190,r0 ; |177|
push ar4 ; |177|
push r0 ; |177|
callu r1 ; far call to _DS1302BurstWrite ; |177|
; |177| Far Call Occurs
subi 3,sp ; |177|
L34:
.line 17
;----------------------------------------------------------------------
; 181 | *pp++ = (p->year >> 4) * 10 + (p->year & 0x0f);
;----------------------------------------------------------------------
ldiu *+ar4(6),r0 ; |181|
ldiu 15,r1 ; |181|
lsh -4,r0 ; |181|
and *+ar4(6),r1 ; |181|
mpyi 10,r0 ; |181|
addi3 r1,r0,r0 ; |181| Unsigned
sti r0,*ar5++(1) ; |181|
.line 18
;----------------------------------------------------------------------
; 182 | *pp++ = (p->month >> 4)* 10 + (p->month & 0x0f);
;----------------------------------------------------------------------
ldiu 15,r1 ; |182|
ldiu *+ar4(4),r0 ; |182|
and *+ar4(4),r1 ; |182|
lsh -4,r0 ; |182|
mpyi 10,r0 ; |182|
addi3 r1,r0,r0 ; |182| Unsigned
sti r0,*ar5++(1) ; |182|
.line 19
;----------------------------------------------------------------------
; 183 | *pp++ = (p->date >> 4) * 10 + (p->date & 0x0f);
;----------------------------------------------------------------------
ldiu 15,r1 ; |183|
ldiu *+ar4(3),r0 ; |183|
lsh -4,r0 ; |183|
mpyi 10,r0 ; |183|
and *+ar4(3),r1 ; |183|
addi3 r1,r0,r0 ; |183| Unsigned
sti r0,*ar5++(1) ; |183|
.line 20
;----------------------------------------------------------------------
; 184 | *pp++ = (p->hour >> 4) * 10 + (p->hour & 0x0f);
;----------------------------------------------------------------------
ldiu 15,r1 ; |184|
and *+ar4(2),r1 ; |184|
ldiu *+ar4(2),r0 ; |184|
lsh -4,r0 ; |184|
mpyi 10,r0 ; |184|
addi3 r1,r0,r0 ; |184| Unsigned
sti r0,*ar5++(1) ; |184|
.line 21
;----------------------------------------------------------------------
; 185 | *pp++ = (p->min >> 4) * 10 + (p->min & 0x0f);
;----------------------------------------------------------------------
ldiu -4,r0 ; |185|
ldiu 15,r1 ; |185|
lsh3 r0,*+ar4,r0 ; |185|
mpyi 10,r0 ; |185|
and *+ar4(1),r1 ; |185|
addi3 r1,r0,r0 ; |185| Unsigned
sti r0,*ar5++(1) ; |185|
.line 22
;----------------------------------------------------------------------
; 186 | *pp++ = 1000 * ((p->sec >> 4) * 10 + (p->sec & 0x0f));
;----------------------------------------------------------------------
ldiu -4,r0 ; |186|
ldiu 15,r1 ; |186|
lsh3 r0,*ar4,r0 ; |186|
mpyi 10,r0 ; |186|
and3 r1,*ar4,r1 ; |186|
addi3 r1,r0,r0 ; |186| Unsigned
mpyi 1000,r0 ; |186|
sti r0,*ar5++(1) ; |186|
.line 24
; Begin Epilog Code
ldiu *-fp(1),r1
ldiu *fp,fp
; Restore SOE Registers
pop ar5
pop ar4
; Unallocate the Frame
subi 2,sp
bu r1
;* Branch Occurs to r1
.endfunc 188,000003000h,0
.sect ".text"
.global _READ_DEC_TIME
.sym _READ_DEC_TIME,_READ_DEC_TIME,32,2,0
.func 193
;******************************************************************************
;* FUNCTION NAME: _READ_DEC_TIME *
;* *
;* Architecture : TMS320C32 *
;* Calling Convention : Stack Parameter Convention *
;* Function Uses Regs : r0,r1,r2,ar0,ar1,ar2,st *
;* Regs Saved : *
;* Stack Frame : Full (w/ debug) *
;* Total Frame Size : 2 Call + 1 Parm + 0 Auto + 0 SOE = 3 words *
;******************************************************************************
_READ_DEC_TIME:
.sym _pDST,-2,30,9,32
;* r0 assigned to _i
.sym _i,0,14,4,32
;* r2 assigned to _j
.sym _j,2,14,4,32
;* ar1 assigned to _p
.sym _p,9,30,4,32
;* ar0 assigned to _pp
.sym _pp,8,30,4,32
.line 1
;----------------------------------------------------------------------
; 193 | VOID READ_DEC_TIME(UNSIGNED *pDST)
;----------------------------------------------------------------------
push fp
ldiu sp,fp
.line 2
;----------------------------------------------------------------------
; 195 | register UNSIGNED i,j;
; 196 | register UNSIGNED *p;
; 197 | register UNSIGNED *pp;
; 199 | do
;----------------------------------------------------------------------
L38:
.line 9
;----------------------------------------------------------------------
; 201 | p = pDST;
;----------------------------------------------------------------------
ldiu *-fp(2),ar1 ; |201|
.line 10
;----------------------------------------------------------------------
; 202 | pp = SoftCLK;
;----------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -