MTK6250平台编译问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ch_xin/article/details/8363965

6250平台编译出现如下现象:
1,第一次编译,make new不通过,cmd窗口提示RAM超出900KB,需要关闭某些功能;(只是比之前的版本多开启了一两个features,预估计算并不会超出这么多RAM空间的,觉得这种提示很奇怪,居然超出这么多。)
2,关闭部分features后,删除之前生成的build文件夹,重新make new,编译通过;
3,重新开启关闭的features,并且删除之前生成的build文件夹,再重新make new,编译也通过了。

这属于正常情况。

50平台采用了auto memory configuration的代码动态调整机制。

调整过程:假如上一次link成功后,工程会保留上一次link的配置文件,以后每次link都会先按照上一次link成功的配置文件来链接。如果第一次link失败,工程并不会报错和停止编译,而是进行auto memory configuration,将代码重新分配到不同的段(不同的段有不同的压缩率,比如ZIMAGE段压缩率是60%,Alice段的压缩率是83%,ROM段没有压缩),以达到ROM空间和RAM空间的使用的平衡。然后根据auto memory configuration调整后的配置进行第二次link, 如果第二次lin成功,表明编译成功,并且保留该配置;如果第二次link失败,这时工程报错并停止编译。
由于进行auto memory configuration后代码的分配与原来的配置不一致,由于不同段的压缩率不一致,代码分配也不一样,导致ROM和RAM的使用空间也不一样。

只要编译成功,软件版本是没有风险的。

配置在目录:custom\system\XXX\scat_config\FeatureBased\ObjListGen下。

猜你喜欢

转载自blog.csdn.net/ch_xin/article/details/8363965
今日推荐