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

📄 main.lst

📁 AT91SAM7X256芯片底层驱动源码。在IAR430环境下编译
💻 LST
📖 第 1 页 / 共 4 页
字号:
##############################################################################
#                                                                            #
# IAR ARM ANSI C/C++ Compiler V4.30A/W32 KICKSTART     31/Oct/2005  18:05:26 #
# Copyright 1999-2005 IAR Systems. All rights reserved.                      #
#                                                                            #
#    Cpu mode        =  interwork                                            #
#    Endian          =  little                                               #
#    Stack alignment =  4                                                    #
#    Source file     =  E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-BasicEMAC_IA #
#                       R4_30-1_2\AT91SAM7X256-BasicEmac\src\main.c          #
#    Command line    =  E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-BasicEMAC_IA #
#                       R4_30-1_2\AT91SAM7X256-BasicEmac\src\main.c -D ESS   #
#                       -lC E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-BasicEMA #
#                       C_IAR4_30-1_2\AT91SAM7X256-BasicEmac\compil\bin\List #
#                       \ -o E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-BasicEM #
#                       AC_IAR4_30-1_2\AT91SAM7X256-BasicEmac\compil\bin\Obj #
#                       \ -z3 --no_cse --no_unroll --no_inline               #
#                       --no_code_motion --no_tbaa --no_clustering           #
#                       --no_scheduling --debug --cpu_mode thumb --endian    #
#                       little --cpu ARM7TDMI --stack_align 4 --interwork    #
#                       -e --fpu None --dlib_config "D:\Program Files\IAR    #
#                       Systems\Embedded Workbench 4.0                       #
#                       Kickstart\arm\LIB\dl4tptinl8n.h" -I                  #
#                       E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-BasicEMAC_IA #
#                       R4_30-1_2\AT91SAM7X256-BasicEmac\compil\..\..\ -I    #
#                       E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-BasicEMAC_IA #
#                       R4_30-1_2\AT91SAM7X256-BasicEmac\compil\srcIAR\ -I   #
#                       "D:\Program Files\IAR Systems\Embedded Workbench     #
#                       4.0 Kickstart\arm\INC\"                              #
#    List file       =  E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-BasicEMAC_IA #
#                       R4_30-1_2\AT91SAM7X256-BasicEmac\compil\bin\List\mai #
#                       n.lst                                                #
#    Object file     =  E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-BasicEMAC_IA #
#                       R4_30-1_2\AT91SAM7X256-BasicEmac\compil\bin\Obj\main #
#                       .r79                                                 #
#                                                                            #
#                                                                            #
##############################################################################

E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-BasicEMAC_IAR4_30-1_2\AT91SAM7X256-BasicEmac\src\main.c
      1          //*----------------------------------------------------------------------------
      2          //*         ATMEL Microcontroller Software Support  -  ROUSSET  -
      3          //*----------------------------------------------------------------------------
      4          //* The software is delivered "AS IS" without warranty or condition of any
      5          //* kind, either express, implied or statutory. This includes without
      6          //* limitation any warranty or condition with respect to merchantability or
      7          //* fitness for any particular purpose, or against the infringements of
      8          //* intellectual property rights of others.
      9          //*----------------------------------------------------------------------------
     10          //* File Name           : main.c
     11          //* Object              : main application written in C
     12          //* Creation            : Hi   11/18/2002
     13          //* Modification        : JGe  07/28/2005
     14          //*----------------------------------------------------------------------------
     15          #include "board.h"

   \                                 In segment CODE, align 4, keep-with-next
   \   __??Code16?? __code __interwork __atpcs void AT91F_PIO_CfgPeriph(AT91PS_PIO, unsigned int, unsigned int)
   \                     AT91F_PIO_CfgPeriph:
   \   00000000   0167               STR         R1,[R0, #+0x70]
   \   00000002   4267               STR         R2,[R0, #+0x74]
   \   00000004   0A43               ORR         R2,R1
   \   00000006   4260               STR         R2,[R0, #+0x4]
   \   00000008   7047               BX          LR                 ;; return

   \                                 In segment CODE, align 4, keep-with-next
   \   __??Code16?? __code __interwork __atpcs void AT91F_PIO_CfgOutput(AT91PS_PIO, unsigned int)
   \                     AT91F_PIO_CfgOutput:
   \   00000000   0160               STR         R1,[R0, #+0]
   \   00000002   0161               STR         R1,[R0, #+0x10]
   \   00000004   7047               BX          LR                 ;; return

   \                                 In segment CODE, align 4, keep-with-next
   \   __??Code16?? __code __interwork __atpcs void AT91F_PIO_ClearOutput(AT91PS_PIO, unsigned int)
   \                     AT91F_PIO_ClearOutput:
   \   00000000   4163               STR         R1,[R0, #+0x34]
   \   00000002   7047               BX          LR                 ;; return

   \                                 In segment CODE, align 4, keep-with-next
   \   __??Code16?? __code __interwork __atpcs void AT91F_PMC_EnablePeriphClock(AT91PS_PMC, unsigned int)
   \                     AT91F_PMC_EnablePeriphClock:
   \   00000000   0161               STR         R1,[R0, #+0x10]
   \   00000002   7047               BX          LR                 ;; return
     16          
     17          #include "Emac.h"
     18          #include <stdio.h>
     19          #include <string.h>
     20          #include "mii.h"
     21          
     22          // function in appli.c
     23          extern void  Init_LED_FOR_APPLI  (void);
     24          extern void  APPLI(void);
     25          extern void LED_Toggle(unsigned int led);
     26          extern void LED_TurnOn(unsigned int led);
     27          extern void LED_TurnOff(unsigned int led);
     28          
     29          // function in dbgu.c
     30          extern void AT91F_DBGU_Printk(char *buffer);
     31          extern void Init_DBGU(void);
     32          
     33          // functions in Emac.c
     34          extern void AT91F_EMAC_HANDLER (void);
     35          extern int AT91F_EmacEntry(void);
     36          extern int AT91F_ProcessEmacPacket(AT91PS_IPheader pHeader);
     37          extern void write_phy(AT91PS_EMAC pEmac, unsigned char phy_addr, unsigned char address, unsigned int value);
     38          extern void read_phy(AT91PS_EMAC pEmac, unsigned char phy_addr, unsigned char address, unsigned int *value);
     39          
     40          extern void AT91F_Enable_Mdi(AT91PS_EMAC pEmac);
     41          extern void AT91F_Disable_Mdi(AT91PS_EMAC pEmac);
     42          
     43          // Message buffer

   \                                 In segment DATA_Z, align 4, align-sorted
     44          char MsgBuffer[256];
   \                     MsgBuffer:
   \   00000000                      DS8 256
     45          
     46          // system timer counter
     47          extern AT91PS_RxTdDescriptor RxtdList;
     48          extern AT91PS_TxTdDescriptor TxtdList;
     49          
     50          #define AT91C_ID_EMAC_B		16
     51          //#undef RMII
     52          #define RMII
     53          //#define EMAC_IRQ
     54          #define DISPLAY_IP_PACKET
     55          
     56          //*----------------------------------------------------------------------------
     57          //* \fn    AT91F_DisplayIpPacket
     58          //* \brief This function is invoked by main
     59          //* This function is for demonstration purpose only
     60          //*----------------------------------------------------------------------------

   \                                 In segment CODE, align 4, keep-with-next
     61          void AT91F_DisplayIpPacket(AT91PS_IPheader pIpHeader)
     62          {
   \                     AT91F_DisplayIpPacket:
   \   00000000   10B5               PUSH        {R4,LR}
   \   00000002   82B0               SUB         SP,#+0x8
   \   00000004   041C               MOV         R4,R0
     63          char address[6];
     64          #ifdef DISPLAY_IP_PACKET
     65            AT91F_DBGU_Printk("\n\n\r-I- ================ IP HEADER ======================\n\r");
   \   00000006   5448               LDR         R0,??AT91F_DisplayIpPacket_0  ;; `?<Constant "\\n\\n\\r-I- ==============...">`
   \   00000008   ........           _BLF        AT91F_DBGU_Printk,AT91F_DBGU_Printk??rT
     66            sprintf(MsgBuffer, "\n\r IP Version        = v.%d",(pIpHeader->ip_hl_v & 0xF0) >> 4);
   \   0000000C   2078               LDRB        R0,[R4, #+0]
   \   0000000E   021C               MOV         R2,R0
   \   00000010   1206               LSL         R2,R2,#+0x18       ;; ZeroExt     R2,R2,#+0x18,#+0x18
   \   00000012   120E               LSR         R2,R2,#+0x18
   \   00000014   1209               LSR         R2,R2,#+0x4
   \   00000016   1206               LSL         R2,R2,#+0x18       ;; ZeroExt     R2,R2,#+0x18,#+0x18
   \   00000018   120E               LSR         R2,R2,#+0x18
   \   0000001A   5049               LDR         R1,??AT91F_DisplayIpPacket_0+0x4  ;; `?<Constant "\\n\\r IP Version        ...">`
   \   0000001C   ....               LDR         R0,??DataTable21   ;; MsgBuffer
   \   0000001E   ........           _BLF        sprintf,sprintf??rT
     67            AT91F_DBGU_Printk(MsgBuffer);
   \   00000022   ....               LDR         R0,??DataTable21   ;; MsgBuffer
   \   00000024   ........           _BLF        AT91F_DBGU_Printk,AT91F_DBGU_Printk??rT
     68          
     69            sprintf(MsgBuffer, "\n\r Header Length     = %d",pIpHeader->ip_hl_v & 0x0F);
   \   00000028   2078               LDRB        R0,[R4, #+0]
   \   0000002A   0207               LSL         R2,R0,#+0x1C       ;; ZeroExt     R2,R0,#+0x1C,#+0x1C
   \   0000002C   120F               LSR         R2,R2,#+0x1C
   \   0000002E   4C49               LDR         R1,??AT91F_DisplayIpPacket_0+0x8  ;; `?<Constant "\\n\\r Header Length     ...">`
   \   00000030   ....               LDR         R0,??DataTable21   ;; MsgBuffer
   \   00000032   ........           _BLF        sprintf,sprintf??rT
     70            AT91F_DBGU_Printk(MsgBuffer);
   \   00000036   ....               LDR         R0,??DataTable21   ;; MsgBuffer
   \   00000038   ........           _BLF        AT91F_DBGU_Printk,AT91F_DBGU_Printk??rT
     71          
     72            sprintf(MsgBuffer, "\n\r Type of service   = 0x%x",pIpHeader->ip_tos);
   \   0000003C   6278               LDRB        R2,[R4, #+0x1]
   \   0000003E   4949               LDR         R1,??AT91F_DisplayIpPacket_0+0xC  ;; `?<Constant "\\n\\r Type of service   ...">`
   \   00000040   ....               LDR         R0,??DataTable21   ;; MsgBuffer
   \   00000042   ........           _BLF        sprintf,sprintf??rT
     73            AT91F_DBGU_Printk(MsgBuffer);
   \   00000046   ....               LDR         R0,??DataTable21   ;; MsgBuffer
   \   00000048   ........           _BLF        AT91F_DBGU_Printk,AT91F_DBGU_Printk??rT
     74          
     75            sprintf(MsgBuffer, "\n\r Total IP Length   = 0x%X", (((pIpHeader->ip_len)>>8)&0xff) + (((pIpHeader->ip_len)<<8)&0xff00) );
   \   0000004C   6088               LDRH        R0,[R4, #+0x2]
   \   0000004E   0004               LSL         R0,R0,#+0x10       ;; ZeroExt     R0,R0,#+0x10,#+0x10
   \   00000050   000C               LSR         R0,R0,#+0x10
   \   00000052   000A               LSR         R0,R0,#+0x8
   \   00000054   0004               LSL         R0,R0,#+0x10       ;; ZeroExt     R0,R0,#+0x10,#+0x10
   \   00000056   000C               LSR         R0,R0,#+0x10
   \   00000058   6188               LDRH        R1,[R4, #+0x2]
   \   0000005A   0902               LSL         R1,R1,#+0x8
   \   0000005C   FF22               MOV         R2,#+0xFF
   \   0000005E   1202               LSL         R2,R2,#+0x8        ;; #+0xFF00
   \   00000060   0A40               AND         R2,R1
   \   00000062   8218               ADD         R2,R0,R2
   \   00000064   4049               LDR         R1,??AT91F_DisplayIpPacket_0+0x10  ;; `?<Constant "\\n\\r Total IP Length   ...">`
   \   00000066   ....               LDR         R0,??DataTable21   ;; MsgBuffer
   \   00000068   ........           _BLF        sprintf,sprintf??rT
     76            AT91F_DBGU_Printk(MsgBuffer);
   \   0000006C   ....               LDR         R0,??DataTable21   ;; MsgBuffer
   \   0000006E   ........           _BLF        AT91F_DBGU_Printk,AT91F_DBGU_Printk??rT
     77          
     78            sprintf(MsgBuffer, "\n\r ID                = 0x%X", (((pIpHeader->ip_id)>>8)&0xff) + (((pIpHeader->ip_id)<<8)&0xff00) );
   \   00000072   A088               LDRH        R0,[R4, #+0x4]
   \   00000074   0004               LSL         R0,R0,#+0x10       ;; ZeroExt     R0,R0,#+0x10,#+0x10
   \   00000076   000C               LSR         R0,R0,#+0x10
   \   00000078   000A               LSR         R0,R0,#+0x8
   \   0000007A   0004               LSL         R0,R0,#+0x10       ;; ZeroExt     R0,R0,#+0x10,#+0x10
   \   0000007C   000C               LSR         R0,R0,#+0x10
   \   0000007E   A188               LDRH        R1,[R4, #+0x4]
   \   00000080   0902               LSL         R1,R1,#+0x8
   \   00000082   FF22               MOV         R2,#+0xFF
   \   00000084   1202               LSL         R2,R2,#+0x8        ;; #+0xFF00
   \   00000086   0A40               AND         R2,R1
   \   00000088   8218               ADD         R2,R0,R2
   \   0000008A   3849               LDR         R1,??AT91F_DisplayIpPacket_0+0x14  ;; `?<Constant "\\n\\r ID                ...">`
   \   0000008C   ....               LDR         R0,??DataTable21   ;; MsgBuffer
   \   0000008E   ........           _BLF        sprintf,sprintf??rT
     79            AT91F_DBGU_Printk(MsgBuffer);
   \   00000092   ....               LDR         R0,??DataTable21   ;; MsgBuffer
   \   00000094   ........           _BLF        AT91F_DBGU_Printk,AT91F_DBGU_Printk??rT
     80          
     81            sprintf(MsgBuffer, "\n\r Header Checksum   = 0x%X", (((pIpHeader->ip_sum)>>8)&0xff) + (((pIpHeader->ip_sum)<<8)&0xff00) );
   \   00000098   6089               LDRH        R0,[R4, #+0xA]
   \   0000009A   0004               LSL         R0,R0,#+0x10       ;; ZeroExt     R0,R0,#+0x10,#+0x10
   \   0000009C   000C               LSR         R0,R0,#+0x10
   \   0000009E   000A               LSR         R0,R0,#+0x8
   \   000000A0   0004               LSL         R0,R0,#+0x10       ;; ZeroExt     R0,R0,#+0x10,#+0x10
   \   000000A2   000C               LSR         R0,R0,#+0x10
   \   000000A4   6189               LDRH        R1,[R4, #+0xA]
   \   000000A6   0902               LSL         R1,R1,#+0x8
   \   000000A8   FF22               MOV         R2,#+0xFF
   \   000000AA   1202               LSL         R2,R2,#+0x8        ;; #+0xFF00
   \   000000AC   0A40               AND         R2,R1
   \   000000AE   8218               ADD         R2,R0,R2
   \   000000B0   2F49               LDR         R1,??AT91F_DisplayIpPacket_0+0x18  ;; `?<Constant "\\n\\r Header Checksum   ...">`
   \   000000B2   ....               LDR         R0,??DataTable21   ;; MsgBuffer
   \   000000B4   ........           _BLF        sprintf,sprintf??rT
     82            AT91F_DBGU_Printk(MsgBuffer);
   \   000000B8   ....               LDR         R0,??DataTable21   ;; MsgBuffer
   \   000000BA   ........           _BLF        AT91F_DBGU_Printk,AT91F_DBGU_Printk??rT
     83          
     84          
     85            switch(pIpHeader->ip_p) {
   \   000000BE   607A               LDRB        R0,[R4, #+0x9]
   \   000000C0   0128               CMP         R0,#+0x1
   \   000000C2   09D0               BEQ         ??AT91F_DisplayIpPacket_1
   \   000000C4   8021               MOV         R1,#+0x80
   \   000000C6   0901               LSL         R1,R1,#+0x4        ;; #+0x800
   \   000000C8   8842               CMP         R0,R1
   \   000000CA   0BD1               BNE         ??AT91F_DisplayIpPacket_2
     86                    case PROT_IP:
     87                            sprintf(MsgBuffer, "\n\r Protocol          = %s","IP");
   \                     ??AT91F_DisplayIpPacket_3:
   \   000000CC   294A               LDR         R2,??AT91F_DisplayIpPacket_0+0x1C  ;; `?<Constant "IP">`
   \   000000CE   2A49               LDR         R1,??AT91F_DisplayIpPacket_0+0x20  ;; `?<Constant "\\n\\r Protocol          ...">`

⌨️ 快捷键说明

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