No.104338 作者:哈佛 邮件:jola2002@163.com ID:29699 登陆:81次 QQ:5822022 -- MSN:jola2005912@hotmail.com 文章数:185篇 最后登陆IP:218.17.158.164 最后登陆:2014/12/16 13:54:00 注册:2005/1/6 19:18:03 财富:1280 发帖时间:2007/4/27 16:25:19 发贴者IP:210.21.215.18 标题:哈佛:lpc2148 startup.s 摘要:No.104338lpc2148 startup.s /*---------------------------------------------------------------------------- * U S B - K e r n e l *---------------------------------------------------------------------------- * Name: INIT.S * Purpose: Startup file for Philips LPC214x Family Microprocessor * Version: V1.04 *---------------------------------------------------------------------------- * This software is supplied "AS IS" without any warranties, express, * implied or statutory, including but not limited to the implied * warranties of fitness for purpose, satisfactory quality and * noninfringement. Keil extends you a royalty-free right to reproduce and * distribute executable files created using this software for use on * Philips LPC2xxx microcontroller devices only. Nothing else gives you the * right to use this software. * * Copyright (c) 2005 Keil Software. * Modified by Philips Semiconductor *---------------------------------------------------------------------------*/ /* //*** < < < Use Configuration Wizard in Context Menu > > > *** */ /* * The STARTUP.S code is executed after CPU Reset. This file may be * translated with the following SET symbols. In uVision these SET * symbols are entered under Options - ASM - Set. * * REMAP: when set the startup code initializes the register MEMMAP * which overwrites the settings of the CPU configuration pins. The * startup and interrupt vectors are remapped from: * 0x00000000 default setting (not remapped) * 0x80000000 when EXTMEM_MODE is used * 0x40000000 when RAM_MODE is used * * EXTMEM_MODE: when set the device is configured for code execution * from external memory starting at address 0x80000000. The startup * vectors are located to 0x80000000. * * RAM_MODE: when set the device is configured for code execution * from on-chip RAM starting at address 0x40000000. The startup * vectors are located to 0x40000000. */ // Standard definitions of Mode bits and Interrupt (I & F) flags in PSRs Mode_USR EQU 0x10 Mode_FIQ EQU 0x11 Mode_IRQ EQU 0x12 Mode_SVC EQU 0x13 Mode_ABT EQU 0x17 Mode_UND EQU 0x1B Mode_SYS EQU 0x1F I_Bit EQU 0x80 /* when I bit is set, IRQ is disabled */ F_Bit EQU 0x40 /* when F bit is set, FIQ is disabled */ /* // <h> Stack Configuration (Stack Sizes in Bytes) // <o0> Undefined Mode <0x0-0xFFFFFFFF:4> // <o1> Supervisor Mode <0x0-0xFFFFFFFF:4> // <o2> Abort Mode <0x0-0xFFFFFFFF:4> // <o3> Fast Interrupt Mode <0x0-0xFFFFFFFF:4> // <o4> Interrupt Mode <0x0-0xFFFFFFFF:4> // <o5> User/System Mode <0x0-0xFFFFFFFF:4> // </h> */ UND_Stack_Size EQU 0x00000004 SVC_Stack_Size EQU 0x00000004 ABT_Stack_Size EQU 0x00000004 FIQ_Stack_Size EQU 0x00000004 IRQ_Stack_Size EQU 0x00000080 USR_Stack_Size EQU 0x00000400 AREA STACK, DATA, READWRITE, ALIGN=2 DS (USR_Stack_Size+3)&~3 ; Stack for User/System Mode DS (SVC_Stack_Size+3)&~3 ; Stack for Supervisor Mode DS (IRQ_Stack_Size+3)&~3 ; Stack for Interrupt Mode DS (FIQ_Stack_Size+3)&~3 ; Stack for Fast Interrupt Mode DS (ABT_Stack_Size+3)&~3 ; Stack for Abort Mode DS (UND_Stack_Size+3)&~3 ; Stack for Undefined Mode Top_Stack: // VPBDIV definitions VPBDIV EQU 0xE01FC100 /* VPBDIV Address */ /* // <e> VPBDIV Setup // <i> Peripheral Bus Clock Rate // <o1.0..1> VPBDIV: VPB Clock // <0=> VPB Clock = CPU Clock / 4 // <1=> VPB Clock = CPU Clock // <2=> VPB Clock = CPU Clock / 2 // <o1.4..5> XCLKDIV: XCLK Pin // <0=> XCLK Pin = CPU Clock / 4 // <1=> XCLK Pin = CPU Clock // <2=> XCLK Pin = CPU Clock / 2 // </e> */ VPBDIV_SETUP EQU 1 VPBDIV_Val EQU 0x00000001 // Phase Locked Loop (PLL) definitions PLL_BASE EQU 0xE01FC080 /* PLL Base Address */ PLLCON_OFS EQU 0x00 /* PLL Control Offset*/ PLLCFG_OFS EQU 0x04 /* PLL Configuration Offset */ PLLSTAT_OFS EQU 0x08 /* PLL Status Offset */ PLLFEED_OFS EQU 0x0C /* PLL Feed Offset */ PLLCON_PLLE EQU (1 < <0) /* PLL Enable */ PLLCON_PLLC EQU (1 < <1) /* PLL Connect */ PLLCFG_MSEL EQU (0x1F < <0) /* PLL Multiplier */ PLLCFG_PSEL EQU (0x03 < <5) /* PLL Divider */ PLLSTAT_PLOCK EQU (1 < <10) /* PLL Lock Status */ /* // <e> PLL Setup // <i> Phase Locked Loop // <i> CCLK - Processor Clock // <i> Fcco - PLL Oscillator // <o1.0..4> MSEL: PLL Multiplier Selection // <1-32> <#-1> // <i> PLL Multiplier "M" value // <i> CCLK = M * Fosc // <o1.5..6> PSEL: PLL Divider Selection // <0=> 1 <1=> 2 <2=> 4 <3=> 8 // <i> PLL Divider "P" value // <i> Fcco = CCLK * 2 * P // <i> 156MHz <= Fcco <= 320MHz // </e> */ PLL_SETUP EQU 1 PLLCFG_Val EQU 0x00000024 // Memory Accelerator Module (MAM) definitions MAM_BASE EQU 0xE ......
>>返回讨论的主题
|