memory到底是怎么计算出来的

 

                                    

Pages

Size (bytes)

Size (MB)

Address

Physical RAM

13924

57032704

54.39

 

Kernel Prealloc.                 

71

290816

0.28

0x 8057c 000 - 0x 805c 2fff

Paging Pool                      

1285

5263360

5.02

0x 805c 3000 - 0x 80ac 7fff

Kernel RAM Map                   

1

4096

0.00

0x 80ac 8000 - 0x 80ac 8fff

Watson Size                      

75

307200

0.29

0x83b95000 - 0x83bdffff

Overhead                         

4

16384

0.02

 

Object Store                      

8

32768

0.03

 

Program Memory                   

12480

51118080

48.75

 

我们用Windows Mobile自带memory去查看系统的内存大小,以我的机器为例,我会看见48.75MB。可以看出这个数值就是Program Memory。可是实际上我有DRAM 64MB

       计算一下上表,发现:

Physical RAM= Kernel Prealloc+ Paging Pool+ Kernel RAM Map+ Watson Size+ Overhead+ Object Store+ Program Memory

       值得注意的是Paging Pool是一个大头,在配置它的大小时要特别注意。

另外,上表中中间一列Size的大小都是Pages x 4096,所以它是页对齐的。

       可是64MB-54.39MB=9.61MB,它跑到哪里去了?

       打开BSP中的config.bib,我的DRAM0x8000,0000开始64MB,其中内核基地址是0x8020,0000

       0x8000,0000-0x8020,00002MBreserved区域,NK之后还有4MBreserved区域。这样就有2+4=6MB保留。再看NK中,0x8020,0000-0x 8057c 000大概还有3点多MB,它是NK的程序和代码段。一次这就是9.61MB跑掉的原因。

       综上,这就是DRAM的空间分配。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值