上海域格移芯平台 open FLASH空间调整 应用场景1、针对应⽤需要⾃⾏调整分区的情况open版本做了⼀些修改注意需要R2.1.2版本后才⽀持⽀持以下三个Flash空间动态调整注意并不是整个Flash空间都⽀持调整但三个区域总⼤⼩不能超过预留空间调整后总空间大小不变。• ROM(AP)代码空间• FS空间• FOTA空间/*****************************************************************/// AP_FLASH_REGION_START |--------------------------------- |// | ap img (AP_FLASH_LOAD_SIZE) |// FLASH_FS_REGION_START* |--------------------------------- |// | lfs (FLASH_FS_REGION_SIZE) |// FLASH_FOTA_REGION_START* |--------------------------------- |// | fota (FLASH_FOTA_REGION_LEN*) |// FLASH_FOTA_REGION_END |--------------------------------- |// 以上带*变量为可调整变量⽤⼾可根据需要进⾏数值调整/*******************************************************************/// ap addr and size#defineAP_FLASH_REGION_START(0x0007e000)#defineAP_FLASH_LOAD_SIZE(0x001ff000)//APP可调整//fs addr and size#defineFLASH_FS_REGION_START(0x0027d000)//APP可调整 注必须为16进制数值#defineFLASH_FS_REGION_END(0x0037d000)//APP可调整 注必须为16进制数值#defineFLASH_FS_REGION_SIZE(FLASH_FS_REGION_END-FLASH_FS_REGION_START)//fota addr and size#defineFLASH_FOTA_REGION_START(0x0037d000)//APP可调整#defineFLASH_FOTA_REGION_END(0x003f1000)#defineFLASH_FOTA_REGION_LEN(FLASH_FOTA_REGION_END-FLASH_FOTA_REGION_START)二、根据模块型号不同修改对应配置文件1、YM310_X09C.XX项⽬可以通过mem_map_716s_app.h ⽂件修改。2、YM310_X09S.XX项⽬可以通过mem_map_716e_app.h ⽂件修改。3、YM310_W09C.XX项⽬可以通过mem_map_718pm_app.h ⽂件修改。4、YM310_W09C.XX项⽬可以通过mem_map_718hm_app.h ⽂件修改。修改需要注意以下⼏点• 修改AP_FLASH_LOAD_SIZE ⼤⼩后需要同时修改AP_PKGIMG_LIMIT_SIZE 变量使得AP_FLASH_LOAD_SIZE AP_PKGIMG_LIMIT_SIZE 否则编译会报错。• FS空间不宜过⼩建议最⼩48KB否则会导致系统⽂件存储异常。• FLASH_FS_REGION_START和FLASH_FS_REGION_END需要脚本进⾏处理所以不要⽤⼗六进制以外的参数来表⽰。• 预留空间是指FLASH_FOTA_REGION_END - AP_FLASH_REGION_START 数值⼤⼩YM310_X09C.XX该值为0x1800001.5MB)YM310_X09S.XX该值为0x373000~3.45MB)。三、实际修改示例1、为了方便更换的观察flash空间大小可以通过以下接口获取当前flash空间uint32_tap_sizebsp_get_ap_size();// AP 固件分区uint32_tfs_sizebsp_get_fs_size();// 文件系统分区uint32_tfota_sizebsp_get_fota_size();// FOTA 分区yopen_trace( Partition Info );yopen_trace(AP: start0x%08X, size%u bytes (%u KB),bsp_get_ap_base(),ap_size,ap_size/1024);yopen_trace(FS: start0x%08X, size%u bytes (%u KB),bsp_get_fs_start(),fs_size,fs_size/1024);yopen_trace(FOTA: start0x%08X, size%u bytes (%u KB),bsp_get_fota_start(),fota_size,fota_size/1024);可以通过EPAT查看相关打印以下是调整flash空间之前X09C的空间分配2、调整flash空间分配有俩种方法根据实际应用选择。方法一只调整AP代码空间 和fs空间不更改fota空间大小可以通过CMAKE文件的set接口去修改以下是X09C 修改示例#YM310_****.S60 YM310_****.S61 总空间不变4kb对齐 示例AP 减少32kb,FS 增加32kb##set(AP_FLASH_LOAD_SIZE0x144000)##set(AP_FLASH_LOAD_SIZE0x13C000)减少32kb ##set(FLASH_FS_REGION_SIZE0xC000)##set(FLASH_FS_REGION_SIZE0x14000)增加32kb通过EPAT查看相关打印以下是调整flash空间之后X09C的空间分配注如烧录flash空间调整不合法编译的固件后模块会不开机方法二AP代码空间、fs空间和foat空间均要修改需要修改模块对应的配置文件。以下是X09C 修改示例//示例AP SIZE增加32kbfs SIZE不变fota SIZE减少32kb/* AP — 32KB #define AP_FLASH_LOAD_SIZE (0x00144000) → (0x0014C000) FS — 整体后移 32KB #define FLASH_FS_REGION_START (0x001b6000) → (0x001BE000) #define FLASH_FS_REGION_END (0x001c2000) → (0x001CA000) FOTA — 前端缩小 32KBEND 不变 #define FLASH_FOTA_REGION_START (0x001c2000) → (0x001CA000) #define FLASH_FOTA_REGION_END (0x001f2000) → 不变 */#if(defined MID_FEATURE_MODE)||(defined GCF_FEATURE_MODE)#defineAP_FLASH_LOAD_ADDR(0x00874000)// add 8K for CP#ifndefAP_FLASH_LOAD_SIZE//#define AP_FLASH_LOAD_SIZE (0x00142000) //APP可调整#defineAP_FLASH_LOAD_SIZE(0x0014A000)//APP可调整#endif#else#defineAP_FLASH_LOAD_ADDR(0x00872000)#ifndefAP_FLASH_LOAD_SIZE//#define AP_FLASH_LOAD_SIZE (0x00144000) //APP可调整新布局#defineAP_FLASH_LOAD_SIZE(0x0014C000)#endif#endif//fs addr and size#ifndefFLASH_FS_REGION_SIZE//#define FLASH_FS_REGION_START (0x001b6000) //APP可调整 注必须为16进制数值//#define FLASH_FS_REGION_END (0x001c2000) //APP可调整 注必须为16进制数值#defineFLASH_FS_REGION_START(0x001BE000)//APP可调整 注必须为16进制数值#defineFLASH_FS_REGION_END(0x001CA000)//APP可调整 注必须为16进制数值#defineFLASH_FS_REGION_SIZE(FLASH_FS_REGION_END-FLASH_FS_REGION_START)#else#defineFLASH_FS_REGION_END(0x001c2000)//APP可调整 注必须为16进制数值,#defineFLASH_FS_REGION_START(FLASH_FS_REGION_END-FLASH_FS_REGION_SIZE)#endif//fota addr and size//#define FLASH_FOTA_REGION_START (0x001C2000) //APP可调整#defineFLASH_FOTA_REGION_START(0x001CA000)#defineFLASH_FOTA_REGION_END(0x001f2000)#defineFLASH_FOTA_REGION_LEN(FLASH_FOTA_REGION_END-FLASH_FOTA_REGION_START)可以通过EPAT查看相关打印以下是调整flash空间之后X09C的空间分配请联系他域格小黄龙