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

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

?? sysalib.s

?? 440bx vxworks bsp
?? 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一区二区三区免费野_久草精品视频
亚洲欧美日韩国产另类专区| 欧美在线综合视频| 亚洲444eee在线观看| 国产精品久久久久久一区二区三区| 欧美日韩国产一二三| 高清在线成人网| 精品亚洲成a人| 日韩va欧美va亚洲va久久| 亚洲成人一区在线| 一区二区理论电影在线观看| 亚洲国产精华液网站w| 精品国产99国产精品| 91精品国产一区二区三区蜜臀| 欧美中文字幕一区二区三区亚洲| 91丨九色丨尤物| 欧美日韩www| 欧美第一区第二区| 久久九九久久九九| 国产精品入口麻豆原神| 国产精品私人自拍| 亚洲综合小说图片| 日韩欧美一区在线| 久久久综合视频| 日韩av一区二区在线影视| 99精品视频在线观看免费| 91精品国产一区二区三区蜜臀| 777亚洲妇女| 国产欧美日韩在线| 亚洲自拍偷拍图区| 奇米精品一区二区三区在线观看一| 日韩中文字幕av电影| 日韩电影网1区2区| 国产一区二区精品在线观看| 亚洲第一成人在线| 国产不卡在线视频| 久久久天堂av| 国产高清在线观看免费不卡| 久久综合狠狠综合久久综合88| 肉丝袜脚交视频一区二区| 成人蜜臀av电影| 欧美国产成人精品| 午夜精品在线看| 欧美亚洲一区二区三区四区| 最近中文字幕一区二区三区| 国产99精品在线观看| 久久美女艺术照精彩视频福利播放| caoporn国产精品| 国产午夜精品理论片a级大结局| 韩国三级电影一区二区| 久久精子c满五个校花| 国产精品一区二区三区网站| 国产精品大尺度| 欧美日韩精品久久久| 久久99精品久久久久婷婷| 国产视频一区二区在线| 91麻豆福利精品推荐| 亚洲va在线va天堂| 久久综合九色欧美综合狠狠| www.亚洲激情.com| 日韩电影在线一区二区| 欧美激情一区二区三区蜜桃视频| www.日韩在线| 秋霞影院一区二区| 中文字幕av不卡| 欧美亚洲高清一区| 国产毛片一区二区| www.亚洲国产| 精品国产91久久久久久久妲己| 香蕉加勒比综合久久| 91福利社在线观看| 亚洲另类中文字| 一道本成人在线| 亚洲三级在线免费观看| www.在线欧美| 亚洲免费观看视频| 欧美在线短视频| 亚洲成av人在线观看| 欧美性做爰猛烈叫床潮| 一区二区高清免费观看影视大全| 91色婷婷久久久久合中文| 亚洲视频在线一区二区| 一本在线高清不卡dvd| 亚洲人123区| 欧美日韩在线播放三区四区| 亚洲愉拍自拍另类高清精品| 欧美日韩国产精品自在自线| 爽好多水快深点欧美视频| 91麻豆精品国产91久久久资源速度| 午夜精品在线视频一区| 日韩精品中文字幕在线一区| 蜜桃av一区二区在线观看| 欧美不卡一区二区三区| 国产一区91精品张津瑜| 中文子幕无线码一区tr| 日本高清不卡在线观看| 婷婷国产在线综合| 欧美精品一区视频| 东方aⅴ免费观看久久av| 中文天堂在线一区| 欧美日韩在线播放三区四区| 另类小说综合欧美亚洲| 国产欧美一区二区三区在线看蜜臀| 不卡的av电影| 日本不卡视频在线观看| 国产精品88888| 亚洲成av人片| 一区二区三区欧美日| 国产精品家庭影院| 国产精品久久久久国产精品日日| 精品福利av导航| 精品国产一区二区三区忘忧草 | 在线观看91视频| 日本精品裸体写真集在线观看 | 久久99精品国产.久久久久| 爽好多水快深点欧美视频| 亚洲地区一二三色| 日韩精品电影在线| 日本va欧美va瓶| 久久精品99国产精品日本| 麻豆91精品视频| 国产一二精品视频| 粉嫩绯色av一区二区在线观看 | 欧美日韩亚洲综合| 99精品视频在线观看免费| 国产成人h网站| 91女神在线视频| 欧美午夜精品久久久| 制服丝袜日韩国产| 日韩视频免费观看高清完整版在线观看| 56国语精品自产拍在线观看| 在线成人午夜影院| 久久只精品国产| 18欧美亚洲精品| 午夜a成v人精品| 精品一区二区三区欧美| 丁香五精品蜜臀久久久久99网站 | 国产精品精品国产色婷婷| 成人免费在线播放视频| 亚洲成av人片www| 国产一区二区看久久| 欧美一区二区三区色| 色成年激情久久综合| 不卡的电影网站| 盗摄精品av一区二区三区| 国产一区二区三区国产| 久久国产精品99精品国产| 蜜臀精品久久久久久蜜臀| 日本视频一区二区| 日韩成人免费电影| 日韩精品欧美成人高清一区二区| 亚洲制服欧美中文字幕中文字幕| 亚洲裸体xxx| 亚洲激情五月婷婷| 亚洲在线观看免费视频| 亚洲一区中文在线| 亚洲成av人片www| 免费观看一级特黄欧美大片| 美女在线观看视频一区二区| 久久精工是国产品牌吗| 精品一区二区免费在线观看| 激情亚洲综合在线| 国产精品一色哟哟哟| 成人在线视频一区| 91色在线porny| 777奇米成人网| 精品国产乱码久久久久久浪潮| 欧美成人精品福利| 国产亚洲一二三区| 综合久久给合久久狠狠狠97色| 夜夜揉揉日日人人青青一国产精品| 午夜精品久久一牛影视| 精品中文字幕一区二区小辣椒| 国产精品一区二区你懂的| 99在线精品观看| 7777精品伊人久久久大香线蕉| 日韩区在线观看| 国产精品久久久久久久久快鸭| 亚洲综合另类小说| 极品少妇xxxx精品少妇| 成人精品鲁一区一区二区| 色综合久久久久网| 欧美一级黄色录像| 国产精品欧美一区二区三区| 亚洲一区二区视频| 国产麻豆成人传媒免费观看| 99久久精品一区| 日韩欧美色电影| 亚洲精品国产精华液| 久久精品国产99久久6| av网站一区二区三区| 日韩一区二区在线观看| 国产精品白丝在线| 麻豆91在线播放| 欧美亚洲国产一卡| 国产拍欧美日韩视频二区| 亚洲成人精品影院| av电影在线观看完整版一区二区| 777亚洲妇女| 亚洲欧美日韩国产综合| 精品一区二区三区在线播放视频|