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

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

?? systffs.c

?? VxWorks BSP 下s3C44b0的源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號(hào):
/* sysTffs.c - Motorola MVME177 system-dependent TrueFFS library */


/* Copyright 1984-1997 Wind River Systems, Inc. */
#include "copyright_wrs.h"

/* FAT-FTL Lite Software Development Kit
 * Copyright (C) M-Systems Ltd. 1995-1996	*/

/*
modification history
--------------------
01o,29jul04,a_m  BSP定制 for 多刃劍開發(fā)板
01j,31may99,yp  Added comments suggested in SPR #25319
01i,21apr98,yp   added tffs to files included from there
01h,11mar98,yp   made including tffsConfig.c conditional so man page
                 generation does not include it.
01g,09mar99,kbw  made man page edits to fix problems found by QE
01f,02jan98,yp   doc cleanup 
01e,18dec97,hdn  added comment.  cleaned up.
01d,05dec97,hdn  added tffsSocket[].  cleaned up.
01c,11nov97,hdn  fixed typo.
01b,05nov97,hdn  cleaned up.
01a,09oct97,and  written by Andray in M-Systems
*/

/*
DESCRIPTION
This 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 stores 
pointers to the functions of this socket component driver in an 'FLSocket' 
structure.  When TrueFFS needs to access the flash device, it uses these 
functions.  

Because this file is, for the most part, a device driver that exports its 
functionality by registering function pointers with TrueFFS, very few of the 
functions defined here are externally callable.  For the record, these 
external functions are flFitInSocketWindow() and flDelayLoop().  You should 
never have any need to call these functions.  

However, one of the most import functions defined in this file is neither
referenced in an 'FLSocket' structure, nor is it externally callable.  This
function is sysTffsInit().  TrueFFS calls this function at initialization 
time to register socket component drivers for all the flash devices attached 
to your target.  It is this call to sysTffs() that results in assigning 
drive numbers to the flash devices on your target hardware.  Drive numbers 
are 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 to 
4.  As shipped, TrueFFS supports up to five flash drives.  

After registering socket component drivers for a flash device, you may 
format the flash medium even though there is not yet a block device driver
associated 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 externally 
callable helper function.  Internally, it calls tffsDevFormat() with a 
pointer to a 'FormatParams' structure initialized to values that leave a 
space on the flash device for a boot image. This space is outside the 
region managed by TrueFFS.  This special region is necessary for boot 
images because the normal translation and wear-leveling services of TrueFFS 
are incompatible with the needs of the boot program and the boot image it 
relies upon.  To write a boot image (or any other data) into this area, 
use tffsBootImagePut().  

Finally, this file also contains define statements for symbolic constants 
that determine which MTDs, translation layer modules, and other utilities 
are 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.
.LP
To exclude any of the modules mentioned above, edit sysTffs.c and undefine
its associated symbolic constant.

INCLUDE FILES: flsocket.h, tffsDrv.h

SEE ALSO : tffsDrv tffsConfig
*/

#include "vxWorks.h"
#include "config.h"
#include "tffs/flsocket.h"
#include "tffs/tffsDrv.h"


/* defines */

#define INCLUDE_MTD_SST39VF160	/*  : sst39vf160 */
#undef	INCLUDE_MTD_I28F016		/* Intel: 28f016 */
#undef	INCLUDE_MTD_I28F008		/* Intel: 28f008 */
#undef	INCLUDE_MTD_AMD			/* AMD, Fujitsu: 29f0{40,80,16} 8bit */
#undef	INCLUDE_MTD_CDSN		/* Toshiba, Samsung: NAND, CDSN */
#undef	INCLUDE_MTD_DOC2		/* Toshiba, Samsung: NAND, DOC */
#undef	INCLUDE_MTD_CFISCS		/* CFI/SCS */
#undef	INCLUDE_MTD_WAMD		/* AMD, Fujitsu: 29f0{40,80,16} 16bit */
#undef	INCLUDE_TL_NFTL			/* NFTL translation layer */
#define	INCLUDE_TL_FTL			/* FTL translation layer */
#undef	INCLUDE_TL_SSFDC		/* SSFDC translation layer */
#undef  INCLUDE_TFFS_BOOT_IMAGE		/* include tffsBootImagePut() */
#define	FLASH_BASE_ADRS		ROM_SIZE
#define	FLASH_SIZE		(0x00200000-ROM_SIZE)


/* locals */


/* forward declarations */

LOCAL void		rfaWriteProtect (void);
LOCAL void		rfaWriteEnable (void);
LOCAL FLBoolean		rfaCardDetected (FLSocket vol);
LOCAL void		rfaVccOn (FLSocket vol);
LOCAL void		rfaVccOff (FLSocket vol);
#ifdef	SOCKET_12_VOLTS
LOCAL FLStatus		rfaVppOn (FLSocket vol);
LOCAL void		rfaVppOff (FLSocket vol);
#endif	/* SOCKET_12_VOLTS */
LOCAL FLBoolean		rfaGetAndClearCardChangeIndicator (FLSocket vol);
LOCAL FLBoolean		rfaWriteProtected (FLSocket vol);
LOCAL void		rfaSetWindow (FLSocket vol);
LOCAL void		rfaSetMappingContext (FLSocket vol, unsigned page);
LOCAL FLStatus		rfaSocketInit (FLSocket vol);
LOCAL FLStatus		rfaRegister (void);

#ifndef DOC
#include "tffsConfig.c"
#endif /* DOC */

/*******************************************************************************
*
* sysTffsInit - board-level initialization for TrueFFS
*
* This routine calls the socket registration routines for the socket component
* drivers that will be used with this BSP. The order of registration determines
* the logical drive number given to the drive associated with the socket.
*
* RETURNS: N/A
*/

LOCAL void sysTffsInit (void)
    {

    rfaRegister ();
    }

/*******************************************************************************
*
* rfaRegister - registration routine for the RFA on MVME177
*
* This routine populates the 'vol' structure for a logical drive with the
* socket component driver routines for the RFA on the MVME177 board. All
* socket routines are referanced through the 'vol' structure and never 
* from here directly
*
* RETURNS: flOK, or flTooManyComponents if there're too many drives
*/

LOCAL FLStatus rfaRegister (void)
    {
    FLSocket vol = flSocketOf (noOfDrives);

    if (noOfDrives >= DRIVES)
        return (flTooManyComponents);

    tffsSocket[noOfDrives] = "RFA";
    noOfDrives++;

    vol.serialNo = 0;
    vol.window.baseAddress = FLASH_BASE_ADRS >> 12;

    /* fill in function pointers */

    vol.cardDetected      = rfaCardDetected;
    vol.VccOn             = rfaVccOn;
    vol.VccOff            = rfaVccOff;
#ifdef SOCKET_12_VOLTS
    vol.VppOn             = rfaVppOn;
    vol.VppOff            = rfaVppOff;
#endif
    vol.initSocket        = rfaSocketInit;
    vol.setWindow         = rfaSetWindow;
    vol.setMappingContext = rfaSetMappingContext;
    vol.getAndClearCardChangeIndicator =
                          rfaGetAndClearCardChangeIndicator;
    vol.writeProtected    = rfaWriteProtected;

    return (flOK);
    }

/*******************************************************************************
*
* rfaCardDetected - 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 rfaCardDetected
    (
    FLSocket vol
    )
    {
    return (TRUE);
    }

/*******************************************************************************
*
* rfaVccOn - 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 rfaVccOn 
    (
    FLSocket vol
    )
    {
    rfaWriteEnable ();
    }

/*******************************************************************************
*
* rfaVccOff - turn off Vcc (3.3/5 Volts)
*
* This routine turns off Vcc (3.3/5 Volts). 
*
* RETURNS: N/A
*/

LOCAL void rfaVccOff 
    (
    FLSocket vol
    )
    {
    rfaWriteProtect ();
    }

#ifdef SOCKET_12_VOLTS

/*******************************************************************************
*
* rfaVppOn - turns on Vpp (12 Volts)
*
* This routine turns on Vpp (12 Volts). Vpp must be known to be good on exit.

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩av电影天堂| 亚洲综合视频在线观看| 精品一区二区影视| 精品粉嫩aⅴ一区二区三区四区| 免费不卡在线观看| 久久网这里都是精品| 国产成人福利片| 中文字幕五月欧美| 欧美日韩成人在线一区| 日韩av二区在线播放| 久久色成人在线| 91色在线porny| 日韩精品电影一区亚洲| 精品免费日韩av| 成人午夜激情影院| 亚洲一二三专区| 日韩视频免费观看高清完整版 | 欧美日韩在线不卡| 蜜臀久久久久久久| 欧美国产精品一区| 色婷婷av一区二区三区软件| 日韩高清欧美激情| 中文字幕av资源一区| 欧美三级日本三级少妇99| 蜜臂av日日欢夜夜爽一区| 国产喷白浆一区二区三区| 色综合久久88色综合天天6| 日欧美一区二区| 国产精品久久久久久久久动漫 | 久久久噜噜噜久噜久久综合| 成人黄色免费短视频| 偷拍与自拍一区| 国产精品视频一区二区三区不卡| 欧美色图第一页| 国产成人综合在线观看| 亚洲地区一二三色| 欧美国产精品劲爆| 日韩亚洲欧美综合| 色视频成人在线观看免| 国产一区二区成人久久免费影院| 亚洲午夜精品网| 欧美激情一区在线观看| 91精品国产乱| 色av综合在线| 成人综合日日夜夜| 另类欧美日韩国产在线| 亚洲视频在线观看三级| 亚洲精品一区二区三区蜜桃下载| 在线观看成人免费视频| 国产麻豆视频一区二区| 日本欧美一区二区三区乱码| 一区二区三区四区高清精品免费观看 | 国产精品久久久久久户外露出| 欧美一区二区视频在线观看 | 性欧美疯狂xxxxbbbb| 国产精品成人在线观看| 久久噜噜亚洲综合| 91精品国产综合久久小美女| 在线视频欧美精品| www.一区二区| 国产精品1024| 国产麻豆精品视频| 精品中文字幕一区二区小辣椒| 天堂久久久久va久久久久| 一区二区久久久久久| 综合亚洲深深色噜噜狠狠网站| 国产免费成人在线视频| 久久婷婷国产综合国色天香| 欧美成人一级视频| 欧美一区二区三区的| 欧美欧美午夜aⅴ在线观看| 欧美伊人久久大香线蕉综合69| 91麻豆免费在线观看| 99r国产精品| 99精品欧美一区二区蜜桃免费| 国产91精品一区二区| 丁香网亚洲国际| 粉嫩一区二区三区在线看| 成人免费观看视频| 床上的激情91.| 99久久99久久精品国产片果冻| 成人精品高清在线| 99精品国产91久久久久久| 色琪琪一区二区三区亚洲区| 欧美在线不卡视频| 欧美日韩精品福利| 日韩片之四级片| 久久久99免费| 国产精品剧情在线亚洲| 亚洲欧美激情插| 午夜影院久久久| 麻豆精品新av中文字幕| 国产成人av福利| 99视频有精品| 欧美日韩成人一区| 欧美电影免费观看高清完整版在线 | 国产喂奶挤奶一区二区三区| 国产欧美日韩视频一区二区| 国产精品视频一二| 一区二区三区四区不卡在线 | av不卡免费电影| 在线免费观看日本欧美| 欧美男女性生活在线直播观看| 欧美电影免费观看高清完整版在线 | 精品不卡在线视频| 国产精品视频麻豆| 亚洲国产一区二区三区| 久久99久久久欧美国产| 成人性生交大合| 欧美午夜电影网| 2020国产精品久久精品美国| 国产欧美日本一区二区三区| 亚洲精品五月天| 久久国产麻豆精品| 91在线观看高清| 日韩色视频在线观看| 国产精品传媒在线| 蜜桃视频第一区免费观看| 成人高清视频在线观看| 在线不卡欧美精品一区二区三区| 久久久国产精华| 午夜精品久久久| 国产精品99久久久久久久vr| 欧美在线观看一区| 国产欧美日韩另类一区| 日韩精品国产精品| 91美女片黄在线观看| 精品成人a区在线观看| 亚洲成a人在线观看| 国产福利一区二区三区在线视频| 欧美色图天堂网| 国产精品天干天干在观线| 另类小说一区二区三区| 欧美视频三区在线播放| 国产精品―色哟哟| 激情丁香综合五月| 欧美日本一道本| 亚洲裸体在线观看| 国产精品1024久久| 精品少妇一区二区三区日产乱码| 亚洲一区二区四区蜜桃| 99久久精品国产导航| 久久精品欧美日韩| 久久精品国产99国产| 欧美日韩高清一区二区三区| ...av二区三区久久精品| 国产很黄免费观看久久| 欧美一区二区三区免费观看视频| 一区二区三区日韩精品视频| 成人爽a毛片一区二区免费| 精品日韩成人av| 免费在线观看不卡| 538在线一区二区精品国产| 亚洲精品v日韩精品| 色呦呦网站一区| 国产精品国产自产拍高清av王其| 国产精品91xxx| 337p粉嫩大胆色噜噜噜噜亚洲| 日日夜夜精品视频天天综合网| 在线亚洲免费视频| 亚洲乱码中文字幕综合| 色综合色综合色综合色综合色综合| 欧美国产综合一区二区| 国产福利一区在线观看| 国产日韩欧美在线一区| 国产一区二区三区av电影| 精品国产一区二区三区久久影院| 久久国产精品99久久人人澡| 日韩精品最新网址| 久久av资源网| 久久精品人人爽人人爽| 国产一级精品在线| 国产亚洲精品超碰| 成人性视频免费网站| 国产精品色在线| 99热精品一区二区| 樱桃视频在线观看一区| 欧美揉bbbbb揉bbbbb| 天天av天天翘天天综合网| 678五月天丁香亚洲综合网| 免费人成网站在线观看欧美高清| 日韩欧美在线观看一区二区三区| 毛片av一区二区| 久久久久久久久久久久久夜| 成人免费黄色大片| 亚洲裸体在线观看| 欧美日韩精品一区二区三区| 日韩中文欧美在线| 亚洲精品一区二区三区蜜桃下载 | 欧美一区二区三区在线| 欧美aⅴ一区二区三区视频| 亚洲精品一线二线三线无人区| 国产剧情一区在线| 中文字幕一区二区不卡| 欧美熟乱第一页| 精品一区二区三区免费| 一区精品在线播放| 欧美日韩国产中文| 国产一区二区精品久久| 亚洲欧美日韩国产一区二区三区|