📄 at91_low_level_init.lst
字号:
##############################################################################
# #
# IAR ARM ANSI C/C++ Compiler V4.42A/W32 EVALUATION 09/Sep/2008 07:54:48 #
# Copyright 1999-2005 IAR Systems. All rights reserved. #
# #
# Cpu mode = interwork #
# Endian = little #
# Stack alignment = 4 #
# Source file = E:\AT91EBxx\at91_low_level_init.c #
# Command line = E:\AT91EBxx\at91_low_level_init.c --fpu None -D #
# RAMCODE=1 -lCN E:\AT91EBxx\ramcode-EBxx\List\ -o #
# E:\AT91EBxx\ramcode-EBxx\Obj\ -z3 --no_cse #
# --no_unroll --no_inline --no_code_motion --no_tbaa #
# --no_clustering --no_scheduling --debug --cpu_mode #
# arm --endian little --cpu ARM7TDMI --stack_align 4 #
# --interwork -e --dlib_config "C:\Program Files\IAR #
# Systems\Embedded Workbench 4.0 #
# Evaluation\arm\LIB\dl4tpainl8n.h" -I "C:\Program #
# Files\IAR Systems\Embedded Workbench 4.0 #
# Evaluation\arm\INC\" #
# List file = E:\AT91EBxx\ramcode-EBxx\List\at91_low_level_init.ls #
# t #
# Object file = E:\AT91EBxx\ramcode-EBxx\Obj\at91_low_level_init.r79 #
# #
# #
##############################################################################
E:\AT91EBxx\at91_low_level_init.c
1 /**************************************************
2 *
3 * This module contains the function `__low_level_init', a function
4 * that is called before the `main' function of the program. Normally
5 * low-level initializations - such as setting the prefered interrupt
6 * level or setting the watchdog - can be performed here.
7 *
8 * Note that this function is called before the data segments are
9 * initialized, this means that this function cannot rely on the
10 * values of global or static variables.
11 *
12 * When this function returns zero, the startup code will inhibit the
13 * initialization of the data segments. The result is faster startup,
14 * the drawback is that neither global nor static data will be
15 * initialized.
16 *
17 * Copyright 1999-2004 IAR Systems. All rights reserved.
18 *
19 * $Revision: 1.4 $
20 *
21 **************************************************/
22
23 #include "config.h"
24
25 /* ICODE is the same segment as cstartup. By placing __low_level_init
26 * in the same segment, we make sure it can be reached with BL. */
27
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
31
32 #pragma language=extended
33
34
35 #pragma location="ICODE"
\ In segment ICODE, align 4, keep-with-next
36 __interwork int __low_level_init(void)
37 {
\ __low_level_init:
\ 00000000 00402DE9 PUSH {LR}
38 /*==================================*/
39 /* Initialize hardware. */
40 /*==================================*/
41
42 #if AT91_EB42
43 // Speed up the System Frequency.
44 AT91_EB42_PllStart();
45 // Enable peripheral clocks.
46 AT91EnablePeripheralClocks();
47 #endif
48
49 #if AT91_EB55
50 // Speed up the System Frequency.
51 AT91_EB55_PllStart();
52 // Enable peripheral clocks.
53 AT91EnablePeripheralClocks();
54 #endif
55
56 #if AT91_EB40 || AT91_EB40A || AT91_EB63
57 // Enable peripheral clocks.
58 AT91EnablePeripheralClocks();
\ 00000004 ........ _BLF AT91EnablePeripheralClocks,??AT91EnablePeripheralClocks??rA?ICODE
59 #endif
60
61 // The PIO is enabled early to make the LED's available for tracing.
62 AT91InitPIO();
\ 00000008 ........ _BLF AT91InitPIO,??AT91InitPIO??rA?ICODE
63
64
65 /*==================================*/
66 /* Choose if segment initialization */
67 /* should be done or not. */
68 /* Return: 0 to omit seg_init */
69 /* 1 to run seg_init */
70 /*==================================*/
71 return (1);
\ 0000000C 0100A0E3 MOV R0,#+1
\ 00000010 0040BDE8 POP {LR}
\ 00000014 1EFF2FE1 BX LR ;; return
72 }
73
74 #pragma language=default
75
76 #ifdef __cplusplus
77 }
78 #endif
Maximum stack usage in bytes:
Function CSTACK
-------- ------
__low_level_init 4
Segment part sizes:
Function/Label Bytes
-------------- -----
__low_level_init 24
Others 24
48 bytes in segment ICODE
24 bytes of CODE memory (+ 24 bytes shared)
Errors: none
Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -