首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > WinCE >

ROMSIZE和ROMWIDTH的关系?该如何解决

2012-02-08 
ROMSIZE和ROMWIDTH的关系?AT9G45的原装核心板是用了4片8位DDR2,现在我把核心板改成了1片16位的DDR2,因此在

ROMSIZE和ROMWIDTH的关系?
AT9G45的原装核心板是用了4片8位DDR2,现在我把核心板改成了1片16位的DDR2,因此在bsp的config.bib中把ROMWIDTH从32改成了16,同时也在eboot.bib中做了相应的修改,ROMSIZE还是跟原来一样设成了2000000(nk)和40000(eboot)。

现在的问题是,编译结束后,发现原本32M的nk.nb0变成了两个16M的nb0和nb1,原本256K的eboot.nb0也变成了两个128K的nb0和nb1,就算把nk裁减到8M,编出来的同样是两个16M的nb0和nb1。

请问这是什么原因引起的?有什么办法可以解决?100分奉上,先谢了!

config.bib如下:

MEMORY

; Name Start Size Type
; ------- -------- -------- ----
  BLDR 80000000 00058000 RESERVED
  EMACBUF 80058000 00013000 RESERVED
  DRVGLOB 8006b000 00001000 RESERVED
; NK 8006c000 00200000 RAMIMAGE
  NK 8006c000 02000000 RAMIMAGE
  RAM 8206c000 01E00000 RAM
VIDEOBUF 83E6C000 00100000 RESERVED
  VIDEOMEM 83F6C000 00100000 RESERVED
; RAM2 88000000 02000000 RESERVED

CONFIG

  AUTOSIZE=ON
  KERNELFIXUPS=ON


; @CESYSGEN IF !NK_NKNOCOMP
  COMPRESSION=ON
; @CESYSGEN ENDIF !NK_NKNOCOMP
; @CESYSGEN IF NK_NKNOCOMP
  COMPRESSION=OFF
; @CESYSGEN ENDIF NK_NKNOCOMP

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=8006c000
ROMWIDTH=16
ROMSIZE=02000000

[解决办法]
NK 8006c000 02000000 RAMIMAGE

ROMSIZE=02000000
这应该是对的啊。
和ROMWIDTH=16有关系?
[解决办法]

探讨
引用:
NK 8006c000 02000000 RAMIMAGE

ROMSIZE=02000000
这应该是对的啊。
和ROMWIDTH=16有关系?


问题是ROMWIDTH=32的时候编译出来的nk是一个32M的nb0,改成ROMWIDTH=16编译出来的nk就是两个16M的nb0、nb1,实在是很奇怪。

[解决办法]
还没这样搞过,一般都用的32位的,帮顶下
[解决办法]
有關 ROMWIDTH 的用法, LZ 可參考
http://msdn.microsoft.com/en-us/library/ee478812.aspx

簡單來說, ROMWIDTH 設 16 的意思是告訴 Platform Builder, 我有兩顆 16-bits 的 NOR Flash, CPU Data Bus 是 32-bits, 所以一顆 NOR Flash 要接到 D0-D15, 另一顆接到 D16-D31, 所以 PB 在產生 Image 時, 就幫你分別產生 High-Word (D16-D31) and Low-Word (D0-D15) 的兩個檔 .nb0, .nb1, 讓你可以用燒錄器先預燒到 flash 後, 再將 flash IC 上到板子上.

所以 LZ 要的不是改 ROMWIDTH, 而是要去改 bootloader 的 DDR2 initialize code.

Paul, Chao @ Techware

[解决办法]
探讨
有關 ROMWIDTH 的用法, LZ 可參考
http://msdn.microsoft.com/en-us/library/ee478812.aspx

簡單來說, ROMWIDTH 設 16 的意思是告訴 Platform Builder, 我有兩顆 16-bits 的 NOR Flash, CPU Data Bus 是 32-bits, 所以一顆 NOR Flash 要接到 D0-D……

热点排行