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

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

?? systffs.c

?? powerpc 系列cpu mpc860ads vxworks BSP 得花錢買的
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* sysTffs.c - Motorola 860ads system-dependent TrueFFS library *//* Copyright 1984-1997 Wind River Systems, Inc. */#include "copyright_wrs.h"/*modification history--------------------01l,29jan02,dtr  Changing vxImmrGet to vxImmrIsbGet.01k,15nov01,dtr  Put in #if defined to retain file dependencies for make.01j,31may99,yp   Added comments suggested in SPR #2531901i,21apr98,yp   added tffs subdir to search path01h,11mar98,yp   made including tffsConfig.c conditional so man page                 generation does not include it.01g,09mar98,kbw  fixed a flub I missed in the sysTffsFormat function01f,09mar98,kbw  made man page edits to fix problems found by QE01e,04mar98,kbw  made man page edits01d,18jan98,hdn  added configuration macros for SIMM and PCMCIA.01c,18dec97,hdn  added comment.  cleaned up.01b,05dec97,hdn  added flDelayMsecs(), tffsSocket[]. cleaned up.01a,05nov97,hdn  written.*//*DESCRIPTIONThis library provides board-specific hardware access routines for TrueFFS.In effect, these routines comprise the socket component driver (or drivers)for your flash device hardware.  At socket registration time, TrueFFS storespointers to the functions of this socket component driver in an 'FLSocket'structure.  When TrueFFS needs to access the flash device, it uses thesefunctions.  Because this file is, for the most part, a device driver that exports itsfunctionality by registering function pointers with TrueFFS, very few of thefunctions defined here are externally callable.  For the record, theseexternal functions are flFitInSocketWindow() and flDelayLoop().  You shouldnever have any need to call these functions. However, one of the most import functions defined in this file is neitherreferenced in an 'FLSocket' structure, nor is it externally callable.  Thisfunction is sysTffsInit().  TrueFFS calls this function at initializationtime to register socket component drivers for all the flash devices attachedto your target.  It is this call to sysTffs() that results in assigningdrive numbers to the flash devices on your target hardware.  Drive numbersare assigned by the order in which the socket component drivers are registered.The first to be registered is drive 0, the second is drive 1, and so on up to4.  As shipped, TrueFFS supports up to five flash drives. After registering socket component drivers for a flash device, you mayformat the flash medium even though there is not yet a block device driverassociated with the flash (see the reference entry for the tffsDevCreate()routine).  To format the flash medium for use with TrueFFS,call tffsDevFormat() or, for some BSPs, sysTffsFormat(). The sysTffsFormat() routine is an optional but BSP-specific externallycallable helper function.  Internally, it calls tffsDevFormat() with apointer to a 'FormatParams' structure initialized to values that leave aspace on the flash device for a boot image. This space is outside theregion managed by TrueFFS.  This special region is necessary for bootimages because the normal translation and wear-leveling services of TrueFFSare incompatible with the needs of the boot program and the boot image itrelies upon.  To write a boot image (or any other data) into this area,use tffsBootImagePut().  Finally, this file also contains define statements for symbolic constantsthat determine which MTDs, translation layer modules, and other utilitiesare ultimately included in TrueFFS.  These defines are as follows:.IP "INCLUDE_TL_NFTL"To include the NAND-based translation layer module..IP "INCLUDE_TL_FTL"To include the NOR-based translation layer module..IP "INCLUDE_TL_SSFDC"To include the SSFDC-appropriate translation layer module..IP "INCLUDE_MTD_I28F016"For Intel 28f016 flash devices..IP "INCLUDE_MTD_I28F008"For Intel 28f008 flash devices..IP "INCLUDE_MTD_I28F008_BAJA"For Intel 28f008 flash devices on the Heurikon Baja 4700..IP "INCLUDE_MTD_AMD"For AMD, Fujitsu: 29F0{40,80,16} 8-bit flash devices..IP "INCLUDE_MTD_CDSN"For Toshiba, Samsung: NAND CDSN flash devices..IP "INCLUDE_MTD_DOC2"For Toshiba, Samsung: NAND DOC flash devices..IP "INCLUDE_MTD_CFISCS"For CFI/SCS flash devices..IP "INCLUDE_MTD_WAMD"For AMD, Fujitsu 29F0{40,80,16} 16-bit flash devices..IP "INCLUDE_TFFS_BOOT_IMAGE"To include tffsBootImagePut() in TrueFFS for Tornado..LPTo exclude any of the modules mentioned above, edit sysTffs.c and undefineits associated symbolic constant.The function sysTffsFormat() is provided so one might seasily format the Flash SIMM to have the TFFS file system in one half of it.INCLUDE FILES: flsocket.h, tffsDrv.h*//* includes */#include "vxWorks.h"#include "taskLib.h"#include "config.h"#include "tffs/flsocket.h"#include "tffs/tffsDrv.h"#include "ads860.h"#include "arch/ppc/vxPpcLib.h"#include "drv/multi/ppc860Siu.h"#if defined(INCLUDE_TFFS)/* defines */#define	INCLUDE_MTD_I28F016		/* Intel: 28f016 */#define	INCLUDE_MTD_I28F008		/* Intel: 28f008 */#define	INCLUDE_MTD_AMD			/* AMD, Fujitsu: 29f0{40,80,16} 8bit */#undef	INCLUDE_MTD_CFISCS		/* CFI/SCS */#undef	INCLUDE_MTD_WAMD		/* AMD, Fujitsu: 29f0{40,80,16} 16bit */#define	INCLUDE_TL_FTL			/* FTL translation layer */#undef	INCLUDE_TL_SSFDC		/* SSFDC translation layer */#define	INCLUDE_SOCKET_SIMM		/* SIMM socket interface */#define	INCLUDE_SOCKET_PCMCIA		/* PCMCIA socket interface */#define INCLUDE_TFFS_BOOT_IMAGE		/* include tffsBootImagePut() */#define	FLASH_BASE_ADRS		0x02800000	/* Flash memory base address */#define	FLASH_SIZE		0x00200000	/* Flash memory size */#define VCC_DELAY_MSEC		100	/* Millisecs to wait for Vcc ramp up */#define VPP_DELAY_MSEC		100	/* Millisecs to wait for Vpp ramp up */#define BCSR1_PCCVPP_12V	0x00200000#define KILL_TIME_FUNC	 ((iz * iz) / (iz + iz)) / ((iy + iz) / (iy * iz))/* locals */LOCAL UINT32 sysTffsMsecLoopCount = 0;/* forward declarations */#ifdef	INCLUDE_SOCKET_SIMMLOCAL FLBoolean		simmCardDetected (FLSocket vol);LOCAL void		simmVccOn (FLSocket vol);LOCAL void		simmVccOff (FLSocket vol);#ifdef	SOCKET_12_VOLTSLOCAL FLStatus		simmVppOn (FLSocket vol);LOCAL void		simmVppOff (FLSocket vol);#endif	/* SOCKET_12_VOLTS */LOCAL FLStatus		simmInitSocket (FLSocket vol);LOCAL void		simmSetWindow (FLSocket vol);LOCAL void		simmSetMappingContext (FLSocket vol, unsigned page);LOCAL FLBoolean		simmGetAndClearCardChangeIndicator (FLSocket vol);LOCAL FLBoolean		simmWriteProtected (FLSocket vol);LOCAL void		simmRegister (void);#endif	/* INCLUDE_SOCKET_SIMM */#ifdef	INCLUDE_SOCKET_PCMCIALOCAL FLBoolean		pcCardDetected (FLSocket vol);LOCAL void		pcVccOn (FLSocket vol);LOCAL void		pcVccOff (FLSocket vol);#ifdef	SOCKET_12_VOLTSLOCAL FLStatus		pcVppOn (FLSocket vol);LOCAL void		pcVppOff (FLSocket vol);#endif	/* SOCKET_12_VOLTS */LOCAL FLStatus		pcInitSocket (FLSocket vol);LOCAL void		pcSetWindow (FLSocket vol);LOCAL void		pcSetMappingContext (FLSocket vol, unsigned page);LOCAL FLBoolean		pcGetAndClearCardChangeIndicator (FLSocket vol);LOCAL FLBoolean		pcWriteProtected (FLSocket vol);LOCAL void		pcRegister (void);#endif	/* INCLUDE_SOCKET_PCMCIA */#ifndef DOC#include "tffs/tffsConfig.c"#endif /* DOC *//********************************************************************************* sysTffsInit - board level initialization for TFFS** This routine calls the socket registration routines for the socket component* drivers that will be used with this BSP. The order of registration signifies* the logical drive number given to the drive associated with the socket.** RETURNS: N/A*/LOCAL void sysTffsInit (void)    {    UINT32 ix = 0;    UINT32 iy = 1;    UINT32 iz = 2;    int oldTick;    /* we assume followings:     *   - no interrupts except timer is happening.     *   - the loop count that consumes 1 msec is in 32 bit.     * it is done in the early stage of usrRoot() in tffsDrv().  */    oldTick = tickGet();    while (oldTick == tickGet())	/* wait for next clock interrupt */	;    oldTick = tickGet();    while (oldTick == tickGet())	/* loop one clock tick */	{	iy = KILL_TIME_FUNC;		/* consume time */	ix++;				/* increment the counter */	}        sysTffsMsecLoopCount = ix * sysClkRateGet() / 1000;#ifdef	INCLUDE_SOCKET_SIMM    simmRegister ();			/* SIMM socket interface register */#endif	/* INCLUDE_SOCKET_SIMM */#ifdef	INCLUDE_SOCKET_PCMCIA    pcRegister ();			/* PCMCIA socket interface register */#endif	/* INCLUDE_SOCKET_PCMCIA */    }#ifdef	INCLUDE_SOCKET_SIMM/********************************************************************************* simmRegister - install routines for the Flash SIMM** This routine installs necessary functions for the Flash SIMM.** RETURNS: N/A*/LOCAL void simmRegister (void)    {    FLSocket vol = flSocketOf (noOfDrives);    tffsSocket[noOfDrives] =	"SIMM";    vol.window.baseAddress =	FLASH_BASE_ADRS >> 12;    vol.cardDetected =		simmCardDetected;    vol.VccOn =			simmVccOn;    vol.VccOff =		simmVccOff;#ifdef SOCKET_12_VOLTS    vol.VppOn =			simmVppOn;    vol.VppOff =		simmVppOff;#endif    vol.initSocket =		simmInitSocket;    vol.setWindow =		simmSetWindow;    vol.setMappingContext =	simmSetMappingContext;    vol.getAndClearCardChangeIndicator = simmGetAndClearCardChangeIndicator;    vol.writeProtected =	simmWriteProtected;    noOfDrives++;    }/********************************************************************************* simmCardDetected - detect if a card is present (inserted)** This routine detects if a card is present (inserted).** RETURNS: TRUE, or FALSE if the card is not present.*/LOCAL FLBoolean simmCardDetected    (    FLSocket vol		/* pointer identifying drive */    )    {    return (TRUE);    }/********************************************************************************* simmVccOn - turn on Vcc (3.3/5 Volts)** This routine turns on Vcc (3.3/5 Volts).  Vcc must be known to be good* on exit.** RETURNS: N/A*/LOCAL void simmVccOn    (    FLSocket vol		/* pointer identifying drive */    )    {    }/********************************************************************************* simmVccOff - turn off Vcc (3.3/5 Volts)** This routine turns off Vcc (3.3/5 Volts). ** RETURNS: N/A*/LOCAL void simmVccOff    (    FLSocket vol		/* pointer identifying drive */    )    {    }#ifdef SOCKET_12_VOLTS/********************************************************************************* simmVppOn - turns on Vpp (12 Volts)** This routine turns on Vpp (12 Volts). Vpp must be known to be good on exit.** RETURNS: flOK always.*/LOCAL FLStatus simmVppOn    (    FLSocket vol		/* pointer identifying drive */    )    {    return (flOK);    }/********************************************************************************* simmVppOff - turns off Vpp (12 Volts)** This routine turns off Vpp (12 Volts).** RETURNS: N/A*/LOCAL void simmVppOff    (    FLSocket vol		/* pointer identifying drive */    )    {    }#endif	/* SOCKET_12_VOLTS *//********************************************************************************* simmInitSocket - perform all necessary initializations of the socket** This routine performs all necessary initializations of the socket.** RETURNS: flOK always.*/LOCAL FLStatus simmInitSocket    (    FLSocket vol		/* pointer identifying drive */    )    {    *BCSR1 &= ~(BCSR1_FLASH_EN_L);		/* enable the flash */    return (flOK);    }/********************************************************************************* simmSetWindow - set current window attributes, Base address, size, etc** This routine sets current window hardware attributes: Base address, size,* speed and bus width.  The requested settings are given in the 'vol.window' * structure.  If it is not possible to set the window size requested in* 'vol.window.size', the window size should be set to a larger value, * if possible. In any case, 'vol.window.size' should contain the * actual window size (in 4 KB units) on exit.** RETURNS: N/A*/LOCAL void simmSetWindow    (    FLSocket vol		/* pointer identifying drive */    )    {    /* Physical base as a 4K page */    vol.window.baseAddress = FLASH_BASE_ADRS >> 12;    flSetWindowSize (&vol, FLASH_SIZE >> 12);    }/********************************************************************************* simmSetMappingContext - sets the window mapping register to a card address** This routine sets the window mapping register to a card address.* The window should be set to the value of 'vol.window.currentPage',* which is the card address divided by 4 KB. An address over 128MB,* (page over 32K) specifies an attribute-space address. On entry to this * routine vol.window.currentPage is the page already mapped into the window.* (In otherwords the page that was mapped by the last call to this routine.)** The page to map is guaranteed to be on a full window-size boundary.** RETURNS: N/A*/LOCAL void simmSetMappingContext    (    FLSocket vol,		/* pointer identifying drive */    unsigned page		/* page to be mapped */    )    {    }/********************************************************************************* simmGetAndClearCardChangeIndicator - return the hardware card-change indicator** This routine returns the hardware card-change indicator and clears it if set.** RETURNS: FALSE, or TRUE if the card has been changed*/LOCAL FLBoolean simmGetAndClearCardChangeIndicator    (    FLSocket vol		/* pointer identifying drive */    )    {    return (FALSE);    }/********************************************************************************* simmWriteProtected - return the write-protect state of the media** This routine returns the write-protect state of the media** RETURNS: FALSE, or TRUE if the card is write-protected*/LOCAL FLBoolean simmWriteProtected    (    FLSocket vol		/* pointer identifying drive */    )    {    return (FALSE);    }#endif	/* INCLUDE_SOCKET_SIMM */#ifdef	INCLUDE_SOCKET_PCMCIA/********************************************************************************* pcRegister - install routines for the PCMCIA Flash Card** This routine installs necessary functions for the PCMCIA Flash Card.** RETURNS: N/A*/LOCAL void pcRegister (void)    {    FLSocket vol = flSocketOf (noOfDrives);    tffsSocket[noOfDrives] =	"PCMCIA";    vol.window.baseAddress =	(PC_BASE_ADRS_0) >> 12;    vol.cardDetected =		pcCardDetected;    vol.VccOn =			pcVccOn;    vol.VccOff =		pcVccOff;#ifdef SOCKET_12_VOLTS    vol.VppOn =			pcVppOn;    vol.VppOff =		pcVppOff;#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
制服视频三区第一页精品| 欧美视频精品在线| 欧美性受xxxx黑人xyx| 日韩欧美国产wwwww| 国产精品久久久久久久久久久免费看| 亚洲一区二区在线免费看| 国产专区综合网| 欧美老肥妇做.爰bbww| 国产精品不卡一区二区三区| 久久国产免费看| 欧美色精品天天在线观看视频| 国产精品伦理一区二区| 久久se这里有精品| 欧美男同性恋视频网站| 成人免费在线观看入口| 国产精品12区| 亚洲精品一区二区三区蜜桃下载| 亚洲一区二区免费视频| 91在线码无精品| 国产欧美一区二区精品仙草咪| 青娱乐精品在线视频| 欧美羞羞免费网站| 综合在线观看色| 成人久久视频在线观看| 精品国产凹凸成av人导航| 日本伊人色综合网| 欧美精品99久久久**| 亚洲一区二区精品久久av| 日本高清不卡一区| 一区二区三区中文字幕| 国产sm精品调教视频网站| 亚洲精品一线二线三线无人区| 看片的网站亚洲| 欧美一级欧美一级在线播放| 日韩中文字幕麻豆| 欧美一区二区三区色| 日韩av中文字幕一区二区| 欧美日韩国产三级| 日韩av一区二| 日韩女优电影在线观看| 久久精品国产99国产精品| 欧美电影一区二区三区| 免费视频一区二区| 欧美大片一区二区三区| 国产真实乱对白精彩久久| 国产亚洲成年网址在线观看| 国产99久久久久| 国产精品视频yy9299一区| 不卡电影一区二区三区| 一区二区免费视频| 欧美丰满嫩嫩电影| 国产一区二区三区| 欧美激情综合五月色丁香小说| av不卡在线播放| 亚洲自拍偷拍九九九| 日韩欧美另类在线| 国产成人精品三级麻豆| 亚洲视频免费在线观看| 色www精品视频在线观看| 日韩国产精品91| 国产午夜精品久久久久久免费视| 国产精品自在在线| 亚洲女爱视频在线| 91精品国产aⅴ一区二区| 国产黄色91视频| 亚洲二区在线观看| 久久久久久久久久久久电影| 91免费视频网| 国内精品第一页| 亚洲蜜臀av乱码久久精品蜜桃| 91精品在线观看入口| 高清国产一区二区三区| 午夜久久久久久| 亚洲国产精品99久久久久久久久| 欧日韩精品视频| 国产一区二区三区香蕉| 一区二区国产视频| 精品国产精品网麻豆系列| 91论坛在线播放| 久久精品国产精品亚洲综合| 亚洲天堂免费看| 国产婷婷一区二区| 欧美一区二区久久| 99久久精品免费看国产| 久久av资源站| 一区二区在线观看不卡| 久久精品人人爽人人爽| 91麻豆精品国产91久久久 | 日韩欧美国产一区二区在线播放 | 久久综合国产精品| 欧美日韩一区二区在线视频| 国产大片一区二区| 日韩av一区二区三区| 欧美成人aa大片| 精品视频在线免费| 99久久精品国产一区| 国产真实乱对白精彩久久| 日韩1区2区3区| 亚洲亚洲人成综合网络| 亚洲女爱视频在线| 中文字幕制服丝袜一区二区三区| 日韩一区二区免费高清| 欧美视频精品在线| 色天天综合色天天久久| av成人老司机| 成人美女在线视频| 国产1区2区3区精品美女| 国产在线精品一区二区三区不卡 | 亚洲欧美日韩国产手机在线| 久久久国产午夜精品| 日韩欧美国产午夜精品| 69堂国产成人免费视频| 91成人网在线| 欧美日韩中文精品| 欧美日韩一区二区三区在线看| 91在线观看免费视频| 91一区二区在线| 色妞www精品视频| 一本大道久久a久久综合| 成人国产一区二区三区精品| 成人免费高清视频| 99视频一区二区三区| 91小视频免费观看| 欧美日韩中文另类| 日韩一区二区三区精品视频| 日韩欧美在线综合网| 精品国产乱码久久久久久1区2区 | 国产精品蜜臀在线观看| 国产精品久久久久久一区二区三区| 欧美国产精品专区| 综合电影一区二区三区| 亚洲一区二区中文在线| 亚洲综合久久久久| 天堂在线亚洲视频| 老司机精品视频一区二区三区| 国产精品综合av一区二区国产馆| 国产成人亚洲综合色影视| 91色婷婷久久久久合中文| 欧美日韩国产成人在线91| 日韩一区二区精品| 国产免费久久精品| 夜夜操天天操亚洲| 日本三级韩国三级欧美三级| 国产精品自在欧美一区| 在线亚洲一区二区| 久久亚区不卡日本| 国产精品福利电影一区二区三区四区| 日韩毛片一二三区| 日韩成人午夜精品| 99久久国产综合精品麻豆| 欧美三级视频在线播放| 精品福利在线导航| 亚洲男人的天堂网| 美国欧美日韩国产在线播放| 国产成a人无v码亚洲福利| 色婷婷精品大在线视频| 精品国产精品网麻豆系列| 亚洲同性同志一二三专区| 三级久久三级久久| 99久久久精品免费观看国产蜜| 欧美色老头old∨ideo| 国产欧美一区二区精品忘忧草| 亚洲一区二区三区不卡国产欧美| 国产一区视频导航| 欧美日韩国产另类不卡| 亚洲国产电影在线观看| 日本欧洲一区二区| 欧洲日韩一区二区三区| 久久久久国产精品厨房| 日本欧美大码aⅴ在线播放| 99视频有精品| 久久九九影视网| 偷偷要91色婷婷| 91久久精品网| 亚洲国产成人私人影院tom| 欧美96一区二区免费视频| 91九色最新地址| 欧美国产精品一区二区| 九一久久久久久| 欧美一区二视频| 亚洲成年人影院| 91丨porny丨中文| 国产精品超碰97尤物18| 国产剧情在线观看一区二区| 久久青草国产手机看片福利盒子| 亚洲愉拍自拍另类高清精品| 成人毛片老司机大片| 国产日韩成人精品| 精品一区二区三区免费毛片爱| 欧美日本在线看| 亚洲一区日韩精品中文字幕| 99精品黄色片免费大全| 国产精品久久久久精k8 | 日韩精品五月天| 欧美性大战久久久| 一区二区三区四区国产精品| www.欧美精品一二区| 国产精品福利av| 91在线观看视频| 一区二区三区不卡视频|