You copied the Doc URL to your clipboard.
__attribute__((cmse_nonsecure_call)) function attribute
Declares a non-secure function type
A call to a function that switches state from Secure to Non-secure is called a non-secure function call. A non-secure function call can only happen through function pointers. This is a consequence of separating secure and non-secure code into separate executable files.
A non-secure function type must only be used as a base type of a pointer.
Example
#include <arm_cmse.h> typedef void __attribute__((cmse_nonsecure_call)) nsfunc(void); void default_callback(void) { … } // fp can point to a secure function or a non-secure function nsfunc *fp = (nsfunc *) default_callback; // secure function pointer void __attribute__((cmse_nonsecure_entry)) entry(nsfunc *callback) { fp = cmse_nsfptr_create(callback); // non-secure function pointer } void call_callback(void) { if (cmse_is_nsfptr(fp)){ fp(); // non-secure function call } else { ((void (*)(void)) fp)(); // normal function call } }