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

📄 pio_it.lst

📁 IAR5.2下 AT91SAM9260 ARM 对 MCP2515 控制源化码
💻 LST
📖 第 1 页 / 共 3 页
字号:
   \                     ??PioInterruptHandler_0:
   \   000000B0   F180BDE8           POP      {R0,R4-R7,PC}    ;; return
    128          
    129          //------------------------------------------------------------------------------
    130          /// Generic PIO interrupt handler. Single entry point for interrupts coming
    131          /// from any PIO controller (PIO A, B, C ...). Dispatches the interrupt to
    132          /// the user-configured handlers.
    133          //------------------------------------------------------------------------------

   \                                 In section .text, align 4, keep-with-next
    134          void InterruptHandler()
    135          {
   \                     InterruptHandler:
   \   00000000   00502DE9           PUSH     {R12,LR}
    136          #if defined(AT91C_ID_PIOA)
    137              // Treat PIOA interrupts
    138              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
    139          #endif
    140          
    141          #if defined(AT91C_ID_PIOB)
    142              // Treat PIOB interrupts
    143              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
    144          #endif
    145          
    146          #if defined(AT91C_ID_PIOC)
    147              // Treat PIOC interrupts
    148              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
    149          #endif
    150          
    151          #if defined(AT91C_ID_PIOD)
    152              // Treat PIOD interrupts
    153              PioInterruptHandler(AT91C_ID_PIOD, AT91C_BASE_PIOD);
    154          #endif
    155          
    156          #if defined(AT91C_ID_PIOE)
    157              // Treat PIOE interrupts
    158              PioInterruptHandler(AT91C_ID_PIOE, AT91C_BASE_PIOE);
    159          #endif
    160          
    161          #if defined(AT91C_ID_PIOABCD)
    162              // Treat PIOABCD interrupts
    163              #if !defined(AT91C_ID_PIOA)
    164                  PioInterruptHandler(AT91C_ID_PIOABCD, AT91C_BASE_PIOA);
    165              #endif
    166              #if !defined(AT91C_ID_PIOB)
    167                  PioInterruptHandler(AT91C_ID_PIOABCD, AT91C_BASE_PIOB);
    168              #endif
    169              #if !defined(AT91C_ID_PIOC)
    170                  PioInterruptHandler(AT91C_ID_PIOABCD, AT91C_BASE_PIOC);
    171              #endif
    172              #if !defined(AT91C_ID_PIOD)
    173                  PioInterruptHandler(AT91C_ID_PIOABCD, AT91C_BASE_PIOD);
    174              #endif
    175          #endif
    176          
    177          #if defined(AT91C_ID_PIOABCDE)
    178              // Treat PIOABCDE interrupts
    179              #if !defined(AT91C_ID_PIOA)
    180                  PioInterruptHandler(AT91C_ID_PIOABCDE, AT91C_BASE_PIOA);
    181              #endif
    182              #if !defined(AT91C_ID_PIOB)
    183                  PioInterruptHandler(AT91C_ID_PIOABCDE, AT91C_BASE_PIOB);
    184              #endif
    185              #if !defined(AT91C_ID_PIOC)
    186                  PioInterruptHandler(AT91C_ID_PIOABCDE, AT91C_BASE_PIOC);
    187              #endif
    188              #if !defined(AT91C_ID_PIOD)
    189                  PioInterruptHandler(AT91C_ID_PIOABCDE, AT91C_BASE_PIOD);
    190              #endif
    191              #if !defined(AT91C_ID_PIOE)
    192                  PioInterruptHandler(AT91C_ID_PIOABCDE, AT91C_BASE_PIOE);
    193              #endif
    194          #endif
    195          
    196          #if defined(AT91C_ID_PIOCDE)
    197              // Treat PIOCDE interrupts
    198              #if !defined(AT91C_ID_PIOC)
    199                  PioInterruptHandler(AT91C_ID_PIOCDE, AT91C_BASE_PIOC);
    200              #endif
    201              #if !defined(AT91C_ID_PIOD)
    202                  PioInterruptHandler(AT91C_ID_PIOCDE, AT91C_BASE_PIOD);
    203              #endif
    204              #if !defined(AT91C_ID_PIOE)
    205                  PioInterruptHandler(AT91C_ID_PIOCDE, AT91C_BASE_PIOE);
    206              #endif
    207          #endif
    208          
    209          }
   \   00000034   0180BDE8           POP      {R0,PC}          ;; return
    210          
    211          //------------------------------------------------------------------------------
    212          //         Global functions
    213          //------------------------------------------------------------------------------
    214          
    215          //------------------------------------------------------------------------------
    216          /// Initializes the PIO interrupt management logic.
    217          /// \param priority  PIO controller interrupts priority.
    218          //------------------------------------------------------------------------------

   \                                 In section .text, align 4, keep-with-next
    219          void PIO_InitializeInterrupts(unsigned int priority)
    220          {
   \                     PIO_InitializeInterrupts:
   \   00000000   F8402DE9           PUSH     {R3-R7,LR}
   \   00000004   0040B0E1           MOVS     R4,R0
    221              trace_LOG(trace_DEBUG, "-D- PIO_Initialize()\n\r");
    222          
    223              SANITY_CHECK((priority & ~AT91C_AIC_PRIOR) == 0);
    224          
    225              // Reset sources
    226              numSources = 0;
   \   00000008   ........           LDR      R0,??DataTable10  ;; numSources
   \   0000000C   0010A0E3           MOV      R1,#+0
   \   00000010   001080E5           STR      R1,[R0, #+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;
   \   00000014   EF00E0E3           MVN      R0,#+239
   \   00000018   C00FC0E3           BIC      R0,R0,#0x300
   \   0000001C   0410A0E3           MOV      R1,#+4
   \   00000020   001080E5           STR      R1,[R0, #+0]
    232              AT91C_BASE_PIOA->PIO_ISR;
   \   00000024   B300E0E3           MVN      R0,#+179
   \   00000028   B00EC0E3           BIC      R0,R0,#0xB00
   \   0000002C   005090E5           LDR      R5,[R0, #+0]
    233              AT91C_BASE_PIOA->PIO_IDR = 0xFFFFFFFF;
   \   00000030   BB00E0E3           MVN      R0,#+187
   \   00000034   B00EC0E3           BIC      R0,R0,#0xB00
   \   00000038   0010E0E3           MVN      R1,#+0
   \   0000003C   001080E5           STR      R1,[R0, #+0]
    234              AIC_ConfigureIT(AT91C_ID_PIOA, priority, InterruptHandler);
   \   00000040   9C209FE5           LDR      R2,??PIO_InitializeInterrupts_0  ;; InterruptHandler
   \   00000044   0410B0E1           MOVS     R1,R4
   \   00000048   0200A0E3           MOV      R0,#+2
   \   0000004C   ........           BL       AIC_ConfigureIT
    235              AIC_EnableIT(AT91C_ID_PIOA);
   \   00000050   0200A0E3           MOV      R0,#+2
   \   00000054   ........           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;
   \   00000058   EF00E0E3           MVN      R0,#+239
   \   0000005C   C00FC0E3           BIC      R0,R0,#0x300
   \   00000060   0810A0E3           MOV      R1,#+8
   \   00000064   001080E5           STR      R1,[R0, #+0]
    241              AT91C_BASE_PIOB->PIO_ISR;
   \   00000068   B300E0E3           MVN      R0,#+179
   \   0000006C   900EC0E3           BIC      R0,R0,#0x900
   \   00000070   006090E5           LDR      R6,[R0, #+0]
    242              AT91C_BASE_PIOB->PIO_IDR = 0xFFFFFFFF;
   \   00000074   BB00E0E3           MVN      R0,#+187
   \   00000078   900EC0E3           BIC      R0,R0,#0x900
   \   0000007C   0010E0E3           MVN      R1,#+0
   \   00000080   001080E5           STR      R1,[R0, #+0]
    243              AIC_ConfigureIT(AT91C_ID_PIOB, priority, InterruptHandler);
   \   00000084   58209FE5           LDR      R2,??PIO_InitializeInterrupts_0  ;; InterruptHandler
   \   00000088   0410B0E1           MOVS     R1,R4
   \   0000008C   0300A0E3           MOV      R0,#+3
   \   00000090   ........           BL       AIC_ConfigureIT
    244              AIC_EnableIT(AT91C_ID_PIOB);
   \   00000094   0300A0E3           MOV      R0,#+3
   \   00000098   ........           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;
   \   0000009C   EF00E0E3           MVN      R0,#+239
   \   000000A0   C00FC0E3           BIC      R0,R0,#0x300
   \   000000A4   1010A0E3           MOV      R1,#+16
   \   000000A8   001080E5           STR      R1,[R0, #+0]
    250              AT91C_BASE_PIOC->PIO_ISR;
   \   000000AC   B300E0E3           MVN      R0,#+179
   \   000000B0   700EC0E3           BIC      R0,R0,#0x700
   \   000000B4   007090E5           LDR      R7,[R0, #+0]
    251              AT91C_BASE_PIOC->PIO_IDR = 0xFFFFFFFF;
   \   000000B8   BB00E0E3           MVN      R0,#+187
   \   000000BC   700EC0E3           BIC      R0,R0,#0x700
   \   000000C0   0010E0E3           MVN      R1,#+0
   \   000000C4   001080E5           STR      R1,[R0, #+0]
    252              AIC_ConfigureIT(AT91C_ID_PIOC, priority, InterruptHandler);
   \   000000C8   14209FE5           LDR      R2,??PIO_InitializeInterrupts_0  ;; InterruptHandler
   \   000000CC   0410B0E1           MOVS     R1,R4
   \   000000D0   0400A0E3           MOV      R0,#+4
   \   000000D4   ........           BL       AIC_ConfigureIT
    253              AIC_EnableIT(AT91C_ID_PIOC);
   \   000000D8   0400A0E3           MOV      R0,#+4
   \   000000DC   ........           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);
    271              AIC_EnableIT(AT91C_ID_PIOE);
    272          #endif

⌨️ 快捷键说明

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