📄 cstartup.lst
字号:
###############################################################################
# #
# IAR Systems ARM Assembler V4.30A/W32 02/Aug/2006 15:41:57 #
# Copyright 1999-2005 IAR Systems. All rights reserved. #
# #
# Source file = C:\Documents and Settings\yc\桌面\AT91SAM7A3(CAN_CAN)(10K_5K)\BasicCAN-SAM7A3\compil\srcIAR\Cstartup.s79#
# List file = C:\Documents and Settings\yc\桌面\AT91SAM7A3(CAN_CAN)(10K_5K)\BasicCAN-SAM7A3\compil\Binary\List\Cstartup.lst#
# Object file = C:\Documents and Settings\yc\桌面\AT91SAM7A3(CAN_CAN)(10K_5K)\BasicCAN-SAM7A3\compil\Binary\Obj\Cstartup.r79#
# Command line = C:\Documents and Settings\yc\桌面\AT91SAM7A3(CAN_CAN)(10K_5K)\BasicCAN-SAM7A3\compil\srcIAR\Cstartup.s79 #
# -OC:\Documents and Settings\yc\桌面\AT91SAM7A3(CAN_CAN)(10K_5K)\BasicCAN-SAM7A3\compil\Binary\Obj\ #
# -s+ -M<> -w+ -r #
# -LC:\Documents and Settings\yc\桌面\AT91SAM7A3(CAN_CAN)(10K_5K)\BasicCAN-SAM7A3\compil\Binary\List\ #
# -t8 --cpu ARM7TDMI --fpu None #
# -ID:\IAR Systems\Embedded Workbench 4.0 Kickstart\arm\INC\ #
# -IC:\Documents and Settings\yc\桌面\AT91SAM7A3(CAN_CAN)(10K_5K)\BasicCAN-SAM7A3\compil\..\..\ #
# #
###############################################################################
1 00000000 ;- --------------------------------------------
--------------------------------
2 00000000 ;- ATMEL Microcontroller Software
Support - ROUSSET -
3 00000000 ;- --------------------------------------------
--------------------------------
4 00000000 ;- DISCLAIMER: THIS SOFTWARE IS PROVIDED BY
ATMEL "AS IS" AND ANY EXPRESS OR
5 00000000 ;- IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF
6 00000000 ;- MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE AND NON-INFRINGEMENT ARE
7 00000000 ;- DISCLAIMED. IN NO EVENT SHALL ATMEL BE
LIABLE FOR ANY DIRECT, INDIRECT,
8 00000000 ;- INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT
9 00000000 ;- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA,
10 00000000 ;- OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF
11 00000000 ;- LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING
12 00000000 ;- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE,
13 00000000 ;- EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
DAMAGE.
14 00000000 ;- --------------------------------------------
--------------------------------
15 00000000 ;- File source : Cstartup.s79
16 00000000 ;- Object : Generic CStartup
17 00000000 ;- 1.0 01/Sep/05 FBr : Creation
18 00000000 ;-----------------------------------------------
-------------------------------
19 00000000
20 00000000 ;-----------------------------------------------
-------------------------------
21 00000000 ; Include your AT91 Library files
22 00000000 ;-----------------------------------------------
-------------------------------
23 00000000 #include "include/AT91SAM7A3_inc.h"
24 00000000 ;-----------------------------------------------
-------------------------------
25 00000000
26 00000000 ;-----------------------------------------------
-------------------------------
27 00000000 ; ?RESET
28 00000000 ; Reset Vector.
29 00000000 ; Normally, segment INTVEC is linked at address
0.
30 00000000 ; For debugging purposes, INTVEC may be placed
at other addresses.
31 00000000 ; A debugger that honors the entry point will
start the
32 00000000 ; program in a normal way even if INTVEC is not
at address 0.
33 00000000 ;-----------------------------------------------
-------------------------------
34 00000000
35 00000000 PROGRAM ?RESET ;- Begins a
program module
36 00000000 RSEG INTRAMEND_REMAP ;- Begins a
relocatable segment
37 00000000 RSEG ICODE:CODE (2) ;- Begins a
relocatable segment : corresponding address is
32-bit aligned
38 00000000 CODE32 ;- Always
ARM mode after reset
39 00000000 ORG 0 ;- Sets the
location
counter:
corresponds
to the
RESET
vector
address
40 00000000
41 00000000 ;-----------------------------------------------
-------------------------------
42 00000000 ;- Exception vectors
43 00000000 ;-----------------------------------------------
-------------------------------
44 00000000 ;- These vectors can be read at address 0 or at
RAM address
45 00000000 ;- They ABSOLUTELY requires to be in relative
addresssing mode in order to
46 00000000 ;- guarantee a valid jump. For the moment, all
are just looping.
47 00000000 ;- If an exception occurs before remap, this
would result in an infinite loop.
48 00000000 ;- To ensure if a exeption occurs before start
application to infinite loop.
49 00000000 ;-----------------------------------------------
-------------------------------
50 00000000
51 00000000 reset
52 00000000 060000EA B InitReset
; 0x00 Reset handler
53 00000004 undefvec:
54 00000004 FEFFFFEA B undefvec
; 0x04 Undefined Instruction
55 00000008 swivec:
56 00000008 FEFFFFEA B swivec
; 0x08 Software Interrupt
57 0000000C pabtvec:
58 0000000C FEFFFFEA B pabtvec
; 0x0C Prefetch Abort
59 00000010 dabtvec:
60 00000010 FEFFFFEA B dabtvec
; 0x10 Data Abort
61 00000014 rsvdvec:
62 00000014 FEFFFFEA B rsvdvec
; 0x14 reserved
63 00000018 irqvec:
64 00000018 110000EA B IRQ_Handler_Entry
; 0x18 IRQ
65 0000001C fiqvec:
66 0000001C FEFFFFEA B fiqvec
; 0x1c FIQ
67 00000020
68 00000020 InitReset:
69 00000020
70 00000020 ;-----------------------------------------------
-------------------------------
71 00000020 ;- Low level Init is performed in a C function:
AT91F_LowLevelInit
72 00000020 ;- Init Stack Pointer to a valid memory area
before calling AT91F_LowLevelInit
73 00000020 ;-----------------------------------------------
-------------------------------
74 00000020
75 00000020 ;- Retrieve end of RAM address
76 00000020 __iramend EQU SFB(INTRAMEND_REMAP) ;-
Segment begin
77 00000020
78 00000000 EXTERN AT91F_LowLevelInit
79 00000020 90D09FE5 ldr r13,=__iramend ;-
Temporary stack in internal RAM
for Low Level Init execution
80 00000024 90009FE5 ldr r0,=AT91F_LowLevelInit
81 00000028 0FE0A0E1 mov lr, pc
82 0000002C 10FF2FE1 bx r0 ;-
Branch
on C
functio
n (with
interwo
rking)
83 00000030
84 00000030 ;-----------------------------------------------
-------------------------------
85 00000030 ;- Top of Stack Definition
86 00000030 ;-----------------------------------------------
-------------------------------
87 00000030 ;- Interrupt and Supervisor Stack are located at
the top of internal memory in
88 00000030 ;- order to speed the exception handling context
saving and restoring.
89 00000030 ;- ARM_MODE_SVC (Application, C) Stack is
located at the top of the external memory.
90 00000030 ;-----------------------------------------------
-------------------------------
91 00000030
92 00000060 IRQ_STACK_SIZE EQU (3*8*4) ; 3
words to be saved per interrupt priority
level
93 00000012 ARM_MODE_IRQ EQU 0x12
94 00000013 ARM_MODE_SVC EQU 0x13
95 00000080 I_BIT EQU 0x80
96 00000040 F_BIT EQU 0x40
97 00000030
98 00000030 ;-----------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -