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

📄 main.lst

📁 AT91SAM7X256芯片底层驱动源码。在IAR430环境下编译
💻 LST
📖 第 1 页 / 共 4 页
字号:
   \   000000D0   ....               LDR         R0,??DataTable21   ;; MsgBuffer
   \   000000D2   ........           _BLF        sprintf,sprintf??rT
   \   000000D6   0AE0               B           ??AT91F_DisplayIpPacket_4
     88                    break;
     89          
     90                    case PROT_ICMP:
     91                            sprintf(MsgBuffer, "\n\r Protocol          = %s","ICMP");
   \                     ??AT91F_DisplayIpPacket_1:
   \   000000D8   284A               LDR         R2,??AT91F_DisplayIpPacket_0+0x24  ;; `?<Constant "ICMP">`
   \   000000DA   2749               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
     92                    break;
     93                    default:
     94                            sprintf(MsgBuffer, "\n\r Protocol          = 0x%X",pIpHeader->ip_p);
   \                     ??AT91F_DisplayIpPacket_2:
   \   000000E4   627A               LDRB        R2,[R4, #+0x9]
   \   000000E6   2649               LDR         R1,??AT91F_DisplayIpPacket_0+0x28  ;; `?<Constant "\\n\\r Protocol          ...">_1`
   \   000000E8   ....               LDR         R0,??DataTable21   ;; MsgBuffer
   \   000000EA   ........           _BLF        sprintf,sprintf??rT
     95                    break;
     96            }
     97          
     98            AT91F_DBGU_Printk(MsgBuffer);
   \                     ??AT91F_DisplayIpPacket_4:
   \   000000EE   ....               LDR         R0,??DataTable21   ;; MsgBuffer
   \   000000F0   ........           _BLF        AT91F_DBGU_Printk,AT91F_DBGU_Printk??rT
     99          
    100            strncpy((char *)address, (const char *)(pIpHeader->ip_src), 4);
   \   000000F4   0422               MOV         R2,#+0x4
   \   000000F6   211C               MOV         R1,R4
   \   000000F8   0C31               ADD         R1,#+0xC
   \   000000FA   6846               MOV         R0,SP
   \   000000FC   ........           _BLF        strncpy,strncpy??rT
    101            address[4] = 0;
   \   00000100   6846               MOV         R0,SP
   \   00000102   0021               MOV         R1,#+0
   \   00000104   0171               STRB        R1,[R0, #+0x4]
    102          
    103            sprintf(MsgBuffer, "\n\r IP Src Address    = %d:%d:%d:%d",
    104                                                             pIpHeader->ip_src[0],
    105                                                         pIpHeader->ip_src[1],
    106                                                         pIpHeader->ip_src[2],
    107                                                         pIpHeader->ip_src[3]
    108            );
   \   00000106   E07B               LDRB        R0,[R4, #+0xF]
   \   00000108   01B4               PUSH        {R0}
   \   0000010A   A07B               LDRB        R0,[R4, #+0xE]
   \   0000010C   01B4               PUSH        {R0}
   \   0000010E   637B               LDRB        R3,[R4, #+0xD]
   \   00000110   227B               LDRB        R2,[R4, #+0xC]
   \   00000112   1C49               LDR         R1,??AT91F_DisplayIpPacket_0+0x2C  ;; `?<Constant "\\n\\r IP Src Address    ...">`
   \   00000114   ....               LDR         R0,??DataTable21   ;; MsgBuffer
   \   00000116   ........           _BLF        sprintf,sprintf??rT
   \   0000011A   02B0               ADD         SP,#+0x8
    109          	
    110            AT91F_DBGU_Printk(MsgBuffer);
   \   0000011C   ....               LDR         R0,??DataTable21   ;; MsgBuffer
   \   0000011E   ........           _BLF        AT91F_DBGU_Printk,AT91F_DBGU_Printk??rT
    111          
    112            strncpy((char *)address, (const char *)pIpHeader->ip_dst, 4);
   \   00000122   0422               MOV         R2,#+0x4
   \   00000124   211C               MOV         R1,R4
   \   00000126   1031               ADD         R1,#+0x10
   \   00000128   6846               MOV         R0,SP
   \   0000012A   ........           _BLF        strncpy,strncpy??rT
    113            address[4] = 0;
   \   0000012E   6846               MOV         R0,SP
   \   00000130   0021               MOV         R1,#+0
   \   00000132   0171               STRB        R1,[R0, #+0x4]
    114          
    115            sprintf(MsgBuffer, "\n\r IP Dest Address   = %d:%d:%d:%d",
    116                                                             pIpHeader->ip_dst[0],
    117                                                         pIpHeader->ip_dst[1],
    118                                                         pIpHeader->ip_dst[2],
    119                                                         pIpHeader->ip_dst[3]
    120                                                         );
   \   00000134   E07C               LDRB        R0,[R4, #+0x13]
   \   00000136   01B4               PUSH        {R0}
   \   00000138   A07C               LDRB        R0,[R4, #+0x12]
   \   0000013A   01B4               PUSH        {R0}
   \   0000013C   637C               LDRB        R3,[R4, #+0x11]
   \   0000013E   227C               LDRB        R2,[R4, #+0x10]
   \   00000140   1149               LDR         R1,??AT91F_DisplayIpPacket_0+0x30  ;; `?<Constant "\\n\\r IP Dest Address   ...">`
   \   00000142   ....               LDR         R0,??DataTable21   ;; MsgBuffer
   \   00000144   ........           _BLF        sprintf,sprintf??rT
   \   00000148   02B0               ADD         SP,#+0x8
    121            AT91F_DBGU_Printk(MsgBuffer);
   \   0000014A   ....               LDR         R0,??DataTable21   ;; MsgBuffer
   \   0000014C   ........           _BLF        AT91F_DBGU_Printk,AT91F_DBGU_Printk??rT
    122          #endif
    123          }
   \   00000150   02B0               ADD         SP,#+0x8
   \   00000152   10BC               POP         {R4}
   \   00000154   01BC               POP         {R0}
   \   00000156   0047               BX          R0                 ;; return
   \                     ??AT91F_DisplayIpPacket_0:
   \   00000158   ........           DC32        `?<Constant "\\n\\n\\r-I- ==============...">`
   \   0000015C   ........           DC32        `?<Constant "\\n\\r IP Version        ...">`
   \   00000160   ........           DC32        `?<Constant "\\n\\r Header Length     ...">`
   \   00000164   ........           DC32        `?<Constant "\\n\\r Type of service   ...">`
   \   00000168   ........           DC32        `?<Constant "\\n\\r Total IP Length   ...">`
   \   0000016C   ........           DC32        `?<Constant "\\n\\r ID                ...">`
   \   00000170   ........           DC32        `?<Constant "\\n\\r Header Checksum   ...">`
   \   00000174   ........           DC32        `?<Constant "IP">`
   \   00000178   ........           DC32        `?<Constant "\\n\\r Protocol          ...">`
   \   0000017C   ........           DC32        `?<Constant "ICMP">`
   \   00000180   ........           DC32        `?<Constant "\\n\\r Protocol          ...">_1`
   \   00000184   ........           DC32        `?<Constant "\\n\\r IP Src Address    ...">`
   \   00000188   ........           DC32        `?<Constant "\\n\\r IP Dest Address   ...">`
    124          
    125          //*----------------------------------------------------------------------------
    126          //* \fn    main
    127          //* \brief
    128          //*
    129          //*----------------------------------------------------------------------------

   \                                 In segment CODE, align 4, keep-with-next
    130          int main()
    131          {
   \                     main:
   \   00000000   70B5               PUSH        {R4-R6,LR}
   \   00000002   88B0               SUB         SP,#+0x20
    132            int status=0,i;
   \   00000004   0020               MOV         R0,#+0
   \   00000006   0090               STR         R0,[SP, #+0]
    133          #ifndef RMII
    134            int control=0;
    135          #endif
    136            AT91S_IPheader IpHeader;
    137            AT91PS_PIO     pPIOB = AT91C_BASE_PIOB;	
   \   00000008   5D4E               LDR         R6,??main_0        ;; 0xfffff600
    138            AT91PS_EMAC    pEMAC = AT91C_BASE_EMAC;	
   \   0000000A   5E4C               LDR         R4,??main_0+0x4    ;; 0xfffdc000
    139            AT91PS_RSTC    pRSTC = AT91C_BASE_RSTC;
   \   0000000C   5E4D               LDR         R5,??main_0+0x8    ;; 0xfffffd00
    140              	
    141            AT91F_PMC_EnablePeriphClock ( AT91C_BASE_PMC, 1 << AT91C_ID_PIOA ) ;
   \   0000000E   0421               MOV         R1,#+0x4
   \   00000010   5E48               LDR         R0,??main_0+0xC    ;; 0xfffffc00
   \   00000012   ........           _BLF        AT91F_PMC_EnablePeriphClock,AT91F_PMC_EnablePeriphClock??rT
    142            AT91F_PMC_EnablePeriphClock ( AT91C_BASE_PMC, 1 << AT91C_ID_PIOB ) ;
   \   00000016   0821               MOV         R1,#+0x8
   \   00000018   5C48               LDR         R0,??main_0+0xC    ;; 0xfffffc00
   \   0000001A   ........           _BLF        AT91F_PMC_EnablePeriphClock,AT91F_PMC_EnablePeriphClock??rT
    143            AT91F_PMC_EnablePeriphClock ( AT91C_BASE_PMC, 1 << AT91C_ID_EMAC ) ;
   \   0000001E   8021               MOV         R1,#+0x80
   \   00000020   4902               LSL         R1,R1,#+0x9        ;; #+0x10000
   \   00000022   5A48               LDR         R0,??main_0+0xC    ;; 0xfffffc00
   \   00000024   ........           _BLF        AT91F_PMC_EnablePeriphClock,AT91F_PMC_EnablePeriphClock??rT
    144          
    145            Init_LED_FOR_APPLI  ();
   \   00000028   ........           _BLF        Init_LED_FOR_APPLI,Init_LED_FOR_APPLI??rT
    146            APPLI();
   \   0000002C   ........           _BLF        APPLI,APPLI??rT
    147          
    148            //DBGU init for ethernet spy
    149            Init_DBGU();
   \   00000030   ........           _BLF        Init_DBGU,Init_DBGU??rT
    150          
    151            //disable pull up on RXDV => PHY normal mode (not in test mode),
    152            //PHY has internal pull down
    153            pPIOB->PIO_PPUDR=1<<15;
   \   00000034   8020               MOV         R0,#+0x80
   \   00000036   0002               LSL         R0,R0,#+0x8        ;; #+0x8000
   \   00000038   3066               STR         R0,[R6, #+0x60]
    154          
    155          #ifndef RMII
    156              AT91F_DBGU_Printk("-I- AT91SAM7X256 test\n\r");
    157            //PHY has internal pull down : set MII mode
    158            pPIOB->PIO_PPUDR=1<<16;
    159          #endif
    160          
    161            //clear PB18 <=> PHY powerdown
    162            AT91F_PIO_CfgOutput( AT91C_BASE_PIOB, 1<<18 ) ;
   \   0000003A   8021               MOV         R1,#+0x80
   \   0000003C   C902               LSL         R1,R1,#+0xB        ;; #+0x40000
   \   0000003E   5048               LDR         R0,??main_0        ;; 0xfffff600
   \   00000040   ........           _BLF        AT91F_PIO_CfgOutput,AT91F_PIO_CfgOutput??rT
    163            AT91F_PIO_ClearOutput( AT91C_BASE_PIOB,  1<<18) ;
   \   00000044   8021               MOV         R1,#+0x80
   \   00000046   C902               LSL         R1,R1,#+0xB        ;; #+0x40000
   \   00000048   4D48               LDR         R0,??main_0        ;; 0xfffff600
   \   0000004A   ........           _BLF        AT91F_PIO_ClearOutput,AT91F_PIO_ClearOutput??rT
    164          
    165            //After PHY power up, hardware reset
    166            pRSTC->RSTC_RMR = 0xA5000000 | AT91C_RSTC_ERSTL&(0x01<<8);
   \   0000004E   5048               LDR         R0,??main_0+0x10   ;; 0xa5000100
   \   00000050   A860               STR         R0,[R5, #+0x8]
    167            pRSTC->RSTC_RCR = 0xA5000000 | AT91C_RSTC_EXTRST;
   \   00000052   5048               LDR         R0,??main_0+0x14   ;; 0xa5000008
   \   00000054   2860               STR         R0,[R5, #+0]
    168          	
    169            //Display general purpose infos
    170            AT91F_DBGU_Printk("\n\n\r-I- ======================================\n\r");
   \   00000056   5048               LDR         R0,??main_0+0x18   ;; `?<Constant "\\n\\n\\r-I- ==============...">_1`
   \   00000058   ........           _BLF        AT91F_DBGU_Printk,AT91F_DBGU_Printk??rT
    171            AT91F_DBGU_Printk("-I- AT91SAM7X256 EMAC Test\n\r");
   \   0000005C   4F48               LDR         R0,??main_0+0x1C   ;; `?<Constant "-I- AT91SAM7X256 EMAC...">`
   \   0000005E   ........           _BLF        AT91F_DBGU_Printk,AT91F_DBGU_Printk??rT
    172            AT91F_DBGU_Printk("-I- --------------------------------------\n\r");
   \   00000062   4F48               LDR         R0,??main_0+0x20   ;; `?<Constant "-I- -----------------...">`
   \   00000064   ........           _BLF        AT91F_DBGU_Printk,AT91F_DBGU_Printk??rT
    173          		
    174            //Wait for hardware reset end
    175            while( !(pRSTC->RSTC_RSR & AT91C_RSTC_NRSTL) ) {;}	
   \                     ??main_1:
   \   00000068   6868               LDR         R0,[R5, #+0x4]
   \   0000006A   C003               LSL         R0,R0,#+0xF
   \   0000006C   FCD5               BPL         ??main_1
    176             AT91F_DBGU_Printk("-I- AT91SAM7X256 111\n\r"); 	
   \   0000006E   4D48               LDR         R0,??main_0+0x24   ;; `?<Constant "-I- AT91SAM7X256 111\\n\\r">`
   \   00000070   ........           _BLF        AT91F_DBGU_Printk,AT91F_DBGU_Printk??rT
    177            //EMAC IO init for EMAC-PHY com
    178            // Remove EF100 config
    179            AT91F_PIO_CfgPeriph(
    180                        AT91C_BASE_PIOB, // PIO controller base address
    181                        ((unsigned int) AT91C_PB2_ETX0    ) |
    182                        ((unsigned int) AT91C_PB12_ETXER   ) |
    183                        ((unsigned int) AT91C_PB16_ECOL    ) |
    184                        ((unsigned int) AT91C_PB11_ETX3    ) |
    185                        ((unsigned int) AT91C_PB6_ERX1    ) |
    186                        ((unsigned int) AT91C_PB15_ERXDV_ECRSDV   ) |
    187                        ((unsigned int) AT91C_PB13_ERX2    ) |
    188                        ((unsigned int) AT91C_PB3_ETX1    ) |
    189                        ((unsigned int) AT91C_PB8_EMDC    ) |
    190                        ((unsigned int) AT91C_PB5_ERX0    ) |
    191                        ((unsigned int) AT91C_PB14_ERX3    ) |
    192                        ((unsigned int) AT91C_PB4_ECRS) |
    193                        ((unsigned int) AT91C_PB1_ETXEN   ) |
    194                        ((unsigned int) AT91C_PB10_ETX2    ) |
    195                        ((unsigned int) AT91C_PB0_ETXCK_EREFCK) |
    196                        ((unsigned int) AT91C_PB9_EMDIO   ) |
    197                        ((unsigned int) AT91C_PB7_ERXER   ) |
    198                        ((unsigned int) AT91C_PB17_ERXCK   ),
    199                        0);
   \   00000074   0022               MOV         R2,#+0
   \   00000076   4C49               LDR         R1,??main_0+0x28   ;; 0x3ffff
   \   00000078   4148               LDR         R0,??main_0        ;; 0xfffff600
   \   0000007A   ........           _BLF        AT91F_PIO_CfgPeriph,AT91F_PIO_CfgPeriph??rT
    200          
    201          
    202            //Enable com between EMAC PHY
    203            AT91F_Enable_Mdi(pEMAC);
   \   0000007E   201C               MOV         R0,R4
   \   00000080   ........           _BLF        AT91F_Enable_Mdi,AT91F_Enable_Mdi??rT
    204            AT91F_DBGU_Printk("-I- AT91SAM7X256 222\n\r");
   \   00000084   4948               LDR         R0,??main_0+0x2C   ;; `?<Constant "-I- AT91SAM7X256 222\\n\\r">`
   \   00000086   ........           _BLF        AT91F_DBGU_Printk,AT91F_DBGU_Printk??rT
    205            //PHY configuration
    206          #ifndef RMII
    207            //PHY has internal pull down : disable MII isolate
    208            read_phy(pEMAC, AT91C_PHY_ADDR, MII_BMCR, (unsigned int *)&control);

⌨️ 快捷键说明

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