Go to the documentation of this file.
35 #ifndef IFXCPU_TRAPS_H_
36 #define IFXCPU_TRAPS_H_
168 unsigned int tId : 8;
169 unsigned int tClass : 8;
170 unsigned int tCpu : 3;
185 #if defined(__GNUC__)
186 #define __ALIGN_TRAP_TAB__ __asm(" .align 5");
187 #define IfxCpu_Tsr_CallTSR(serviceRoutine) \
189 __ALIGN_TRAP_TAB__; \
190 __asm("mov\t %d4, %d15"); \
191 __asm("ji\t %0" : : "a" (serviceRoutine)); \
194 #elif defined(__DCC__)
195 #define IfxCpu_Tsr_CallTSR(serviceRoutine) \
197 __ALIGN_TRAP_TAB__; \
198 __asm("\n#$$bp\n"); \
199 __asm(" movh.a\t %a15,"#serviceRoutine "@ha\n"); \
200 __asm(" lea\t %a15,[%a15]"#serviceRoutine "@l\n"); \
201 __asm(" mov\t %d4,%d15\n"); \
202 __asm(" ji\t %a15\n"); \
206 #define __ALIGN_TRAP_TAB__ __asm(" .align 5");
207 #elif defined(__TASKING__)
208 #define IfxCpu_Tsr_CallTSR(serviceRoutine) \
210 __ALIGN_TRAP_TAB__; \
211 __asm("mov\td4,d15\n\tji\t%0\n\trfe\n" : : "a" (serviceRoutine) : "d4", "d15"); \
213 #define __ALIGN_TRAP_TAB__ __asm(" .align 32");