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

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

?? inand.h

?? CY7C68033芯片 USB DEVICE 代碼;標準c代碼
?? H
?? 第 1 頁 / 共 2 頁
字號:
    NAND_CLE=1, P_XGPIFSGLDATLX=cNAND_READ_START, NAND_CLE=0;\
}

#define n2k_wadd(a, msk)                                     \
{                                                            \
    NAND_CLE=1,P_XGPIFSGLDATLX=cNAND_WRITE_DATA, NAND_CLE=0; \
    NAND_ALE = 1, P_XGPIFSGLDATLX = nadd0[msk];              \
    P_XGPIFSGLDATLX = nadd1[msk];                            \
    P_XGPIFSGLDATLX = ((BYTE *)&a)[3];                       \
    P_XGPIFSGLDATLX = ((BYTE *)&a)[2];                       \
    P_XGPIFSGLDATLX = ((BYTE *)&a)[1];                       \
    NAND_ALE = 0;                                            \
}


#define n2k_set_radd()                                       \
{                                                            \
    NAND_CLE=1,P_XGPIFSGLDATLX=cNAND_READ_DATA, NAND_CLE=0;  \
    NAND_ALE = 1, P_XGPIFSGLDATLX = 0;                       \
    _nop_();                                                 \
    P_XGPIFSGLDATLX = 0;                                     \
    P_XGPIFSGLDATLX = ((BYTE *)&gPhyAdd)[3];                 \
    P_XGPIFSGLDATLX = ((BYTE *)&gPhyAdd)[2];                 \
    P_XGPIFSGLDATLX = ((BYTE *)&gPhyAdd)[1];                 \
    NAND_ALE = 0;                                            \
    NAND_CLE=1, P_XGPIFSGLDATLX=cNAND_READ_START, NAND_CLE=0;\
}


//==========================================================================
// 512P NAND Set address
//==========================================================================
#define n512_setadd(c, a)                      \
{                                              \
    NAND_CLE=1,P_XGPIFSGLDATLX=c, NAND_CLE=0;  \
    NAND_ALE = 1, P_XGPIFSGLDATLX = 0;         \
    P_XGPIFSGLDATLX = ((BYTE *)&a)[3];         \
    P_XGPIFSGLDATLX = ((BYTE *)&a)[2];         \
    P_XGPIFSGLDATLX = ((BYTE *)&a)[1];         \
    NAND_ALE = 0;                              \
}     

//==========================================================================
// NAND Erase Block command can be used in both 512P and 2KP
//==========================================================================
#define nand_blk_erase(a)                                \
{                                                        \
    nand_ready3();                                       \
    NAND_CLE=1,P_XGPIFSGLDATLX=cNAND_ERASE, NAND_CLE=0;  \
    NAND_ALE = 1;                                        \
    P_XGPIFSGLDATLX = ((BYTE *)&a)[3];                   \
    P_XGPIFSGLDATLX = ((BYTE *)&a)[2];                   \
    P_XGPIFSGLDATLX = ((BYTE *)&a)[1];                   \
    NAND_ALE = 0;                                        \
    NAND_CLE=1,P_XGPIFSGLDATLX=cNAND_ERASE_FINISH, NAND_CLE=0; \
}     

//==========================================================================
// Debug the Log2Phy variables
//==========================================================================
#ifndef DEBUG
#define DBUG_DUMP()
#else
#define DBUG_DUMP()                \
{                                  \     
   *(xbyte*)0xe1e0 = gCurZone;     \
   *(xbyte*)0xe1e1 = z;            \
   *(xbyte*)0xe1e2 = zz;           \
   *(xbyte*)0xe1e3 = page;         \
   *(xword*)0xe1e4 = gDst;         \
   *(xword*)0xe1e6 = gSrc;         \
   *(xdword*)0xe1ec = gPhyAdd;     \
   *(xdword*)0xe1f0 = gSrcAdd;     \
}
#endif

//==========================================================================
// Use FIFO6 as buffer
//==========================================================================
#define fifo6_in()    P_FIFORESET=6, P_EP6CFG=EP6CFG_IN_DEFAULT
#define fifo6_out()   P_FIFORESET=6, P_EP6BCL = P_EP6CFG=EP6CFG_OUT_DEFAULT
#define ARM_EP2()     { P_OUTPKTEND = 2; _nop_(); P_OUTPKTEND = 2; } 


//==========================================================================
// local define for speed optimize
//==========================================================================
#define xLBA3                      (((BYTE *)&dwLBA)[3])
#define xFerLen2                   (((BYTE *)&dataTransferLen)[2])
#define xFerLen1                   (((BYTE *)&dataTransferLen)[1])
#define xSector                    (((BYTE *)&gSectorcount)[1])
#define xPhyAdd                    (((BYTE *)&gPhyAdd)[3])
#define xSrcAdd                    (((BYTE *)&gSrcAdd)[3])
#define nand_send_command(cmd)     NAND_CLE=1, P_XGPIFSGLDATLX=cmd, NAND_CLE=0
#define nand_get(stat)             (NAND_CLE=1, P_XGPIFSGLDATLX=cNAND_READ_STATUS, NAND_CLE=0, P_XGPIFSGLDATLX, stat= P_XGPIFSGLDATLNOX) 

#define writePIO16(e, c)           { P_GPIFTCB1=MSB(c),P_GPIFTCB0= LSB(c), GPIFTRIG=e, _nop_(); while (!gpifIdle()); }
#define readPIO16(e,c)             { P_GPIFTCB1=MSB(c),P_GPIFTCB0= LSB(c), GPIFTRIG=(4|e), _nop_(); while (!gpifIdle()); }
#define FifoRd                     readPIO16
#define FifoWr                     writePIO16

//==========================================================================
// NAND Definition stuff
//==========================================================================
#define cNAND_DSIZE              (512-1)   // adjust for both read/write
#define cNAND_REDUNDANT_SIZE     (16-1)
#define cNAND_PSIZE              (528-1)
#define cNAND_RSIZ               12-1
#define NAND_ATA_SECTOR_SIZE     512
#define cCFG_ECC_OFF             0x0a       // ECC offset in the redundant area

#define NAND_SCSI_CMD_VENDOR_CBW 0xC8
#define EP4CFG_DEFAULT           0xE0  // valid, IN, BULK, 512, double
#define EP2CFG_DEFAULT           0xA2  // valid, OUT, BULK, 512, double

#define TOTAL_SECTORS        0x3E800   // 128MB

#define cMaxBlkChk               24     // max 24 blocks
#define cINQUIRY_OFFSET          0x10
#define cINQUIRY_LENGTH          0x20   // INQUIRY Length
#define cVID_OFFSET              0
#define cHALF_BUFF_OFFSET        0x100  // offset for half buffer
#define cSTRING_OFFSET           0x30   // String offset from Vendor Config page
#define cNAND_CFG_LENGTH         0xE0   // From Inquiry offset

#define cMaxBlock      1024       // number of block in a Zone
#define cMaxBlock2N    10         // 2^10 = 1024
#define cMaxLogical    1000       // maximum logical per block
#define cBLK_INIT      0x0400     // block init
#define cBLK_aMSK      (0x03ff|cBLK_INIT) // bit0-10 block address mask: valid 0-1023

#ifdef NAND_2K
#define cMaxZone       4          // maximun zone for 2K NAND is 4
#define NAND_PCPY      nNandMove
#else
#define cMaxZone       8          // maximun zone for 512 is 8 
#define NAND_PCPY      nCopyPages
#endif

#define cRedundantSize 16
#define cBLK_USE       0x8000     // bit15=1=use else free
#define cBLK_CFG       0x4000     // Config Block or other cases
#define cBLK_ECC       0x2000     // check for repeat ECC error

#define cBLK_BAD       0x4000     // Bad Block
#define cBLK_uMSK      (cBLK_USE|cBLK_CFG)   // both bits are cleared = Block Free

#define c512PageSize   32
#define c2KPageSize    64
#define c2KPageSize2N  6
#define c512PageSize2N 5
#define cAddOffset     8
#define cECCOffset     2
#define c1Gbit_2N      0xd     // 2^13 = 8192
#define c512Mbit_2N    0xc     // 2^12 = 4096

#define ECCBUF         0xE62A
#define EP4FIFO        (0xF400+cECCOffset)
#define cEP6FIFO       (EP6FIFOBUF+512+cECCOffset)

#define cTOSHIBA_ID    0x98
#define cST_ID         0x20
#define cHYNIX_ID      0xad
#define cSAMSUNG_ID    0xec


//==========================================================================
// Local defines from the mass storage class spec
//==========================================================================
#define SC_MASS_STORAGE_RESET       0xff
#define SC_GET_MAX_LUN              0xfe
#define SC_HID_SET_IDLE             0xa

#define CBW_TAG                     4
#define CBW_DATA_TRANSFER_LEN_LSB   8
#define CBW_DATA_TRANSFER_LEN_MSB   9
#define CBW_FLAGS                   12
#define CBW_FLAGS_DIR_BIT           0x80
#define CBW_LUN                     13
#define CBW_CBW_LEN                 14
#define CBW_CBW_LEN_MASK            0xf
#define CBW_DATA_START              15

#define   min(a,b) (((a)<(b))?(a):(b))
#define   max(a,b) (((a)>(b))?(a):(b))

#define senseCRCError               0
#define senseInvalidFieldInCDB      1
#define senseOk                     2
#define senseNoMedia                3
#define senseWriteFault             4
#define senseReadError              5
#define senseAddrNotFound           6
#define senseInvalidOpcode          7
#define senseInvalidLBA             8
#define senseInvalidParameter       9
#define senseCantEject              0xa
#define senseMediaChanged           0xb
#define senseDeviceReset            0xc
#define senseWriteProtected         0xd

#define USBS_PASSED      0
#define USBS_FAILED      1
#define USBS_PHASE_ERROR 2

// Fields in the INQUIRY
#define SCSI_INQUIRY_DEVICE_CLASS      0
#define SCSI_INQUIRY_REMOVABLE_BIT     0x80
#define SCSI_INQUIRY_REMOVABLE_BYTE    1
#define ATAPI_INQUIRY_REMOVABLE_BYTE   0
#define SCSI_INQUIRY_DATA_FORMAT       3
#define SCSI_INQUIRY_MANUFACTURER      8
#define ATAPI_INQUIRY_MANUFACTURER     27
#define SCSI_INQUIRY_MANUFACTURER_LEN  24
#define ATAPI_INQUIRY_REVISION         73
#define SCSI_INQUIRY_REVISION          32
#define SCSI_INQUIRY_REVISION_LEN      4


// SHORT_PACKET_BEFORE_STALL - Determines if a short packet is sent prior to
// the STALL ofan IN endpoint. The USB Mass Storage Class Bulk-Only
// Specification allows a device to send a short or zero-length IN packet
// prior to returning a STALL handshake for certain cases. Certain host
// controller drivers may require a short packet prior to STALL.
#define SHORT_PACKET_BEFORE_STALL   TRUE

#define dataTransferLenLSW	((WORD *) (&dataTransferLen))[1]
#define pStr3Offset ((WORD)(halfKBuffer + (BYTE)&Str3Offset))
#define pVendorOffset ((WORD)(halfKBuffer + (BYTE)&VendorOffset))
#define pHighSpeedConfigDscr ((WORD)(halfKBuffer + (BYTE)&HighSpeedConfigDscrOffset))
#define pDscrVID ((WORD)(halfKBuffer + (BYTE)&DscrVIDOffset))

#define pLSB(offset)   LSB((WORD)(halfKBuffer + (BYTE)&offset))  // general macro usage

#define HS_BULK_PACKET_SIZE     0x200
#define FS_BULK_PACKET_SIZE     0x40
#define BUFFER_SIZE 240         // halfKBuffer buffer size


#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美视频一区在线观看| 久久色中文字幕| 久久这里都是精品| 一区二区三区日本| 国产一区二区影院| 欧美日韩成人激情| 国产精品久久三区| 久久超级碰视频| 欧美三级中文字幕| 亚洲精品视频免费观看| 国产夫妻精品视频| 欧美v国产在线一区二区三区| 国产精品青草综合久久久久99| 男女男精品网站| 欧美在线色视频| 自拍偷拍亚洲欧美日韩| 韩国欧美国产1区| 日韩欧美在线影院| 视频在线在亚洲| 欧美色精品天天在线观看视频| 中文字幕亚洲成人| 国产电影精品久久禁18| wwwwww.欧美系列| 久久狠狠亚洲综合| 91精品国产色综合久久ai换脸| 一区二区三区高清不卡| 成人a级免费电影| 国产亚洲精品福利| 国产成人综合精品三级| 精品日韩欧美一区二区| 免费观看日韩av| 日韩欧美中文一区| 美国毛片一区二区| 日韩欧美亚洲国产精品字幕久久久 | 91亚洲精品久久久蜜桃网站| 国产日产欧美一区二区视频| 国产在线一区观看| 精品黑人一区二区三区久久| 精品写真视频在线观看 | eeuss鲁一区二区三区| 国产欧美综合在线观看第十页 | 丁香啪啪综合成人亚洲小说| 久久久久久97三级| 成人中文字幕在线| 日韩一区中文字幕| 欧美日韩亚洲综合| 日本亚洲免费观看| 久久欧美中文字幕| 丁香桃色午夜亚洲一区二区三区| 国产精品福利一区| 色狠狠桃花综合| 亚洲无人区一区| 日韩视频免费观看高清完整版在线观看 | 91亚洲精品久久久蜜桃| 亚洲自拍与偷拍| 91精品国产综合久久蜜臀| 国产专区综合网| 国产精品网站一区| 欧美日韩国产系列| 国产一区中文字幕| 国产精品久久久一本精品| 欧美亚洲综合网| 九九视频精品免费| 国产精品乱人伦中文| 欧美日韩在线三级| 国产中文一区二区三区| 亚洲欧美另类久久久精品| 欧美精三区欧美精三区 | 奇米色一区二区| 国产精品沙发午睡系列990531| 欧美色图12p| 国产一区三区三区| 亚洲自拍偷拍图区| 国产色产综合色产在线视频| 欧美视频三区在线播放| 国产精品自拍三区| 亚洲第一成人在线| 亚洲欧美在线aaa| 欧美一区二区国产| 色综合欧美在线视频区| 激情欧美一区二区三区在线观看| 亚洲日本成人在线观看| 久久一区二区视频| 91精品国产综合久久精品麻豆| 丁香天五香天堂综合| 麻豆91在线观看| 夜夜嗨av一区二区三区中文字幕 | 久久精品久久99精品久久| 亚洲婷婷综合久久一本伊一区| 精品国产一区二区亚洲人成毛片| 色婷婷精品久久二区二区蜜臂av| 韩国v欧美v日本v亚洲v| 日本亚洲三级在线| 亚洲午夜久久久| 综合av第一页| 中文字幕免费在线观看视频一区| 欧美成人高清电影在线| 欧美人与性动xxxx| 欧美色图一区二区三区| k8久久久一区二区三区| 国产精品99久久不卡二区| 日本美女一区二区三区视频| 亚洲午夜一二三区视频| 亚洲欧美区自拍先锋| 国产精品天天看| 国产亚洲精品aa| 精品久久久久久无| 欧美成人福利视频| 欧美一区二区三区视频免费播放 | 午夜一区二区三区视频| 亚洲欧美激情在线| 亚洲精品视频在线观看免费| 亚洲乱码国产乱码精品精的特点| 中文字幕不卡在线观看| 日本一区二区三区在线不卡| 久久亚洲私人国产精品va媚药| www久久久久| 久久久久久9999| 国产女人18水真多18精品一级做| 久久久久9999亚洲精品| 国产亚洲欧美一级| 成人欧美一区二区三区1314| 国产精品二区一区二区aⅴ污介绍| 亚洲国产精品国自产拍av| 国产精品进线69影院| 亚洲三级电影全部在线观看高清| 国产精品电影院| 亚洲综合999| 日韩黄色片在线观看| 久久黄色级2电影| 国产成人在线免费观看| av激情成人网| 欧美体内she精高潮| 欧美一区二区视频在线观看| 久久这里只精品最新地址| 国产日韩欧美综合一区| 亚洲免费av在线| 日韩制服丝袜av| 韩国精品久久久| 91视频一区二区三区| 在线不卡中文字幕| 欧美精品一区二区在线观看| 国产精品美日韩| 亚洲午夜一区二区| 国产一区二区精品久久99| jizz一区二区| 91精品蜜臀在线一区尤物| 国产色婷婷亚洲99精品小说| 一区二区欧美在线观看| 麻豆精品一区二区三区| 99精品热视频| 欧美一区二区三区白人| 日本一区二区成人| 日韩在线观看一区二区| 盗摄精品av一区二区三区| 欧美伦理视频网站| 国产欧美日本一区二区三区| 婷婷综合五月天| 成人av动漫在线| 在线成人午夜影院| 亚洲视频一二三| 狠狠狠色丁香婷婷综合久久五月| 色悠悠久久综合| 久久久久国色av免费看影院| 午夜精品福利一区二区三区av| 国产精品一区二区久激情瑜伽| 欧美亚洲高清一区| 国产精品萝li| 久久国产麻豆精品| 欧美午夜影院一区| 国产精品传媒入口麻豆| 激情图区综合网| 91精品国产综合久久香蕉麻豆 | 欧美激情综合五月色丁香小说| 亚洲成a人片在线不卡一二三区 | 国产精品家庭影院| 精品一区二区三区av| 欧美高清视频在线高清观看mv色露露十八| 国产性天天综合网| 精品一区免费av| 欧美精品xxxxbbbb| 亚洲自拍另类综合| 色噜噜久久综合| 中文字幕一区二区在线播放| 国产一区二区剧情av在线| 日韩欧美国产麻豆| 日本最新不卡在线| 欧美日韩国产不卡| 一区二区三区国产精华| 91亚洲精品久久久蜜桃| 中文字幕综合网| 国产91高潮流白浆在线麻豆| 久久综合九色综合欧美就去吻| 日本在线不卡一区| 91精品欧美综合在线观看最新| 亚洲综合精品自拍| 欧美专区日韩专区| 伊人开心综合网| 91黄色小视频| 亚洲一线二线三线视频|