📄 flash.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 + -