亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? startup.s

?? Philips LPC2200 Using External Program Memory
?? S
字號:
/***********************************************************************/
/*  This file is part of the uVision/ARM development tools             */
/*  Copyright KEIL ELEKTRONIK GmbH 2002-2004                           */
/***********************************************************************/
/*                                                                     */
/*  STARTUP.S:  Startup file for Philips LPC2000 device series         */
/*                                                                     */
/***********************************************************************/


/* 
//*** <<< Use Configuration Wizard in Context Menu >>> *** 
*/


// *** Startup Code (executed after Reset) ***


// 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     0
        VPBDIV_Val      EQU     0x00000000


// 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
//   <o1.0..4>   MSEL: PLL Multiplier Selection
//               <1-32><#-1>
//               <i> M Value
//   <o1.5..6>   PSEL: PLL Divider Selection
//               <0=> 1   <1=> 2   <2=> 4   <3=> 8
//               <i> P Value
// </e>
*/
        PLL_SETUP       EQU     1
        PLLCFG_Val      EQU     0x00000024


// Memory Accelerator Module (MAM) definitions
        MAM_BASE        EQU     0xE01FC000  /* MAM Base Address */
        MAMCR_OFS       EQU     0x00        /* MAM Control Offset*/
        MAMTIM_OFS      EQU     0x04        /* MAM Timing Offset */

/*
// <e> MAM Setup
// <i> Memory Accelerator Module
//   <o1.0..1>   MAM Control
//               <0=> Disabled
//               <1=> Partially Enabled
//               <2=> Fully Enabled
//               <i> Mode
//   <o2.0..2>   MAM Timing
//               <0=> Reserved  <1=> 1   <2=> 2   <3=> 3
//               <4=> 4         <5=> 5   <6=> 6   <7=> 7
//               <i> Fetch Cycles
// </e>
*/
        MAM_SETUP       EQU     1
        MAMCR_Val       EQU     0x00000002
        MAMTIM_Val      EQU     0x00000004


// External Memory Controller (EMC) definitions
        EMC_BASE        EQU     0xFFE00000  /* EMC Base Address */
        BCFG0_OFS       EQU     0x00        /* BCFG0 Offset */
        BCFG1_OFS       EQU     0x04        /* BCFG1 Offset */
        BCFG2_OFS       EQU     0x08        /* BCFG2 Offset */
        BCFG3_OFS       EQU     0x0C        /* BCFG3 Offset */

/*
// <e> External Memory Controller (EMC)
*/
        EMC_SETUP       EQU     1

/*
//   <e> Bank Configuration 0 (BCFG0)
//     <o1.0..3>   IDCY: Idle Cycles <0-15>
//     <o1.5..9>   WST1: Wait States 1 <0-31>
//     <o1.11..15> WST2: Wait States 2 <0-31>
//     <o1.10>     RBLE: Read Byte Lane Enable
//     <o1.26>     WP: Write Protect
//     <o1.27>     BM: Burst ROM
//     <o1.28..29> MW: Memory Width  <0=>  8-bit  <1=> 16-bit
//                                   <2=> 32-bit  <3=> Reserved
//   </e>
*/
        BCFG0_SETUP EQU         1
        BCFG0_Val   EQU         0x20001041

/*
//   <e> Bank Configuration 1 (BCFG1)
//     <o1.0..3>   IDCY: Idle Cycles <0-15>
//     <o1.5..9>   WST1: Wait States 1 <0-31>
//     <o1.11..15> WST2: Wait States 2 <0-31>
//     <o1.10>     RBLE: Read Byte Lane Enable
//     <o1.26>     WP: Write Protect
//     <o1.27>     BM: Burst ROM
//     <o1.28..29> MW: Memory Width  <0=>  8-bit  <1=> 16-bit
//                                   <2=> 32-bit  <3=> Reserved
//   </e>
*/
        BCFG1_SETUP EQU         1
        BCFG1_Val   EQU         0x20000C21

/*
//   <e> Bank Configuration 2 (BCFG2)
//     <o1.0..3>   IDCY: Idle Cycles <0-15>
//     <o1.5..9>   WST1: Wait States 1 <0-31>
//     <o1.11..15> WST2: Wait States 2 <0-31>
//     <o1.10>     RBLE: Read Byte Lane Enable
//     <o1.26>     WP: Write Protect
//     <o1.27>     BM: Burst ROM
//     <o1.28..29> MW: Memory Width  <0=>  8-bit  <1=> 16-bit
//                                   <2=> 32-bit  <3=> Reserved
//   </e>
*/
        BCFG2_SETUP EQU         0
        BCFG2_Val   EQU         0x0000FBEF

/*
//   <e> Bank Configuration 3 (BCFG3)
//     <o1.0..3>   IDCY: Idle Cycles <0-15>
//     <o1.5..9>   WST1: Wait States 1 <0-31>
//     <o1.11..15> WST2: Wait States 2 <0-31>
//     <o1.10>     RBLE: Read Byte Lane Enable
//     <o1.26>     WP: Write Protect
//     <o1.27>     BM: Burst ROM
//     <o1.28..29> MW: Memory Width  <0=>  8-bit  <1=> 16-bit
//                                   <2=> 32-bit  <3=> Reserved
//   </e>
*/
        BCFG3_SETUP EQU         0
        BCFG3_Val   EQU         0x0000FBEF

/*
// </e> End of EMC
*/


// External Memory Pins definitions
        PINSEL2         EQU     0xE002C014  /* PINSEL2 Address */
        PINSEL2_Val     EQU     0x0E6149E4  /* CS0..3, OE, WE, BLS0..3, 
                                               D0..31, A2..23, JTAG Pins */


// Starupt Code must be linked first at Address at which it expects to run.

$IF (EXTERNAL_MODE)
        CODE_BASE       EQU     0x80000000
$ELSE
        CODE_BASE       EQU     0x00000000
$ENDIF

AREA   STARTUPCODE, CODE, AT CODE_BASE   // READONLY, ALIGN=4
       PUBLIC  __startup

       EXTERN  CODE32 (?C?INIT)

__startup       PROC    CODE32

// Pre-defined interrupt handlers that may be directly 
// overwritten by C interrupt functions
EXTERN CODE32 (Undef_Handler?A)
EXTERN CODE32 (SWI_Handler?A)
EXTERN CODE32 (PAbt_Handler?A)
EXTERN CODE32 (DAbt_Handler?A)
EXTERN CODE32 (IRQ_Handler?A)
EXTERN CODE32 (FIQ_Handler?A)

// Exception Vectors
// Mapped to Address 0.
// Absolute addressing mode must be used.

Vectors:        LDR     PC,Reset_Addr         
                LDR     PC,Undef_Addr
                LDR     PC,SWI_Addr
                LDR     PC,PAbt_Addr
                LDR     PC,DAbt_Addr
                NOP                            /* Reserved Vector */
;               LDR     PC,IRQ_Addr
                LDR     PC,[PC, #-0x0FF0]      /* Vector from VicVectAddr */
                LDR     PC,FIQ_Addr

Reset_Addr:     DD      Reset_Handler
Undef_Addr:     DD      Undef_Handler?A
SWI_Addr:       DD      SWI_Handler?A
PAbt_Addr:      DD      PAbt_Handler?A
DAbt_Addr:      DD      DAbt_Handler?A
                DD      0                      /* Reserved Address */
IRQ_Addr:       DD      IRQ_Handler?A
FIQ_Addr:       DD      FIQ_Handler?A


// Reset Handler

Reset_Handler:  


$IF (EXTERNAL_MODE)
                LDR     R0, =PINSEL2
                LDR     R1, =PINSEL2_Val
                STR     R1, [R0]
$ENDIF


IF (EMC_SETUP != 0)
                LDR     R0, =EMC_BASE

IF (BCFG0_SETUP != 0)
                LDR     R1, =BCFG0_Val
                STR     R1, [R0, #BCFG0_OFS]
ENDIF

IF (BCFG1_SETUP != 0)
                LDR     R1, =BCFG1_Val
                STR     R1, [R0, #BCFG1_OFS]
ENDIF

IF (BCFG2_SETUP != 0)
                LDR     R1, =BCFG2_Val
                STR     R1, [R0, #BCFG2_OFS]
ENDIF

IF (BCFG3_SETUP != 0)
                LDR     R1, =BCFG3_Val
                STR     R1, [R0, #BCFG3_OFS]
ENDIF

ENDIF


IF (VPBDIV_SETUP != 0)
                LDR     R0, =VPBDIV
                LDR     R1, =VPBDIV_Val
                STR     R1, [R0]
ENDIF


IF (PLL_SETUP != 0)
                LDR     R0, =PLL_BASE
                MOV     R1, #0xAA
                MOV     R2, #0x55

// Configure and Enable PLL
                MOV     R3, #PLLCFG_Val
                STR     R3, [R0, #PLLCFG_OFS] 
                MOV     R3, #PLLCON_PLLE
                STR     R3, [R0, #PLLCON_OFS]
                STR     R1, [R0, #PLLFEED_OFS]
                STR     R2, [R0, #PLLFEED_OFS]

// Wait until PLL Locked
PLL_Loop:       LDR     R3, [R0, #PLLSTAT_OFS]
                ANDS    R3, R3, #PLLSTAT_PLOCK
                BEQ     PLL_Loop

// Switch to PLL Clock
                MOV     R3, #(PLLCON_PLLE | PLLCON_PLLC)
                STR     R3, [R0, #PLLCON_OFS]
                STR     R1, [R0, #PLLFEED_OFS]
                STR     R2, [R0, #PLLFEED_OFS]
ENDIF


IF (MAM_SETUP != 0)
                LDR     R0, =MAM_BASE
                MOV     R1, #MAMTIM_Val
                STR     R1, [R0, #MAMTIM_OFS] 
                MOV     R1, #MAMCR_Val
                STR     R1, [R0, #MAMCR_OFS] 
ENDIF


// Memory Mapping (when Interrupt Vectors are in RAM)
                MEMMAP  EQU  0xE01FC040  /* Memory Mapping Control */

$IF (RAM_INTVEC)
                LDR     R0, =MEMMAP
                MOV     R1, #2
                STR     R1, [R0]
$ENDIF


// Setup Stack for each mode
                LDR     R0, =Top_Stack

// Enter Undefined Instruction Mode and set its Stack Pointer
                MSR     CPSR_c, #Mode_UND|I_Bit|F_Bit
                MOV     SP, R0
                SUB     R0, R0, #UND_Stack_Size

// Enter Abort Mode and set its Stack Pointer
                MSR     CPSR_c, #Mode_ABT|I_Bit|F_Bit
                MOV     SP, R0
                SUB     R0, R0, #ABT_Stack_Size

// Enter FIQ Mode and set its Stack Pointer
                MSR     CPSR_c, #Mode_FIQ|I_Bit|F_Bit
                MOV     SP, R0
                SUB     R0, R0, #FIQ_Stack_Size

// Enter IRQ Mode and set its Stack Pointer
                MSR     CPSR_c, #Mode_IRQ|I_Bit|F_Bit
                MOV     SP, R0
                SUB     R0, R0, #IRQ_Stack_Size

// Enter Supervisor Mode and set its Stack Pointer
                MSR     CPSR_c, #Mode_SVC|I_Bit|F_Bit
                MOV     SP, R0
                SUB     R0, R0, #SVC_Stack_Size

// Enter User Mode and set its Stack Pointer
                MSR     CPSR_c, #Mode_USR
                MOV     SP, R0

// Enter the C code
                LDR     R0,=?C?INIT
                TST     R0,#1       ; Bit-0 set: INIT is Thumb
                LDREQ   LR,=exit?A  ; ARM Mode
                LDRNE   LR,=exit?T  ; Thumb Mode
                BX      R0
                ENDP

PUBLIC exit?A
exit?A          PROC    CODE32
                B       exit?A
                ENDP

PUBLIC exit?T
exit?T          PROC    CODE16
exit:           B       exit?T
                ENDP


                END

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲激情av在线| 国模冰冰炮一区二区| 午夜成人免费电影| 国产精品影视在线| 欧美日韩一卡二卡三卡 | 欧美国产日韩精品免费观看| 一区二区三区日韩欧美| 国内精品第一页| 欧美挠脚心视频网站| 国产精品久久久久7777按摩| 国产在线麻豆精品观看| 777午夜精品免费视频| 亚洲特级片在线| 成人综合婷婷国产精品久久蜜臀 | 亚洲18影院在线观看| 福利电影一区二区三区| 精品国产免费久久| 日韩中文字幕亚洲一区二区va在线 | 久久精品国产亚洲a| 成人夜色视频网站在线观看| 日韩精品一区二区三区在线播放 | 欧美美女bb生活片| 亚洲欧洲成人自拍| 成人三级在线视频| 久久久亚洲精品石原莉奈| 久久成人精品无人区| 337p亚洲精品色噜噜| 亚洲电影在线免费观看| 欧美色国产精品| 亚洲一级二级在线| 欧美日韩一区二区在线观看| 亚洲精品中文字幕在线观看| 99精品视频在线播放观看| 亚洲欧洲精品一区二区三区不卡| 成人黄色在线视频| 中文字幕在线观看不卡视频| av中文字幕在线不卡| 综合分类小说区另类春色亚洲小说欧美| 丁香桃色午夜亚洲一区二区三区| 欧美国产一区视频在线观看| 成人高清在线视频| 亚洲欧洲av在线| 欧美亚洲一区二区在线| 亚洲国产综合人成综合网站| 5月丁香婷婷综合| 精品制服美女丁香| 久久亚洲捆绑美女| 成人性视频免费网站| 亚洲天堂福利av| 欧美亚洲国产一区二区三区va| 亚洲va韩国va欧美va| 欧美一区二区精品久久911| 蜜桃在线一区二区三区| 国产亚洲一区二区三区在线观看 | 欧美一区二区三级| 国产精品一区二区三区网站| 欧美国产激情二区三区| 色系网站成人免费| 日日摸夜夜添夜夜添精品视频| 日韩精品一区二区三区视频播放| 丁香婷婷综合激情五月色| 亚洲精品免费看| 欧美mv日韩mv亚洲| 99久久精品国产麻豆演员表| 丝袜美腿亚洲综合| 国产亚洲短视频| 在线免费一区三区| 国产在线一区二区综合免费视频| 亚洲三级电影全部在线观看高清| 欧美伦理影视网| 国产大陆a不卡| 亚洲成年人影院| 日本一区二区三级电影在线观看 | 国产亚洲一区字幕| 欧美精品一卡两卡| 欧美另类变人与禽xxxxx| 久久精品国产99国产精品| 国产色91在线| 国产精品免费免费| 51精品秘密在线观看| 国产精品蜜臀av| 国产精品久久99| 亚洲图片你懂的| 亚洲欧美日韩国产中文在线| 亚洲欧美韩国综合色| 亚洲男女一区二区三区| 一区二区三区在线观看欧美 | 国产精品乱人伦中文| 亚洲欧美一区二区在线观看| 亚洲私人影院在线观看| 夜夜嗨av一区二区三区网页| 亚洲无线码一区二区三区| 首页亚洲欧美制服丝腿| 久久99最新地址| 国产精品亚洲专一区二区三区 | 亚洲免费观看高清在线观看| 亚洲精品视频在线观看免费| 亚洲第一av色| 久99久精品视频免费观看| 国产suv精品一区二区883| 99久久精品免费看国产免费软件| 欧美专区亚洲专区| 欧美电视剧在线看免费| 欧美激情一区三区| 亚洲国产视频直播| 国产一区在线观看麻豆| 成人av资源站| 欧美日韩mp4| 久久久99精品免费观看不卡| 亚洲精品免费在线观看| 麻豆传媒一区二区三区| 成人av网站大全| 欧美巨大另类极品videosbest| 精品国产乱码久久久久久浪潮 | 欧美日韩中文一区| 欧美精品一区二区三区在线播放| 国产精品无人区| 日韩影院免费视频| 成人高清伦理免费影院在线观看| 欧美午夜电影一区| 国产午夜精品久久| 午夜影院在线观看欧美| 成人精品鲁一区一区二区| 91精品国产91久久综合桃花| 中文字幕精品在线不卡| 日韩不卡免费视频| 99久久777色| 精品999久久久| 亚洲大片精品永久免费| 国产传媒日韩欧美成人| 欧美一级在线视频| 亚洲人成网站精品片在线观看| 美国十次了思思久久精品导航| 色综合久久88色综合天天免费| 欧美精品一区二区久久婷婷| 亚洲线精品一区二区三区八戒| 国产精品一区二区在线看| 91精品国产色综合久久不卡电影| 国产精品国产精品国产专区不片| 极品少妇xxxx精品少妇| 欧美日韩国产区一| 亚洲人吸女人奶水| 白白色亚洲国产精品| 精品国产乱码久久久久久夜甘婷婷| 亚洲国产精品一区二区www在线| 成人午夜免费视频| 久久久99精品久久| 久久se精品一区精品二区| 欧美四级电影在线观看| 国产精品电影一区二区三区| 国产成人无遮挡在线视频| 精品国产免费人成电影在线观看四季 | 亚洲欧美日韩国产综合在线| 国产精品1区2区3区| 欧美电影精品一区二区| 亚洲国产欧美一区二区三区丁香婷| 成人动漫中文字幕| 国产精品理论片| 国产91在线看| 久久精品视频在线看| 精品一区二区精品| 日韩欧美区一区二| 蜜桃一区二区三区在线观看| 91精品久久久久久蜜臀| 婷婷一区二区三区| 欧美三级蜜桃2在线观看| 亚洲图片欧美综合| 欧美日韩国产首页| 日韩福利视频导航| 制服丝袜一区二区三区| 免费观看30秒视频久久| 日韩午夜在线观看| 久久国产福利国产秒拍| 日韩欧美高清一区| 国产麻豆精品在线观看| 国产日韩欧美综合在线| 成人av小说网| 亚洲与欧洲av电影| 欧美精品乱码久久久久久| 免费美女久久99| 精品久久久久久久久久久久包黑料 | 亚洲同性同志一二三专区| 盗摄精品av一区二区三区| 国产精品久久久久久久久久免费看 | 色婷婷国产精品久久包臀| 伊人一区二区三区| 欧美日韩不卡在线| 久久av资源站| 国产婷婷精品av在线| 97se亚洲国产综合自在线| 一区二区三区日韩在线观看| 欧美喷水一区二区| 精品一二线国产| 中文字幕亚洲在| 色综合色狠狠综合色| 五月天国产精品| 国产喷白浆一区二区三区| 色综合久久久久综合| 麻豆91在线看| 国产精品久久久爽爽爽麻豆色哟哟|