; generated by ARM C/C++ Compiler, RVCT4.0 [Build 728]
; commandline ArmCC [--debug -c --asm --interleave -o..\OBJ\main.o --depend=..\OBJ\main.d --cpu=Cortex-M3 --apcs=interwork -O0 -I..\..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\..\Libraries\CMSIS\CM3\CoreSupport -I..\..\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x -I..\..\USER\INC -IC:\Keil\ARM\INC -IC:\Keil\ARM\INC\ST\STM32F10x -D__MICROLIB -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD --omf_browse=..\OBJ\main.crf ..\..\USER\SRC\main.c]
                          THUMB

                          AREA ||.text||, CODE, READONLY, ALIGN=2

                  CLK_generate PROC
;;;105    
;;;106     void CLK_generate(void)
000000  b500              PUSH     {lr}
;;;107    {
000002  b087              SUB      sp,sp,#0x1c
;;;108    	GPIO_InitTypeDef GPIO_InitStructure1;
;;;109     	RCC_ClocksTypeDef RCC_Clocks;   	
;;;110    	GPIO_InitStructure1.GPIO_Pin = GPIO_Pin_8;
000004  f44f7080          MOV      r0,#0x100
000008  f8ad0018          STRH     r0,[sp,#0x18]
;;;111    	GPIO_InitStructure1.GPIO_Mode = GPIO_Mode_AF_PP ; 
00000c  2018              MOVS     r0,#0x18
00000e  f88d001b          STRB     r0,[sp,#0x1b]
;;;112    	GPIO_InitStructure1.GPIO_Speed = GPIO_Speed_50MHz;
000012  2003              MOVS     r0,#3
000014  f88d001a          STRB     r0,[sp,#0x1a]
;;;113    	GPIO_Init(GPIOA, &GPIO_InitStructure1);  	
000018  a906              ADD      r1,sp,#0x18
00001a  484c              LDR      r0,|L1.332|
00001c  f7fffffe          BL       GPIO_Init
;;;114    	RCC_GetClocksFreq(&RCC_Clocks);  
000020  a801              ADD      r0,sp,#4
000022  f7fffffe          BL       RCC_GetClocksFreq
;;;115    	RCC_MCOConfig(RCC_MCO_HSE);   
000026  2006              MOVS     r0,#6
000028  f7fffffe          BL       RCC_MCOConfig
;;;116    
;;;117    }
00002c  b007              ADD      sp,sp,#0x1c
00002e  bd00              POP      {pc}
                          ENDP

                  RCC_Configuration PROC
;;;77     *******************************************************************************/
;;;78     void RCC_Configuration(void)
000030  b510              PUSH     {r4,lr}
;;;79     { 
;;;80     
;;;81       ErrorStatus HSEStartUpStatus;
;;;82       RCC_DeInit();
000032  f7fffffe          BL       RCC_DeInit
;;;83       RCC_HSEConfig(RCC_HSE_ON);   
000036  f44f3080          MOV      r0,#0x10000
00003a  f7fffffe          BL       RCC_HSEConfig
;;;84       HSEStartUpStatus = RCC_WaitForHSEStartUp();
00003e  f7fffffe          BL       RCC_WaitForHSEStartUp
000042  4604              MOV      r4,r0
;;;85     
;;;86       if(HSEStartUpStatus == SUCCESS)	  
000044  2c01              CMP      r4,#1
000046  d11e              BNE      |L1.134|
;;;87       {
;;;88       
;;;89         RCC_HCLKConfig(RCC_SYSCLK_Div1);  
000048  2000              MOVS     r0,#0
00004a  f7fffffe          BL       RCC_HCLKConfig
;;;90         RCC_PCLK2Config(RCC_HCLK_Div1);		   
00004e  2000              MOVS     r0,#0
000050  f7fffffe          BL       RCC_PCLK2Config
;;;91     	RCC_PCLK1Config(RCC_HCLK_Div2);	 	  
000054  02a0              LSLS     r0,r4,#10
000056  f7fffffe          BL       RCC_PCLK1Config
;;;92         RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);	
00005a  f44f11e0          MOV      r1,#0x1c0000
00005e  0420              LSLS     r0,r4,#16
000060  f7fffffe          BL       RCC_PLLConfig
;;;93         RCC_PLLCmd(ENABLE); 
000064  2001              MOVS     r0,#1
000066  f7fffffe          BL       RCC_PLLCmd
;;;94         while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)	  
00006a  bf00              NOP      
                  |L1.108|
00006c  2039              MOVS     r0,#0x39
00006e  f7fffffe          BL       RCC_GetFlagStatus
000072  2800              CMP      r0,#0
000074  d0fa              BEQ      |L1.108|
;;;95            {
;;;96            }
;;;97         RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); 
000076  2002              MOVS     r0,#2
000078  f7fffffe          BL       RCC_SYSCLKConfig
;;;98         while(RCC_GetSYSCLKSource() != 0x08)	  
00007c  bf00              NOP      
                  |L1.126|
00007e  f7fffffe          BL       RCC_GetSYSCLKSource
000082  2808              CMP      r0,#8
000084  d1fb              BNE      |L1.126|
                  |L1.134|
;;;99            { 
;;;100           }
;;;101         }
;;;102    
;;;103        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO, ENABLE); 
000086  2101              MOVS     r1,#1
000088  2005              MOVS     r0,#5
00008a  f7fffffe          BL       RCC_APB2PeriphClockCmd
;;;104    }
00008e  bd10              POP      {r4,pc}
;;;105    
                          ENDP

                  main PROC
;;;39     
;;;40     main()
000090  b51c              PUSH     {r2-r4,lr}
;;;41     { 
;;;42     	RCC_Configuration();;//ϵͳʱ
000092  f7fffffe          BL       RCC_Configuration
;;;43     	delay_init(72);		//ʱʼ
000096  2048              MOVS     r0,#0x48
000098  f7fffffe          BL       delay_init
;;;44     	USART1_Init(115200);//1ʼ 
00009c  f44f30e1          MOV      r0,#0x1c200
0000a0  f7fffffe          BL       USART1_Init
;;;45     	CLK_generate(); 
0000a4  f7fffffe          BL       CLK_generate
;;;46      	printf("QF: You are welcom!\r\n");
0000a8  a029              ADR      r0,|L1.336|
0000aa  f7fffffe          BL       __2printf
;;;47     
;;;48     	GpioInit(GPIOC, GPIO_Pin_13, GPIO_Mode_Out_PP, GPIO_Speed_50MHz);   	//WriteControl
0000ae  2303              MOVS     r3,#3
0000b0  2210              MOVS     r2,#0x10
0000b2  0251              LSLS     r1,r2,#9
0000b4  482c              LDR      r0,|L1.360|
0000b6  f7fffffe          BL       GpioInit
;;;49     	GpioInit(GPIOA, GPIO_Pin_0, GPIO_Mode_Out_PP, GPIO_Speed_50MHz);	//CMOS_CS
0000ba  2303              MOVS     r3,#3
0000bc  2210              MOVS     r2,#0x10
0000be  2101              MOVS     r1,#1
0000c0  4822              LDR      r0,|L1.332|
0000c2  f7fffffe          BL       GpioInit
;;;50     	GpioInit(GPIOA, GPIO_Pin_3, GPIO_Mode_Out_PP, GPIO_Speed_50MHz);	//LED
0000c6  2303              MOVS     r3,#3
0000c8  2210              MOVS     r2,#0x10
0000ca  2108              MOVS     r1,#8
0000cc  481f              LDR      r0,|L1.332|
0000ce  f7fffffe          BL       GpioInit
;;;51     	GPIOA->ODR ^= (1 <<3);						//LED1˸һ
0000d2  4826              LDR      r0,|L1.364|
0000d4  6800              LDR      r0,[r0,#0]
0000d6  f0800008          EOR      r0,r0,#8
0000da  4925              LDR      r1,|L1.368|
0000dc  f8c1080c          STR      r0,[r1,#0x80c]
;;;52     
;;;53     	Cmos_CS=1;
0000e0  f04f0001          MOV      r0,#1
0000e4  4923              LDR      r1,|L1.372|
0000e6  6008              STR      r0,[r1,#0]
;;;54     	WriteControl=1;
0000e8  4923              LDR      r1,|L1.376|
0000ea  f8c101b4          STR      r0,[r1,#0x1b4]
;;;55     	LCD_Init();			
0000ee  f7fffffe          BL       LCD_Init
;;;56     	InitI2C0();	  
0000f2  f7fffffe          BL       InitI2C0
;;;57     	LCD_Clear(BLUE);       // 
0000f6  201f              MOVS     r0,#0x1f
0000f8  f7fffffe          BL       LCD_Clear
;;;58     	POINT_COLOR=YELLOW;
0000fc  f64f70e0          MOV      r0,#0xffe0
000100  491e              LDR      r1,|L1.380|
000102  8008              STRH     r0,[r1,#0]
;;;59     	BACK_COLOR=BLUE;
000104  201f              MOVS     r0,#0x1f
000106  491e              LDR      r1,|L1.384|
000108  8008              STRH     r0,[r1,#0]
;;;60        	LCD_ShowString(20,50,"QF Welcom");
00010a  a21e              ADR      r2,|L1.388|
00010c  2132              MOVS     r1,#0x32
00010e  2014              MOVS     r0,#0x14
000110  f7fffffe          BL       LCD_ShowString
;;;61     	LCD_ShowString(20,100,"STM32 Camera");
000114  a21e              ADR      r2,|L1.400|
000116  2164              MOVS     r1,#0x64
000118  2014              MOVS     r0,#0x14
00011a  f7fffffe          BL       LCD_ShowString
;;;62     	LCD_ShowString(20,150,"OV2640 Initing......");
00011e  a220              ADR      r2,|L1.416|
000120  2196              MOVS     r1,#0x96
000122  2014              MOVS     r0,#0x14
000124  f7fffffe          BL       LCD_ShowString
;;;63     	while(1!=Cmos2640_init());   //CMOSʼ	
000128  bf00              NOP      
                  |L1.298|
00012a  f7fffffe          BL       Cmos2640_init
00012e  2801              CMP      r0,#1
000130  d1fb              BNE      |L1.298|
;;;64     	Exit_Init(GPIOC, GPIO_Pin_4, GPIO_Mode_IPU, EXTI_Trigger_Falling, 2, 5);	//VSYNC	
000132  2305              MOVS     r3,#5
000134  2202              MOVS     r2,#2
000136  e9cd2300          STRD     r2,r3,[sp,#0]
00013a  230c              MOVS     r3,#0xc
00013c  2248              MOVS     r2,#0x48
00013e  2110              MOVS     r1,#0x10
000140  4809              LDR      r0,|L1.360|
000142  f7fffffe          BL       Exit_Init
;;;65       	while(1) 
000146  bf00              NOP      
                  |L1.328|
000148  e7fe              B        |L1.328|
;;;66     	{		  		
;;;67     
;;;68     	}
;;;69     }
;;;70     
                          ENDP

00014a  0000              DCW      0x0000
                  |L1.332|
                          DCD      0x40010800
                  |L1.336|
000150  51463a20          DCB      "QF: You are welcom!\r\n",0
000154  596f7520
000158  61726520
00015c  77656c63
000160  6f6d210d
000164  0a00    
000166  00                DCB      0
000167  00                DCB      0
                  |L1.360|
                          DCD      0x40011000
                  |L1.364|
                          DCD      0x4001080c
                  |L1.368|
                          DCD      0x40010000
                  |L1.372|
                          DCD      0x42210180
                  |L1.376|
                          DCD      0x42220000
                  |L1.380|
                          DCD      POINT_COLOR
                  |L1.384|
                          DCD      BACK_COLOR
                  |L1.388|
000184  51462057          DCB      "QF Welcom",0
000188  656c636f
00018c  6d00    
00018e  00                DCB      0
00018f  00                DCB      0
                  |L1.400|
000190  53544d33          DCB      "STM32 Camera",0
000194  32204361
000198  6d657261
00019c  00      
00019d  00                DCB      0
00019e  00                DCB      0
00019f  00                DCB      0
                  |L1.416|
0001a0  4f563236          DCB      "OV2640 Initing......",0
0001a4  34302049
0001a8  6e697469
0001ac  6e672e2e
0001b0  2e2e2e2e
0001b4  00      
0001b5  00                DCB      0
0001b6  00                DCB      0
0001b7  00                DCB      0

                  __ARM_use_no_argv EQU 0
