Make A Symbol Global (–G Global_Symbol Option) - Texas Instruments TMS320C54x User Manual

Digital signal processors
Hide thumbs Also See for TMS320C54x:
Table of Contents

Advertisement

Linker Options
Make a Symbol Global (–g global_symbol Option)
7.4.6
7.4.7
Make All Global Symbols Static (–h Option)
7.4.8
Define Heap Size (–heap constant Option)
7-12
The –h option makes all global symbols static. If you have a symbol that you
want to remain global and you use the –h option, you can use the –g option
to declare that symbol to be global. The –g option overrides the effect of the
–h option for the symbol that you specify. The syntax for the –g option is:
–g global_symbol
The –h option makes all global symbols defined with the .global assembler
directive static. Static symbols are not visible to externally linked modules. By
making global symbols static, global symbols are essentially hidden. This
allows external symbols with the same name (in different files) to be treated
as unique.
The –h option effectively nullifies all .global assembler directives. All symbols
become local to the module in which they are defined, so no external
references are possible. For example, assume that b1.obj, b2.obj, and b3.obj
are related and reference a global variable GLOB. Also assume that d1.obj,
d2.obj, and d3.obj are related and reference a separate global variable GLOB.
By using the –h option and partial linking, you can link the related files without
conflict.
lnk500
–h –r b1.obj b2.obj b3.obj –o bpart.out
lnk500
–h –r d1.obj d2.obj d3.obj –o dpart.out
The –h option guarantees that bpart.out and dpart.out do not have global
symbols and therefore, that two distinct versions of GLOB exist. The –r option
is used to allow bpart.out and dpart.out to retain their relocation entries. These
two partially linked files can then be linked together safely with the following
command:
bpart.out dpart.out –o system.out
lnk500
The C compiler uses an uninitialized section called .sysmem for the C runtime
memory pool used by malloc( ). You can set the size of this memory pool at
link time by using the –heap option. Specify the size in words as a constant
immediately after the option:
lnk500 –heap 0x0400 /* defines a heap of 1K words */
The linker creates the .sysmem section only if there is a .sysmem section in
one of the input files.

Advertisement

Table of Contents
loading
Need help?

Need help?

Do you have a question about the TMS320C54x and is the answer not in the manual?

Table of Contents