Fanuc C-Executer Operating Manual
B-62443EN-3/03E
- 104 -
LOGICAL SEGMENTS INCLUDED:
LENGTH ACCESS ALIGN USE SEGMENT NAME CLASS
----------+-------+-------+-----+----------------+-----------
00001D4FH ER WORD 16T TS1_fanuc_lib_T- CODE
00002DDAH RW WORD 16T TS1__DATA DATA
000000A2H RW WORD 16T TS1_CONST CONST
0000002AH RW WORD 16T TS1__BSS BSS
The sum of LENGTHs of TS?__DATA, TS?_CONST and TS?__BSS shown here is the
total size of variables allocated in TS?_DGROUP segment.
The /Gs option (no stack size checking) is specified at compiler-call-
command in nmake file of C Executor. You can't remove this option to check
stack size, because memory allocation of C Executor is not compatible with
PC's.
Memory allocation functions, such as malloc, allocate memory block in the
other area from the default data segment.
If the default data segment (TS?_DGROUP) exceeds the limit size 64KB, or
if the necessary stack memory for executing application program is exhausted,
you should specify the compile option "/Gtx" ( x is a number, 16 for example).
This compile option "/Gtx" allocates any mass data whose size is equal to or
greater than x bytes in the individual data segment for each modules other
than in the default data segment. The typical value of x is 16.
The concrete compile option specification for x=16 is "/Gt16". You add this
compile option to definiton line of "MSCOPT" variable in "makefile". For
example,
MSCOPT = /G3 /f- /Gx- /Gt16 # for MS-C Ver.8
If there is no enough room in "TS?_DGROUP" segment yet by "/Gt16", decrease
the byte-size. For example, "/Gt10" or "/Gt8".
Changing data segment by "/Gt" option makes free space in "TS?_DGROUP"
segment. And it makes ojbect efficiency (code size and execution speed)
reduced because the program codes change the segment registers to access
any data stored in the individual segments.