📄 base.asm
字号:
bhs L20 ; |140|
;* Branch Occurs to L20 ; |140|
L19:
.line 70
;----------------------------------------------------------------------
; 142 | (protect->pro_jumper)->jum_status = *pByte++ & 0xff;
;----------------------------------------------------------------------
ldiu *+ar4(74),ar1 ; |142|
and3 r1,*ar0++(1),r0 ; |142|
sti r0,*+ar1(26) ; |142|
.line 68
ldiu *ar4,ar4 ; |140|
addi 1,r4 ; |140| Unsigned
ldp @CL35,DP
ldiu @CL35,ar1 ; |140|
cmpi3 *ar1,r4 ; |140|
blo L19 ; |140|
;* Branch Occurs to L19 ; |140|
L20:
.line 73
;----------------------------------------------------------------------
; 145 | for (j = 0; j < SETTINGNUM; j++) //将全部定值区内的定值读到保护
; | 结构体
;----------------------------------------------------------------------
ldiu 0,rc ; |145|
cmpi 8,rc ; |145|
bhs L26 ; |145|
;* Branch Occurs to L26 ; |145|
L21:
.line 75
;----------------------------------------------------------------------
; 147 | pByte = uSettingEEP[j]; //指向EEP中第j区定值的指针
;----------------------------------------------------------------------
ldiu rc,ar0 ; |147|
ldp @CL36,DP
ash 8,ar0 ; |147|
addi @CL36,ar0 ; |147| Unsigned
.line 76
;----------------------------------------------------------------------
; 148 | protect = PRO_Created_Protect_List; //保护列表指针
;----------------------------------------------------------------------
ldp @CL34,DP
ldiu @CL34,ar1 ; |148|
ldiu *ar1,ar4 ; |148|
.line 77
;----------------------------------------------------------------------
; 149 | for (i = 0; i < PRO_Total_Protect; i++, protect = protect->pro_link_nex
; | t)
;----------------------------------------------------------------------
ldiu 0,r4 ; |149|
ldp @CL35,DP
ldiu @CL35,ar1 ; |149|
cmpi3 *ar1,r4 ; |149|
bhs L25 ; |149|
;* Branch Occurs to L25 ; |149|
L22:
.line 79
;----------------------------------------------------------------------
; 151 | pSets = protect->pro_setting;
;----------------------------------------------------------------------
ldiu *+ar4(72),r1 ; |151|
.line 80
;----------------------------------------------------------------------
; 152 | for (k = 0; k < protect->pro_setting_number; k++)
;----------------------------------------------------------------------
ldiu 0,r0 ; |152|
cmpi *+ar4(71),r0 ; |152|
ldiu 255,rs ; |154|
bhsd L24 ; |152|
ldiu 255,re ; |155|
ldiu 255,bk ; |156|
ldiu 255,r3 ; |157|
;* Branch Occurs to L24 ; |152|
L23:
.line 82
;----------------------------------------------------------------------
; 154 | l = *pByte++ & 0xff;
;----------------------------------------------------------------------
and3 rs,*ar0++(1),r2 ; |154|
sti r2,*+fp(1) ; |154|
.line 83
;----------------------------------------------------------------------
; 155 | l |= (*pByte++ & 0xff) << 8;
;----------------------------------------------------------------------
and3 re,*ar0++(1),r2 ; |155|
ash 8,r2 ; |155|
or *+fp(1),r2 ; |155|
sti r2,*+fp(1) ; |155|
.line 84
;----------------------------------------------------------------------
; 156 | l |= (*pByte++ & 0xff) << 16;
;----------------------------------------------------------------------
and3 bk,*ar0++(1),r2 ; |156|
ash 16,r2 ; |156|
or *+fp(1),r2 ; |156|
sti r2,*+fp(1) ; |156|
.line 85
;----------------------------------------------------------------------
; 157 | l |= (*pByte++ & 0xff) << 24;
;----------------------------------------------------------------------
and3 r3,*ar0++(1),r2 ; |157|
ash 24,r2 ; |157|
or *+fp(1),r2 ; |157|
sti r2,*+fp(1) ; |157|
.line 86
;----------------------------------------------------------------------
; 158 | pSets->set_value_zone[j] = *((float *)&l);
;----------------------------------------------------------------------
ldiu fp,ar1 ; |158|
addi 1,ar1 ; |158|
addi3 rc,r1,ar2 ; |158| Unsigned
ldfu *ar1,f2 ; |158|
stf f2,*+ar2(30) ; |158|
.line 87
;----------------------------------------------------------------------
; 159 | pSets++;
;----------------------------------------------------------------------
addi 38,r1 ; |159| Unsigned
.line 80
addi 1,r0 ; |152| Unsigned
cmpi *+ar4(71),r0 ; |152|
blo L23 ; |152|
;* Branch Occurs to L23 ; |152|
L24:
.line 77
addi 1,r4 ; |149| Unsigned
ldiu *ar4,ar4 ; |149|
ldp @CL35,DP
ldiu @CL35,ar1 ; |149|
cmpi3 *ar1,r4 ; |149|
blo L22 ; |149|
;* Branch Occurs to L22 ; |149|
L25:
.line 73
addi 1,rc ; |145| Unsigned
cmpi 8,rc ; |145|
blo L21 ; |145|
;* Branch Occurs to L21 ; |145|
L26:
.line 92
;----------------------------------------------------------------------
; 164 | check = CHK_Created_Check_List; //将全部设置自检一遍
;----------------------------------------------------------------------
ldp @CL37,DP
ldiu @CL37,ar0 ; |164|
ldiu *ar0,ar4 ; |164|
.line 93
;----------------------------------------------------------------------
; 165 | for (i = 0; i < CHK_Total_Check; i++, check = check->chk_link_next)
;----------------------------------------------------------------------
ldiu 0,r4 ; |165|
ldp @CL38,DP
ldiu @CL38,ar0 ; |165|
cmpi3 *ar0,r4 ; |165|
bhs L28 ; |165|
;* Branch Occurs to L28 ; |165|
L27:
.line 94
;----------------------------------------------------------------------
; 166 | (*(check->chk_routine_handler))(check);
;----------------------------------------------------------------------
push ar4 ; |166|
ldiu *+ar4(10),r0 ; |166|
callu r0 ; |166|
; |166| Call Occurs
subi 1,sp ; |166|
.line 93
addi 1,r4 ; |165| Unsigned
ldiu *ar4,ar4 ; |165|
ldp @CL38,DP
ldiu @CL38,ar0 ; |165|
cmpi3 *ar0,r4 ; |165|
blo L27 ; |165|
;* Branch Occurs to L27 ; |165|
L28:
.line 95
;----------------------------------------------------------------------
; 167 | uRunnigFlag = 1;
;----------------------------------------------------------------------
ldp @CL39,DP
ldiu @CL39,ar0 ; |167|
ldiu 1,r0 ; |167|
sti r0,*ar0 ; |167|
.line 96
; Begin Epilog Code
ldiu *-fp(1),r1
ldiu *fp,fp
; Restore SOE Registers
pop ar4
pop r4
; Unallocate the Frame
subi 19,sp
bu r1
;* Branch Occurs to r1
.endfunc 168,000001010h,17
.sect ".text"
.global _ProtectDeclare
.sym _ProtectDeclare,_ProtectDeclare,46,2,0
.func 176
;******************************************************************************
;* FUNCTION NAME: _ProtectDeclare *
;* *
;* Architecture : TMS320C32 *
;* Calling Convention : Stack Parameter Convention *
;* Function Uses Regs : r0,ar0,ar1,st *
;* Regs Saved : *
;* Stack Frame : Full (w/ debug) *
;* Total Frame Size : 2 Call + 0 Parm + 0 Auto + 0 SOE = 2 words *
;******************************************************************************
_ProtectDeclare:
;* r0 assigned to _i
.sym _i,0,14,4,32
;* r0 assigned to _j
.sym _j,0,14,4,32
;* r0 assigned to _protect
.sym _protect,0,24,4,32,_PROTECT_STRUCT
.line 1
;----------------------------------------------------------------------
; 176 | UNSIGNED ProtectDeclare(VOID)
; 178 | register UNSIGNED i,j;
; 179 | register PROTECT *protect;
;----------------------------------------------------------------------
push fp
ldiu sp,fp
.line 6
;----------------------------------------------------------------------
; 181 | CalculatePtr = Sample_Ptr;
;----------------------------------------------------------------------
ldp @CL41,DP
ldiu @CL41,ar0 ; |181|
ldp @CL40,DP
ldiu @CL40,ar1 ; |181|
ldiu *ar0,r0 ; |181|
sti r0,*ar1 ; |181|
.line 7
;----------------------------------------------------------------------
; 182 | if (IQD.QDB) //是否启动
;----------------------------------------------------------------------
ldp @CL42,DP
ldiu @CL42,ar0 ; |182|
ldiu *ar0,r0 ; |182|
cmpi 0,r0 ; |182|
beq L45 ; |182|
;* Branch Occurs to L45 ; |182|
.line 9
;----------------------------------------------------------------------
; 184 | if (IQD.WaitFlag) //WaitFlag为1,说明电流突变量启动,
; | 且启动时间不满一周
;----------------------------------------------------------------------
ldp @CL43,DP
ldiu @CL43,ar0 ; |184|
ldiu *ar0,r0 ; |184|
cmpi 0,r0 ; |184|
beq L40 ; |184|
;* Branch Occurs to L40 ; |184|
.line 11
;----------------------------------------------------------------------
; 186 | i = Sample_Ptr - IQD.IqdPtr; //启动后经过的采样点数
;----------------------------------------------------------------------
ldp @CL44,DP
ldiu @CL44,ar1 ; |186|
ldp @CL41,DP
ldiu @CL41,ar0 ; |186|
subi3 *ar1,*ar0,r0 ; |186| Unsigned
.line 12
;----------------------------------------------------------------------
; 187 | if (i >= AD_OneDataSize - 1)
;----------------------------------------------------------------------
cmpi 255,r0 ; |187|
blo L35 ; |187|
;* Branch Occurs to L35 ; |187|
.line 13
;----------------------------------------------------------------------
; 188 | i += AD_OneDataSize - 1;
;----------------------------------------------------------------------
addi 255,r0 ; |188| Unsigned
L35:
.line 14
;----------------------------------------------------------------------
; 189 | if (i >= Sample_Point) //是否已启动一个周波
;----------------------------------------------------------------------
cmpi 24,r0 ; |189|
blo L38 ; |189|
;* Branch Occurs to L38 ; |189|
.line 16
;----------------------------------------------------------------------
; 191 | Uabcnt = 10;
;----------------------------------------------------------------------
ldp @CL45,DP
ldiu @CL45,ar0 ; |191|
ldiu 10,r0 ; |191|
sti r0,*ar0 ; |191|
.line 17
;----------------------------------------------------------------------
; 192 | Ubccnt = 10;
;----------------------------------------------------------------------
ldp @CL46,DP
ldiu @CL46,ar0 ; |192|
sti r0,*ar0 ; |192|
.line 18
;----------------------------------------------------------------------
; 193 | Ucacnt = 10;
;----------------------------------------------------------------------
ldp @CL47,DP
ldiu @CL47,ar0 ; |193|
sti r0,*ar0 ; |193|
.line 19
;----------------------------------------------------------------------
; 194 | IQD.WaitFlag = 0; //启动时间满一周,WaitFlag清0
;----------------------------------------------------------------------
ldp @CL43,DP
ldiu @CL43,ar0 ; |194|
ldiu 0,r0 ; |194|
sti r0,*ar0 ; |194|
.line 20
;----------------------------------------------------------------------
; 195 | return(1); //返回1,运行保护程序
; 197 | else
;----------------------------------------------------------------------
bud L46 ; |195|
nop
nop
ldiu 1,r0 ; |195|
;* Branch Occurs to L46 ; |195|
L38:
.line 24
;----------------------------------------------------------------------
; 199 | return (0); //返回0,不运行保护程序
; 202 | else //WaitFlag为0,说明电流突变量启动,
; | 且正在运行保护程序
;----------------------------------------------------------------------
bud L46 ; |199|
nop
nop
ldiu 0,r0 ; |199|
;* Branch Occurs to L46 ; |199|
L40:
.line 29
;----------------------------------------------------------------------
; 204 | if (!DOChn[QDJ].state && (TMD_System_Clock - IQD.Iqdsj) > 100)
;----------------------------------------------------------------------
ldp @CL48,DP
ldiu @CL48,ar0 ; |204|
ldiu *ar0,r0 ; |204|
cmpi 0,r0 ; |204|
bne L43 ; |204|
;* Branch Occurs to L43 ; |204|
ldp @CL50,DP
ldiu @CL50,ar0 ; |204|
ldp @CL49,DP
ldiu @CL49,ar1 ; |204|
subi3 *ar0,*ar1,r0 ; |204| Unsigned
cmpi 100,r0 ; |204|
bls L43 ; |204|
;* Branch Occurs to L43 ; |204|
.line 30
;----------------------------------------------------------------------
; 205 | IQD.QDB = 0; //电流突变量启动后,启动继电器未动,说明保
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -