Important: |
---|
This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist. |
The static data block is a block of memory that Windows Mobile loads with an application. This block contains strings, buffers, and other static values that the application references throughout its life. Windows Mobile allocates two sections for static data: one for read/write data and one for read-only data.
Because the OS allocates these areas on a per-page basis, typically there is some space left over from the static data up to the next page boundary. When writing an application for a Windows phone, be sure that little or no extra space is left. It might be better to move a buffer or two into the static data area, rather than allocating those buffers dynamically, if there is space in the static data area.
You can see how much area is available by the use of
dumpbin / headers
on the binary file to see how big the
.data section is. You can add more static data so the page size
will round up, as shown in the following code example:
Copy Code | |
---|---|
C:\YamaSMP\ARMV4I\REALVIEWEB_MPCORE\cebase>dumpbin /headers fsdmgr.dll <some output omitted> SECTION HEADER #2 .data name 930 virtual size 40000 virtual address (10040000 to 1004092F) 800 size of raw data 3E800 file pointer to raw data (0003E800 to 0003EFFF) 0 file pointer to relocation table 0 file pointer to line numbers 0 number of relocations 0 number of line numbers C0000040 flags Initialized Data Read Write <some output omitted> |
In this output, you can see that the virtual size of the .data is 0x930 and that it occupies a page (0x1000). You can create more static buffer up to (0x1000-0x930) without increasing memory usage.