?? main.lst
字號:
55 ((unsigned int) AT91C_PA4_CTS0 ), // Peripheral A
56 0); // Peripheral B
\ 00000002 1B20 MOV R0,#+0x1B
\ 00000004 2349 LDR R1,??main_0 ;; 0xfffff470
\ 00000006 0860 STR R0,[R1, #+0]
\ 00000008 0024 MOV R4,#+0
\ 0000000A 2349 LDR R1,??main_0+0x4 ;; 0xfffff474
\ 0000000C 0C60 STR R4,[R1, #+0]
\ 0000000E 2349 LDR R1,??main_0+0x8 ;; 0xfffff404
\ 00000010 0860 STR R0,[R1, #+0]
57
58 // First, enable the clock of the USART
59 //每個外設都有ID號,USART0的ID為AT91C_ID_US0 = 6,對任何一個外設,都要先對它打開時鐘
60 AT91F_PMC_EnablePeriphClock ( AT91C_BASE_PMC, 1 << AT91C_ID_US0 ) ;
\ 00000012 2348 LDR R0,??main_0+0xC ;; 0xfffffc10
\ 00000014 4021 MOV R1,#+0x40
\ 00000016 0160 STR R1,[R0, #+0]
61 // Usart Configure,配置USART0的基地址(指針),頻率(PLL輸出時鐘),串口異步模式,波特率,timeguard
62 AT91F_US_Configure (COM0, AT91B_MCK, AT91C_US_ASYNC_MODE, AT91_BAUD_RATE, 0);
\ 00000018 2248 LDR R0,??main_0+0x10 ;; 0xfffc000c
\ 0000001A 0021 MOV R1,#+0
\ 0000001C C943 MVN R1,R1 ;; #-1
\ 0000001E 0160 STR R1,[R0, #+0]
\ 00000020 214E LDR R6,??main_0+0x14 ;; 0xfffc0000
\ 00000022 AC20 MOV R0,#+0xAC
\ 00000024 3060 STR R0,[R6, #+0]
\ 00000026 2148 LDR R0,??main_0+0x18 ;; 0xfffc0020
\ 00000028 FF21 MOV R1,#+0xFF
\ 0000002A 3A31 ADD R1,#+0x3A ;; #+0x139
\ 0000002C 0160 STR R1,[R0, #+0]
\ 0000002E 2048 LDR R0,??main_0+0x1C ;; 0xfffc0028
\ 00000030 0460 STR R4,[R0, #+0]
\ 00000032 204D LDR R5,??main_0+0x20 ;; 0xfffc0100
\ 00000034 281C MOV R0,R5
\ 00000036 ........ _BLF AT91F_PDC_Open,AT91F_PDC_Open??rT
\ 0000003A 1F48 LDR R0,??main_0+0x24 ;; 0xfffc0004
\ 0000003C 8C21 MOV R1,#+0x8C
\ 0000003E 0901 LSL R1,R1,#+0x4 ;; #+0x8C0
\ 00000040 0160 STR R1,[R0, #+0]
63
64 // Enable usart ,在串口控制寄存器里US_CR,把RXEN和TXEN相應的兩個位置1,就表明串口使能。
65 COM0->US_CR = AT91C_US_RXEN | AT91C_US_TXEN;
\ 00000042 5020 MOV R0,#+0x50
\ 00000044 3060 STR R0,[R6, #+0]
66
67 //單純的向串口發字符,并不考慮串口是否準備好了發送
68 AT91F_US_PutChar (COM0,'X');
\ 00000046 1D48 LDR R0,??main_0+0x28 ;; 0xfffc001c
\ 00000048 5821 MOV R1,#+0x58
\ 0000004A 0160 STR R1,[R0, #+0]
69 //發送幀,檢查準備好后發送,根據串口不同的狀態 返回不同的值
70 // while(1)
71 AT91F_US_SendFrame(COM0,(char *)atmel_header,sizeof(atmel_header),(char *)BJTU,sizeof(BJTU));
\ 0000004C 1C48 LDR R0,??main_0+0x2C ;; ??atmel_header
\ 0000004E 4E21 MOV R1,#+0x4E
\ 00000050 1C4A LDR R2,??main_0+0x30 ;; 0xfffc0118
\ 00000052 1D4B LDR R3,??main_0+0x34 ;; 0xfffc011c
\ 00000054 1D4E LDR R6,??main_0+0x38 ;; 0xfffc010c
\ 00000056 3768 LDR R7,[R6, #+0]
\ 00000058 002F CMP R7,#+0
\ 0000005A 07D1 BNE ??main_1
\ 0000005C 1C4F LDR R7,??main_0+0x3C ;; 0xfffc0108
\ 0000005E 3860 STR R0,[R7, #+0]
\ 00000060 3160 STR R1,[R6, #+0]
\ 00000062 5030 ADD R0,#+0x50
\ 00000064 1060 STR R0,[R2, #+0]
\ 00000066 2420 MOV R0,#+0x24
\ 00000068 1860 STR R0,[R3, #+0]
\ 0000006A 09E0 B ??main_2
\ ??main_1:
\ 0000006C 1E68 LDR R6,[R3, #+0]
\ 0000006E 002E CMP R6,#+0
\ 00000070 06D1 BNE ??main_2
\ 00000072 1060 STR R0,[R2, #+0]
\ 00000074 1960 STR R1,[R3, #+0]
\ 00000076 03E0 B ??main_2
72 //接收數據,存放在數組rx里。
73 while(1)
^
Remark[Pe236]: controlling expression is constant
74 AT91F_US_ReceiveFrame (COM0,(char *)rx,sizeof(rx),0,0);
\ ??main_3:
\ 00000078 2860 STR R0,[R5, #+0]
\ 0000007A 3160 STR R1,[R6, #+0]
\ 0000007C 1460 STR R4,[R2, #+0]
\ 0000007E 1C60 STR R4,[R3, #+0]
\ ??main_2:
\ 00000080 1448 LDR R0,??main_0+0x40 ;; rx
\ 00000082 6421 MOV R1,#+0x64
\ 00000084 144A LDR R2,??main_0+0x44 ;; 0xfffc0110
\ 00000086 154B LDR R3,??main_0+0x48 ;; 0xfffc0114
\ 00000088 154E LDR R6,??main_0+0x4C ;; 0xfffc0104
\ 0000008A 3768 LDR R7,[R6, #+0]
\ 0000008C 002F CMP R7,#+0
\ 0000008E F3D0 BEQ ??main_3
\ 00000090 ECE7 B ??main_1
\ 00000092 C046 NOP
\ ??main_0:
\ 00000094 70F4FFFF DC32 0xfffff470
\ 00000098 74F4FFFF DC32 0xfffff474
\ 0000009C 04F4FFFF DC32 0xfffff404
\ 000000A0 10FCFFFF DC32 0xfffffc10
\ 000000A4 0C00FCFF DC32 0xfffc000c
\ 000000A8 0000FCFF DC32 0xfffc0000
\ 000000AC 2000FCFF DC32 0xfffc0020
\ 000000B0 2800FCFF DC32 0xfffc0028
\ 000000B4 0001FCFF DC32 0xfffc0100
\ 000000B8 0400FCFF DC32 0xfffc0004
\ 000000BC 1C00FCFF DC32 0xfffc001c
\ 000000C0 ........ DC32 ??atmel_header
\ 000000C4 1801FCFF DC32 0xfffc0118
\ 000000C8 1C01FCFF DC32 0xfffc011c
\ 000000CC 0C01FCFF DC32 0xfffc010c
\ 000000D0 0801FCFF DC32 0xfffc0108
\ 000000D4 ........ DC32 rx
\ 000000D8 1001FCFF DC32 0xfffc0110
\ 000000DC 1401FCFF DC32 0xfffc0114
\ 000000E0 0401FCFF DC32 0xfffc0104
75
76 //* End
77 }
Maximum stack usage in bytes:
Function CSTACK
-------- ------
AT91F_PDC_Open 0
main 28
Segment part sizes:
Function/Label Bytes
-------------- -----
AT91F_PDC_Open 36
atmel_header 116
rx 100
main 228
Others 28
280 bytes in segment CODE
116 bytes in segment DATA_C
100 bytes in segment DATA_Z
12 bytes in segment INITTAB
228 bytes of CODE memory (+ 64 bytes shared)
116 bytes of CONST memory
100 bytes of DATA memory
Errors: none
Warnings: none
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -