⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 base.asm

📁 电力系统中的保护装置全部代码
💻 ASM
📖 第 1 页 / 共 4 页
字号:
        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 + -