; generated by ARM C/C++ Compiler, 5.03 [Build 24]
; commandline ArmCC [--list --debug -c --asm --interleave -o..\OBJ\main.o --asm_dir=..\LIST\ --list_dir=..\LIST\ --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\RV31\INC -IC:\Keil\ARM\CMSIS\Include -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

                  IO_Init PROC
;;;103    
;;;104    void IO_Init(void)
000000  b510              PUSH     {r4,lr}
;;;105    {
;;;106    
;;;107      	RCC->APB2ENR|=1<<0; //ʱ
000002  4859              LDR      r0,|L1.360|
000004  6980              LDR      r0,[r0,#0x18]
000006  f0400001          ORR      r0,r0,#1
00000a  4957              LDR      r1,|L1.360|
00000c  6188              STR      r0,[r1,#0x18]
;;;108    	RCC->APB2ENR|=1<<2;//ʹPORTAʱ
00000e  4608              MOV      r0,r1
000010  6980              LDR      r0,[r0,#0x18]
000012  f0400004          ORR      r0,r0,#4
000016  6188              STR      r0,[r1,#0x18]
;;;109    	RCC->APB2ENR|=1<<3;//ʹPORTBʱ
000018  4608              MOV      r0,r1
00001a  6980              LDR      r0,[r0,#0x18]
00001c  f0400008          ORR      r0,r0,#8
000020  6188              STR      r0,[r1,#0x18]
;;;110     	RCC->APB2ENR|=1<<4;//ʹPORTCʱ
000022  4608              MOV      r0,r1
000024  6980              LDR      r0,[r0,#0x18]
000026  f0400010          ORR      r0,r0,#0x10
00002a  6188              STR      r0,[r1,#0x18]
;;;111    
;;;112       	GPIOA->CRH=0X33333333; //PORTA
00002c  f04f3033          MOV      r0,#0x33333333
000030  494e              LDR      r1,|L1.364|
000032  6008              STR      r0,[r1,#0]
;;;113    	GPIOA->CRL=0X33333333;
000034  1f09              SUBS     r1,r1,#4
000036  6008              STR      r0,[r1,#0]
;;;114    	GPIOA->ODR=0XFFFF;	 
000038  f64f70ff          MOV      r0,#0xffff
00003c  494b              LDR      r1,|L1.364|
00003e  3108              ADDS     r1,r1,#8
000040  6008              STR      r0,[r1,#0]
;;;115    
;;;116    	GPIOB->CRL=0X88888888; //PB0-7  
000042  f04f3088          MOV      r0,#0x88888888
000046  494a              LDR      r1,|L1.368|
000048  6008              STR      r0,[r1,#0]
;;;117    	GPIOB->CRH=0X33333333; //PB8-15  
00004a  f04f3033          MOV      r0,#0x33333333
00004e  1d09              ADDS     r1,r1,#4
000050  6008              STR      r0,[r1,#0]
;;;118    	GPIOA->ODR=0XFFFF;
000052  f64f70ff          MOV      r0,#0xffff
000056  4945              LDR      r1,|L1.364|
000058  3108              ADDS     r1,r1,#8
00005a  6008              STR      r0,[r1,#0]
;;;119    
;;;120       	GPIOC->CRH=0X33333333; //PORTC
00005c  f04f3033          MOV      r0,#0x33333333
000060  4944              LDR      r1,|L1.372|
000062  6048              STR      r0,[r1,#4]
;;;121    	GPIOC->CRL=0X33333333; 	
000064  6008              STR      r0,[r1,#0]
;;;122    	GPIOC->ODR=0XFFFF;	
000066  f64f70ff          MOV      r0,#0xffff
00006a  60c8              STR      r0,[r1,#0xc]
;;;123    		    
;;;124       	JTAG_Set(SWD_ENABLE);	 //JTAGֹܽSWD
00006c  2001              MOVS     r0,#1
00006e  f7fffffe          BL       JTAG_Set
;;;125    }
000072  bd10              POP      {r4,pc}
                          ENDP

                  RCC_Configuration PROC
;;;75     *******************************************************************************/
;;;76     void RCC_Configuration(void)
000074  b510              PUSH     {r4,lr}
;;;77     { 
;;;78     
;;;79       ErrorStatus HSEStartUpStatus;
;;;80       RCC_DeInit();
000076  f7fffffe          BL       RCC_DeInit
;;;81       RCC_HSEConfig(RCC_HSE_ON);   
00007a  f44f3080          MOV      r0,#0x10000
00007e  f7fffffe          BL       RCC_HSEConfig
;;;82       HSEStartUpStatus = RCC_WaitForHSEStartUp();
000082  f7fffffe          BL       RCC_WaitForHSEStartUp
000086  4604              MOV      r4,r0
;;;83     
;;;84       if(HSEStartUpStatus == SUCCESS)	  
000088  2c01              CMP      r4,#1
00008a  d11e              BNE      |L1.202|
;;;85       {
;;;86       
;;;87         RCC_HCLKConfig(RCC_SYSCLK_Div1);  
00008c  2000              MOVS     r0,#0
00008e  f7fffffe          BL       RCC_HCLKConfig
;;;88         RCC_PCLK2Config(RCC_HCLK_Div1);		   
000092  2000              MOVS     r0,#0
000094  f7fffffe          BL       RCC_PCLK2Config
;;;89     	RCC_PCLK1Config(RCC_HCLK_Div2);	 	  
000098  02a0              LSLS     r0,r4,#10
00009a  f7fffffe          BL       RCC_PCLK1Config
;;;90         RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);	
00009e  f44f11e0          MOV      r1,#0x1c0000
0000a2  0420              LSLS     r0,r4,#16
0000a4  f7fffffe          BL       RCC_PLLConfig
;;;91         RCC_PLLCmd(ENABLE); 
0000a8  2001              MOVS     r0,#1
0000aa  f7fffffe          BL       RCC_PLLCmd
;;;92         while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)	  
0000ae  bf00              NOP      
                  |L1.176|
0000b0  2039              MOVS     r0,#0x39
0000b2  f7fffffe          BL       RCC_GetFlagStatus
0000b6  2800              CMP      r0,#0
0000b8  d0fa              BEQ      |L1.176|
;;;93            {
;;;94            }
;;;95         RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); 
0000ba  2002              MOVS     r0,#2
0000bc  f7fffffe          BL       RCC_SYSCLKConfig
;;;96         while(RCC_GetSYSCLKSource() != 0x08)	  
0000c0  bf00              NOP      
                  |L1.194|
0000c2  f7fffffe          BL       RCC_GetSYSCLKSource
0000c6  2808              CMP      r0,#8
0000c8  d1fb              BNE      |L1.194|
                  |L1.202|
;;;97            { 
;;;98            }
;;;99          }
;;;100    
;;;101        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO, ENABLE); 
0000ca  2101              MOVS     r1,#1
0000cc  2005              MOVS     r0,#5
0000ce  f7fffffe          BL       RCC_APB2PeriphClockCmd
;;;102    }
0000d2  bd10              POP      {r4,pc}
;;;103    
                          ENDP

                  main PROC
;;;38     
;;;39     main()
0000d4  b51c              PUSH     {r2-r4,lr}
;;;40     { 
;;;41     	RCC_Configuration();;//ϵͳʱ
0000d6  f7fffffe          BL       RCC_Configuration
;;;42     	delay_init(72);		//ʱʼ
0000da  2048              MOVS     r0,#0x48
0000dc  f7fffffe          BL       delay_init
;;;43     	USART1_Init(115200);//1ʼ  
0000e0  f44f30e1          MOV      r0,#0x1c200
0000e4  f7fffffe          BL       USART1_Init
;;;44      	printf("QF: You are welcome!\r\n");	 
0000e8  a023              ADR      r0,|L1.376|
0000ea  f7fffffe          BL       __2printf
;;;45     
;;;46     
;;;47     	IO_Init(); 
0000ee  f7fffffe          BL       IO_Init
;;;48     	LCD_Init();
0000f2  f7fffffe          BL       LCD_Init
;;;49     	LCD_Clear(BLUE);       // 
0000f6  201f              MOVS     r0,#0x1f
0000f8  f7fffffe          BL       LCD_Clear
;;;50     	POINT_COLOR=YELLOW;
0000fc  f64f70e0          MOV      r0,#0xffe0
000100  4923              LDR      r1,|L1.400|
000102  8008              STRH     r0,[r1,#0]
;;;51     	BACK_COLOR=BLUE;
000104  201f              MOVS     r0,#0x1f
000106  4923              LDR      r1,|L1.404|
000108  8008              STRH     r0,[r1,#0]
;;;52        	LCD_ShowString(20,50,"QF Welcome!");
00010a  a223              ADR      r2,|L1.408|
00010c  2132              MOVS     r1,#0x32
00010e  2014              MOVS     r0,#0x14
000110  f7fffffe          BL       LCD_ShowString
;;;53     	LCD_ShowString(20,100,"STM32 Camera");
000114  a223              ADR      r2,|L1.420|
000116  2164              MOVS     r1,#0x64
000118  2014              MOVS     r0,#0x14
00011a  f7fffffe          BL       LCD_ShowString
;;;54     	LCD_ShowString(20,150,"OV7670 Initing......");
00011e  a225              ADR      r2,|L1.436|
000120  2196              MOVS     r1,#0x96
000122  2014              MOVS     r0,#0x14
000124  f7fffffe          BL       LCD_ShowString
;;;55     	CMOS1_PWDN=0;
000128  2000              MOVS     r0,#0
00012a  4928              LDR      r1,|L1.460|
00012c  6008              STR      r0,[r1,#0]
;;;56     	CMOS1_RST=0;
00012e  4928              LDR      r1,|L1.464|
000130  f8c1018c          STR      r0,[r1,#0x18c]
;;;57     	delay_ms(20);
000134  f04f0014          MOV      r0,#0x14
000138  f7fffffe          BL       delay_ms
;;;58     	CMOS1_RST=1;
00013c  2001              MOVS     r0,#1
00013e  4925              LDR      r1,|L1.468|
000140  6008              STR      r0,[r1,#0]
;;;59     	InitI2C0();	 
000142  f7fffffe          BL       InitI2C0
;;;60     	while(1!=Cmos7670_init());   //CMOSʼ	
000146  bf00              NOP      
                  |L1.328|
000148  f7fffffe          BL       Cmos7670_init
00014c  2801              CMP      r0,#1
00014e  d1fb              BNE      |L1.328|
;;;61     	Exit_Init(GPIOC, GPIO_Pin_4, GPIO_Mode_IPU, EXTI_Trigger_Falling, 2, 5);	//VSYNC	 	
000150  2005              MOVS     r0,#5
000152  2102              MOVS     r1,#2
000154  230c              MOVS     r3,#0xc
000156  2248              MOVS     r2,#0x48
000158  e9cd1000          STRD     r1,r0,[sp,#0]
00015c  2110              MOVS     r1,#0x10
00015e  4805              LDR      r0,|L1.372|
000160  f7fffffe          BL       Exit_Init
;;;62     
;;;63       	while(1) 
000164  bf00              NOP      
                  |L1.358|
000166  e7fe              B        |L1.358|
;;;64     	{		  	
;;;65     	  
;;;66     	}
;;;67     }
;;;68     
                          ENDP

                  |L1.360|
                          DCD      0x40021000
                  |L1.364|
                          DCD      0x40010804
                  |L1.368|
                          DCD      0x40010c00
                  |L1.372|
                          DCD      0x40011000
                  |L1.376|
000178  51463a20          DCB      "QF: You are welcome!\r\n",0
00017c  596f7520
000180  61726520
000184  77656c63
000188  6f6d6521
00018c  0d0a00  
00018f  00                DCB      0
                  |L1.400|
                          DCD      POINT_COLOR
                  |L1.404|
                          DCD      BACK_COLOR
                  |L1.408|
000198  51462057          DCB      "QF Welcome!",0
00019c  656c636f
0001a0  6d652100
                  |L1.420|
0001a4  53544d33          DCB      "STM32 Camera",0
0001a8  32204361
0001ac  6d657261
0001b0  00      
0001b1  00                DCB      0
0001b2  00                DCB      0
0001b3  00                DCB      0
                  |L1.436|
0001b4  4f563736          DCB      "OV7670 Initing......",0
0001b8  37302049
0001bc  6e697469
0001c0  6e672e2e
0001c4  2e2e2e2e
0001c8  00      
0001c9  00                DCB      0
0001ca  00                DCB      0
0001cb  00                DCB      0
                  |L1.460|
                          DCD      0x42218190
                  |L1.464|
                          DCD      0x42218000
                  |L1.468|
                          DCD      0x4221818c

                  __ARM_use_no_argv EQU 0
