当前位置: 代码迷 >> WinCE >> 修改config.bib,配置内存分配解决方法
  详细解决方案

修改config.bib,配置内存分配解决方法

热度:178   发布时间:2016-04-28 13:48:08.0
修改config.bib,配置内存分配
大家好:
我在修改config.bib文件,但是修改后,系统不能启动,大家看看是怎么回事.还有修改config.bib还需要修改其他文件吗?

config.bib原文件
MEMORY

;#define CHAIN_ADDRESS 81E40000
; CHAIN $(CHAIN_ADDRESS) 00001000 RESERVED
; pdwXIPLoc 00000000 $(CHAIN_ADDRESS) FIXUPVAR

;;; Tarzan Debug mode 
NK 8C200000 01e00000 RAMIMAGE
; NK 80040000 01E00000 RAMIMAGE
; CHAIN 81E40000 00001000 RESERVED
; DRIVERS 81E41000 001BF000 RAMIMAGE

; RESERVE 8df00000 00080000
; RAM 8c200000 01D00000 RAM
RAM 8e000000 02000000 RAM


; Common RAM areas
AUD_DMA 8c002000 00002000 RESERVED 
DRV_GLB 8c010000 00010000 RESERVED
; DBGSER_DMA 8c022000 00002000 RESERVED
; SER_DMA 8c024000 00002000 RESERVED
; IR_DMA 8c026000 00002000 RESERVED
SD_DMA 8c028000 00008000 RESERVED

EDBG 8c030000 00020000 RESERVED
; CAMERA 8c050000 000A0000 RESERVED
CAMERA 8c088000 00140000 RESERVED
; DISPLAY 8c100000 00100000 RESERVED  
; DISPLAY 8c1d0000 00030000 RESERVED 
  DISPLAY 8c100000 00100000 RESERVED  

CONFIG
AUTOSIZE=ON
ROM_AUTOSIZE=ON
COMPRESSION=ON
KERNELFIXUPS=ON

IF IMGPROFILER  
PROFILE=ON
ENDIF

IF IMGPROFILER !
PROFILE=OFF
ENDIF

IF IMGTRUSTROMONLY
IF IMGNOTALLKMODE
ROMFLAGS=12
ENDIF
IF IMGNOTALLKMODE !
ROMFLAGS=10
ENDIF
ENDIF

IF IMGTRUSTROMONLY !
IF IMGNOTALLKMODE
ROMFLAGS=2
ENDIF
IF IMGNOTALLKMODE !
ROMFLAGS=0
ENDIF
ENDIF
ROMSTART=8C200000  
ROMWIDTH=32
ROMSIZE=01e00000

我修改的config.bibMEMORY

.....(省略的与上相同)

NK 8C200000 01400000 RAMIMAGE
; NK 80040000 01E00000 RAMIMAGE
; CHAIN 81E40000 00001000 RESERVED
; DRIVERS 81E41000 001BF000 RAMIMAGE

; RESERVE 8df00000 00080000
; RAM 8c200000 01D00000 RAM
; RAM 8e000000 02000000 RAM
  RAM 8d600000 02000000 RAM

.....(省略的与上相同)


CONFIG
AUTOSIZE=ON
FSRAMPERCENT=0x30303040
ROM_AUTOSIZE=ON
COMPRESSION=ON
KERNELFIXUPS=ON
......省略的与上面相同
ROMSTART=8C200000  
ROMWIDTH=32
ROMSIZE=01400000


------解决方案--------------------
ROMSTART=8C200000  
NK 8C200000 01e00000 RAMIMAGE 

看看这个红色部分虚拟地址在OEMAddresstable中映射到哪个物理地址了,
——————————————————————————————————
如果是三星的BSP,这个DNW的configuration中的地址就是要填这个物理地址才能启动的。

——你的串口信息是什么,你这样也不知道你的程序在哪里死了。

------解决方案--------------------
lz修改之前能启动的话,应该不是这个地址8C200000的问题。用串口把信息打印出来吧,看看死在哪里了?
另外,lz修改完之后重新sysgen没有啊?
------解决方案--------------------
修改Config没有必要Sysgen
------解决方案--------------------
恩 NK越界 
YCTEK 2440 不给源代码,很讨厌
------解决方案--------------------
修改 MMU 映射表里面的的定义,确保和你的 Config.bib 文件定义的虚拟地址一致。
------解决方案--------------------
up
------解决方案--------------------
探讨
这个是你的NK 8C200000  01e00000  RAMIMAGE 的01e00000  决定了NK.nb0 30M吧,
但是你的NK.bin是你的实际大小,关于NK.nb0 和NK.bin的关系,在论坛很多人问了,
搜出来看看吧,这里就不说了。
这个01e00000根本不是决定nb0大小的地方

------解决方案--------------------
  相关解决方案