SW500011 Microchip Technology, SW500011 Datasheet - Page 355

HI-TECH X PRO FOR PIC32

SW500011

Manufacturer Part Number
SW500011
Description
HI-TECH X PRO FOR PIC32
Manufacturer
Microchip Technology
Type
Compilerr
Series
PIC32r
Datasheet

Specifications of SW500011

No. Of User Licenses
1
Supported Families
PIC32
Core Architecture
PIC
Supported Hosts
Windows XP, Vista, Linux, Mac OS X
Software Edition
Professional
Kit Contents
Software And Docs
Tool Type
Compiler
Lead Free Status / RoHS Status
Not applicable / Not applicable
For Use With/related Products
PIC32 Series
Lead Free Status / Rohs Status
Lead free / RoHS Compliant
Other names
032
778-1007
778-1007
Error and Warning Messages
(491) can’t find 0x* words for psect "*" in segment "*"
One of the main tasks the linker performs is positioning the blocks (or psects) of code and data that
is generated from the program into the memory available for the target device. This error indicates
that the linker was unable to find an area of free memory large enough to accommodate one of the
psects. The error message indicates the name of the psect that the linker was attempting to position
and the segment name which is typically the name of a class which is defined with a linker -A option.
which are, or include, text relate to program code. Names such as bss or data refer to variable
blocks. This error can be due to two reasons.
the selected device. In other words, some part of your device’s memory has completely filled. If this
is the case, then the size of the specified psect must be reduced.
positioned is sufficient, but that this memory is fragmented in such a way that the largest contiguous
block is too small to accommodate the psect. The linker is unable to split psects in this situation.
That is, the linker cannot place part of a psect at one location and part somewhere else. Thus, the
linker must be able to find a contiguous block of memory large enough for every psect. If this is the
cause of the error, then the psect must be split into smaller psects if possible.
information on how to generate a map file. Search for the string UNUSED ADDRESS RANGES. Under
this heading, look for the name of the segment specified in the error message. If the name is not
present, then all the memory available for this psect has been allocated. If it is present, there will be
one address range specified under this segment for each free block of memory. Determine the size
of each block and compare this with the number of words specified in the error message.
the program. If a code psect must be split into two or more small psects, this requires splitting a
function into two or more smaller functions (which may call each other). These functions may need
to be placed in new modules.
is less dramatic. The program may need to be rewritten so that it needs less variables. Section ?? has
information on interpreting the map file’s call graph if the compiler you are using uses a compiled
stack. (If the string Call graph: is not present in the map file, then the compiled code uses a
hardware stack.) If a data psect needs to be split into smaller psects, the definitions for variables
will need to be moved to new modules or more evenly spread in the existing modules. Memory
allocation for auto variables is entirely handled by the compiler. Other than reducing the number of
these variables used, the programmer has little control over their operation. This applies whether the
compiled code uses a hardware or compiled stack.
Section
First, the size of the program or the program’s data has exceeded the total amount of space on
The second cause of this message is when the total amount of memory needed by the psect being
To find out what memory is still available, generate and look in the map file, see Section
Psects containing code can be reduced by using all the compiler’s optimizations, or restructuring
Psects containing data may be reduced when invoking the compiler optimizations, but the effect
For example, after receiving the message:
3.8.1
lists each compiler-generated psect and what it contains. Typically psect names
(Linker)
2.6.8
355
for

Related parts for SW500011