Kernel virtual machine, it is CPU dependent, for example this space is not available for SHx.
0xD0000000 0xDFFFFFFF Used for all kernel mode modules of the OS.
0xC8000000 0xCFFFFFFF Object Store used for RAM file system, database and registry.
0xC0000000 0xC7FFFFFF XIP DLLs.
0xA0000000 0xBFFFFFFF Non-cached mapping of physical memory.
0x80000000 0x9FFFFFFF Cached mapping of physical memory.

Process Address Space

The process address space ranges from 0x00000000 through 0x7FFFFFFF, and is divided into a CPU- dependent kernel data section, four main process regions, and a 1 MB buffer between user and kernel spaces. Figure 5-7 illustrates the main regions. The first process region of 1 GB is for application code and data. The next process region of 512 MB is for the DLLs and read-only data. The next two regions of 256 MB and 255 MB are for memory-mapped objects and the shared system heap. The shared system heap is read-only for the application process, but readable and writable for the kernel.

Figure 5-7 Process space in Windows Embedded CE 6.0

Table 5-10 summarizes the virtual memory regions in user space with start and end addresses.

Table 5-10 Process memory regions

Start Address End Address Description
0x7FF00000 0x7FFFFFFF An unmapped buffer for protection between user and kernel spaces.
0x70000000 0x7FEFFFFF Shared heap between the kernel and processes.
0x60000000 0x6FFFFFFF Memory-mapped file objects that do not correspond to an actual physical file, mainly for backward compatibility with applications that used RAM-backed map files for inter-process communication.
0x40000000 0x5FFFFFFF DLLs loaded into the process and read-only data.
0x00010000 0x3FFFFFFF Application code and data.
0x00000000 0x00010000 CPU-dependent user kernel data (read-only for user processes).

Memory Management Unit

Windows Embedded CE 6.0 requires the processor to provide a memory mapping mechanism to associate physical memory with virtual memory, up to a maximum of 512 MB of mapped physical memory. Figure 5-8 shows an example with 32 MB of flash memory and 64 MB of RAM mapped into the cached and non-cached static mapping regions of the kernel. On ARM-based and x86-based platforms, the memory mapping relies on a user-defined OEMAddressTable, whereas on the SHx-based and MIPS-based platforms, the mapping is directly defined by the CPU. The Memory Management Unit (MMU) is responsible for managing the physical-to-virtual address mappings.

Figure 5-8 Physical-to-virtual memory mapping example

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату