]> git.sur5r.net Git - freertos/blobdiff - FreeRTOS/Source/portable/ARMv8M/secure/macros/secure_port_macros.h
Add support for running FreeRTOS on Secure Side only in Cortex M33 port. Also, change...
[freertos] / FreeRTOS / Source / portable / ARMv8M / secure / macros / secure_port_macros.h
index aa279925d6b1aea48a220d948c86a9b162e0c674..0671064209406976b832562801d65ae16daf94d4 100644 (file)
 /**\r
  * @brief Byte alignment requirements.\r
  */\r
-#define secureportBYTE_ALIGNMENT                    8\r
-#define secureportBYTE_ALIGNMENT_MASK               ( 0x0007 )\r
+#define secureportBYTE_ALIGNMENT                                       8\r
+#define secureportBYTE_ALIGNMENT_MASK                          ( 0x0007 )\r
 \r
 /**\r
  * @brief Macro to declare a function as non-secure callable.\r
  */\r
 #if defined( __IAR_SYSTEMS_ICC__ )\r
-    #define secureportNON_SECURE_CALLABLE           __cmse_nonsecure_entry\r
+       #define secureportNON_SECURE_CALLABLE                   __cmse_nonsecure_entry\r
 #else\r
-    #define secureportNON_SECURE_CALLABLE           __attribute__((cmse_nonsecure_entry))\r
+       #define secureportNON_SECURE_CALLABLE                   __attribute__((cmse_nonsecure_entry))\r
 #endif\r
 \r
 /**\r
  * @brief Set the secure PRIMASK value.\r
  */\r
 #define secureportSET_SECURE_PRIMASK( ulPrimaskValue ) \\r
-    __asm volatile ( "msr primask, %0" : : "r" ( ulPrimaskValue ) : "memory" )\r
+       __asm volatile ( "msr primask, %0" : : "r" ( ulPrimaskValue ) : "memory" )\r
 \r
 /**\r
  * @brief Set the non-secure PRIMASK value.\r
  */\r
 #define secureportSET_NON_SECURE_PRIMASK( ulPrimaskValue ) \\r
-    __asm volatile ( "msr primask_ns, %0" : : "r" ( ulPrimaskValue ) : "memory" )\r
+       __asm volatile ( "msr primask_ns, %0" : : "r" ( ulPrimaskValue ) : "memory" )\r
 \r
 /**\r
  * @brief Read the PSP value in the given variable.\r
  */\r
 #define secureportREAD_PSP( pucOutCurrentStackPointer ) \\r
-    __asm volatile ( "mrs %0, psp"  : "=r" ( pucOutCurrentStackPointer ) )\r
+       __asm volatile ( "mrs %0, psp"  : "=r" ( pucOutCurrentStackPointer ) )\r
 \r
 /**\r
  * @brief Set the PSP to the given value.\r
  */\r
 #define secureportSET_PSP( pucCurrentStackPointer ) \\r
-    __asm volatile ( "msr psp, %0" : : "r" ( pucCurrentStackPointer ) )\r
+       __asm volatile ( "msr psp, %0" : : "r" ( pucCurrentStackPointer ) )\r
 \r
 /**\r
  * @brief Set the PSPLIM to the given value.\r
  */\r
 #define secureportSET_PSPLIM( pucStackLimit ) \\r
-    __asm volatile ( "msr psplim, %0" : : "r" ( pucStackLimit ) )\r
+       __asm volatile ( "msr psplim, %0" : : "r" ( pucStackLimit ) )\r
 \r
 /**\r
  * @brief Set the NonSecure MSP to the given value.\r
  */\r
 #define secureportSET_MSP_NS( pucMainStackPointer ) \\r
-    __asm volatile ( "msr msp_ns, %0" : : "r" ( pucMainStackPointer ) )\r
+       __asm volatile ( "msr msp_ns, %0" : : "r" ( pucMainStackPointer ) )\r
 \r
 /**\r
  * @brief Set the CONTROL register to the given value.\r
  */\r
 #define secureportSET_CONTROL( ulControl ) \\r
-    __asm volatile ( "msr control, %0" : : "r" ( ulControl ) : "memory" )\r
+       __asm volatile ( "msr control, %0" : : "r" ( ulControl ) : "memory" )\r
 \r
 /**\r
  * @brief Read the Interrupt Program Status Register (IPSR) value in the given\r
  * variable.\r
  */\r
 #define secureportREAD_IPSR( ulIPSR ) \\r
-    __asm volatile ( "mrs %0, ipsr"  : "=r" ( ulIPSR ) )\r
+       __asm volatile ( "mrs %0, ipsr"  : "=r" ( ulIPSR ) )\r
 \r
 /**\r
  * @brief PRIMASK value to enable interrupts.\r
  */\r
-#define secureportPRIMASK_ENABLE_INTERRUPTS_VAL     0\r
+#define secureportPRIMASK_ENABLE_INTERRUPTS_VAL                0\r
 \r
 /**\r
  * @brief PRIMASK value to disable interrupts.\r
  */\r
-#define secureportPRIMASK_DISABLE_INTERRUPTS_VAL    1\r
+#define secureportPRIMASK_DISABLE_INTERRUPTS_VAL       1\r
 \r
 /**\r
  * @brief Disable secure interrupts.\r
  */\r
-#define secureportDISABLE_SECURE_INTERRUPTS()       secureportSET_SECURE_PRIMASK( secureportPRIMASK_DISABLE_INTERRUPTS_VAL )\r
+#define secureportDISABLE_SECURE_INTERRUPTS()          secureportSET_SECURE_PRIMASK( secureportPRIMASK_DISABLE_INTERRUPTS_VAL )\r
 \r
 /**\r
  * @brief Disable non-secure interrupts.\r
  *\r
  * This effectively disables context switches.\r
  */\r
-#define secureportDISABLE_NON_SECURE_INTERRUPTS()   secureportSET_NON_SECURE_PRIMASK( secureportPRIMASK_DISABLE_INTERRUPTS_VAL )\r
+#define secureportDISABLE_NON_SECURE_INTERRUPTS()      secureportSET_NON_SECURE_PRIMASK( secureportPRIMASK_DISABLE_INTERRUPTS_VAL )\r
 \r
 /**\r
  * @brief Enable non-secure interrupts.\r
  */\r
-#define secureportENABLE_NON_SECURE_INTERRUPTS()    secureportSET_NON_SECURE_PRIMASK( secureportPRIMASK_ENABLE_INTERRUPTS_VAL )\r
+#define secureportENABLE_NON_SECURE_INTERRUPTS()       secureportSET_NON_SECURE_PRIMASK( secureportPRIMASK_ENABLE_INTERRUPTS_VAL )\r
 \r
 /**\r
  * @brief Assert definition.\r
  */\r
-#define secureportASSERT( x )                       \\r
-    if( ( x ) == 0 )                                \\r
-    {                                               \\r
-        secureportDISABLE_SECURE_INTERRUPTS();      \\r
-        secureportDISABLE_NON_SECURE_INTERRUPTS();  \\r
-        for( ;; );                                  \\r
-    }\r
+#define secureportASSERT( x )                                          \\r
+       if( ( x ) == 0 )                                                                \\r
+       {                                                                                               \\r
+               secureportDISABLE_SECURE_INTERRUPTS();          \\r
+               secureportDISABLE_NON_SECURE_INTERRUPTS();      \\r
+               for( ;; );                                                                      \\r
+       }\r
 \r
 #endif /* __SECURE_PORT_MACROS_H__ */\r