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

📄 stm32f10x_rcc.txt

📁 STM32外部SRAM用作datamemery的程序 开发环境MDK
💻 TXT
📖 第 1 页 / 共 3 页
字号:
;;;724      /* Get PCLK1 prescaler */
;;;725      tmp = RCC->CFGR & CFGR_PPRE1_Set_Mask;
00004e  6041              STR      r1,[r0,#4]
000050  6854              LDR      r4,[r2,#4]
000052  f404f404          AND      r4,r4,#0x700
;;;726      tmp = tmp >> 8;
000056  0a24              LSRS     r4,r4,#8
;;;727      presc = APBAHBPrescTable[tmp];
000058  5d1c              LDRB     r4,[r3,r4]
;;;728    
;;;729      /* PCLK1 clock frequency */
;;;730      RCC_Clocks->PCLK1_Frequency = RCC_Clocks->HCLK_Frequency >> presc;
00005a  fa21fa21          LSR      r4,r1,r4
;;;731    
;;;732      /* Get PCLK2 prescaler */
;;;733      tmp = RCC->CFGR & CFGR_PPRE2_Set_Mask;
00005e  6084              STR      r4,[r0,#8]
000060  6854              LDR      r4,[r2,#4]
000062  f404f404          AND      r4,r4,#0x3800
;;;734      tmp = tmp >> 11;
000066  0ae4              LSRS     r4,r4,#11
;;;735      presc = APBAHBPrescTable[tmp];
000068  5d1b              LDRB     r3,[r3,r4]
;;;736    
;;;737      /* PCLK2 clock frequency */
;;;738      RCC_Clocks->PCLK2_Frequency = RCC_Clocks->HCLK_Frequency >> presc;
00006a  40d9              LSRS     r1,r1,r3
;;;739    
;;;740      /* Get ADCCLK prescaler */
;;;741      tmp = RCC->CFGR & CFGR_ADCPRE_Set_Mask;
00006c  60c1              STR      r1,[r0,#0xc]
00006e  6852              LDR      r2,[r2,#4]
;;;742      tmp = tmp >> 14;
;;;743      presc = ADCPrescTable[tmp];
000070  4b07              LDR      r3,|L21.144|
000072  f402f402          AND      r2,r2,#0xc000         ;741
000076  0b92              LSRS     r2,r2,#14             ;742
000078  1f1b              SUBS     r3,r3,#4
00007a  5c9a              LDRB     r2,[r3,r2]
;;;744    
;;;745      /* ADCCLK clock frequency */
;;;746      RCC_Clocks->ADCCLK_Frequency = RCC_Clocks->PCLK2_Frequency / presc;
00007c  fbb1fbb1          UDIV     r1,r1,r2
;;;747    }
000080  6101              STR      r1,[r0,#0x10]
000082  bd30              POP      {r4,r5,pc}
;;;748    
                          ENDP

                  |L21.132|
000084  40021000          DCD      0x40021000
                  |L21.136|
000088  007a1200          DCD      0x007a1200
                  |L21.140|
00008c  003d0900          DCD      0x003d0900
                  |L21.144|
000090  00000004          DCD      ||.constdata||+0x4

                          AREA ||i.RCC_AHBPeriphClockCmd||, CODE, READONLY, ALIGN=2

                  RCC_AHBPeriphClockCmd PROC
;;;767    void RCC_AHBPeriphClockCmd(u32 RCC_AHBPeriph, FunctionalState NewState)
;;;768    {
000000  4a04              LDR      r2,|L22.20|
;;;769      /* Check the parameters */
;;;770      assert_param(IS_RCC_AHB_PERIPH(RCC_AHBPeriph));
;;;771      assert_param(IS_FUNCTIONAL_STATE(NewState));
;;;772    
;;;773      if (NewState != DISABLE)
000002  2900              CMP      r1,#0
;;;774      {
;;;775        RCC->AHBENR |= RCC_AHBPeriph;
000004  6951              LDR      r1,[r2,#0x14]
000006  d001              BEQ      |L22.12|
000008  4301              ORRS     r1,r1,r0
00000a  e000              B        |L22.14|
                  |L22.12|
;;;776      }
;;;777      else
;;;778      {
;;;779        RCC->AHBENR &= ~RCC_AHBPeriph;
00000c  4381              BICS     r1,r1,r0
                  |L22.14|
00000e  6151              STR      r1,[r2,#0x14]         ;775
;;;780      }
;;;781    }
000010  4770              BX       lr
;;;782    
                          ENDP

000012  0000              DCW      0x0000
                  |L22.20|
000014  40021000          DCD      0x40021000

                          AREA ||i.RCC_APB2PeriphClockCmd||, CODE, READONLY, ALIGN=2

                  RCC_APB2PeriphClockCmd PROC
;;;800    void RCC_APB2PeriphClockCmd(u32 RCC_APB2Periph, FunctionalState NewState)
;;;801    {
000000  4a04              LDR      r2,|L23.20|
;;;802      /* Check the parameters */
;;;803      assert_param(IS_RCC_APB2_PERIPH(RCC_APB2Periph));
;;;804      assert_param(IS_FUNCTIONAL_STATE(NewState));
;;;805    
;;;806      if (NewState != DISABLE)
000002  2900              CMP      r1,#0
;;;807      {
;;;808        RCC->APB2ENR |= RCC_APB2Periph;
000004  6991              LDR      r1,[r2,#0x18]
000006  d001              BEQ      |L23.12|
000008  4301              ORRS     r1,r1,r0
00000a  e000              B        |L23.14|
                  |L23.12|
;;;809      }
;;;810      else
;;;811      {
;;;812        RCC->APB2ENR &= ~RCC_APB2Periph;
00000c  4381              BICS     r1,r1,r0
                  |L23.14|
00000e  6191              STR      r1,[r2,#0x18]         ;808
;;;813      }
;;;814    }
000010  4770              BX       lr
;;;815    
                          ENDP

000012  0000              DCW      0x0000
                  |L23.20|
000014  40021000          DCD      0x40021000

                          AREA ||i.RCC_APB1PeriphClockCmd||, CODE, READONLY, ALIGN=2

                  RCC_APB1PeriphClockCmd PROC
;;;834    void RCC_APB1PeriphClockCmd(u32 RCC_APB1Periph, FunctionalState NewState)
;;;835    {
000000  4a04              LDR      r2,|L24.20|
;;;836      /* Check the parameters */
;;;837      assert_param(IS_RCC_APB1_PERIPH(RCC_APB1Periph));
;;;838      assert_param(IS_FUNCTIONAL_STATE(NewState));
;;;839    
;;;840      if (NewState != DISABLE)
000002  2900              CMP      r1,#0
;;;841      {
;;;842        RCC->APB1ENR |= RCC_APB1Periph;
000004  69d1              LDR      r1,[r2,#0x1c]
000006  d001              BEQ      |L24.12|
000008  4301              ORRS     r1,r1,r0
00000a  e000              B        |L24.14|
                  |L24.12|
;;;843      }
;;;844      else
;;;845      {
;;;846        RCC->APB1ENR &= ~RCC_APB1Periph;
00000c  4381              BICS     r1,r1,r0
                  |L24.14|
00000e  61d1              STR      r1,[r2,#0x1c]         ;842
;;;847      }
;;;848    }
000010  4770              BX       lr
;;;849    
                          ENDP

000012  0000              DCW      0x0000
                  |L24.20|
000014  40021000          DCD      0x40021000

                          AREA ||i.RCC_APB2PeriphResetCmd||, CODE, READONLY, ALIGN=2

                  RCC_APB2PeriphResetCmd PROC
;;;866    void RCC_APB2PeriphResetCmd(u32 RCC_APB2Periph, FunctionalState NewState)
;;;867    {
000000  4a04              LDR      r2,|L25.20|
;;;868      /* Check the parameters */
;;;869      assert_param(IS_RCC_APB2_PERIPH(RCC_APB2Periph));
;;;870      assert_param(IS_FUNCTIONAL_STATE(NewState));
;;;871    
;;;872      if (NewState != DISABLE)
000002  2900              CMP      r1,#0
;;;873      {
;;;874        RCC->APB2RSTR |= RCC_APB2Periph;
000004  68d1              LDR      r1,[r2,#0xc]
000006  d001              BEQ      |L25.12|
000008  4301              ORRS     r1,r1,r0
00000a  e000              B        |L25.14|
                  |L25.12|
;;;875      }
;;;876      else
;;;877      {
;;;878        RCC->APB2RSTR &= ~RCC_APB2Periph;
00000c  4381              BICS     r1,r1,r0
                  |L25.14|
00000e  60d1              STR      r1,[r2,#0xc]          ;874
;;;879      }
;;;880    }
000010  4770              BX       lr
;;;881    
                          ENDP

000012  0000              DCW      0x0000
                  |L25.20|
000014  40021000          DCD      0x40021000

                          AREA ||i.RCC_APB1PeriphResetCmd||, CODE, READONLY, ALIGN=2

                  RCC_APB1PeriphResetCmd PROC
;;;899    void RCC_APB1PeriphResetCmd(u32 RCC_APB1Periph, FunctionalState NewState)
;;;900    {
000000  4a04              LDR      r2,|L26.20|
;;;901      /* Check the parameters */
;;;902      assert_param(IS_RCC_APB1_PERIPH(RCC_APB1Periph));
;;;903      assert_param(IS_FUNCTIONAL_STATE(NewState));
;;;904    
;;;905      if (NewState != DISABLE)
000002  2900              CMP      r1,#0
;;;906      {
;;;907        RCC->APB1RSTR |= RCC_APB1Periph;
000004  6911              LDR      r1,[r2,#0x10]
000006  d001              BEQ      |L26.12|
000008  4301              ORRS     r1,r1,r0
00000a  e000              B        |L26.14|
                  |L26.12|
;;;908      }
;;;909      else
;;;910      {
;;;911        RCC->APB1RSTR &= ~RCC_APB1Periph;
00000c  4381              BICS     r1,r1,r0
                  |L26.14|
00000e  6111              STR      r1,[r2,#0x10]         ;907
;;;912      }
;;;913    }
000010  4770              BX       lr
;;;914    
                          ENDP

000012  0000              DCW      0x0000
                  |L26.20|
000014  40021000          DCD      0x40021000

                          AREA ||i.RCC_BackupResetCmd||, CODE, READONLY, ALIGN=2

                  RCC_BackupResetCmd PROC
;;;923    void RCC_BackupResetCmd(FunctionalState NewState)
;;;924    {
000000  4901              LDR      r1,|L27.8|
;;;925      /* Check the parameters */
;;;926      assert_param(IS_FUNCTIONAL_STATE(NewState));
;;;927    
;;;928      *(vu32 *) BDCR_BDRST_BB = (u32)NewState;
000002  6008              STR      r0,[r1,#0]
;;;929    }
000004  4770              BX       lr
;;;930    
                          ENDP

000006  0000              DCW      0x0000
                  |L27.8|
000008  42420440          DCD      0x42420440

                          AREA ||i.RCC_ClockSecuritySystemCmd||, CODE, READONLY, ALIGN=2

                  RCC_ClockSecuritySystemCmd PROC
;;;943    
;;;944      *(vu32 *) CR_CSSON_BB = (u32)NewState;
000000  4901              LDR      r1,|L28.8|
000002  64c8              STR      r0,[r1,#0x4c]
;;;945    }
000004  4770              BX       lr
;;;946    
                          ENDP

000006  0000              DCW      0x0000
                  |L28.8|
000008  42420000          DCD      0x42420000

                          AREA ||i.RCC_MCOConfig||, CODE, READONLY, ALIGN=2

                  RCC_MCOConfig PROC
;;;965      /* Perform Byte access to MCO[2:0] bits to select the MCO source */
;;;966      *(vu8 *) CFGR_BYTE4_ADDRESS = RCC_MCO;
000000  4901              LDR      r1,|L29.8|
000002  71c8              STRB     r0,[r1,#7]
;;;967    }
000004  4770              BX       lr
;;;968    
                          ENDP

000006  0000              DCW      0x0000
                  |L29.8|
000008  40021000          DCD      0x40021000

                          AREA ||i.RCC_ClearFlag||, CODE, READONLY, ALIGN=2

                  RCC_ClearFlag PROC
;;;1041     /* Set RMVF bit to clear the reset flags */
;;;1042     RCC->CSR |= CSR_RMVF_Set;
000000  4802              LDR      r0,|L30.12|
000002  6a41              LDR      r1,[r0,#0x24]
000004  f041f041          ORR      r1,r1,#0x1000000
000008  6241              STR      r1,[r0,#0x24]
;;;1043   }
00000a  4770              BX       lr
;;;1044   
                          ENDP

                  |L30.12|
00000c  40021000          DCD      0x40021000

                          AREA ||i.RCC_GetITStatus||, CODE, READONLY, ALIGN=2

                  RCC_GetITStatus PROC
;;;1066     /* Check the status of the specified RCC interrupt */
;;;1067     if ((RCC->CIR & RCC_IT) != (u32)RESET)
000000  4903              LDR      r1,|L31.16|
000002  4602              MOV      r2,r0
000004  6889              LDR      r1,[r1,#8]
000006  2000              MOVS     r0,#0
000008  4211              TST      r1,r2
00000a  d000              BEQ      |L31.14|
;;;1068     {
;;;1069       bitstatus = SET;
00000c  2001              MOVS     r0,#1
                  |L31.14|
;;;1070     }
;;;1071     else
;;;1072     {
;;;1073       bitstatus = RESET;
;;;1074     }
;;;1075   
;;;1076     /* Return the RCC_IT status */
;;;1077     return  bitstatus;
;;;1078   }
00000e  4770              BX       lr
;;;1079   
                          ENDP

                  |L31.16|
000010  40021000          DCD      0x40021000

                          AREA ||i.RCC_ClearITPendingBit||, CODE, READONLY, ALIGN=2

                  RCC_ClearITPendingBit PROC
;;;1100        pending bits */
;;;1101     *(vu8 *) CIR_BYTE3_ADDRESS = RCC_IT;
000000  4901              LDR      r1,|L32.8|
000002  7288              STRB     r0,[r1,#0xa]
;;;1102   }
000004  4770              BX       lr
;;;1103   
                          ENDP

000006  0000              DCW      0x0000
                  |L32.8|
000008  40021000          DCD      0x40021000

                          AREA ||.data||, DATA, ALIGN=2

                  HSEStatus
000000  00000000          DCB      0x00,0x00,0x00,0x00
                  StartUpCounter
000004  00000000          DCD      0x00000000

                          AREA ||.constdata||, DATA, READONLY, ALIGN=0

                  ADCPrescTable
000000  02040608          DCB      0x02,0x04,0x06,0x08
                  APBAHBPrescTable
000004  00000000          DCB      0x00,0x00,0x00,0x00
000008  01020304          DCB      0x01,0x02,0x03,0x04
00000c  01020304          DCB      0x01,0x02,0x03,0x04
000010  06070809          DCB      0x06,0x07,0x08,0x09

⌨️ 快捷键说明

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