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

📄 sysgflash.c

📁 vxworks MPC8541 BSP
💻 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 + -