本FAQ适用于10A branch之前版本,10A及之后版本采用全新的smart profile设计。10A之前WAP profile默认设计是一张SIM卡最多支持10个profile,双卡时,两张卡一共可支持20个WAP profile,为满足某些客户的特殊需求,如单张SIM卡需支25个甚至更多wap profile,需参考本FAQ。
一、目前代码中的限制说明:
1) 当前,一张卡最多支持10个profile是被下列宏限制(参考注视参考了解限制原因)。
MAX_GPRS_PROFILE_NUM (10)
NVRAM_WAP_PROF_MAX_STATIC_PROFILES 10
/*
* we only support 10 profiles per bearer due to following reasons
* 1) max control buffer size is 2K
* 2) default profile name string only define for 1~10.
*/
2)编译阶段会作检查,如果发现profile个数超过25,会直接报错。
#if NVRAM_WAP_PROF_MAX_SINGLE_SIM_PROFILES > 25
#error Maximum number of profiles in 1 sim should be less than or equal to 25, Memory limitation.
个数的限制是由于申请的ctrl_buff 超过了2k导致的,可以增加4k或更大control buffer来解决。
如需要增加到25个以上的profile,需先对上述定义作相应调整。
[Solution]
二、具体的修改如下:
1)修改Ctrl_buff_pool.h中相对应的NUM_CTRL_BUFF_POOL_SIZEXXXX,增加xxxx(如4K) control buffer pool个数为N 。
e.g.NUM_CTRL_BUFF_POOL_SIZE4096 = N
2)同步修改Custom_config.c中的 GLOBAL_MEM_SIZE,增加相应值e.g.GLOBAL_MEM_SIZE=380*1024GLOBAL_MEM_SIZE=380*1024+N*1024。
3)然后在 custom_nvram_config.h 中, 将 NVRAM_CUSTOM_CFG_MAX_RECORD_SECTOR_NUM 值由4改成8。
4)加了4k的control buffer 后,profile可以比原来多加2k(多25个)所以
common_nvram_editor_data_item.h中的值:
#if NVRAM_WAP_PROF_MAX_SINGLE_SIM_PROFILES > 25
#error Maximum number of profiles in 1 sim should be less than or equal to 25, Memory limitation.
#endif
也要做同步修改,改为修改后的个数。
5)如果增加的ctrl buffer仍然不够用,请根据增加的profile个数计算实际所需要的control buffer size,继续增大对应的control buffer pool ,如增加8K的ctrl buffer pool 。
6) 添加成功后,若手动编辑profile时出现assert,可能是因为L4C lib需要update,可以通过提交e-Service 申请patch(MAUI_02349252)解决。
7)如遇到其它异常,如死机等,请提交e-Service协助(请附上详细修改步骤,以及相应catcher log和memory dump以便作有效分析)。