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

📄 tct.asm

📁 电力系统中的保护装置全部代码
💻 ASM
📖 第 1 页 / 共 5 页
字号:
    .word    _TCT_HISR_Shell+0
    .bss     _TCT_HISR_Shell_Addr,1
;
    .globl   _TCT_Signal_Shell_Addr
    .word    1,_TCT_Signal_Shell_Addr
    .word    _TCC_Signal_Shell+0
    .bss     _TCT_Signal_Shell_Addr,1
;
    .globl   _TCT_Disable_Interrupts
    .word    1,_TCT_Disable_Interrupts
    .word    00010500h                            ; Customize this for your application
;modify by jin  enable  erint0->dma1   2000.12.13
    .bss     _TCT_Disable_Interrupts,1
;
    .text
;/*************************************************************************/
;/*                                                                       */
;/* FUNCTION                                                              */
;/*                                                                       */
;/*      TCT_Control_Interrupts                                           */
;/*                                                                       */
;/* DESCRIPTION                                                           */
;/*                                                                       */
;/*      This function enables and disables interrupts as specified by    */
;/*      the caller.  Interrupts disabled by this call are left disabled  */
;/*      until the another call is made to enable them.                   */
;/*                                                                       */
;/* AUTHOR                                                                */
;/*                                                                       */
;/*      William E. Lamie, Accelerated Technology, Inc.                   */
;/*                                                                       */
;/* CALLED BY                                                             */
;/*                                                                       */
;/*      Application                                                      */
;/*                                                                       */
;/* CALLS                                                                 */
;/*                                                                       */
;/*      None                                                             */
;/*                                                                       */
;/* INPUTS                                                                */
;/*                                                                       */
;/*      new_level                           New interrupt enable level   */
;/*                                                                       */
;/* OUTPUTS                                                               */
;/*                                                                       */
;/*      old_level                           Previous interrupt enable    */
;/*                                            level                      */
;/*                                                                       */
;/* HISTORY                                                               */
;/*                                                                       */
;/*         NAME            DATE                    REMARKS               */
;/*                                                                       */
;/*      D. Foxall       02-07-1996          TMS320C30 version 1.0        */
;/*      J. Trippi       03-11-1997       Modified for large memory model */
;/*                                                                       */
;/*************************************************************************/
        .global  _TCT_Control_Interrupts
_TCT_Control_Interrupts:
;INT    TCT_Control_Interrupts(INT new_level);
;{
;    /* register use: R0 - previous interrupt level (return value)
;              R1 - new interrupt level (function argument) */
;
;    /* Lockout interrupts. */
;
    RPTS    0
    AND     GIENOT,ST                        ;XIONGZHANGXUE
;    LDI    0,IE                             ; Lockout interrupts
;    NOP                                     ; Interrupt lockout might not occur
;    NOP                                     ;   for a few instructions
;    AND    GIENOT,ST                        ; Clear GIE bit in STatus register
;
    .if NU_BIG
    LDP    @_TCD_Interrupt_Level            ; Load Data Page Pointer
    .endif

    .if NU_STACK
    PUSH   FP                               ; Save caller's frame pointer
    LDI    SP,FP                            ; Setup local frame
    .endif
;
;    /* Save the old interrupt level. */
;
    LDI    @_TCD_Interrupt_Level,R0         ; Save current value 
;
;    /* Setup the new level. */
;    TCD_Interrupt_Level = new_level;
;
    .if NU_STACK
    LDI    *-FP(2),IE                       ; Pickup new value
    .else
    LDI    AR2,IE
    .endif
    STI    IE,@_TCD_Interrupt_Level         ; Assign new interrupt level,
;
;    /* Determine if interrupts need to be enabled.  */
;
;    /* return value is already in R0 */
;        return(old_level);
;
    .if NU_STACK
    POP    FP                               ; Restore frame pointer
    .endif
    RETI                                    ; Return, setting GIE bit in ST
;
;}
;
;
;/*************************************************************************/
;/*                                                                       */
;/* FUNCTION                                                              */
;/*                                                                       */
;/*      TCT_Local_Control_Interrupts                                     */
;/*                                                                       */
;/* DESCRIPTION                                                           */
;/*                                                                       */
;/*      This function enables and disables interrupts as specified by    */
;/*      the caller.  Interrupts disabled by this call are local to the   */
;/*      caller.                                                          */
;/*                                                                       */
;/* AUTHOR                                                                */
;/*                                                                       */
;/*      William E. Lamie, Accelerated Technology, Inc.                   */
;/*                                                                       */
;/* CALLED BY                                                             */
;/*                                                                       */
;/*      Application                                                      */
;/*                                                                       */
;/* CALLS                                                                 */
;/*                                                                       */
;/*      None                                                             */
;/*                                                                       */
;/* INPUTS                                                                */
;/*                                                                       */
;/*      new_level                           New interrupt enable level   */
;/*                                                                       */
;/* OUTPUTS                                                               */
;/*                                                                       */
;/*      old_level                           Previous interrupt enable    */
;/*                                            level                      */
;/*                                                                       */
;/* HISTORY                                                               */
;/*                                                                       */
;/*         NAME            DATE                    REMARKS               */
;/*                                                                       */
;/*      D. Foxall       02-07-1996          TMS320C30 version 1.0        */
;/*      J. Trippi       03-11-1997       Modified for large memory model */
;/*                                                                       */
;/*************************************************************************/
        .global  _TCT_Local_Control_Interrupts
_TCT_Local_Control_Interrupts:
;INT    TCT_Local_Control_Interrupts(INT new_level);
;{
;    /* register use: R0 - previous interrupt level (return value)
;              R1 - new interrupt level (function argument) */
;
    .if NU_STACK
    PUSH   FP                               ; Save caller's frame pointer
    LDI    SP,FP                            ; Setup local frame
    .endif
;
;    /* Save the old level and setup the new level.  */
;
    LDI    IE,R0                            ; Pickup IE register 
;
;   /* Lockout interrupts */
;
    RPTS   0
    AND    GIENOT,ST                        ;XIONGZHANGXUE
;    LDI    0,IE                             ; Lockout interrupts
;    NOP                                     ; Interrupt lockout might not occur
;    NOP                                     ;   for a few instructions
;    AND    GIENOT,ST                        ; Clear GIE bit in STatus register
;
;    /* Determine if interrupts need to be enabled.  */
;
    .if NU_STACK
    LDI    *-FP(2),IE                      ; Pickup new interrupt level
    .else
    LDI    AR2,IE
    .endif
;
;    /* return value is already in R0 */
;        return(old_level);
;
    .if NU_STACK
    POP    FP                               ; Restore frame pointer
    .endif
    RETI                                    ; Return, setting GIE bit in ST
;
;}
;
;
;/*************************************************************************/
;/*                                                                       */
;/* FUNCTION                                                              */
;/*                                                                       */
;/*      TCT_Restore_Interrupts                                           */
;/*                                                                       */
;/* DESCRIPTION                                                           */
;/*                                                                       */
;/*      This function restores the interrupt lockout posture to that of  */
;/*      the global setting.                                              */
;/*                                                                       */
;/* AUTHOR                                                                */
;/*                                                                       */
;/*      William E. Lamie, Accelerated Technology, Inc.                   */
;/*                                                                       */
;/* CALLED BY                                                             */
;/*                                                                       */
;/*      Application                                                      */
;/*                                                                       */
;/* CALLS                                                                 */
;/*                                                                       */
;/*      None                                                             */
;/*                                                                       */
;/* INPUTS                                                                */
;/*                                                                       */
;/*      None                                                             */
;/*                                                                       */
;/* OUTPUTS                                                               */
;/*                                                                       */
;/*      None                                                             */
;/*                                                                       */
;/* HISTORY                                                               */
;/*                                                                       */
;/*         NAME            DATE                    REMARKS               */
;/*                                                                       */
;/*      D. Foxall       02-07-1996          TMS320C30 version 1.0        */
;/*      J. Trippi       03-11-1997       Modified for large memory model */
;/*                                                                       */
;/*************************************************************************/
        .global  _TCT_Restore_Interrupts
_TCT_Restore_Interrupts:
;VOID    _TCT_Restore_Interrupts(VOID)
;{
;    /* register use: R0 - temporary value */
;
;    /* Lockout interrupts. */
;
    .if NU_BIG
    LDP    @_TCD_Interrupt_Level           ; Load Data Page Pointer
    .endif
    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -