⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.lst

📁 ARM7X256的网络ARP和ICMP的简单软件协议版(备注是IAR开发环境下)
💻 LST
📖 第 1 页 / 共 4 页
字号:
   \   0000006A   ........           _BLF     AT91F_DBGU_Printk,??AT91F_DBGU_Printk??rT
    171          		
    172            //Wait for hardware reset end
    173            while( !(pRSTC->RSTC_RSR & AT91C_RSTC_NRSTL) ) {;}	
   \                     ??main_1:
   \   0000006E   7868               LDR      R0,[R7, #+4]
   \   00000070   C003               LSLS     R0,R0,#+15
   \   00000072   FCD5               BPL      ??main_1
    174            	
    175            //EMAC IO init for EMAC-PHY com
    176            // Remove EF100 config
    177            AT91F_PIO_CfgPeriph(
    178                        AT91C_BASE_PIOB, // PIO controller base address
    179                        ((unsigned int) AT91C_PB2_ETX0    ) |
    180                        ((unsigned int) AT91C_PB12_ETXER   ) |
    181                        ((unsigned int) AT91C_PB16_ECOL    ) |
    182                        ((unsigned int) AT91C_PB11_ETX3    ) |
    183                        ((unsigned int) AT91C_PB6_ERX1    ) |
    184                        ((unsigned int) AT91C_PB15_ERXDV_ECRSDV   ) |
    185                        ((unsigned int) AT91C_PB13_ERX2    ) |
    186                        ((unsigned int) AT91C_PB3_ETX1    ) |
    187                        ((unsigned int) AT91C_PB8_EMDC    ) |
    188                        ((unsigned int) AT91C_PB5_ERX0    ) |
    189                        ((unsigned int) AT91C_PB14_ERX3    ) |
    190                        ((unsigned int) AT91C_PB4_ECRS) |
    191                        ((unsigned int) AT91C_PB1_ETXEN   ) |
    192                        ((unsigned int) AT91C_PB10_ETX2    ) |
    193                        ((unsigned int) AT91C_PB0_ETXCK_EREFCK) |
    194                        ((unsigned int) AT91C_PB9_EMDIO   ) |
    195                        ((unsigned int) AT91C_PB7_ERXER   ) |
    196                        ((unsigned int) AT91C_PB17_ERXCK   ),
    197                        0);
   \   00000074   0022               MOVS     R2,#+0
   \   00000076   4249               LDR      R1,??main_0+0x24  ;; 0x3ffff
   \   00000078   3848               LDR      R0,??main_0      ;; 0xfffffffffffff600
   \   0000007A   ........           _BLF     AT91F_PIO_CfgPeriph,??AT91F_PIO_CfgPeriph??rT
    198          
    199          
    200            //Enable com between EMAC PHY
    201            AT91F_Enable_Mdi(pEMAC);
   \   0000007E   3000               MOVS     R0,R6
   \   00000080   ........           _BLF     AT91F_Enable_Mdi,??AT91F_Enable_Mdi??rT
    202          
    203            //PHY configuration
    204          #ifndef RMII
    205            //PHY has internal pull down : disable MII isolate
    206            read_phy(pEMAC, AT91C_PHY_ADDR, MII_BMCR, (unsigned int *)&control);
    207            read_phy(pEMAC, AT91C_PHY_ADDR, MII_BMCR, (unsigned int *)&control);
    208            control&=~BMCR_ISOLATE;
    209            write_phy(pEMAC, AT91C_PHY_ADDR, MII_BMCR, control);
    210          #endif
    211          
    212            // Wait for PHY auto negotiation completed
    213            do {
    214              	read_phy(pEMAC, AT91C_PHY_ADDR, MII_BMSR, (unsigned int *)&status);
   \                     ??main_2:
   \   00000084   6B46               MOV      R3,SP
   \   00000086   0122               MOVS     R2,#+1
   \   00000088   1F21               MOVS     R1,#+31
   \   0000008A   3000               MOVS     R0,R6
   \   0000008C   ........           _BLF     read_phy,??read_phy??rT
    215          	read_phy(pEMAC, AT91C_PHY_ADDR, MII_BMSR, (unsigned int *)&status);
   \   00000090   6B46               MOV      R3,SP
   \   00000092   0122               MOVS     R2,#+1
   \   00000094   1F21               MOVS     R1,#+31
   \   00000096   3000               MOVS     R0,R6
   \   00000098   ........           _BLF     read_phy,??read_phy??rT
    216            }
    217            while (!(status & BMSR_ANEGCOMPLETE));
   \   0000009C   0098               LDR      R0,[SP, #+0]
   \   0000009E   8006               LSLS     R0,R0,#+26
   \   000000A0   F0D5               BPL      ??main_2
    218            AT91F_Disable_Mdi(pEMAC);
   \   000000A2   3000               MOVS     R0,R6
   \   000000A4   ........           _BLF     AT91F_Disable_Mdi,??AT91F_Disable_Mdi??rT
    219          
    220          #ifdef RMII
    221            //Enable EMAC in RMII mode, enable RMII clock (50MHz from oscillator on ERFCK)
    222            pEMAC->EMAC_USRIO= AT91C_EMAC_RMII | AT91C_EMAC_CLKEN ;
   \   000000A8   C020               MOVS     R0,#+192
   \   000000AA   0321               MOVS     R1,#+3
   \   000000AC   3150               STR      R1,[R6, R0]
    223          #else
    224            //Enable EMAC in MII mode, enable clock ERXCK and ETXCK
    225            pEMAC->EMAC_USRIO= AT91C_EMAC_CLKEN ;
    226          #endif
    227          
    228            //EMAC configuration
    229            if ( AT91F_EmacEntry())
   \   000000AE   ........           _BLF     AT91F_EmacEntry,??AT91F_EmacEntry??rT
   \   000000B2   0028               CMP      R0,#+0
   \   000000B4   08D0               BEQ      ??main_3
    230            {
    231              sprintf(MsgBuffer, "Error EMAC init: 0x%x", status);
   \   000000B6   009A               LDR      R2,[SP, #+0]
   \   000000B8   3249               LDR      R1,??main_0+0x28  ;; `?<Constant "Error EMAC init: 0x%x">`
   \   000000BA   ....               LDR      R0,??DataTable21  ;; MsgBuffer
   \   000000BC   ........           _BLF     sprintf,??sprintf??rT
    232              AT91F_DBGU_Printk(MsgBuffer);
   \   000000C0   ....               LDR      R0,??DataTable21  ;; MsgBuffer
   \   000000C2   ........           _BLF     AT91F_DBGU_Printk,??AT91F_DBGU_Printk??rT
    233              while(1);
   \                     ??main_4:
   \   000000C6   FEE7               B        ??main_4
    234            }
    235          
    236          #ifdef EMAC_IRQ
    237              AT91F_AIC_ConfigureIt (AT91C_BASE_AIC, AT91C_ID_EMAC_B, AT91C_AIC_PRIOR_HIGHEST, AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL, AT91F_EMAC_HANDLER);						
    238              pEMAC->EMAC_IDR = 0x3fff;
    239              AT91F_AIC_EnableIt(AT91C_BASE_AIC, AT91C_ID_EMAC_B); //AT91C_ID_EMACB
    240              pEMAC->EMAC_IER = AT91C_EMAC_RCOMP | AT91C_EMAC_TCOMP | AT91C_EMAC_TXUBR;
    241          #endif
    242          
    243            //Packet processing :  dipslay on DBGU, ping answer
    244            while(1)
    245            {
    246          #ifndef EMAC_IRQ
    247              if (AT91F_ProcessEmacPacket(&IpHeader) == AT91C_IPPACKET)
   \                     ??main_3:
   \   000000C8   01A8               ADD      R0,SP,#+4
   \   000000CA   ........           _BLF     AT91F_ProcessEmacPacket,??AT91F_ProcessEmacPacket??rT
   \   000000CE   0128               CMP      R0,#+1
   \   000000D0   0AD1               BNE      ??main_5
    248              {
    249                  LED_TurnOn(LED1);
   \   000000D2   8020               MOVS     R0,#+128
   \   000000D4   0003               LSLS     R0,R0,#+12       ;; #+524288
   \   000000D6   ........           _BLF     LED_TurnOn,??LED_TurnOn??rT
    250                  AT91F_DisplayIpPacket(&IpHeader);
   \   000000DA   01A8               ADD      R0,SP,#+4
   \   000000DC   ........           BL       AT91F_DisplayIpPacket
    251                  LED_TurnOff(LED1);
   \   000000E0   8020               MOVS     R0,#+128
   \   000000E2   0003               LSLS     R0,R0,#+12       ;; #+524288
   \   000000E4   ........           _BLF     LED_TurnOff,??LED_TurnOff??rT
    252              }
    253          
    254              if( (pEMAC->EMAC_TSR & AT91C_EMAC_COMP) == AT91C_EMAC_COMP)	
   \                     ??main_5:
   \   000000E8   7069               LDR      R0,[R6, #+20]
   \   000000EA   8006               LSLS     R0,R0,#+26
   \   000000EC   2ED5               BPL      ??main_6
    255              {	
    256                      for (i = 0; i <NB_TX_BUFFERS; i++)
   \   000000EE   0020               MOVS     R0,#+0
   \   000000F0   0400               MOVS     R4,R0
   \                     ??main_7:
   \   000000F2   022C               CMP      R4,#+2
   \   000000F4   2ADA               BGE      ??main_6
    257                      {
    258                              pEMAC->EMAC_TSR |= AT91C_EMAC_COMP;	
   \   000000F6   7069               LDR      R0,[R6, #+20]
   \   000000F8   2021               MOVS     R1,#+32
   \   000000FA   0143               ORRS     R1,R1,R0
   \   000000FC   7161               STR      R1,[R6, #+20]
    259                              if(TxtdList[i].U_Status.S_Status.BuffUsed == 1)
   \   000000FE   0820               MOVS     R0,#+8
   \   00000100   6043               MULS     R0,R4,R0
   \   00000102   2149               LDR      R1,??main_0+0x2C  ;; TxtdList
   \   00000104   0968               LDR      R1,[R1, #+0]
   \   00000106   0818               ADDS     R0,R1,R0
   \   00000108   4068               LDR      R0,[R0, #+4]
   \   0000010A   C00F               LSRS     R0,R0,#+31
   \   0000010C   0128               CMP      R0,#+1
   \   0000010E   1BD1               BNE      ??main_8
    260                              {
    261                                      TxtdList[i].U_Status.S_Status.Length = 0;
   \   00000110   0820               MOVS     R0,#+8
   \   00000112   6043               MULS     R0,R4,R0
   \   00000114   1C49               LDR      R1,??main_0+0x2C  ;; TxtdList
   \   00000116   0968               LDR      R1,[R1, #+0]
   \   00000118   0818               ADDS     R0,R1,R0
   \   0000011A   0821               MOVS     R1,#+8
   \   0000011C   6143               MULS     R1,R4,R1
   \   0000011E   1A4A               LDR      R2,??main_0+0x2C  ;; TxtdList
   \   00000120   1268               LDR      R2,[R2, #+0]
   \   00000122   5118               ADDS     R1,R2,R1
   \   00000124   4968               LDR      R1,[R1, #+4]
   \   00000126   C90A               LSRS     R1,R1,#+11
   \   00000128   C902               LSLS     R1,R1,#+11
   \   0000012A   4160               STR      R1,[R0, #+4]
    262                                      TxtdList[i].U_Status.S_Status.BuffUsed = 0;
   \   0000012C   0820               MOVS     R0,#+8
   \   0000012E   6043               MULS     R0,R4,R0
   \   00000130   1549               LDR      R1,??main_0+0x2C  ;; TxtdList
   \   00000132   0968               LDR      R1,[R1, #+0]
   \   00000134   0818               ADDS     R0,R1,R0
   \   00000136   0821               MOVS     R1,#+8
   \   00000138   6143               MULS     R1,R4,R1
   \   0000013A   134A               LDR      R2,??main_0+0x2C  ;; TxtdList
   \   0000013C   1268               LDR      R2,[R2, #+0]
   \   0000013E   5118               ADDS     R1,R2,R1
   \   00000140   4968               LDR      R1,[R1, #+4]
   \   00000142   4900               LSLS     R1,R1,#+1        ;; ZeroExtS R1,R1,#+1,#+1
   \   00000144   4908               LSRS     R1,R1,#+1
   \   00000146   4160               STR      R1,[R0, #+4]
    263                              }
    264                      }
   \                     ??main_8:
   \   00000148   641C               ADDS     R4,R4,#+1
   \   0000014A   D2E7               B        ??main_7
    265              }			
    266          
    267              if( (pEMAC->EMAC_TSR & AT91C_EMAC_UBR) == AT91C_EMAC_UBR )		
   \                     ??main_6:
   \   0000014C   7069               LDR      R0,[R6, #+20]
   \   0000014E   C007               LSLS     R0,R0,#+31
   \   00000150   BAD5               BPL      ??main_3
    268                      pEMAC->EMAC_TSR |= AT91C_EMAC_UBR;		
   \   00000152   7069               LDR      R0,[R6, #+20]
   \   00000154   0121               MOVS     R1,#+1
   \   00000156   0143               ORRS     R1,R1,R0
   \   00000158   7161               STR      R1,[R6, #+20]
   \   0000015A   B5E7               B        ??main_3
   \                     ??main_0:
   \   0000015C   00F6FFFF           DC32     0xfffffffffffff600
   \   00000160   00C0FDFF           DC32     0xfffffffffffdc000
   \   00000164   00FDFFFF           DC32     0xfffffffffffffd00
   \   00000168   00FCFFFF           DC32     0xfffffffffffffc00
   \   0000016C   000100A5           DC32     0xffffffffa5000100
   \   00000170   080000A5           DC32     0xffffffffa5000008
   \   00000174   ........           DC32     `?<Constant "\\n\\n\\r-I- ==============...">_1`
   \   00000178   ........           DC32     `?<Constant "-I- AT91SAM7X256 EMAC...">`
   \   0000017C   ........           DC32     `?<Constant "-I- -----------------...">`
   \   00000180   FFFF0300           DC32     0x3ffff
   \   00000184   ........           DC32     `?<Constant "Error EMAC init: 0x%x">`
   \   00000188   ........           DC32     TxtdList
    269          #endif
    270            }
    271          }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -