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

📄 nan.h

📁 这是一个片内flash的驱动程序
💻 H
字号:
/****************************************Copyright (c)**************************************************
**                                      
**                                          
**                     **                               杭州央海软件科技有限公司(armgcc@foxmail.com)
**
**                                 http://www.armgcc.com
**
**--------------文件信息--------------------------------------------------------------------------------
** 文 件 名: nan.h
** 创 建 人: 罗辉联 	
** 创建日期: 2007年11月10日
** 描    述: 该文件包含了所有NAN  FLASH  功能函数原型与所需要的常量
**
** 技术顾问: 楼东武(副教授)  浙江大学信电系
**
**---------- 版本信息-----------------------------------------------------------------------------------
** 版    本: V1.0
** 说    明: 
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/

#include "types.h"

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

//NAN 操作定义
#define NAN_ADDRESS_BASE	(0x66000000)
#define NAN_ALE				(NAN_ADDRESS_BASE + 4)
#define NAN_CLE				(NAN_ADDRESS_BASE + 2)



#define NAN_WRITE_COMMAND(command)							\
	(*(volatile UINT8 *)NAN_CLE) = (UINT8)(command)
	
#define NAN_WRITE_ADDRESS(address)							\
	(*(volatile UINT8 *)NAN_ALE) = (UINT8)(address)	
	
#define NAN_WRITE_DATA(data)								\
	(*(volatile UINT8 *)NAN_ADDRESS_BASE) = (UINT8)(data)
	
#define NAN_READ_DATA()		(*(volatile UINT8 *)NAN_ADDRESS_BASE)	

#define NAN_GET_RB		(GPIO_ReadBit(GPIO2,11))

//NAN 信息定义
#define NAN_BLOCKS				(1 << 12)
#define NAN_PAGE_PER_BLOCK		(1 << 5)
#define NAN_PAGES				(1 << 17)
#define NAN_PAGE_SIZE			(528)
#define NAN_HALF_ADDRESS		(256)
#define NAN_SPARE_ADDRESS		(512)

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

//函数返回信息定义
typedef enum
{
	NAN_SUCCESS = 0,
	NAN_TIMEOUT,
	NAN_PROGRAM_ERROR,
	NAN_COPY_ERROR,
	nan_earse_ERROR,
	NAN_PARA_ERROR,
	NAN_BLOCK_ERROR

}NAN_RETURN_T;

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

/********************************** 全局外部函数原型声明 *****************************************/

extern UINT32 nan_get_id(void);
extern void nan_poll_bad_blocks(void);
extern NAN_RETURN_T nan_earse(UINT32 block);
extern NAN_RETURN_T nan_program(UINT32 page,UINT16 column,  UINT8 * p_data, UINT16 size);
extern NAN_RETURN_T nan_read(UINT32 page, UINT16 column, UINT8 * p_buf, UINT16 size);
extern NAN_RETURN_T nan_copy_back(UINT32 src_page, UINT32 dest_page);

⌨️ 快捷键说明

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