打印
[ZLG-ARM]

请问周工:NK.nb0大小问题

[复制链接]
1749|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
progrime|  楼主 | 2008-12-11 12:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
zlgarm| | 2008-12-11 23:07 | 只看该作者

大约会增加2MB~3MB吧

可以修改以下配置:

    #define NKSTART        8C200000   ;NK起始地址
    #define NKLEN        01D00000   ;NK大小
    
    #define RAMSTART             8E000000   ;内存使用开始地址
    #define RAMLEN        01F00000   ;内存空间大小

NKLEN改大点; 当然,RAMSTART 也要改得后一点,RAMLEN要改得小一点.

有这样的关系: NKSTART + NKLEN 就是RAMSTART的起始地址

              

使用特权

评论回复
板凳
progrime|  楼主 | 2008-12-12 10:03 | 只看该作者

谢谢周工指点,我去看看,应该是#else那一段吧!

使用特权

评论回复
地板
progrime|  楼主 | 2008-12-12 14:02 | 只看该作者

我改了这个地方,不行,启动不了,

使用特权

评论回复
5
progrime|  楼主 | 2008-12-17 08:47 | 只看该作者

周工,我改了这个地方,还充许大于32MB,为什么还是不行呢

使用特权

评论回复
6
Richard.Zhang| | 2008-12-20 09:17 | 只看该作者

弄清楚问题先。

你先把没改过之前的,和改过之后的配置文件的内容,发上来,看看!如果你要改RAM起始地址,还需要改一些地方,不同的BSP,改的地方也不一样!

使用特权

评论回复
7
progrime|  楼主 | 2008-12-22 16:24 | 只看该作者

如下:

;//之前的
;
; Copyright (c) Microsoft Corporation.  All rights reserved.
;
;
; Use of this source code is subject to the terms of the Microsoft end-user
; license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.
; If you did not accept the terms of the EULA, you are not authorized to use
; this source code. For a copy of the EULA, please see the LICENSE.RTF on your
; install media.
;
; Memory Map
; ----------
;
; 8000.0000 -+
;            | Bootloader Stack (64KB)
; 8001.0000 -+
;            | Bootloader RAM (64KB)
; 8002.0000 -+
;            | Bootloader Code (256KB)
; 8006.0000 -+
;            | GAP (reserved for future)
; 800F.F000 -+
;            | ARGS (4KB)
; 8010.0000 -+
;            |
;            | OS (NK) Code (DEBUG: 37MB, RELEASE: 32MB)
;            |
; 8260.0000 -+   **auto-size**
;            |
;            | OS (NK) RAM (DEBUG: 23MB, RELEASE: 32MB)
;            |
; 8400.0000 -+
;

MEMORY
    ; NK name
    #define NKNAME       NK

IF WINCEDEBUG=debug
    ; NK Start address  length = 40M
    #define NKSTART       80100000
    #define NKLEN       02800000
    
    #define RAMSTART   82900000
    #define RAMLEN       01700000    
ELSE
    ; length = 30M
    #define NKSTART       80100000
    #define NKLEN       01E00000
    
    #define RAMSTART   81F00000
    #define RAMLEN       02100000 
ENDIF

;   Name          Start         Size        Type
;   -------       --------     --------     ----
    RSVD          80000000     00050000     RESERVED
    EPKTBUF       80050000     00040000     RESERVED
    RSVD          80090000     0006F000     RESERVED
    ARGS          800FF000     00001000     RESERVED

    $(NKNAME)     $(NKSTART)   $(NKLEN)     RAMIMAGE
    RAM           $(RAMSTART)  $(RAMLEN)    RAM
    
; Reserve ZBANK virtual block (No physical memory
; is required to back this virtual range).
;
    ZBANK    96500000  00100000  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

   ROMSTART=$(NKSTART)
   ROMWIDTH=32
   ROMSIZE=$(NKLEN)

;
; 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

////////////////////////////////////////////////////////////////////////////////////////////////////
;//改动的
;
; Copyright (c) Microsoft Corporation.  All rights reserved.
;
;
; Use of this source code is subject to the terms of the Microsoft end-user
; license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.
; If you did not accept the terms of the EULA, you are not authorized to use
; this source code. For a copy of the EULA, please see the LICENSE.RTF on your
; install media.
;
; Memory Map
; ----------
;
; 8000.0000 -+
;            | Bootloader Stack (64KB)
; 8001.0000 -+
;            | Bootloader RAM (64KB)
; 8002.0000 -+
;            | Bootloader Code (256KB)
; 8006.0000 -+
;            | GAP (reserved for future)
; 800F.F000 -+
;            | ARGS (4KB)
; 8010.0000 -+
;            |
;            | OS (NK) Code (DEBUG: 37MB, RELEASE: 32MB)
;            |
; 8260.0000 -+   **auto-size**
;            |
;            | OS (NK) RAM (DEBUG: 23MB, RELEASE: 32MB)
;            |
; 8400.0000 -+
;

MEMORY
    ; NK name
    #define NKNAME       NK

IF WINCEDEBUG=debug
    ; NK Start address  length = 40M
    #define NKSTART       80100000
    #define NKLEN       02800000
    
    #define RAMSTART   82900000
    #define RAMLEN       01700000    
ELSE
    ; length = 30M
    #define NKSTART       80100000
    #define NKLEN       02800000;改动
    
    #define RAMSTART   82900000;改动
    #define RAMLEN       02400000;改动 
ENDIF

;   Name          Start         Size        Type
;   -------       --------     --------     ----
    RSVD          80000000     00050000     RESERVED
    EPKTBUF       80050000     00040000     RESERVED
    RSVD          80090000     0006F000     RESERVED
    ARGS          800FF000     00001000     RESERVED

    $(NKNAME)     $(NKSTART)   $(NKLEN)     RAMIMAGE
    RAM           $(RAMSTART)  $(RAMLEN)    RAM
    
; Reserve ZBANK virtual block (No physical memory
; is required to back this virtual range).
;
    ZBANK    96500000  00100000  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

   ROMSTART=$(NKSTART)
   ROMWIDTH=32
   ROMSIZE=$(NKLEN)

;
; 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

使用特权

评论回复
8
Richard.Zhang| | 2008-12-23 22:38 | 只看该作者

两个问题

两个问题:
1、你修改了RAMSTART,你还需要在BSP里面的一些文件里面做相应的修改;
2、你修改了RAMSTART的起始地址,再加上你的长度后,你的内存溢出了,当然这个长度信息也需要在BSP包里面做修改!

使用特权

评论回复
9
zlgarm| | 2008-12-25 21:51 | 只看该作者

re:

  MagicARM270上, SDRAM的大小为64MB. 因此,使用的内存空间不得超过64MB.

未改前:
    ; length = 30M
    #define NKSTART       80100000
    #define NKLEN         01E00000
    
    #define RAMSTART     81F00000
    #define RAMLEN       02100000
==>  RAMSTART + RAMLEN = 84000000   ;83FFF,FFFF 就是64MB的最高地址了

修改后:
    ; length = 30M
    #define NKSTART       80100000
    #define NKLEN       02800000;改动
    
    #define RAMSTART   82900000;改动
    #define RAMLEN       02400000;改动 
==> RAMSTART + RAMLEN = 85300000    ; 看看,远超过83FFF,FFFF了.

    除了修改此处,BSP中不需要再修改其它地方了.

如果还有问题请电: 020-28872412



使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

101

主题

306

帖子

2

粉丝