📄 sysgflash.c
字号:
/* sysGFlash.c - */
/* Copyright 2004 ZTE Corporation */
/*
modification histroy
--------------------
01a,09sep04,lyf written.
*/
/*
DESCRIPTION
INCLUDE FILES:
*/
/* includes */
#include "vxWorks.h"
#include "stdio.h"
#include "semLib.h"
#include "stdlib.h"
#include "string.h"
#include <dosFsLib.h>
#include <tffs/flflash.h>
#include <tffs/flsocket.h>
#include <tffs/flbase.h>
#include <tffs/backgrnd.h>
#include <tffs/tffsdrv.h>
#include "gflash.h"
#include "config.h"
#include "bspdefs.h"
/* defines */
#define SYS_NVRAM_REGION
#define MAX_FLASH_ENT 2
/* 擦除的时候是否要跳过unlock操作, TRUE表示跳过 */
#define BYPASS_UNLOCK_FLAG FALSE
#define FL_DISK_TFFS 0x00000001
#define FL_DISK_RAW 0x00000002
#define FL_DISK_NVRAM 0x00000004
#define FL_DISK_UNI_BLK 0x00000008 /* block size必须相同 */
#define FL_DISK_BLK_ALIGNED 0x00000010 /* 地址、大小必须block size对齐 */
#define FL_DISK_MULTI_PARTITION 0x00000020 /* 可以跨越多个partition */
#define FL_DISK_COUNT_FROM_END 0x00000040 /* start从flash尾部开始 */
/* TODO: round down??? */
#define FL_DISK_ADJUSTED 0x40000000
#define FL_DISK_VALID 0x80000000
/* typedefs */
typedef struct tagFlashDiskParam
{
UINT32 startOff; /* start offset */
UINT32 size;
char * name;
UINT32 flag;
} FlashDiskParams;
/* imports */
/* globals */
void gFlashPreInit (void);
/* locals */
static FlashConf s_tffsFlashConf [] =
{
{
FLASH1_MEM_ADRS, /*BaseAddr*/
2, /*PortSizePerChip*/
2, /*ChipCount*/
0 /*Options*/
},
#if 1
{
FLASH2_MEM_ADRS, /*BaseAddr*/
2, /*PortSizePerChip*/
2, /*ChipCount*/
0 /*Options*/
}
#endif
};
int flashNumEnt = NELEMENTS (s_tffsFlashConf);
/* 定义整个FLASH空间的用途分配。
* 有一些约定:
* 1) startOff必须严格按地址从低到高顺序
* 2) block size对齐,目前只考虑最大size的block
* 3) size可以为0xFFFFFFFF,让软件计算
* 4) block size对齐,目前只支持start round up, size round down
* 5) ...
*/
static FlashDiskParams s_FlDiskConf [] =
{
/* start offset size name */
{0x00000000, 0x04000000, TFFS_DISK_NAME,
FL_DISK_VALID | FL_DISK_TFFS | FL_DISK_MULTI_PARTITION
},
#ifdef SYS_NVRAM_REGION
{FLASH_PARA_SIZE, 0xFFFFFFFF, NULL,
FL_DISK_VALID | FL_DISK_NVRAM | FL_DISK_COUNT_FROM_END
},
#else /* SYS_NVRAM_REGION */
{0x200, 0xFFFFFFFF, NULL,
FL_DISK_VALID | FL_DISK_NVRAM | FL_DISK_COUNT_FROM_END
}
#endif /* SYS_NVRAM_REGION */
};
int flDiskNum = NELEMENTS (s_FlDiskConf);
/* forword declarations */
extern void flashHwInit(void);
extern void flashHwEnable(void);
/*******************************************************************************
* gFlashInit
*/
void gFlashPreInit (void)
{
flashHwInit ();
flashHwEnable();
}
#include "usrGFlash.c"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -