eboot.nb0生成不了的问题???

flyingxc82   2009-2-18 17:30 楼主
只生成了eboot.bin,查看build.log,错误如下:
BUILD: [01:0000000144:INFO  ] Writing E:\WINCE600\platform\SMDK6410\target\ARMV4I\retail\EBOOT.bin
BUILD: [01:0000000145:INFO  ] Table of contents  80071ed8  00000020  (        32)
BUILD: [01:0000000146:INFO  ] Writing ROM signature and TOC pointer at 80030040
BUILD: [01:0000000147:INFO  ] Kernel data copy section  80071ef8  00000010  (        16)
BUILD: [01:0000000148:INFO  ] ROM Header                80071e84  00000054  (        84)
BUILD: [01:0000000149:INFO  ] First DLL Address:       4001c001
BUILD: [01:0000000150:INFO  ] Last DLL Address:        4001c001
BUILD: [01:0000000151:INFO  ] Physical Start Address:  80030000
BUILD: [01:0000000152:INFO  ] Physical End Address:    80071f08
BUILD: [01:0000000153:INFO  ] Start RAM:               800b0000
BUILD: [01:0000000154:INFO  ] Start of free RAM:       8028e000
BUILD: [01:0000000155:INFO  ] End of RAM:              800c0000
BUILD: [01:0000000156:INFO  ] Number of Modules:       1
BUILD: [01:0000000157:INFO  ] Number of Copy Sections: 1
BUILD: [01:0000000158:INFO  ] Copy Section Offset:     80071ef8
BUILD: [01:0000000159:INFO  ] FileSys 4K Chunks/Mbyte: 128 <2Mbyte  128 2-4Mbyte  0 4-6Mbyte  0 >6Mbyte
BUILD: [01:0000000160:INFO  ] CPU Type:                    01c2h
BUILD: [01:0000000161:INFO  ] Miscellaneous Flags:         0002h
BUILD: [01:0000000162:INFO  ] Total ROM size:          00041f08 (    270088)
BUILD: [01:0000000163:INFO  ] Error: Ram free start is after ram end.Fatal error hit, exiting...

正确编译能够生产eboot.nb0的log如下:
0000000144:INFO  ] Writing E:\WINCE600\platform\SMDK6410\target\ARMV4I\retail\EBOOT.bin
BUILD: [01:0000000145:INFO  ] Table of contents  80070e78  00000020  (        32)
BUILD: [01:0000000146:INFO  ] Writing ROM signature and TOC pointer at 80030040
BUILD: [01:0000000147:INFO  ] Kernel data copy section  8006ffe4  00000010  (        16)
BUILD: [01:0000000148:INFO  ] ROM Header                80070e24  00000054  (        84)
BUILD: [01:0000000149:INFO  ] First DLL Address:       4001c001
BUILD: [01:0000000150:INFO  ] Last DLL Address:        4001c001
BUILD: [01:0000000151:INFO  ] Physical Start Address:  80030000
BUILD: [01:0000000152:INFO  ] Physical End Address:    80070e98
BUILD: [01:0000000153:INFO  ] Start RAM:               800b0000
BUILD: [01:0000000154:INFO  ] Start of free RAM:       800b8000
BUILD: [01:0000000155:INFO  ] End of RAM:              800c0000
BUILD: [01:0000000156:INFO  ] Number of Modules:       1
BUILD: [01:0000000157:INFO  ] Number of Copy Sections: 1
BUILD: [01:0000000158:INFO  ] Copy Section Offset:     8006ffe4
BUILD: [01:0000000159:INFO  ] FileSys 4K Chunks/Mbyte: 128 <2Mbyte  128 2-4Mbyte  0 4-6Mbyte  0 >6Mbyte
BUILD: [01:0000000160:INFO  ] CPU Type:                    01c2h
BUILD: [01:0000000161:INFO  ] Miscellaneous Flags:         0002h
BUILD: [01:0000000162:INFO  ] Total ROM size:          00040e98 (    265880)
BUILD: [01:0000000163:INFO  ] Starting ip:             80063cc8
BUILD: [01:0000000164:INFO  ] Raw files size:          00000000
BUILD: [01:0000000165:INFO  ] Compressed files size:   00000000
BUILD: [01:0000000166:INFO  ] Compacting bin file...
BUILD: [01:0000000167:INFO  ] Writing sre file...
BUILD: [01:0000000168:INFO  ] Writing rom file...
BUILD: [01:0000000169:INFO  ] Start 80030000 Len 00000004
BUILD: [01:0000000170:INFO  ] Start 80030040 Len 00000008
BUILD: [01:0000000171:INFO  ] Start 80030048 Len 00000004
BUILD: [01:0000000172:INFO  ] Start 80031000 Len 0003fe24
BUILD: [01:0000000173:INFO  ] Start 80070e24 Len 00000054
BUILD: [01:0000000174:INFO  ] Start 80070e78 Len 00000020
BUILD: [01:0000000175:INFO  ] Creating rom file E:\WINCE600\platform\SMDK6410\target\ARMV4I\retail\EBOOT.nb0
BUILD: [01:0000000176:INFO  ] Done!

请问Start of free RAM是怎么确定的?我忘了修改了什么文件就变成这样了。。。

回复评论 (10)

检查Eboot.bib文件吧,文件名不一定是eboot.bib,反正就是定义Eboot分布的文件,后缀bib
点赞  2009-2-18 23:03
检查你的eboot下的bib文件,我觉得是你的bib设置的nb0文件大小比实际编译出来的要小,所以造成,打包失败。
点赞  2009-2-19 08:41
BUILD: [01:0000000153:INFO  ] Start RAM:              800b0000
BUILD: [01:0000000154:INFO  ] Start of free RAM:      8028e000
BUILD: [01:0000000155:INFO  ] End of RAM:              800c0000


明显有错误.
点赞  2009-2-19 09:43
Error: Ram free start is after ram end.Fatal error hit, exiting...
这句话不是提示你RAM的起始地址在RAM的结束地址之后了,哪来的指定nb0的大小比实际编译的要小的问题?
点赞  2009-2-19 09:44
引用: 引用 4 楼 hzdysymbol 的回复:
Error: Ram free start is after ram end.Fatal error hit, exiting...
这句话不是提示你RAM的起始地址在RAM的结束地址之后了,哪来的指定nb0的大小比实际编译的要小的问题?


楼主贴出bib文件来看看吧。哈哈。
点赞  2009-2-19 09:52
eboot.bib:
PTS                        80000000        00020000        RESERVED                ; Page Table        : 128 KB
        ARGS                80020800        00000800        RESERVED                ; BSP Args        : 2 KB
        EBOOT                80030000        00080000        RAMIMAGE                ; Eboot Image        : 512 KB
        RAM                        800B0000        00010000        RAM                                ; RAM                : 64 KB
        BINFS                800C0000        00030000        RESERVED                ; Bin FS                : 192 KB
        STACK                800FC000        00004000        RESERVED                ; Stack                : 16 KB (sharing with Step Loader)

        FLSCACHE        80100000        02F00000                RESERVED
        USB_BUF                83000000        03000000        RESERVED

        DISPLAY                87000000        01000000        RESERVED

CONFIG
        COMPRESSION=OFF
        PROFILE=OFF
        KERNELFIXUPS=ON
        SRE=ON

        ROMSTART = 80030000
        ROMWIDTH = 32
        ROMSIZE = 00080000

MODULES
;   Name            Path                                                              Memory Type
;   --------------  ----------------------------------------------                    -----------
    nk.exe          $(_TARGETPLATROOT)\target\$(_TGTCPU)\$(WINCEDEBUG)\eboot.exe      EBOOT

我想知道start of mem是怎么确定的,我开始还可以编的,后来忘了改了哪几个文件就不行了,早知道用git了,郁闷。。。
点赞  2009-2-19 10:13
大家谁知道start of mem怎么确定的??我急死了。。。
点赞  2009-2-19 15:37
看这样子不是Eboot.bib出问题了,而是你的代码里面有问题

不过你可以改大RAM试一试
RAM 80100000 00300000 RAM ;
不过要注意你现在RAM的起始地址为80100000
点赞  2009-2-19 22:41
找到原因了,是我在屏的驱动中用了个大数组作为全局变量,导致eboot的bss段过大造成。
点赞  2009-2-20 16:20
引用: 引用 8 楼 hzdysymbol 的回复:
看这样子不是Eboot.bib出问题了,而是你的代码里面有问题

不过你可以改大RAM试一试
RAM 80100000 00300000 RAM ;
不过要注意你现在RAM的起始地址为80100000

BUILD: [01:0000000153:INFO  ] Start RAM:              800b0000
BUILD: [01:0000000154:INFO  ] Start of free RAM:      8028e000
BUILD: [01:0000000155:INFO  ] End of RAM:              800c0000
为什么现在的RAM的起始地址变为80100000了呢
点赞  2010-1-26 21:58
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复