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

📄 pio_it.lst

📁 ATmel的AT91sam7SE芯片 USB固件开发源代码
💻 LST
📖 第 1 页 / 共 3 页
字号:
   \   0000009C   901721E0           MLA      R1,R0,R7,R1
   \   000000A0   000091E5           LDR      R0,[R1, #+0]
   \   000000A4   000090E5           LDR      R0,[R0, #+0]
   \   000000A8   0060D6E1           BICS     R6,R6,R0
    125                          }
    126                      }
    127                      i++;
   \                     ??PioInterruptHandler_2:
   \   000000AC   017097E2           ADDS     R7,R7,#+1
   \   000000B0   DDFFFFEA           B        ??PioInterruptHandler_1
    128                  }
    129              }
    130          }
   \                     ??PioInterruptHandler_0:
   \   000000B4   F840BDE8           POP      {R3-R7,LR}
   \   000000B8   1EFF2FE1           BX       LR               ;; return
    131          
    132          //------------------------------------------------------------------------------
    133          /// Generic PIO interrupt handler. Single entry point for interrupts coming
    134          /// from any PIO controller (PIO A, B, C ...). Dispatches the interrupt to
    135          /// the user-configured handlers.
    136          //------------------------------------------------------------------------------

   \                                 In section .text, align 4, keep-with-next
    137          void InterruptHandler()
    138          {
   \                     InterruptHandler:
   \   00000000   01402DE9           PUSH     {R0,LR}
    139          #if defined(AT91C_ID_PIOA)
    140              // Treat PIOA interrupts
    141              PioInterruptHandler(AT91C_ID_PIOA, AT91C_BASE_PIOA);
   \   00000004   FF10E0E3           MVN      R1,#+255
   \   00000008   B01EC1E3           BIC      R1,R1,#0xB00
   \   0000000C   0200A0E3           MOV      R0,#+2
   \   00000010   ........           BL       PioInterruptHandler
    142          #endif
    143          
    144          #if defined(AT91C_ID_PIOB)
    145              // Treat PIOB interrupts
    146              PioInterruptHandler(AT91C_ID_PIOB, AT91C_BASE_PIOB);
   \   00000014   FF10E0E3           MVN      R1,#+255
   \   00000018   901EC1E3           BIC      R1,R1,#0x900
   \   0000001C   0300A0E3           MOV      R0,#+3
   \   00000020   ........           BL       PioInterruptHandler
    147          #endif
    148          
    149          #if defined(AT91C_ID_PIOC)
    150              // Treat PIOC interrupts
    151              PioInterruptHandler(AT91C_ID_PIOC, AT91C_BASE_PIOC);
   \   00000024   FF10E0E3           MVN      R1,#+255
   \   00000028   701EC1E3           BIC      R1,R1,#0x700
   \   0000002C   0400A0E3           MOV      R0,#+4
   \   00000030   ........           BL       PioInterruptHandler
    152          #endif
    153          
    154          #if defined(AT91C_ID_PIOD)
    155              // Treat PIOD interrupts
    156              PioInterruptHandler(AT91C_ID_PIOD, AT91C_BASE_PIOD);
    157          #endif
    158          
    159          #if defined(AT91C_ID_PIOE)
    160              // Treat PIOE interrupts
    161              PioInterruptHandler(AT91C_ID_PIOE, AT91C_BASE_PIOE);
    162          #endif
    163          
    164          #if defined(AT91C_ID_PIOABCD)
    165              // Treat PIOABCD interrupts
    166              #if !defined(AT91C_ID_PIOA)
    167                  PioInterruptHandler(AT91C_ID_PIOABCD, AT91C_BASE_PIOA);
    168              #endif
    169              #if !defined(AT91C_ID_PIOB)
    170                  PioInterruptHandler(AT91C_ID_PIOABCD, AT91C_BASE_PIOB);
    171              #endif
    172              #if !defined(AT91C_ID_PIOC)
    173                  PioInterruptHandler(AT91C_ID_PIOABCD, AT91C_BASE_PIOC);
    174              #endif
    175              #if !defined(AT91C_ID_PIOD)
    176                  PioInterruptHandler(AT91C_ID_PIOABCD, AT91C_BASE_PIOD);
    177              #endif
    178          #endif
    179          
    180          #if defined(AT91C_ID_PIOABCDE)
    181              // Treat PIOABCDE interrupts
    182              #if !defined(AT91C_ID_PIOA)
    183                  PioInterruptHandler(AT91C_ID_PIOABCDE, AT91C_BASE_PIOA);
    184              #endif
    185              #if !defined(AT91C_ID_PIOB)
    186                  PioInterruptHandler(AT91C_ID_PIOABCDE, AT91C_BASE_PIOB);
    187              #endif
    188              #if !defined(AT91C_ID_PIOC)
    189                  PioInterruptHandler(AT91C_ID_PIOABCDE, AT91C_BASE_PIOC);
    190              #endif
    191              #if !defined(AT91C_ID_PIOD)
    192                  PioInterruptHandler(AT91C_ID_PIOABCDE, AT91C_BASE_PIOD);
    193              #endif
    194              #if !defined(AT91C_ID_PIOE)
    195                  PioInterruptHandler(AT91C_ID_PIOABCDE, AT91C_BASE_PIOE);
    196              #endif
    197          #endif
    198          
    199          #if defined(AT91C_ID_PIOCDE)
    200              // Treat PIOCDE interrupts
    201              #if !defined(AT91C_ID_PIOC)
    202                  PioInterruptHandler(AT91C_ID_PIOCDE, AT91C_BASE_PIOC);
    203              #endif
    204              #if !defined(AT91C_ID_PIOD)
    205                  PioInterruptHandler(AT91C_ID_PIOCDE, AT91C_BASE_PIOD);
    206              #endif
    207              #if !defined(AT91C_ID_PIOE)
    208                  PioInterruptHandler(AT91C_ID_PIOCDE, AT91C_BASE_PIOE);
    209              #endif
    210          #endif
    211          
    212          }
   \   00000034   0050BDE8           POP      {R12,LR}
   \   00000038   1EFF2FE1           BX       LR               ;; return
    213          
    214          //------------------------------------------------------------------------------
    215          //         Global functions
    216          //------------------------------------------------------------------------------
    217          
    218          //------------------------------------------------------------------------------
    219          /// Initializes the PIO interrupt management logic.
    220          /// \param priority  PIO controller interrupts priority.
    221          //------------------------------------------------------------------------------

   \                                 In section .text, align 4, keep-with-next
    222          void PIO_InitializeInterrupts(unsigned int priority)
    223          {
   \                     PIO_InitializeInterrupts:
   \   00000000   F1402DE9           PUSH     {R0,R4-R7,LR}
   \   00000004   0040B0E1           MOVS     R4,R0
    224              trace_LOG(trace_DEBUG, "-D- PIO_Initialize()\n\r");
    225          
    226              SANITY_CHECK((priority & ~AT91C_AIC_PRIOR) == 0);
    227          
    228          #ifdef AT91C_ID_PIOA
    229              // Configure PIO interrupt sources
    230              trace_LOG(trace_DEBUG, "-D- PIO_Initialize: Configuring PIOA\n\r");
    231              AT91C_BASE_PMC->PMC_PCER = 1 << AT91C_ID_PIOA;
   \   00000008   EF00E0E3           MVN      R0,#+239
   \   0000000C   C00FC0E3           BIC      R0,R0,#0x300
   \   00000010   0410A0E3           MOV      R1,#+4
   \   00000014   001080E5           STR      R1,[R0, #+0]
    232              AT91C_BASE_PIOA->PIO_ISR;
   \   00000018   B300E0E3           MVN      R0,#+179
   \   0000001C   B00EC0E3           BIC      R0,R0,#0xB00
   \   00000020   005090E5           LDR      R5,[R0, #+0]
    233              AT91C_BASE_PIOA->PIO_IDR = 0xFFFFFFFF;
   \   00000024   BB00E0E3           MVN      R0,#+187
   \   00000028   B00EC0E3           BIC      R0,R0,#0xB00
   \   0000002C   0010E0E3           MVN      R1,#+0
   \   00000030   001080E5           STR      R1,[R0, #+0]
    234              AIC_ConfigureIT(AT91C_ID_PIOA, priority, InterruptHandler);
   \   00000034   A0209FE5           LDR      R2,??PIO_InitializeInterrupts_0  ;; InterruptHandler
   \   00000038   0410B0E1           MOVS     R1,R4
   \   0000003C   0200A0E3           MOV      R0,#+2
   \   00000040   ........           BL       AIC_ConfigureIT
    235              AIC_EnableIT(AT91C_ID_PIOA);
   \   00000044   0200A0E3           MOV      R0,#+2
   \   00000048   ........           BL       AIC_EnableIT
    236          #endif
    237          
    238          #ifdef AT91C_ID_PIOB
    239              trace_LOG(trace_DEBUG, "-D- PIO_Initialize: Configuring PIOB\n\r");
    240              AT91C_BASE_PMC->PMC_PCER = 1 << AT91C_ID_PIOB;
   \   0000004C   EF00E0E3           MVN      R0,#+239
   \   00000050   C00FC0E3           BIC      R0,R0,#0x300
   \   00000054   0810A0E3           MOV      R1,#+8
   \   00000058   001080E5           STR      R1,[R0, #+0]
    241              AT91C_BASE_PIOB->PIO_ISR;
   \   0000005C   B300E0E3           MVN      R0,#+179
   \   00000060   900EC0E3           BIC      R0,R0,#0x900
   \   00000064   006090E5           LDR      R6,[R0, #+0]
    242              AT91C_BASE_PIOB->PIO_IDR = 0xFFFFFFFF;
   \   00000068   BB00E0E3           MVN      R0,#+187
   \   0000006C   900EC0E3           BIC      R0,R0,#0x900
   \   00000070   0010E0E3           MVN      R1,#+0
   \   00000074   001080E5           STR      R1,[R0, #+0]
    243              AIC_ConfigureIT(AT91C_ID_PIOB, priority, InterruptHandler);
   \   00000078   5C209FE5           LDR      R2,??PIO_InitializeInterrupts_0  ;; InterruptHandler
   \   0000007C   0410B0E1           MOVS     R1,R4
   \   00000080   0300A0E3           MOV      R0,#+3
   \   00000084   ........           BL       AIC_ConfigureIT
    244              AIC_EnableIT(AT91C_ID_PIOB);
   \   00000088   0300A0E3           MOV      R0,#+3
   \   0000008C   ........           BL       AIC_EnableIT
    245          #endif
    246          
    247          #ifdef AT91C_ID_PIOC
    248              trace_LOG(trace_DEBUG, "-D- PIO_Initialize: Configuring PIOC\n\r");
    249              AT91C_BASE_PMC->PMC_PCER = 1 << AT91C_ID_PIOC;
   \   00000090   EF00E0E3           MVN      R0,#+239
   \   00000094   C00FC0E3           BIC      R0,R0,#0x300
   \   00000098   1010A0E3           MOV      R1,#+16
   \   0000009C   001080E5           STR      R1,[R0, #+0]
    250              AT91C_BASE_PIOC->PIO_ISR;
   \   000000A0   B300E0E3           MVN      R0,#+179
   \   000000A4   700EC0E3           BIC      R0,R0,#0x700
   \   000000A8   007090E5           LDR      R7,[R0, #+0]
    251              AT91C_BASE_PIOC->PIO_IDR = 0xFFFFFFFF;
   \   000000AC   BB00E0E3           MVN      R0,#+187
   \   000000B0   700EC0E3           BIC      R0,R0,#0x700
   \   000000B4   0010E0E3           MVN      R1,#+0
   \   000000B8   001080E5           STR      R1,[R0, #+0]
    252              AIC_ConfigureIT(AT91C_ID_PIOC, priority, InterruptHandler);
   \   000000BC   18209FE5           LDR      R2,??PIO_InitializeInterrupts_0  ;; InterruptHandler
   \   000000C0   0410B0E1           MOVS     R1,R4
   \   000000C4   0400A0E3           MOV      R0,#+4
   \   000000C8   ........           BL       AIC_ConfigureIT
    253              AIC_EnableIT(AT91C_ID_PIOC);
   \   000000CC   0400A0E3           MOV      R0,#+4
   \   000000D0   ........           BL       AIC_EnableIT
    254          #endif
    255          
    256          #ifdef AT91C_ID_PIOD
    257              trace_LOG(trace_DEBUG, "-D- PIO_Initialize: Configuring PIOD\n\r");
    258              AT91C_BASE_PMC->PMC_PCER = 1 << AT91C_ID_PIOD;
    259              AT91C_BASE_PIOC->PIO_ISR;
    260              AT91C_BASE_PIOC->PIO_IDR = 0xFFFFFFFF;
    261              AIC_ConfigureIT(AT91C_ID_PIOD, priority, InterruptHandler);
    262              AIC_EnableIT(AT91C_ID_PIOD);
    263          #endif
    264          
    265          #ifdef AT91C_ID_PIOE
    266              trace_LOG(trace_DEBUG, "-D- PIO_Initialize: Configuring PIOE\n\r");
    267              AT91C_BASE_PMC->PMC_PCER = 1 << AT91C_ID_PIOE;
    268              AT91C_BASE_PIOC->PIO_ISR;
    269              AT91C_BASE_PIOC->PIO_IDR = 0xFFFFFFFF;
    270              AIC_ConfigureIT(AT91C_ID_PIOE, priority, InterruptHandler);

⌨️ 快捷键说明

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