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

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

?? systffs.c

?? vxworks bsp 中配置tffs文件系統的代碼
?? 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一区二区三区免费野_久草精品视频
thepron国产精品| 4438成人网| 欧美一区二区私人影院日本| 久久精品亚洲精品国产欧美kt∨ | 91蜜桃网址入口| 精品国产凹凸成av人网站| 一区二区三区四区中文字幕| 国内精品第一页| 欧美一区二区精品在线| 一区二区三区中文在线| 成人精品视频网站| 日韩免费观看2025年上映的电影 | 色成年激情久久综合| 国产午夜三级一区二区三| 天天综合日日夜夜精品| 在线国产电影不卡| 亚洲色图20p| 91日韩在线专区| 中国av一区二区三区| 国产在线日韩欧美| 日韩视频在线你懂得| 三级一区在线视频先锋| 欧美在线观看18| 亚洲自拍偷拍网站| 91国内精品野花午夜精品| 亚洲日本一区二区| 91影院在线观看| 亚洲女同一区二区| 97超碰欧美中文字幕| 亚洲欧美中日韩| 91色综合久久久久婷婷| 亚洲欧美乱综合| 色狠狠一区二区| 性久久久久久久久久久久| 欧美日韩视频第一区| 日日摸夜夜添夜夜添国产精品| 欧美日韩一区中文字幕| 丝袜美腿亚洲一区二区图片| 777午夜精品视频在线播放| 午夜婷婷国产麻豆精品| 日韩一二在线观看| 蜜桃久久久久久| 久久影视一区二区| 国产成人8x视频一区二区| 欧美激情中文不卡| 99国产精品视频免费观看| 一区二区三区四区不卡在线 | 激情久久久久久久久久久久久久久久| 欧美久久一二区| 美女一区二区在线观看| 国产日韩精品一区二区三区在线| a在线播放不卡| 亚洲.国产.中文慕字在线| 日韩午夜三级在线| 成人一区二区视频| 亚洲一区国产视频| 日韩一区二区三区电影在线观看 | 久久久久久电影| 91麻豆文化传媒在线观看| 天使萌一区二区三区免费观看| 日韩一二三区视频| 成人福利在线看| 午夜视频久久久久久| 久久久久九九视频| 在线观看日韩高清av| 久久精品久久久精品美女| 国产午夜久久久久| 欧美日韩久久久| 国产精品亚洲人在线观看| 一区二区日韩av| 亚洲精品一区二区三区香蕉| 91亚洲男人天堂| 激情欧美一区二区三区在线观看| 中文字幕亚洲一区二区va在线| 欧美一区二区黄| 91麻豆免费视频| 国产最新精品免费| 亚洲第四色夜色| 国产精品网曝门| 91精品黄色片免费大全| 北条麻妃一区二区三区| 日本亚洲欧美天堂免费| 亚洲四区在线观看| 久久蜜桃av一区精品变态类天堂 | 日日骚欧美日韩| 亚洲免费在线观看视频| 久久婷婷成人综合色| 欧美久久婷婷综合色| 91首页免费视频| 成人美女视频在线观看18| 美腿丝袜亚洲三区| 亚洲成人精品一区| 1000部国产精品成人观看| 久久久久国产精品人| 日韩一区二区影院| 欧美蜜桃一区二区三区| 欧美在线999| 97aⅴ精品视频一二三区| 国产高清成人在线| 国产精品99久久久久久似苏梦涵| 日本aⅴ亚洲精品中文乱码| 亚洲第一综合色| 亚洲影视资源网| 一片黄亚洲嫩模| 亚洲欧美欧美一区二区三区| 中文字幕一区二区三区在线播放| 久久久高清一区二区三区| 久久久久久99久久久精品网站| 日韩免费高清视频| 精品久久久久久久久久久院品网| 欧美一级日韩不卡播放免费| 欧美二区乱c少妇| 91精品国产综合久久国产大片| 欧美日韩在线播放三区四区| 欧美日韩成人在线一区| 欧美日韩国产一区| 欧美绝品在线观看成人午夜影视| 欧美日韩高清不卡| 日韩欧美精品三级| 欧美成人一区二区三区片免费 | 欧美日韩国产免费一区二区 | 在线观看一区二区精品视频| 色视频一区二区| 欧美体内she精高潮| 欧美日韩视频专区在线播放| 制服丝袜av成人在线看| 日韩欧美综合一区| 久久久久久免费| 国产精品国产自产拍高清av王其| 自拍视频在线观看一区二区| 亚洲伊人色欲综合网| 亚洲不卡在线观看| 久久99精品久久久久久| 国产成人超碰人人澡人人澡| 91丝袜国产在线播放| 欧美日本精品一区二区三区| 日韩精品在线看片z| 久久精品夜色噜噜亚洲a∨| 成人欧美一区二区三区在线播放| 一区二区三区在线观看视频| 日本视频中文字幕一区二区三区| 免费成人美女在线观看.| 激情成人综合网| 在线观看免费视频综合| 欧美一区二区三区啪啪| 国产免费久久精品| 一区二区三区在线免费播放| 久久成人18免费观看| av不卡免费电影| 日韩免费视频一区| 亚洲色欲色欲www| 国产一区二区中文字幕| 91高清视频在线| 精品88久久久久88久久久| 亚洲免费av观看| 国产精品一区二区久久不卡| 欧美性一级生活| 国产三级精品在线| 亚洲高清免费观看高清完整版在线观看| 麻豆一区二区三区| 色诱亚洲精品久久久久久| 精品国产一区二区精华| 夜夜精品视频一区二区| 国产原创一区二区| 制服丝袜亚洲色图| 亚洲欧美日韩综合aⅴ视频| 狠狠狠色丁香婷婷综合激情| 精品视频一区二区三区免费| 国产精品毛片久久久久久| 日本视频在线一区| 91精品办公室少妇高潮对白| 国产女同性恋一区二区| 裸体歌舞表演一区二区| 欧美一a一片一级一片| 国产精品乱码一区二区三区软件| 日本不卡123| 欧美高清视频www夜色资源网| 国产精品免费免费| 国产乱码精品一品二品| 91精品国产手机| 性做久久久久久久久| 欧洲色大大久久| 亚洲欧美一区二区不卡| 成人不卡免费av| 国产精品热久久久久夜色精品三区| 黄色成人免费在线| 欧美成人a∨高清免费观看| 午夜久久久久久久久久一区二区| 在线免费一区三区| 亚洲猫色日本管| 一本一道久久a久久精品| 国产精品入口麻豆原神| 成人精品视频一区| 国产精品盗摄一区二区三区| 岛国一区二区在线观看| 久久日一线二线三线suv| 精品一区二区三区av| 精品福利一区二区三区| 精品亚洲欧美一区| 久久免费偷拍视频|