27 #ifndef __CMSIS_TIARMCLANG_H 28 #define __CMSIS_TIARMCLANG_H 30 #pragma clang system_header 37 #define __INLINE __inline 39 #ifndef __STATIC_INLINE 40 #define __STATIC_INLINE static __inline 42 #ifndef __STATIC_FORCEINLINE 43 #define __STATIC_FORCEINLINE __attribute__((always_inline)) static __inline 46 #define __NO_RETURN __attribute__((__noreturn__)) 49 #define __USED __attribute__((used)) 52 #define __WEAK __attribute__((weak)) 55 #define __PACKED __attribute__((packed, aligned(1))) 57 #ifndef __PACKED_STRUCT 58 #define __PACKED_STRUCT struct __attribute__((packed, aligned(1))) 60 #ifndef __PACKED_UNION 61 #define __PACKED_UNION union __attribute__((packed, aligned(1))) 63 #ifndef __UNALIGNED_UINT32 64 #pragma clang diagnostic push 65 #pragma clang diagnostic ignored "-Wpacked" 68 #pragma clang diagnostic pop 69 #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) 71 #ifndef __UNALIGNED_UINT16_WRITE 72 #pragma clang diagnostic push 73 #pragma clang diagnostic ignored "-Wpacked" 76 #pragma clang diagnostic pop 77 #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))->v) = (val)) 79 #ifndef __UNALIGNED_UINT16_READ 80 #pragma clang diagnostic push 81 #pragma clang diagnostic ignored "-Wpacked" 84 #pragma clang diagnostic pop 85 #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v) 87 #ifndef __UNALIGNED_UINT32_WRITE 88 #pragma clang diagnostic push 89 #pragma clang diagnostic ignored "-Wpacked" 92 #pragma clang diagnostic pop 93 #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val)) 95 #ifndef __UNALIGNED_UINT32_READ 96 #pragma clang diagnostic push 97 #pragma clang diagnostic ignored "-Wpacked" 100 #pragma clang diagnostic pop 101 #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v) 104 #define __ALIGNED(x) __attribute__((aligned(x))) 107 #define __RESTRICT __restrict 109 #ifndef __COMPILER_BARRIER 110 #define __COMPILER_BARRIER() __ASM volatile("":::"memory") 113 #define __NO_INIT __attribute__ ((section (".bss.noinit"))) 116 #define __ALIAS(x) __attribute__ ((alias(x))) 122 #ifndef __PROGRAM_START 123 #define __PROGRAM_START _c_int00 127 #define __INITIAL_SP __STACK_END 130 #ifndef __STACK_LIMIT 131 #define __STACK_LIMIT __STACK_SIZE 134 #ifndef __VECTOR_TABLE 135 #define __VECTOR_TABLE __Vectors 138 #ifndef __VECTOR_TABLE_ATTRIBUTE 139 #define __VECTOR_TABLE_ATTRIBUTE __attribute__((used, section(".intvecs"))) 142 #if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) 144 #define __STACK_SEAL Image$$STACKSEAL$$ZI$$Base 147 #ifndef __TZ_STACK_SEAL_SIZE 148 #define __TZ_STACK_SEAL_SIZE 8U 151 #ifndef __TZ_STACK_SEAL_VALUE 152 #define __TZ_STACK_SEAL_VALUE 0xFEF5EDA5FEF5EDA5ULL 157 *((uint64_t *)stackTop) = __TZ_STACK_SEAL_VALUE;
171 #if defined (__thumb__) && !defined (__thumb2__) 172 #define __CMSIS_GCC_OUT_REG(r) "=l" (r) 173 #define __CMSIS_GCC_RW_REG(r) "+l" (r) 174 #define __CMSIS_GCC_USE_REG(r) "l" (r) 176 #define __CMSIS_GCC_OUT_REG(r) "=r" (r) 177 #define __CMSIS_GCC_RW_REG(r) "+r" (r) 178 #define __CMSIS_GCC_USE_REG(r) "r" (r) 185 #define __NOP __builtin_arm_nop 191 #define __WFI __builtin_arm_wfi 199 #define __WFE __builtin_arm_wfe 206 #define __SEV __builtin_arm_sev 215 #define __ISB() __builtin_arm_isb(0xF) 222 #define __DSB() __builtin_arm_dsb(0xF) 230 #define __DMB() __builtin_arm_dmb(0xF) 239 #define __REV(value) __builtin_bswap32(value) 248 #define __REV16(value) __ROR(__REV(value), 16) 257 #define __REVSH(value) (int16_t)__builtin_bswap16(value) 274 return (op1 >> op2) | (op1 << (32U - op2));
285 #define __BKPT(value) __ASM volatile ("bkpt "#value) 294 #define __RBIT __builtin_arm_rbit 317 return __builtin_clz(value);
321 #if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ 322 (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ 323 (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ 324 (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) || \ 325 (defined (__ARM_ARCH_8_1M_MAIN__) && (__ARM_ARCH_8_1M_MAIN__ == 1)) ) 333 #define __LDREXB (uint8_t)__builtin_arm_ldrex 342 #define __LDREXH (uint16_t)__builtin_arm_ldrex 351 #define __LDREXW (uint32_t)__builtin_arm_ldrex 362 #define __STREXB (uint32_t)__builtin_arm_strex 373 #define __STREXH (uint32_t)__builtin_arm_strex 384 #define __STREXW (uint32_t)__builtin_arm_strex 391 #define __CLREX __builtin_arm_clrex 400 #if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ 401 (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ 402 (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ 403 (defined (__ARM_ARCH_8_1M_MAIN__) && (__ARM_ARCH_8_1M_MAIN__ == 1)) ) 412 #define __SSAT __builtin_arm_ssat 422 #define __USAT __builtin_arm_usat 451 __ASM volatile (
"ldrbt %0, %1" :
"=r" (result) :
"Q" (*ptr) );
452 return ((uint8_t) result);
466 __ASM volatile (
"ldrht %0, %1" :
"=r" (result) :
"Q" (*ptr) );
467 return ((uint16_t) result);
481 __ASM volatile (
"ldrt %0, %1" :
"=r" (result) :
"Q" (*ptr) );
494 __ASM volatile (
"strbt %1, %0" :
"=Q" (*ptr) :
"r" ((uint32_t)value) );
506 __ASM volatile (
"strht %1, %0" :
"=Q" (*ptr) :
"r" ((uint32_t)value) );
518 __ASM volatile (
"strt %1, %0" :
"=Q" (*ptr) :
"r" (value) );
535 if ((sat >= 1U) && (sat <= 32U))
537 const int32_t max = (int32_t)((1U << (sat - 1U)) - 1U);
538 const int32_t min = -1 - max ;
562 const uint32_t max = ((1U << sat) - 1U);
563 if (val > (int32_t)max)
572 return (uint32_t)val;
581 #if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ 582 (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) || \ 583 (defined (__ARM_ARCH_8_1M_MAIN__) && (__ARM_ARCH_8_1M_MAIN__ == 1)) ) 595 __ASM volatile (
"ldab %0, %1" :
"=r" (result) :
"Q" (*ptr) :
"memory" );
596 return ((uint8_t) result);
610 __ASM volatile (
"ldah %0, %1" :
"=r" (result) :
"Q" (*ptr) :
"memory" );
611 return ((uint16_t) result);
625 __ASM volatile (
"lda %0, %1" :
"=r" (result) :
"Q" (*ptr) :
"memory" );
638 __ASM volatile (
"stlb %1, %0" :
"=Q" (*ptr) :
"r" ((uint32_t)value) :
"memory" );
650 __ASM volatile (
"stlh %1, %0" :
"=Q" (*ptr) :
"r" ((uint32_t)value) :
"memory" );
662 __ASM volatile (
"stl %1, %0" :
"=Q" (*ptr) :
"r" ((uint32_t)value) :
"memory" );
672 #define __LDAEXB (uint8_t)__builtin_arm_ldaex 681 #define __LDAEXH (uint16_t)__builtin_arm_ldaex 690 #define __LDAEX (uint32_t)__builtin_arm_ldaex 701 #define __STLEXB (uint32_t)__builtin_arm_stlex 712 #define __STLEXH (uint32_t)__builtin_arm_stlex 723 #define __STLEX (uint32_t)__builtin_arm_stlex 743 #ifndef __ARM_COMPAT_H 746 __ASM volatile (
"cpsie i" : : :
"memory");
756 #ifndef __ARM_COMPAT_H 759 __ASM volatile (
"cpsid i" : : :
"memory");
773 __ASM volatile (
"MRS %0, control" :
"=r" (result) );
778 #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 788 __ASM volatile (
"MRS %0, control_ns" :
"=r" (result) );
801 __ASM volatile (
"MSR control, %0" : :
"r" (control) :
"memory");
806 #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 814 __ASM volatile (
"MSR control_ns, %0" : :
"r" (control) :
"memory");
829 __ASM volatile (
"MRS %0, ipsr" :
"=r" (result) );
843 __ASM volatile (
"MRS %0, apsr" :
"=r" (result) );
857 __ASM volatile (
"MRS %0, xpsr" :
"=r" (result) );
871 __ASM volatile (
"MRS %0, psp" :
"=r" (result) );
876 #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 886 __ASM volatile (
"MRS %0, psp_ns" :
"=r" (result) );
899 __ASM volatile (
"MSR psp, %0" : :
"r" (topOfProcStack) : );
903 #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 911 __ASM volatile (
"MSR psp_ns, %0" : :
"r" (topOfProcStack) : );
925 __ASM volatile (
"MRS %0, msp" :
"=r" (result) );
930 #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 940 __ASM volatile (
"MRS %0, msp_ns" :
"=r" (result) );
953 __ASM volatile (
"MSR msp, %0" : :
"r" (topOfMainStack) : );
957 #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 965 __ASM volatile (
"MSR msp_ns, %0" : :
"r" (topOfMainStack) : );
970 #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 980 __ASM volatile (
"MRS %0, sp_ns" :
"=r" (result) );
992 __ASM volatile (
"MSR sp_ns, %0" : :
"r" (topOfStack) : );
1006 __ASM volatile (
"MRS %0, primask" :
"=r" (result) );
1011 #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 1021 __ASM volatile (
"MRS %0, primask_ns" :
"=r" (result) );
1034 __ASM volatile (
"MSR primask, %0" : :
"r" (priMask) :
"memory");
1038 #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 1046 __ASM volatile (
"MSR primask_ns, %0" : :
"r" (priMask) :
"memory");
1051 #if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ 1052 (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ 1053 (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ 1054 (defined (__ARM_ARCH_8_1M_MAIN__) && (__ARM_ARCH_8_1M_MAIN__ == 1)) ) 1062 __ASM volatile (
"cpsie f" : : :
"memory");
1073 __ASM volatile (
"cpsid f" : : :
"memory");
1086 __ASM volatile (
"MRS %0, basepri" :
"=r" (result) );
1091 #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 1101 __ASM volatile (
"MRS %0, basepri_ns" :
"=r" (result) );
1114 __ASM volatile (
"MSR basepri, %0" : :
"r" (basePri) :
"memory");
1118 #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 1126 __ASM volatile (
"MSR basepri_ns, %0" : :
"r" (basePri) :
"memory");
1139 __ASM volatile (
"MSR basepri_max, %0" : :
"r" (basePri) :
"memory");
1152 __ASM volatile (
"MRS %0, faultmask" :
"=r" (result) );
1157 #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 1167 __ASM volatile (
"MRS %0, faultmask_ns" :
"=r" (result) );
1180 __ASM volatile (
"MSR faultmask, %0" : :
"r" (faultMask) :
"memory");
1184 #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 1192 __ASM volatile (
"MSR faultmask_ns, %0" : :
"r" (faultMask) :
"memory");
1202 #if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ 1203 (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) || \ 1204 (defined (__ARM_ARCH_8_1M_MAIN__) && (__ARM_ARCH_8_1M_MAIN__ == 1)) ) 1217 #if (!((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ 1218 (defined (__ARM_ARCH_8_1M_MAIN__ ) && (__ARM_ARCH_8_1M_MAIN__ == 1)) ) && \ 1219 (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) 1224 __ASM volatile (
"MRS %0, psplim" :
"=r" (result) );
1229 #if (defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3)) 1241 #if (!((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ 1242 (defined (__ARM_ARCH_8_1M_MAIN__ ) && (__ARM_ARCH_8_1M_MAIN__ == 1)) ) ) 1247 __ASM volatile (
"MRS %0, psplim_ns" :
"=r" (result) );
1265 #if (!((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ 1266 (defined (__ARM_ARCH_8_1M_MAIN__ ) && (__ARM_ARCH_8_1M_MAIN__ == 1)) ) && \ 1267 (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) 1269 (void)ProcStackPtrLimit;
1271 __ASM volatile (
"MSR psplim, %0" : :
"r" (ProcStackPtrLimit));
1276 #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 1288 #if (!((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ 1289 (defined (__ARM_ARCH_8_1M_MAIN__ ) && (__ARM_ARCH_8_1M_MAIN__ == 1)) ) ) 1291 (void)ProcStackPtrLimit;
1293 __ASM volatile (
"MSR psplim_ns, %0\n" : :
"r" (ProcStackPtrLimit));
1309 #if (!((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ 1310 (defined (__ARM_ARCH_8_1M_MAIN__ ) && (__ARM_ARCH_8_1M_MAIN__ == 1)) ) && \ 1311 (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) 1316 __ASM volatile (
"MRS %0, msplim" :
"=r" (result) );
1322 #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 1333 #if (!((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ 1334 (defined (__ARM_ARCH_8_1M_MAIN__ ) && (__ARM_ARCH_8_1M_MAIN__ == 1)) ) ) 1339 __ASM volatile (
"MRS %0, msplim_ns" :
"=r" (result) );
1356 #if (!((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ 1357 (defined (__ARM_ARCH_8_1M_MAIN__ ) && (__ARM_ARCH_8_1M_MAIN__ == 1)) ) && \ 1358 (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) 1360 (void)MainStackPtrLimit;
1362 __ASM volatile (
"MSR msplim, %0" : :
"r" (MainStackPtrLimit));
1367 #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 1378 #if (!((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ 1379 (defined (__ARM_ARCH_8_1M_MAIN__ ) && (__ARM_ARCH_8_1M_MAIN__ == 1)) ) ) 1381 (void)MainStackPtrLimit;
1383 __ASM volatile (
"MSR msplim_ns, %0" : :
"r" (MainStackPtrLimit));
1397 #if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ 1398 (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) 1399 #define __get_FPSCR (uint32_t)__builtin_arm_get_fpscr 1401 #define __get_FPSCR() ((uint32_t)0U) 1409 #if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ 1410 (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) 1411 #define __set_FPSCR __builtin_arm_set_fpscr 1413 #define __set_FPSCR(fpscr) ((void)(fpscr)) 1426 #if (defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1)) 1428 #define __SADD8 __builtin_arm_sadd8 1429 #define __QADD8 __builtin_arm_qadd8 1430 #define __SHADD8 __builtin_arm_shadd8 1431 #define __UADD8 __builtin_arm_uadd8 1432 #define __UQADD8 __builtin_arm_uqadd8 1433 #define __UHADD8 __builtin_arm_uhadd8 1434 #define __SSUB8 __builtin_arm_ssub8 1435 #define __QSUB8 __builtin_arm_qsub8 1436 #define __SHSUB8 __builtin_arm_shsub8 1437 #define __USUB8 __builtin_arm_usub8 1438 #define __UQSUB8 __builtin_arm_uqsub8 1439 #define __UHSUB8 __builtin_arm_uhsub8 1440 #define __SADD16 __builtin_arm_sadd16 1441 #define __QADD16 __builtin_arm_qadd16 1442 #define __SHADD16 __builtin_arm_shadd16 1443 #define __UADD16 __builtin_arm_uadd16 1444 #define __UQADD16 __builtin_arm_uqadd16 1445 #define __UHADD16 __builtin_arm_uhadd16 1446 #define __SSUB16 __builtin_arm_ssub16 1447 #define __QSUB16 __builtin_arm_qsub16 1448 #define __SHSUB16 __builtin_arm_shsub16 1449 #define __USUB16 __builtin_arm_usub16 1450 #define __UQSUB16 __builtin_arm_uqsub16 1451 #define __UHSUB16 __builtin_arm_uhsub16 1452 #define __SASX __builtin_arm_sasx 1453 #define __QASX __builtin_arm_qasx 1454 #define __SHASX __builtin_arm_shasx 1455 #define __UASX __builtin_arm_uasx 1456 #define __UQASX __builtin_arm_uqasx 1457 #define __UHASX __builtin_arm_uhasx 1458 #define __SSAX __builtin_arm_ssax 1459 #define __QSAX __builtin_arm_qsax 1460 #define __SHSAX __builtin_arm_shsax 1461 #define __USAX __builtin_arm_usax 1462 #define __UQSAX __builtin_arm_uqsax 1463 #define __UHSAX __builtin_arm_uhsax 1464 #define __USAD8 __builtin_arm_usad8 1465 #define __USADA8 __builtin_arm_usada8 1466 #define __SSAT16 __builtin_arm_ssat16 1467 #define __USAT16 __builtin_arm_usat16 1468 #define __UXTB16 __builtin_arm_uxtb16 1469 #define __UXTAB16 __builtin_arm_uxtab16 1470 #define __SXTB16 __builtin_arm_sxtb16 1471 #define __SXTAB16 __builtin_arm_sxtab16 1472 #define __SMUAD __builtin_arm_smuad 1473 #define __SMUADX __builtin_arm_smuadx 1474 #define __SMLAD __builtin_arm_smlad 1475 #define __SMLADX __builtin_arm_smladx 1476 #define __SMLALD __builtin_arm_smlald 1477 #define __SMLALDX __builtin_arm_smlaldx 1478 #define __SMUSD __builtin_arm_smusd 1479 #define __SMUSDX __builtin_arm_smusdx 1480 #define __SMLSD __builtin_arm_smlsd 1481 #define __SMLSDX __builtin_arm_smlsdx 1482 #define __SMLSLD __builtin_arm_smlsld 1483 #define __SMLSLDX __builtin_arm_smlsldx 1484 #define __SEL __builtin_arm_sel 1485 #define __QADD __builtin_arm_qadd 1486 #define __QSUB __builtin_arm_qsub 1488 #define __PKHBT(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0x0000FFFFUL) | \ 1489 ((((uint32_t)(ARG2)) << (ARG3)) & 0xFFFF0000UL) ) 1491 #define __PKHTB(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0xFFFF0000UL) | \ 1492 ((((uint32_t)(ARG2)) >> (ARG3)) & 0x0000FFFFUL) ) 1494 #define __SXTB16_RORn(ARG1, ARG2) __SXTB16(__ROR(ARG1, ARG2)) 1496 #define __SXTAB16_RORn(ARG1, ARG2, ARG3) __SXTAB16(ARG1, __ROR(ARG2, ARG3)) 1502 __ASM volatile (
"smmla %0, %1, %2, %3" :
"=r" (result):
"r" (op1),
"r" (op2),
"r" (op3) );
__STATIC_FORCEINLINE uint32_t __get_CONTROL(void)
Get Control Register.
Definition: cmsis_gcc.h:977
#define __CMSIS_GCC_USE_REG(r)
Definition: cmsis_tiarmclang.h:178
__PACKED_STRUCT T_UINT32_WRITE
Definition: cmsis_tiarmclang.h:91
__STATIC_FORCEINLINE uint32_t __get_IPSR(void)
Get IPSR Register.
Definition: cmsis_gcc.h:1033
__STATIC_FORCEINLINE uint32_t __USAT(int32_t val, uint32_t sat)
Unsigned Saturate.
Definition: cmsis_gcc.h:738
__STATIC_FORCEINLINE uint32_t __get_PSP(void)
Get Process Stack Pointer.
Definition: cmsis_gcc.h:1075
__STATIC_FORCEINLINE void __set_PSP(uint32_t topOfProcStack)
Set Process Stack Pointer.
Definition: cmsis_gcc.h:1105
__STATIC_FORCEINLINE uint32_t __get_xPSR(void)
Get xPSR Register.
Definition: cmsis_gcc.h:1061
__STATIC_FORCEINLINE void __set_MSP(uint32_t topOfMainStack)
Set Main Stack Pointer.
Definition: cmsis_gcc.h:1159
__STATIC_FORCEINLINE void __set_PRIMASK(uint32_t priMask)
Set Priority Mask.
Definition: cmsis_gcc.h:1240
__STATIC_FORCEINLINE void __disable_irq(void)
Disable IRQ Interrupts.
Definition: cmsis_gcc.h:966
__STATIC_FORCEINLINE uint32_t __get_APSR(void)
Get APSR Register.
Definition: cmsis_gcc.h:1047
__STATIC_FORCEINLINE uint32_t __get_PRIMASK(void)
Get Priority Mask.
Definition: cmsis_gcc.h:1210
#define __ASM
Definition: cmsis_tiarmclang.h:34
__PACKED_STRUCT T_UINT32_READ
Definition: cmsis_tiarmclang.h:99
__STATIC_FORCEINLINE uint32_t __get_MSP(void)
Get Main Stack Pointer.
Definition: cmsis_gcc.h:1129
#define __STATIC_FORCEINLINE
Definition: cmsis_tiarmclang.h:43
#define __ISB()
Instruction Synchronization Barrier.
Definition: cmsis_tiarmclang.h:215
__STATIC_FORCEINLINE uint32_t __ROR(uint32_t op1, uint32_t op2)
Rotate Right in unsigned value (32 bit)
Definition: cmsis_gcc.h:352
__STATIC_FORCEINLINE uint8_t __CLZ(uint32_t value)
Count leading zeros.
Definition: cmsis_gcc.h:409
#define __CMSIS_GCC_OUT_REG(r)
Definition: cmsis_tiarmclang.h:176
__STATIC_FORCEINLINE void __set_CONTROL(uint32_t control)
Set Control Register.
Definition: cmsis_gcc.h:1007
__PACKED_STRUCT T_UINT16_WRITE
Definition: cmsis_tiarmclang.h:75
__STATIC_FORCEINLINE void __enable_irq(void)
Enable IRQ Interrupts.
Definition: cmsis_gcc.h:955
__PACKED_STRUCT T_UINT16_READ
Definition: cmsis_tiarmclang.h:83
__STATIC_FORCEINLINE int32_t __SSAT(int32_t val, uint32_t sat)
Signed Saturate.
Definition: cmsis_gcc.h:713
#define __PACKED_STRUCT
Definition: cmsis_tiarmclang.h:58
struct __attribute__((packed)) T_UINT32
Definition: cmsis_tiarmclang.h:67