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

📄 flash.h

📁 一款交换机BSP开发代码
💻 H
字号:
/*
 * STAR NETWORKS TECHNOLOGY CO.,LTD.
 * Copyright (c) 1999-2000, All rights reserved.
 *
 * FILE NAME
 *
 *		flash.h
 *
 * ABSTRACTS
 *
 *		16-bit Flash memory program.
 *
 * HISTORY
 *
 *		01 2000-10-23 	ZXH		created.
 */

#ifndef _FLASH_H
#define _FLASH_H

#define _BOOT

#define FLASH_BASE_ADDRESS 	0x10000000
//#define FLASH_MEMORY_SIZE  	0x00100000		// 1M bytes(512K words)
#define FLASH_MEMORY_SIZE  	0x00200000		// 1M bytes(512K words)

#define	SST39VF800			0x00BF2781
#define	SST39VF160			0x00BF2782
#define	SST39VF1601			0x00BF234BL // SST39VF1601 device code
#define	SST39VF1602			0x00BF234AL // SST39VF1602 device code

#define INTEL28F800T		0x008988C0
#define INTEL28F800B		0x008988C1
#define INTEL28F160T		0x008988C2
#define INTEL28F160B		0x008988C3
#define INTEL28F320T		0x008988C4
#define INTEL28F320B		0x008988C5

/* 8-bit Am29DLXXXD flash */
#define AM29DL322DB			0x010056
#define AM29DL322DT			0x010055
#define AM29DL323DB			0x010053
#define AM29DL323DT			0x010050
#define AM29DL324DB			0x01005F
#define AM29DL324DT			0x01005C

#define IS_SST_FLASH(x)		( ( x == 1 ) || ( x == 2 ) )
#define IS_INTEL_FLASH(x)	( ( x >= 3 ) && ( x <= 8 ) )

#define INTEL_LOCK			0x01
#define	INTEL_UNLOCK		0xD0
#define INTEL_LOCKDOWN		0x2F

#define BLOCK_UNLOCK		0x0
#define BLOCK_LOCK			0x1
#define BLOCK_LOCKDOWN		0x2


#define FLASH_TIMES			5				// flash operation retry times

// Not use for BOOT
#ifdef	_BOOT
#define MBAR				0x30000000
#define READ_TCN1_1()			(*((unsigned short *)(MBAR + 0x10c)))
#define SET_TCN1_1(x)			(*((unsigned short *)(MBAR + 0x10c)) = x)
/*define 5307*/
#define READ_TCN1_2()			(*((unsigned short *)(MBAR + 0x14c)))
#define SET_TCN1_2(x)			(*((unsigned short *)(MBAR + 0x14c)) = x)

#define TIMER1_10MS_COUNT	0x61A8
#else
#define GET_SYS_CLOCK()		NU_Retrieve_Clock()
#endif	//_BOOT


extern int Flash_Type;

#pragma section CODE ".rtext"

void	Init_Flash(volatile unsigned short *base_address);
int		Flash_Erase (volatile unsigned short *base_address , int offset);
int		Flash_Program (
			volatile unsigned short *base_address,
			volatile unsigned short *dptr, unsigned short *sptr, int length);
int		Lock_Status( volatile unsigned short *block_address,int lock_status);
void	Flash_Reset (volatile unsigned short *base_address);


int sst_erase_block (volatile unsigned short *base_address, int offset);
int sst_erase_sector (volatile unsigned short *base_address, int offset);
unsigned short read_status(volatile unsigned short *base_address,int timeout);
unsigned long get_flash_id (volatile unsigned short *base_address);

void Wait_10ms(void);
#pragma section CODE

#endif	//_FLASH_H

⌨️ 快捷键说明

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