none
改开机LOGO时的编译错误 RRS feed

  • 问题

  • BUILD: [01:0000000027:ERRORE] c:\WINCE500\PLATFORM\COMMON\SRC\ARM\ATMEL\At91sam926x\Bootloader\Splashscreeneboot\bitmap.h(288) : error C2078: too many initializers
    BUILD: [01:0000000028:PROGC ] Linking C:\WINCE500\platform\common\lib\ARMV4I\retail\SplashScreenEBOOT.lib
    BUILD: [01:0000000030:ERRORE] LINK : fatal error LNK1181: cannot open input file 'obj\ARMV4I\retail\SplashBitmap.obj'
    我改了显示的分辨率由800*600改为第三方的480*272,换了开机LOGO,开始没错,下到 ARM上,只有白屏和一些黑色的线。后面换了个LOGO,就编译错误了,sysgen也没用。把图片换回来,sysgen后,在build也是这个错误。我估计是换分辨率有问题,求高手解答!
    2010年7月29日 5:31

答案

  • 如果我没搞错的话,你应该是把原来480*272的图像,变成了800*600。这样造成header_data array的尺寸变大。

    建议你改一下两个地方:

    1。 在Eboot.bib里,修改EBOOT segement的尺寸,增大到一个合适的大小。同时,修改其它segement以避免冲突。

    2。 将header_data移到一个.c文件里去,比如splashBitmap.c,并且把static 前缀去掉。VS的编译器很奇怪的一点,就是它会把static数据放到编译出来的binary的末尾,同时不再.map文件中标示出来。这对在最终binary文件中进行数据定位造成很大不便。

    2010年7月30日 0:51
    版主