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

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

?? sysalib.s

?? 三星公司出arm7內核4510VXWORKS環境下驅動開發包
?? 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一区二区三区免费野_久草精品视频
日韩欧美激情四射| 欧美一区二视频| 99久久精品免费看国产免费软件| 狠狠狠色丁香婷婷综合激情 | 欧美喷水一区二区| 欧美亚洲自拍偷拍| 日韩欧美在线观看一区二区三区| 精品人在线二区三区| 日韩国产成人精品| 久久先锋资源网| 亚洲欧美在线视频| 亚洲一区在线电影| 精品亚洲国内自在自线福利| 国产99久久久国产精品潘金网站| 99久久久国产精品| 欧美xingq一区二区| 亚洲日本va午夜在线电影| 舔着乳尖日韩一区| 不卡av电影在线播放| 91精品国产综合久久久久久久久久| 欧美一区午夜视频在线观看| 18欧美乱大交hd1984| 免费人成在线不卡| 在线观看日韩av先锋影音电影院| 日韩午夜在线影院| 亚洲午夜久久久久久久久电影院| 精品在线免费视频| 56国语精品自产拍在线观看| 中文字幕制服丝袜一区二区三区| 免费成人在线观看视频| 91成人免费电影| 亚洲欧美日韩中文播放 | 老司机精品视频线观看86| 99久久精品情趣| 最新国产の精品合集bt伙计| 国产成人av电影在线| 欧美成人激情免费网| 麻豆精品在线看| 日韩欧美另类在线| 麻豆精品久久精品色综合| 欧美伊人久久久久久久久影院| 婷婷综合在线观看| 亚洲天堂精品视频| 2023国产精华国产精品| www亚洲一区| 91丝袜呻吟高潮美腿白嫩在线观看| 亚洲影视在线播放| 国产精品美女久久久久久久久| 9191国产精品| 欧亚洲嫩模精品一区三区| 高清不卡一区二区在线| 亚洲电影一级片| 欧美大片拔萝卜| 久久福利资源站| 国产精品国产精品国产专区不蜜| 色美美综合视频| 麻豆国产精品视频| 中文在线一区二区| 欧美日韩一区二区三区不卡 | 91久久精品一区二区二区| 免费成人在线影院| 综合中文字幕亚洲| 久久青草国产手机看片福利盒子| 色综合久久久久网| 精品一区二区在线免费观看| 亚洲一区二区三区激情| 国产喷白浆一区二区三区| 欧美日产在线观看| 91精品1区2区| 色综合久久99| 成人免费精品视频| 国产精品一区专区| 久久99精品久久久久久动态图| 蜜桃视频一区二区三区在线观看| 美国欧美日韩国产在线播放| 一本大道久久a久久综合| 国产精品福利一区| 日韩亚洲欧美成人一区| 亚洲第一狼人社区| 久久精品亚洲精品国产欧美kt∨| 一本色道久久综合亚洲aⅴ蜜桃| 日韩专区中文字幕一区二区| 久久久久久久久久久99999| 日韩午夜在线观看| 日韩欧美一二三四区| 欧美一区午夜视频在线观看 | 日韩一区二区三区在线视频| 99精品热视频| 在线观看日韩高清av| 一本久久精品一区二区| 91成人看片片| 欧美日韩大陆在线| 在线成人小视频| 精品第一国产综合精品aⅴ| 亚洲精品在线观看网站| 国产三级久久久| 国产精品视频在线看| 一区二区三区丝袜| 日本亚洲电影天堂| 成人性生交大片| 欧美性猛交xxxxxx富婆| 精品乱人伦小说| 国产精品麻豆视频| 天堂av在线一区| 国产成人精品一区二区三区网站观看| 国产成人精品影院| 欧美电影影音先锋| 国产精品水嫩水嫩| 首页欧美精品中文字幕| 丁香婷婷综合网| 欧美精品vⅰdeose4hd| 欧美激情综合在线| 奇米色一区二区| 在线看一区二区| 中日韩免费视频中文字幕| 亚洲国产另类精品专区| 风间由美中文字幕在线看视频国产欧美 | 亚洲成a人片在线不卡一二三区| 麻豆极品一区二区三区| 91国产精品成人| 国产精品美女久久久久久| 国产真实乱对白精彩久久| 911精品国产一区二区在线| 国产精品久久久久久久久图文区| 美腿丝袜亚洲色图| 欧美一区二视频| 免费看黄色91| 精品久久久久久亚洲综合网| 亚洲与欧洲av电影| 欧美性一区二区| 亚洲高清在线视频| 制服丝袜亚洲精品中文字幕| 亚洲国产精品久久久男人的天堂| 欧美午夜寂寞影院| 婷婷开心激情综合| 日韩精品一区二区三区四区| 久久成人免费网| 日本一区二区三区国色天香 | 亚洲乱码精品一二三四区日韩在线 | 成人国产精品免费| 亚洲精品国产高清久久伦理二区| 欧美丝袜丝交足nylons| 日韩成人伦理电影在线观看| 日韩小视频在线观看专区| 国产精品99久久久久久似苏梦涵 | 91免费看`日韩一区二区| 一区二区三区91| 久久精品视频免费| 欧洲精品视频在线观看| 麻豆一区二区在线| 亚洲天堂精品视频| 日韩欧美成人一区二区| 99久久婷婷国产精品综合| 亚洲va国产天堂va久久en| 国产色产综合产在线视频| 欧美性猛交xxxxxx富婆| 国产盗摄女厕一区二区三区| 亚洲成人激情社区| 国产精品国产三级国产aⅴ中文 | 日韩国产一二三区| 1024国产精品| 国产片一区二区三区| 日韩一级完整毛片| 欧美性受xxxx黑人xyx性爽| 本田岬高潮一区二区三区| 久久99精品网久久| 麻豆国产欧美日韩综合精品二区| 中文字幕成人网| 精品国产sm最大网站免费看| 久久综合av免费| 午夜影视日本亚洲欧洲精品| 免费观看一级欧美片| 午夜不卡在线视频| 黄色日韩三级电影| 91欧美激情一区二区三区成人| 欧美日韩一区二区三区四区五区 | 国产精品福利影院| 日韩精品每日更新| 成人综合婷婷国产精品久久免费| 色乱码一区二区三区88| 国产亚洲成av人在线观看导航| 国产精品污网站| 免费三级欧美电影| 91麻豆6部合集magnet| 精品国产91洋老外米糕| 日韩毛片在线免费观看| 日韩精品成人一区二区三区| 成人视屏免费看| 欧美一区二区三区在线视频| 国产精品短视频| 久久精品国内一区二区三区| 欧美日韩一区不卡| 亚洲色图一区二区三区| 日韩国产精品大片| 欧美亚洲一区三区| 一区二区三区在线播放| 色综合久久中文字幕| 国产午夜亚洲精品羞羞网站| 天涯成人国产亚洲精品一区av| 丁香婷婷综合网|