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

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

?? systffs.c

?? 440bx vxworks bsp
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* 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 多刃劍開發板
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.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美激情一区二区在线| 欧美区视频在线观看| youjizz国产精品| 91香蕉视频污| 成人性生交大片免费看在线播放| 色先锋资源久久综合| 日韩欧美国产麻豆| 国产亲近乱来精品视频| 亚洲综合色婷婷| 精品亚洲成a人| 97se亚洲国产综合自在线不卡| 欧美乱妇20p| 有码一区二区三区| 国产一区二区三区不卡在线观看| 在线精品视频免费观看| 日韩一区二区视频在线观看| 亚洲一区在线观看免费| 风间由美性色一区二区三区| 欧美日韩一区不卡| 自拍偷拍亚洲欧美日韩| 久久精品噜噜噜成人88aⅴ| 91丝袜国产在线播放| 色婷婷综合久久| 最新久久zyz资源站| 日本一区中文字幕| 在线观看亚洲专区| 中文字幕一区二区三区精华液| 蜜桃视频在线观看一区| 欧美亚洲自拍偷拍| 欧美一区二区在线免费播放| 成人欧美一区二区三区小说| 久久精品国产久精国产| 欧美影视一区在线| 亚洲va国产天堂va久久en| 91女人视频在线观看| 久久精品一区二区三区不卡牛牛| 美女免费视频一区二区| 欧美美女一区二区三区| 亚洲精品视频免费看| 成人网男人的天堂| 国产日韩高清在线| 国产精品99久久久久久久vr| 92国产精品观看| 国产精品天干天干在线综合| 丰满岳乱妇一区二区三区| 日韩欧美国产午夜精品| 蜜桃久久久久久| 欧美一区二区日韩| 韩国在线一区二区| 日韩女优视频免费观看| 久久电影网电视剧免费观看| 精品少妇一区二区三区日产乱码| 青草国产精品久久久久久| 777久久久精品| 日本一区二区在线不卡| 99精品欧美一区二区三区综合在线| 91精品在线免费观看| 中文字幕不卡在线| 色八戒一区二区三区| 一区二区三区在线视频观看| 一本久久精品一区二区| 石原莉奈在线亚洲二区| 日韩亚洲国产中文字幕欧美| 免费成人在线观看| 日韩一区二区三区三四区视频在线观看 | 欧美日本一区二区三区四区| 亚洲一二三区不卡| 欧美一区二区大片| 国产一区二区三区av电影| 日韩欧美国产wwwww| 国产呦精品一区二区三区网站| 久久久.com| 欧美视频精品在线| 一区二区三区高清| 在线免费观看视频一区| 国产在线看一区| 国产精品另类一区| 欧美色精品在线视频| 狠狠色丁香九九婷婷综合五月| 大陆成人av片| 亚洲欧美在线视频观看| 日韩视频免费直播| 风间由美一区二区三区在线观看| 亚洲精品菠萝久久久久久久| 欧美成人a视频| 99v久久综合狠狠综合久久| 污片在线观看一区二区| 91精品国产高清一区二区三区蜜臀| 国产一区二区三区四| 中文字幕一区二区三区在线观看| 成人在线一区二区三区| 久热成人在线视频| 一区二区三区四区高清精品免费观看| 欧美一级电影网站| 在线观看视频一区二区欧美日韩| 极品瑜伽女神91| 亚洲图片欧美视频| 亚洲精品视频免费看| 国产婷婷一区二区| 欧美日韩国产在线观看| 91麻豆蜜桃一区二区三区| 欧美a级理论片| 国产三级三级三级精品8ⅰ区| 欧美最猛性xxxxx直播| 国产成人丝袜美腿| 青青青伊人色综合久久| 亚洲另类色综合网站| 久久久久久久久久久电影| 欧美区一区二区三区| 色综合久久中文综合久久牛| 精品伊人久久久久7777人| 亚洲一区在线播放| 中文字幕在线不卡视频| 久久亚洲免费视频| 欧美日韩色一区| 色婷婷国产精品综合在线观看| 国产成人av电影免费在线观看| 免费成人在线观看| 一区二区三区.www| 国产精品国产三级国产专播品爱网 | 国产精品99久久久| 久久国产人妖系列| 欧美96一区二区免费视频| 夜夜精品视频一区二区| 国产精品久久久久久久蜜臀| 欧美一区二区三区视频在线| 91精品办公室少妇高潮对白| 97精品视频在线观看自产线路二| 国产精品自拍毛片| 国内精品伊人久久久久av影院 | 久久精品人人做人人爽人人| 97se亚洲国产综合自在线观| 91亚洲国产成人精品一区二三| 国产精品综合一区二区三区| 久久99国产精品免费网站| 国产成人免费在线观看| 9久草视频在线视频精品| 色香蕉久久蜜桃| 欧美一区二区三区免费视频| 久久蜜桃一区二区| 亚洲欧美日韩久久精品| 午夜欧美在线一二页| 久久99久久精品| 99国产精品久久久久| 欧美精品aⅴ在线视频| 久久久精品tv| 一个色在线综合| 久久91精品国产91久久小草| 成人综合在线观看| 欧美日韩国产系列| 国产婷婷色一区二区三区在线| 亚洲免费电影在线| 久久精品99久久久| 91视频在线看| 欧美电影免费观看高清完整版在线观看| 国产性色一区二区| 亚洲国产成人高清精品| 国产精品原创巨作av| 91国产免费观看| 国产精品久久久久久久久免费樱桃 | 国产精品每日更新在线播放网址| 日韩高清一区在线| 国产精品网友自拍| 日本午夜一本久久久综合| 成人网页在线观看| 精品少妇一区二区三区日产乱码 | 日本不卡的三区四区五区| 成人av网站在线观看免费| 欧美一区二区三区小说| 一区二区三区日韩欧美| 国产99久久久精品| 欧美一区二区三区精品| 一区二区三区鲁丝不卡| 福利一区二区在线| 欧美成人精品福利| 亚洲成人一二三| 一本久道久久综合中文字幕| 欧美极品少妇xxxxⅹ高跟鞋| 美女脱光内衣内裤视频久久影院| 色综合色综合色综合色综合色综合| 久久综合中文字幕| 蜜臀久久99精品久久久久宅男| 日本精品一级二级| 亚洲手机成人高清视频| 国产成人av一区二区三区在线| 日韩一区二区三区高清免费看看| 一区二区三区欧美日| 暴力调教一区二区三区| 国产清纯在线一区二区www| 精品一区二区三区免费播放| 91精品免费观看| 日日夜夜精品视频免费| 精品视频色一区| 亚洲va欧美va天堂v国产综合| 在线免费观看视频一区| 亚洲乱码精品一二三四区日韩在线| 成人免费毛片aaaaa**| 久久久久88色偷偷免费| 国产精品中文字幕一区二区三区| 欧美精品一区二|