📄 main.lst
字号:
##############################################################################
# #
# IAR ARM ANSI C/C++ Compiler V4.30A/W32 KICKSTART 01/Nov/2005 11:22:49 #
# 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\src\main.c #
# Command line = E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-BasicAES-IAR #
# 430A-1_2\BasicAES-SAM7X\src\main.c -lC #
# E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-BasicAES-IAR #
# 430A-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\main.lst #
# Object file = E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-BasicAES-IAR #
# 430A-1_2\BasicAES-SAM7X\compil\Binary\Obj\main.r79 #
# #
# #
##############################################################################
E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-BasicAES-IAR430A-1_2\BasicAES-SAM7X\src\main.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 : main.c
16 // Object : main application written in C
17 // Creation : FBr 22-Aug-2005
18 // ----------------------------------------------------------------------------
19
20 #include "main.h"
21
22 /* Global variables */
\ In segment DATA_Z, align 1, align-sorted
23 volatile char test = AT91C_TEST_NOK;
\ test:
\ 00000000 DS8 1
24
25 // function in dbgu.c
26 extern void AT91F_DBGU_Printk(char *buffer);
27 extern void Init_DBGU(void);
28
29 //*----------------------------------------------------------------------------
30 //* \fn AT91F_AES_Handler
31 //* \brief
32 //*----------------------------------------------------------------------------
\ In segment CODE, align 4, keep-with-next
33 void AT91F_AES_Handler(void)
34 {
\ AT91F_AES_Handler:
\ 00000000 01B4 PUSH {R0}
35 volatile unsigned int status;
36
37 status = AT91F_AES_GetStatus(AT91C_BASE_AES) & AT91F_AES_GetInterruptMaskStatus(AT91C_BASE_AES) ;
\ 00000002 0A48 LDR R0,??AT91F_AES_Handler_0 ;; 0xfffa401c
\ 00000004 0068 LDR R0,[R0, #+0]
\ 00000006 0A49 LDR R1,??AT91F_AES_Handler_0+0x4 ;; 0xfffa4018
\ 00000008 0968 LDR R1,[R1, #+0]
\ 0000000A 0140 AND R1,R0
\ 0000000C 0091 STR R1,[SP, #+0]
38 AT91F_AES_DisableIt(AT91C_BASE_AES,status);
\ 0000000E 0098 LDR R0,[SP, #+0]
\ 00000010 0849 LDR R1,??AT91F_AES_Handler_0+0x8 ;; 0xfffa4014
\ 00000012 0860 STR R0,[R1, #+0]
39
40 if(status & AT91C_AES_DATRDY){
\ 00000014 0848 LDR R0,??AT91F_AES_Handler_0+0xC ;; test
\ 00000016 0121 MOV R1,#+0x1
\ 00000018 009A LDR R2,[SP, #+0]
\ 0000001A D207 LSL R2,R2,#+0x1F
\ 0000001C 00D5 BPL ??AT91F_AES_Handler_1
41 test = AT91C_TEST_OK;
\ 0000001E 0170 STRB R1,[R0, #+0]
42 TRACE_DEBUG_L("=> DATRDY");
43 }
44
45 if(status & AT91C_AES_ENDRX){
\ ??AT91F_AES_Handler_1:
\ 00000020 009A LDR R2,[SP, #+0]
\ 00000022 9207 LSL R2,R2,#+0x1E
\ 00000024 00D5 BPL ??AT91F_AES_Handler_2
46 test = AT91C_TEST_OK;
\ 00000026 0170 STRB R1,[R0, #+0]
47 TRACE_DEBUG_H("=> ENDRX");
48 }
49 }
\ ??AT91F_AES_Handler_2:
\ 00000028 08BC POP {R3}
\ 0000002A 7047 BX LR ;; return
\ ??AT91F_AES_Handler_0:
\ 0000002C 1C40FAFF DC32 0xfffa401c
\ 00000030 1840FAFF DC32 0xfffa4018
\ 00000034 1440FAFF DC32 0xfffa4014
\ 00000038 ........ DC32 test
50
51 //*--------------------------------------------------------------------------------------
52 //* Function Name : Main
53 //* Object : Software entry point
54 //*--------------------------------------------------------------------------------------
\ In segment CODE, align 4, keep-with-next
55 void main()
56 {
\ main:
\ 00000000 00B5 PUSH {LR}
57 ////////////////////////////////////////////////////////////////////////////////////////////////////
58 // DBGU Init
59 /////////////////////////////////////////////////////////////////////////////////////////////////////
60
61 // Enable DBGU Clock
62 //AT91F_DBGU_CfgPMC(); // DBGU is always clocked
63 // Open PIO for DBGU
64 /*
65 AT91F_DBGU_CfgPIO();
66 AT91F_US_Configure ((AT91PS_USART) AT91C_BASE_DBGU,
67 AT91C_MASTER_CLOCK,
68 AT91C_US_ASYNC_MODE, // mode Register to be programmed
69 AT91C_BAUDRATE_115200, // baudrate to be programmed
70 0); // timeguard to be programmed
71 // Enable Transmitter
72 AT91F_US_EnableTx((AT91PS_USART) AT91C_BASE_DBGU);
73
74 TRACE_INFO("\n\n\r======================================\n\r");
75 TRACE_INFO("AT91SAM7X Basic AES\n\r");
76 TRACE_INFO("======================================\n\r");
77 */
78 Init_DBGU();
\ 00000002 ........ _BLF Init_DBGU,Init_DBGU??rT
79 AT91F_DBGU_Printk("-I- AT91SAM7X256 DEMO\n\r");
\ 00000006 0B48 LDR R0,??main_0 ;; `?<Constant "-I- AT91SAM7X256 DEMO\\n\\r">`
\ 00000008 ........ _BLF AT91F_DBGU_Printk,AT91F_DBGU_Printk??rT
80 ///////////////////////////////////////////////////////////////////////////////////////////
81 // Init AES
82 ///////////////////////////////////////////////////////////////////////////////////////////
83
84 // Enable AES Clock
85 AT91F_AES_CfgPMC();
\ 0000000C 8020 MOV R0,#+0x80
\ 0000000E C002 LSL R0,R0,#+0xB ;; #+0x40000
\ 00000010 0949 LDR R1,??main_0+0x4 ;; 0xfffffc10
\ 00000012 0860 STR R0,[R1, #+0]
86
87 // Init AES Interrupt Source Level
88 AT91F_AIC_ConfigureIt(
89 AT91C_BASE_AIC, // AIC base address
90 AT91C_ID_AES, // AES ID
91 AT91C_AIC_PRIOR_HIGHEST, // Max priority
92 AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL, // Level sensitive
93 AT91F_AES_Handler);
\ 00000014 0949 LDR R1,??main_0+0x8 ;; 0xfffff0c8
\ 00000016 0A68 LDR R2,[R1, #+0]
\ 00000018 094A LDR R2,??main_0+0xC ;; 0xfffff124
\ 0000001A 1060 STR R0,[R2, #+0]
\ 0000001C 094A LDR R2,??main_0+0x10 ;; AT91F_AES_Handler
\ 0000001E 0A60 STR R2,[R1, #+0]
\ 00000020 0949 LDR R1,??main_0+0x14 ;; 0xfffff048
\ 00000022 0722 MOV R2,#+0x7
\ 00000024 0A60 STR R2,[R1, #+0]
\ 00000026 0949 LDR R1,??main_0+0x18 ;; 0xfffff128
\ 00000028 0860 STR R0,[R1, #+0]
94
95 AT91F_AIC_EnableIt(AT91C_BASE_AIC,AT91C_ID_AES);
\ 0000002A 0949 LDR R1,??main_0+0x1C ;; 0xfffff120
\ 0000002C 0860 STR R0,[R1, #+0]
96
97 ///////////////////////////////////////////////////////////////////////////////////////////
98 // Enter Main Application
99 ///////////////////////////////////////////////////////////////////////////////////////////
100
101 AT91F_BasicTestSuite();
\ 0000002E ........ _BLF AT91F_BasicTestSuite,AT91F_BasicTestSuite??rT
102 }
\ 00000032 00BD POP {PC} ;; return
\ ??main_0:
\ 00000034 ........ DC32 `?<Constant "-I- AT91SAM7X256 DEMO\\n\\r">`
\ 00000038 10FCFFFF DC32 0xfffffc10
\ 0000003C C8F0FFFF DC32 0xfffff0c8
\ 00000040 24F1FFFF DC32 0xfffff124
\ 00000044 ........ DC32 AT91F_AES_Handler
\ 00000048 48F0FFFF DC32 0xfffff048
\ 0000004C 28F1FFFF DC32 0xfffff128
\ 00000050 20F1FFFF DC32 0xfffff120
\ In segment DATA_C, align 4, align-sorted
\ `?<Constant "-I- AT91SAM7X256 DEMO\\n\\r">`:
\ 00000000 2D492D204154 DC8 "-I- AT91SAM7X256 DEMO\012\015"
\ 393153414D37
\ 583235362044
\ 454D4F0A0D00
Maximum stack usage in bytes:
Function CSTACK
-------- ------
AT91F_AES_Handler 4
main 4
Segment part sizes:
Function/Label Bytes
-------------- -----
test 1
AT91F_AES_Handler 60
main 84
?<Constant "-I- AT91SAM7X256 DEMO\n\r">
24
Others 36
168 bytes in segment CODE
24 bytes in segment DATA_C
1 byte in segment DATA_Z
12 bytes in segment INITTAB
144 bytes of CODE memory (+ 36 bytes shared)
24 bytes of CONST memory
1 byte of DATA memory
Errors: none
Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -