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

📄 main.lst

📁 AT91SAM7X256芯片底层驱动源码。在IAR430环境下编译
💻 LST
📖 第 1 页 / 共 4 页
字号:
    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 + -