📄 main.txt
字号:
;;;126 /* Enable Prefetch Buffer */
;;;127 FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
000038 2010 MOVS r0,#0x10
00003a f7fffffe BL FLASH_PrefetchBufferCmd
;;;128
;;;129 /* PLLCLK = 8MHz * 9 = 72 MHz */
;;;130 RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
00003e f44f11e0 MOV r1,#0x1c0000
000042 f44f3080 MOV r0,#0x10000
000046 f7fffffe BL RCC_PLLConfig
;;;131
;;;132 /* Enable PLL */
;;;133 RCC_PLLCmd(ENABLE);
00004a 2001 MOVS r0,#1
00004c f7fffffe BL RCC_PLLCmd
;;;134
;;;135 /* Wait till PLL is ready */
;;;136 while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
000050 bf00 NOP
|L4.82|
000052 2039 MOVS r0,#0x39
000054 f7fffffe BL RCC_GetFlagStatus
000058 2800 CMP r0,#0
00005a d0fa BEQ |L4.82|
;;;137 {
;;;138 }
;;;139
;;;140 /* Select PLL as system clock source */
;;;141 RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
00005c 2002 MOVS r0,#2
00005e f7fffffe BL RCC_SYSCLKConfig
;;;142
;;;143 /* Wait till PLL is used as system clock source */
;;;144 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|
;;;145 {
;;;146 }
;;;147 }
;;;148
;;;149 /* Enable USART1 and GPIOA clock */
;;;150 RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 | RCC_APB2Periph_GPIOA, ENABLE);
00006c 2101 MOVS r1,#1
00006e f2440004 MOV r0,#0x4004
000072 f7fffffe BL RCC_APB2PeriphClockCmd
;;;151 }
000076 bd10 POP {r4,pc}
;;;152
ENDP
|L4.120|
000078 00000000 DCD HSEStartUpStatus
AREA ||i.main||, CODE, READONLY, ALIGN=2
main PROC
;;;33 int main(void)
;;;34 { u16 i=0;
000000 b510 PUSH {r4,lr}
000002 2400 MOVS r4,#0
;;;35
;;;36
;;;37 #ifdef DEBUG
;;;38 debug();
;;;39 #endif
;;;40
;;;41 /* Configure the system clocks */
;;;42 RCC_Configuration();
000004 f7fffffe BL RCC_Configuration
;;;43
;;;44 /* NVIC Configuration */
;;;45 NVIC_Configuration();
000008 f7fffffe BL NVIC_Configuration
;;;46
;;;47 /* Configure the GPIOs */
;;;48 GPIO_Configuration();
00000c f7fffffe BL GPIO_Configuration
;;;49
;;;50 /* Configure the USART1 */
;;;51 USART_Configuration();
000010 f7fffffe BL USART_Configuration
;;;52
;;;53
;;;54 printf("\r\n Welcome to WUHAN R&D Center,Embest \r\n");
000014 a00b ADR r0,|L5.68|
000016 f7fffffe BL __1printf
;;;55 printf("\r\n Please Input Character From Keyboard \r\n\r\n");
00001a a015 ADR r0,|L5.112|
00001c f7fffffe BL __1printf
;;;56 while(1 )
000020 e00e B |L5.64|
|L5.34|
;;;57 {
;;;58 if(USART_GetFlagStatus(USART1,USART_IT_RXNE)==SET)
000022 f2405125 MOV r1,#0x525
000026 481e LDR r0,|L5.160|
000028 f7fffffe BL USART_GetFlagStatus
00002c 2801 CMP r0,#1
00002e d107 BNE |L5.64|
;;;59 {
;;;60 i = USART_ReceiveData(USART1);
000030 481b LDR r0,|L5.160|
000032 f7fffffe BL USART_ReceiveData
000036 4604 MOV r4,r0
;;;61 printf("%c",i&0xFF); /* print the input char */
000038 b2e1 UXTB r1,r4
00003a a01a ADR r0,|L5.164|
00003c f7fffffe BL __1printf
|L5.64|
000040 e7ef B |L5.34|
;;;62 //printf("%s","ok!\r\n");
;;;63
;;;64 }
;;;65 //printf("%s","ok!\r\n");
;;;66 }
;;;67
;;;68 }
;;;69
ENDP
000042 0000 DCW 0x0000
|L5.68|
000044 0d0a2057 DCB "\r\n\40\127"
000048 656c636f DCB "elco"
00004c 6d652074 DCB "me t"
000050 6f205755 DCB "o WU"
000054 48414e20 DCB "HAN "
000058 52264420 DCB "R&D "
00005c 43656e74 DCB "Cent"
000060 65722c45 DCB "er,E"
000064 6d626573 DCB "mbes"
000068 7420200d DCB "t \r"
00006c 0a000000 DCB "\n\0\0\0"
|L5.112|
000070 0d0a2050 DCB "\r\n\40\120"
000074 6c656173 DCB "leas"
000078 6520496e DCB "e In"
00007c 70757420 DCB "put "
000080 43686172 DCB "Char"
000084 61637465 DCB "acte"
000088 72204672 DCB "r Fr"
00008c 6f6d204b DCB "om K"
000090 6579626f DCB "eybo"
000094 61726420 DCB "ard "
000098 0d0a0d0a DCB "\r\n\r\n"
00009c 00000000 DCB "\0\0\0\0"
|L5.160|
0000a0 40013800 DCD 0x40013800
|L5.164|
0000a4 25630000 DCB "%c\0\0"
AREA ||i.fputc||, CODE, READONLY, ALIGN=2
fputc PROC
;;;254 int fputc(int ch, FILE *f)
;;;255 {
000000 b570 PUSH {r4-r6,lr}
000002 4604 MOV r4,r0
000004 460d MOV r5,r1
;;;256 /* Place your implementation of fputc here */
;;;257 /* e.g. write a character to the USART */
;;;258 USART_SendData(USART1, (u8) ch);
000006 b2e1 UXTB r1,r4
000008 4805 LDR r0,|L6.32|
00000a f7fffffe BL USART_SendData
;;;259
;;;260 /* Loop until the end of transmission */
;;;261 while(USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET)
00000e bf00 NOP
|L6.16|
000010 2140 MOVS r1,#0x40
000012 4803 LDR r0,|L6.32|
000014 f7fffffe BL USART_GetFlagStatus
000018 2800 CMP r0,#0
00001a d0f9 BEQ |L6.16|
;;;262 {
;;;263 }
;;;264
;;;265 return ch;
00001c 4620 MOV r0,r4
;;;266 }
00001e bd70 POP {r4-r6,pc}
;;;267
ENDP
|L6.32|
000020 40013800 DCD 0x40013800
AREA ||.data||, DATA, ALIGN=0
HSEStartUpStatus
000000 00 DCB 0x00
__ARM_use_no_argv EQU 0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -