52
Section 2: Compiler
TI
-
89 / TI
-
92 Plus Sierra C Assembler Reference Manual
Not for Distribution
Beta Version February 2, 2001
#pragma interrupt
Allow functions written in C to be used as interrupt handlers. When
the
#pragma
interrupt
directive is placed before a function
definition, that function saves and restores the data and address
scratch registers (i.e.,
d0
,
d1
,
d2
,
a0
, and
a1
), and exits using an
rte
instruction instead of an
rts
. The
#pragma interrupt
directive
applies only to the next function and must be repeated to affect
additional functions.
#pragma +abs_data
Allow data objects declared in a file that is compiled to access
data relative to the program counter or address register
a5
to be
accessed using the absolute long addressing mode. All data
objects declared between the
#pragma +abs_data
and
#pragma
-abs_data
directives will be accessed using the absolute long
addressing mode.
#pragma -abs_data
Undo the effect of the
#pragma +abs_data
directive.
#pragma fp_interrupt
Not supported by Texas Instruments.
2.5. Translation Limits
C programs must not include constructs that exceed the following limits:
•
50 nesting levels for
#include
files
•
16 nesting levels for conditional source inclusion
•
20 nesting levels for
switch
statements
•
25 nesting levels for loop statements
•
20 nesting levels for function calls
•
32 nesting levels for macro invocations
•
255 significant initial characters in an identifier (internal and external)
•
255 significant initial characters in a macro name
•
255 parameters in one function definition and call
•
31 parameters in one macro definition and invocation
•
512
â€
characters in a character string (after concatenation)
â€
The number of characters can be increased with the -
XC
flag.