内存地址分配:config.bib的配置

内存地址分配:config.bib的配置

--作者:赖玉平(Auly)[email protected]

  

在嵌入式wince系统里,内存的分配,是通过config.bib文件来设置的,如分配显存地址,RAM地址,ROM地址等等。下面将详细介绍在该文件里面用到的一些关键字和使用NK镜或使用XIP时不同的地址分配。

 

(1)       RAMIMAGE 是放在RAM里面的镜像,这个地址空间不受CE控制,这是启动时,自动拷贝到内存的区域,

(2)       NANDIMAGE 是放在flash里面的镜像,这里给它分配的空间,是表示当系统要调用到它的函数时,把它拷到哪一块区域去运行,因为程序不能直接在flash中运行,所以,一般把它和RAM的区间重叠起来,表示把它拷到RAM去运行。因为有很多程序是放在NK里的,在platform.bib 中设置, NK   SH , 这样的话,如果NK放在flash中,那该程序也是放在flash中了,当系统要调用它时,才拷贝到RAM中来。

(3)       RAM 这是让CE来管理的地址空间,也就是让系统来动态支配的空间。

(4)       如果是采用NK方式,那么image要自动拷贝到RAM的,所以它的NK要分配的空间是RAMIMAGE。如果是XIP方式,那么,自动拷到存中的是XIPKERNEL,其它的先放在flash中,用到时才拷到内存中运行,所以NK要做成是NANDIMAGE

  XIP方式:

    XIPKERNEL    80200000    00300000    RAMIMAGE

    NK        80500000    01900000    NANDIMAGE

NK方式:

       NK            80100000       01F00000       RAMIMAGE

 

(5)       注意,如果专门为某一模块保留专用的空间,那最好这个空间不要在RAM的范围之内,不然系统有可能会动态地把它分配给其它应用使用了。

 如给显示设的显存,就最好不要放在RAM区间内:

DISPLAY             80100000  00100000  RESERVED   

 

例子:

XIP

#define    CHAIN_ADDRESS    81D00000

#define    CHAIN_LENGTH    00001000

    XIPKERNEL    80200000    00300000    RAMIMAGE

    NK        80500000    01900000    NANDIMAGE

    CHAIN        $(CHAIN_ADDRESS)    $(CHAIN_LENGTH)    RESERVED

    RAM        80500000    03B00000    RAM

    FLASH               92000000  00100000  RESERVED

    ARGS                80020000  00000800  RESERVED

    SLEEP               80028000  00002000  RESERVED

    EDBG                80030000  00020000  RESERVED

    DISPLAY             80100000  00100000  RESERVED

NK:

    NK      80200000  01900000  RAMIMAGE

RAM     81B00000  02500000  RAM       ;这时的NKRAM是不能重叠的

FLASH   92000000  00100000  RESERVED

; Common RAM areas

    ARGS                80020000  00000800  RESERVED

    SLEEP               80028000  00002000  RESERVED

    EDBG                80030000  00020000  RESERVED

    DISPLAY             80100000  00100000  RESERVED   

 

 

你可能感兴趣的:(image,Flash,嵌入式,WinCE)