?? flash.h
字號:
#ifndef __FLASH_H#define __FLASH_H
#define MAX_CHIPS 6#define DEVICE_TYPE_X8 (8 / 8)#define DEVICE_TYPE_X16 (16 / 8)#define DEVICE_TYPE_X32 (32 / 8)/* Addresses */#define ADDR_MANUFACTURER 0x0000#define ADDR_DEVICE_ID 0x0001#define ADDR_SECTOR_LOCK 0x0002#define ADDR_HANDSHAKE 0x0003#define ADDR_UNLOCK_1 0x5555#define ADDR_UNLOCK_2 0x2AAA/* Commands */#define CMD_UNLOCK_DATA_1 0x00AA#define CMD_UNLOCK_DATA_2 0x0055#define CMD_MANUFACTURER_UNLOCK_DATA 0x0090#define CMD_UNLOCK_BYPASS_MODE 0x0020#define CMD_PROGRAM_UNLOCK_DATA 0x00A0#define CMD_RESET_DATA 0x00F0#define CMD_SECTOR_ERASE_UNLOCK_DATA 0x0080#define CMD_SECTOR_ERASE_UNLOCK_DATA_2 0x0030#define CMD_UNLOCK_SECTOR 0x0060/* Manufacturers *//* */#define MANUFACTURER_SST 0x00BF#define SST39VF040 0x00D7#define SST39VF080 0x00D8#define SST39VF016 0x00D9/* Manufacturers *//* HY */#define MANUFACTURER_HY 0x00AD#define HY29LV320B 0x227D#define HY29LV320T 0x227E#define D6_MASK 0x40#define NOCACHE_BIT 0x04000000struct flchip { unsigned long start; /* Offset within the map */ unsigned long size; unsigned long erasesize;};struct mtd_info { unsigned long offset; /* Offset within the memory */ int buswidth; /* in octets */ unsigned long size; /* Total size of the MTD */ unsigned long erasesize; int numchips; struct flchip chips[MAX_CHIPS];};struct flash_info { const unsigned short mfr_id; const unsigned short dev_id; const char *name; const unsigned long size; const unsigned long erasesize;};int flash_init(void);int flash_read(unsigned long from, unsigned long len, unsigned long *retlen, unsigned char *buf);int flash_write(unsigned long to, unsigned long len, unsigned long *retlen, const unsigned char *buf);int flash_erase(unsigned long adr, unsigned long size);
#endif /* __FLASH_H */
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -