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