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

📄 flsmngin.h

📁 好记星的控件,包括button,list,对文件操作
💻 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 + -