![](http://datasheet.mmic.net.cn/260000/PPSMMANUAL_datasheet_15946768/PPSMMANUAL_178.png)
34-2
LinkLinker Specification File
Programmer’s Manual
As much constant strings space as required, round to 4-byte
boundary
As much initialized data space as required upon reset, round to 4-
byte boundary
As much zeroed memory space as required, round to 4-byte
boundary
704 KByte of heap space for dynamic memory allocation
128 KByte of stack space for system context switching
A STKTOP symbol to point to the top of the 128 KByte stack
a DATA symbol to point to the downloadable address
A LCD physical display screen of 320 pixels wide by 240 pixels high
A panning screen of 640 pixels wide by 480 pixels high
A 256 byte internal UART receive buffer
2 MByte of RAM
Example 32-1 Linker Specification File Example
partition { overlay {
region {} reset[addr=0,size=0x1000];/* reset vector */
region {} code[roundsize=4];/* executable code */
region {} const[roundsize=4];/* constant data */
region {} string[roundsize=4];/* constant strings */
region {} data[roundsize=4];/* initialized on reset */
region {} ram[roundsize=4];/* zeroed on reset */
region {} malloc[size=0xB0000];/* malloc space */
region {} stack[size=0x20000];/* stack */
STKTOP = $;/* SP reset value */
DATA = $;
/* “data” download addr */
LCDPHYSWIDTH = 320;/* LCD display width */
LCDPHYSHEIGHT = 240;/* LCD display height */
LCDVIRTWIDTH = 640;/* LCD virtual width */
LCDVIRTHEIGHT = 480;/* LCD virtual height */
UARTRCVBUF = 256;
#bytes) */
/* system UART receive buffer size(in
} example; } RAM[addr=0x0, size=0x200000]
34.2
.SPC File for a ROM-RAM System
The .SPC file for a ROM-RAM system consists of two partitions. One partition for
the ROM layout and one partition for the RAM layout on the system. Please refer
to Chapter 32 - How to make ROMfor a specific example of a .SPC file for such
a system.
34.3
For SingleStep Debugging System (SDS) user
One of the methods to find out the optimum size specified in the malloc field in the
.SPC file will be shown below. This method may not be applicable to other
debugging system.
1)
First of all, we set the RAM size to 2 M, so as the malloc size. For
example,
partition { overlay {
region {} reset[addr=0x0]; /* reset vector */
.....
Personal Portable System Manager
Programmer’s Manual
34-3
region {} malloc[size=
......
} example; } RAM[addr=0x400000, size=
]; /* malloc space */
2)
Following error messages will be generated after linking:
LINKER: error: actual ’RAM’ size (
LINKER: error: overlay ’example’ is larger than the partition containing it
NMAKE : fatal error U1077: ’LINKER’ : return code ’0x1’
Stop.
) is larger than specified size
3)
Then, we can calculate the optimum malloc size by subtracting
exceeding bytes from the total memory size:
0x200000 - 0x1F762 =
4)
Finally, we can write the optimum size in the malloc field:
partition { overlay {
region {} reset[addr=0x0]; /* reset vector */
.....
region {} malloc[size=
......
} example; } RAM[addr=0x400000, size=0x200000];
]; /* malloc space */
5)
This optimum malloc size needed to be found again after modified
source code by similar method. This size is recommended to be
found after debugging stage.
F
Freescale Semiconductor, Inc.
For More Information On This Product,
Go to: www.freescale.com
n
.