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

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

?? sysalib.s

?? mtx604在vxworks下的bsp源代碼
?? S
?? 第 1 頁 / 共 2 頁
字號:
/* sysALib.s - Motorola PowerPC assembly routines *//* Copyright 1984-1999 Wind River Systems, Inc. *//* Copyright 1996,1997,1998,1999 Motorola, Inc. All Rights Reserved */        .data	.globl	copyright_wind_river	.long	copyright_wind_river/*modification history--------------------01b,08may01,pch  Add assembler abstractions (FUNC_EXPORT, FUNC_BEGIN, etc.)01a,08jun99,dmw  Ported from sysALib.s, 01t,21dec98.                 Cleaned up compiler warnings.*//*DESCRIPTIONThis module contains system-dependent routines written in assemblylanguage.This module must be the first specified in the \f3ld\f1 command used tobuild the system.  The sysInit() routine is the system start-up code.*/#define _ASMLANGUAGE#include "vxWorks.h"#include "sysLib.h"#include "config.h"#include "regs.h"	#include "asm.h"	/* globals */	FUNC_EXPORT(_sysInit)		/* start of system code */	FUNC_EXPORT(sysInByte)	FUNC_EXPORT(sysOutByte)	FUNC_EXPORT(sysIn16)	FUNC_EXPORT(sysOut16)	FUNC_EXPORT(sysIn32)	FUNC_EXPORT(sysOut32)        FUNC_EXPORT(sysPciRead32)        FUNC_EXPORT(sysPciWrite32)        FUNC_EXPORT(sysPciInByte)        FUNC_EXPORT(sysPciOutByte)        FUNC_EXPORT(sysPciInWord)        FUNC_EXPORT(sysPciOutWord)        FUNC_EXPORT(sysPciInLong)        FUNC_EXPORT(sysPciOutLong)        FUNC_EXPORT(sysMemProbeSup)        FUNC_EXPORT(sysProbeExc)	FUNC_EXPORT(sysL2crPut)	FUNC_EXPORT(sysL2crGet)	FUNC_EXPORT(sysHid1Get)	FUNC_EXPORT(sysSioRead)	FUNC_EXPORT(sysSioWrite)	/* externals */	.extern usrInit		.text/********************************************************************************* sysInit - start after boot** This 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/Avoid sysInit (void)          /@ THIS IS NOT A USER CALLABLE ROUTINE @/*/_sysInit:	/* disable external interrupts */	xor	p0, p0, p0        mtmsr   p0                      /* clear the MSR register  */        /* Zero-out registers: r0 & SPRGs */        xor     r0,r0,r0        mtspr   272,r0        mtspr   273,r0        mtspr   274,r0        mtspr   275,r0        /*         *      Set MPU/MSR to a known state         *      Turn on FP         */        andi.   r3, r3, 0        ori     r3, r3, 0x2000        sync        mtmsr   r3        isync        /* Init the floating point control/status register */        mtfsfi  7,0x0        mtfsfi  6,0x0        mtfsfi  5,0x0        mtfsfi  4,0x0        mtfsfi  3,0x0        mtfsfi  2,0x0        mtfsfi  1,0x0        mtfsfi  0,0x0        isync        /* Initialize the floating point data registers to a known state */        bl      ifpdrValue        .long   0x3f800000      /* 1.0 */ifpdrValue:        mfspr   r3,8        lfs     f0,0(r3)        lfs     f1,0(r3)        lfs     f2,0(r3)        lfs     f3,0(r3)        lfs     f4,0(r3)        lfs     f5,0(r3)        lfs     f6,0(r3)        lfs     f7,0(r3)        lfs     f8,0(r3)        lfs     f9,0(r3)        lfs     f10,0(r3)        lfs     f11,0(r3)        lfs     f12,0(r3)        lfs     f13,0(r3)        lfs     f14,0(r3)        lfs     f15,0(r3)        lfs     f16,0(r3)        lfs     f17,0(r3)        lfs     f18,0(r3)        lfs     f19,0(r3)        lfs     f20,0(r3)        lfs     f21,0(r3)        lfs     f22,0(r3)        lfs     f23,0(r3)        lfs     f24,0(r3)        lfs     f25,0(r3)        lfs     f26,0(r3)        lfs     f27,0(r3)        lfs     f28,0(r3)        lfs     f29,0(r3)        lfs     f30,0(r3)        lfs     f31,0(r3)        sync        /*         *      Set MPU/MSR to a known state         *      Turn off FP         */        andi.   r3, r3, 0        sync        mtmsr   r3        isync        /* Init the Segment registers */        andi.   r3, r3, 0        isync        mtsr    0,r3        isync        mtsr    1,r3        isync        mtsr    2,r3        isync        mtsr    3,r3        isync        mtsr    4,r3        isync        mtsr    5,r3        isync        mtsr    6,r3        isync        mtsr    7,r3        isync        mtsr    8,r3        isync        mtsr    9,r3        isync        mtsr    10,r3        isync        mtsr    11,r3        isync        mtsr    12,r3        isync        mtsr    13,r3        isync        mtsr    14,r3        isync        mtsr    15,r3        isync        /* Turn off the GLANCE - L2 Cache */        lis     r3, HI(SYS_REG_SXCCR_A)	ori	r3, r3, 0x8000  /* LO(SYS_REG_SXCCR_A) */        addis   r4, r0, 0x0        ori     r4, r4, 0x0070        stb     r4, 0x0(r3)        /* return from decrementer exceptions */        addis   p1, r0, 0x4c00        addi    p1, p1, 0x0064          /* load rfi (0x4c000064) to p1      */        stw     p1, 0x900(r0)           /* store rfi at 0x00000900          */	/* initialize the stack pointer */		lis     sp, HI(RAM_LOW_ADRS)	addi    sp, sp, LO(RAM_LOW_ADRS)	        /* Turn off data and instruction cache control bits */        mfspr   r3, HID0        isync        rlwinm  r4, r3, 0, 18, 15       /* r4 has ICE and DCE bits cleared */        sync        isync        mtspr   HID0, r4                /* HID0 = r4 */        isync        /* Get cpu type */        mfspr   r28, PVR        rlwinm  r28, r28, 16, 16, 31        /* invalidate the MPU's data/instruction caches */        lis     r3, 0x0        cmpli   0, 0, r28, CPU_TYPE_750        beq     cpuIs750        cmpli   0, 0, r28, CPU_TYPE_603        beq     cpuIs603        cmpli   0, 0, r28, CPU_TYPE_603E        beq     cpuIs603        cmpli   0, 0, r28, CPU_TYPE_603P        beq     cpuIs603        cmpli   0, 0, r28, CPU_TYPE_604R        bne     cpuNot604RcpuIs604R:        lis     r3, 0x0        mtspr   HID0, r3        /* disable the caches */        isync        ori     r4, r4, 0x0002  /* disable BTAC by setting bit 30 */cpuNot604R:        ori     r3, r3, 0x0C00          /* r3 has invalidate bits set */cpuIs603:        ori     r3, r3, 0xC000          /* r3 has enable and bits set */        or      r4, r4, r3              /* set bits */	sync	isync        mtspr   HID0, r4                /* HID0 = r4 */        andc    r4, r4, r3              /* clear bits */        isync        cmpli   0, 0, r28, CPU_TYPE_604        beq     cpuIs604        cmpli   0, 0, r28, CPU_TYPE_604E        beq     cpuIs604        cmpli   0, 0, r28, CPU_TYPE_604R        beq     cpuIs604        cmpli   0, 0, r28, CPU_TYPE_750        beq     cpuIs604        mtspr   HID0, r4        isync#ifdef USER_I_CACHE_ENABLE        b       iCacheOn603#else        b       cacheEnableDone#endifcpuIs750:#ifdef USER_I_CACHE_ENABLE        mfspr   r3,HID0        sync        addi    r4,r0,0x0800        or      r3,r4,r3        mtspr   HID0,r3         /* set ICFI (bit 16) */        sync        andc    r3,r3,r4        mtspr   HID0,r3         /* clear ICFI (bit 16) */        sync        addi    r4,r0,0xFFFFDFFF    /* Clear ILOCK (bit 18) */        and     r3,r3,r4        mtspr   HID0,r3        sync        ori     r3,r3,0x8000    /* Set ICE (bit 16) */        mtspr   HID0,r3        sync#endif        b       cacheEnableDonecpuIs604:        lis     r5, 0x0        ori     r5, r5, 0x1000        mtspr   CTR, r5loopDelay:        nop        bdnz    loopDelay        isync        mtspr   HID0, r4        isync        /* turn the Instruction cache ON */#ifdef USER_I_CACHE_ENABLE	        ori     r4, r4, 0x8800          /* set ICE & ICFI bit */        isync                           /* Synchronize for ICE enable */        b       writeR4iCacheOn603:        ori     r4, r4, 0x8800          /* set ICE & ICFI bit */        rlwinm  r3, r4, 0, 21, 19       /* clear the ICFI bit */        /*         * The setting of the instruction cache enable (ICE) bit must be         * preceded by an isync instruction to prevent the cache from being         * enabled or disabled while an instruction access is in progress.         */        isyncwriteR4:        mtspr   HID0, r4                /* Enable Instr Cache & Inval cache */        cmpli   0, 0, r28, CPU_TYPE_604        beq     cacheEnableDone        cmpli   0, 0, r28, CPU_TYPE_604E        beq     cacheEnableDone        cmpli   0, 0, r28, CPU_TYPE_604R        beq     cacheEnableDone        cmpli   0, 0, r28, CPU_TYPE_750        beq     cacheEnableDone        mtspr   HID0, r3                /* using 2 consec instructions */                                        /* PPC603 recommendation */#endifcacheEnableDone:        /* Enhance execution based on cpu type */        cmpli   0, 0, r28, CPU_TYPE_603        beq     raven3        cmpli   0, 0, r28, CPU_TYPE_603E        beq     raven3        cmpli   0, 0, r28, CPU_TYPE_603P        beq     raven3        /* enable branch history table for the 604 and 750 */        mfspr   r3, HID0        ori     r3, r3, _PPC_HID0_BHTE        cmpli   0, 0, r28, CPU_TYPE_750        beq     enhanceAll        /*	 * CPU is not 750 or 603x so it must be a 604x.         * Disable sequential instruction execution (go superscalar) and         * enable branch history table for the 604.         */        ori     r3, r3, _PPC_HID0_SIEDenhanceAll:        mtspr   HID0, r3/*  * Disable Raven3's Watchdog Timers. * * Note: Both of Raven3's Watchdog timers must be disabled at powerup. * Otherwise Watchdog Timer 1 will time out in 512 msec and interrupt the  * board, Watchdog Timer 2 will time out in 576 msec and reset the board. */raven3:        lis     r3,HI(RAVEN_BASE_ADRS)        ori     r3, r3, LO(RAVEN_BASE_ADRS)        isync                                   /* synchronize */        lbz     r4,RAVEN_MPC_REVID(r3)          /* read REVID register */        eieio                                   /* synchronize */        sync                                    /* synchronize */        cmpli   0,0,r4,0x3                      /* Raven version 3 or above? */        bc      12,0,nodiswdog                  /* skip if Raven2 or lower */        addis   r4,r0,0x0000                    /* disable Watchdog Timers */        ori     r4,r4,0x0055                    /* load PATTERN_1 */        isync                                   /* synchronize */        stb     r4, RAVEN_MPC_WDT1CNTL(r3)      /* arm Watchdog Timer 1 */        eieio                                   /* synchronize */        sync                                    /* synchronize */        addis   r4,r0,0x0000                    /* load PATTERN_2 */        ori     r4,r4,0xaa0f                    /* max resolution */        isync                                   /* synchronize */        sth     r4, RAVEN_MPC_WDT1CNTL(r3)      /* disable Timer 1 */        eieio                                   /* synchronize */        sync                                    /* synchronize */        addis   r4,r0,0x0000                    /* load PATTERN_1 */        ori     r4,r4,0x0055        isync                                   /* synchronize */        stb     r4,RAVEN_MPC_WDT2CNTL(r3)       /* arm Watchdog Timer 2 */        eieio                                   /* synchronize */        sync                                    /* synchronize */        addis   r4,r0,0x0000                    /* load PATTERN_2 */        ori     r4,r4,0xaa0f                    /* max resolution */        isync                                   /* synchronize */        sth     r4,RAVEN_MPC_WDT2CNTL(r3)       /* disable Timer2 */        eieio                                   /* synchronize */        sync                                    /* synchronize */nodiswdog:	/* disable instruction and data translations in the MMU */	sync	mfmsr	r3			/* get the value in msr *					/* clear bits IR and DR */		rlwinm	r4, r3, 0, _PPC_MSR_BIT_DR+1, _PPC_MSR_BIT_IR - 1		mtmsr	r4			/* set the msr */	sync				/* SYNC */	/* initialize the BAT register */	li	p3,0	 		/* clear p0 */		isync	mtspr	IBAT0U,p3		/* SPR 528 (IBAT0U) */	isync	mtspr	IBAT0L,p3		/* SPR 529 (IBAT0L) */	isync	mtspr	IBAT1U,p3		/* SPR 530 (IBAT1U) */	isync	mtspr	IBAT1L,p3		/* SPR 531 (IBAT1L) */	isync	mtspr	IBAT2U,p3		/* SPR 532 (IBAT2U) */	isync	mtspr	IBAT2L,p3		/* SPR 533 (IBAT2L) */	isync	mtspr	IBAT3U,p3		/* SPR 534 (IBAT3U) */	isync	mtspr	IBAT3L,p3		/* SPR 535 (IBAT3L) */	isync	mtspr	DBAT0U,p3		/* SPR 536 (DBAT0U) */	isync	mtspr	DBAT0L,p3		/* SPR 537 (DBAT0L) */	isync	mtspr	DBAT1U,p3		/* SPR 538 (DBAT1U) */	isync	mtspr	DBAT1L,p3		/* SPR 539 (DBAT1L) */	isync	mtspr	DBAT2U,p3		/* SPR 540 (DBAT2U) */	isync	mtspr	DBAT2L,p3		/* SPR 541 (DBAT2L) */	isync	mtspr	DBAT3U,p3		/* SPR 542 (DBAT3U) */	isync	mtspr	DBAT3L,p3		/* SPR 543 (DBAT3L) */	isync	/* invalidate entries within both TLBs */	li	p1,128	xor	p0,p0,p0		/* p0 = 0    */	mtctr	p1			/* CTR = 32  */	isync				/* context sync req'd before tlbie */sysALoop:	tlbie	p0	addi	p0,p0,0x1000		/* increment bits 15-19 */	bdnz	sysALoop		/* decrement CTR, branch if CTR != 0 */	sync				/* sync instr req'd after tlbie      */	/* initialize Small Data Area (SDA) start address */#if	FALSE				/* XXX TPR NO SDA for now */	lis     r2, HI(_SDA2_BASE_)	addi    r2, r2, LO(_SDA2_BASE_)	lis     r13, HI(_SDA_BASE_)	addi    r13, r13, LO(_SDA_BASE_)#endif	addi	sp, sp, -FRAMEBASESZ	/* get frame stack */	li      r3, BOOT_WARM_AUTOBOOT	b	usrInit			/* never returns - starts up kernel *//******************************************************************************* sysInByte - reads a byte from an address.** This function reads a byte from a specified address.** RETURNS: byte read from address** From a C point of view, the routine is defined as follows:UINT8 sysInByte    (    ULONG * addr 	/@ address of data @/    )*/sysInByte:	/*	Read byte from given address */	lbzx	r3,r0,r3	/*	Sync I/O operation */	eieio	/*	Return to caller */	bclr	20,0/*******************************************************************************

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久99精品国产麻豆婷婷 | 国产·精品毛片| 精品久久久久香蕉网| 国内外成人在线| 久久伊人蜜桃av一区二区| 国产精选一区二区三区| 国产精品色在线观看| 99久久精品国产一区| 国产精品影视在线观看| 日本一区二区三区四区| 91麻豆产精品久久久久久| 亚洲国产美女搞黄色| 91精品国产色综合久久不卡蜜臀 | 最新成人av在线| 色狠狠桃花综合| 日韩成人午夜电影| 国产日韩亚洲欧美综合| 91极品美女在线| 毛片av一区二区三区| 国产精品欧美一区二区三区| 日本韩国欧美在线| 激情综合网av| 亚洲精品国产无套在线观| 欧美日本在线一区| 国产.欧美.日韩| 亚洲成av人片在线观看| 久久久久久久电影| 欧美三区在线视频| 国产成人在线视频网址| 亚洲午夜久久久久久久久电影网| 欧美xxxxxxxxx| 一本大道av一区二区在线播放| 日韩精品成人一区二区三区| 国产精品全国免费观看高清| 欧美精品久久一区| 色综合久久久久综合体桃花网| 日韩va欧美va亚洲va久久| 亚洲国产成人午夜在线一区| 欧美一区在线视频| 色菇凉天天综合网| 国产一区二区按摩在线观看| 亚洲高清中文字幕| 中文字幕在线观看不卡| 日韩欧美国产午夜精品| 91久久人澡人人添人人爽欧美 | 午夜欧美在线一二页| 欧美国产日韩亚洲一区| 日韩视频一区在线观看| 91高清在线观看| 在线播放日韩导航| 北条麻妃国产九九精品视频| 六月丁香婷婷色狠狠久久| 一区二区在线观看免费视频播放| 国产三级精品三级| 欧美日韩高清一区二区| 欧美色图一区二区三区| 制服丝袜成人动漫| 99视频有精品| 国产一区二区三区观看| 天天综合色天天| 亚洲一区二区偷拍精品| 国产精品伦理在线| 国产亚洲成年网址在线观看| 日韩视频123| 欧美另类z0zxhd电影| 日本福利一区二区| 99久久99久久免费精品蜜臀| 国产suv精品一区二区6| 国产综合色产在线精品| 国内不卡的二区三区中文字幕 | 亚洲人成亚洲人成在线观看图片| 国产视频一区在线观看| 26uuu另类欧美亚洲曰本| 精品少妇一区二区三区在线播放| 6080国产精品一区二区| 欧美日韩国产一级片| 欧美日韩黄色影视| 在线观看91av| 欧美一三区三区四区免费在线看| 91精品国产福利| 欧美一级日韩不卡播放免费| 91精品国产一区二区三区蜜臀 | 亚洲香肠在线观看| 亚洲成人一区在线| 日韩高清一区二区| 极品美女销魂一区二区三区| 国产真实乱子伦精品视频| 国内精品久久久久影院薰衣草 | 色综合色综合色综合色综合色综合| 成人涩涩免费视频| 日韩精品中文字幕一区二区三区| 日韩一区二区在线看| 欧美成人在线直播| 国产亲近乱来精品视频| 中文字幕在线播放不卡一区| 国产精品高潮呻吟| 亚洲一区二区三区四区在线| 亚洲成av人片一区二区| 蜜臀91精品一区二区三区| 国产尤物一区二区| 99精品视频在线播放观看| 欧美优质美女网站| 91精品国产欧美一区二区| 日韩精品一区二区三区视频在线观看| 欧美α欧美αv大片| 中文一区二区在线观看| 亚洲午夜久久久久| 激情欧美一区二区| 91亚洲国产成人精品一区二区三 | 国产精品久久久久婷婷二区次| 亚洲另类在线一区| 麻豆免费精品视频| 成人久久18免费网站麻豆| 欧美影院一区二区三区| 精品久久久久久久久久久院品网| 国产精品视频一二| 五月激情六月综合| 国产91精品免费| 欧美三级在线播放| 日本一二三不卡| 天天色天天爱天天射综合| 成人高清视频在线观看| 欧美日韩国产首页| 国产精品欧美一级免费| 日韩影院在线观看| 99久久精品免费看| 2017欧美狠狠色| 性做久久久久久免费观看欧美| 国产精品白丝av| 欧美日韩一区二区在线观看| 国产欧美一区视频| 日本中文字幕一区| 色呦呦一区二区三区| 国产欧美日韩在线| 久久99国产乱子伦精品免费| 色88888久久久久久影院野外| 欧美精品一区二区三区在线播放 | 中文字幕一区av| 九色综合国产一区二区三区| 欧洲国内综合视频| 国产精品嫩草99a| 久久99精品久久久久婷婷| 色素色在线综合| 国产精品久久久久桃色tv| 精彩视频一区二区| 日韩网站在线看片你懂的| 亚洲成av人影院| 欧美视频三区在线播放| 日韩毛片高清在线播放| 国产成人av一区二区| 精品久久五月天| 美女看a上一区| 制服丝袜在线91| 爽好多水快深点欧美视频| 日本高清成人免费播放| 国产精品国产三级国产有无不卡 | 波多野结衣中文字幕一区二区三区| 日韩欧美资源站| 亚洲精品视频一区二区| 成人av中文字幕| 中文字幕av免费专区久久| 国产电影一区二区三区| 久久青草欧美一区二区三区| 欧美aa在线视频| 日韩三级中文字幕| 久久成人精品无人区| 3atv在线一区二区三区| 日韩成人伦理电影在线观看| 在线播放日韩导航| 男人操女人的视频在线观看欧美| 51午夜精品国产| 午夜精品久久久久久久99水蜜桃| 欧美自拍偷拍一区| 亚洲在线视频免费观看| 欧美乱熟臀69xxxxxx| 日韩中文字幕区一区有砖一区| 69堂成人精品免费视频| 美女视频黄 久久| 2021久久国产精品不只是精品| 国产激情视频一区二区三区欧美| 精品免费日韩av| 国产91精品久久久久久久网曝门| 日本一区二区三区国色天香| 色综合色综合色综合色综合色综合| 亚洲综合男人的天堂| 666欧美在线视频| 国产综合色视频| 亚洲欧美一区二区久久| 欧美日韩一区二区三区视频| 美女免费视频一区二区| 国产农村妇女毛片精品久久麻豆| av电影一区二区| 日本一区二区免费在线观看视频| 国产成人在线观看| 亚洲激情图片小说视频| 欧美一区二区三区男人的天堂| 激情综合色播激情啊| 中文字幕一区二区三区av| 欧美美女直播网站| 国产aⅴ精品一区二区三区色成熟|