flsmnginl05.h
来自「好记星的控件,包括button,list,对文件操作」· C头文件 代码 · 共 67 行
H
67 行
/****************************************************************************/
/* */
/* Copyright (C) 2002 SHENZHEN MEIJIN CO.LTD */
/* */
/* FILE NAME: FlashMng.h */
/* MODULE NAME: FLASHMNG MODULE */
/* DESCRIPTION: FLASHt管理模块头文件 */
/* */
/****************************************************************************/
/* DATE AUTHOR VERSION REMARKS */
/* =========== =========== ========= =====================================*/
/* 2003-03-20 黄小明 Ver 1.00 创建 */
/****************************************************************************/
#ifndef __FLSMNGIN_H__
#define __FLSMNGIN_H__
#define FLASH_RESERVE_SECTOR 0x3C100
// Because memory dynamic allocation is not supported,
// so we must define following parameters for buffers
#define CURRENT_PAGE_SIZE 2048
#define CURRENT_SPARE_SIZE 64
#define BLOCK_NUM 1024
#define BAD_BLOCK_NUM 18
#define PREPARE_BLOCK_NUM 18
/*------- define for block ---------*/
#define BLOCK_ORIGIN_OFFSET 0
#define PAGE_STATUS_OFFSET 2
#define BLOCK_ATTRIBUTE_OFFSET 5
#define BLOCK_LOGIC_OFFSET 6
#define BLOCK_SWAP_OFFSET (NORMAL_SPARE_SIZE)
#define BLOCK_STATUS_OFFSET (BLOCK_SWAP_OFFSET + NORMAL_SPARE_SIZE)
// ECC,每16B的SPARE对应512B的DATA,前256B的ECC在8-10,后256B的在13-15
//
//block origin attribute
#define BLOCK_ORIGIN(spare) (spare[BLOCK_ORIGIN_OFFSET])
//block attribute flag:FLASH_ATTRIBUTE_GOOD or bad
#define FLASH_ATTRIBUTE_GOOD 0xFF // good block
#define FLASH_ATTRIBUTE_BAD 0xF0 // bad block by use
#define BLOCK_ATTRIBUTE(spare) (spare[BLOCK_ATTRIBUTE_OFFSET])
//org logical number offset in spare area
#define BLOCK_LOGIC(spare) (*((UINT16 *)(&(spare[BLOCK_LOGIC_OFFSET]))))
//swap physical number offset in spare area
#define BLOCK_SWAP(spare) (*((UINT16 *)(&(spare[BLOCK_SWAP_OFFSET]))))
//block status:FLASH_STATUS_(NOTUSED, SWAP, SWAPING, ORG or PREPARE)
#define FLASH_STATUS_NOTUSED 0xFFFF // the block hase not been used
#define FLASH_STATUS_SWAP 0x55FF // the block is a swap block
#define FLASH_STATUS_SWAPING 0x5500 // date is transfering from org block to swap block
#define FLASH_STATUS_ORG 0x55AA // the block is a org block
#define FLASH_STATUS_PREPARE 0x0000 // the block is a prepare block
#define BLOCK_STATUS(spare) (*((UINT16 *)(&(spare[BLOCK_STATUS_OFFSET]))))
/*------- define for page ---------*/
#define PAGE_STATUS_NODIRTY 0x01 // this page is not dirty
#define PAGE_STATUS_AVAILABLE 0x02 // this page is available
#define PAGE_STATUS(spare) (spare[PAGE_STATUS_OFFSET])
#endif /* #ifndef __FLSMNGIN_H__ */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?