📄 cfgffs.c
字号:
/******************************************************************************
* Flash File System (ffs)
* Idea, design and coding by Mads Meisner-Jensen, mmj@ti.com
*
* FFS configuration
*
* $Id: cfgffs.c 1.27 Fri, 19 Dec 2003 12:00:13 +0100 tsj $
*
******************************************************************************/
#ifndef TARGET
#include "ffs.cfg"
#endif
#if (TARGET == 1)
#include "config/board.cfg"
#endif
#include "ffs/ffs.h"
#include "ffs/board/drv.h"
#if ((BOARD == 35) || (BOARD == 46))
#include "ffs/ffspcm.h"
#include "memif/mem.h"
#endif
#include <string.h>
/******************************************************************************
* Flash Device Configuration
******************************************************************************/
#if (TARGET == 1)
// The absolutely easiest way to disable FFS altogether is to set
// ffs_flash_manufact = 0x99 and ffs_flash_device = 0x9999. Because this is
// (as of today at least) an undefined device, FFS will NOT initialize and
// every FFS function call will fail (with no side-effects).
// FFS will automatically detect the flash device if both ffs_flash_manufact
// and ffs_flash_device are zero. Note that this works *only* if the flash
// device is mapped at address zero. Otherwise you *have* to supply
// the flash_base_addr.
// FFS can be configured to run in ram only. In this case the
// 'ffs_flash_manufact' must be set to MANUFACT_RAM and an address to a
// static user allocated ram buffer must be applied to the variable
// 'ffs_flash_address'. In a ram configuration the 'ffs_flash_device' is an
// arbitrary value that must be in sync with the 'device code' value chosen
// in dev.c.
#if (BOARD == 43)
volatile uint32 flash_base_addr = 0x4000000; // Esample - Flash at CS5
#elif ((BOARD == 70)|| (BOARD==71))
volatile uint32 flash_base_addr = 0x6000000; /* Isample - Flash at CS3 */
#else
volatile uint32 flash_base_addr = 0x0; // Flash at CS0
#endif
#if ((BOARD == 35) || (BOARD == 46)) // P2 and F-sample
// Hardwire both manufacture and device conf.
uint16 ffs_flash_manufact = MANUFACT_RAM;
uint16 ffs_flash_device = 0x0804; // RAM
uint32 ffs_ram_image_address = FFS_BASE_ADDRESS; // Located in ffspcm.h or???
#else
uint16 ffs_flash_manufact = 0x00; // autodetect device
//uint16 ffs_flash_manufact = MANUFACT_RAM;
//uint16 ffs_flash_manufact = 0x04; // Fujitsu
//uint16 ffs_flash_manufact = 0xBF; // SST
uint16 ffs_flash_device = 0x0000; // autodetect device
//uint16 ffs_flash_device = 0x0404; // RAM
//uint16 ffs_flash_device = 0xB496; // Fujitsu stacked device
uint32 ffs_ram_image_address = 0; // Dummy
#endif // BOARD == 35/46
#else // TARGET == 1
uint16 ffs_flash_manufact = 'T';
uint16 ffs_flash_device = 0x0F10; // Test device: 16x64kB blocks
//uint16 ffs_flash_device = 0x8010; // Test device: 128x64kB blocks
//uint16 ffs_flash_device = 0x0811; // Test device: 8x128kB blocks
//uint16 ffs_flash_device = 0x080D; // Test device: 8x8kB blocks
//uint16 ffs_flash_device = 0x0404; // Test device: 4x4kB blocks
volatile uint32 flash_base_addr = 0; // Dummy /*Modified by ZhangTing for PC simulator 2006-08-26*/
uint32 ffs_ram_image_address = 0; // Dummy
#endif
/******************************************************************************
* ffs_is_modify_valid()
******************************************************************************/
// This is function to be implemented by the application programmer. It is
// called by ffs when a read-only object is about to be modified or
// removed. It should return zero if the operation should be
// disallowed. Returning non-zero means go ahead.
effs_t ffs_is_modifiable(const char *name)
{
// default is to allow any modification of read-only objects.
// example of how to disallow modifying a specific object...
if (strcmp("IMEI", &name[strlen(name) - 4]) == 0)
return 0;
return 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -