wince内存配置

wince内存配置

ID:46580352

大小:127.00 KB

页数:3页

时间:2019-11-25

wince内存配置_第1页
wince内存配置_第2页
wince内存配置_第3页
资源描述:

《wince内存配置》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、wince内存配置WINCE的内存(包括SDRAM及FLASH)的配置包含两个方面:源代码(包括C和汇编)中的定义,及系统配置文件CONFIG.BIB中的定义。源代码中需要定义内存的物理及虚拟地址,大小,并初始化名为OEMAddressTable的结构数组,以告知系统物理地址与虚拟地址的对应关系,系统根据其设置生成MMU页表。而CONFIG.BIB中一般会将内存定义成不同的段,各段用作不同的用途。CONFIG.BIB文件CONFIG.BIB文件分两个部分,我们且称之为段,MEMORY段和CONFIG段。MEMORY段定义内存的分片方法,CONFIG段定义系统

2、其它的一些属性。以下是一个CONFIG。BIB文件MEMORY段的例子:MEMORY名称起始地址大小属性RESERVED8000000000008000RESERVEDDRV_GLB8000800000001000RESERVEDCS89008001000000030000RESERVEDEDBG8004000000080000RESERVEDNK800C000000740000RAMIMAGERAM8100000000800000RAM名称原则上可以取任意字符串,ROMIMAGE通过一个内存片的属性来判断它的用途。RESERVE属性表明该片内存是BSP自己

3、使用的,系统不必关心其用途;RAMIMAGE说明它是一片存放OSIMAGE的内存;而RAM则表示些片内存为RAM,系统可以在其中分配空间,运行程序。但存放ROM的这片内存的名称,即NK一般不要改动。因为BIB文件中定义将一个文件加入到哪个ROM片(WINCE支持将ROMIMAGE存放在不连续的几个内存片中)中时会用到这个名称,如下现这行BIB文件项就定义将touch.dll放在名称为NK这片ROM中,touch.dll$(_FLATRELEASEDIR)touch.dllNKSH因而,如果将NK改为其它名称,则系统中所有的BIB文件中的这个NK串都需要改动

4、。注意:保证各片内存不要重叠;而且中间不要留空洞,以节约内存;两种设备如果不能同时被加载,就应该只为其保留一片从而节约内存,例如,本例中的CS8950是为网卡驱动程序保留的,EDBG是为网卡作调试(KITL)用时保留的,而系统设计成这两个程序不会同时加载(CS8950在启动时判断如果EDBG在运行就会自动退出),这样为这两个驱动程序各保留一片内存实在浪费而且也没有必要。RAM片必须在物理上是连续的,如果系统的物理内存被分成了几片,则在RAM片只能声明一片,其它的内存在启动阶段由OEMGetExtensionDRAM报告给系统,如果有多于一个的内存片,应该用O

5、EMEnumExtensionDRAM报告。NK片则没有此限制,只是NK跨越两个以上物理内存片时,系统启动时会显示这个OS包跨越了多个物理内存片,认为是个错误,但并不影响系统的执行与稳定性,因为系统启动之时便会打开MMU而使用虚拟地址,从而看到连续的内存空间。当然,如果内核自己都被放在了两个内存片上,那系统应该就无法启动了。而其它保留起来的内存片是一般是给驱动程序DMA用,应该保证它们在物理上的连续性,因为DMA是直接用物理地址的。CONFIG段中以下几个需要格外注意:ROMSTART,它定义ROM的起始位置,应该和NK片的起始位置相同。ROMSIZE,定义

6、ROM的大小,应该和NK片的大小相同。如果不需要NK。BIN文件,则可以不设这两个值。ROMWIDTH,它只是定义ROMIMAG生成ROM包时如何组织文件,而非其字面含义:ROM的宽度,所以一般都应该为32COMPRESSION,一般定义为ON,以打开压缩功能,从而减小BIN文件的尺寸。AUTOSIZE,一般应该设为ON,以使系统将定义给ROM但没有用掉的内存当做RAM使用,而提高RAM的使用率。注意,如果ROM是FLASH,则不能设为ON,因为FLASH不能当作RAM使用。ROMOFFSET,它定义OS起始位置(即ROMSTART)的物理地址和虚拟地址的差

7、值,有些BSP中并没有使用这个定义。OEMAddressTable及其它OEMAddressTable用来初始化系统中各种设备的虚拟地址与物理地址的对映关系。在我使用的BSP中,它是这样定义并初始化的:复制内容到剪贴板代码:typedefstruct{ULONGulVirtualAddress;ULONGulPhysicalAddress;ULONGulSizeInMegs;}AddressTableStruct;#defineMEG(A)(((A-1)>>20)+1)constAddressTableStructOEMAddressTable[]={{SD

8、RAM_VIRTUAL_MEMORY,/虚拟地址PH

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。