__cmse_nonsecure_call
このセクションの内容:
構文
関数で使用される型属性の構文を参照してください。
説明
キーワード__cmse_nonsecure_callは関数ポインタに対して使用され、ポインタを介したコールが非セキュア状態に入ることを示します。重要なデータが非セキュア状態にリークすることを回避するために、そのようなコールの前に実行の状態はクリアされます。
__cmse_nonsecure_callキーワードは、--cmseでコンパイルする際にのみ、関数ポインタに対して使用できます。
キーワード__cmse_nonsecure_callは、可変引数関数、レジスタに収まらない引数または返り値を持つ関数、または浮動小数点レジスタを使った引数または返り値を持つ関数ではサポートされません。
注記
このキーワードは、__attribute__ ((構文を使って、GCCスタイルの属性としても使用できます。attribute-list))
64ビットモードの場合、このキーワードは使用できません。
例
#include <arm_cmse.h>
typedef __cmse_nonsecure_call void (*fp_ns_t)(void);
static fp_ns_t callback_ns = 0;
__cmse_nonsecure_entry void set_callback_ns(fp_ns_t func_ns) {
callback_ns = cmse_nsfptr_create(func_ns);
}