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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? cpvsystemconfig.c

?? VxWorks下 Cpv3060的BSP源代碼
?? C
字號(hào):
/* cpvSystemConfig.c - Motorola CPV3060 board sytem configuration *//* Copyright 1998-2001 Wind River Systems, Inc. *//* Copyright 1998,2000 Motorola, Inc., All Rights Reserved *//*modification history--------------------01m,16sep01,dat  Use of WRS_ASM macro01l,05dec00,rhk  cleanup to comply with WRS coding standards.01k,06jun99,krp  'bclr' short circuits stack cleanup with optimization                 turned off01j,09aug99,rhk  modified the file to support the standardized Motorola		 VPD routines, only the cpvMemcConfig routine is necessary.01i,16jul99,rhk  modified code for SDRAM sizing.01h,15jul99,rhk  code review cleanup.01g,09jul99,rhk  removed DIMM code from file, updated setup of global		 variables for cpv3060 (in both DPRAM and system globals),		 added code to init SDRAM and configure the memory banks.		 Added sysCpvMsDelay routine.01f,09jun99,srr  changed to support cpv3060.01e,02oct98,rhk  changed large case statements for setting DIMM size,		 banks to if-then-else usage due to possible HW problem.01d,30sep98,rhk  added masking of bits when setting up the BR/OR 1-3 		 registers in cpvMemcConfig.  Added code to reconfigure		 the MAMR register value based on # of memory banks.01c,18sep98,rhk  modified parsing algorithm in cpdVpdValueGet01b,16sep98,rhk  added default DRAM speed setup tp cpvConfigParamsGet01a,01sep98,rhk  written.*//*DESCRIPTIONSystem configuration routines written in C that are called from romInit.sand sysMotVpdCpv3060.c. *//* includes */#include "vxWorks.h"/* defines */#ifndef SYNC#   define SYNC  WRS_ASM("sync")#endif /* SYNC *//* typedefs *//* globals */LOCAL UINT32 sysCpvGetDec(void);void sysCpvMsDelay (UINT mSeconds);/* externals */IMPORT int	abs ();/* locals *//********************************************************************************* cpvMemcConfig - configure the MEMC registers** This routine will perform the final adjustments to the Memory* Controller Bank/Option registers.** RETURNS: N/A*/void cpvMemcConfig(void)    {    UINT32 temp;    UINT32 banks;    /* determine the number of SDRAM banks present */    banks = 1;    if (sysConfigOptions.sdram)	banks = 2;    if (banks == 2)        *MAMR( INTERNAL_MEM_MAP_ADDR ) = (0x0c000000 | MAMR_PTBE |					  MAMR_RLFB_2X | MAMR_WLFB_8X |					  MAMR_TLFB_1X );        /* finish initializing the SDRAM, do the second bank if present */    if (banks == 2)	{	*MCR( INTERNAL_MEM_MAP_ADDR ) = (MCR_OP_RUN | MCR_MB_CS1 |                                          MCR_MCLF_1X | UPMA_READ_OFFSET);	SYNC;	*MCR( INTERNAL_MEM_MAP_ADDR ) = (MCR_OP_RUN | MCR_MB_CS1 |					 MCR_MCLF_1X | UPMA_BURST_WR_OFFSET);	SYNC;	*MAR( INTERNAL_MEM_MAP_ADDR ) = 0x00000088;	*MCR( INTERNAL_MEM_MAP_ADDR ) = (MCR_OP_RUN | MCR_MB_CS1 |					 MCR_MCLF_1X | UPMA_WRITE_OFFSET);	SYNC;	}    /* resize and enable the SDRAM memory banks */    if (sysSdramSize == MEM_SIZE_32MB)	{	if (banks == 1)	    {            *OR2( INTERNAL_MEM_MAP_ADDR ) =                                        ((~(MEM_SIZE_32MB)+1) | OR_ACS_DIV4);            *BR2( INTERNAL_MEM_MAP_ADDR ) = (BR_MS_UPMA | BR_V);            }	else	    {            *OR1( INTERNAL_MEM_MAP_ADDR ) =                                        ((~(MEM_SIZE_16MB)+1) | OR_ACS_DIV4);            *BR1( INTERNAL_MEM_MAP_ADDR ) = (MEM_SIZE_16MB | BR_MS_UPMA | BR_V);	    }	}    else if (sysSdramSize == MEM_SIZE_64MB)	{	if (banks == 1)	    {	    *OR2( INTERNAL_MEM_MAP_ADDR ) =                                        ((~(MEM_SIZE_64MB)+1) | OR_ACS_DIV4);	    *BR2( INTERNAL_MEM_MAP_ADDR ) = (BR_MS_UPMA | BR_V);	    }	else	    {	    *OR2( INTERNAL_MEM_MAP_ADDR ) =                                        ((~(MEM_SIZE_32MB)+1) | OR_ACS_DIV4);            *OR1( INTERNAL_MEM_MAP_ADDR ) =                                        ((~(MEM_SIZE_32MB)+1) | OR_ACS_DIV4);            *BR2( INTERNAL_MEM_MAP_ADDR ) = (BR_MS_UPMA | BR_V);            *BR1( INTERNAL_MEM_MAP_ADDR ) = (MEM_SIZE_32MB | BR_MS_UPMA | BR_V);            }	}    else if (sysSdramSize == MEM_SIZE_128MB)	{        *OR2( INTERNAL_MEM_MAP_ADDR ) = ((~(MEM_SIZE_64MB)+1) | OR_ACS_DIV4);        *OR1( INTERNAL_MEM_MAP_ADDR ) = ((~(MEM_SIZE_64MB)+1) | OR_ACS_DIV4);        *BR2( INTERNAL_MEM_MAP_ADDR ) = (BR_MS_UPMA | BR_V);        *BR1( INTERNAL_MEM_MAP_ADDR ) = (MEM_SIZE_64MB | BR_MS_UPMA | BR_V);	}    /* if QSPAN is present, then enable the valid bits for the PCI banks */    if (sysConfigOptions.pci)        {        temp = *BR5(INTERNAL_MEM_MAP_ADDR) | BR_V;        *BR5(INTERNAL_MEM_MAP_ADDR) = temp;        temp = *BR6(INTERNAL_MEM_MAP_ADDR) | BR_V;        *BR6(INTERNAL_MEM_MAP_ADDR) = temp;        }    /*     * delay for 10MS to allow SDRAM to settle     * Enable the decrementer before the delay.     * Disable the decrementer after the delay.     */    * TBSCR(INTERNAL_MEM_MAP_ADDR) = TBSCR_TBE | TBSCR_TBF;    sysCpvMsDelay (10);    * TBSCR(INTERNAL_MEM_MAP_ADDR) &= ~TBSCR_TBE;    }/******************************************************************************** sysCpvMsDelay - delay for the specified amount of time (MS)** This routine will delay for the specified amount of time by counting* decrementer ticks.** This routine is not dependent on a particular rollover value for* the decrementer, it should work no matter what the rollover* value is.** A small amount of count may be lost at the rollover point resulting in* the sysCpvMsDelay() causing a slightly longer delay than requested.** This routine will produce incorrect results if the delay time requested* requires a count larger than 0xffffffff to hold the decrementer* elapsed tick count.  For a System Bus Speed of 67 MHZ this amounts to* about 258 seconds.** RETURNS: N/A*/void sysCpvMsDelay    (    UINT        delay            /* length of time in MS to delay */    )    {    register UINT32 oldval;      /* decrementer value */    register UINT32 newval;      /* decrementer value */    register UINT32 totalDelta;  /* Dec. delta for entire delay period */    register UINT32 decElapsed;  /* cumulative decrementer ticks */    /* Calculate delta of decrementer ticks for desired elapsed time. */    totalDelta = ((sysCpuSpeed / DEC_CLK_TO_INC) / 1000) *delay;    /*     * Now keep grabbing decrementer value and incrementing "decElapsed" until     * we hit the desired delay value.  Compensate for the fact that we may     * read the decrementer at 0xffffffff before the interrupt service     * routine has a chance to set in the rollover value.     */    decElapsed = 0;    oldval = sysCpvGetDec();    while (decElapsed < totalDelta)        {        newval = sysCpvGetDec();        if ( DELTA(oldval,newval) < 1000 )            decElapsed += DELTA(oldval,newval);  /* no rollover */        else            if (newval > oldval)                decElapsed += abs((int)oldval);  /* rollover */        oldval = newval;        }  }/******************************************************************************** sysCpvGetDec - read from the Decrementer register SPR22.** This routine will read the contents the decrementer (SPR22)** RETURNS: value of SPR22 (in r3)*/LOCAL UINT32 sysCpvGetDec(void)    {    return vxDecGet();    }

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av在线不卡网| 欧美在线视频日韩| 午夜激情久久久| 精品99久久久久久| 欧美色欧美亚洲另类二区| 精品一区二区在线观看| 亚洲精品国产精品乱码不99| 26uuu亚洲综合色欧美| 欧美自拍偷拍一区| 成人a免费在线看| 久久99精品国产.久久久久久| 一区二区在线观看免费| 中文字幕电影一区| 欧美v亚洲v综合ⅴ国产v| 色综合色狠狠综合色| 国产精品一区不卡| 麻豆91免费观看| 日本欧美大码aⅴ在线播放| 亚洲美女视频在线观看| 国产精品人妖ts系列视频| 日韩欧美一级片| 在线成人高清不卡| 欧美色精品在线视频| 色八戒一区二区三区| 国产成人av一区二区三区在线 | 欧美三级日韩三级| av亚洲产国偷v产偷v自拍| 国产永久精品大片wwwapp| 久久99这里只有精品| 秋霞午夜av一区二区三区| 天天综合网 天天综合色| 亚洲一区二区四区蜜桃| 亚洲精品伦理在线| 18欧美乱大交hd1984| 中文无字幕一区二区三区| 久久精品人人做人人爽97| 欧美精品一区二区三区在线播放| 精品少妇一区二区三区日产乱码| 日韩女优av电影| 欧美成人艳星乳罩| xf在线a精品一区二区视频网站| 欧美xfplay| 久久久蜜桃精品| 久久亚洲精品国产精品紫薇| 日韩精品一区二区三区中文精品| 欧美一区二区视频在线观看| 日韩免费一区二区三区在线播放| 日韩午夜电影在线观看| 777奇米四色成人影色区| 欧美一级国产精品| 欧美不卡一区二区| 精品处破学生在线二十三| 久久久久久**毛片大全| 国产精品美女久久久久久| 亚洲精品国产无天堂网2021| 亚洲国产wwwccc36天堂| 美女网站在线免费欧美精品| 精品在线播放免费| 北条麻妃国产九九精品视频| 色综合久久久久网| 欧美日韩成人在线一区| 欧美成人激情免费网| 国产女人水真多18毛片18精品视频| 中文一区一区三区高中清不卡| 亚洲激情图片qvod| 日本不卡在线视频| 国产老妇另类xxxxx| 国产69精品久久99不卡| 日本二三区不卡| 日韩一区二区三区av| 国产日本一区二区| 亚洲一区免费视频| 久久99精品久久久久久国产越南 | 成人精品国产福利| 欧洲精品在线观看| 精品日韩一区二区三区| 国产精品久线在线观看| 日韩电影在线一区二区| 成人免费观看男女羞羞视频| 欧美日韩精品三区| 亚洲国产精品精华液ab| 五月综合激情婷婷六月色窝| 国产福利一区二区三区| 欧美日韩精品欧美日韩精品| 国产日韩三级在线| 性做久久久久久久免费看| 国产成人精品三级| 欧美狂野另类xxxxoooo| 国产精品丝袜黑色高跟| 热久久国产精品| 日本精品免费观看高清观看| 久久蜜桃香蕉精品一区二区三区| 亚洲午夜成aⅴ人片| 成人午夜在线免费| 日韩欧美黄色影院| 亚洲午夜电影在线| 成人综合在线观看| 精品成人一区二区| 日韩国产在线一| 色综合天天做天天爱| 国产性天天综合网| 日韩国产精品91| 在线观看免费一区| 成人免费在线视频| 国产精品夜夜嗨| 精品欧美黑人一区二区三区| 亚洲一区国产视频| av中文字幕亚洲| 久久久久高清精品| 美腿丝袜亚洲色图| 欧美日韩亚洲综合一区二区三区| 国产精品全国免费观看高清| 狠狠色狠狠色综合日日91app| 欧美日韩在线综合| 亚洲精选视频在线| av激情综合网| 国产精品美女一区二区三区| 激情国产一区二区| 日韩欧美一级二级三级久久久| 亚洲国产精品影院| 色偷偷久久一区二区三区| 亚洲欧洲另类国产综合| 成人高清免费观看| 欧美激情在线一区二区| 国产黄人亚洲片| 欧美激情一区二区三区不卡| 国产精品亚洲一区二区三区在线 | 欧美一区二区三区不卡| 亚洲电影视频在线| 欧美图片一区二区三区| 亚洲免费视频中文字幕| 91免费在线视频观看| 国产精品第五页| 91女厕偷拍女厕偷拍高清| 亚洲女与黑人做爰| 在线一区二区三区四区| 亚洲国产精品一区二区www在线| 在线观看视频一区| 天天综合网天天综合色| 91精品欧美久久久久久动漫 | 精品成人私密视频| 国产麻豆精品视频| 日本一区二区三区免费乱视频 | 婷婷激情综合网| 日韩一区国产二区欧美三区| 精品一区二区综合| 国产亚洲一区二区三区四区| 成人激情免费网站| 亚洲精品中文在线影院| 欧美在线一二三四区| 日本不卡一区二区| 精品福利一区二区三区免费视频| 国产精品69毛片高清亚洲| 中文文精品字幕一区二区| 日本电影欧美片| 免费在线观看视频一区| 久久综合久久鬼色| av中文字幕一区| 亚洲一二三四区不卡| 日韩欧美国产综合| 粉嫩aⅴ一区二区三区四区五区| 亚洲欧美色一区| 欧美肥妇free| 丁香婷婷深情五月亚洲| 国产精品二三区| 91精品国产一区二区三区香蕉| 极品少妇一区二区三区精品视频 | 5月丁香婷婷综合| 激情综合网av| 依依成人精品视频| 欧美成人三级电影在线| 99久久精品国产导航| 日韩精品乱码免费| 国产精品美女久久久久aⅴ| 欧美中文字幕亚洲一区二区va在线 | 午夜精品久久久久久久久久久 | 欧美在线观看一区| 国产一区二区视频在线| 亚洲欧美日韩国产综合| 欧美一卡二卡三卡| 粉嫩av亚洲一区二区图片| 午夜精品123| 中文字幕第一区二区| 日韩一级片网址| 色综合一区二区| 国产精品一区二区你懂的| 亚洲午夜精品一区二区三区他趣| 久久久久久亚洲综合影院红桃| 欧美私人免费视频| 高清国产一区二区| 蜜桃一区二区三区在线观看| 亚洲欧美日韩系列| 久久男人中文字幕资源站| 欧美二区三区的天堂| 一本一道久久a久久精品| 精品无码三级在线观看视频| 午夜精品久久久久久久久| 亚洲色图丝袜美腿| 久久影院视频免费| 制服丝袜亚洲色图|