⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 flash.h

📁 DSP编程
💻 H
字号:
/***********************************************************************/
/* Copyright Silicon Storage Technology, Inc. (SST), 1994-2001         */
/* Example "C" language Driver of SST39VF080 1M X 8                    */
/* Multi-Purpose Flash  */
/* Nelson Wang, Silicon Storage Technology, Inc.                       */
/*                                                                     */
/* Revision 1.0, January 24, 2001                                         */
/*                                                                     */
/* This file requires these external "timing"  routines:               */
/*                                                                     */
/*      1.)  Delay_150_Nano_Seconds                                    */
/*      2.)  Delay_25_Milli_Seconds                                    */
/*      3.)  Delay_100_Milli_Seconds                                   */
/***********************************************************************/
#define ___INTEL_28F016     //Replace the defining with the correct type

#ifdef ___SST_39VF080

#define FLASH_KEY1		0xAA
#define FLASH_KEY2		0x55
#define FLASH_LOAD		0xA0
#define FLASH_ERASE_KEY		0x80
#define FLASH_ERASE_CHIP	0x10
#define FLASH_ERASE_SECTOR	0x30
#define FLASH_ERASE_BLOCK	0x50
#define FLASH_SID_ENTER		0X90
#define FLASH_SID_EXIT		0XF0

#define FALSE                   0
#define TRUE                    1
#define SECTOR_SIZE             4096    /* Must be 4K bytes for 39VF080 */
#define BLOCK_SIZE              65536L   /* Must be 64K bytes for 39VF080  */
#define SST_ID                  0xBF    /* SST Manufacturer's ID code   */
#define SST_39VF080             0xD8    /* SST39VF080 device code      */

//typedef unsigned char           BYTE;
//typedef unsigned int            WORD;

int Check_SST_39VF080();
void Program_One_Sector(INT8U   *Src,    INT8U   *Dst);
void Erase_Entire_Chip();
void Erase_One_Sector (INT8U   *Dst);
void Program_One_Byte (INT8U SrcByte,    INT8U   *Dst);

void Check_Data_Polling (INT8U  *Dst, INT8U TrueData);
void Check_Toggle_Ready (INT8U  *Dst);
extern void Delay_150_Nano_Seconds();
extern void Delay_100_Milli_Seconds();
extern void Delay_25_Milli_Seconds();

#endif


#ifdef ___SST_29LE010

#define FLASH_KEY1		0xAA
#define FLASH_KEY2		0x55
#define FLASH_LOAD		0xA0
#define FLASH_ERASE_KEY		0x80
#define FLASH_ERASE_CHIP	0x10
#define FLASH_ERASE_SECTOR	0x30
#define FLASH_ERASE_BLOCK	0x50
#define FLASH_SID_ENTER		0X90
#define FLASH_SID_EXIT		0XF0
 
#define FALSE                   0
#define TRUE                    1
#define PAGE_SIZE               128    /* Must be 128 bytes for SST_29LE010 */
#define SST_ID                  0xBF    /* SST Manufacturer's ID code   */
#define SST_29LE010             0x08    /* SST_29LE010 device code      */

//typedef unsigned char           BYTE;
//typedef unsigned int            WORD;

void Program_One_Page(unsigned int src_addr, unsigned int dst_addr);
void Erase_Entire_Chip();
int Check_SST_29LE010();
void Check_Data_Polling (BYTE  *Dst, BYTE TrueData);
void Check_Toggle_Ready (BYTE  *Dst);
extern void Delay_10000_Nano_Seconds();
extern void Delay_20_Milli_Seconds();

#endif


#ifdef ___INTEL_28F016

#define FLASH_READ_ARRAY     0xFF
#define FLASH_LOAD		     0x40
#define FLASH_ERASE_SETUP  	 0x20
#define FLASH_ERASE_CONFIRM	 0xD0
#define FLASH_PROG_SUSPEND	 0xB0
#define FLASH_PROG_RESUME	 0xD0
#define FLASH_ERASE_SUSPEND	 0xB0
#define FLASH_ERASE_RESUME	 0xD0
#define FLASH_READ_STATUS    0x70
#define FLASH_CLEAR_STATUS   0x50
#define FLASH_READ_SID		 0X90

#define FALSE                   0
#define TRUE                    1
#define BLOCK_SIZE              65536L  /* Must be 64K bytes for 28F016  */
#define INTEL_ID                0x89    /* INTEL Manufacturer's ID code  */
#define INTEL_28F016            0xD1    /* INTEL28F016 device code       */

//typedef unsigned char           BYTE;
//typedef unsigned int            WORD;

int Check_INTEL_28F016();
void Program_One_Block(INT8U   *Src,    INT8U   *Dst);
void Erase_One_Block(INT8U   *Dst);
void Program_One_Byte (INT8U SrcByte,    INT8U   *Dst);
extern void Delay_150_Nano_Seconds();
extern void Delay_100_Milli_Seconds();
extern void Delay_25_Milli_Seconds();

#endif 


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -