Preloader bin size过大编译报错怎么办

由于需要兼容更多的emcp,mcp,discrete dram,以及由于新的需求修改preloader code都可能会增大preloader bin的size,这时就可能会在build preloader阶段发生build error,log中会报类似以下的错误信息:===================== Building Fail =========================== IMG ROM Size: 101340 bytes > 100828 bytes!! WARNING: Reduce
your code size first then compile again!! ========================================================= 以上这段error log是mediatek/platform//preloader/check_size.sh这个script报出来的,脚本中会比较build出的preloader bin和PL_MAX_ROM_SIZE的value,如果build出的preloader bin size超过这个值,就会报错。你会发现这个值一般都会设置的很小,不会超过128KB,也许你很奇怪为什么要限制的这么小,请继续看[SOLUTION]部分的说明。
PL_MAX_ROM_SIZE的value的值之所以设置的比较小,是因为开机时由于external dram还未被初始化,BROM会把preloader bin整体从flash(emmc or nand)load到chip内部的shared sram中。又由于chip内部的shared sram的size一般都会很小,典型的size是128KB(MT6572/71/82/92等),MT6595是256KB,因此preloader bin的size不能超过internal shared sram的size。
同时,还需要扣除Header, GFH 以及rum time BSS段,stack等占用的ram空间,留给真正preloader bin的空间就肯定会小于internal shared sram size。 因此当发生preloader bin size过大时,请不要自己增大PL_MAX_ROM_SIZE的value,这样做虽然可以build通过,但是可能会发生无法开机等奇怪的问题,且不容易debug。 對於JB版本,目前唯一的解决方法就是严格控制兼容的emcp,mcp,discrete dram个数,同时尽量避免在preloader中添加新的feature,如果要客制化新feature的话,建议移到lk去实做。相关的FAQ请参考"[FAQ07839]【Storage】eMMC和NAND
Flash的兼容个数" 對於KK版本,由於Preloader新增了對LPDDR3的支援,因此default可能無法配置出10顆兼容的mcp/emcp/discrete dram,需要參考以下的說明修改code,減少debug code佔用的size。* MT6589/72/71平台,请修改alps\mediatek\platform\$PLATFORM\preloader\src\drivers\inc\mt_pmic_wrap_init.h文件* MT6582/92平台,请修改alps\mediatek\platform\$PLATFORM\preloader\src\drivers\inc\pmic_wrap_init.h文件
具体修改code的方法是一样的:(1)#define PMIC_WRAP_DEBUG //注释掉这一行(2)#define PWRAPERR(fmt, arg...) printf(PWRAPTAG "ERROR,line=%d " fmt, __LINE__, ##arg)修改为:#define PWRAPERR(fmt, arg...) printf(PWRAPTAG "ERROR,line=%d ", __LINE__) 另外JB3.MP MT6572版本的check_size.sh脚本存在bug,size检查机制会失效,如果您发现在这个脚本中PL_MAX_ROM_SIZE定义的方法如下,那么就说明您没有打上patch,需要提e-service申请ALPS00869854这笔patch。
# Keep ROM size smaller than 90KB PL_MAX_ROM_SIZE=(95*1024)

时间: 2024-10-05 07:03:05

Preloader bin size过大编译报错怎么办的相关文章

Android Studio编译大工程报错:java.exe'' finished with non-zero exit value 1

版权声明:本文为博主原创文章,未经博主允许不得转载. Android Studio编译大工程报错:java.exe'' finished with non-zero exit value 1

DVR_RDK编译报错

报错信息: abnormal termination of /opt/dm8168/dvr_rdk/../ti_tools/cgt_dsp/cgt6x_7_3_5//bin/cmp6x make[2]: *** [/opt/dm8168/dvr_rdk/../dvr_rdk/build/dvr_rdk/obj/ti816x-evm/c6xdsp/debug/MAIN_APP_c6xdsp_pe674.oe674] Error 1 make[1]: *** [apps] Error 2 make:

SELF4j没什么具体大的报错异常

JBOSS报错 在排查的过程中有的说是jboss自带的jar和war包中的jar有冲突. 后来找了高人,原来是参数配置有问题 这个参数太小了,就会导致Jboss应用启动中没什么大的报错,但是启动到一部分就会不刷新日志,其实这回进程已经被系统杀掉了,因为参数太小 还有个地方,我们服务器中设置的也是有问题的. /etc/profile export JAVA_HOME=/opt/jdk1.6.0_25 export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/

对arm指令集的疑惑,静态库运行,编译报错等问题

转载自http://www.jianshu.com/p/4a70aa03a4ea?utm_campaign=hugo&utm_medium=reader_share&utm_content=note&utm_source=qq 对arm指令集的疑惑,静态库运行的问题,翻看了很多资料,整理如下: 1:blog.csdn.net/lizhongfu2013/article/details/42387311 下面内容转发自上述链接:iOS开发-制作同时支持armv7,armv7s,arm

jack编译报错的问题

最近公司开发人员频繁jack的问题,我这边总结一下: 一. 第一种情况是服务器多人编译而产生的jack端口冲突的原因!报错提示如下: No Jack server running. Try 'jack-admin start-server' No Jack server running. Try 'jack-admin start-server 解决方法,首先第一步: 执行命令:cat ~/.jack-server/config.properties|grep -i port && cat

mysql编译报错

1.make报错现象 Warning: Bison executable not found in PATH 解决办法 yum -y install bison 2.make报错现象 ake Error at /usr/share/cmake-2.8/Modules/CMakeCXXInformation.cmake:17 (get_filename_component):get_filename_component called with incorrect number of argumen

android4.4 编译报错,和llvm 有关的

问题描述 最近想看一下android4.4 的source ,但是在编译的过程中遇到了下面的问题,各位大哥帮忙看一下,我实在是搞不定了,网上介绍的关于4.0 的类似的错误修改方法在4.4 上无效,其实错误也不是一样的. 4.0 的错误修改方法: $vi external/llvm/llvm-host-build.mk + LOCAL_LDLIBS := -lpthread -ldl 下面的是4.4 编译报错信息 external/llvm/lib/Transforms/Vectorize/BBV

选iphone5可以正常编译运行 , 但是5s和6和6s都会编译报错

选iphone5可以正常编译运行   但是5s和6和6s都会编译报错 iphone6编译报错iphone5s编译报错 解决办法是,Build settings里面把Architectures里面的$(ARCHS_STANDARD)去掉,加入armv7和armv7s两个.

php编译报错

最近发现MDT推出去的系统的有不同问题,其问题就不说了,主要是策略权限被域继承了.比如我们手动安装的很多东东都是未配置壮态,推的就默认为安全壮态了,今天细找了一下,原来把这个关了就可以了. php编译报错,布布扣,bubuko.com