; generated by Component: ARM Compiler 5.06 update 7 (build 960) Tool: ArmCC [4d365d]
; commandline ArmCC [--c99 --list --split_sections --debug -c --asm --interleave -o..\output\rcc_systemclockconfig.o --asm_dir=..\List\ --list_dir=..\List\ --depend=..\output\rcc_systemclockconfig.d --cpu=Cortex-M0+ --apcs=interwork --diag_suppress=9931 -I..\FWLib\SC32F1XXX_Lib\inc -I..\User\HeadFiles -I..\User -I..\Drivers -I..\Apps -I..\CMSIS -IF:\Users\SOC\AppData\Local\Arm\Packs\ARM\CMSIS\5.8.0\Device\ARM\ARMCM0plus\Include -D__UVISION_VERSION=536 -DARMCM0P -DSC32f10xx --omf_browse=..\output\rcc_systemclockconfig.crf ..\Apps\RCC_SystemClockConfig.c]
                          THUMB

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

                  RCC_SystemClockConfig_Function PROC
;;;18     
;;;19     void RCC_SystemClockConfig_Function(void)
000000  b08a              SUB      sp,sp,#0x28
;;;20     {  
;;;21       GPIO_InitTypeDef GPIO_InitStruct; //定义GPIO初始化结构体变量
;;;22       GPIO_InitStruct.GPIO_Pin = GPIO_Pin_10;
000002  2001              MOVS     r0,#1
000004  0280              LSLS     r0,r0,#10
000006  4669              MOV      r1,sp
000008  8188              STRH     r0,[r1,#0xc]
;;;23       GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT_PP;
00000a  2002              MOVS     r0,#2
00000c  81c8              STRH     r0,[r1,#0xe]
;;;24       GPIO_Init(GPIOA, &GPIO_InitStruct);
00000e  a903              ADD      r1,sp,#0xc
000010  4825              LDR      r0,|L1.168|
000012  f7fffffe          BL       GPIO_Init
;;;25       
;;;26       RCC_DeInit();
000016  f7fffffe          BL       RCC_DeInit
;;;27       RCC_Unlock(0xFF);//寄存器解锁
00001a  20ff              MOVS     r0,#0xff
00001c  f7fffffe          BL       RCC_Unlock
;;;28       
;;;29     #if(RCC_SYSCLKSource == 0)
;;;30       /* RCC_SYSCLKSource: HIRC*/
;;;31       RCC_HIRCCmd(ENABLE);
;;;32     #if defined(SC32f10xx)
;;;33       RCC_SYSCLKConfig(RCC_SYSCLKSource_HIRC);//SYSCLK=32MHz
;;;34     #elif defined(SC32f12xx)
;;;35       RCC_SYSCLKConfig( RCC_SYSCLKSource_HIRC_2);//SYSCLK=32MHz/36M
;;;36     #endif   
;;;37     	RCC_HCLKConfig(RCC_SYSCLK_Div1);//HCLK=SYSCLK/1
;;;38       /* 滴答定时器配置 */
;;;39       RCC_SystickCLKConfig(RCC_SysTickSource_HCLK);//SystickCLK=HCLK=32MHz
;;;40     #if defined(SC32f10xx)||defined(SC32f12xx)
;;;41       RCC_SystickSetCounter(32000000/1000); //1ms中断一次(SystickCLK/1000)
;;;42     
;;;43     #endif
;;;44     #elif	(RCC_SYSCLKSource == 1)
;;;45     
;;;46       /* RCC_SYSCLKSource:LIRC	*/
;;;47       RCC_LIRCCmd(ENABLE);
;;;48     
;;;49       RCC_SYSCLKConfig(RCC_SYSCLKSource_LIRC);//SYSCLK=32KHz
;;;50       RCC_HCLKConfig(RCC_SYSCLK_Div1);//HCLK=SYSCLK/1
;;;51       /* 滴答定时器配置 */
;;;52       RCC_SystickCLKConfig(RCC_SysTickSource_HCLK);//SystickCLK=HCLK=32KHz 
;;;53       RCC_SystickSetCounter(32000/1000);//1ms中断一次(SystickCLK/1000)
;;;54       
;;;55     #elif	(RCC_SYSCLKSource == 2)
;;;56       /* RCC_SYSCLKSource:LXT （需要起振时间） */
;;;57       RCC_LXTCmd(ENABLE);
;;;58       {
;;;59         uint32_t text = 5000000;
;;;60         while(text--);
;;;61       }
;;;62       RCC_Unlock(0xFF);
;;;63       RCC_SYSCLKConfig(RCC_SYSCLKSource_LXT);//SYSCLK=32.768KHz
;;;64       RCC_HCLKConfig(RCC_SYSCLK_Div1);//HCLK=SYSCLK/1
;;;65     
;;;66       /**/
;;;67       RCC_SystickCLKConfig(RCC_SysTickSource_HCLK);//SystickCLK=HCLK
;;;68       RCC_SystickSetCounter(32768/1000);//1ms中断一次(SystickCLK/1000)
;;;69     #endif
;;;70     #if defined(SC32f10xx)
;;;71     #if	(RCC_SYSCLKSource == 3)
;;;72     
;;;73       /* RCC_SYSCLKSource:PLL */
;;;74     	RCC_Unlock(0xFF);
000020  20ff              MOVS     r0,#0xff
000022  f7fffffe          BL       RCC_Unlock
;;;75     	RLL_Factor_TypeDef RLL_Factor_Struct;
;;;76     	RLL_Factor_Struct.PLLM = 16; //PLLM=HIRC/16=32/16=2MHz
000026  2010              MOVS     r0,#0x10
;;;77     	RLL_Factor_Struct.PLLN = 128; //PLLN=PLLM*144=2*128=256MHz
000028  9000              STR      r0,[sp,#0]
00002a  2080              MOVS     r0,#0x80
;;;78     	RLL_Factor_Struct.PLLP = 1;	//PLLP=PLLN/2^(1+1)=256/4=64MHz
00002c  9001              STR      r0,[sp,#4]
00002e  2001              MOVS     r0,#1
;;;79     	RCC_PLLConfig(RCC_PLLCLKSource_HIRC,&RLL_Factor_Struct);
000030  9002              STR      r0,[sp,#8]
000032  4669              MOV      r1,sp
000034  2000              MOVS     r0,#0
000036  f7fffffe          BL       RCC_PLLConfig
;;;80     	RCC_PLLCmd(ENABLE);
00003a  2001              MOVS     r0,#1
00003c  f7fffffe          BL       RCC_PLLCmd
;;;81     	while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
;;;82     	{
;;;83     		uint32_t waiting = 1500;
000040  4c1a              LDR      r4,|L1.172|
000042  e008              B        |L1.86|
                  |L1.68|
000044  4620              MOV      r0,r4
                  |L1.70|
000046  1e40              SUBS     r0,r0,#1
;;;84     		while(waiting--);
000048  d2fd              BCS      |L1.70|
;;;85     		RCC_Unlock(0xFF);
00004a  20ff              MOVS     r0,#0xff
00004c  f7fffffe          BL       RCC_Unlock
;;;86     		RCC_PLLRCmd(ENABLE);
000050  2001              MOVS     r0,#1
000052  f7fffffe          BL       RCC_PLLRCmd
                  |L1.86|
000056  2004              MOVS     r0,#4                 ;81
000058  f7fffffe          BL       RCC_GetFlagStatus
00005c  2800              CMP      r0,#0                 ;81
00005e  d0f1              BEQ      |L1.68|
;;;87     	}
;;;88     	RCC_PLLRCmd(ENABLE);
000060  2001              MOVS     r0,#1
000062  f7fffffe          BL       RCC_PLLRCmd
;;;89     	RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLRCLK);//SYSCLK=64M
000066  2001              MOVS     r0,#1
000068  0240              LSLS     r0,r0,#9
00006a  f7fffffe          BL       RCC_SYSCLKConfig
;;;90     	RCC_HCLKConfig(RCC_SYSCLK_Div1);
00006e  2000              MOVS     r0,#0
000070  f7fffffe          BL       RCC_HCLKConfig
;;;91       /**/
;;;92       RCC_SystickCLKConfig(RCC_SysTickSource_HCLK);//SystickCLK=HCLK
000074  2001              MOVS     r0,#1
000076  f7fffffe          BL       RCC_SystickCLKConfig
;;;93       RCC_SystickSetCounter(64000000/1000);//1ms中断一次(SystickCLK/1000)
00007a  207d              MOVS     r0,#0x7d
00007c  0240              LSLS     r0,r0,#9
00007e  f7fffffe          BL       RCC_SystickSetCounter
;;;94     #endif
;;;95     #elif	defined(SC32f12xx)
;;;96     #if	(RCC_SYSCLKSource == 3)
;;;97     
;;;98       RCC_HIRCDIV1Cmd(ENABLE);
;;;99       RCC_SYSCLKConfig(RCC_SYSCLKSource_HIRC);//SYSCLK=32.768KHz
;;;100      RCC_HCLKConfig(RCC_SYSCLK_Div1);//HCLK=SYSCLK/1
;;;101      /**/
;;;102      RCC_SystickCLKConfig(RCC_SysTickSource_HCLK);//SystickCLK=HCLK
;;;103      RCC_SystickSetCounter(64000000/1000);//1ms中断一次(SystickCLK/1000)
;;;104    #endif
;;;105    #endif
;;;106    #if defined(SC32f10xx) ||defined(SC32f12xx)
;;;107    #if	(RCC_SYSCLKSource == 4)
;;;108      /* RCC_SYSCLKSource:HXT */
;;;109      RCC_HXTCmd(ENABLE);
;;;110      RCC_SYSCLKConfig(RCC_SYSCLKSource_HXT);
;;;111      RCC_HCLKConfig(RCC_SYSCLK_Div1);//HCLK=SYSCLK/1
;;;112     
;;;113      /* 滴答定时器配置 */
;;;114      RCC_SystickCLKConfig(RCC_SysTickSource_HXT_DIV2);//SystickCLK=HXT/2(如果 SysTick时钟源不是来自HCLK，SysTick时钟源必须小于或等于HCLK/2)
;;;115      RCC_SystickSetCounter(8000000/1000);//1ms中断一次(SystickCLK/1000)
;;;116    #endif
;;;117    #endif
;;;118    
;;;119      
;;;120      /*使能滴答定时器中断*/	
;;;121      NVIC_EnableIRQ(SysTick_IRQn);
;;;122      RCC_SystickCmd(ENABLE);
000082  2001              MOVS     r0,#1
000084  f7fffffe          BL       RCC_SystickCmd
;;;123      
;;;124      /*时钟分频设置*/
;;;125      RCC_APB0Config(RCC_HCLK_Div2);//PCLK0=HCLK/2
000088  2401              MOVS     r4,#1
00008a  0524              LSLS     r4,r4,#20
00008c  4620              MOV      r0,r4
00008e  f7fffffe          BL       RCC_APB0Config
;;;126      RCC_APB1Config(RCC_HCLK_Div4);//PCLK1=HCLK/4
000092  0060              LSLS     r0,r4,#1
000094  f7fffffe          BL       RCC_APB1Config
;;;127      RCC_APB2Config(RCC_HCLK_Div2);//PCLK2=HCLK/2
000098  4620              MOV      r0,r4
00009a  f7fffffe          BL       RCC_APB2Config
;;;128      
;;;129      /*获取每个时钟的频率*/
;;;130      RCC_ClocksTypeDef RCC_Clocks;//定义结构体，存储各个时钟频率
;;;131      RCC_GetClocksFreq(&RCC_Clocks);//函数内HXT_VALUE可以根据实际外接晶振大小在芯片头文件中修改
00009e  a805              ADD      r0,sp,#0x14
0000a0  f7fffffe          BL       RCC_GetClocksFreq
                  |L1.164|
;;;132      
;;;133      while(1)
0000a4  e7fe              B        |L1.164|
;;;134      {
;;;135      }
;;;136    }
;;;137    
                          ENDP

0000a6  0000              DCW      0x0000
                  |L1.168|
                          DCD      0x40011000
                  |L1.172|
                          DCD      0x000005dc

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

                  SYSTICK_SystemClockConfig_SYSTICKHandler PROC
;;;137    
;;;138    void SYSTICK_SystemClockConfig_SYSTICKHandler(void)
000000  4901              LDR      r1,|L2.8|
;;;139    {
;;;140      PA_OT(10);   //PA10翻转
000002  2001              MOVS     r0,#1
000004  7688              STRB     r0,[r1,#0x1a]
;;;141    }
000006  4770              BX       lr
                          ENDP

                  |L2.8|
                          DCD      0x40011000

;*** Start embedded assembler ***

#line 1 "..\\Apps\\RCC_SystemClockConfig.c"
	AREA ||.rev16_text||, CODE
	THUMB
	EXPORT |__asm___23_RCC_SystemClockConfig_c_afa6d1ff____REV16|
#line 463 "..\\CMSIS\\cmsis_armcc.h"
|__asm___23_RCC_SystemClockConfig_c_afa6d1ff____REV16| PROC
#line 464

 rev16 r0, r0
 bx lr
	ENDP
	AREA ||.revsh_text||, CODE
	THUMB
	EXPORT |__asm___23_RCC_SystemClockConfig_c_afa6d1ff____REVSH|
#line 478
|__asm___23_RCC_SystemClockConfig_c_afa6d1ff____REVSH| PROC
#line 479

 revsh r0, r0
 bx lr
	ENDP

;*** End   embedded assembler ***
