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

📄 at91stdio.lst

📁 Atmel arm can总线的应用程序
💻 LST
字号:
##############################################################################
#                                                                            #
# IAR ARM ANSI C/C++ Compiler V4.30A/W32 KICKSTART     28/Jul/2006  14:53:07 #
# Copyright 1999-2005 IAR Systems. All rights reserved.                      #
#                                                                            #
#    Cpu mode        =  interwork                                            #
#    Endian          =  little                                               #
#    Stack alignment =  4                                                    #
#    Source file     =  E:\share\Atmel\AT91SAM7A3(CAN_CAN)\AT91SAM7A3(CAN_CA #
#                       N)\BasicCAN-SAM7A3\compil\srcIAR\at91stdio.c         #
#    Command line    =  "E:\share\Atmel\AT91SAM7A3(CAN_CAN)\AT91SAM7A3(CAN_C #
#                       AN)\BasicCAN-SAM7A3\compil\srcIAR\at91stdio.c" -lC   #
#                       "E:\share\Atmel\AT91SAM7A3(CAN_CAN)\AT91SAM7A3(CAN_C #
#                       AN)\BasicCAN-SAM7A3\compil\FLASH_Debug\List\" -o     #
#                       "E:\share\Atmel\AT91SAM7A3(CAN_CAN)\AT91SAM7A3(CAN_C #
#                       AN)\BasicCAN-SAM7A3\compil\FLASH_Debug\Obj\" -z2     #
#                       --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:\IAR Systems\Embedded Workbench     #
#                       4.0 Kickstart\arm\LIB\dl4tptinl8f.h" -I              #
#                       "E:\share\Atmel\AT91SAM7A3(CAN_CAN)\AT91SAM7A3(CAN_C #
#                       AN)\BasicCAN-SAM7A3\compil\srcIAR\" -I               #
#                       "E:\share\Atmel\AT91SAM7A3(CAN_CAN)\AT91SAM7A3(CAN_C #
#                       AN)\BasicCAN-SAM7A3\compil\..\src\" -I               #
#                       "E:\share\Atmel\AT91SAM7A3(CAN_CAN)\AT91SAM7A3(CAN_C #
#                       AN)\BasicCAN-SAM7A3\compil\..\..\" -I "D:\IAR        #
#                       Systems\Embedded Workbench 4.0 Kickstart\arm\INC\"   #
#    List file       =  E:\share\Atmel\AT91SAM7A3(CAN_CAN)\AT91SAM7A3(CAN_CA #
#                       N)\BasicCAN-SAM7A3\compil\FLASH_Debug\List\at91stdio #
#                       .lst                                                 #
#    Object file     =  E:\share\Atmel\AT91SAM7A3(CAN_CAN)\AT91SAM7A3(CAN_CA #
#                       N)\BasicCAN-SAM7A3\compil\FLASH_Debug\Obj\at91stdio. #
#                       r79                                                  #
#                                                                            #
#                                                                            #
##############################################################################

E:\share\Atmel\AT91SAM7A3(CAN_CAN)\AT91SAM7A3(CAN_CAN)\BasicCAN-SAM7A3\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"

   \                                 In segment CODE, align 4, keep-with-next
   \   __??Code16?? __code __interwork __atpcs unsigned int AT91F_US_TxReady(AT91PS_USART)
   \                     AT91F_US_TxReady:
   \   00000000   4169               LDR         R1,[R0, #+0x14]
   \   00000002   0220               MOV         R0,#+0x2
   \   00000004   0840               AND         R0,R1
   \   00000006   7047               BX          LR                 ;; return

   \                                 In segment CODE, align 4, keep-with-next
   \   __??Code16?? __code __interwork __atpcs unsigned int AT91F_US_RxReady(AT91PS_USART)
   \                     AT91F_US_RxReady:
   \   00000000   4169               LDR         R1,[R0, #+0x14]
   \   00000002   0120               MOV         R0,#+0x1
   \   00000004   0840               AND         R0,R1
   \   00000006   7047               BX          LR                 ;; return

   \                                 In segment CODE, align 4, keep-with-next
   \   __??Code16?? __code __interwork __atpcs void AT91F_US_PutChar(AT91PS_USART, int)
   \                     AT91F_US_PutChar:
   \   00000000   CA05               LSL         R2,R1,#+0x17       ;; ZeroExt     R2,R1,#+0x17,#+0x17
   \   00000002   D20D               LSR         R2,R2,#+0x17
   \   00000004   C261               STR         R2,[R0, #+0x1C]
   \   00000006   7047               BX          LR                 ;; return

   \                                 In segment CODE, align 4, keep-with-next
   \   __??Code16?? __code __interwork __atpcs int AT91F_US_GetChar(AT91PS_USART const)
   \                     AT91F_US_GetChar:
   \   00000000   8069               LDR         R0,[R0, #+0x18]
   \   00000002   C005               LSL         R0,R0,#+0x17       ;; ZeroExt     R0,R0,#+0x17,#+0x17
   \   00000004   C00D               LSR         R0,R0,#+0x17
   \   00000006   7047               BX          LR                 ;; return
     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          {
   \                     fputc:
   \   00000000   30B5               PUSH        {R4,R5,LR}
   \   00000002   041C               MOV         R4,R0
   \   00000004   0D1C               MOV         R5,R1
     30            if(f == stdout){
   \   00000006   0A48               LDR         R0,??fputc_0       ;; _Stdout
   \   00000008   8542               CMP         R5,R0
   \   0000000A   0CD1               BNE         ??fputc_1
     31              while (!AT91F_US_TxReady((AT91PS_USART)AT91C_BASE_DBGU));
   \                     ??fputc_2:
   \   0000000C   ....               LDR         R0,??DataTable3    ;; 0xfffff200
   \   0000000E   ........           _BLF        AT91F_US_TxReady,AT91F_US_TxReady??rT
   \   00000012   0028               CMP         R0,#+0
   \   00000014   FAD0               BEQ         ??fputc_2
     32              AT91F_US_PutChar((AT91PS_USART)AT91C_BASE_DBGU, (char)ch);
   \   00000016   211C               MOV         R1,R4
   \   00000018   0906               LSL         R1,R1,#+0x18       ;; ZeroExt     R1,R1,#+0x18,#+0x18
   \   0000001A   090E               LSR         R1,R1,#+0x18
   \   0000001C   ....               LDR         R0,??DataTable3    ;; 0xfffff200
   \   0000001E   ........           _BLF        AT91F_US_PutChar,AT91F_US_PutChar??rT
     33              return ch;
   \   00000022   201C               MOV         R0,R4
   \   00000024   01E0               B           ??fputc_3
     34            }
     35          
     36            if(f == stdmem){
     37            }
     38          
     39            return EOF;
   \                     ??fputc_1:
   \   00000026   0020               MOV         R0,#+0
   \   00000028   C043               MVN         R0,R0              ;; #-1
   \                     ??fputc_3:
   \   0000002A   30BC               POP         {R4,R5}
   \   0000002C   02BC               POP         {R1}
   \   0000002E   0847               BX          R1                 ;; return
   \                     ??fputc_0:
   \   00000030   ........           DC32        _Stdout
     40          }
     41          
     42          //*----------------------------------------------------------------------------
     43          //* \fn    fgetc
     44          //* \brief
     45          //*----------------------------------------------------------------------------

   \                                 In segment CODE, align 4, keep-with-next
     46          int fgetc(FILE *f)
     47          {
   \                     fgetc:
   \   00000000   10B5               PUSH        {R4,LR}
   \   00000002   041C               MOV         R4,R0
     48            if(f == stdin){
   \   00000004   0848               LDR         R0,??fgetc_0       ;; _Stdin
   \   00000006   8442               CMP         R4,R0
   \   00000008   08D1               BNE         ??fgetc_1
     49              while(!AT91F_US_RxReady((AT91PS_USART)AT91C_BASE_DBGU));
   \                     ??fgetc_2:
   \   0000000A   ....               LDR         R0,??DataTable3    ;; 0xfffff200
   \   0000000C   ........           _BLF        AT91F_US_RxReady,AT91F_US_RxReady??rT
   \   00000010   0028               CMP         R0,#+0
   \   00000012   FAD0               BEQ         ??fgetc_2
     50              return((int)AT91F_US_GetChar((AT91PS_USART)AT91C_BASE_DBGU));
   \   00000014   ....               LDR         R0,??DataTable3    ;; 0xfffff200
   \   00000016   ........           _BLF        AT91F_US_GetChar,AT91F_US_GetChar??rT
   \   0000001A   01E0               B           ??fgetc_3
     51            }
     52          
     53            return EOF;
   \                     ??fgetc_1:
   \   0000001C   0020               MOV         R0,#+0
   \   0000001E   C043               MVN         R0,R0              ;; #-1
   \                     ??fgetc_3:
   \   00000020   10BC               POP         {R4}
   \   00000022   02BC               POP         {R1}
   \   00000024   0847               BX          R1                 ;; return
   \   00000026   C046               NOP         
   \                     ??fgetc_0:
   \   00000028   ........           DC32        _Stdin
     54          }

   \                                 In segment CODE, align 4, keep-with-next
   \                     ??DataTable3:
   \   00000000   00F2FFFF           DC32        0xfffff200

   Maximum stack usage in bytes:

     Function         CSTACK
     --------         ------
     AT91F_US_GetChar     0
     AT91F_US_PutChar     0
     AT91F_US_RxReady     0
     AT91F_US_TxReady     0
     fgetc                8
     fputc               12


   Segment part sizes:

     Function/Label   Bytes
     --------------   -----
     AT91F_US_TxReady    8
     AT91F_US_RxReady    8
     AT91F_US_PutChar    8
     AT91F_US_GetChar    8
     stdmem              4
     fputc              52
     fgetc              44
     ??DataTable3        4
      Others            60

 
 180 bytes in segment CODE
   4 bytes in segment DATA_Z
  12 bytes in segment INITTAB
 
 100 bytes of CODE memory (+ 92 bytes shared)
   4 bytes of DATA memory

Errors: none
Warnings: none

⌨️ 快捷键说明

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