在编译SMDK2440A6.0版本(这个版本是网上下载的,一方面想验证下,另一方面想拿这个BSP做下实验)的时候,出现如下错误:
Found pTOC at 0000101c
No imports for nk.exe
No imports for kernel.dll
No imports for coredll.dll
No imports for k.coredll.dll
Warning: Unable to do imports from ppp.dll to RSAENH.dll - will late bind
Warning: Unable to do imports from schannel.dll to RSAENH.dll - will late bind
Warning: Unable to do imports from k.schannel.dll to RSAENH.dll - will late bind
Warning: Unable to do imports from eapol.dll to RSAENH.dll - will late bind
Warning: Unable to do imports from eapchap.dll to RSAENH.dll - will late bind
Warning: Unable to do imports from crypt32.dll to RSAENH.dll - will late bind
Warning: Unable to do imports from k.crypt32.dll to RSAENH.dll - will late bind
Processing NK
Writing D:\WINCE600\OSDesigns\SMDK2440\SMDK2440\RelDir\smdk2440a_ARMV4I_Debug\NK.bin
Table of contents 82161d4c 00001db0 ( 7600)
Writing ROM signature and TOC pointer at 80200040
Kernel data copy section 80994f2c 00000020 ( 32)
ROM Header 82161cf8 00000054 ( 84)
First DLL Address: 4001c001
Last DLL Address: 4101c133
Physical Start Address: 80200000
Physical End Address: 82163afc
Start RAM: 82000000
Start of free RAM: 8200f000
End of RAM: 83fe0000
Number of Modules: 178
Number of Copy Sections: 2
Copy Section Offset: 80994f2c
Kernel Flags: 00000002
FileSys 4K Chunks/Mbyte: 128 <2Mbyte 128 2-4Mbyte 0 4-6Mbyte 0 >6Mbyte
CPU Type: 01c2h
Miscellaneous Flags: 0002h
Extensions Pointer: 80201020
Total ROM size: 01f63afc ( 32914172)
Error: Ram start overlaps rom binary
Rom end : 0x82163afc
Ram start: 0x8200f000
NK
physfirst 80200000
physlast 82163afc
ulRAMFree 8200f000
Fatal error hit, exiting...
makeimg: FATAL ERROR: Command returned non-zero exit code 1 (dec).
makeimg: FATAL ERROR: Command returned non-zero exit code 1 (dec).
BLDDEMO: SMDK2440 build complete.
SMDK2440 - 4 error(s), 24 warning(s)
========== 生成: 0 成功或最新,1 失败,0 被跳过 ==========
根据错误信息可以看出系统时找到了pTOC的,而pTOC不可能发生在系统编译过程中的前三个阶段,因此只能是Make Run-Time Image阶段。因此,我想问下各位大侠,在这个阶段的常见错误有哪些?有没有什么经验之说呢?谢谢!
------解决方案--------------------
建议楼主看看build.log文件,输出框里的提示是不够详细的。
------解决方案--------------------
这个应该是系统镜像超过32M,导致系统默认ROM空间不够。
可以修改config.bib中的nk.bin大小来解决。
------解决方案--------------------
Total ROM size: 01f63afc ( 32914172)
Error: Ram start overlaps rom binary
看信息ROM SIZE将近32M,以及错误Ram start overlaps rom binary,还是看下CONFIG.BIB的具体设置
------解决方案--------------------
Error: Ram start overlaps rom binary
应该是这个问题。需要重新配置一下内存分配。
------解决方案--------------------
------解决方案--------------------
NK.bin和NK.nb0的大小没有可比性,
NK.bin是压缩后的实际大小,最小可以是几MB,
而NK.nb0是config.bib设定的大小,那怕NK.bin仅仅是几MB,但NK.nb0依然可以是好几十MB,只是后面很多都是空白而已。
至于用NK.bin还是NK.nb0,得看具体情况,不能一概而论。