您好,欢迎来到华佗养生网。
搜索
您的当前位置:首页FLASH存储空间详解(展讯)

FLASH存储空间详解(展讯)

来源:华佗养生网
FLASH存储空间详解

1, 关于FLASH ROM存储空间分布图

VDS1 Normal code setion Compressed code VDS0 section memory) MMS (SMS+CSWREG) user setting) 1 0 calibration calibration (phone WAP/CSW NVRAM(PHB、MMCMMCAudio RF Factory

代码区 用户区 音频区 校准区 工厂区

2,各空间详细解释

代码区:代码存储空间;

用户区:a) VDS0: 这部分包括的内容比较多,可分为三部分:logical_data_item_table_cust、

logical_data_item_table_custpack、NVRAM_UNIT。其中前两个数据结构定义在nvramenum.h文件中,是存放手机设置及我们自定义的一些大的数据块;NVRAM_UNIT定义在nvram_data_items.h中,主要用来存放电话本、语音信箱号码、拒接/已接电话号码等与电话号码相关的内容。

这些数据存储时都存放在C:/NVRAM/目录下面,且文件命名格式统一: NVRAM_nFileId_nRecordId.dat 其中nFileId对应上面两个头文件中定义的ID,nRecordId对应子数据ID。 b) VDS1: 文件管理里看到的手机存储空间。 c) WAP_MMS: 彩信及WAP数据存储空间。

d) CSW: 一般短信数量都不多,会所短信空间合并到CSW区域,对应在target.def里打开宏

_REG_SMS_MERGE,如果短信数量比较多这个宏要关掉。

e) MC1: 一般不需要,双T卡时才需要使用这个区域; f) MC0: 单T卡的项目都需要有这个区域;

额外代码区:为了充分利用部分FLASH的存储空间而设立。如EN71GL0B0(127xKB, 8x8KB),其中校准区和

工厂区只占最后的16KB,剩下的48KB又不能来做用户区,因为用户区每个扇区是KB,且是可读写的,必须以KB单位来操作,所以我们就利用来这部分空间来存储代码了。这部分不是必须的,根据具体FLASH的扇区分布而存在。现在SPI FLASH的用户区扇区都是4KB单位,所以这区域也就不需要了。

校准区:总共大小为8KB,包括射频参数、音频参数、ADC参数等,这部分对应代码数据结构如下:

typedefstruct {

/// Information about this calib buffer.

CALIB_VERSION_TAG_T versionTag; //0x00000000 /// Calib process method and date type.

CALIB_OP_INFO_T opInfo; //0x00000004 /// Transceiver calibration.

CALIB_XCV_T xcv; //0x0000000C /// Power Amplifier RF calibration.

CALIB_PA_T pa; //0x000000B4 /// Switch calibration.

CALIB_SW_T sw; //0x000012E0 /// Baseband calibration.

CALIB_BB_T bb; //0x00001360 } CALIB_BUFFER_T; //Size : 0x1CFC

校准区数据的使用方法是:系统会读校准区中标志位来判断手机是否已校准,如果已校准则使用校准区中的所有校准参数,否则使用代码默认参数。是否已校准标识位为versionTag,如果等于0xca1b0202,并且读出来PA、XCV、SW的ID也为代码中所配置的那个,就认为这台机器被校准过了。其中平台使用的PA、XCV、SW的所有ID定义在文件rf_names.h中。以前出现过明明刚校准过的机器,到工厂菜单里面去看却显示没有校准,就是因为所使用的新PA的ID没有加进来。

工厂区:总共大小为8KB,保存的信息比较少,包括IMEI、LCD/CAM ID、BT info。对应代码中数据结构如下:

typedefstruct {

// mobile id

TGT_MOBILE_ID_T mobileId; // module id

TGT_MODULE_ID_T moduleId; #ifdef TGT_WITH_BT

TGT_BT_INFO_T

bt_info;

#endif

} TGT_FACTORY_SETTINGS_T;

3,各部分数据的读写时机及读写的方法说明

代码区/额外代码区:只读。一般在工厂下载工位完成,使用下载工具写入,清除整个FLASH后下载。除非升级软

件,一般不会对它进行写操作。

用户区:可读写。用户在使用手机过程中随时可能对它进行读写,且各部分数据读写有差异,如下:

a),VDS0,NAVRAM区域,在nvramprot.h文件中定义了相关接口,使用如下:

<1>对于单字节、双字节、DOUBLE字节的数据块使用下面的接口,实际上就对应三个文件数据的读

写操作:NVRAM_EF_CACHE_BYTE_LID、 NVRAM_EF_CACHE_SHORT_LID、NVRAM_EF_CACHE_DOUBLE_LID;

读:ReadValue -ReadValueInt -ReadRecordInt 写:WriteValue -WriteValueInt -WriteRecordInt

<2>对于大的数据块,即除上面三个文件数据,使用下面的接口

读:ReadRecord -ReadRecordInt 写:WriteRecord -WriteRecordInt

最终都是使用ReadRecordInt/WriteRecordInt来完读/写操作。

b),VDS1,具体按文件管理系统接供的接口去操作,一般我们不用去操作这部分空间,不详述。 c),WAP/MMS,需要发消息去读/写操作,一般我们不操作它。 d),CSW(SMS),系统寄存器存储区域,这部分数据读/写比较复杂,相关操作的接口定义在cfw_cfg_main.c

文件中,一般我们不去操作它,在csw_cfg_default.h文件定义了不同数量SIM使用不同的寄存器配置文件;短信操作相关的接口在soft\\platform\\csw\\cfw\\sms模块中,需要发消息来操作。

e),MMC1/MMC0,无需要读/写操作。

校准区:只读。一般只在工厂校准工位校准后写一次,使用校准工具写入。

工厂区:只读。一般只在第一次开机后自动写一次及写号工位使用写号工具写一次。 注:关于恢复出厂设置,可以打开宏RESTOR_BY_CLEAR_USERDATA,这样在恢复时可以把文件管理内数据也清除掉,

效果等同于使用指令:*#002#。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo7.cn 版权所有 湘ICP备2022005869号-9

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务