⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cstartup_sam7.lst

📁 高性能USB转串口(可高达10Mbps)完整的源代码
💻 LST
字号:
   1              		.code	16
   2              		.file	"Cstartup_SAM7.c"
  10              	.Ltext0:
  11              		.section	.text.AT91F_LowLevelInit,"ax",%progbits
  12              		.align	2
  13              		.global	AT91F_LowLevelInit
  14              		.code 16
  15              		.thumb_func
  17              	AT91F_LowLevelInit:
  18              	.LFB290:
  19              		.file 1 "../Compil/srcWinARM/Cstartup_SAM7.c"
   1:../Compil/srcWinARM/Cstartup_SAM7.c **** //-----------------------------------------------------------------------------
   2:../Compil/srcWinARM/Cstartup_SAM7.c **** //         ATMEL Microcontroller Software Support  -  ROUSSET  -
   3:../Compil/srcWinARM/Cstartup_SAM7.c **** //-----------------------------------------------------------------------------
   4:../Compil/srcWinARM/Cstartup_SAM7.c **** // DISCLAIMER:  THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
   5:../Compil/srcWinARM/Cstartup_SAM7.c **** // IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
   6:../Compil/srcWinARM/Cstartup_SAM7.c **** // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
   7:../Compil/srcWinARM/Cstartup_SAM7.c **** // DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
   8:../Compil/srcWinARM/Cstartup_SAM7.c **** // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   9:../Compil/srcWinARM/Cstartup_SAM7.c **** // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
  10:../Compil/srcWinARM/Cstartup_SAM7.c **** // OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
  11:../Compil/srcWinARM/Cstartup_SAM7.c **** // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
  12:../Compil/srcWinARM/Cstartup_SAM7.c **** // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
  13:../Compil/srcWinARM/Cstartup_SAM7.c **** // EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  14:../Compil/srcWinARM/Cstartup_SAM7.c **** //-----------------------------------------------------------------------------
  15:../Compil/srcWinARM/Cstartup_SAM7.c **** // File Name           : Cstartup_SAM7.c
  16:../Compil/srcWinARM/Cstartup_SAM7.c **** // Object              : Low level initialisations written in C for Tools
  17:../Compil/srcWinARM/Cstartup_SAM7.c **** //                       For AT91SAM7S256 with 2 flash plane
  18:../Compil/srcWinARM/Cstartup_SAM7.c **** // Creation            : JPP  09-May-2006
  19:../Compil/srcWinARM/Cstartup_SAM7.c **** //-----------------------------------------------------------------------------
  20:../Compil/srcWinARM/Cstartup_SAM7.c **** 
  21:../Compil/srcWinARM/Cstartup_SAM7.c **** #include "project.h"
  22:../Compil/srcWinARM/Cstartup_SAM7.c **** 
  23:../Compil/srcWinARM/Cstartup_SAM7.c **** 
  24:../Compil/srcWinARM/Cstartup_SAM7.c **** //  The following functions must be write in ARM mode this function called
  25:../Compil/srcWinARM/Cstartup_SAM7.c **** // directly by exception vector
  26:../Compil/srcWinARM/Cstartup_SAM7.c **** extern void AT91F_Spurious_handler(void);
  27:../Compil/srcWinARM/Cstartup_SAM7.c **** extern void AT91F_Default_IRQ_handler(void);
  28:../Compil/srcWinARM/Cstartup_SAM7.c **** extern void AT91F_Default_FIQ_handler(void);
  29:../Compil/srcWinARM/Cstartup_SAM7.c **** 
  30:../Compil/srcWinARM/Cstartup_SAM7.c **** //*----------------------------------------------------------------------------
  31:../Compil/srcWinARM/Cstartup_SAM7.c **** //* \fn    AT91F_LowLevelInit
  32:../Compil/srcWinARM/Cstartup_SAM7.c **** //* \brief This function performs very low level HW initialization
  33:../Compil/srcWinARM/Cstartup_SAM7.c **** //*        this function can use a Stack, depending the compilation
  34:../Compil/srcWinARM/Cstartup_SAM7.c **** //*        optimization mode
  35:../Compil/srcWinARM/Cstartup_SAM7.c **** //*----------------------------------------------------------------------------
  36:../Compil/srcWinARM/Cstartup_SAM7.c **** //void AT91F_LowLevelInit(void) @ "ICODE"
  37:../Compil/srcWinARM/Cstartup_SAM7.c **** void AT91F_LowLevelInit(void) {
  20              	needed for prologue
  21              		.loc 1 42 0
  38:../Compil/srcWinARM/Cstartup_SAM7.c ****     unsigned char i;
  39:../Compil/srcWinARM/Cstartup_SAM7.c ****     ///////////////////////////////////////////////////////////////////////////
  40:../Compil/srcWinARM/Cstartup_SAM7.c ****     // EFC Init
  41:../Compil/srcWinARM/Cstartup_SAM7.c ****     ///////////////////////////////////////////////////////////////////////////
  42:../Compil/srcWinARM/Cstartup_SAM7.c ****     AT91C_BASE_MC->MC_FMR = AT91C_MC_FWS_1FWS ;
  22              	ov	r3, #128
  23 0000 8023     		lsl	r3, r3, #1
  24 0002 5B00     		ldr	r2, .L26
  25 0004 1E4A     		str	r3, [r2, #96]
  26 0006 1366     		.loc 1 52 0
  43:../Compil/srcWinARM/Cstartup_SAM7.c **** 
  44:../Compil/srcWinARM/Cstartup_SAM7.c ****     ///////////////////////////////////////////////////////////////////////////
  45:../Compil/srcWinARM/Cstartup_SAM7.c ****     // Init PMC Step 1. Enable Main Oscillator
  46:../Compil/srcWinARM/Cstartup_SAM7.c ****     // Main Oscillator startup time is board specific:
  47:../Compil/srcWinARM/Cstartup_SAM7.c ****     // Main Oscillator Startup Time worst case (3MHz) corresponds to 15ms
  48:../Compil/srcWinARM/Cstartup_SAM7.c ****     // (0x40 for AT91C_CKGR_OSCOUNT field)
  49:../Compil/srcWinARM/Cstartup_SAM7.c ****     ///////////////////////////////////////////////////////////////////////////
  50:../Compil/srcWinARM/Cstartup_SAM7.c ****     // mtmt avoid warning operator - precedence & > | 
  51:../Compil/srcWinARM/Cstartup_SAM7.c ****     // AT91C_BASE_PMC->PMC_MOR = (( AT91C_CKGR_OSCOUNT & (0x40 <<8) | AT91C_CKGR_MOSCEN ));
  52:../Compil/srcWinARM/Cstartup_SAM7.c ****     AT91C_BASE_PMC->PMC_MOR = ( ( ( AT91C_CKGR_OSCOUNT & (0x40 <<8) ) | AT91C_CKGR_MOSCEN ));
  27              		.code 16
  28 0008 1E4A     		.thumb_func
  30 000c 1A62     	AT91F_LowLevelInit:
  31 000e 191C     	.LFB290:
  32 0010 0122     		.file 1 "../Compil/srcWinARM/Cstartup_SAM7.c"
  33              		.loc 1 37 0
  53:../Compil/srcWinARM/Cstartup_SAM7.c ****     // Wait Main Oscillator stabilization
  54:../Compil/srcWinARM/Cstartup_SAM7.c ****     while(!(AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MOSCS));
  34              	eeded for prologue
  35 0012 8B6E     		.loc 1 42 0
  36 0014 1342     		mov	r3, #128
  37 0016 FCD0     		lsl	r3, r3, #1
  55:../Compil/srcWinARM/Cstartup_SAM7.c **** 
  56:../Compil/srcWinARM/Cstartup_SAM7.c ****     ///////////////////////////////////////////////////////////////////////////
  57:../Compil/srcWinARM/Cstartup_SAM7.c ****     // Init PMC Step 2.
  58:../Compil/srcWinARM/Cstartup_SAM7.c ****     // Set PLL to 96MHz (96,109MHz) and UDP Clock to 48MHz
  59:../Compil/srcWinARM/Cstartup_SAM7.c ****     // PLL Startup time depends on PLL RC filter: worst case is choosen
  60:../Compil/srcWinARM/Cstartup_SAM7.c ****     // UDP Clock (48,058MHz) is compliant with the Universal Serial Bus
  61:../Compil/srcWinARM/Cstartup_SAM7.c ****     // Specification (+/- 0.25% for full speed)
  62:../Compil/srcWinARM/Cstartup_SAM7.c ****     ///////////////////////////////////////////////////////////////////////////
  63:../Compil/srcWinARM/Cstartup_SAM7.c ****     AT91C_BASE_PMC->PMC_PLLR = AT91C_CKGR_USBDIV_1           |
  38              		r2, .L26
  39 0018 1C4B     		str	r3, [r2, #96]
  40 001a CB62     		.loc 1 52 0
  41 001c 1A49     		ldr	r2, .L26+4
  42 001e 0422     		ldr	r3, .L26+8
  43              		str	r2, [r3, #32]
  64:../Compil/srcWinARM/Cstartup_SAM7.c ****                                (16 << 8)                     |
  65:../Compil/srcWinARM/Cstartup_SAM7.c ****                                (AT91C_CKGR_MUL & (72 << 16)) |
  66:../Compil/srcWinARM/Cstartup_SAM7.c ****                                (AT91C_CKGR_DIV & 14);
  67:../Compil/srcWinARM/Cstartup_SAM7.c ****     // Wait for PLL stabilization
  68:../Compil/srcWinARM/Cstartup_SAM7.c ****     while( !(AT91C_BASE_PMC->PMC_SR & AT91C_PMC_LOCK) );
  44              	ction
  45 0020 8B6E     	AT91F_LowLevelInit:
  46 0022 1342     	.LFB290:
  47 0024 FCD0     		.file 1 "../Compil/srcWinARM/Cstartup_SAM7.c"
  48 0026 1849     		.loc 1 37 0
  49 0028 0822     		@ lr needed for prologue
  50              		.loc 1 42 0
  69:../Compil/srcWinARM/Cstartup_SAM7.c ****     // Wait until the master clock is established for the case we already
  70:../Compil/srcWinARM/Cstartup_SAM7.c ****     // turn on the PLL
  71:../Compil/srcWinARM/Cstartup_SAM7.c ****     while( !(AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MCKRDY) );
  51              	, #128
  52 002a 8B6E     		lsl	r3, r3, #1
  53 002c 1342     		ldr	r2, .L26
  54 002e FCD0     		str	r3, [r2, #96]
  72:../Compil/srcWinARM/Cstartup_SAM7.c **** 
  73:../Compil/srcWinARM/Cstartup_SAM7.c ****     ///////////////////////////////////////////////////////////////////////////
  74:../Compil/srcWinARM/Cstartup_SAM7.c ****     // Init PMC Step 3.
  75:../Compil/srcWinARM/Cstartup_SAM7.c ****     // Selection of Master Clock MCK equal to (Processor Clock PCK) PLL/2=48MHz
  76:../Compil/srcWinARM/Cstartup_SAM7.c ****     // The PMC_MCKR register must not be programmed in a single write operation
  77:../Compil/srcWinARM/Cstartup_SAM7.c ****     // (see. Product Errata Sheet)
  78:../Compil/srcWinARM/Cstartup_SAM7.c ****     ///////////////////////////////////////////////////////////////////////////
  79:../Compil/srcWinARM/Cstartup_SAM7.c ****     AT91C_BASE_PMC->PMC_MCKR = AT91C_PMC_PRES_CLK_2;
  55              	_LowLevelInit
  56 0030 0423     		.code 16
  57 0032 0B63     		.thumb_func
  59 0036 0822     	AT91F_LowLevelInit:
  60              	.LFB290:
  80:../Compil/srcWinARM/Cstartup_SAM7.c ****     // Wait until the master clock is established
  81:../Compil/srcWinARM/Cstartup_SAM7.c ****     while( !(AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MCKRDY) );
  61              	 1 "../Compil/srcWinARM/Cstartup_SAM7.c"
  62 0038 8B6E     		.loc 1 37 0
  63 003a 1342     		@ lr needed for prologue
  64 003c FCD0     		.loc 1 42 0
  82:../Compil/srcWinARM/Cstartup_SAM7.c **** 
  83:../Compil/srcWinARM/Cstartup_SAM7.c ****     AT91C_BASE_PMC->PMC_MCKR |= AT91C_PMC_CSS_PLL_CLK;
  65              		r3, #128
  66 003e 0B6B     		lsl	r3, r3, #1
  67 0040 0322     		ldr	r2, .L26
  68 0042 1343     		str	r3, [r2, #96]
  69 0044 0B63     		.loc 1 52 0
  70 0046 1049     		ldr	r2, .L26+4
  71 0048 0822     		ldr	r3, .L26+8
  72              		str	r2, [r3, #32]
  84:../Compil/srcWinARM/Cstartup_SAM7.c ****     // Wait until the master clock is established
  85:../Compil/srcWinARM/Cstartup_SAM7.c ****     while( !(AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MCKRDY) );
  73              	ction
  74 004a 8B6E     	AT91F_LowLevelInit:
  75 004c 1342     	.LFB290:
  76 004e FCD0     		.file 1 "../Compil/srcWinARM/Cstartup_SAM7.c"
  86:../Compil/srcWinARM/Cstartup_SAM7.c **** 
  87:../Compil/srcWinARM/Cstartup_SAM7.c ****     ///////////////////////////////////////////////////////////////////////////
  88:../Compil/srcWinARM/Cstartup_SAM7.c ****     //  Disable Watchdog (write once register)
  89:../Compil/srcWinARM/Cstartup_SAM7.c ****     ///////////////////////////////////////////////////////////////////////////
  90:../Compil/srcWinARM/Cstartup_SAM7.c ****     AT91C_BASE_WDTC->WDTC_WDMR = AT91C_WDTC_WDDIS;
  77              	c 1 37 0
  78 0050 8023     		@ lr needed for prologue
  79 0052 1B02     		.loc 1 42 0
  80 0054 0E4A     		mov	r3, #128
  81 0056 5360     		lsl	r3, r3, #1
  91:../Compil/srcWinARM/Cstartup_SAM7.c **** 
  92:../Compil/srcWinARM/Cstartup_SAM7.c ****     ///////////////////////////////////////////////////////////////////////////
  93:../Compil/srcWinARM/Cstartup_SAM7.c ****     //  Init AIC: assign corresponding handler for each interrupt source
  94:../Compil/srcWinARM/Cstartup_SAM7.c ****     ///////////////////////////////////////////////////////////////////////////
  95:../Compil/srcWinARM/Cstartup_SAM7.c ****     AT91C_BASE_AIC->AIC_SVR[0] = (int) AT91F_Default_FIQ_handler ;
  82              	r2, .L26
  83 0058 0E49     		str	r3, [r2, #96]
  84 005a 0F4A     		.loc 1 52 0
  85 005c 8023     		ldr	r2, .L26+4
  86 005e D150     		ldr	r3, .L26+8
  87 0060 0122     		str	r2, [r3, #32]
  88 0062 0E49     		mov	r1, r3
  89              		mov	r2, #1
  96:../Compil/srcWinARM/Cstartup_SAM7.c ****     for (i = 1; i < 31; i++) {
  97:../Compil/srcWinARM/Cstartup_SAM7.c ****         AT91C_BASE_AIC->AIC_SVR[i] = (int) AT91F_Default_IRQ_handler ;
  90              	.LFB290:
  91 0064 9300     		.file 1 "../Compil/srcWinARM/Cstartup_SAM7.c"
  92 0066 0E48     		.loc 1 37 0
  93 0068 1B18     		@ lr needed for prologue
  94 006a 1960     		.loc 1 42 0
  95 006c 0132     		mov	r3, #128
  96              		lsl	r3, r3, #1
  97 006e 1F2A     		ldr	r2, .L26
  98 0070 F8D1     		str	r3, [r2, #96]
  98:../Compil/srcWinARM/Cstartup_SAM7.c ****     }
  99:../Compil/srcWinARM/Cstartup_SAM7.c ****     AT91C_BASE_AIC->AIC_SPU = (unsigned int) AT91F_Spurious_handler;
  99              	2 0
 100 0072 0C4B     		ldr	r2, .L26+4
 101 0074 9A22     		ldr	r3, .L26+8
 102 0076 5200     		str	r2, [r3, #32]
 103 0078 0749     		mov	r1, r3
 104 007a 8B50     		mov	r2, #1
 100:../Compil/srcWinARM/Cstartup_SAM7.c **** }
 105              	.LFB290:
 106              		.file 1 "../Compil/srcWinARM/Cstartup_SAM7.c"
 107 007c 7047     		.loc 1 37 0
 108              		@ lr needed for prologue
 109 007e 0000     		.loc 1 42 0
 110              		mov	r3, #128
 111 0080 00FFFFFF 		lsl	r3, r3, #1
 112 0084 01400000 		ldr	r2, .L26
 113 0088 00FCFFFF 		str	r3, [r2, #96]
 114 008c 0E104810 		.loc 1 52 0
 115 0090 40FDFFFF 		ldr	r2, .L26+4
 116 0094 00000000 		ldr	r3, .L26+8
 117 0098 00F0FFFF 		str	r2, [r3, #32]
 118 009c 00000000 		mov	r1, r3
 119 00a0 80F0FFFF 		mov	r2, #1
 120 00a4 00000000 	.L2:
 121              		.loc 1 54 0
 122              		ldr	r3, [r1, #104]
 147              	.L7:
DEFINED SYMBOLS
                            *ABS*:00000000 Cstartup_SAM7.c
C:\DOCUME~1\hy\LOCALS~1\Temp/cc00aaaa.s:1      .text:00000000 $t
C:\DOCUME~1\hy\LOCALS~1\Temp/cc00aaaa.s:17     .text.AT91F_LowLevelInit:00000000 AT91F_LowLevelInit
C:\DOCUME~1\hy\LOCALS~1\Temp/cc00aaaa.s:14     .text.AT91F_LowLevelInit:00000000 $t
C:\DOCUME~1\hy\LOCALS~1\Temp/cc00aaaa.s:111    .text.AT91F_LowLevelInit:00000080 $d

UNDEFINED SYMBOLS
AT91F_Default_FIQ_handler
AT91F_Default_IRQ_handler
AT91F_Spurious_handler

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -