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

📄 irq.lst

📁 ADI公司的关于光通讯模块的监控程序,在KEIL FOR ARM 的编译环境编译.程序大小约12K,芯片是ADu7020.
💻 LST
📖 第 1 页 / 共 2 页
字号:
ARM COMPILER V2.32a,  irq                                                                  08/08/05  09:50:23  PAGE 1   


ARM COMPILER V2.32a, COMPILATION OF MODULE irq
OBJECT MODULE PLACED IN irq.OBJ
COMPILER INVOKED BY: C:\Keil\ARM\BIN\CA.exe irq.c THUMB OPTIMIZE(0,SPEED) BROWSE DEBUG TABS(4) 

stmt  level    source

    1          // irq.c
    2          
    3          /********************************************************************/
    4          /*                                                                  */
    5          /*      IRQ Interrupt Service Rountine                              */
    6          /*                                                                  */
    7          /********************************************************************/
    8          #include <ADuC7020.h>
    9          #include "common.h"
   10          
   11          void IRQ_Handler(void) __irq {
   12   1          static HALFWORD er_count=0;
   13   1      
   14   1          /********************************************************************/
   15   1          /*                                                                  */
   16   1          /*      Monitor and Diagnostic routine                              */
   17   1          /*              triggered by Timer1 underflow                       */
   18   1          /********************************************************************/
   19   1      
   20   1          if((IRQSTA & GP_TIMER_BIT))            // Timer1 IRQ?
   21   1          {
   22   2      
   23   2              T1CON = 0x00;
   24   2      
   25   2              if((i2c_receive != 0x00) && (i2c_first == TRUE)) {
   26   3                  FlashUpdate(i2c_receive);
   27   3                  i2c_receive = 0x00;
   28   3              }
   29   2      
   30   2                  // update DACs
   31   2              if(dac_update == 0x01) SetDac(0);
   32   2              if(dac_update == 0x02) SetDac(1);
   33   2              
   34   2              monitor();                          // run monitor routines
   35   2              diag();                             // run diagnostic routnies
   36   2              fault_recovery_check();             // check recovery status
   37   2              
   38   2              if(ER_CON)ErCalibration(ER_CON);    // run ER caliburation
   39   2              if((er_count>=ER_COMP_TIME) && ER_COMP_ENABLE){
   40   3                  ErCompensation();               // run ER compensation
   41   3                  er_count=0;                     // reset counter
   42   3              }
   43   2      
   44   2              A2h[110] &= 0xFE;                   // clear bit0, DATA_READY_BAR in Status/Control Bits
   45   2              er_count++;        
   46   2              
   47   2              T1CLRI = 0;                         // clear Timer1 interrupt
   48   2              T1CON = 0xCF;
   49   2          }
   50   1          
   51   1      
   52   1          /********************************************************************/
   53   1          /*                                                                  */
   54   1          /*      Tx Laser Fault detection                                    */
   55   1          /*              triggered by External IRQ0                          */
   56   1          /********************************************************************/
   57   1          if ((IRQSTA & XIRQ0_BIT) == 0x00008000)     // XIRQ0, bit15
   58   1          {   
   59   2              // set bit in status/control bits resister
ARM COMPILER V2.32a,  irq                                                                  08/08/05  09:50:23  PAGE 2   

   60   2              A2h[110] |= 0x04;                       // bit2(Tx Fault state) is set high
   61   2      
   62   2              IRQCLR = 0x00008000;                    // disable XIRQ0 interrupt 
   63   2          }
   64   1      
   65   1          /********************************************************************/
   66   1          /*                                                                  */
   67   1          /*      Tx Disable detection                                        */
   68   1          /*              triggered by External IRQ1                          */
   69   1          /********************************************************************/
   70   1          if ((IRQSTA & XIRQ1_BIT) == 0x00040000)     // XIRQ1, bit14
   71   1          {
   72   2              // set bit in status/control bits resister
   73   2              A2h[110] |= 0x80;                       // bit7(Tx Disable state) is set high
   74   2      
   75   2              IRQCLR = 0x00040000;                    // disable XIRQ1 interrupt
   76   2          }
   77   1      
   78   1          /********************************************************************/
   79   1          /*                                                                  */
   80   1          /*      Rx LOS detection                                            */
   81   1          /*              triggered by PLA IRQ0                               */
   82   1          /********************************************************************/
   83   1      /*
   84   1          if ((IRQSTA & PLA_IRQ0_BIT) == 0x00080000)  // PLAIRQ0, bit19
   85   1          {
   86   1              // set bit in status/control bits resister
   87   1              A2h[110] |= 0x02;                       // bit1(LOS) is set high
   88   1      
   89   1              IRQCLR = 0x00080000;                    // disable PLAIRQ0 interrupt
   90   1          }
   91   1      */
   92   1          /********************************************************************/
   93   1          /*                                                                  */
   94   1          /*      Rx Rate Select detection                                    */
   95   1          /*              triggered by PLA IRQ1                               */
   96   1          /********************************************************************/
   97   1          
   98   1      /*
   99   1          if ((IRQSTA & PLA_IRQ1_BIT) == 0x00100000)  // PLAIRQ1
  100   1          {
  101   1              // set bit in status/control bits resister
  102   1              A2h[110] |= 0x10;                       // bit4(RateSel) is set high
  103   1      
  104   1              IRQCLR = 0x00100000;                    // disable PLAIRQ0 interrupt
  105   1          }
  106   1      
  107   1      */
  108   1      
  109   1      }
  110          
ARM COMPILER V2.32a,  irq                                                                  08/08/05  09:50:23  PAGE 3   

ASSEMBLY LISTING OF GENERATED OBJECT CODE



*** EXTERNALS:
 EXTERN DATA (A2h)
 EXTERN DATA (i2c_first)
 EXTERN DATA (i2c_receive)
 EXTERN DATA (dac_update)
 EXTERN CODE16 (SetDac?T)
 EXTERN CODE16 (fault_recovery_check?T)
 EXTERN CODE16 (monitor?T)
 EXTERN CODE16 (diag?T)
 EXTERN CODE16 (FlashUpdate?T)
 EXTERN CODE16 (ErCalibration?T)
 EXTERN CODE16 (ErCompensation?T)
 EXTERN CODE32 (FlashUpdate?A)
 EXTERN CODE32 (SetDac?A)
 EXTERN CODE32 (monitor?A)
 EXTERN CODE32 (diag?A)
 EXTERN CODE32 (fault_recovery_check?A)
 EXTERN CODE32 (ErCalibration?A)
 EXTERN CODE32 (ErCompensation?A)



*** PUBLICS:
 PUBLIC         IRQ_Handler?A



*** DATA SEGMENT '?DT0?irq':
 00000000          er_count:
 00000000           BEGIN_INIT
 00000000  0000      DW          0x0
 00000002           END_INIT

⌨️ 快捷键说明

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