📄 main.lst
字号:
209 read_phy(pEMAC, AT91C_PHY_ADDR, MII_BMCR, (unsigned int *)&control);
210 control&=~BMCR_ISOLATE;
211 write_phy(pEMAC, AT91C_PHY_ADDR, MII_BMCR, control);
212 AT91F_DBGU_Printk("-I- AT91SAM7X256 333\n\r");
213 #endif
214
215 // Wait for PHY auto negotiation completed
216 AT91F_DBGU_Printk("-I- AT91SAM7X256 444\n\r");
\ 0000008A 4948 LDR R0,??main_0+0x30 ;; `?<Constant "-I- AT91SAM7X256 444\\n\\r">`
\ 0000008C ........ _BLF AT91F_DBGU_Printk,AT91F_DBGU_Printk??rT
217 do {
218 read_phy(pEMAC, AT91C_PHY_ADDR, MII_BMSR, (unsigned int *)&status);
\ ??main_2:
\ 00000090 6B46 MOV R3,SP
\ 00000092 0122 MOV R2,#+0x1
\ 00000094 1F21 MOV R1,#+0x1F
\ 00000096 201C MOV R0,R4
\ 00000098 ........ _BLF read_phy,read_phy??rT
219 read_phy(pEMAC, AT91C_PHY_ADDR, MII_BMSR, (unsigned int *)&status);
\ 0000009C 6B46 MOV R3,SP
\ 0000009E 0122 MOV R2,#+0x1
\ 000000A0 1F21 MOV R1,#+0x1F
\ 000000A2 201C MOV R0,R4
\ 000000A4 ........ _BLF read_phy,read_phy??rT
220 AT91F_DBGU_Printk("-I- AT91SAM7X256 xxx\n\r");
\ 000000A8 4248 LDR R0,??main_0+0x34 ;; `?<Constant "-I- AT91SAM7X256 xxx\\n\\r">`
\ 000000AA ........ _BLF AT91F_DBGU_Printk,AT91F_DBGU_Printk??rT
221 }
222 while (!(status & BMSR_ANEGCOMPLETE));
\ 000000AE 0098 LDR R0,[SP, #+0]
\ 000000B0 8006 LSL R0,R0,#+0x1A
\ 000000B2 EDD5 BPL ??main_2
223 AT91F_DBGU_Printk("-I- AT91SAM7X256 555\n\r");
\ 000000B4 4048 LDR R0,??main_0+0x38 ;; `?<Constant "-I- AT91SAM7X256 555\\n\\r">`
\ 000000B6 ........ _BLF AT91F_DBGU_Printk,AT91F_DBGU_Printk??rT
224 AT91F_Disable_Mdi(pEMAC);
\ 000000BA 201C MOV R0,R4
\ 000000BC ........ _BLF AT91F_Disable_Mdi,AT91F_Disable_Mdi??rT
225
226 #ifdef RMII
227 //Enable EMAC in RMII mode, enable RMII clock (50MHz from oscillator on ERFCK)
228 pEMAC->EMAC_USRIO= AT91C_EMAC_RMII | AT91C_EMAC_CLKEN ;
\ 000000C0 C020 MOV R0,#+0xC0
\ 000000C2 0321 MOV R1,#+0x3
\ 000000C4 2150 STR R1,[R4, R0]
229 AT91F_DBGU_Printk("-I- AT91SAM7X256 666\n\r");
\ 000000C6 3D48 LDR R0,??main_0+0x3C ;; `?<Constant "-I- AT91SAM7X256 666\\n\\r">`
\ 000000C8 ........ _BLF AT91F_DBGU_Printk,AT91F_DBGU_Printk??rT
230 #else
231 //Enable EMAC in MII mode, enable clock ERXCK and ETXCK
232 pEMAC->EMAC_USRIO= AT91C_EMAC_CLKEN ;
233 #endif
234
235 //EMAC configuration
236 if ( AT91F_EmacEntry())
\ 000000CC ........ _BLF AT91F_EmacEntry,AT91F_EmacEntry??rT
\ 000000D0 0028 CMP R0,#+0
\ 000000D2 08D0 BEQ ??main_3
237 {
238 sprintf(MsgBuffer, "Error EMAC init: 0x%x", status);
\ 000000D4 009A LDR R2,[SP, #+0]
\ 000000D6 3A49 LDR R1,??main_0+0x40 ;; `?<Constant "Error EMAC init: 0x%x">`
\ 000000D8 .... LDR R0,??DataTable21 ;; MsgBuffer
\ 000000DA ........ _BLF sprintf,sprintf??rT
239 AT91F_DBGU_Printk(MsgBuffer);
\ 000000DE .... LDR R0,??DataTable21 ;; MsgBuffer
\ 000000E0 ........ _BLF AT91F_DBGU_Printk,AT91F_DBGU_Printk??rT
240 while(1);
\ ??main_4:
\ 000000E4 FEE7 B ??main_4
241 }
242 AT91F_DBGU_Printk("-I- AT91SAM7X256 777\n\r");
\ ??main_3:
\ 000000E6 3748 LDR R0,??main_0+0x44 ;; `?<Constant "-I- AT91SAM7X256 777\\n\\r">`
\ 000000E8 ........ _BLF AT91F_DBGU_Printk,AT91F_DBGU_Printk??rT
\ 000000EC 32E0 B ??main_5
243 #ifdef EMAC_IRQ
244 AT91F_AIC_ConfigureIt (AT91C_BASE_AIC, AT91C_ID_EMAC_B, AT91C_AIC_PRIOR_HIGHEST, AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL, AT91F_EMAC_HANDLER);
245 pEMAC->EMAC_IDR = 0x3fff;
246 AT91F_AIC_EnableIt(AT91C_BASE_AIC, AT91C_ID_EMAC_B); //AT91C_ID_EMACB
247 pEMAC->EMAC_IER = AT91C_EMAC_RCOMP | AT91C_EMAC_TCOMP | AT91C_EMAC_TXUBR;
248 #endif
249
250 //Packet processing : dipslay on DBGU, ping answer
251 while(1)
252 {
253 #ifndef EMAC_IRQ
254 if (AT91F_ProcessEmacPacket(&IpHeader) == AT91C_IPPACKET)
255 {
256 LED_TurnOn(LED1);
257 AT91F_DisplayIpPacket(&IpHeader);
258 LED_TurnOff(LED1);
259 }
260
261 if( (pEMAC->EMAC_TSR & AT91C_EMAC_COMP) == AT91C_EMAC_COMP)
262 {
263 for (i = 0; i <NB_TX_BUFFERS; i++)
264 {
265 pEMAC->EMAC_TSR |= AT91C_EMAC_COMP;
\ ??main_6:
\ 000000EE 6169 LDR R1,[R4, #+0x14]
\ 000000F0 2022 MOV R2,#+0x20
\ 000000F2 0A43 ORR R2,R1
\ 000000F4 6261 STR R2,[R4, #+0x14]
266 if(TxtdList[i].U_Status.S_Status.BuffUsed == 1)
\ 000000F6 0821 MOV R1,#+0x8
\ 000000F8 4143 MUL R1,R0
\ 000000FA 334A LDR R2,??main_0+0x48 ;; TxtdList
\ 000000FC 1268 LDR R2,[R2, #+0]
\ 000000FE 5118 ADD R1,R2,R1
\ 00000100 4968 LDR R1,[R1, #+0x4]
\ 00000102 C90F LSR R1,R1,#+0x1F
\ 00000104 0129 CMP R1,#+0x1
\ 00000106 1BD1 BNE ??main_7
267 {
268 TxtdList[i].U_Status.S_Status.Length = 0;
\ 00000108 0821 MOV R1,#+0x8
\ 0000010A 4143 MUL R1,R0
\ 0000010C 2E4A LDR R2,??main_0+0x48 ;; TxtdList
\ 0000010E 1268 LDR R2,[R2, #+0]
\ 00000110 5118 ADD R1,R2,R1
\ 00000112 0822 MOV R2,#+0x8
\ 00000114 4243 MUL R2,R0
\ 00000116 2C4B LDR R3,??main_0+0x48 ;; TxtdList
\ 00000118 1B68 LDR R3,[R3, #+0]
\ 0000011A 9A18 ADD R2,R3,R2
\ 0000011C 5268 LDR R2,[R2, #+0x4]
\ 0000011E D20A LSR R2,R2,#+0xB
\ 00000120 D202 LSL R2,R2,#+0xB
\ 00000122 4A60 STR R2,[R1, #+0x4]
269 TxtdList[i].U_Status.S_Status.BuffUsed = 0;
\ 00000124 0821 MOV R1,#+0x8
\ 00000126 4143 MUL R1,R0
\ 00000128 274A LDR R2,??main_0+0x48 ;; TxtdList
\ 0000012A 1268 LDR R2,[R2, #+0]
\ 0000012C 5118 ADD R1,R2,R1
\ 0000012E 0822 MOV R2,#+0x8
\ 00000130 4243 MUL R2,R0
\ 00000132 254B LDR R3,??main_0+0x48 ;; TxtdList
\ 00000134 1B68 LDR R3,[R3, #+0]
\ 00000136 9A18 ADD R2,R3,R2
\ 00000138 5268 LDR R2,[R2, #+0x4]
\ 0000013A 5200 LSL R2,R2,#+0x1 ;; ZeroExt R2,R2,#+0x1,#+0x1
\ 0000013C 5208 LSR R2,R2,#+0x1
\ 0000013E 4A60 STR R2,[R1, #+0x4]
270 }
271 }
\ ??main_7:
\ 00000140 401C ADD R0,#+0x1
\ ??main_8:
\ 00000142 0228 CMP R0,#+0x2
\ 00000144 D3DB BLT ??main_6
272 }
273
274 if( (pEMAC->EMAC_TSR & AT91C_EMAC_UBR) == AT91C_EMAC_UBR )
\ ??main_9:
\ 00000146 6069 LDR R0,[R4, #+0x14]
\ 00000148 C007 LSL R0,R0,#+0x1F
\ 0000014A 03D5 BPL ??main_5
275 pEMAC->EMAC_TSR |= AT91C_EMAC_UBR;
\ 0000014C 6069 LDR R0,[R4, #+0x14]
\ 0000014E 0121 MOV R1,#+0x1
\ 00000150 0143 ORR R1,R0
\ 00000152 6161 STR R1,[R4, #+0x14]
\ ??main_5:
\ 00000154 01A8 ADD R0,SP,#+0x4
\ 00000156 ........ _BLF AT91F_ProcessEmacPacket,AT91F_ProcessEmacPacket??rT
\ 0000015A 0128 CMP R0,#+0x1
\ 0000015C 0AD1 BNE ??main_10
\ 0000015E 8020 MOV R0,#+0x80
\ 00000160 0003 LSL R0,R0,#+0xC ;; #+0x80000
\ 00000162 ........ _BLF LED_TurnOn,LED_TurnOn??rT
\ 00000166 01A8 ADD R0,SP,#+0x4
\ 00000168 ........ BL AT91F_DisplayIpPacket
\ 0000016C 8020 MOV R0,#+0x80
\ 0000016E 0003 LSL R0,R0,#+0xC ;; #+0x80000
\ 00000170 ........ _BLF LED_TurnOff,LED_TurnOff??rT
\ ??main_10:
\ 00000174 6069 LDR R0,[R4, #+0x14]
\ 00000176 8006 LSL R0,R0,#+0x1A
\ 00000178 E5D5 BPL ??main_9
\ 0000017A 0020 MOV R0,#+0
\ 0000017C E1E7 B ??main_8
\ 0000017E C046 NOP
\ ??main_0:
\ 00000180 00F6FFFF DC32 0xfffff600
\ 00000184 00C0FDFF DC32 0xfffdc000
\ 00000188 00FDFFFF DC32 0xfffffd00
\ 0000018C 00FCFFFF DC32 0xfffffc00
\ 00000190 000100A5 DC32 0xa5000100
\ 00000194 080000A5 DC32 0xa5000008
\ 00000198 ........ DC32 `?<Constant "\\n\\n\\r-I- ==============...">_1`
\ 0000019C ........ DC32 `?<Constant "-I- AT91SAM7X256 EMAC...">`
\ 000001A0 ........ DC32 `?<Constant "-I- -----------------...">`
\ 000001A4 ........ DC32 `?<Constant "-I- AT91SAM7X256 111\\n\\r">`
\ 000001A8 FFFF0300 DC32 0x3ffff
\ 000001AC ........ DC32 `?<Constant "-I- AT91SAM7X256 222\\n\\r">`
\ 000001B0 ........ DC32 `?<Constant "-I- AT91SAM7X256 444\\n\\r">`
\ 000001B4 ........ DC32 `?<Constant "-I- AT91SAM7X256 xxx\\n\\r">`
\ 000001B8 ........ DC32 `?<Constant "-I- AT91SAM7X256 555\\n\\r">`
\ 000001BC ........ DC32 `?<Constant "-I- AT91SAM7X256 666\\n\\r">`
\ 000001C0 ........ DC32 `?<Constant "Error EMAC init: 0x%x">`
\ 000001C4 ........ DC32 `?<Constant "-I- AT91SAM7X256 777\\n\\r">`
\ 000001C8 ........ DC32 TxtdList
276 #endif
277 }
278 }
\ In segment CODE, align 4, keep-with-next
\ ??DataTable21:
\ 00000000 ........ DC32 MsgBuffer
\ In segment DATA_C, align 4, align-sorted
\ `?<Constant "\\n\\n\\r-I- ==============...">`:
\ 00000000 0A0A0D2D492D DC8 0AH, 0AH, 0DH, 2DH, 49H, 2DH, 20H, 3DH
\ 203D
\ 00000008 3D3D3D3D3D3D DC8 3DH, 3DH, 3DH, 3DH, 3DH, 3DH, 3DH, 3DH
\ 3D3D
\ 00000010 3D3D3D3D3D3D DC8 3DH, 3DH, 3DH, 3DH, 3DH, 3DH, 3DH, 20H
\ 3D20
\ 00000018 495020484541 DC8 49H, 50H, 20H, 48H, 45H, 41H, 44H, 45H
\ 4445
\ 00000020 52203D3D3D3D DC8 52H, 20H, 3DH, 3DH, 3DH, 3DH, 3DH, 3DH
\ 3D3D
\ 00000028 3D3D3D3D3D3D DC8 3DH, 3DH, 3DH, 3DH, 3DH, 3DH, 3DH, 3DH
\ 3D3D
\ 00000030 3D3D3D3D3D3D DC8 3DH, 3DH, 3DH, 3DH, 3DH, 3DH, 3DH, 3DH
\ 3D3D
\ 00000038 0A0D00 DC8 0AH, 0DH, 0
\ 0000003B 00 DC8 0
\ In segment DATA_C, align 4, align-sorted
\ `?<Constant "\\n\\r IP Version ...">`:
\ 00000000 0A0D20495020 DC8 "\012\015 IP Version = v.%d"
\ 56657273696F
\ 6E2020202020
\ 2020203D2076
\ 2E256400
\ In segment DATA_C, align 4, align-sorted
\ `?<Constant "\\n\\r Header Length ...">`:
\ 00000000 0A0D20486561 DC8 "\012\015 Header Length = %d"
\ 646572204C65
\ 6E6774682020
\ 2020203D2025
\ 6400
\ 0000001A 0000 DC8 0, 0
\ In segment DATA_C, align 4, align-sorted
\ `?<Constant "\\n\\r Type of service ...">`:
\ 00000000 0A0D20547970 DC8 "\012\015 Type of service = 0x%x"
\ 65206F662073
\ 657276696365
\ 2020203D2030
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -