gcc: RX Function Attributes
1
1 6.31.26 RX Function Attributes
1 ------------------------------
1
1 These function attributes are supported by the RX back end:
1
1 'fast_interrupt'
1 Use this attribute on the RX port to indicate that the specified
1 function is a fast interrupt handler. This is just like the
1 'interrupt' attribute, except that 'freit' is used to return
1 instead of 'reit'.
1
1 'interrupt'
1 Use this attribute to indicate that the specified function is an
1 interrupt handler. The compiler generates function entry and exit
1 sequences suitable for use in an interrupt handler when this
1 attribute is present.
1
1 On RX and RL78 targets, you may specify one or more vector numbers
1 as arguments to the attribute, as well as naming an alternate table
1 name. Parameters are handled sequentially, so one handler can be
1 assigned to multiple entries in multiple tables. One may also pass
1 the magic string '"$default"' which causes the function to be used
1 for any unfilled slots in the current table.
1
1 This example shows a simple assignment of a function to one vector
1 in the default table (note that preprocessor macros may be used for
1 chip-specific symbolic vector names):
1 void __attribute__ ((interrupt (5))) txd1_handler ();
1
1 This example assigns a function to two slots in the default table
1 (using preprocessor macros defined elsewhere) and makes it the
1 default for the 'dct' table:
1 void __attribute__ ((interrupt (RXD1_VECT,RXD2_VECT,"dct","$default")))
1 txd1_handler ();
1
1 'naked'
1 This attribute allows the compiler to construct the requisite
1 function declaration, while allowing the body of the function to be
1 assembly code. The specified function will not have
1 prologue/epilogue sequences generated by the compiler. Only basic
11 'asm' statements can safely be included in naked functions (⇒
Basic Asm). While using extended 'asm' or a mixture of basic
1 'asm' and C code may appear to work, they cannot be depended upon
1 to work reliably and are not supported.
1
1 'vector'
1 This RX attribute is similar to the 'interrupt' attribute,
1 including its parameters, but does not make the function an
1 interrupt-handler type function (i.e. it retains the normal C
1 function calling ABI). See the 'interrupt' attribute for a
1 description of its arguments.
1