📄 at91stdio.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 + -