Coolsand手机ROM/RAM空间计算

注:个人理解所书,有误请指出,转载请注明出处


在空间未超出时:

对应hex目录下的.map文件,查找_flash_end看看

对应内存驱动memd.def文件 USER_DATA_BASE
USER_DATA_BASE - flash_end 就是ROM剩余
USER_DATA_BASE:=        0x00399000
0xffffffff8237e360                _flash_end = .

ROM剩余:399000- 37e360
前面的是总线片选

在XXXXX.map-stage1文件中查找 heap_size 就是编译完 剩余的ram
这个ram 包括在tgt_app_cfg.h里配置的cswHeapSize 和 cosHeapSize,所以 heap_size - cswHeapSize - cosHeapSize的剩余值不能小于300K

memd.def中RAM_SIZE + _xcpu_overlay_secton_sizelimit等于RAM总大小,也就是说
_xcpu_overlay_secton_sizelimit 其实就是XCPU_OVERLAY_BASE值

********************************************************************************************************************************

当编译空间超出时会有信息,例如
section .user_data load at [ffffffff82399000,ffffffff823fbfff] overlaps section .get_compressed_data loaded at [ffffffff822db3b0,ffffffff823a079f]

超过的空间:3a079f - 399000
ROM未压缩的结束地址是:2db3b0,之后的部分在开机时拷贝到RAM

|--USER_DATA_BASE--|--USER_DATA_SIZE--|--CALIB_BASE--|--FACT_SETTINGS_BASE--|

代码存储区从0到USER_DATA_BASE

---------------------------------------------
USER_DATA_SIZE 是存储例如短信,电话本等的信息
这个的组成在tgt_app_cfg.h。短信对应CSW中,电话本对应VDS1中
.uSecCnt定义了占用扇区的个数,TGT_DSM_PART_CONFIG中总扇区的个数必须比USER_DATA_BASE小一个扇区(4KB)
例如:USER_DATA_BASE = 0x00063000 (每个扇区4KB), 总扇区个数为99,那么TGT_DSM_PART_CONFIG中扇区个数最大为98
DSM_PART_COUNT则定义了存储块个数,与TGT_DSM_PART_CONFIG中个数相对应
---------------------------------------------

CALIB_BASE 是校准参数存储区
FACT_SETTINGS_BASE 是工厂设置参数存储区
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值