📄 flsmngin.h
字号:
/****************************************************************************/
/* */
/* 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_BLOCK 1 // remove to IoDriver
#define FLASH_RESERVE_SECTOR 100
// 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 ---------*/
//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_OFFSET 5
#define BLOCK_ATTRIBUTE(spare) (spare[BLOCK_ATTRIBUTE_OFFSET])
//org logical number offset in spare area
#define BLOCK_LOGIC_OFFSET 0
#define BLOCK_LOGIC(spare) (*((UINT16 *)(&(spare[BLOCK_LOGIC_OFFSET]))))
//swap physical number offset in spare area
#define BLOCK_SWAP_OFFSET (BLOCK_LOGIC_OFFSET + NORMAL_SPARE_SIZE)
#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_OFFSET (BLOCK_SWAP_OFFSET + NORMAL_SPARE_SIZE)
#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_OFFSET 2
#define PAGE_STATUS(spare) (spare[PAGE_STATUS_OFFSET])
#endif /* #ifndef __FLSMNGIN_H__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -