📄 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 *//* SST */#define MANUFACTURER_SST 0x00BF#define SST39VF040 0x00D7#define SST39VF080 0x00D8#define SST39VF016 0x00D9#define D6_MASK 0x40#define NOCACHE_BIT 0x04000000
struct 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 + -