📄 main.txt
字号:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.1 [Build 938] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\obj\main.o --depend=.\obj\main.d --device=DARMSTM --apcs=interwork -O3 -I..\..\library\inc -I..\..\library\src -I..\uvsion -ID:\Keil\ARM\INC\ST\STM32F10x --omf_browse=.\obj\main.crf main.c]
THUMB
AREA ||i.USART_Configuration1||, CODE, READONLY, ALIGN=2
USART_Configuration1 PROC
;;;282 void USART_Configuration1(void)
;;;283 {
000000 b530 PUSH {r4,r5,lr}
000002 b089 SUB sp,sp,#0x24
;;;284 USART_InitTypeDef USART_InitStructure;
;;;285 USART_ClockInitTypeDef USART_ClockInitStructure;
;;;286 /* USART1 configuration ------------------------------------------------------*/
;;;287 /* USART1 configured as follow:
;;;288 - BaudRate = 115200 baud
;;;289 - Word Length = 8 Bits
;;;290 - One Stop Bit
;;;291 - No parity
;;;292 - Hardware flow control disabled (RTS and CTS signals)
;;;293 - Receive and transmit enabled
;;;294 - USART Clock disabled
;;;295 - USART CPOL: Clock is active low
;;;296 - USART CPHA: Data is captured on the middle
;;;297 - USART LastBit: The clock pulse of the last data bit is not output to
;;;298 the SCLK pin
;;;299 */
;;;300 USART_ClockInitStructure.USART_Clock = USART_Clock_Disable;
000004 2400 MOVS r4,#0
;;;301 USART_ClockInitStructure.USART_CPOL = USART_CPOL_Low;
;;;302 USART_ClockInitStructure.USART_CPHA = USART_CPHA_2Edge;
000006 f44f7000 MOV r0,#0x200
00000a f8ad0008 STRH r0,[sp,#8]
;;;303 USART_ClockInitStructure.USART_LastBit = USART_LastBit_Disable;
;;;304 /* Configure the USART1 synchronous paramters */
;;;305 USART_ClockInit(USART1, &USART_ClockInitStructure);
00000e 4d11 LDR r5,|L1.84|
000010 f8ad4004 STRH r4,[sp,#4] ;300
000014 f8ad4006 STRH r4,[sp,#6] ;301
000018 f8ad400a STRH r4,[sp,#0xa] ;303
00001c a901 ADD r1,sp,#4
00001e 4628 MOV r0,r5
000020 f7fffffe BL USART_ClockInit
;;;306
;;;307 USART_InitStructure.USART_BaudRate = 115200;
000024 f44f30e1 MOV r0,#0x1c200
;;;308 USART_InitStructure.USART_WordLength = USART_WordLength_8b;
000028 9003 STR r0,[sp,#0xc]
;;;309 USART_InitStructure.USART_StopBits = USART_StopBits_1;
;;;310 USART_InitStructure.USART_Parity = USART_Parity_No ;
00002a f8ad4014 STRH r4,[sp,#0x14]
;;;311 USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
;;;312
;;;313
;;;314 USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
00002e 200c MOVS r0,#0xc
000030 f8ad4010 STRH r4,[sp,#0x10] ;308
000034 f8ad0016 STRH r0,[sp,#0x16]
000038 f8ad4012 STRH r4,[sp,#0x12] ;309
00003c f8ad4018 STRH r4,[sp,#0x18] ;311
;;;315 /* Configure USART1 basic and asynchronous paramters */
;;;316 USART_Init(USART1, &USART_InitStructure);
000040 a903 ADD r1,sp,#0xc
000042 4628 MOV r0,r5
000044 f7fffffe BL USART_Init
;;;317 /* Enable USART1 */
;;;318 USART_Cmd(USART1, ENABLE);
000048 2101 MOVS r1,#1
00004a 4628 MOV r0,r5
00004c f7fffffe BL USART_Cmd
;;;319 }
000050 b009 ADD sp,sp,#0x24
000052 bd30 POP {r4,r5,pc}
;;;320
ENDP
|L1.84|
000054 40013800 DCD 0x40013800
AREA ||i.GPIO_Configuration||, CODE, READONLY, ALIGN=2
GPIO_Configuration PROC
;;;214 void GPIO_Configuration(void)
;;;215 {
000000 b538 PUSH {r3-r5,lr}
;;;216 GPIO_InitTypeDef GPIO_InitStructure;
;;;217
;;;218 /* Configure PC.04 (ADC Channel14) as analog input -------------------------*/
;;;219 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
000002 2010 MOVS r0,#0x10
000004 f8ad0000 STRH r0,[sp,#0]
;;;220 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
000008 2000 MOVS r0,#0
00000a f88d0003 STRB r0,[sp,#3]
;;;221 GPIO_Init(GPIOC, &GPIO_InitStructure);
00000e 4669 MOV r1,sp
000010 480e LDR r0,|L2.76|
000012 f7fffffe BL GPIO_Init
;;;222
;;;223 /* Configure USART1 Tx (PA.09) as alternate function push-pull */
;;;224 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
000016 f44f7000 MOV r0,#0x200
00001a f8ad0000 STRH r0,[sp,#0]
;;;225 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
00001e 2018 MOVS r0,#0x18
000020 f88d0003 STRB r0,[sp,#3]
;;;226 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
000024 2003 MOVS r0,#3
;;;227 GPIO_Init(GPIOA, &GPIO_InitStructure);
000026 4c0a LDR r4,|L2.80|
000028 f88d0002 STRB r0,[sp,#2] ;226
00002c 4669 MOV r1,sp
00002e 4620 MOV r0,r4
000030 f7fffffe BL GPIO_Init
;;;228
;;;229 /* Configure USART1 Rx (PA.10) as input floating */
;;;230 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
000034 1520 ASRS r0,r4,#20
000036 f8ad0000 STRH r0,[sp,#0]
;;;231 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
00003a 2004 MOVS r0,#4
00003c f88d0003 STRB r0,[sp,#3]
;;;232 GPIO_Init(GPIOA, &GPIO_InitStructure);
000040 4669 MOV r1,sp
000042 4620 MOV r0,r4
000044 f7fffffe BL GPIO_Init
;;;233
;;;234 }
000048 bd38 POP {r3-r5,pc}
;;;235
ENDP
00004a 0000 DCW 0x0000
|L2.76|
00004c 40011000 DCD 0x40011000
|L2.80|
000050 40010800 DCD 0x40010800
AREA ||i.NVIC_Configuration||, CODE, READONLY, ALIGN=1
NVIC_Configuration PROC
000000 2100 MOVS r1,#0
000002 f04f6000 MOV r0,#0x8000000
000006 f7ffbffe B.W NVIC_SetVectorTable
ENDP
AREA ||i.RCC_Configuration||, CODE, READONLY, ALIGN=2
RCC_Configuration PROC
;;;146 void RCC_Configuration(void)
;;;147 {
000000 b510 PUSH {r4,lr}
;;;148 /* RCC system reset(for debug purpose) */
;;;149 RCC_DeInit();
000002 f7fffffe BL RCC_DeInit
;;;150
;;;151 /* Enable HSE */
;;;152 RCC_HSEConfig(RCC_HSE_ON);
000006 f44f3480 MOV r4,#0x10000
00000a 4620 MOV r0,r4
00000c f7fffffe BL RCC_HSEConfig
;;;153
;;;154 /* Wait till HSE is ready */
;;;155 HSEStartUpStatus = RCC_WaitForHSEStartUp();
000010 f7fffffe BL RCC_WaitForHSEStartUp
000014 491d LDR r1,|L4.140|
000016 7048 STRB r0,[r1,#1] ; HSEStartUpStatus
;;;156
;;;157 if(HSEStartUpStatus == SUCCESS)
000018 b2c0 UXTB r0,r0
00001a 2801 CMP r0,#1
00001c d126 BNE |L4.108|
;;;158 {
;;;159 /* HCLK = SYSCLK */
;;;160 RCC_HCLKConfig(RCC_SYSCLK_Div1);
00001e 2000 MOVS r0,#0
000020 f7fffffe BL RCC_HCLKConfig
;;;161
;;;162 /* PCLK2 = HCLK */
;;;163 RCC_PCLK2Config(RCC_HCLK_Div1);
000024 2000 MOVS r0,#0
000026 f7fffffe BL RCC_PCLK2Config
;;;164
;;;165 /* PCLK1 = HCLK/2 */
;;;166 RCC_PCLK1Config(RCC_HCLK_Div2);
00002a 11a0 ASRS r0,r4,#6
00002c f7fffffe BL RCC_PCLK1Config
;;;167
;;;168 /* ADCCLK = PCLK2/4 */
;;;169 RCC_ADCCLKConfig(RCC_PCLK2_Div4);
000030 10a0 ASRS r0,r4,#2
000032 f7fffffe BL RCC_ADCCLKConfig
;;;170
;;;171 /* Flash 2 wait state */
;;;172 FLASH_SetLatency(FLASH_Latency_2);
000036 2002 MOVS r0,#2
000038 f7fffffe BL FLASH_SetLatency
;;;173 /* Enable Prefetch Buffer */
;;;174 FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
00003c 2010 MOVS r0,#0x10
00003e f7fffffe BL FLASH_PrefetchBufferCmd
;;;175
;;;176 /* PLLCLK = 8MHz * 9 = 56 MHz */
;;;177 RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
000042 f44f11e0 MOV r1,#0x1c0000
000046 4620 MOV r0,r4
000048 f7fffffe BL RCC_PLLConfig
;;;178
;;;179 /* Enable PLL */
;;;180 RCC_PLLCmd(ENABLE);
00004c 2001 MOVS r0,#1
00004e f7fffffe BL RCC_PLLCmd
|L4.82|
;;;181
;;;182 /* Wait till PLL is ready */
;;;183 while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
000052 2039 MOVS r0,#0x39
000054 f7fffffe BL RCC_GetFlagStatus
000058 2800 CMP r0,#0
00005a d0fa BEQ |L4.82|
;;;184 {
;;;185 }
;;;186
;;;187 /* Select PLL as system clock source */
;;;188 RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
00005c 2002 MOVS r0,#2
00005e f7fffffe BL RCC_SYSCLKConfig
;;;189
;;;190 /* Wait till PLL is used as system clock source */
;;;191 while(RCC_GetSYSCLKSource() != 0x08)
000062 bf00 NOP
|L4.100|
000064 f7fffffe BL RCC_GetSYSCLKSource
000068 2808 CMP r0,#8
00006a d1fb BNE |L4.100|
|L4.108|
;;;192 {
;;;193 }
;;;194 }
;;;195
;;;196 /* Enable peripheral clocks --------------------------------------------------*/
;;;197 /* Enable DMA clock */
;;;198 RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);
00006c 2101 MOVS r1,#1
00006e 4608 MOV r0,r1
000070 f7fffffe BL RCC_AHBPeriphClockCmd
;;;199
;;;200 /* Enable ADC1 and GPIOC clock */
;;;201 RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 | RCC_APB2Periph_GPIOC, ENABLE);
000074 2101 MOVS r1,#1
000076 f44f7004 MOV r0,#0x210
00007a f7fffffe BL RCC_APB2PeriphClockCmd
;;;202
;;;203 /* Enable USART1 and GPIOA clock */
;;;204 RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 | RCC_APB2Periph_GPIOA, ENABLE);
00007e e8bd4010 POP {r4,lr}
000082 2101 MOVS r1,#1
000084 f2440004 MOV r0,#0x4004
000088 f7ffbffe B.W RCC_APB2PeriphClockCmd
;;;205 }
;;;206
ENDP
|L4.140|
00008c 00000000 DCD ||.data||
AREA ||i.main||, CODE, READONLY, ALIGN=2
main PROC
;;;53 int main(void)
;;;54 {
000000 e92d41f0 PUSH {r4-r8,lr}
;;;55 #ifdef DEBUG
;;;56 debug();
;;;57 #endif
;;;58
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -