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

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

?? nor.h

?? TI DM6446 EVM 串口下載程序 使用環(huán)境:windows dos環(huán)境或者linux 使用前需安裝mono
?? H
字號:
/* --------------------------------------------------------------------------
    FILE        : nor.h
    PURPOSE     : NOR driver header file
    PROJECT     : DaVinci User Boot-Loader and Flasher
    AUTHOR      : Daniel Allred
    DATE	    : Jan-22-2007

    HISTORY
 	    v1.00 completion
 	        Daniel Allred - Jan-22-2007
 ----------------------------------------------------------------------------- */

 
#ifndef _NOR_H_
#define _NOR_H_

#include "tistdtypes.h"
#include "dm644x.h"

/************* Constants and Macros **************/
#define BUS_8BIT    0x01
#define BUS_16BIT   0x02
#define BUS_32BIT   0x04

/**************** DEFINES for AMD Basic Command Set **************/
#define AMD_CMD0                    0xAA        // AMD CMD PREFIX 0
#define AMD_CMD1                    0x55        // AMD CMD PREFIX 1
#define AMD_CMD0_ADDR               0x555       // AMD CMD0 Offset 
#define AMD_CMD1_ADDR               0x2AA       // AMD CMD1 Offset 
#define AMD_CMD2_ADDR       	    0x555       // AMD CMD2 Offset 
#define AMD_ID_CMD                  0x90        // AMD ID CMD
#define AMD_MANFID_ADDR             0x00        // Manufacturer ID offset
#define AMD_DEVID_ADDR0             0x01        // First device ID offset
#define AMD_DEVID_ADDR1             0x0E        // Offset for 2nd byte of 3 byte ID 
#define AMD_DEVID_ADDR2             0x0F        // Offset for 3rd byte of 3 byte ID 
#define AMD_ID_MULTI                0x7E        // First-byte ID value for 3-byte ID
#define AMD_RESET                   0xF0        // AMD Device Reset Command
#define AMD_BLK_ERASE_SETUP_CMD     0x80        // Block erase setup
#define AMD_BLK_ERASE_CMD	        0x30        // Block erase confirm
#define AMD_BLK_ERASE_DONE	        0xFFFF      // Block erase check value
#define AMD_PROG_CMD                0xA0        // AMD simple Write command
#define AMD_WRT_BUF_LOAD_CMD        0x25        // AMD write buffer load command
#define AMD_WRT_BUF_CONF_CMD        0x29        // AMD write buffer confirm command

/**************** DEFINES for Intel Basic Command Set **************/
#define INTEL_ID_CMD            0x90        // Intel ID CMD
#define INTEL_MANFID_ADDR       0x00        // Manufacturer ID offset
#define INTEL_DEVID_ADDR        0x01        // Device ID offset
#define INTEL_RESET             0xFF        // Intel Device Reset Command
#define INTEL_ERASE_CMD0        0x20        // Intel Erase command
#define INTEL_ERASE_CMD1        0xD0        // Intel Erase command
#define INTEL_WRITE_CMD         0x40        // Intel simple write command
#define INTEL_WRT_BUF_LOAD_CMD  0xE8        // Intel write buffer load command
#define INTEL_WRT_BUF_CONF_CMD  0xD0        // Intel write buffer confirm command
#define INTEL_LOCK_CMD0         0x60        // Intel lock mode command
#define INTEL_LOCK_BLOCK_CMD    0x01        // Intel lock command
#define INTEL_UNLOCK_BLOCK_CMD  0xD0        // Intel unlock command
#define INTEL_CLEARSTATUS_CMD   0x50        // Intel clear status command


/**************** DEFINES for CFI Commands and Table **************/

// CFI Entry and Exit commands
#define CFI_QRY_CMD             0x98U
#define CFI_EXIT_CMD            0xF0U

// CFI address locations
#define CFI_QRY_CMD_ADDR        0x55U

// CFI Table Offsets in Bytes
#define CFI_Q                   0x10
#define CFI_R                   0x11
#define CFI_Y                   0x12
#define CFI_CMDSET              0x13
#define CFI_CMDSETADDR          0x15
#define CFI_ALTCMDSET           0x17
#define CFI_ALTCMDSETADDR       0x19
#define CFI_MINVCC              0x1B
#define CFI_MAXVCC              0x1C
#define CFI_MINVPP              0x1D
#define CFI_MAXVPP              0x1E
#define CFI_TYPBYTEPGMTIME      0x1F
#define CFI_TYPBUFFERPGMTIME    0x20
#define CFI_TYPBLOCKERASETIME   0x21
#define CFI_TYPCHIPERASETIME    0x22
#define CFI_MAXBYTEPGMTIME      0x23
#define CFI_MAXBUFFERPGMTIME    0x24
#define CFI_MAXBLOCKERASETIME   0x25
#define CFI_MAXCHIPERASETIME    0x26
#define CFI_DEVICESIZE          0x27
#define CFI_INTERFACE           0x28
#define CFI_WRITESIZE           0x2A
#define CFI_NUMBLKREGIONS       0x2C
#define CFI_BLKREGIONS          0x2D
#define CFI_BLKREGIONSIZE       0x04

// Maximum number of block regions supported
#define CFI_MAXREGIONS          0x06

/*********************** Enumerated types *************************/
// Supported Flash Manufacturers
enum FlashManufacturerID {
    UNKNOWN_ID = 0x00,
    AMD = 0x01,
    FUJITSU = 0x04,
    INTEL = 0x89,
    MICRON = 0x2C,
    SAMSUNG = 0xEC,
    SHARP = 0xB0
};
typedef enum FlashManufacturerID MANFID;

// Supported CFI command sets
enum FlashCommandSet {
    UNKNOWN_CMDSET = 0x0000,
    INTEL_EXT_CMDSET = 0x0001,
    AMD_BASIC_CMDSET = 0x0002,
    INTEL_BASIC_CMDSET = 0x0003,
    AMD_EXT_CMDSET = 0x0004,
    MITSU_BASIC_CMDSET = 0x0100,
    MITSU_EXT_CMDSET = 0x0101
    
};
typedef enum FlashCommandSet CMDSET;

/*************************** Structs *********************************/
// Struct to hold discovered flash parameters
typedef struct _NOR_MEDIA_STRUCT_ {
   Uint32       flashBase;                          // 32-bit address of flash start
   Uint8        busWidth;                           // 8-bit or 16-bit bus width
   Uint8        chipOperatingWidth;                 // The operating width of each chip
   Uint8        maxTotalWidth;                      // Maximum extent of width of all chips combined - determines offset shifts
   Uint32       flashSize;                          // Size of NOR flash regions in bytes (numberDevices * size of one device)
   Uint32       bufferSize;                         // Size of write buffer
   CMDSET       commandSet;                         // command set id (see CFI documentation)
   Uint8        numberDevices;                      // Number of deives used in parallel
   Uint8        numberRegions;                      // Number of regions of contiguous regions of same block size
   Uint32       numberBlocks[CFI_MAXREGIONS];    // Number of blocks in a region
   Uint32       blockSize[CFI_MAXREGIONS];       // Size of the blocks in a region
   MANFID       manfID;                             // Manufacturer's ID
   Uint16       devID1;                             // Device ID
   Uint16       devID2;                             // Used for AMD 3-byte ID devices
} NOR_INFO, *PNOR_INFO;

typedef union {
	Uint8 c;
	Uint16 w;
	Uint32 l;
} FLASHData;

typedef union {
	VUint8 *cp;
	VUint16 *wp;
	VUint32 *lp;
} FLASHPtr;


/*************************** Function Prototypes *************************/

// Global NOR commands
Uint32 NOR_Init ();
Uint32 NOR_Copy(void);
Uint32 NOR_WriteBytes(Uint32 writeAddress, Uint32 numBytes, Uint32 readAddress);
Uint32 NOR_GlobalErase();
Uint32 NOR_Erase(Uint32 start_address, Uint32 size);
Uint32 DiscoverBlockInfo(Uint32 address,Uint32* blockSize, Uint32* blockAddr);

// Flash Identification  and Discovery
Uint32 QueryCFI( Uint32 baseAddress );

// Generic functions to access flash data and CFI tables
VUint8 *flash_make_addr (Uint32 blkAddr, Uint32 offset);
void flash_make_cmd (Uint8 cmd, void *cmdbuf);
void flash_write_cmd (Uint32 blkAddr, Uint32 offset, Uint8 cmd);
void flash_write_data(Uint32 address, Uint32 data);
void flash_write_databuffer(Uint32* address, void* data, Uint32 numBytes);
Uint32 flash_verify_databuffer(Uint32 address, void* data, Uint32 numBytes);
Uint32 flash_read_data(Uint32 address, Uint32 offset);
FLASHData flash_read_CFI_bytes (Uint32 blkAddr, Uint32 offset, Uint8 numBytes);
Bool flash_isequal (Uint32 blkAddr, Uint32 offset, Uint8 val);
Bool flash_issetall (Uint32 blkAddr, Uint32 offset, Uint8 mask);
Bool flash_issetsome (Uint32 blkAddr, Uint32 offset, Uint8 mask);

// Generic commands that will point to either AMD or Intel command set
Uint32 (* Flash_Write)(Uint32, VUint32);
Uint32 (* Flash_BufferWrite)( Uint32, VUint8[], Uint32);
Uint32 (* Flash_Erase)(Uint32);
Uint32 (* Flash_ID)(Uint32);

// Empty commands for when neither command set is used
Uint32 Unsupported_Erase( Uint32 );
Uint32 Unsupported_Write( Uint32, VUint32 );
Uint32 Unsupported_BufferWrite( Uint32, VUint8[], Uint32 );
Uint32 Unsupported_ID( Uint32 );

//Intel pointer-mapped commands
Uint32 Intel_Erase( VUint32 blkAddr);
Uint32 Intel_Write( Uint32 address, VUint32 data );
Uint32 Intel_BufferWrite( Uint32 address, VUint8 data[], Uint32 numBytes );
Uint32 Intel_ID( Uint32 );

//AMD pointer-mapped commands
Uint32 AMD_Erase(Uint32 blkAddr);
Uint32 AMD_Write( Uint32 address, VUint32 data );
Uint32 AMD_BufferWrite(Uint32 address, VUint8 data[], Uint32 numBytes );
Uint32 AMD_ID( Uint32 );

// Misc. Intel commands
Uint32 Intel_Clear_Lock(VUint32 blkAddr);
Uint32 Intel_Set_Lock(VUint32 blkAddr);
Uint32 Intel_Lock_Status_Check();
void Intel_Soft_Reset_Flash();
void Intel_Clear_Status();
void Intel_Wait_For_Status_Complete();

// Misc. AMD commands
void AMD_Soft_Reset_Flash();
void AMD_Prefix_Commands();
void AMD_Write_Buf_Abort_Reset_Flash();

#endif //_NOR_H_

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一卡二卡三卡| 国产综合久久久久久鬼色| 在线亚洲+欧美+日本专区| 亚洲视频每日更新| 日本黄色一区二区| 日韩成人一区二区| 精品噜噜噜噜久久久久久久久试看| 极品少妇xxxx精品少妇偷拍| 精品国产伦一区二区三区免费| 国产成人在线电影| 《视频一区视频二区| 欧美在线一二三| 蜜臀久久99精品久久久久宅男 | 亚洲欧美日韩国产成人精品影院| 99视频一区二区| 亚洲一区二区三区在线| 91麻豆精品91久久久久同性| 激情欧美一区二区三区在线观看| 国产欧美日韩久久| 在线观看免费亚洲| 麻豆成人久久精品二区三区小说| 中文字幕免费一区| 精品视频全国免费看| 国模一区二区三区白浆| 综合欧美一区二区三区| 91精品久久久久久蜜臀| 成人一区二区三区视频| 一区二区三区日韩| 精品日韩成人av| 91在线一区二区三区| 麻豆精品久久精品色综合| 中文字幕成人在线观看| 欧美日韩国产精选| 成人性生交大片免费| 五月天中文字幕一区二区| 久久精品男人天堂av| 在线一区二区观看| 国产黄色91视频| 水野朝阳av一区二区三区| 国产精品午夜在线观看| 欧美一区二区视频免费观看| av一二三不卡影片| 韩国视频一区二区| 亚洲www啪成人一区二区麻豆| 国产丝袜欧美中文另类| 91.成人天堂一区| 99精品国产91久久久久久| 久久国内精品视频| 亚洲精品菠萝久久久久久久| 国产欧美一区二区精品婷婷 | 欧美日韩国产系列| 成人精品一区二区三区四区 | 国产美女主播视频一区| 亚洲成人精品影院| 亚洲少妇最新在线视频| 久久久久久久久久电影| 678五月天丁香亚洲综合网| 色偷偷成人一区二区三区91| 国内久久婷婷综合| 日本美女视频一区二区| 一区二区三区欧美久久| 亚洲视频在线一区| 欧美国产精品一区二区| 久久精品欧美一区二区三区不卡 | 色狠狠桃花综合| av电影天堂一区二区在线| 国产精品99久久不卡二区| 久久精品99国产精品日本| 日韩精品成人一区二区在线| 亚洲成人自拍网| 一区二区高清视频在线观看| 亚洲人成网站精品片在线观看| 国产精品视频观看| 国产女人18毛片水真多成人如厕| 精品av久久707| 精品美女在线播放| 久久免费美女视频| 精品国产亚洲在线| 亚洲精品一区二区三区福利| 精品少妇一区二区三区在线视频| 日韩欧美一级特黄在线播放| 日韩一区二区三区高清免费看看| 欧美一级国产精品| 日韩精品最新网址| 精品国产a毛片| 国产网站一区二区| 国产精品欧美精品| 亚洲欧美日韩一区| 一区二区三区高清不卡| 亚洲国产精品自拍| 日韩电影免费在线看| 久久99蜜桃精品| 国产成a人无v码亚洲福利| 成人高清视频在线观看| 91丝袜呻吟高潮美腿白嫩在线观看| 99re66热这里只有精品3直播| 色欧美片视频在线观看在线视频| 欧美在线观看视频一区二区三区| 在线成人午夜影院| 欧美xxxxxxxx| 欧美国产日韩a欧美在线观看| 国产精品国模大尺度视频| 亚洲宅男天堂在线观看无病毒| 一区二区久久久| 另类小说欧美激情| 成人免费高清视频在线观看| 欧洲亚洲国产日韩| 日韩欧美一二三区| 久久成人免费电影| 国产成人精品影院| 欧美亚洲自拍偷拍| 欧美一级xxx| 国产精品久久久久久久久搜平片| 亚洲自拍都市欧美小说| 极品销魂美女一区二区三区| 99久久精品国产精品久久| 777午夜精品免费视频| 国产日韩av一区| 亚洲国产精品麻豆| 国产盗摄精品一区二区三区在线| 在线亚洲免费视频| 久久无码av三级| 亚洲一区二区三区国产| 国产在线播放一区| 欧美午夜精品久久久| 国产日韩精品一区二区浪潮av| 亚洲一区二区三区中文字幕在线| 国产精品 欧美精品| 欧美日本一区二区三区四区| 国产色产综合色产在线视频| 天天爽夜夜爽夜夜爽精品视频| 国产精品系列在线播放| 91精品国产综合久久久久| 国产精品―色哟哟| 久久成人久久鬼色| 欧美综合亚洲图片综合区| 久久亚洲二区三区| 天堂av在线一区| 一道本成人在线| 国产精品天天摸av网| 免费在线视频一区| 欧美日韩一区三区| 亚洲精品视频在线观看网站| 国产精品一区久久久久| 777xxx欧美| 亚洲电影中文字幕在线观看| 91亚洲大成网污www| 久久久99久久| 激情久久五月天| 3d动漫精品啪啪一区二区竹菊| 一区二区三区在线视频播放| 成人av在线观| 国产欧美va欧美不卡在线| 黄色日韩三级电影| 日韩一区二区三区电影| 亚洲国产综合91精品麻豆| 色噜噜狠狠一区二区三区果冻| 欧美韩国日本不卡| 成人网在线播放| 国产网红主播福利一区二区| 国产一区二区三区国产| 精品久久久久av影院 | 日韩精品福利网| 欧美色网一区二区| 亚洲一二三四久久| 在线一区二区三区| 亚洲成人一区在线| 欧美日本在线一区| 日韩激情一二三区| 91精品国产综合久久精品麻豆| 亚洲成人动漫在线观看| 欧美午夜电影网| 午夜电影网一区| 日韩天堂在线观看| 看电影不卡的网站| 久久久久久久久久看片| 成人中文字幕合集| 国产精品国产三级国产| 91美女视频网站| 亚洲国产日韩a在线播放性色| 欧美日本一道本| 久久狠狠亚洲综合| 国产欧美一区二区三区在线老狼| eeuss鲁一区二区三区| 亚洲另类中文字| 91麻豆精品国产| 国内精品写真在线观看| 国产精品久久久久一区 | 亚洲一二三四区不卡| 8x8x8国产精品| 国内成+人亚洲+欧美+综合在线| 久久久影视传媒| 91香蕉视频黄| 日韩vs国产vs欧美| 久久久精品国产免费观看同学| 大尺度一区二区| 亚洲超丰满肉感bbw| 日本欧洲一区二区| 2017欧美狠狠色| 一本色道综合亚洲|