These function attributes are supported by the Epiphany back end:
disinterrupt
forwarder_section
interrupt
On Epiphany targets one or more optional parameters can be added like this:
void __attribute__ ((interrupt ("dma0, dma1"))) universal_dma_handler ();
Permissible values for these parameters are: reset
, software_exception
, page_miss
, timer0
, timer1
, message
, dma0
, dma1
, wand
and swi
. Multiple parameters indicate that multiple entries in the interrupt vector table should be initialized for this function, i.e. for each parameter name, a jump to the function is emitted in the section ivt_entry_name. The parameter(s) may be omitted entirely, in which case no interrupt vector table entry is provided.
Note that interrupts are enabled inside the function unless the disinterrupt
attribute is also specified.
The following examples are all valid uses of these attributes on Epiphany targets:
void __attribute__ ((interrupt)) universal_handler (); void __attribute__ ((interrupt ("dma1"))) dma1_handler (); void __attribute__ ((interrupt ("dma0, dma1"))) universal_dma_handler (); void __attribute__ ((interrupt ("timer0"), disinterrupt)) fast_timer_handler (); void __attribute__ ((interrupt ("dma0, dma1"), forwarder_section ("tramp"))) external_dma_handler ();
long_call
short_call
-mlong-calls
(see Adapteva Epiphany Options) command-line switch and #pragma long_calls
settings.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-6.3.0/gcc/Epiphany-Function-Attributes.html