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

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

?? sysalib.s

?? 三星官方基于VXWORKS的S3C2510的BSP
?? S
字號:
/* sysALib.s - Samsung SNDS100 system-dependent routines */

/* Copyright 1996-1998 Wind River Systems, Inc. */
        .data
	.globl  _copyright_wind_river
	.long   _copyright_wind_river

/*
modification history
--------------------
01a,20aug99,ak/knp adapted from pid7t BSP file
*/

/*

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"
#if (CPU == ARM710A)
#include "arch/arm/mmuArmLib.h"
#endif
#include "regs.h"
#include "sysLib.h"
#include "config.h"
#include "snds100.h"

/* internals */

	.globl	_sysInit		/* start of system code */
	.globl	_sysIntStackSplit	/* routine to split interrupt stack */

/* externals */

	.extern	_usrInit		/* system initialization routine */

	.extern	_vxSvcIntStackBase	/* base of SVC-mode interrupt stack */
	.extern	_vxSvcIntStackEnd	/* end of SVC-mode interrupt stack */
	.extern	_vxIrqIntStackBase	/* base of IRQ-mode interrupt stack */
	.extern	_vxIrqIntStackEnd	/* end of IRQ-mode interrupt stack */


/*******************************************************************************
*
* 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)

	/* disable interrupts and force SVC32 mode, just like reset */

	MRS	r1, cpsr
	BIC	r1, r1, #MASK_MODE
	ORR	r1, r1, #MODE_SVC32 | I_BIT | F_BIT
	MSR	cpsr, r1

	/*
	 * CPU INTERRUPTS DISABLED
	 *
	 * disable individual interrupts in the interrupt controller
	 */
	LDR	r2, L$_SndsIntmsk			/* R2->interrupt controller */
	MVN	r1, #0				/* &FFFFFFFF */
	STR	r1, [r2]			/* disable all interrupt soucres */

	/* 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			/* initialise frame pointer */
	MOV	r0, #BOOT_WARM_AUTOBOOT	/* pass startType */

#if	(CPU == ARM7TDMI_T)
	LDR	r12, L$_usrInit
	BX	r12
#else
	B	_usrInit
#endif	/* (CPU == ARM7TDMI_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 == ARM7TDMI_T)
	BX	lr
#else
	MOV	pc, lr
#endif	/* (CPU == ARM7TDMI_T) */

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

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

	.balign	4

L$_vxSvcIntStackBase:
	.long	_vxSvcIntStackBase

L$_vxSvcIntStackEnd:
	.long	_vxSvcIntStackEnd

L$_vxIrqIntStackBase:
	.long	_vxIrqIntStackBase

L$_vxIrqIntStackEnd:
	.long	_vxIrqIntStackEnd

#if	(CPU == ARM7TDMI_T)
L$_usrInit:
	.long	_usrInit
#endif	/* (CPU == ARM7TDMI_T) */

#if	(CPU == ARM710A)
L$_sysCacheSwapVar:
	.long   sysCacheSwapVar
#endif

L$_STACK_ADDR:
	.long	_sysInit

L$_SndsIntmsk:
	.long SNDS_INTMASK

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲综合色成人| 成人av资源网站| 成人动漫视频在线| 欧美高清激情brazzers| 精品国产一区二区三区久久久蜜月 | 亚洲精品欧美激情| 国产一区二区导航在线播放| 欧美日韩在线观看一区二区 | 欧美电视剧在线看免费| 亚洲一二三四在线观看| 成人听书哪个软件好| 欧美成人伊人久久综合网| 亚洲影院理伦片| 99国产欧美久久久精品| 久久九九久精品国产免费直播| 天天亚洲美女在线视频| 91麻豆国产精品久久| 亚洲国产高清不卡| 国产一区二区调教| 精品1区2区在线观看| 日本在线不卡一区| 欧美伦理影视网| 亚洲成人av一区二区| 99久久精品免费看国产 | 综合av第一页| 成人久久视频在线观看| 中文字幕不卡的av| 成人av午夜影院| 中文字幕一区二区三区四区不卡| 国产一区久久久| 久久人人超碰精品| 国产91精品久久久久久久网曝门| 久久婷婷色综合| 国产传媒日韩欧美成人| 国产精品视频看| 成人福利在线看| 中文字幕一区二区三| av在线不卡电影| 一区二区三区色| 欧美日韩二区三区| 午夜精品久久久久久久| 日韩视频一区二区三区在线播放 | 欧美日韩另类一区| 日韩电影一区二区三区| 日韩视频在线永久播放| 国产在线观看免费一区| 久久女同性恋中文字幕| 懂色中文一区二区在线播放| 中文字幕一区二区三区在线不卡| 91浏览器在线视频| 婷婷成人激情在线网| 欧美mv和日韩mv的网站| 成人av影院在线| 亚洲一区免费在线观看| 日韩三级高清在线| 懂色av一区二区三区免费观看| 国产精品国产三级国产a| 欧美自拍偷拍午夜视频| 欧美a级理论片| 国产精品嫩草99a| 欧美另类videos死尸| 久久成人免费日本黄色| 中文字幕一区二区视频| 正在播放亚洲一区| 懂色av一区二区在线播放| 亚洲午夜在线电影| 久久九九影视网| 欧美日韩精品系列| 国产成人综合亚洲网站| 一区二区三区不卡在线观看| 精品国产不卡一区二区三区| 99久久婷婷国产综合精品| 强制捆绑调教一区二区| 国产精品蜜臀在线观看| 欧美高清www午色夜在线视频| 国产一区二区三区久久久| 亚洲综合色视频| 欧美激情一区二区在线| 欧美精品乱码久久久久久| 不卡在线观看av| 美女精品一区二区| 亚洲一区二区精品久久av| 久久久久久久精| 欧美一区二区不卡视频| 99精品欧美一区二区蜜桃免费| 日韩av在线发布| 亚洲免费在线视频一区 二区| 精品少妇一区二区三区视频免付费 | 国产另类ts人妖一区二区| 性久久久久久久久| 亚洲精品高清在线观看| 国产欧美日韩综合精品一区二区| 欧美日韩国产高清一区二区| 99久久综合国产精品| 韩国欧美国产一区| 蜜臀av性久久久久av蜜臀妖精 | 自拍偷自拍亚洲精品播放| 久久综合国产精品| 欧美一级夜夜爽| 欧美另类一区二区三区| 在线观看免费成人| 91美女在线视频| 色婷婷av一区二区三区大白胸| 韩国理伦片一区二区三区在线播放| 一区二区三区精品| 夜夜嗨av一区二区三区中文字幕| 1024精品合集| 亚洲色欲色欲www| 国产精品久久毛片av大全日韩| 精品成人在线观看| 欧美大片免费久久精品三p| 91精品国产色综合久久| 欧美日高清视频| 欧美色视频一区| 欧美性xxxxxxxx| 欧美视频精品在线观看| 欧美日韩美少妇| 日韩视频免费直播| 欧美r级电影在线观看| 久久综合色8888| 国产午夜精品理论片a级大结局| 久久这里都是精品| 久久久久久免费网| 中文字幕av一区 二区| 亚洲视频在线观看一区| 亚洲日本中文字幕区| 亚洲国产精品一区二区www在线| 亚洲午夜三级在线| 日本在线不卡视频一二三区| 麻豆视频观看网址久久| 国产乱码字幕精品高清av | 狠狠色丁香婷婷综合久久片| 韩国成人在线视频| 成人性生交大片| 99精品偷自拍| 欧美美女bb生活片| 久久视频一区二区| 亚洲色图清纯唯美| 日韩专区欧美专区| 精品一区二区影视| 成人a级免费电影| 欧美日韩一区二区在线观看| 欧美一区午夜视频在线观看| 精品剧情v国产在线观看在线| 国产欧美日本一区二区三区| 亚洲一区二区三区激情| 美女免费视频一区| 91视视频在线直接观看在线看网页在线看 | 国产一区二区福利视频| 91色乱码一区二区三区| 欧美精品自拍偷拍动漫精品| 久久久国际精品| 亚洲高清免费观看| 国产精品99久| 8v天堂国产在线一区二区| 国产午夜精品在线观看| 婷婷综合另类小说色区| 成人性生交大片免费看中文| 欧美日韩国产欧美日美国产精品| 久久精品欧美一区二区三区麻豆| 一区二区三区中文字幕| 国产精品77777竹菊影视小说| 欧美亚洲国产怡红院影院| www亚洲一区| 午夜影院久久久| 成人黄色小视频| 欧美videos中文字幕| 一区二区三区毛片| 成人a免费在线看| 久久综合五月天婷婷伊人| 香蕉影视欧美成人| 色一情一伦一子一伦一区| 国产亚洲美州欧州综合国| 日韩av电影天堂| 欧美日韩一区二区不卡| 一区在线观看免费| 国产精品白丝jk黑袜喷水| 56国语精品自产拍在线观看| 亚洲欧美日韩中文字幕一区二区三区 | 亚洲成人综合网站| 96av麻豆蜜桃一区二区| 国产性天天综合网| 国产一区二区电影| 精品福利在线导航| 麻豆成人av在线| 538prom精品视频线放| 亚洲国产日韩a在线播放性色| 91日韩一区二区三区| 中文字幕亚洲电影| 成人免费av在线| 中文一区在线播放| 国产精品一区一区三区| 精品电影一区二区三区| 激情欧美一区二区| 精品精品国产高清一毛片一天堂| 免费在线观看不卡| 精品少妇一区二区三区在线视频 | 成人h精品动漫一区二区三区| 国产日韩精品久久久| 国产激情视频一区二区三区欧美 |