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

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

?? systffs.c

?? 菲利普22系列 vxworks bsp 可以用來可以和其他版本的ARM vxworks bsp(特別是7內(nèi)核的進行比較)進行比較可以加深對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 精英arm7開發(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.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品综合久久久久久| 精品一区二区免费| 色噜噜狠狠成人中文综合| 国产精品久久久一区麻豆最新章节| 精品无码三级在线观看视频| 久久这里只精品最新地址| 国产高清不卡二三区| 久久精品夜色噜噜亚洲a∨| 大陆成人av片| 日韩码欧中文字| 欧美性淫爽ww久久久久无| 亚瑟在线精品视频| 91精品国产欧美一区二区成人| 老司机精品视频线观看86| 久久婷婷成人综合色| 97久久精品人人做人人爽50路| 曰韩精品一区二区| 日韩一二三区视频| 成人免费毛片片v| 亚洲国产wwwccc36天堂| 欧美一区二区国产| 国产aⅴ综合色| 亚洲激情中文1区| 日韩精品一区二区在线观看| 国产不卡视频在线播放| 一区二区三区在线免费播放| 欧美高清一级片在线| 国产一区999| 亚洲激情图片一区| 精品国产乱码久久久久久久 | 久久综合丝袜日本网| 99久久精品费精品国产一区二区 | 婷婷一区二区三区| 久久久久国产一区二区三区四区| 91浏览器在线视频| 激情综合色综合久久| 一区二区三区丝袜| www亚洲一区| 欧美四级电影在线观看| 国产乱码字幕精品高清av | 91精品国产一区二区三区蜜臀| 国产一区二区三区在线观看免费| 亚洲啪啪综合av一区二区三区| 欧美日韩国产高清一区二区三区| 国产ts人妖一区二区| 亚洲成国产人片在线观看| 欧美国产精品中文字幕| 欧美精品高清视频| 91在线视频观看| 国产一区二区毛片| 亚洲bt欧美bt精品| 自拍偷拍国产亚洲| 2014亚洲片线观看视频免费| 欧美精品乱码久久久久久按摩| www.欧美日韩| 国产高清不卡一区| 久久精品99国产国产精| 亚洲国产一区二区a毛片| 中文字幕久久午夜不卡| 日韩精品一区二区三区四区视频| 日本高清不卡aⅴ免费网站| 国产福利电影一区二区三区| 麻豆精品国产91久久久久久| 亚洲综合成人在线| 国产精品久久久久久久久果冻传媒 | 久久久久成人黄色影片| 91精品免费观看| 欧美喷水一区二区| 91久久精品日日躁夜夜躁欧美| 成人激情av网| 成人美女视频在线看| 国产91高潮流白浆在线麻豆| 激情综合一区二区三区| 久久99国产精品久久| 日韩av在线播放中文字幕| 午夜久久电影网| 亚洲福利视频三区| 午夜影院久久久| 日韩国产在线观看一区| 午夜av一区二区三区| 午夜伊人狠狠久久| 日韩中文字幕一区二区三区| 婷婷成人激情在线网| 日韩精品一二三四| 久久精品二区亚洲w码| 国产一区二区三区免费观看| 国产美女在线精品| 岛国av在线一区| 91一区一区三区| 欧美午夜精品免费| 666欧美在线视频| 日韩精品一区二区三区中文不卡| 久久久综合视频| 国产精品国产精品国产专区不片 | 亚洲精品欧美在线| 亚洲国产欧美在线| 日韩精品福利网| 国产综合久久久久久久久久久久| 国产乱码一区二区三区| 风间由美性色一区二区三区| 99精品一区二区三区| 欧美性受xxxx黑人xyx性爽| 欧美丰满一区二区免费视频| 91精品国产91久久综合桃花| 2014亚洲片线观看视频免费| 国产精品久久网站| 日韩精品成人一区二区在线| 激情综合色综合久久| 成人动漫一区二区三区| 在线观看免费视频综合| 日韩欧美国产麻豆| 最近日韩中文字幕| 日本不卡高清视频| www.66久久| 欧美一区二区视频网站| 中日韩免费视频中文字幕| 亚洲一区二区三区在线播放| 精品一区二区三区欧美| yourporn久久国产精品| 91精品黄色片免费大全| 国产精品网友自拍| 日韩和欧美的一区| 91视频.com| 欧美sm美女调教| 亚洲精品精品亚洲| 国产精品一区二区91| 欧美视频在线一区| 欧美激情一区二区三区四区| 日韩国产精品久久| 97精品国产97久久久久久久久久久久| 欧美日韩aaa| 欧美人妖巨大在线| 日韩午夜小视频| 亚洲精品国产a久久久久久| 蜜臀av在线播放一区二区三区| 国产永久精品大片wwwapp| 欧美日韩精品电影| 国产日韩欧美精品电影三级在线| 玉足女爽爽91| 国产精品亚洲第一| 欧美一区二区三区喷汁尤物| 国产精品国产三级国产普通话99| 丝袜诱惑制服诱惑色一区在线观看| 国产一区二区在线观看免费| 成人免费视频播放| 久久奇米777| 午夜精品久久久| kk眼镜猥琐国模调教系列一区二区 | 不卡一区在线观看| 欧美一区三区二区| 亚洲免费成人av| 国产一区二区三区蝌蚪| 欧美午夜电影在线播放| 亚洲国产成人午夜在线一区| 精品在线播放午夜| 91国产视频在线观看| 国产日韩精品一区| 免费不卡在线观看| 欧美中文字幕亚洲一区二区va在线| 国产拍揄自揄精品视频麻豆| 视频在线观看国产精品| 色先锋久久av资源部| 欧美大片免费久久精品三p| 日韩精品亚洲一区二区三区免费| 99这里都是精品| 日本一区二区成人| 国产一区二区不卡| 中文字幕国产一区| 国产精品一品视频| 久久久亚洲国产美女国产盗摄 | 91丨九色丨蝌蚪丨老版| 欧美一二三四在线| 蜜臀av国产精品久久久久 | 91麻豆视频网站| 国产日本欧美一区二区| 免费欧美日韩国产三级电影| 欧美一卡二卡三卡| 免费在线观看视频一区| 91麻豆精品国产91久久久久久 | 国产精品久久久久影院老司| 国产一区二区三区四区五区美女| 日韩午夜激情av| 国产精品911| 国产精品免费视频观看| 99久久国产综合色|国产精品| 精品国产91洋老外米糕| 国产成人免费av在线| 国产欧美一区二区精品仙草咪| 国产精品一区二区无线| 国产欧美日韩在线视频| 91麻豆免费视频| 亚洲一区二区三区四区五区黄| 欧美在线一区二区| 亚洲另类春色校园小说| 成人福利视频在线| 一区二区三区在线免费观看| 欧美日韩一级大片网址| 青青草国产精品97视觉盛宴| 欧美日本高清视频在线观看| 国产一区二区视频在线|