📄 main.txt
字号:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.1 [Build 902] for uVision
; commandline ArmCC [--debug -c --asm --interleave -o..\Obj\main.o --depend=..\Obj\main.d --device=DARMSTM -I..\..\..\..\..\INC\ST\STM32F10x -IC:\Keil\ARM\INC\ST\STM32F10x -DVECT_TAB_FLASH --omf_browse=..\Obj\main.crf main.c]
THUMB
AREA ||.text||, CODE, READONLY, ALIGN=2
NVIC_Configuration PROC
;;;194 void NVIC_Configuration(void)
;;;195 {
000000 b510 PUSH {r4,lr}
;;;196 #ifdef VECT_TAB_RAM
;;;197 /* Set the Vector Table base location at 0x20000000 */
;;;198 NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);
;;;199 #else /* VECT_TAB_FLASH */
;;;200 /* Set the Vector Table base location at 0x08000000 */
;;;201 NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);
000002 2100 MOVS r1,#0
000004 4608 MOV r0,r1
000006 f7fff7ff BL NVIC_SetVectorTable
;;;202 #endif
;;;203 }
00000a bd10 POP {r4,pc}
ENDP
GPIO_Configuration PROC
;;;174 void GPIO_Configuration(void)
;;;175 {
00000c b508 PUSH {r3,lr}
;;;176 GPIO_InitTypeDef GPIO_InitStructure;
;;;177
;;;178 /* Enable GPIOC clock */
;;;179 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC , ENABLE);
00000e 2101 MOVS r1,#1
000010 2010 MOVS r0,#0x10
000012 f7fff7ff BL RCC_APB2PeriphClockCmd
;;;180
;;;181 /* Configure Pc.04 (ADC Channel14) as analog input */
;;;182 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
000016 2010 MOVS r0,#0x10
000018 f8adf8ad STRH r0,[sp,#0]
;;;183 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
00001c 2000 MOVS r0,#0
00001e f88df88d STRB r0,[sp,#3]
;;;184 GPIO_Init(GPIOC, &GPIO_InitStructure);
000022 4669 MOV r1,sp
000024 4848 LDR r0,|L1.328|
000026 f7fff7ff BL GPIO_Init
;;;185 }
00002a bd08 POP {r3,pc}
ENDP
RCC_Configuration PROC
;;;113 void RCC_Configuration(void)
;;;114 {
00002c b510 PUSH {r4,lr}
;;;115 /* RCC system reset(for debug purpose) */
;;;116 RCC_DeInit();
00002e f7fff7ff BL RCC_DeInit
;;;117
;;;118 /* Enable HSE */
;;;119 RCC_HSEConfig(RCC_HSE_ON);
000032 f44ff44f MOV r0,#0x10000
000036 f7fff7ff BL RCC_HSEConfig
;;;120
;;;121 /* Wait till HSE is ready */
;;;122 while(RCC_GetFlagStatus(RCC_FLAG_HSERDY) == RESET)
00003a bf00 NOP
|L1.60|
00003c 2031 MOVS r0,#0x31
00003e f7fff7ff BL RCC_GetFlagStatus
000042 2800 CMP r0,#0
000044 d0fa BEQ |L1.60|
;;;123 {
;;;124 }
;;;125
;;;126 /* HCLK = SYSCLK */
;;;127 RCC_HCLKConfig(RCC_SYSCLK_Div1);
000046 2000 MOVS r0,#0
000048 f7fff7ff BL RCC_HCLKConfig
;;;128
;;;129 /* PCLK2 = HCLK */
;;;130 RCC_PCLK2Config(RCC_HCLK_Div1);
00004c 2000 MOVS r0,#0
00004e f7fff7ff BL RCC_PCLK2Config
;;;131
;;;132 /* PCLK1 = HCLK/2 */
;;;133 RCC_PCLK1Config(RCC_HCLK_Div2);
000052 f44ff44f MOV r0,#0x400
000056 f7fff7ff BL RCC_PCLK1Config
;;;134
;;;135 /* ADCCLK = PCLK2/4 */
;;;136 RCC_ADCCLKConfig(RCC_PCLK2_Div4);
00005a f44ff44f MOV r0,#0x4000
00005e f7fff7ff BL RCC_ADCCLKConfig
;;;137
;;;138 /* Flash 1 wait state */
;;;139 *(vu32 *)0x40022000 = 0x01;
000062 2001 MOVS r0,#1
000064 4939 LDR r1,|L1.332|
000066 6008 STR r0,[r1,#0]
;;;140
;;;141 /* PLLCLK = 8MHz * 7 = 56 MHz */
;;;142 RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_7);
000068 f44ff44f MOV r1,#0x140000
00006c 0400 LSLS r0,r0,#16
00006e f7fff7ff BL RCC_PLLConfig
;;;143
;;;144 /* Enable PLL */
;;;145 RCC_PLLCmd(ENABLE);
000072 2001 MOVS r0,#1
000074 f7fff7ff BL RCC_PLLCmd
;;;146
;;;147 /* Wait till PLL is ready */
;;;148 while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
000078 bf00 NOP
|L1.122|
00007a 2039 MOVS r0,#0x39
00007c f7fff7ff BL RCC_GetFlagStatus
000080 2800 CMP r0,#0
000082 d0fa BEQ |L1.122|
;;;149 {
;;;150 }
;;;151
;;;152 /* Select PLL as system clock source */
;;;153 RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
000084 2002 MOVS r0,#2
000086 f7fff7ff BL RCC_SYSCLKConfig
;;;154
;;;155 /* Wait till PLL is used as system clock source */
;;;156 while(RCC_GetSYSCLKSource() != 0x08)
00008a bf00 NOP
|L1.140|
00008c f7fff7ff BL RCC_GetSYSCLKSource
000090 2808 CMP r0,#8
000092 d1fb BNE |L1.140|
;;;157 {
;;;158 }
;;;159
;;;160 /* Enable DMA clock */
;;;161 RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA, ENABLE);
000094 2101 MOVS r1,#1
000096 4608 MOV r0,r1
000098 f7fff7ff BL RCC_AHBPeriphClockCmd
;;;162
;;;163 /* Enable ADC1 clock */
;;;164 RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);
00009c 2101 MOVS r1,#1
00009e 0248 LSLS r0,r1,#9
0000a0 f7fff7ff BL RCC_APB2PeriphClockCmd
;;;165 }
0000a4 bd10 POP {r4,pc}
ENDP
main PROC
;;;46 int main(void)
;;;47 {
0000a6 b510 PUSH {r4,lr}
;;;48 #ifdef DEBUG
;;;49 debug();
;;;50 #endif
;;;51
;;;52 /* System Clocks Configuration ---------------------------------------------*/
;;;53 RCC_Configuration();
0000a8 f7fff7ff BL RCC_Configuration
;;;54
;;;55 /* GPIO Configuration ------------------------------------------------------*/
;;;56 GPIO_Configuration();
0000ac f7fff7ff BL GPIO_Configuration
;;;57
;;;58 /* NVIC configuration ------------------------------------------------------*/
;;;59 NVIC_Configuration();
0000b0 f7fff7ff BL NVIC_Configuration
;;;60
;;;61 /* DMA Channel1 Configuration ----------------------------------------------*/
;;;62 DMA_DeInit(DMA_Channel1);
0000b4 4826 LDR r0,|L1.336|
0000b6 f7fff7ff BL DMA_DeInit
;;;63 DMA_InitStructure.DMA_PeripheralBaseAddr = ADC1_DR_Address;
0000ba 4826 LDR r0,|L1.340|
0000bc 4926 LDR r1,|L1.344|
0000be 6008 STR r0,[r1,#0] ; DMA_InitStructure
;;;64 DMA_InitStructure.DMA_MemoryBaseAddr = (u32)&ADC_ConvertedValue;
0000c0 4826 LDR r0,|L1.348|
0000c2 6048 STR r0,[r1,#4] ; DMA_InitStructure
;;;65 DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;
0000c4 2000 MOVS r0,#0
0000c6 6088 STR r0,[r1,#8] ; DMA_InitStructure
;;;66 DMA_InitStructure.DMA_BufferSize = 1;
0000c8 2001 MOVS r0,#1
0000ca 60c8 STR r0,[r1,#0xc] ; DMA_InitStructure
;;;67 DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
0000cc 2000 MOVS r0,#0
0000ce 6108 STR r0,[r1,#0x10] ; DMA_InitStructure
;;;68 DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Disable;
0000d0 6148 STR r0,[r1,#0x14] ; DMA_InitStructure
;;;69 DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;
0000d2 f44ff44f MOV r0,#0x100
0000d6 6188 STR r0,[r1,#0x18] ; DMA_InitStructure
;;;70 DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;
0000d8 0080 LSLS r0,r0,#2
0000da 61c8 STR r0,[r1,#0x1c] ; DMA_InitStructure
;;;71 DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;
0000dc 2020 MOVS r0,#0x20
0000de 6208 STR r0,[r1,#0x20] ; DMA_InitStructure
;;;72 DMA_InitStructure.DMA_Priority = DMA_Priority_High;
0000e0 0200 LSLS r0,r0,#8
0000e2 6248 STR r0,[r1,#0x24] ; DMA_InitStructure
;;;73 DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;
0000e4 2000 MOVS r0,#0
0000e6 6288 STR r0,[r1,#0x28] ; DMA_InitStructure
;;;74 DMA_Init(DMA_Channel1, &DMA_InitStructure);
0000e8 4819 LDR r0,|L1.336|
0000ea f7fff7ff BL DMA_Init
;;;75
;;;76 /* Enable DMA Channel1 */
;;;77 DMA_Cmd(DMA_Channel1, ENABLE);
0000ee 2101 MOVS r1,#1
0000f0 4817 LDR r0,|L1.336|
0000f2 f7fff7ff BL DMA_Cmd
;;;78
;;;79
;;;80 /* ADCx Configuration (ADC1CLK = 14 MHz) -----------------------------------*/
;;;81 ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;
0000f6 2000 MOVS r0,#0
0000f8 4919 LDR r1,|L1.352|
0000fa 6008 STR r0,[r1,#0] ; ADC_InitStructure
;;;82 ADC_InitStructure.ADC_ScanConvMode = ENABLE;
0000fc 2001 MOVS r0,#1
0000fe 7108 STRB r0,[r1,#4] ; ADC_InitStructure
;;;83 ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;
000100 7148 STRB r0,[r1,#5] ; ADC_InitStructure
;;;84 ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
000102 f44ff44f MOV r0,#0xe0000
000106 6088 STR r0,[r1,#8] ; ADC_InitStructure
;;;85 ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
000108 2000 MOVS r0,#0
00010a 60c8 STR r0,[r1,#0xc] ; ADC_InitStructure
;;;86 ADC_InitStructure.ADC_NbrOfChannel = 1;
00010c 2001 MOVS r0,#1
00010e 7408 STRB r0,[r1,#0x10] ; ADC_InitStructure
;;;87 ADC_Init(ADC1, &ADC_InitStructure);
000110 4810 LDR r0,|L1.340|
000112 384c SUBS r0,r0,#0x4c
000114 f7fff7ff BL ADC_Init
;;;88
;;;89 /* ADCx Regular Channel14 Configuration */
;;;90 ADC_RegularChannelConfig(ADC1, ADC_Channel_14, 1, ADC_SampleTime_55Cycles5);
000118 2305 MOVS r3,#5
00011a 2201 MOVS r2,#1
00011c 210e MOVS r1,#0xe
00011e 480d LDR r0,|L1.340|
000120 384c SUBS r0,r0,#0x4c
000122 f7fff7ff BL ADC_RegularChannelConfig
;;;91
;;;92 /* Enable ADCx's DMA interface */
;;;93 ADC_DMACmd(ADC1, ENABLE);
000126 2101 MOVS r1,#1
000128 480a LDR r0,|L1.340|
00012a 384c SUBS r0,r0,#0x4c
00012c f7fff7ff BL ADC_DMACmd
;;;94
;;;95 /* Enable ADCx */
;;;96 ADC_Cmd(ADC1, ENABLE);
000130 2101 MOVS r1,#1
000132 4808 LDR r0,|L1.340|
000134 384c SUBS r0,r0,#0x4c
000136 f7fff7ff BL ADC_Cmd
;;;97
;;;98 /* Start ADC1 Software Conversion */
;;;99 ADC_SoftwareStartConvCmd(ADC1, ENABLE);
00013a 2101 MOVS r1,#1
00013c 4805 LDR r0,|L1.340|
00013e 384c SUBS r0,r0,#0x4c
000140 f7fff7ff BL ADC_SoftwareStartConvCmd
;;;100
;;;101 while(1)
000144 bf00 NOP
|L1.326|
000146 e7fe B |L1.326|
;;;102 {
;;;103 }
;;;104 }
ENDP
|L1.328|
000148 40011000 DCD 0x40011000
|L1.332|
00014c 40022000 DCD 0x40022000
|L1.336|
000150 40020008 DCD 0x40020008
|L1.340|
000154 4001244c DCD 0x4001244c
|L1.344|
000158 00000000 DCD DMA_InitStructure
|L1.348|
00015c 00000000 DCD ADC_ConvertedValue
|L1.352|
000160 00000000 DCD ADC_InitStructure
AREA ||.data||, DATA, ALIGN=1
ADC_ConvertedValue
000000 0000 DCB 0x00,0x00
AREA ||.bss||, DATA, NOINIT, ALIGN=2
ADC_InitStructure
% 20
DMA_InitStructure
% 44
__ARM_use_no_argv EQU 0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -