 |
S32 SDK
|
Go to the documentation of this file.
45 #if !defined (CORE_CM4_H)
57 #if defined (__GNUC__)
58 #if defined (__VFP_FP__) && !defined (__SOFTFP__)
62 #elif defined (__ICCARM__)
63 #if defined __ARMVFP__
67 #elif defined (__ghs__) || defined (__DCC__)
72 #elif defined (__CSMC__)
73 #if (__CSMC__ & 0x400U)
81 #if defined (__GNUC__)
82 #define ENABLE_INTERRUPTS() __asm volatile ("cpsie i" : : : "memory");
84 #define ENABLE_INTERRUPTS() __asm("cpsie i")
90 #if defined (__GNUC__)
91 #define DISABLE_INTERRUPTS() __asm volatile ("cpsid i" : : : "memory");
93 #define DISABLE_INTERRUPTS() __asm("cpsid i")
100 #if defined (__GNUC__)
101 #define STANDBY() __asm volatile ("wfi")
103 #define STANDBY() __asm("wfi")
109 #if defined (__GNUC__) || defined (__ICCARM__) || defined (__ghs__)
110 #define REV_BYTES_32(a, b) __asm volatile ("rev %0, %1" : "=r" (b) : "r" (a))
112 #define REV_BYTES_32(a, b) (b = ((a & 0xFF000000U) >> 24U) | ((a & 0xFF0000U) >> 8U) \
113 | ((a & 0xFF00U) << 8U) | ((a & 0xFFU) << 24U))
118 #if defined (__GNUC__) || defined (__ICCARM__) || defined (__ghs__)
119 #define REV_BYTES_16(a, b) __asm volatile ("rev16 %0, %1" : "=r" (b) : "r" (a))
121 #define REV_BYTES_16(a, b) (b = ((a & 0xFF000000U) >> 8U) | ((a & 0xFF0000U) << 8U) \
122 | ((a & 0xFF00U) >> 8U) | ((a & 0xFFU) << 8U))
127 #if defined ( __GNUC__ )
128 #define START_FUNCTION_DECLARATION_RAMSECTION
129 #define END_FUNCTION_DECLARATION_RAMSECTION __attribute__((section (".code_ram")));
130 #elif defined ( __ghs__ )
131 #define START_FUNCTION_DECLARATION_RAMSECTION _Pragma("ghs callmode=far")
132 #define END_FUNCTION_DECLARATION_RAMSECTION __attribute__((section (".code_ram")));\
133 _Pragma("ghs callmode=default")
134 #elif defined ( __ICCARM__ )
135 #define START_FUNCTION_DECLARATION_RAMSECTION __ramfunc
136 #define END_FUNCTION_DECLARATION_RAMSECTION ;
137 #elif defined ( __DCC__ )
138 #define START_FUNCTION_DECLARATION_RAMSECTION _Pragma("section CODE \".code_ram\"") \
139 _Pragma("use_section CODE")
140 #define END_FUNCTION_DECLARATION_RAMSECTION ;
141 #elif defined ( __CSMC__ )
142 #define START_FUNCTION_DECLARATION_RAMSECTION @ext
143 #define END_FUNCTION_DECLARATION_RAMSECTION ;
146 #define START_FUNCTION_DECLARATION_RAMSECTION
147 #define END_FUNCTION_DECLARATION_RAMSECTION ;
150 #if defined ( __CSMC__ )
151 #define START_FUNCTION_DEFINITION_RAMSECTION _Pragma("section (code_ram)")
152 #define END_FUNCTION_DEFINITION_RAMSECTION _Pragma("section ()")
157 #define START_FUNCTION_DEFINITION_RAMSECTION
158 #define END_FUNCTION_DEFINITION_RAMSECTION
161 #if defined (__ICCARM__)
162 #define DISABLE_CHECK_RAMSECTION_FUNCTION_CALL _Pragma("diag_suppress=Ta022")
163 #define ENABLE_CHECK_RAMSECTION_FUNCTION_CALL _Pragma("diag_default=Ta022")
165 #define DISABLE_CHECK_RAMSECTION_FUNCTION_CALL
166 #define ENABLE_CHECK_RAMSECTION_FUNCTION_CALL