@
目录简介
MTK分区说明
前言
对于MTK项目,刚开始领到这个任务我还以为是像文件系统的那样,音乐放AUDIO,视频放VIDEO,结果不是,mtk平台的分区事实上就是对RAM和ROM的空间进行分配和区分。 --yyq
什么是RAM和ROM
ROM和RAM都是一种存储技术,只是两者原理不同,RAM为随机存储,掉电不会保存数据,而ROM可以在掉电的情况下,依然保存原有的数据。
运行内存RAM
其实这个概念和电脑“内存”的概念一样,RAM的英文全称是“Random Access Memory”,中文译名“随机存取存储器”
它是直接与CPU进行数据交换的内部存储器,主要存放手机系统和APP运行时所产生的临时数据。一旦断电,它内部的所有数据就会被清空。打个比方,它就是手机APP与CPU的“临时转运站”,不能长期保存“货物”(数据)。
一般用来存储用户正在运行的程序,进行各种操作占用的内存就是RAM。
手机存储ROM
不少人眼中的“手机内存”,其实指的就是手机存储,对应的电脑“硬盘”概念。ROM的英文全称是“Read Only Memory”,中文译名叫“只读存储器”,它可以在断电的时候也保留数据,它的作用就很直观了,保存图片、音乐、视频、文档等数据。
常用于存储各种固定程序和数据,主要作用是完成对系统的加电自检、系统中各功能模块的初始化、系统的基本输入/输出的驱动程序及引导操作系统。
分区对应文件及作用
每个项目下面有个custom_memorydevice, 这里可以配置ram rom 内置手机盘大小.
文件路径一般为(.\pro\要修改的工程\custom_MemoryDevice.h)
分区的大小分配
一般我们编译完脚本会提示ROM空间的剩余
比较正式的做法是去关注这2个log文件
文件路径为.\src\build\对应的工程\log
ckImgSize.log
这个log里面看的就是ROM
这两个值相减就是剩余的ROM空间
14.972与脚本提示相同
ckSysDrv.log
这个LOG可以看RAM
这个值就是剩余的RAM空间
分配空间
ram报空间不够找rom分,rom不够就找ram分, 一般都是具体根据报错分配,缺多少会有提示,RAM超了报错的时候会有提示file_xxx.log(RAM未找到能验证的地方,先打个问号???)
如上图所示,还要再多给ROM多3.9K的空间,然后我们要先去看看RAM有没有3.9K给他挪,
看的方法参照上方 ckSysDrv.log
需要注意的是,我们加减空间,要加减整数,否则会报错,例如我们本次要加减3.9k, 我们不能直接按3.9K去算,要用4.0K去加减
0x1000 是1k
修改后
编译,发现编不过
为什么,先确定是空间问题还是代码问题,先去ckSysDrv.log看看
发现是RAM不够了
那横竖都是死怎么办?祈祷一下产品经理强势一点,叫客户自己选要什么功能,功能太多没空间,调rom ram大小是没用的!