📄 nand.h
字号:
/****************************************Copyright (c)**************************************************
** Guangzou ZLG-MCU Development Co.,LTD.
** graduate school
** http://www.zlgmcu.com
**
**--------------File Info-------------------------------------------------------------------------------
** File name: Nand.h
** Last modified Date: 2007-9-20
** Last Version: 1.0
** Descriptions: 对Nand型Flash K9F28XXUOC进行编程、擦除等操作
**
**------------------------------------------------------------------------------------------------------
** Created by: Yuping Wang 杨市平
** Created date: 2007-9-20
** Version: 1.0
** Descriptions: The original version 初始版本
**
**------------------------------------------------------------------------------------------------------
** Modified by: 杨市平
** Modified date: 2008-03-18
** Version: V1.1
** Descriptions:
**
********************************************************************************************************/
#ifndef __NAND_H
#define __NAND_H
#ifndef __GLOBAL_NAND
#define __EXTERN extern
#else
#define __EXTERN
#endif
#define K9FXX_SET_ADDR_A 0x00 /* 设置读写指针指向A区 */
#define K9FXX_SET_ADDR_B 0x01 /* 设置读写指针指向B区 */
#define K9FXX_SET_ADDR_C 0x50 /* 设置读写指针指向C区 */
#define K9FXX_READ_ID 0x90 /* 读器件ID */
#define K9FXX_RESET 0xff /* 复位芯片 */
#define K9FXX_BLOCK_PROGRAM_1 0x80 /* 块编程指令1 */
#define K9FXX_BLOCK_PROGRAM_2 0x10 /* 块编程指令2 */
#define K9FXX_BLOCK_ERASE_1 0x60 /* 块擦除指令1 */
#define K9FXX_BLOCK_ERASE_2 0xd0 /* 块擦除指令2 */
#define K9FXX_READ_STATUS 0x70 /* 读器件状态 */
#define K9FXX_BUSY (1 << 6) /* 器件忙标志 */
#define K9FXX_OK (1 << 0) /* 器件操作成功标志 */
/*********************************************************************************************************
** Function name: nandReadStatus
**
** Descriptions: 读Nand Flash的状态
**
**
** input parameters: 无
** Returned value: 当前Nand
**
** Created by: 杨市平
** Created Date: 2008/03/18
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
__EXTERN uint8 nandReadStatus (void);
/*********************************************************************************************************
** Function name: nandOK
**
** Descriptions: 判断芯片操作是否完成
**
**
** input parameters: 无
** Returned value: TURE: 完成
** FALSE: 失败
** Created by: 杨市平
** Created Date: 2008/03/18
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
__EXTERN uint8 nandOK (void);
/*********************************************************************************************************
** Function name: nandSectorReadA
**
** Descriptions: 读芯片扇区
**
**
** input parameters: pucBuf: 指向缓存的指针,大小必须>=512字节
** uiCoL : 以列地址的索引
uiRow : 以页面为单位的索引
uiNum : 写入的字节数
** Returned value: 无
**
** Created by: 杨市平
** Created Date: 2008/03/18
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
__EXTERN void nandSectorReadA (uint8 *pucBuf, uint32 uiCol, uint8 uiRow, uint32 uiNum);
/*********************************************************************************************************
** Function name: nandSectorCRead
**
** Descriptions: 读芯片C区
**
**
** input parameters: pucBuf: 指向缓存的指针,大小必须>=16字节
** uiCoL : 以列地址的索引
uiRow : 以页面为单位的索引
uiCNum: 写入的字节数
** Returned value: 无
** Created by: 杨市平
** Created Date: 2008/03/18
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
__EXTERN void nandSectorCRead (uint8 *pucBuf, uint32 uiCol, uint8 uiRow, uint32 uiCNum);
/*********************************************************************************************************
** Function name: nandSectorProgram
**
** Descriptions: 编程芯片扇区
**
**
** input parameters: pucBuf: 指向要存数据的指针,大小必须>=512字节
** uiCoL : 以列地址的索引
uiRow : 以页面为单位的索引
uiNum : 写入的字节数
** Returned value: TURE: 成功
** FALSE: 失败
** Created by: 杨市平
** Created Date: 2008/03/18
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
__EXTERN uint8 nandSectorProgram (uint8 *pucBuf, uint32 uiCol, uint8 uiRow, uint32 uiNum);
/*********************************************************************************************************
** Function name: nandSectorCProgram
**
** Descriptions: 编程芯片C区
**
**
** input parameters: pucBuf: 指向要存数据的指针,大小必须>=16字节
** uiCoL : 以列地址的索引
uiRow : 以页面为单位的索引
uiCNum : 写入的字节数
** Returned value: TURE: 成功
** FALSE: 失败
** Created by: 杨市平
** Created Date: 2008/03/18
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
__EXTERN uint8 nandSectorCProgram (uint8 *pucBuf, uint32 uiCol, uint8 uiRow, uint32 uiCNum);
/*********************************************************************************************************
** Function name: nandBlockErase
**
** Descriptions: 块擦除
**
**
** input parameters: uiRow : 以页面为单位的索引
**
** Returned value: TURE: 成功
** FALSE: 失败
** Created by: 杨市平
** Created Date: 2008/03/18
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
__EXTERN uint8 nandBlockErase (uint32 uiRow);
/*********************************************************************************************************
** Function name: nandReadID
**
** Descriptions: 读芯片ID
**
**
** input parameters: 无
**
** Returned value: 芯片的ID号
**
** Created by: 杨市平
** Created Date: 2008/03/18
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
__EXTERN uint16 nandReadID (void);
/*********************************************************************************************************
** Function name: nandSectorCheck
**
** Descriptions: 校验扇区数据
**
**
** input parameters: pucBuf: 要校验的数据,大小必须>=512字节
** uiCoL : 以列地址的索引
uiRow : 以页面为单位的索引
uiNum : 写入的字节数
** Returned value: TURE: 数据正确
** FALSE:数据错误
**
** Created by: 杨市平
** Created Date: 2008/03/18
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
__EXTERN uint8 nandSectorCheck (uint8 *pucBuf, uint32 uiCol, uint8 uiRow, uint32 uiNum);
/*********************************************************************************************************
** Function name: nandSectorCCheck
**
** Descriptions: 校验C区数据
**
**
** input parameters: pucBuf: 要校验的数据,大小必须>=16字节
** uiCoL : 以列地址的索引
uiRow : 以页面为单位的索引
uiCNum : 写入的字节数
** Returned value: TURE: 数据正确
** FALSE:数据错误
**
** Created by: 杨市平
** Created Date: 2008/03/18
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
__EXTERN uint8 nandSectorCCheck (uint8 *pucBuf, uint32 uiCol, uint8 uiRow, uint32 uiCNum);
#endif /* __NAND_H */
/*********************************************************************************************************
** End Of File
********************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -