⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 00000023.htm

📁 水木社区 embeded 版精华区 下载
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<?xml version="1.0" encoding="gb2312"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"/><title>MicrosoftWindows CE 的内存使用         turbolinux </title></head><body><center><h1>BBS 水木清华站∶精华区</h1></center><a name="top"></a>发信人:&nbsp;chschs&nbsp;(升格),&nbsp;信区:&nbsp;Embedded&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />标&nbsp;&nbsp;题:&nbsp;MicrosoftWindows&nbsp;CE&nbsp;的内存使用&nbsp;<br />发信站:&nbsp;BBS&nbsp;水木清华站&nbsp;(Tue&nbsp;May&nbsp;&nbsp;9&nbsp;10:52:33&nbsp;2000)&nbsp;<br />&nbsp;<br />&nbsp;<br />MicrosoftWindows&nbsp;CE&nbsp;的内存使用&nbsp;<br />John&nbsp;Murray&nbsp;<br />1997.9&nbsp;<br />介绍&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;Microsoft?Windows?&nbsp;CE是组件化的操作系统,它可根据目标设备或平台的不同特点&nbsp;<br />进行定制。原始设备制造商(OEM)或嵌入系统开发者可以选择所需的系统模块和组件,&nbsp;<br />将其提供给用于目标平台的操作系统。所选择的模块和组件确定了它的内存需求情况。&nbsp;<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;一个模块表示一个完整的功能区域,在系统软件中可将其表示出也可以不将其表示&nbsp;<br />出。如果不需要该功能,那么可以将整个模块忽略。例如,用一个名为“serial”的简&nbsp;<br />单的模块提供出所有串行端口的功能,可以将其包括在系统中也可以不包括。&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;一些大的模块可以进一步分成几个组件。这使得OEM厂商可以通过仅仅包含OEM设备&nbsp;<br />的需要的组件,定制出这些模块更小的版本。例如,文件系统模块包括RAM文件系统、R&nbsp;<br />OM文件系统、注册表和数据库几个组件。OEM可以(按照一定的限制)组合这些文件系统&nbsp;<br />的组件使之满足目标系统的需要。&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;为了帮助OEM和嵌入系统开发者做决定,这对于了解给定模块或组件的内存耗费情况&nbsp;<br />是十分有用的。本文将讲述Windows&nbsp;CE&nbsp;2.0操作系统是如何使用内存的,并列出对于所&nbsp;<br />选的Windows&nbsp;CE系统配置中主要系统模块和组件的内存需求情况。同时也将讲述如何使&nbsp;<br />用Windows&nbsp;CE工具查看其他配置情况下的内存需求情况。&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;对于Windows&nbsp;CE&nbsp;2.0版,微软已经创建并测试了这些模块和组件的几种基本配置。&nbsp;<br />这些配置代表了不同的几组系统性能,从仅带有最小用户输入并且没有显示能力的基本&nbsp;<br />系统,到用于手持PC(H/PC)上的具有Microsoft&nbsp;Windows全部外观和感觉的完整系统。&nbsp;<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;每个配置都是建立在前一个配置的基础上的。下列表格列出了在本文中被讨论到的&nbsp;<br />被测试过的配置。&nbsp;<br />配置&nbsp;<br />&nbsp;描述&nbsp;<br />最小输入系统(MinInput)&nbsp;<br />&nbsp;核心、基本文件系统、注册表和基本用户支持。基本用户支持包括:对消息队列、触摸&nbsp;<br />板、键盘输入设备、声音、电源、发光二极管(LED)提示和机器空转的支持。&nbsp;<br />最小图形显示接口(MinGDI)&nbsp;<br />&nbsp;MinInput并加上最小的GDI(基本绘图元、设备上下文)。&nbsp;<br />最小通信(MinComm)&nbsp;<br />&nbsp;MinInput并加上通信堆栈(传输控制协议/Internet协议[TCP/IP]、点对点协议、电话&nbsp;<br />应用程序编程接口[TAPI],串行端口、网络设备/驱动接口描述[NDIS]、红外线数据联接&nbsp;<br />[IRDA])。&nbsp;<br />Windows用户接口(UI)配置(HPC2Apps)&nbsp;<br />&nbsp;MinComm并加上所有和Window相关的API函数(例如CreateWindow),这就是用于H/PC上&nbsp;<br />的版本。&nbsp;<br />系统内存的使用&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;典型的Windows&nbsp;CE设备包括ROM和RAM内存。当设备被关闭时,设备也可以通过使用&nbsp;<br />充电的后备电池而继续维持RAM中的内容。&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;系统内存可以按照下列表格中描述的情况分类。&nbsp;<br />内存&nbsp;<br />&nbsp;描述&nbsp;<br />ROM&nbsp;<br />&nbsp;包含Windows&nbsp;CE的执行体和其他系统文件。这些文件的文本(代码)和只读数据部分是&nbsp;<br />未被解压到执行位置(XIP)的部分。&nbsp;<br />RAM——存储内存&nbsp;<br />&nbsp;包括文件系统(包括注册表和Windows&nbsp;CE数据库)。包括可读/写数据区。&nbsp;<br />RAM——程序内存&nbsp;<br />&nbsp;工作RAM.&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;ROM包含未解压到执行位置(XIP)的文件,包括系统执行体、动态链接库(DLLs)&nbsp;<br />和被捆绑的应用程序如Microsoft&nbsp;Pocket&nbsp;Word。这些文件都起始于页面的边界。ROM还&nbsp;<br />包括这些应用程序所使用的各种文件,如字体、声音和位图。这些文件中的大多数被压&nbsp;<br />缩了(除了一些字体例外)。代码和执行体的只读部分以及DLLs被解压到启用的执行位&nbsp;<br />置。由于可读/写部分在指定的RAM,它们将在那里被压缩。&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;为了节省空间,这些小文件和被压缩的可读/写区中的许多被放置在内存的缝隙中。&nbsp;<br />这些缝隙是放置在ROM中的代码或只读内存区的最后一页省下的空间。&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;压缩ROM中的执行体或DLL也是可能的。当这类执行体运行时,请求换页程序将所虚&nbsp;<br />页面解压并将它们装入RAM。&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;RAM被分成两个部分:存储内存和程序内存。存储内存包括注册表、文件系统和数据&nbsp;<br />库。文件系统包括由用户安装或创建的应用程序和数据文件。在文件系统中的所有文件&nbsp;<br />都是被压缩的。程序内存是由系统使用的并用于运行应用程序。用户在任何时刻不需重&nbsp;<br />新启动,就可以重新调整对存储内存和程序内存的划分。&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;用户安装的应用程序压缩驻留在文件系统中。代码和数据需要被解压到程序内存来&nbsp;<br />执行。请求换页被支持——当一个用户安装的应用程序被启动时,仅有一小部分应用程&nbsp;<br />序需要被解压到程序内存。&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;除了数据部分,每个执行体通常都耗费一定量的程序内存用于它的堆栈数据。堆栈&nbsp;<br />通常可以动态增加或减少。&nbsp;<br />Windows&nbsp;CE&nbsp;Version&nbsp;2.0&nbsp;的内存使用&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;下列表格显示了带有SH3微处理器的HitachiD9000开发平台上的内存使用情况。RAM&nbsp;<br />和栈的数值是在启动后Memtool实用程序检查系统状态时取得的。这些数据是按照下列方&nbsp;<br />式计算出的:&nbsp;<br />ROM&nbsp;(代码和只读数据)。列于Romimage实用程序输出模块的所有部分的总合。&nbsp;<br />RAM。通过Memtool实用程序和Ppsh实用程序内存信息(mi)命令在页面总计处列出的可&nbsp;<br />读写数据。&nbsp;<br />Stack。通过Memtool实用程序和Ppsh实用程序内存信息(mi)命令在页面总计处列出对&nbsp;<br />于栈的数值。&nbsp;<br />尽管Memtool和Ppsh实用程序显示出每个进程在RAM中只读数据,但是这个内存常常仅代&nbsp;<br />表核心分配出的共享内存。这个共享内存物理上仅消耗核心所使用的一个页面。因此,&nbsp;<br />带有尺寸为1的只读页面的模块并没有计算到模块RAM的需求。额外部分包括核心和只读&nbsp;<br />页面尺寸大于1的模块。由于这些额外部分,RAM的需求可以算成是只读和可读/写部分的&nbsp;<br />总和。&nbsp;<br />MinInput&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;MinInput系统代表一个具有最小输入的系统。它包括核心、基本文件系统、注册表&nbsp;<br />和基本用户的输入支持。基本用户的输入支持包括:对消息队列的支持、触摸面板、键&nbsp;<br />盘输入设备、声音、电源、提示LED和空转控制。&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;下列表格是以千字节为单位(K)显示出在系统刚刚启动后,MinInput的详细配置值&nbsp;<br />。&nbsp;<br />模块&nbsp;<br />&nbsp;ROM&nbsp;(K)&nbsp;<br />&nbsp;RAM&nbsp;(K)&nbsp;<br />&nbsp;Stack&nbsp;(K)&nbsp;<br />Nk.exe&nbsp;<br />&nbsp;119&nbsp;<br />&nbsp;5&nbsp;<br />&nbsp;4&nbsp;<br />Filesys.exe&nbsp;<br />&nbsp;57&nbsp;<br />&nbsp;6&nbsp;<br />&nbsp;1&nbsp;<br />Gwes.exe&nbsp;<br />&nbsp;60&nbsp;<br />&nbsp;9&nbsp;<br />&nbsp;3&nbsp;<br />Coredll.dll&nbsp;<br />&nbsp;94&nbsp;<br />这个配置的ROM中还包括了下列DLLs。&nbsp;<br />模块&nbsp;<br />&nbsp;ROM&nbsp;(K)&nbsp;<br />Toolhelp.dll&nbsp;<br />&nbsp;2&nbsp;<br />Keybddr.dll&nbsp;<br />&nbsp;8&nbsp;<br />Touch.dll&nbsp;<br />&nbsp;12&nbsp;<br />MinGDI&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;MinGDI系统代表一个带有GDI的最小系统。MinGDI系统包括了MinInput系统中的所有&nbsp;<br />组件,并添加了基本绘图元和设备上下文。&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;下列表格显示了在系统刚刚启动后,MinGDI的详细系统配置值。&nbsp;<br />模块&nbsp;<br />&nbsp;ROM&nbsp;(K)&nbsp;<br />&nbsp;RAM&nbsp;(K)&nbsp;<br />&nbsp;Stack&nbsp;(K)&nbsp;<br />Nk.exe&nbsp;<br />&nbsp;119&nbsp;<br />&nbsp;7&nbsp;<br />&nbsp;4&nbsp;<br />Filesys.exe&nbsp;<br />&nbsp;122&nbsp;<br />&nbsp;7&nbsp;<br />&nbsp;1&nbsp;<br />Gwes.exe&nbsp;<br />&nbsp;282&nbsp;<br />&nbsp;697&nbsp;<br />&nbsp;4&nbsp;<br />Coredll.dll&nbsp;<br />&nbsp;103&nbsp;<br />除了在MinInput配置中列出的DLLs外,该配置的ROM中还包括了下列DLLs。&nbsp;<br />模块&nbsp;<br />&nbsp;ROM&nbsp;(K)&nbsp;<br />Ddi.dll&nbsp;<br />&nbsp;29&nbsp;<br />Wavedev.dll&nbsp;<br />&nbsp;15&nbsp;<br />MinComm&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;MinComm配置代表一个带有最小通信能力的系统。MinComm系统包括了MinInput系统&nbsp;<br />中的所有组件,并添加了一些通信堆栈(TCP/IP、PPP、TAPI、Serial、NDIS和IRDA)。&nbsp;<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;下列表格显示了在系统刚刚启动后,MinComm的详细系统配置值。&nbsp;<br />模块&nbsp;<br />&nbsp;ROM&nbsp;(K)&nbsp;<br />&nbsp;RAM&nbsp;(K)&nbsp;<br />&nbsp;Stack&nbsp;(K)&nbsp;<br />nk.exe&nbsp;<br />&nbsp;119&nbsp;<br />&nbsp;31&nbsp;<br />&nbsp;4&nbsp;<br />Filesys.exe&nbsp;<br />&nbsp;86&nbsp;<br />&nbsp;9&nbsp;<br />&nbsp;1&nbsp;<br />gwes.exe&nbsp;<br />&nbsp;45&nbsp;<br />&nbsp;12&nbsp;<br />&nbsp;1&nbsp;<br />Device.exe&nbsp;<br />&nbsp;15&nbsp;<br />&nbsp;67&nbsp;<br />&nbsp;8&nbsp;<br />coredll.dll&nbsp;<br />&nbsp;128&nbsp;<br />除了在MinInput配置中列出的DLLs外,该配置的ROM中还包括了下列DLLs。&nbsp;<br />模块&nbsp;<br />&nbsp;ROM&nbsp;(K)&nbsp;<br />ppp.dll&nbsp;<br />&nbsp;64&nbsp;<br />cxport.dll&nbsp;<br />&nbsp;6&nbsp;<br />Ircomm.dll&nbsp;<br />&nbsp;7&nbsp;<br />Winsock.dll&nbsp;<br />&nbsp;18&nbsp;<br />secur32.dll&nbsp;<br />&nbsp;19&nbsp;<br />Schannel.dll&nbsp;<br />&nbsp;111&nbsp;<br />Ntlmssp.dll&nbsp;<br />&nbsp;14&nbsp;<br />afd.dll&nbsp;<br />&nbsp;39&nbsp;<br />arp.dll&nbsp;<br />&nbsp;19&nbsp;<br />ndis.dll&nbsp;<br />&nbsp;42&nbsp;<br />ne2000.dll&nbsp;<br />&nbsp;21&nbsp;<br />tcpstk.dll&nbsp;<br />&nbsp;98&nbsp;<br />irdastk.dll&nbsp;<br />&nbsp;55&nbsp;<br />tapi.dll&nbsp;<br />&nbsp;17&nbsp;<br />Unimodem.dll&nbsp;<br />&nbsp;21&nbsp;<br />redir.dll&nbsp;<br />&nbsp;74&nbsp;<br />Netbios.dll&nbsp;<br />&nbsp;25&nbsp;<br />Wininet.dll&nbsp;<br />&nbsp;105&nbsp;<br />Pcmcia.dll&nbsp;<br />&nbsp;29&nbsp;<br />serial.dll&nbsp;<br />&nbsp;26&nbsp;<br />HPC2Apps&nbsp;<br />HPC2Apps配置代表了用于Handheld&nbsp;PC上的完整系统。HPC2Apps的配置包括了MinComm系&nbsp;<br />统中的所有组件,并添加了所有与Windows相关的API函数(如CreateWindow)。&nbsp;<br />模块&nbsp;<br />&nbsp;ROM&nbsp;(K)&nbsp;<br />&nbsp;RAM&nbsp;(K)&nbsp;<br />&nbsp;Stack&nbsp;(K)&nbsp;<br />nk.exe&nbsp;<br />&nbsp;119&nbsp;K&nbsp;<br />&nbsp;46&nbsp;<br />&nbsp;4&nbsp;<br />filesys.exe&nbsp;<br />&nbsp;122&nbsp;K&nbsp;<br />&nbsp;9&nbsp;<br />&nbsp;4&nbsp;<br />gwes.exe&nbsp;<br />&nbsp;508&nbsp;K&nbsp;<br />&nbsp;724&nbsp;<br />&nbsp;7&nbsp;<br />device.exe&nbsp;<br />&nbsp;15&nbsp;K&nbsp;<br />&nbsp;78&nbsp;<br />&nbsp;10&nbsp;<br />coredll.dll&nbsp;<br />&nbsp;122&nbsp;<br />除了在MinComm配置中列出的DLLs外,该配置的ROM中还包括了下列DLLs。&nbsp;<br />模块&nbsp;<br />&nbsp;ROM&nbsp;(K)&nbsp;<br />fatfs.dll&nbsp;<br />&nbsp;54&nbsp;<br />Prnport.dll&nbsp;<br />&nbsp;5&nbsp;<br />pcl.dll&nbsp;<br />&nbsp;24&nbsp;<br />Atadisk.dll&nbsp;<br />&nbsp;9&nbsp;<br />Sramdisk.dll&nbsp;<br />&nbsp;7&nbsp;<br />Waveapi.dll&nbsp;<br />&nbsp;68&nbsp;<br />ole32.dll&nbsp;<br />&nbsp;150&nbsp;<br />oleaut32.dll&nbsp;<br />&nbsp;183&nbsp;<br />dhcp.dll&nbsp;<br />&nbsp;13&nbsp;<br />Hwxusa.dll&nbsp;<br />&nbsp;86&nbsp;<br />netui.dll&nbsp;<br />&nbsp;19&nbsp;<br />查看ROM的使用&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;通过查看Microsoft&nbsp;Windows&nbsp;CE&nbsp;ROM&nbsp;Image&nbsp;Builder&nbsp;工具——Romimage.exe的输出&nbsp;<br />,可以看到文件在ROM中是如何放置的。(本文中的许多数字就是从Image&nbsp;Builder工具&nbsp;<br />的日志文件中得到的)&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;文件被分成多个部分并放入ROM中。通过Windows&nbsp;CE开发工具可以将这些部分描述如&nbsp;<br />下。&nbsp;<br />部分&nbsp;<br />

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -