Go to the documentation of this file.
25 #define COMPILERDCC_H 1
34 #ifndef IFX_CFG_USE_COMPILER_DEFAULT_LINKER
39 #define IFXCOMPILER_CORE_LINKER_SYMBOLS(cpu) \
40 extern unsigned int __USTACK##cpu[]; \
41 extern unsigned int __ISTACK##cpu[]; \
42 extern unsigned int __INTTAB_CPU##cpu[]; \
43 extern unsigned int __TRAPTAB_CPU##cpu[]; \
44 extern unsigned int __CSA##cpu[]; \
45 extern unsigned int __CSA##cpu##_END[];
47 #define __USTACK(cpu) __USTACK##cpu
48 #define __ISTACK(cpu) __ISTACK##cpu
49 #define __INTTAB_CPU(cpu) __INTTAB_CPU##cpu
50 #define __TRAPTAB_CPU(cpu) __TRAPTAB_CPU##cpu
51 #define __CSA(cpu) __CSA##cpu
52 #define __CSA_END(cpu) __CSA##cpu##_END
54 #define IFXCOMPILER_COMMON_LINKER_SYMBOLS() \
55 __asm("\t .weak __A8_MEM, __A9_MEM");
58 #if defined(IFX_USE_SW_MANAGED_INT)
59 #define __INTTAB(cpu) ((unsigned int)__INTTAB_CPU##cpu | (unsigned int)0x1FE0)
61 #define __INTTAB(cpu) __INTTAB_CPU##cpu
64 #define __TRAPTAB(cpu) __TRAPTAB_CPU##cpu
66 #define __SDATA1(cpu) _SMALL_DATA_
67 #define __SDATA2(cpu) _LITERAL_DATA_
68 #define __SDATA3(cpu) __A8_MEM
69 #define __SDATA4(cpu) __A9_MEM
74 #define IFX_INLINE __inline__
79 #define COMPILER_NAME "DCC"
80 #define COMPILER_VERSION __VERSION__
82 #define COMPILER_REVISION 0
83 #define IFX_INTERRUPT_FAST IFX_INTERRUPT
85 #if defined(IFX_USE_SW_MANAGED_INT)
88 #define IFX_INTERRUPT(isr, vectabNum, prio) void isr(void)
95 #define IFX_INTERRUPT(isr, vectabNum, prio) IFX_INTERRUPT_INTERNAL(isr, vectabNum, prio)
99 #ifndef IFX_INTERRUPT_INTERNAL
100 #define IFX_INTERRUPT_INTERNAL(isr, vectabNum, prio) \
101 void __interrupt(prio) __vector_table(vectabNum) isr(void)
105 #define IFX_INTERRUPT_LEGACY(isr, vectabNum, prio) \
106 __asm ("\t.align\t 5\n\t\
107 .section .int."#prio"\n \t.sectionlink .inttab"#vectabNum".intvec."#prio"\n\
109 __intvec_tc"#vectabNum"_"#prio":\n\
110 movh.a\t %a14,"#isr"@ha\n\
111 lea\t %a14,[%a14]"#isr"@l\n\
114 .section .intend."#prio"\n \t.sectionlink .text");\
115 __interrupt__ void isr (void)
121 #define IFX_ALIGN(n) __attribute__ ((aligned(n)))