在论坛里面有不少人问起wince5(wince6尚未看过)的最大支持内存是多少,听前人说最大是512M,刚才看了会Programming Windows CE 3rd 这本书的wince内存结构部分,讲的比较明白。
The address space above the 2-GB boundary, addresses 8000 0000 through FFFF FFFF, is reserved for the operating system and isn't accessible to applications and drivers running in user mode. However, many Windows CE systems, including the Pocket PC, always run in kernel mode. Staying in kernel mode all the time removes the time needed to transition between user and kernel mode, which improves performance.
The upper 2 GB of kernel space is divided into four regions. The first 512MB memory region, from addresses 8000 0000 to A000 0000, is linearly mapped to the first 512 MB of the physical address space. So reading address 8000 1234 in kernel mode is a read of physical address 0000 1234. Memory accesses through this window are cached in the CPU's data cache to improve performance
The second 512-MB region, from A000 0000 through BFFF FFFF, is also mapped to the first 512 MB of the physical memory space. The difference between this window and the window at 8000 0000 is that accesses through the A000 0000 window are not cached. While the performance is slower through this window, the noncached access is necessary when you read registers in devices that might change independently of the execution of the CPU.
The remaining area, from C000 0000 to the top of the memory space at FFFF FFFF, is used by the kernel. This area includes a space at C200 0000, where the kernel, NK.exe, was moved when the memory space was reorganized with the release of Windows CE .NET 4.0. Figure 21-2 shows the layout of the full 4-GB address space.
——————————————————————————————————————————————————
从现在看来,wince5.0 最大支持512M内存是wince内存结构设计决定了。哈哈。