📄 interrupt_usart.lst
字号:
150
151 // Usart Configure
152 AT91F_US_Configure (COM0, AT91B_MCK, AT91C_US_ASYNC_MODE, AT91_BAUD_RATE, 0);
\ 00000018 114D LDR R5,??Usart_init_0 ;; 0xfffc0000
\ 0000001A 0020 MOV R0,#+0
\ 0000001C 01B4 PUSH {R0}
\ 0000001E E123 MOV R3,#+0xE1
\ 00000020 5B02 LSL R3,R3,#+0x9 ;; #+0x1C200
\ 00000022 8C22 MOV R2,#+0x8C
\ 00000024 1201 LSL R2,R2,#+0x4 ;; #+0x8C0
\ 00000026 .... LDR R1,??DataTable11 ;; 0x2dd4249
\ 00000028 281C MOV R0,R5
\ 0000002A ........ _BLF AT91F_US_Configure,AT91F_US_Configure??rT
153
154 // Enable usart
155 COM0->US_CR = AT91C_US_RXEN | AT91C_US_TXEN;
\ 0000002E 5020 MOV R0,#+0x50
\ 00000030 2860 STR R0,[R5, #+0]
156
157 //* Enable USART IT error and RXRDY
158 AT91F_US_EnableIt(COM0,AT91C_US_TIMEOUT | AT91C_US_FRAME | AT91C_US_OVRE |AT91C_US_RXRDY);
\ 00000032 0C48 LDR R0,??Usart_init_0+0x4 ;; 0xfffc0008
\ 00000034 FF21 MOV R1,#+0xFF
\ 00000036 6231 ADD R1,#+0x62 ;; #+0x161
\ 00000038 0160 STR R1,[R0, #+0]
159
160 //* open Usart 0 interrupt
161 AT91F_AIC_ConfigureIt ( AT91C_BASE_AIC, AT91C_ID_US0, USART0_INTERRUPT_LEVEL,AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL, Usart_c_irq_handler);
\ 0000003A 0B48 LDR R0,??Usart_init_0+0x8 ;; Usart_c_irq_handler
\ 0000003C 01B4 PUSH {R0}
\ 0000003E 0023 MOV R3,#+0
\ 00000040 0622 MOV R2,#+0x6
\ 00000042 111C MOV R1,R2
\ 00000044 .... LDR R0,??DataTable12 ;; 0xfffff000
\ 00000046 ........ _BLF AT91F_AIC_ConfigureIt,AT91F_AIC_ConfigureIt??rT
162 AT91F_AIC_EnableIt (AT91C_BASE_AIC, AT91C_ID_US0);
\ 0000004A .... LDR R0,??DataTable13 ;; 0xfffff120
\ 0000004C 0460 STR R4,[R0, #+0]
163
164 AT91F_US_PutChar (COM0,'X');
\ 0000004E 0748 LDR R0,??Usart_init_0+0xC ;; 0xfffc001c
\ 00000050 5821 MOV R1,#+0x58
\ 00000052 0160 STR R1,[R0, #+0]
165
166 AT91F_US_SendFrame(COM0,(char *)szembed_header,sizeof(szembed_header),0,0);
\ 00000054 0020 MOV R0,#+0
\ 00000056 01B4 PUSH {R0}
\ 00000058 031C MOV R3,R0
\ 0000005A FD22 MOV R2,#+0xFD
\ 0000005C 0449 LDR R1,??Usart_init_0+0x10 ;; ??szembed_header
\ 0000005E .... B ?Subroutine5
\ ??Usart_init_0:
\ 00000060 0000FCFF DC32 0xfffc0000
\ 00000064 0800FCFF DC32 0xfffc0008
\ 00000068 ........ DC32 Usart_c_irq_handler
\ 0000006C 1C00FCFF DC32 0xfffc001c
\ 00000070 ........ DC32 ??szembed_header
167 //* End
168 }
\ In segment CODE, align 4, keep-with-next
\ ?Subroutine5:
\ 00000000 281C MOV R0,R5
\ 00000002 ........ _BLF AT91F_US_SendFrame,AT91F_US_SendFrame??rT
\ 00000006 3EBC POP {R1-R5}
\ 00000008 01BC POP {R0}
\ 0000000A 0047 BX R0 ;; return
\ ??Subroutine5_0:
\ 0000000C 0040FCFF DC32 0xfffc4000
\ 00000010 0840FCFF DC32 0xfffc4008
\ 00000014 ........ DC32 Usart1_c_irq_handler
\ 00000018 1C40FCFF DC32 0xfffc401c
\ 0000001C ........ DC32 ??atmel_header
\ In segment CODE, align 4, keep-with-next
169 void Usart_init1 ( void )
170 //* Begin
171 {
\ Usart_init1:
\ 00000000 30B5 PUSH {R4,R5,LR}
172 AT91PS_USART COM1 = AT91C_BASE_US1;
173
174 // First, enable the clock of the USART
175 AT91F_PMC_EnablePeriphClock ( AT91C_BASE_PMC, 1 << AT91C_ID_US1 ) ;
\ 00000002 8024 MOV R4,#+0x80
\ 00000004 .... LDR R0,??DataTable7 ;; 0xfffffc10
\ 00000006 0460 STR R4,[R0, #+0]
176
177 //* Configure PIO controllers to periph mode
178 AT91F_PIO_CfgPeriph( AT91C_BASE_PIOA,
179 ((unsigned int) AT91C_PA5_RXD1 ) |
180 ((unsigned int) AT91C_PA6_TXD1 ) |
181 ((unsigned int) AT91C_PA8_RTS1 ) |
182 ((unsigned int) AT91C_PA9_CTS1 ), // Peripheral A
183 0); // Peripheral B
\ 00000008 D820 MOV R0,#+0xD8
\ 0000000A 8000 LSL R0,R0,#+0x2 ;; #+0x360
\ 0000000C .... LDR R1,??DataTable8 ;; 0xfffff470
\ 0000000E 0860 STR R0,[R1, #+0]
\ 00000010 .... LDR R1,??DataTable9 ;; 0xfffff474
\ 00000012 0022 MOV R2,#+0
\ 00000014 0A60 STR R2,[R1, #+0]
\ 00000016 .... LDR R1,??DataTable10 ;; 0xfffff404
\ 00000018 0860 STR R0,[R1, #+0]
184
185 // Usart Configure
186 AT91F_US_Configure (COM1, AT91B_MCK, AT91C_US_ASYNC_MODE, AT91_BAUD_RATE, 0);
\ 0000001A .... LDR R5,??Subroutine5_0 ;; 0xfffc4000
\ 0000001C 0020 MOV R0,#+0
\ 0000001E 01B4 PUSH {R0}
\ 00000020 E123 MOV R3,#+0xE1
\ 00000022 5B02 LSL R3,R3,#+0x9 ;; #+0x1C200
\ 00000024 8C22 MOV R2,#+0x8C
\ 00000026 1201 LSL R2,R2,#+0x4 ;; #+0x8C0
\ 00000028 .... LDR R1,??DataTable11 ;; 0x2dd4249
\ 0000002A 281C MOV R0,R5
\ 0000002C ........ _BLF AT91F_US_Configure,AT91F_US_Configure??rT
187
188 // Enable usart
189 COM1->US_CR = AT91C_US_RXEN | AT91C_US_TXEN;
\ 00000030 5020 MOV R0,#+0x50
\ 00000032 2860 STR R0,[R5, #+0]
190
191 //* Enable USART IT error and RXRDY
192 AT91F_US_EnableIt(COM1,AT91C_US_TIMEOUT | AT91C_US_FRAME | AT91C_US_OVRE |AT91C_US_RXRDY);
\ 00000034 .... LDR R0,??Subroutine5_0+0x4 ;; 0xfffc4008
\ 00000036 FF21 MOV R1,#+0xFF
\ 00000038 6231 ADD R1,#+0x62 ;; #+0x161
\ 0000003A 0160 STR R1,[R0, #+0]
193
194 //* open Usart 1 interrupt
195 AT91F_AIC_ConfigureIt ( AT91C_BASE_AIC, AT91C_ID_US1, USART1_INTERRUPT_LEVEL,AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL, Usart1_c_irq_handler);
\ 0000003C .... LDR R0,??Subroutine5_0+0x8 ;; Usart1_c_irq_handler
\ 0000003E 01B4 PUSH {R0}
\ 00000040 0023 MOV R3,#+0
\ 00000042 0722 MOV R2,#+0x7
\ 00000044 111C MOV R1,R2
\ 00000046 .... LDR R0,??DataTable12 ;; 0xfffff000
\ 00000048 ........ _BLF AT91F_AIC_ConfigureIt,AT91F_AIC_ConfigureIt??rT
196 AT91F_AIC_EnableIt (AT91C_BASE_AIC, AT91C_ID_US1);
\ 0000004C .... LDR R0,??DataTable13 ;; 0xfffff120
\ 0000004E 0460 STR R4,[R0, #+0]
197
198 AT91F_US_PutChar (COM1,'Y');
\ 00000050 .... LDR R0,??Subroutine5_0+0xC ;; 0xfffc401c
\ 00000052 5921 MOV R1,#+0x59
\ 00000054 0160 STR R1,[R0, #+0]
199
200 AT91F_US_SendFrame(COM1,(char *)atmel_header,sizeof(atmel_header),0,0);
\ 00000056 0020 MOV R0,#+0
\ 00000058 01B4 PUSH {R0}
\ 0000005A 031C MOV R3,R0
\ 0000005C 5322 MOV R2,#+0x53
\ 0000005E .... LDR R1,??Subroutine5_0+0x10 ;; ??atmel_header
\ 00000060 REQUIRE ?Subroutine5
\ 00000060 ;; // Fall through to label ?Subroutine5
201 //* End
202 }
\ In segment CODE, align 4, keep-with-next
\ ??DataTable7:
\ 00000000 10FCFFFF DC32 0xfffffc10
\ In segment CODE, align 4, keep-with-next
\ ??DataTable8:
\ 00000000 70F4FFFF DC32 0xfffff470
\ In segment CODE, align 4, keep-with-next
\ ??DataTable9:
\ 00000000 74F4FFFF DC32 0xfffff474
\ In segment CODE, align 4, keep-with-next
\ ??DataTable10:
\ 00000000 04F4FFFF DC32 0xfffff404
\ In segment CODE, align 4, keep-with-next
\ ??DataTable11:
\ 00000000 4942DD02 DC32 0x2dd4249
\ In segment CODE, align 4, keep-with-next
\ ??DataTable12:
\ 00000000 00F0FFFF DC32 0xfffff000
\ In segment CODE, align 4, keep-with-next
\ ??DataTable13:
\ 00000000 20F1FFFF DC32 0xfffff120
Maximum stack usage in bytes:
Function CSTACK
-------- ------
AT91F_AIC_ConfigureIt 20
AT91F_PDC_Open 0
AT91F_US_Configure 12
AT91F_US_SendFrame 12
Usart1_c_irq_handler 4
Usart_c_irq_handler 4
Usart_init 24
Usart_init1 24
Segment part sizes:
Function/Label Bytes
-------------- -----
AT91F_AIC_ConfigureIt 44
AT91F_PDC_Open 36
AT91F_US_Configure 86
AT91F_US_SendFrame 50
szembed_header 256
atmel_header 84
Usart_c_irq_handler 2
?Subroutine4 92
Usart1_c_irq_handler 0
Usart_init 116
?Subroutine5 32
Usart_init1 96
??DataTable7 4
??DataTable8 4
??DataTable9 4
??DataTable10 4
??DataTable11 4
??DataTable12 4
??DataTable13 4
Others 116
576 bytes in segment CODE
110 bytes in segment CODE_I
340 bytes in segment DATA_C
12 bytes in segment INITTAB
366 bytes of CODE memory (+ 332 bytes shared)
340 bytes of CONST memory
Errors: none
Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -