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

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

?? sysalib.s

?? VxWorks BSP 下s3C44b0的源代碼
?? S
字號:
/* sysALib.s - Samsung SBC ARM7 system-dependent routines */


/* Copyright 1984-2001 Wind River Systems, Inc. */

/*
modification history
--------------------
01o,28jul04,a_m  BSP定制 for 多刃劍開發板
01d,18oct01,jb  Removing pre-pended underscores for new compilers (Diab/Gnu
                 elf)
01c,26apr01,m_h  fix thumb mode
01b,26apr01,m_h  convert tabs to spaces for readability
01a,12apr01,m_h  created from snds100 template.
*/

/*

DESCRIPTION
This module contains system-dependent routines written in assembly
language.  It contains the entry code, sysInit(), for VxWorks images
that start running from RAM, such as 'vxWorks'.  These images are
loaded into memory by some external program (e.g., a boot ROM) and then
started.  The routine sysInit() must come first in the text segment.
Its job is to perform the minimal setup needed to call the generic C
routine usrInit().

sysInit() masks interrupts in the processor and the interrupt
controller and sets the initial stack pointer.  Other hardware and
device initialisation is performed later in the sysHwInit routine in
sysLib.c.

NOTE
The routines in this module don't use the "C" frame pointer %r11@ ! or
establish a stack frame.

SEE ALSO:
.I "ARM Architecture Reference Manual,"
.I "Samsung KS32C50100 Microcontroller User's Manual,"
.I "Samsung KS32C5000(A)/50100 Microcontroller Application Notes."
*/

#define _ASMLANGUAGE
#include "vxWorks.h"
#include "arch/arm/arm.h"
#include "regs.h"
#include "sysLib.h"
#include "config.h"
#include "wrSbcArm7.h"

    .data
    .globl  FUNC(copyright_wind_river)
    .long   FUNC(copyright_wind_river)
/* internals */

    .globl    FUNC(sysInit)        /* start of system code */
    .globl    FUNC(sysIntStackSplit)    /* routine to split interrupt stack */

/* externals */

    .extern    FUNC(usrInit)        /* system initialization routine */

    .extern    FUNC(vxSvcIntStackBase)    /* base of SVC-mode interrupt stack */
    .extern    FUNC(vxSvcIntStackEnd)    /* end of SVC-mode interrupt stack */
    .extern    FUNC(vxIrqIntStackBase)    /* base of IRQ-mode interrupt stack */
    .extern    FUNC(vxIrqIntStackEnd)    /* end of IRQ-mode interrupt stack */

    .text
    .balign 4

/*******************************************************************************
*
* sysInit - start after boot
*
* This routine is the system start-up entry point for VxWorks in RAM, the
* first code executed after booting.  It disables interrupts, sets up
* the stack, and jumps to the C routine usrInit() in usrConfig.c.
*
* The initial stack is set to grow down from the address of sysInit().  This
* stack is used only by usrInit() and is never used again.  Memory for the
* stack must be accounted for when determining the system load address.
*
* NOTE: This routine should not be called by the user.
*
* RETURNS: N/A

* sysInit ()              /@ THIS IS NOT A CALLABLE ROUTINE @/

*/

_ARM_FUNCTION(sysInit)

#ifdef  INCLUDE_VWARE_LAUNCH
    LDR    r2, =sysPrivateVwareParams
    STR    r1, [r2]
    LDR    r2, =sysPrivateVwareParams + 0x04
    STR    r0, [r2]
#endif /* INCLUDE_VWARE_LAUNCH */

    /*  : added */
    LDR    r2, L$_SbcArm7Intmsk		/*all interrupt disable*/
    MOV    r1, #0x07ffffff
    STR    r1, [r2]


    /* set initial stack pointer so stack grows down from start of code */

    LDR    sp, L$_STACK_ADDR
    MOV    fp, #0            /* zero frame pointer */

   /* Call C_Entry application routine with a pointer to the first */
   /* available memory address after ther compiler's global data */
   /* This memory may be used by the application. */

    /* now call usrInit */

    MOV    fp, #0            /* initialize frame pointer */
    MOV    r0, #BOOT_WARM_AUTOBOOT    /* pass startType */

#if    (CPU == ARMARCH4_T)
    LDR    r12, L$_usrInit
    BX     r12
#else
    B     FUNC(usrInit)
#endif    /* (CPU == ARMARCH4_T) */


/*******************************************************************************
*
* sysIntStackSplit - split interrupt stack and set interrupt stack pointers
*
* This routine is called, via a function pointer, during kernel
* initialisation.  It splits the allocated interrupt stack into IRQ and
* SVC-mode stacks and sets the processor's IRQ stack pointer. Note that
* the pointer passed points to the bottom of the stack allocated i.e.
* highest address+1.
*
* IRQ stack needs 6 words per nested interrupt;
* SVC-mode will need a good deal more for the C interrupt handlers.
* For now, use ratio 1:7 with any excess allocated to the SVC-mode stack
* at the lowest address.
*
* Note that FIQ is not handled by VxWorks so no stack is allocated for it.
*
* The stacks and the variables that describe them look like this.
* .CS
*
*         - HIGH MEMORY -
*     ------------------------ <--- vxIrqIntStackBase (r0 on entry)
*     |                      |
*     |       IRQ-mode       |
*     |    interrupt stack   |
*     |                      |
*     ------------------------ <--{ vxIrqIntStackEnd
*     |                      |    { vxSvcIntStackBase
*     |       SVC-mode       |
*     |    interrupt stack   |
*     |                      |
*     ------------------------ <--- vxSvcIntStackEnd
*         - LOW  MEMORY -
* .CE
*
* NOTE: This routine should not be called by the user.

* void sysIntStackSplit
*     (
*     char *pBotStack   /@ pointer to bottom of interrupt stack @/
*     long size        /@ size of stack @/
*     )

*/


_ARM_FUNCTION_CALLED_FROM_C(sysIntStackSplit)

    /*
     * r0 = base of space allocated for stacks (i.e. highest address)
     * r1 = size of space
     */

    SUB    r2, r0, r1            /* r2->lowest usable address */
    LDR    r3, L$_vxSvcIntStackEnd
    STR    r2, [r3]            /*  == end of SVC-mode stack */
    SUB    r2, r0, r1, ASR #3        /* leave 1/8 for IRQ */
    LDR    r3, L$_vxSvcIntStackBase
    STR    r2, [r3]

    /* now allocate IRQ stack, setting irq_sp */

    LDR    r3, L$_vxIrqIntStackEnd
    STR    r2, [r3]
    LDR    r3, L$_vxIrqIntStackBase
    STR    r0, [r3]

    MRS    r2, cpsr
    BIC    r3, r2, #MASK_MODE
    ORR    r3, r3, #MODE_IRQ32 | I_BIT    /* set irq_sp */
    MSR    cpsr, r3
    MOV    sp, r0

    /* switch back to original mode and return */

    MSR    cpsr, r2

#if    (CPU == ARMARCH4_T)
    BX     lr
#else
    MOV    pc, lr
#endif    /* (CPU == ARMARCH4_T) */

#ifdef INCLUDE_VWARE_LAUNCH
#include "sysAVware.s"
#endif /* INCLUDE_VWARE_LAUNCH */

/******************************************************************************/

/*
 * PC-relative-addressable pointers - LDR Rn,=sym is broken
 * note "_" after "$" to stop preprocessor preforming substitution
 */

    .balign    4

L$_vxSvcIntStackBase:
    .long    FUNC(vxSvcIntStackBase)

L$_vxSvcIntStackEnd:
    .long    FUNC(vxSvcIntStackEnd)

L$_vxIrqIntStackBase:
    .long    FUNC(vxIrqIntStackBase)

L$_vxIrqIntStackEnd:
    .long    FUNC(vxIrqIntStackEnd)

#if    (CPU == ARMARCH4_T)
L$_usrInit:
    .long    FUNC(usrInit)
#endif    /* (CPU == ARMARCH4_T) */

L$_STACK_ADDR:
    .long    FUNC(sysInit)

L$_SbcArm7Intmsk:
    .long    S3C44B0X_INTMASK
/*  : deleted */
/*L$_IopModReg:
    .long    SNGKS32C_IOPMOD

L$_IopDat:
    .long    SNGKS32C_IOPDATA*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一级高清毛片| 免费三级欧美电影| 日韩中文字幕亚洲一区二区va在线| 精品一区二区三区久久| 一本到三区不卡视频| 日韩欧美一级在线播放| 亚洲日本中文字幕区| 国产麻豆欧美日韩一区| 在线电影院国产精品| 亚洲欧美日韩一区二区三区在线观看| 国产自产v一区二区三区c| 欧美无人高清视频在线观看| 欧美激情综合五月色丁香| 蜜臀久久99精品久久久久宅男| 色av综合在线| 中文字幕一区三区| 99视频精品在线| 久久一夜天堂av一区二区三区| 日韩专区中文字幕一区二区| 欧美亚洲综合久久| 亚洲欧美另类图片小说| 成人国产精品免费| 亚洲国产精品精华液2区45| 激情小说欧美图片| 精品久久久久久久人人人人传媒 | 国产福利一区二区| 日韩免费高清电影| 蜜桃av噜噜一区二区三区小说| 欧美日韩一区二区三区免费看| 亚洲欧美偷拍卡通变态| 日本韩国欧美一区二区三区| 日韩美女视频一区二区 | 麻豆成人在线观看| 欧美电影在哪看比较好| 美女精品自拍一二三四| 日韩你懂的在线观看| 另类调教123区 | 中文字幕亚洲区| 99久久久精品免费观看国产蜜| 中文字幕中文字幕一区二区| 99久久精品国产一区二区三区| 亚洲视频一区二区在线| 欧美在线免费播放| 天天影视网天天综合色在线播放| 欧美一区欧美二区| 国产在线精品一区二区三区不卡 | 欧美日韩一级片在线观看| 午夜精品福利在线| 欧美tickling网站挠脚心| 国产成人免费高清| 亚洲精品视频在线观看网站| 欧美高清视频一二三区| 激情久久五月天| 亚洲一本大道在线| 欧美日韩国产首页| 韩国女主播成人在线| 国产三级精品视频| 在线日韩一区二区| 免费成人性网站| 国产欧美一区视频| 欧美日韩一区视频| 国产精品夜夜嗨| 亚洲精品日韩一| 精品国产一区二区三区不卡| 成人精品国产免费网站| 一区二区高清在线| 精品1区2区在线观看| 色狠狠av一区二区三区| 久久草av在线| 一区二区三区在线视频观看58| 日韩美一区二区三区| 91色porny在线视频| 免播放器亚洲一区| 亚洲欧美国产77777| 欧美一区二区人人喊爽| 91香蕉视频在线| 精品一区二区国语对白| 一区二区三区四区av| 久久久亚洲精华液精华液精华液| 色悠悠久久综合| 国产精品白丝jk白祙喷水网站| 亚洲国产日韩a在线播放| 国产丝袜在线精品| 91精品欧美久久久久久动漫| 北条麻妃国产九九精品视频| 老司机精品视频一区二区三区| 国产精品网站在线观看| 日韩一区国产二区欧美三区| 色综合咪咪久久| 国产99精品国产| 国产一区二区三区av电影 | 久久国产日韩欧美精品| 一区二区高清免费观看影视大全 | 亚洲国产视频a| 亚洲国产精品高清| 久久亚洲一级片| 欧美一区午夜精品| 欧美另类久久久品| 欧美图片一区二区三区| 一本大道综合伊人精品热热| 不卡的av网站| 国产成人精品免费| 国产精品一区免费在线观看| 欧美a级一区二区| 日韩不卡一区二区三区| 天堂资源在线中文精品| 亚洲无人区一区| 亚洲精品美国一| 一区二区三区国产精品| 亚洲黄色小视频| 最新中文字幕一区二区三区| 国产精品国产馆在线真实露脸| 中文乱码免费一区二区| 国产亚洲一区二区三区在线观看| 2020国产精品久久精品美国| 日韩精品一区二区三区在线| 日韩欧美一区二区免费| 欧美sm美女调教| xnxx国产精品| 国产区在线观看成人精品 | 欧美三级中文字幕在线观看| 欧美日韩精品欧美日韩精品一综合| 欧美亚洲综合色| 制服丝袜激情欧洲亚洲| 精品国精品国产| 国产日本欧美一区二区| 亚洲欧洲制服丝袜| 亚洲在线中文字幕| 日韩高清一区在线| 国产麻豆视频一区二区| 成人av电影免费在线播放| 色婷婷综合久久久中文字幕| 欧美日韩另类一区| 欧美精品一区二区在线播放| 国产婷婷色一区二区三区在线| 国产精品九色蝌蚪自拍| 亚洲福利一二三区| 另类小说色综合网站| 国产精品香蕉一区二区三区| 成人ar影院免费观看视频| 91福利国产精品| 日韩色在线观看| 国产精品免费人成网站| 亚洲国产欧美另类丝袜| 久久精品国产精品亚洲综合| youjizz国产精品| 欧美色综合久久| 精品国产sm最大网站| 亚洲欧洲综合另类| 午夜电影网亚洲视频| 极品美女销魂一区二区三区| 91丝袜国产在线播放| 在线不卡中文字幕| 国产精品热久久久久夜色精品三区 | 亚洲人123区| 久久国产尿小便嘘嘘| 色婷婷亚洲一区二区三区| 日韩欧美视频一区| 亚洲乱码国产乱码精品精可以看| 看国产成人h片视频| 色综合天天综合| 久久夜色精品国产欧美乱极品| 亚洲电影在线播放| 国产成人在线视频播放| 91精品国产91综合久久蜜臀| 国产精品久久福利| 黄一区二区三区| 欧美日韩免费不卡视频一区二区三区| 国产亚洲成年网址在线观看| 日欧美一区二区| 91久久一区二区| 日本一区二区三区在线不卡| 久久精品国产色蜜蜜麻豆| 日本久久一区二区三区| 欧美国产日本视频| 黄一区二区三区| 日韩一级片网址| 日韩主播视频在线| 欧美综合欧美视频| 亚洲视频一区二区在线观看| 成人天堂资源www在线| 精品久久久久久无| 蜜臀av性久久久久蜜臀aⅴ四虎| 色一情一乱一乱一91av| 中文字幕亚洲精品在线观看| 福利一区二区在线| 国产欧美日韩综合| 狠狠色丁香婷婷综合| 日韩免费观看高清完整版| 日韩av电影一区| 欧美福利一区二区| 天堂久久久久va久久久久| 欧美丝袜第三区| 亚洲一区二区三区激情| 欧美偷拍一区二区| 亚洲二区在线视频| 在线不卡a资源高清| 午夜精品福利在线| 91麻豆精品久久久久蜜臀| 日欧美一区二区|