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

📄 at91stdio.lst

📁 AT91SAM7X256底层驱动源码
💻 LST
字号:
##############################################################################
#                                                                            #
# IAR ARM ANSI C/C++ Compiler V4.30A/W32 KICKSTART     01/Nov/2005  08:57:37 #
# Copyright 1999-2005 IAR Systems. All rights reserved.                      #
#                                                                            #
#    Cpu mode        =  thumb                                                #
#    Endian          =  little                                               #
#    Stack alignment =  4                                                    #
#    Source file     =  E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-BasicAES-IAR #
#                       430A-1_2\BasicAES-SAM7X\compil\srcIAR\at91stdio.c    #
#    Command line    =  E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-BasicAES-IAR #
#                       430A-1_2\BasicAES-SAM7X\compil\srcIAR\at91stdio.c    #
#                       -lC E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-BasicAES #
#                       -IAR430A-1_2\BasicAES-SAM7X\compil\Binary\List\ -o   #
#                       E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-BasicAES-IAR #
#                       430A-1_2\BasicAES-SAM7X\compil\Binary\Obj\ -z9       #
#                       --debug --cpu_mode thumb --endian little --cpu       #
#                       ARM7TDMI --stack_align 4 -e --fpu None               #
#                       --dlib_config "D:\Program Files\IAR                  #
#                       Systems\Embedded Workbench 4.0                       #
#                       Kickstart\arm\LIB\dl4tptnnl8f.h" -I                  #
#                       E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-BasicAES-IAR #
#                       430A-1_2\BasicAES-SAM7X\compil\srcIAR\ -I            #
#                       E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-BasicAES-IAR #
#                       430A-1_2\BasicAES-SAM7X\compil\..\src\ -I            #
#                       E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-BasicAES-IAR #
#                       430A-1_2\BasicAES-SAM7X\compil\..\..\ -I             #
#                       "D:\Program Files\IAR Systems\Embedded Workbench     #
#                       4.0 Kickstart\arm\INC\"                              #
#    List file       =  E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-BasicAES-IAR #
#                       430A-1_2\BasicAES-SAM7X\compil\Binary\List\at91stdio #
#                       .lst                                                 #
#    Object file     =  E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-BasicAES-IAR #
#                       430A-1_2\BasicAES-SAM7X\compil\Binary\Obj\at91stdio. #
#                       r79                                                  #
#                                                                            #
#                                                                            #
##############################################################################

E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-BasicAES-IAR430A-1_2\BasicAES-SAM7X\compil\srcIAR\at91stdio.c
      1          //  ----------------------------------------------------------------------------
      2          //          ATMEL Microcontroller Software Support  -  ROUSSET  -
      3          //  ----------------------------------------------------------------------------
      4          //  DISCLAIMER:  THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
      5          //  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
      6          //  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
      7          //  DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
      8          //  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
      9          //  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
     10          //  OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
     11          //  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
     12          //  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
     13          //  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     14          //  ----------------------------------------------------------------------------
     15          // File Name           : at91stdio.c
     16          // Object              : stdio functions redefinition
     17          // Creation            : Application Group - v1.0 24-Aug-2005
     18          // ----------------------------------------------------------------------------
     19          #include "at91stdio.h"
     20          
     21          // Definition for _MEMORY case

   \                                 In segment DATA_Z, align 4, align-sorted
     22          FILE *stdmem;
   \                     stdmem:
   \   00000000                      DS8 4
     23          
     24          //*----------------------------------------------------------------------------
     25          //* \fn    fputc
     26          //* \brief
     27          //*----------------------------------------------------------------------------

   \                                 In segment CODE, align 4, keep-with-next
     28          int fputc(int ch, FILE *f)
     29          {
     30            if(f == stdout){
   \                     fputc:
   \   00000000   064A               LDR         R2,??fputc_0       ;; _Stdout
   \   00000002   9142               CMP         R1,R2
   \   00000004   08D1               BNE         ??fputc_1
     31              while (!AT91F_US_TxReady((AT91PS_USART)AT91C_BASE_DBGU));
   \                     ??fputc_2:
   \   00000006   ....               LDR         R1,??DataTable1    ;; 0xfffff214
   \   00000008   0968               LDR         R1,[R1, #+0]
   \   0000000A   8907               LSL         R1,R1,#+0x1E
   \   0000000C   FBD5               BPL         ??fputc_2
     32              AT91F_US_PutChar((AT91PS_USART)AT91C_BASE_DBGU, (char)ch);
   \   0000000E   0449               LDR         R1,??fputc_0+0x4   ;; 0xfffff21c
   \   00000010   0206               LSL         R2,R0,#+0x18
   \   00000012   120E               LSR         R2,R2,#+0x18
   \   00000014   0A60               STR         R2,[R1, #+0]
     33              return ch;
   \   00000016   7047               BX          LR                 ;; return
     34            }
     35          
     36            if(f == stdmem){
     37            }
     38          
     39            return EOF;
   \                     ??fputc_1:
   \   00000018   ....               B           ?Subroutine0
   \   0000001A   C046               NOP         
   \                     ??fputc_0:
   \   0000001C   ........           DC32        _Stdout
   \   00000020   1CF2FFFF           DC32        0xfffff21c
     40          }

   \                                 In segment CODE, align 4, keep-with-next
   \                     ?Subroutine0:
   \   00000000   0020               MOV         R0,#+0
   \   00000002   C043               MVN         R0,R0              ;; #-1
   \   00000004   7047               BX          LR                 ;; return
   \   00000006   C046               NOP         
   \                     ??Subroutine0_0:
   \   00000008   ........           DC32        _Stdin
   \   0000000C   18F2FFFF           DC32        0xfffff218
     41          
     42          //*----------------------------------------------------------------------------
     43          //* \fn    fgetc
     44          //* \brief
     45          //*----------------------------------------------------------------------------

   \                                 In segment CODE, align 4, keep-with-next
     46          int fgetc(FILE *f)
     47          {
     48            if(f == stdin){
   \                     fgetc:
   \   00000000   ....               LDR         R1,??Subroutine0_0  ;; _Stdin
   \   00000002   8842               CMP         R0,R1
   \   00000004   08D1               BNE         ??fgetc_0
     49              while(!AT91F_US_RxReady((AT91PS_USART)AT91C_BASE_DBGU));
   \                     ??fgetc_1:
   \   00000006   ....               LDR         R0,??DataTable1    ;; 0xfffff214
   \   00000008   0068               LDR         R0,[R0, #+0]
   \   0000000A   C007               LSL         R0,R0,#+0x1F
   \   0000000C   FBD5               BPL         ??fgetc_1
     50              return((int)AT91F_US_GetChar((AT91PS_USART)AT91C_BASE_DBGU));
   \   0000000E   ....               LDR         R0,??Subroutine0_0+0x4  ;; 0xfffff218
   \   00000010   0068               LDR         R0,[R0, #+0]
   \   00000012   C005               LSL         R0,R0,#+0x17
   \   00000014   C00D               LSR         R0,R0,#+0x17
   \   00000016   7047               BX          LR                 ;; return
     51            }
     52          
     53            return EOF;
   \                     ??fgetc_0:
   \   00000018                      REQUIRE ?Subroutine0
   \   00000018                      ;; // Fall through to label ?Subroutine0
     54          }

   \                                 In segment CODE, align 4, keep-with-next
   \                     ??DataTable1:
   \   00000000   14F2FFFF           DC32        0xfffff214

   Maximum stack usage in bytes:

     Function CSTACK
     -------- ------
     fgetc        4
     fputc        4


   Segment part sizes:

     Function/Label Bytes
     -------------- -----
     stdmem            4
     fputc            36
     ?Subroutine0     16
     fgetc            24
     ??DataTable1      4
      Others          12

 
 80 bytes in segment CODE
  4 bytes in segment DATA_Z
 12 bytes in segment INITTAB
 
 80 bytes of CODE memory (+ 12 bytes shared)
  4 bytes of DATA memory

Errors: none
Warnings: none

⌨️ 快捷键说明

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