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.
#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 #abs_data and #pragma
-abs_data directives will be accessed using the absolute long
addressing mode.
#pragma -abs_data
Undo the effect of the #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.