📄 board_lowlevel.lst
字号:
###############################################################################
# #
# 28/Apr/2009 09:28:22 #
# IAR ARM ANSI C/C++ Compiler V5.11.0.20622/W32 EVALUATION #
# Copyright 1999-2007 IAR Systems. All rights reserved. #
# #
# Cpu mode = arm #
# Endian = little #
# Source file = E:\workplace\bootloaderOK\at91lib\boards\at91sam7se-ek\b #
# oard_lowlevel.c #
# Command line = E:\workplace\bootloaderOK\at91lib\boards\at91sam7se-ek\b #
# oard_lowlevel.c -D at91sam7se512 -D flash -D #
# TRACE_LEVEL=4 -lC E:\workplace\bootloaderOK\at91sam7se-e #
# k\basic-dataflash-project\ewp\at91sam7se512_flash\List\ #
# --remarks --diag_suppress Pe826,Pe1375 -o #
# E:\workplace\bootloaderOK\at91sam7se-ek\basic-dataflash- #
# project\ewp\at91sam7se512_flash\Obj\ --no_cse #
# --no_unroll --no_inline --no_code_motion --no_tbaa #
# --no_clustering --no_scheduling --debug --endian little #
# --cpu ARM7TDMI -e --fpu None --dlib_config "D:\Program #
# Files\arm\ARM\INC\DLib_Config_Full.h" -I #
# E:\workplace\bootloaderOK\at91sam7se-ek\basic-dataflash- #
# project\ewp\..\..\..\at91lib/peripherals\ -I #
# E:\workplace\bootloaderOK\at91sam7se-ek\basic-dataflash- #
# project\ewp\..\..\..\at91lib\ -I #
# E:\workplace\bootloaderOK\at91sam7se-ek\basic-dataflash- #
# project\ewp\..\..\..\at91lib/memories\ -I #
# E:\workplace\bootloaderOK\at91sam7se-ek\basic-dataflash- #
# project\ewp\..\..\..\at91lib/boards/at91sam7se-ek\ -I #
# "D:\Program Files\arm\ARM\INC\" --interwork --cpu_mode #
# arm -Oh #
# List file = E:\workplace\bootloaderOK\at91sam7se-ek\basic-dataflash- #
# project\ewp\at91sam7se512_flash\List\board_lowlevel.lst #
# Object file = E:\workplace\bootloaderOK\at91sam7se-ek\basic-dataflash- #
# project\ewp\at91sam7se512_flash\Obj\board_lowlevel.o #
# #
# #
###############################################################################
E:\workplace\bootloaderOK\at91lib\boards\at91sam7se-ek\board_lowlevel.c
1 /* ----------------------------------------------------------------------------
2 * ATMEL Microcontroller Software Support
3 * ----------------------------------------------------------------------------
4 * Copyright (c) 2008, Atmel Corporation
5 *
6 * All rights reserved.
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions are met:
10 *
11 * - Redistributions of source code must retain the above copyright notice,
12 * this list of conditions and the disclaimer below.
13 *
14 * Atmel's name may not be used to endorse or promote products derived from
15 * this software without specific prior written permission.
16 *
17 * DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
18 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
19 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
20 * DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
23 * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
24 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
25 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
26 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 * ----------------------------------------------------------------------------
28 */
29
30 //------------------------------------------------------------------------------
31 /// \unit
32 ///
33 /// !Purpose
34 ///
35 /// Provides the low-level initialization function that gets called on chip
36 /// startup.
37 ///
38 /// !Usage
39 ///
40 /// LowLevelInit() is called in #board_cstartup.S#.
41 //------------------------------------------------------------------------------
42
43 //------------------------------------------------------------------------------
44 // Headers
45 //------------------------------------------------------------------------------
46
47 #include "board.h"
48 #include "board_memories.h"
49 #include <pmc/pmc.h>
50
51 //------------------------------------------------------------------------------
52 // Internal definitions
53 //------------------------------------------------------------------------------
54 // Startup time of main oscillator (in number of slow clock ticks).
55 #define BOARD_OSCOUNT (AT91C_CKGR_OSCOUNT & (0x40 << 8))
56
57 // USB PLL divisor value to obtain a 48MHz clock.
58 #define BOARD_USBDIV AT91C_CKGR_USBDIV_1
59
60 // PLL frequency range.
61 #define BOARD_CKGR_PLL AT91C_CKGR_OUT_0
62
63 // PLL startup time (in number of slow clock ticks).
64 #define BOARD_PLLCOUNT (16 << 8)
65
66 // PLL MUL value.
67 #define BOARD_MUL (AT91C_CKGR_MUL & (72 << 16))
68
69 // PLL DIV value.
70 #define BOARD_DIV (AT91C_CKGR_DIV & 14)
71
72 // Master clock prescaler value.
73 #define BOARD_PRESCALER AT91C_PMC_PRES_CLK_2
74
75 //------------------------------------------------------------------------------
76 // Internal functions
77 //------------------------------------------------------------------------------
78 //------------------------------------------------------------------------------
79 /// Default spurious interrupt handler. Infinite loop.
80 //------------------------------------------------------------------------------
\ In section .text, align 4, keep-with-next
81 void defaultSpuriousHandler( void )
82 {
83 while (1);
\ defaultSpuriousHandler:
\ ??defaultSpuriousHandler_0:
\ 00000000 FEFFFFEA B ??defaultSpuriousHandler_0
84 }
85
86 //------------------------------------------------------------------------------
87 /// Default handler for fast interrupt requests. Infinite loop.
88 //------------------------------------------------------------------------------
\ In section .text, align 4, keep-with-next
89 void defaultFiqHandler( void )
90 {
91 while (1);
\ defaultFiqHandler:
\ ??defaultFiqHandler_0:
\ 00000000 FEFFFFEA B ??defaultFiqHandler_0
92 }
93
94 //------------------------------------------------------------------------------
95 /// Default handler for standard interrupt requests. Infinite loop.
96 //------------------------------------------------------------------------------
\ In section .text, align 4, keep-with-next
97 void defaultIrqHandler( void )
98 {
99 while (1);
\ defaultIrqHandler:
\ ??defaultIrqHandler_0:
\ 00000000 FEFFFFEA B ??defaultIrqHandler_0
100 }
101
102
103 //------------------------------------------------------------------------------
104 // Exported functions
105 //------------------------------------------------------------------------------
106
107 //------------------------------------------------------------------------------
108 /// Performs the low-level initialization of the chip. This includes EFC, master
109 /// clock, AIC & watchdog configuration, as well as memory remapping.
110 //------------------------------------------------------------------------------
\ In section .text, align 4, keep-with-next
111 void LowLevelInit( void )
112 {
\ LowLevelInit:
\ 00000000 01402DE9 PUSH {R0,LR}
113 unsigned char i;
114
115 BOARD_ConfigureFlash48MHz();
\ 00000004 ........ BL BOARD_ConfigureFlash48MHz
116
117 //#if !defined(sdram)
118 /* Initialize main oscillator
119 ****************************/
120 AT91C_BASE_PMC->PMC_MOR = BOARD_OSCOUNT | AT91C_CKGR_MOSCEN;
\ 00000008 DF00E0E3 MVN R0,#+223
\ 0000000C C00FC0E3 BIC R0,R0,#0x300
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -