Error: Ram start overlaps rom binary
2012-04-15 13:23
246 查看
http://blog.csdn.net/lan120576664/article/details/5492880
好久都没有动WINCE了,以前买了友善之臂的板子跑的是5.0,只是搞过一段时间。由于公司的原因,今天在网上下载了友善2440的板子WINCE6.0bsp。今次友善提供的是一个安装包,去安装bsp和6.0的工程(工程有两个)。我选了一个带QQ的工程就重新编译了一下。
10多分钟过去了(呵呵,新进的小黑速度性能还可以,曾经还是在香港排行性能第一的机子哦),编译好了但是出错。
出错内容如下:
[cpp]
view plaincopyprint?
Processing NK
Writing D:/WINCE600/OSDesigns/Mini2440-with-QQ/Mini2440-with-
QQ/RelDir/Mini2440_ARMV4I_Release/NK.bin
Error: Ram start overlaps rom binary
Rom end : 0x82356260
Ram start: 0x8200e000
NK
physfirst 80200000
physlast 82356260
ulRAMFree 8200e000
Fatal error hit, exiting...
Table of contents 82353768 00002af8 ( 11000)
Writing ROM signature and TOC pointer at 80200040
Kernel data copy section 807bee7c 00000020 ( 32)
ROM Header 82353714 00000054 ( 84)
First DLL Address: 4001c001
Last DLL Address: 416dc0b1
Physical Start Address: 80200000
Physical End Address: 82356260
Start RAM: 82000000
Start of free RAM: 8200e000
End of RAM: 83e00000
Number of Modules: 230
Number of Copy Sections: 2
Copy Section Offset: 807bee7c
Kernel Flags: 00000002
FileSys 4K Chunks/Mbyte: 48 <2Mbyte 48 2-4Mbyte 0 4-6Mbyte 0
>6Mbyte
CPU Type: 01c2h
Miscellaneous Flags: 0002h
Extensions Pointer: 80201570
Total ROM size: 02156260 ( 34955872)
makeimg: FATAL ERROR: Command returned non-zero exit code 1 (dec).
makeimg: FATAL ERROR: Command returned non-zero exit code 1 (dec).
Mini2440-with-QQ - 4 error(s), 10 warning(s)
========== 生成: 0 成功或最新,1 失败,0 被跳过 ==========
可以看到
NK 80200000 01e00000 RAMIMAGE ;01e00000 30M(注释是本人加上去的)
RAM 82000000 01e00000 RAM
和
ROMSTART=80200000
ROMWIDTH=32
ROMSIZE=01e00000 ;01e00000 30M(注释是本人加上去的)
看一下出错信息,ROM总共是多大。
Total ROM size: 02156260 ( 34955872)
这个大概是33M左右的大小,超过了设置的ROMSIZE规定的大小,
同时,82356260=80200000(ROMSTART) +02156260 (ROMSIZE),82356260明显超过了RAM的起始地址82000000。
因此,现在问题来了,有两个步骤。
1、把ROMSIZE的大小放大。
2、根据ROMSIZE的大小重新调整RAM的起始地址
我的调整结果如下:
[cpp]
view plaincopyprint?
MEMORY
; NK 80200000 01e00000 RAMIMAGE
; RAM 82000000 01e00000 RAM
NK 80200000 02300000 RAMIMAGE ;35M
RAM 82500000 01e00000 RAM
; FLASH 92000000 00100000 RESERVED
; Common RAM areas
AUD_DMA 80002000 00000800 RESERVED
SDIO_DMA 80010000 00010000 RESERVED
ARGS 80020800 00000800 RESERVED
DBGSER_DMA 80022000 00002000 RESERVED
SER_DMA 80024000 00002000 RESERVED
IR_DMA 80026000 00002000 RESERVED
SLEEP 80028000 00002000 RESERVED
EDBG 80030000 00020000 RESERVED
DISPLAY 80080000 00180000 RESERVED
CONFIG
COMPRESSION=ON
KERNELFIXUPS=ON
IF IMGPROFILER
PROFILE=ON
ELSE
PROFILE=OFF
ENDIF
;
; ROMFLAGS is a bitmask of options for the kernel
; ROMFLAGS 0x0001 Disallow Paging
; ROMFLAGS 0x0002 Not all KMode
; ROMFLAGS 0x0010 Trust Module only
;
IF IMGTRUSTROMONLY
IF IMGNOTALLKMODE
ROMFLAGS=12
ELSE
ROMFLAGS=10
ENDIF
ELSE
IF IMGNOTALLKMODE
ROMFLAGS=02
ELSE
ROMFLAGS=00
ENDIF
ENDIF
ROMSTART=80200000
ROMWIDTH=32
;ROMSIZE=01e00000
ROMSIZE=2300000 ;35M
FSRAMPERCENT=0x30303030
MEMORY
; NK 80200000 01e00000 RAMIMAGE
; RAM 82000000 01e00000 RAM
NK 80200000 02300000 RAMIMAGE ;35M
RAM 82500000 01e00000 RAM
; FLASH 92000000 00100000 RESERVED
; Common RAM areas
AUD_DMA 80002000 00000800 RESERVED
SDIO_DMA 80010000 00010000 RESERVED
ARGS 80020800 00000800 RESERVED
DBGSER_DMA 80022000 00002000 RESERVED
SER_DMA 80024000 00002000 RESERVED
IR_DMA 80026000 00002000 RESERVED
SLEEP 80028000 00002000 RESERVED
EDBG 80030000 00020000 RESERVED
DISPLAY 80080000 00180000 RESERVED
CONFIG
COMPRESSION=ON
KERNELFIXUPS=ON
IF IMGPROFILER
PROFILE=ON
ELSE
PROFILE=OFF
ENDIF
;
; ROMFLAGS is a bitmask of options for the kernel
; ROMFLAGS 0x0001 Disallow Paging
; ROMFLAGS 0x0002 Not all KMode
; ROMFLAGS 0x0010 Trust Module only
;
IF IMGTRUSTROMONLY
IF IMGNOTALLKMODE
ROMFLAGS=12
ELSE
ROMFLAGS=10
ENDIF
ELSE
IF IMGNOTALLKMODE
ROMFLAGS=02
ELSE
ROMFLAGS=00
ENDIF
ENDIF
ROMSTART=80200000
ROMWIDTH=32
;ROMSIZE=01e00000
ROMSIZE=2300000 ;35M
FSRAMPERCENT=0x30303030
我将ROMSIZE设置成35M的大小。
当然解决这个问题的方法还有其他方法
可以参考
http://blog.csdn.net/joyzml/archive/2010/01/18/5207176.aspx
这个网址。
设置完成后,将重新打包NK就行了。
好久都没有动WINCE了,以前买了友善之臂的板子跑的是5.0,只是搞过一段时间。由于公司的原因,今天在网上下载了友善2440的板子WINCE6.0bsp。今次友善提供的是一个安装包,去安装bsp和6.0的工程(工程有两个)。我选了一个带QQ的工程就重新编译了一下。
10多分钟过去了(呵呵,新进的小黑速度性能还可以,曾经还是在香港排行性能第一的机子哦),编译好了但是出错。
出错内容如下:
[cpp]
view plaincopyprint?
Processing NK
Writing D:/WINCE600/OSDesigns/Mini2440-with-QQ/Mini2440-with-
QQ/RelDir/Mini2440_ARMV4I_Release/NK.bin
Error: Ram start overlaps rom binary
Rom end : 0x82356260
Ram start: 0x8200e000
NK
physfirst 80200000
physlast 82356260
ulRAMFree 8200e000
Fatal error hit, exiting...
Table of contents 82353768 00002af8 ( 11000)
Writing ROM signature and TOC pointer at 80200040
Kernel data copy section 807bee7c 00000020 ( 32)
ROM Header 82353714 00000054 ( 84)
First DLL Address: 4001c001
Last DLL Address: 416dc0b1
Physical Start Address: 80200000
Physical End Address: 82356260
Start RAM: 82000000
Start of free RAM: 8200e000
End of RAM: 83e00000
Number of Modules: 230
Number of Copy Sections: 2
Copy Section Offset: 807bee7c
Kernel Flags: 00000002
FileSys 4K Chunks/Mbyte: 48 <2Mbyte 48 2-4Mbyte 0 4-6Mbyte 0
>6Mbyte
CPU Type: 01c2h
Miscellaneous Flags: 0002h
Extensions Pointer: 80201570
Total ROM size: 02156260 ( 34955872)
makeimg: FATAL ERROR: Command returned non-zero exit code 1 (dec).
makeimg: FATAL ERROR: Command returned non-zero exit code 1 (dec).
Mini2440-with-QQ - 4 error(s), 10 warning(s)
========== 生成: 0 成功或最新,1 失败,0 被跳过 ==========
[cpp] view plaincopyprint? MEMORY NK 80200000 01e00000 RAMIMAGE ;01e00000 30M RAM 82000000 01e00000 RAM ; FLASH 92000000 00100000 RESERVED ; Common RAM areas AUD_DMA 80002000 00000800 RESERVED SDIO_DMA 80010000 00010000 RESERVED ARGS 80020800 00000800 RESERVED DBGSER_DMA 80022000 00002000 RESERVED SER_DMA 80024000 00002000 RESERVED IR_DMA 80026000 00002000 RESERVED SLEEP 80028000 00002000 RESERVED EDBG 80030000 00020000 RESERVED DISPLAY 80080000 00180000 RESERVED CONFIG COMPRESSION=ON KERNELFIXUPS=ON IF IMGPROFILER PROFILE=ON ELSE PROFILE=OFF ENDIF ; ; ROMFLAGS is a bitmask of options for the kernel ; ROMFLAGS 0x0001 Disallow Paging ; ROMFLAGS 0x0002 Not all KMode ; ROMFLAGS 0x0010 Trust Module only ; IF IMGTRUSTROMONLY IF IMGNOTALLKMODE ROMFLAGS=12 ELSE ROMFLAGS=10 ENDIF ELSE IF IMGNOTALLKMODE c6f6 ROMFLAGS=02 ELSE ROMFLAGS=00 ENDIF ENDIF ROMSTART=80200000 ROMWIDTH=32 ROMSIZE=01e00000 ;01e00000 30M FSRAMPERCENT=0x30303030 MEMORY NK 80200000 01e00000 RAMIMAGE ;01e00000 30M RAM 82000000 01e00000 RAM ; FLASH 92000000 00100000 RESERVED ; Common RAM areas AUD_DMA 80002000 00000800 RESERVED SDIO_DMA 80010000 00010000 RESERVED ARGS 80020800 00000800 RESERVED DBGSER_DMA 80022000 00002000 RESERVED SER_DMA 80024000 00002000 RESERVED IR_DMA 80026000 00002000 RESERVED SLEEP 80028000 00002000 RESERVED EDBG 80030000 00020000 RESERVED DISPLAY 80080000 00180000 RESERVED CONFIG COMPRESSION=ON KERNELFIXUPS=ON IF IMGPROFILER PROFILE=ON ELSE PROFILE=OFF ENDIF ; ; ROMFLAGS is a bitmask of options for the kernel ; ROMFLAGS 0x0001 Disallow Paging ; ROMFLAGS 0x0002 Not all KMode ; ROMFLAGS 0x0010 Trust Module only ; IF IMGTRUSTROMONLY IF IMGNOTALLKMODE ROMFLAGS=12 ELSE ROMFLAGS=10 ENDIF ELSE IF IMGNOTALLKMODE ROMFLAGS=02 ELSE ROMFLAGS=00 ENDIF ENDIF ROMSTART=80200000 ROMWIDTH=32 ROMSIZE=01e00000 ;01e00000 30M FSRAMPERCENT=0x30303030
可以看到
NK 80200000 01e00000 RAMIMAGE ;01e00000 30M(注释是本人加上去的)
RAM 82000000 01e00000 RAM
和
ROMSTART=80200000
ROMWIDTH=32
ROMSIZE=01e00000 ;01e00000 30M(注释是本人加上去的)
看一下出错信息,ROM总共是多大。
Total ROM size: 02156260 ( 34955872)
这个大概是33M左右的大小,超过了设置的ROMSIZE规定的大小,
同时,82356260=80200000(ROMSTART) +02156260 (ROMSIZE),82356260明显超过了RAM的起始地址82000000。
因此,现在问题来了,有两个步骤。
1、把ROMSIZE的大小放大。
2、根据ROMSIZE的大小重新调整RAM的起始地址
我的调整结果如下:
[cpp]
view plaincopyprint?
MEMORY
; NK 80200000 01e00000 RAMIMAGE
; RAM 82000000 01e00000 RAM
NK 80200000 02300000 RAMIMAGE ;35M
RAM 82500000 01e00000 RAM
; FLASH 92000000 00100000 RESERVED
; Common RAM areas
AUD_DMA 80002000 00000800 RESERVED
SDIO_DMA 80010000 00010000 RESERVED
ARGS 80020800 00000800 RESERVED
DBGSER_DMA 80022000 00002000 RESERVED
SER_DMA 80024000 00002000 RESERVED
IR_DMA 80026000 00002000 RESERVED
SLEEP 80028000 00002000 RESERVED
EDBG 80030000 00020000 RESERVED
DISPLAY 80080000 00180000 RESERVED
CONFIG
COMPRESSION=ON
KERNELFIXUPS=ON
IF IMGPROFILER
PROFILE=ON
ELSE
PROFILE=OFF
ENDIF
;
; ROMFLAGS is a bitmask of options for the kernel
; ROMFLAGS 0x0001 Disallow Paging
; ROMFLAGS 0x0002 Not all KMode
; ROMFLAGS 0x0010 Trust Module only
;
IF IMGTRUSTROMONLY
IF IMGNOTALLKMODE
ROMFLAGS=12
ELSE
ROMFLAGS=10
ENDIF
ELSE
IF IMGNOTALLKMODE
ROMFLAGS=02
ELSE
ROMFLAGS=00
ENDIF
ENDIF
ROMSTART=80200000
ROMWIDTH=32
;ROMSIZE=01e00000
ROMSIZE=2300000 ;35M
FSRAMPERCENT=0x30303030
MEMORY
; NK 80200000 01e00000 RAMIMAGE
; RAM 82000000 01e00000 RAM
NK 80200000 02300000 RAMIMAGE ;35M
RAM 82500000 01e00000 RAM
; FLASH 92000000 00100000 RESERVED
; Common RAM areas
AUD_DMA 80002000 00000800 RESERVED
SDIO_DMA 80010000 00010000 RESERVED
ARGS 80020800 00000800 RESERVED
DBGSER_DMA 80022000 00002000 RESERVED
SER_DMA 80024000 00002000 RESERVED
IR_DMA 80026000 00002000 RESERVED
SLEEP 80028000 00002000 RESERVED
EDBG 80030000 00020000 RESERVED
DISPLAY 80080000 00180000 RESERVED
CONFIG
COMPRESSION=ON
KERNELFIXUPS=ON
IF IMGPROFILER
PROFILE=ON
ELSE
PROFILE=OFF
ENDIF
;
; ROMFLAGS is a bitmask of options for the kernel
; ROMFLAGS 0x0001 Disallow Paging
; ROMFLAGS 0x0002 Not all KMode
; ROMFLAGS 0x0010 Trust Module only
;
IF IMGTRUSTROMONLY
IF IMGNOTALLKMODE
ROMFLAGS=12
ELSE
ROMFLAGS=10
ENDIF
ELSE
IF IMGNOTALLKMODE
ROMFLAGS=02
ELSE
ROMFLAGS=00
ENDIF
ENDIF
ROMSTART=80200000
ROMWIDTH=32
;ROMSIZE=01e00000
ROMSIZE=2300000 ;35M
FSRAMPERCENT=0x30303030
我将ROMSIZE设置成35M的大小。
当然解决这个问题的方法还有其他方法
可以参考
http://blog.csdn.net/joyzml/archive/2010/01/18/5207176.aspx
这个网址。
设置完成后,将重新打包NK就行了。
相关文章推荐
- Error: Ram start overlaps rom binary 解决方法
- Error: Ram start overlaps rom binary
- Error: Ram start overlaps rom binary
- 问题解决:Ram start overlaps rom binary
- Ram start overlaps rom binary
- Error: Ram start overlaps rom binary
- java.lang.RuntimeException: Unable to start activity ComponentInfo{com.ex.activity/com.ex.activity.LoginActivity}: android.view.InflateException: Binary XML file line #1: Error inflating class
- MTK link 错误:“Error: L6221E: Execution region EXTSRAM overlaps with Execution region DUMMY_END.”
- Ram start overlaps rom binary
- Error: Ram free start is after ram end. Fatal error hit, exiting...
- 存储器知识 之 ROM、RAM、DRAM、SRAM和FLASH的区别
- (tomcat启动报错)org.apache.catalina.core.StandardContext.startInternal Error listenerStart
- Tomcat启动报Error listenerStart错误
- RAM、ROM、Flash 存储器硬件
- 单片机flash和RAM/ROM的区别
- java setBinaryStream error for mysql
- "Unexpected Error 0x8ffe2740 Occurred" Error Message When You Try to Start a Web Site
- ROM、RAM、DRAM、SRAM和FLASH的区别
- Server Job: error: String or binary data would be truncated. The statement has been terminated.
- Android关于RAM、ROM、SD卡以及各种内存的区别