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

📄 main.lst

📁 at91sam7x256 mac驱动演示程序
💻 LST
📖 第 1 页 / 共 4 页
字号:
     82          
     83          
     84            switch(pIpHeader->ip_p) {
   \   000000BE   607A               LDRB     R0,[R4, #+9]
   \   000000C0   0128               CMP      R0,#+1
   \   000000C2   09D0               BEQ      ??AT91F_DisplayIpPacket_1
   \   000000C4   8021               MOVS     R1,#+128
   \   000000C6   0901               LSLS     R1,R1,#+4        ;; #+2048
   \   000000C8   8842               CMP      R0,R1
   \   000000CA   0BD1               BNE      ??AT91F_DisplayIpPacket_2
     85                    case PROT_IP:
     86                            sprintf(MsgBuffer, "\n\r Protocol          = %s","IP");
   \                     ??AT91F_DisplayIpPacket_3:
   \   000000CC   28A2               ADR      R2,??AT91F_DisplayIpPacket_0+0x1C  ;; "IP"
   \   000000CE   2949               LDR      R1,??AT91F_DisplayIpPacket_0+0x20  ;; `?<Constant "\\n\\r Protocol          ...">`
   \   000000D0   ....               LDR      R0,??DataTable21  ;; MsgBuffer
   \   000000D2   ........           _BLF     sprintf,??sprintf??rT
   \   000000D6   0AE0               B        ??AT91F_DisplayIpPacket_4
     87                    break;
     88          
     89                    case PROT_ICMP:
     90                            sprintf(MsgBuffer, "\n\r Protocol          = %s","ICMP");
   \                     ??AT91F_DisplayIpPacket_1:
   \   000000D8   274A               LDR      R2,??AT91F_DisplayIpPacket_0+0x24  ;; `?<Constant "ICMP">`
   \   000000DA   2649               LDR      R1,??AT91F_DisplayIpPacket_0+0x20  ;; `?<Constant "\\n\\r Protocol          ...">`
   \   000000DC   ....               LDR      R0,??DataTable21  ;; MsgBuffer
   \   000000DE   ........           _BLF     sprintf,??sprintf??rT
   \   000000E2   04E0               B        ??AT91F_DisplayIpPacket_4
     91                    break;
     92                    default:
     93                            sprintf(MsgBuffer, "\n\r Protocol          = 0x%X",pIpHeader->ip_p);
   \                     ??AT91F_DisplayIpPacket_2:
   \   000000E4   627A               LDRB     R2,[R4, #+9]
   \   000000E6   2549               LDR      R1,??AT91F_DisplayIpPacket_0+0x28  ;; `?<Constant "\\n\\r Protocol          ...">_1`
   \   000000E8   ....               LDR      R0,??DataTable21  ;; MsgBuffer
   \   000000EA   ........           _BLF     sprintf,??sprintf??rT
     94                    break;
     95            }
     96          
     97            AT91F_DBGU_Printk(MsgBuffer);
   \                     ??AT91F_DisplayIpPacket_4:
   \   000000EE   ....               LDR      R0,??DataTable21  ;; MsgBuffer
   \   000000F0   ........           _BLF     AT91F_DBGU_Printk,??AT91F_DBGU_Printk??rT
     98          
     99            strncpy((char *)address, (const char *)(pIpHeader->ip_src), 4);
   \   000000F4   0422               MOVS     R2,#+4
   \   000000F6   2100               MOVS     R1,R4
   \   000000F8   0C31               ADDS     R1,R1,#+12
   \   000000FA   6846               MOV      R0,SP
   \   000000FC   ........           _BLF     strncpy,??strncpy??rT
    100            address[4] = 0;
   \   00000100   6846               MOV      R0,SP
   \   00000102   0021               MOVS     R1,#+0
   \   00000104   0171               STRB     R1,[R0, #+4]
    101          
    102            sprintf(MsgBuffer, "\n\r IP Src Address    = %d:%d:%d:%d",
    103                                                             pIpHeader->ip_src[0],
    104                                                         pIpHeader->ip_src[1],
    105                                                         pIpHeader->ip_src[2],
    106                                                         pIpHeader->ip_src[3]
    107            );
   \   00000106   E17B               LDRB     R1,[R4, #+15]
   \   00000108   A07B               LDRB     R0,[R4, #+14]
   \   0000010A   03B4               PUSH     {R0,R1}
   \   0000010C   637B               LDRB     R3,[R4, #+13]
   \   0000010E   227B               LDRB     R2,[R4, #+12]
   \   00000110   1B49               LDR      R1,??AT91F_DisplayIpPacket_0+0x2C  ;; `?<Constant "\\n\\r IP Src Address    ...">`
   \   00000112   ....               LDR      R0,??DataTable21  ;; MsgBuffer
   \   00000114   ........           _BLF     sprintf,??sprintf??rT
   \   00000118   02B0               ADD      SP,SP,#+8
    108          	
    109            AT91F_DBGU_Printk(MsgBuffer);
   \   0000011A   ....               LDR      R0,??DataTable21  ;; MsgBuffer
   \   0000011C   ........           _BLF     AT91F_DBGU_Printk,??AT91F_DBGU_Printk??rT
    110          
    111            strncpy((char *)address, (const char *)pIpHeader->ip_dst, 4);
   \   00000120   0422               MOVS     R2,#+4
   \   00000122   2100               MOVS     R1,R4
   \   00000124   1031               ADDS     R1,R1,#+16
   \   00000126   6846               MOV      R0,SP
   \   00000128   ........           _BLF     strncpy,??strncpy??rT
    112            address[4] = 0;
   \   0000012C   6846               MOV      R0,SP
   \   0000012E   0021               MOVS     R1,#+0
   \   00000130   0171               STRB     R1,[R0, #+4]
    113          
    114            sprintf(MsgBuffer, "\n\r IP Dest Address   = %d:%d:%d:%d",
    115                                                             pIpHeader->ip_dst[0],
    116                                                         pIpHeader->ip_dst[1],
    117                                                         pIpHeader->ip_dst[2],
    118                                                         pIpHeader->ip_dst[3]
    119                                                         );
   \   00000132   E17C               LDRB     R1,[R4, #+19]
   \   00000134   A07C               LDRB     R0,[R4, #+18]
   \   00000136   03B4               PUSH     {R0,R1}
   \   00000138   637C               LDRB     R3,[R4, #+17]
   \   0000013A   227C               LDRB     R2,[R4, #+16]
   \   0000013C   1149               LDR      R1,??AT91F_DisplayIpPacket_0+0x30  ;; `?<Constant "\\n\\r IP Dest Address   ...">`
   \   0000013E   ....               LDR      R0,??DataTable21  ;; MsgBuffer
   \   00000140   ........           _BLF     sprintf,??sprintf??rT
   \   00000144   02B0               ADD      SP,SP,#+8
    120            AT91F_DBGU_Printk(MsgBuffer);
   \   00000146   ....               LDR      R0,??DataTable21  ;; MsgBuffer
   \   00000148   ........           _BLF     AT91F_DBGU_Printk,??AT91F_DBGU_Printk??rT
    121          #endif
    122          }
   \   0000014C   02B0               ADD      SP,SP,#+8
   \   0000014E   10BC               POP      {R4}
   \   00000150   01BC               POP      {R0}
   \   00000152   0047               BX       R0               ;; return
   \                     ??AT91F_DisplayIpPacket_0:
   \   00000154   ........           DC32     `?<Constant "\\n\\n\\r-I- ==============...">`
   \   00000158   ........           DC32     `?<Constant "\\n\\r IP Version        ...">`
   \   0000015C   ........           DC32     `?<Constant "\\n\\r Header Length     ...">`
   \   00000160   ........           DC32     `?<Constant "\\n\\r Type of service   ...">`
   \   00000164   ........           DC32     `?<Constant "\\n\\r Total IP Length   ...">`
   \   00000168   ........           DC32     `?<Constant "\\n\\r ID                ...">`
   \   0000016C   ........           DC32     `?<Constant "\\n\\r Header Checksum   ...">`
   \   00000170   49500000           DC8      "IP",+0
   \   00000174   ........           DC32     `?<Constant "\\n\\r Protocol          ...">`
   \   00000178   ........           DC32     `?<Constant "ICMP">`
   \   0000017C   ........           DC32     `?<Constant "\\n\\r Protocol          ...">_1`
   \   00000180   ........           DC32     `?<Constant "\\n\\r IP Src Address    ...">`
   \   00000184   ........           DC32     `?<Constant "\\n\\r IP Dest Address   ...">`
    123          
    124          //*----------------------------------------------------------------------------
    125          //* \fn    main
    126          //* \brief
    127          //*
    128          //*----------------------------------------------------------------------------

   \                                 In segment CODE, align 4, keep-with-next
    129          int main()
    130          {
   \                     main:
   \   00000000   F0B5               PUSH     {R4-R7,LR}
   \   00000002   89B0               SUB      SP,SP,#+36
    131            int status=0,i;
   \   00000004   0020               MOVS     R0,#+0
   \   00000006   0190               STR      R0,[SP, #+4]
    132          #ifndef RMII
    133            int control=0;
   \   00000008   0020               MOVS     R0,#+0
   \   0000000A   0090               STR      R0,[SP, #+0]
    134          #endif
    135            AT91S_IPheader IpHeader;
    136            AT91PS_PIO     pPIOB = AT91C_BASE_PIOB;	
   \   0000000C   6148               LDR      R0,??main_0      ;; 0xfffff600
   \   0000000E   0500               MOVS     R5,R0
    137            AT91PS_EMAC    pEMAC = AT91C_BASE_EMAC;	
   \   00000010   6148               LDR      R0,??main_0+0x4  ;; 0xfffdc000
   \   00000012   0600               MOVS     R6,R0
    138            AT91PS_RSTC    pRSTC = AT91C_BASE_RSTC;
   \   00000014   6148               LDR      R0,??main_0+0x8  ;; 0xfffffd00
   \   00000016   0700               MOVS     R7,R0
    139              	
    140            AT91F_PMC_EnablePeriphClock ( AT91C_BASE_PMC, 1 << AT91C_ID_PIOA ) ;
   \   00000018   0421               MOVS     R1,#+4
   \   0000001A   6148               LDR      R0,??main_0+0xC  ;; 0xfffffc00
   \   0000001C   ........           _BLF     AT91F_PMC_EnablePeriphClock,??AT91F_PMC_EnablePeriphClock??rT
    141            AT91F_PMC_EnablePeriphClock ( AT91C_BASE_PMC, 1 << AT91C_ID_PIOB ) ;
   \   00000020   0821               MOVS     R1,#+8
   \   00000022   5F48               LDR      R0,??main_0+0xC  ;; 0xfffffc00
   \   00000024   ........           _BLF     AT91F_PMC_EnablePeriphClock,??AT91F_PMC_EnablePeriphClock??rT
    142            AT91F_PMC_EnablePeriphClock ( AT91C_BASE_PMC, 1 << AT91C_ID_EMAC ) ;
   \   00000028   8021               MOVS     R1,#+128
   \   0000002A   4902               LSLS     R1,R1,#+9        ;; #+65536
   \   0000002C   5C48               LDR      R0,??main_0+0xC  ;; 0xfffffc00
   \   0000002E   ........           _BLF     AT91F_PMC_EnablePeriphClock,??AT91F_PMC_EnablePeriphClock??rT
    143          
    144            Init_LED_FOR_APPLI  ();
   \   00000032   ........           _BLF     Init_LED_FOR_APPLI,??Init_LED_FOR_APPLI??rT
    145            APPLI();
   \   00000036   ........           _BLF     APPLI,??APPLI??rT
    146          
    147            //DBGU init for ethernet spy
    148            Init_DBGU();
   \   0000003A   ........           _BLF     Init_DBGU,??Init_DBGU??rT
    149          
    150            //disable pull up on RXDV => PHY normal mode (not in test mode),
    151            //PHY has internal pull down
    152            pPIOB->PIO_PPUDR=1<<15;
   \   0000003E   8020               MOVS     R0,#+128
   \   00000040   0002               LSLS     R0,R0,#+8        ;; #+32768
   \   00000042   2866               STR      R0,[R5, #+96]
    153          
    154          #ifndef RMII
    155            //PHY has internal pull down : set MII mode
    156            pPIOB->PIO_PPUDR=1<<16;
   \   00000044   8020               MOVS     R0,#+128
   \   00000046   4002               LSLS     R0,R0,#+9        ;; #+65536
   \   00000048   2866               STR      R0,[R5, #+96]
    157          #endif
    158          
    159            //clear PB18 <=> PHY powerdown
    160            AT91F_PIO_CfgOutput( AT91C_BASE_PIOB, 1<<18 ) ;
   \   0000004A   8021               MOVS     R1,#+128
   \   0000004C   C902               LSLS     R1,R1,#+11       ;; #+262144
   \   0000004E   5148               LDR      R0,??main_0      ;; 0xfffff600
   \   00000050   ........           _BLF     AT91F_PIO_CfgOutput,??AT91F_PIO_CfgOutput??rT
    161            AT91F_PIO_ClearOutput( AT91C_BASE_PIOB,  1<<18) ;
   \   00000054   8021               MOVS     R1,#+128
   \   00000056   C902               LSLS     R1,R1,#+11       ;; #+262144
   \   00000058   4E48               LDR      R0,??main_0      ;; 0xfffff600
   \   0000005A   ........           _BLF     AT91F_PIO_ClearOutput,??AT91F_PIO_ClearOutput??rT
    162          
    163            //After PHY power up, hardware reset
    164            pRSTC->RSTC_RMR = 0xA5000000 | AT91C_RSTC_ERSTL&(0x01<<8);
   \   0000005E   5148               LDR      R0,??main_0+0x10  ;; 0xa5000100
   \   00000060   B860               STR      R0,[R7, #+8]
    165            pRSTC->RSTC_RCR = 0xA5000000 | AT91C_RSTC_EXTRST;
   \   00000062   5148               LDR      R0,??main_0+0x14  ;; 0xa5000008
   \   00000064   3860               STR      R0,[R7, #+0]
    166          	
    167            //Display general purpose infos
    168            AT91F_DBGU_Printk("\n\n\r-I- ======================================\n\r");
   \   00000066   5148               LDR      R0,??main_0+0x18  ;; `?<Constant "\\n\\n\\r-I- ==============...">_1`
   \   00000068   ........           _BLF     AT91F_DBGU_Printk,??AT91F_DBGU_Printk??rT
    169            AT91F_DBGU_Printk("-I- AT91SAM7X256 EMAC Test\n\r");
   \   0000006C   5048               LDR      R0,??main_0+0x1C  ;; `?<Constant "-I- AT91SAM7X256 EMAC...">`
   \   0000006E   ........           _BLF     AT91F_DBGU_Printk,??AT91F_DBGU_Printk??rT
    170            AT91F_DBGU_Printk("-I- --------------------------------------\n\r");
   \   00000072   5048               LDR      R0,??main_0+0x20  ;; `?<Constant "-I- -----------------...">`
   \   00000074   ........           _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:
   \   00000078   7868               LDR      R0,[R7, #+4]
   \   0000007A   C003               LSLS     R0,R0,#+15
   \   0000007C   FCD5               BPL      ??main_1
    174            	
    175            //EMAC IO init for EMAC-PHY com
    176            // Remove EF100 config
    177            AT91F_PIO_CfgPeriph(

⌨️ 快捷键说明

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