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

📄 flash.h

📁 arm(str710)usb功能的实现
💻 H
字号:
/****************************************Copyright (c)**************************************************
**                                      
**                                          	STR710 development team
**                                         	
**
**                                 http://www.appchip.com
**
**--------------文件信息--------------------------------------------------------------------------------
** 文 件 名: 		flash.c
** 创 建 人: 		李海军
** 创建日期: 	2006年5月14日
** 描    述: 		该文件包含了所有FLASH  功能函数原型与所需要的常量
**
**--------------历史版本--------------------------------------------------------------------------------
** 创 建 人: 		李海军
** 版      本: 		V1.0
** 日   期: 		2006年5月14日
** 描   述: 		原始版本
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/

#ifndef 	__FLASH_H
#define 	__FLASH_H

#include "config.h"

#if 	EN_ARM_FLASH > 0		//决定是否编译该文件

/************************************** 宏定义,常量定义 ******************************************/

#define	BIT0				(0x00000001)
#define	BIT1				(0x00000002)
#define	BIT2				(0x00000004)
#define	BIT3				(0x00000008)
#define	BIT4				(0x00000010)
#define	BIT5				(0x00000020)
#define	BIT6				(0x00000040)
#define	BIT7				(0x00000080)
#define	BIT8				(0x00000100)
#define	BIT9				(0x00000200)
#define	BIT10				(0x00000400)
#define	BIT11				(0x00000800)
#define	BIT12				(0x00001000)
#define	BIT13				(0x00002000)
#define	BIT14				(0x00004000)
#define	BIT15				(0x00008000)
#define	BIT16				(0x00010000)
#define	BIT17				(0x00020000)
#define	BIT18				(0x00040000)
#define	BIT19				(0x00080000)
#define	BIT20				(0x00100000)
#define	BIT21				(0x00200000)
#define	BIT22				(0x00400000)
#define	BIT23				(0x00800000)
#define	BIT24				(0x01000000)
#define	BIT25				(0x02000000)
#define	BIT26				(0x04000000)
#define	BIT27				(0x08000000)
#define	BIT28				(0x10000000)
#define	BIT29				(0x20000000)
#define	BIT30				(0x40000000)
#define	BIT31				(0x80000000)
#define	BITALL				(0xffffffff)

/* Flash Control Regester 0 Define */
#define	FLASH_BSYA0		BIT1
#define	FLASH_BSYA1		BIT2
#define	FLASH_LOCK			BIT4
#define	FLASH_PWD			BIT15
#define	FLASH_INTP			BIT20
#define	FLASH_INTM			BIT21
#define	FLASH_SPR			BIT24
#define	FLASH_SER			BIT27
#define	FLASH_DWPG		BIT28
#define	FLASH_WPG			BIT29
#define	FLASH_SUSP			BIT30
#define	FLASH_WMS			BIT31

/* Flash Control Regester 1 Define */
#define 	FLASH_B0F0 		BIT0
#define 	FLASH_B0F1			BIT1
#define 	FLASH_B0F2			BIT2
#define 	FLASH_B0F3		 	BIT3
#define 	FLASH_B0F4		 	BIT4
#define 	FLASH_B0F5		 	BIT5
#define 	FLASH_B0F6		 	BIT6
#define 	FLASH_B0F7		 	BIT7
#define 	FLASH_B1F0			BIT16
#define 	FLASH_B1F1		 	BIT17
#define 	FLASH_B0S			BIT24
#define 	FLASH_B1S			BIT25
#define 	FLASH_BANK0		(BIT0 | BIT1 |BIT2 | BIT3 | BIT4 |BIT5 |BIT6 |BIT7)
#define	FLASH_BANK1		(BIT16 | BIT17)	

/* Flash Error Regester Define */
#define	FLASH_ERR			BIT0
#define	FLASH_ERER			BIT1
#define	FLASH_PGER			BIT2
#define	FLASH_10ER			BIT3
#define	FLASH_SEQER		BIT6
#define	FLASH_RESER		BIT7
#define	FLASH_WPF			BIT8

/* Flash Non Volatile Write Protection Register Define */
#define	FLASH_W0P0		BIT0	
#define	FLASH_W0P1		BIT1	
#define	FLASH_W0P2		BIT2	
#define	FLASH_W0P3		BIT3	
#define	FLASH_W0P4		BIT4	
#define	FLASH_W0P5		BIT5	
#define	FLASH_W0P6		BIT6	
#define	FLASH_W0P7		BIT7	
#define	FLASH_W1P0		BIT16	
#define	FLASH_W1P1		BIT17	
#define	FLASH_WP_ALL		(BIT0 | BIT1 | BIT2 | BIT3 | BIT3 | BIT4 | BIT5 | BIT6 | BIT7 | BIT16 | BIT17)

/* Flash NV Access Protection Register 0 Define */
#define 	FLASH_DBGP			BIT1

/* Flash NV Access Protection Register 1 Define */
#define	FLASH_PDS0			BIT0
#define	FLASH_PDS1			BIT1
#define	FLASH_PDS2			BIT2
#define	FLASH_PDS3			BIT3
#define	FLASH_PDS4			BIT4
#define	FLASH_PDS5			BIT5
#define	FLASH_PDS6			BIT6
#define	FLASH_PDS7			BIT7
#define	FLASH_PDS8			BIT8
#define	FLASH_PDS9			BIT9
#define	FLASH_PDS10		BIT10
#define	FLASH_PDS11		BIT11
#define	FLASH_PDS12		BIT12
#define	FLASH_PDS13		BIT13
#define	FLASH_PDS14		BIT14
#define	FLASH_PDS15		BIT15
#define	FLASH_PEN0			BIT16
#define	FLASH_PEN1			BIT17
#define	FLASH_PEN2			BIT18
#define	FLASH_PEN3			BIT19
#define	FLASH_PEN4			BIT20
#define	FLASH_PEN5			BIT21
#define	FLASH_PEN6			BIT22
#define	FLASH_PEN7			BIT23
#define	FLASH_PEN8			BIT24
#define	FLASH_PEN9			BIT25
#define	FLASH_PEN10		BIT26
#define	FLASH_PEN11		BIT27
#define	FLASH_PEN12		BIT28
#define	FLASH_PEN13		BIT29
#define	FLASH_PEN14		BIT30
#define	FLASH_PEN15		BIT31

#define flash_wait_finish()	while(FLASH_CR0 & (FLASH_BSYA0 | FLASH_BSYA1 | FLASH_LOCK)) us_sleep(20);



/**************************************  枚举类型定义  *******************************************/

/************************************** 结构体类型定义  ******************************************/

/********************************** 全局外部函数原型声明 *****************************************/
UWORD32 flash_reset(void);
UWORD32 flash_write_word(UWORD32 address, UWORD32 data);
UWORD32 flash_write_double_word(UWORD32 address, UWORD32 data0, UWORD32 data1);
UWORD32 flash_write_block(UWORD32 address, UWORD32 * p_data, UWORD32 lenght);
UWORD32 flash_erase(UWORD32 sector_mask);
void flash_suspend(void);
void flash_resume(void);
UWORD32 flash_read_word(UWORD32 address);
void flash_read_block(UWORD32 address, UWORD32 * p_buf, UWORD32 lenght);
//UWORD32 flash_sector_protect(UWORD32 sector, SYS_BOOL b_write_unwrite);
//void flash_debug_temporary(SYS_BOOL b_enable_disable);

#endif 	/* EN_ARM_FLASH > 0 */
#endif 	/* __FLASH_H */

⌨️ 快捷键说明

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