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

📄 pmc.lst

📁 Tried to make CAN logger on AT91sam7X-ek, but have no idea how to implement FATFs... -( I m just a
💻 LST
📖 第 1 页 / 共 3 页
字号:
    103          
    104              if ((AT91C_BASE_PMC->PMC_PCSR & (1 << id)) == (1 << id)) {
   \                     ??PMC_EnablePeripheral_0:
   \   00000028   E710E0E3           MVN      R1,#+231
   \   0000002C   C01FC1E3           BIC      R1,R1,#0x300
   \   00000030   001091E5           LDR      R1,[R1, #+0]
   \   00000034   0120A0E3           MOV      R2,#+1
   \   00000038   121001E0           AND      R1,R1,R2, LSL R0
   \   0000003C   120051E1           CMP      R1,R2, LSL R0
   \   00000040   1200A011           LSLNE    R0,R2,R0
   \   00000044   EF10E013           MVNNE    R1,#+239
   \   00000048   C01FC113           BICNE    R1,R1,#0x300
   \   0000004C   00008115           STRNE    R0,[R1, #+0]
    105          
    106                  TRACE_INFO("PMC_EnablePeripheral: clock of peripheral"
    107                             " %u is already enabled\n\r",
    108                             id);
   \   00000050   0010A001           MOVEQ    R1,R0
   \   00000054   08009F05           LDREQ    R0,??PMC_EnablePeripheral_2  ;; `?<Constant "-I- PMC_EnablePeriphe...">`
   \   00000058   ........           BLEQ     printf
    109              }
    110              else {
    111          
    112                  AT91C_BASE_PMC->PMC_PCER = 1 << id;
    113              }
    114          }
   \   0000005C   0140BDE8           POP      {R0,LR}
   \   00000060   1EFF2FE1           BX       LR               ;; return
   \                     ??PMC_EnablePeripheral_2:
   \   00000064   ........           DC32     `?<Constant "-I- PMC_EnablePeriphe...">`
    115          
    116          //------------------------------------------------------------------------------
    117          /// Disables the clock of a peripheral. The peripheral ID (AT91C_ID_xxx) is used
    118          /// to identify which peripheral is targetted.
    119          /// Note that the ID must NOT be shifted (i.e. 1 << AT91C_ID_xxx).
    120          /// \param id  Peripheral ID (AT91C_ID_xxx).
    121          //------------------------------------------------------------------------------

   \                                 In section .text, align 4, keep-with-next
    122          void PMC_DisablePeripheral(unsigned int id)
    123          {
   \                     PMC_DisablePeripheral:
   \   00000000   00502DE9           PUSH     {R12,LR}
    124              SANITY_CHECK(id < 32);
   \   00000004   200050E3           CMP      R0,#+32
   \   00000008   0600003A           BCC      ??PMC_DisablePeripheral_0
   \   0000000C   ........           LDR      R0,??DataTable3  ;; `?<Constant "-F- ASSERT: ">`
   \   00000010   ........           BL       printf
   \   00000014   7C20A0E3           MOV      R2,#+124
   \   00000018   ........           LDR      R1,??DataTable4  ;; `?<Constant "F:\\\\Diplomovka\\\\Atmel\\\\g...">`
   \   0000001C   ........           LDR      R0,??DataTable5  ;; `?<Constant "Sanity check failed a...">`
   \   00000020   ........           BL       printf
   \                     ??PMC_DisablePeripheral_1:
   \   00000024   FEFFFFEA           B        ??PMC_DisablePeripheral_1
    125          
    126              if ((AT91C_BASE_PMC->PMC_PCSR & (1 << id)) != (1 << id)) {
   \                     ??PMC_DisablePeripheral_0:
   \   00000028   E710E0E3           MVN      R1,#+231
   \   0000002C   C01FC1E3           BIC      R1,R1,#0x300
   \   00000030   001091E5           LDR      R1,[R1, #+0]
   \   00000034   0120A0E3           MOV      R2,#+1
   \   00000038   121001E0           AND      R1,R1,R2, LSL R0
   \   0000003C   120051E1           CMP      R1,R2, LSL R0
   \   00000040   1200A001           LSLEQ    R0,R2,R0
   \   00000044   EB10E003           MVNEQ    R1,#+235
   \   00000048   C01FC103           BICEQ    R1,R1,#0x300
   \   0000004C   00008105           STREQ    R0,[R1, #+0]
    127          
    128                  TRACE_INFO("PMC_DisablePeripheral: clock of peripheral"
    129                             " %u is not enabled\n\r",
    130                             id);
   \   00000050   0010A011           MOVNE    R1,R0
   \   00000054   08009F15           LDRNE    R0,??PMC_DisablePeripheral_2  ;; `?<Constant "-I- PMC_DisablePeriph...">`
   \   00000058   ........           BLNE     printf
    131              }
    132              else {
    133          
    134                  AT91C_BASE_PMC->PMC_PCDR = 1 << id;
    135              }
    136          }
   \   0000005C   0140BDE8           POP      {R0,LR}
   \   00000060   1EFF2FE1           BX       LR               ;; return
   \                     ??PMC_DisablePeripheral_2:
   \   00000064   ........           DC32     `?<Constant "-I- PMC_DisablePeriph...">`
    137          
    138          //------------------------------------------------------------------------------
    139          /// Enable all the periph clock via PMC
    140          /// (Becareful of the last 2 bits, it is not periph clock)
    141          //------------------------------------------------------------------------------

   \                                 In section .text, align 4, keep-with-next
    142          void PMC_EnableAllPeripherals(void)
    143          {
    144              AT91C_BASE_PMC->PMC_PCER = MASK_STATUS;
   \                     PMC_EnableAllPeripherals:
   \   00000000   EF00E0E3           MVN      R0,#+239
   \   00000004   C00FC0E3           BIC      R0,R0,#0x300
   \   00000008   F013E0E3           MVN      R1,#-1073741821
   \   0000000C   001080E5           STR      R1,[R0, #+0]
    145              while( (AT91C_BASE_PMC->PMC_PCSR & MASK_STATUS) != MASK_STATUS);
   \                     ??PMC_EnableAllPeripherals_0:
   \   00000010   E700E0E3           MVN      R0,#+231
   \   00000014   C00FC0E3           BIC      R0,R0,#0x300
   \   00000018   000090E5           LDR      R0,[R0, #+0]
   \   0000001C   F003C0E3           BIC      R0,R0,#0xC0000003
   \   00000020   010050E1           CMP      R0,R1
   \   00000024   F9FFFF1A           BNE      ??PMC_EnableAllPeripherals_0
    146              TRACE_INFO("Enable all periph clocks\n\r"); 
   \   00000028   00009FE5           LDR      R0,??PMC_EnableAllPeripherals_1  ;; `?<Constant "-I- Enable all periph...">`
   \   0000002C   ........           B        printf           ;; tailcall
   \                     ??PMC_EnableAllPeripherals_1:
   \   00000030   ........           DC32     `?<Constant "-I- Enable all periph...">`
    147          }
    148          
    149          //------------------------------------------------------------------------------
    150          /// Disable all the periph clock via PMC
    151          /// (Becareful of the last 2 bits, it is not periph clock)
    152          //------------------------------------------------------------------------------

   \                                 In section .text, align 4, keep-with-next
    153          void PMC_DisableAllPeripherals(void)
    154          {
    155              AT91C_BASE_PMC->PMC_PCDR = MASK_STATUS;
   \                     PMC_DisableAllPeripherals:
   \   00000000   EB00E0E3           MVN      R0,#+235
   \   00000004   C00FC0E3           BIC      R0,R0,#0x300
   \   00000008   F013E0E3           MVN      R1,#-1073741821
   \   0000000C   001080E5           STR      R1,[R0, #+0]
    156              while((AT91C_BASE_PMC->PMC_PCSR & MASK_STATUS) != 0);
   \                     ??PMC_DisableAllPeripherals_0:
   \   00000010   E700E0E3           MVN      R0,#+231
   \   00000014   C00FC0E3           BIC      R0,R0,#0x300
   \   00000018   000090E5           LDR      R0,[R0, #+0]
   \   0000001C   F003D0E3           BICS     R0,R0,#0xC0000003
   \   00000020   FAFFFF1A           BNE      ??PMC_DisableAllPeripherals_0
    157              TRACE_INFO("Disable all periph clocks\n\r");
   \   00000024   00009FE5           LDR      R0,??PMC_DisableAllPeripherals_1  ;; `?<Constant "-I- Disable all perip...">`
   \   00000028   ........           B        printf           ;; tailcall
   \                     ??PMC_DisableAllPeripherals_1:
   \   0000002C   ........           DC32     `?<Constant "-I- Disable all perip...">`
    158          }
    159          
    160          //-----------------------------------------------------------------------------
    161          /// Get Periph Status
    162          //-----------------------------------------------------------------------------

   \                                 In section .text, align 4, keep-with-next
    163          unsigned int PMC_IsAllPeriphEnabled(void)
    164          {
    165              return (AT91C_BASE_PMC->PMC_PCSR == MASK_STATUS);
   \                     PMC_IsAllPeriphEnabled:
   \   00000000   E700E0E3           MVN      R0,#+231
   \   00000004   C00FC0E3           BIC      R0,R0,#0x300
   \   00000008   000090E5           LDR      R0,[R0, #+0]
   \   0000000C   F013E0E3           MVN      R1,#-1073741821
   \   00000010   010050E1           CMP      R0,R1
   \   00000014   0100A003           MOVEQ    R0,#+1
   \   00000018   0000A013           MOVNE    R0,#+0
   \   0000001C   1EFF2FE1           BX       LR               ;; return
    166          }
    167          
    168          //-----------------------------------------------------------------------------
    169          /// Get Periph Status
    170          //-----------------------------------------------------------------------------

   \                                 In section .text, align 4, keep-with-next
    171          unsigned int PMC_IsPeriphEnabled(unsigned int id)
    172          {
    173              return (AT91C_BASE_PMC->PMC_PCSR & (1 << id));  
   \                     PMC_IsPeriphEnabled:
   \   00000000   E710E0E3           MVN      R1,#+231
   \   00000004   C01FC1E3           BIC      R1,R1,#0x300
   \   00000008   001091E5           LDR      R1,[R1, #+0]
   \   0000000C   0120A0E3           MOV      R2,#+1
   \   00000010   120001E0           AND      R0,R1,R2, LSL R0
   \   00000014   1EFF2FE1           BX       LR               ;; return
    174          }
    175          //------------------------------------------------------------------------------
    176          /// Put the CPU in Idle Mode for lower consumption
    177          //------------------------------------------------------------------------------

   \                                 In section .text, align 4, keep-with-next
    178          void PMC_CPUInIdleMode(void)
    179          {

⌨️ 快捷键说明

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