摘自原厂手册:
PMM是InfoTM方案中预留连续物理内存的管理策略。PMM预留的内存主要给framebuffer、HDMI以及Camera三部分使用,该部分的内存系统不可见;因此,预留内存大小需要根据具体平台的状况决定,以免占用过多的系统内存。
reserved内存计算包括3个部分:
1.framebuffer = 屏幕宽度*屏幕高度*像素字节数*4
屏幕宽度:设置在item里,如:
ids.fb.width1024
屏幕高度:设置在item里,如:
ids.fb.height768
像素字节数:设置在item里,如:
ids.fb.pixfmt888 #设置为“888”时像素字节数是4,设置为“565”时是2
以上面的Item配置,framebuffer= 1024*768*4*4=12MB
2.HDMI投影模式=1920*1080*2*2 = 8MB
3.Camera = 摄像头最大像素*1.5 * 5
最大像素:如果有前置和后置摄像头,则以大的计算;比如是最大像素是200万,则:
camera= 2000000 * 1.5 * 5 = 15MB
注意:如果摄像头有插值处理(如30万插值到200万),以插值后的分辨率为准。
按以上配置,计算得到:
reserved内存计算值=framebuffer+ HDMI投影模式+camera
=12 + 8 + 15= 35MB
最终预留的内存大小,需要在计算值的基础上增加8M的余量,因此上述配置的最终PMM预留内存应配置为:
reserved内存实际值=reserved内存计算值+8M余量
=35M + 8M =43M
另外,如果系统没有HDMI或camera,可以在计算时去掉这两部分。
通过修改item配置文件可以方便的更改PMM预留内存的大小,对应的item条目为:
pmm.reserve.size 48
上述配置表示PMM保留的内存大小为48M;如果item中未配置此项,则默认为64M。