PB常見編譯出錯及解決辦法(一)
Error: Ram start overlaps rom binary
Rom end : 0x8df9ba1c
Ram start: 0x8de29000
NK
physfirst 8c200000
physlast 8df9ba1c
ulRAMFree 8de29000
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).
.
.
30,733,179 NK.bin
.
Error: Ram start overlaps rom binary
Rom end : 0x8df9ba1c
Ram start: 0x8de29000
NK
physfirst 8c200000
physlast 8df9ba1c
ulRAMFree 8de29000
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).
.
.
30,733,179 NK.bin
.
導致這個錯誤的原因是NK.bin的實際大小超過了config.bib檔案中定義的大小。
有兩個方法可以解決這個問題。
方法一:刪除一些不必要的元件,然後重新Sysgen
方法二:修改config.bib檔案
下面是我的config.bib檔案的一段:
view plaincopy to clipboardprint?
NK 8C200000 01C00000 RAMIMAGE
RAM 8DE00000 02200000 RAM
.
.
ROMSTART=8C200000
ROMWIDTH=32
ROMSIZE=01c00000
.
NK 8C200000 01C00000 RAMIMAGE
RAM 8DE00000 02200000 RAM
.
.
ROMSTART=8C200000
ROMWIDTH=32
ROMSIZE=01c00000
.
這裡定義的NK的大小是01C00000,也就是28M。
而實際上我現在的NK已經達到了30,733,179,也就是29.3M。
這就是導致問題的主要原因。
解決方法:
首先把01C00000改成01E00000(30M)
然後把8DE00000改成8E100000(+2M)
把02200000改成02000000(-2M)
最後把ROMSIZE=01c00000改成ROMSIZE=01E00000
重新Sysgen
(這裡面如果NK超過32M,Build Options中需要勾選上
“Run-Time Image Can be Larger than 32 MB”)