1、;/*/* STARTUP.S: Startup file for Philips LPC2000 */* */ /* This file is part of the uVision/ARM development tools./* Copyright (c) 2005-2007 Keil Software. All rights reserved./* This software may only be used under the terms of a valid, current,/* end user licence from KEIL for a compatible versio
2、n of KEIL software/* development tools. Nothing else gives you the right to use this software. */这段是一些说明,无非说些版权,时间信息等,注意红色标注出的语句必须在前100行文本中声明如下语句,这样编辑器将以配置向导视图的形式打开配置文件。 Standard definitions of Mode bits and Interrupt (I & F) flags in PSRsMode_USR EQU 0x10Mode_FIQ 0x11Mode_IRQ 0x12Mode_SVC 0x13Mode_
3、ABT 0x17Mode_UND 0x1BMode_SYS 0x1FI_Bit 0x80 ; when I bit is set, IRQ is disabledF_Bit 0x40 when F bit is set, FIQ is disabled这段代码用于定义一些模式,以及定义中断屏蔽位。/ Stack Configuration (Stack Sizes in Bytes)/ Undefined Mode0x0-0xFFFFFFFF:8o1 Supervisor Modeo2 Abort Modeo3 Fast Interrupt Mode Interrupt Modeo5 User
4、/System Mode/hUND_Stack_Size 0x00000000SVC_Stack_Size 0x00000008ABT_Stack_SizeFIQ_Stack_SizeIRQ_Stack_Size 0x00000080USR_Stack_Size 0x00000400ISR_Stack_Size (UND_Stack_Size + SVC_Stack_Size + ABT_Stack_Size + / FIQ_Stack_Size + IRQ_Stack_Size) AREA STACK, NOINIT, READWRITE, ALIGN=3Stack_Mem SPACE US
5、R_Stack_Size_initial_sp ISR_Stack_SizeStack_Top这一段配置堆栈空间,注意红色部分可以生成图形化的界面,Heading标题:表示以下选项在一个组中,直到遇到(x1,2,3.)表示可以指定一个值的范围User/System Mode Heap Size (in Bytes) Heap_Size HEAP, NOINIT, READWRITE, ALIGN=3_heap_baseHeap_Mem Heap_Size_heap_limit配置堆的大小,情况与配置堆栈十分相识。e VPBDIV Setupi Peripheral Bus Clock Rate
6、o1.0.1 VPBDIV: VPB Clock0= VPB Clock = CPU Clock / 41= VPB Clock = CPU Clock2= VPB Clock = CPU Clock / 2o1.4.5 XCLKDIV: XCLK Pin XCLK Pin = CPU Clock / 4 XCLK Pin = CPU Clock XCLK Pin = CPU Clock / 2/eVPBDIV_SETUP 1VPBDIV_Val Phase Locked Loop (PLL) definitionsPLL_BASE 0xE01FC080 PLL Base AddressPLL
7、CON_OFS 0x00 PLL Control OffsetPLLCFG_OFS 0x04 PLL Configuration OffsetPLLSTAT_OFS 0x08 PLL Status OffsetPLLFEED_OFS 0x0C PLL Feed OffsetPLLCON_PLLE (10) PLL EnablePLLCON_PLLC1) PLL ConnectPLLCFG_MSEL (0x1F PLL MultiplierPLLCFG_PSEL (0x03 MSEL: PLL Multiplier Selection1-32#-1 M Valueo1.5.6 PSEL: PLL
8、 Divider Selection 1 2 43= 8 P ValuePLL_SETUPPLLCFG_Val 0x00000023配置PLL。情况与配置VPBDIV十分相似。 Memory Accelerator Module (MAM) definitionsMAM_BASE 0xE01FC000 MAM Base AddressMAMCR_OFS MAM Control OffsetMAMTIM_OFS MAM Timing Offset MAM Setup MAM Control Disabled Partially Enabled Fully Enabled Modeo2.0.2 M
9、AM Timing Reserved 34=5= 56= 67= 7 Fetch CyclesMAM_SETUPMAMCR_Val 0x00000002MAMTIM_Val 0x00000004配置存储器加速模块,情况与配置VPBDIV十分相似。 External Memory Controller (EMC) definitionsEMC_BASE 0xFFE00000 EMC Base AddressBCFG0_OFS BCFG0 OffsetBCFG1_OFS BCFG1 OffsetBCFG2_OFS BCFG2 OffsetBCFG3_OFS BCFG3 Offset Externa
10、l Memory Controller (EMC)EMC_SETUP 0 Bank Configuration 0 (BCFG0)o1.0.3 IDCY: Idle Cycles o1.5.9 WST1: Wait States 1 o1.11.15 WST2: Wait States 2 RBLE: Read Byte Lane Enableo1.26 WP: Write Protecto1.27 BM: Burst ROMo1.28.29 MW: Memory Width 8-bit 16-bit 32-bit ReservedBCFG0_SETUP EQUBCFG0_Val 0x0000
11、FBEF Bank Configuration 1 (BCFG1)BCFG1_SETUP EQUBCFG1_Val Bank Configuration 2 (BCFG2)BCFG2_SETUP EQUBCFG2_Val Bank Configuration 3 (BCFG3)BCFG3_SETUP EQUBCFG3_Val End of EMC配置外部存储器,情况和配置VPBDIV类似。 External Memory Pins definitionsPINSEL2 0xE002C014 PINSEL2 AddressPINSEL2_Val 0x0E6149E4 CS0.3, OE, WE,
12、 BLS0.3, D0.31, A2.23, JTAG Pins定义外部存储器引脚。PRESERVE8 Area Definition and Entry Point Startup Code must be linked first at Address at which it expects to run. RESET, CODE, READONLY ARM声明使用ARM模式默认连接下,启动代码必须放在RESET段内 Exception Vectors Mapped to Address 0. Absolute addressing mode must be used. Dummy Handlers are implemented as infinite loops which can be modified.Vectors LDR PC, Reset_Addr定义异常向量-复位 PC, Undef_Addr未定义指令 PC, SWI_Addr软件中中断 PC, PAbt_Addr预取指中止 PC, DAbt_Addr数据中止 NOP Reserved Vector 保留 PC, IRQ_AddrIRQ中断,用下面的语句代替本句,这样能更快的进入中断 PC, PC, #-0x0FF0 从VicVectAddr寄存器读取中断向量地址. 当CPU执行这条指令还没有跳转时,
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2