xt-sdk 文档 v1.0.3
xt-sdk 嵌入式 SDK API 参考
载入中...
搜索中...
未找到
xt_safe.h
浏览该文件的文档.
1
12
13#ifndef __XT_SAFE_H__
14#define __XT_SAFE_H__
15
16/* ==================== [Includes] ========================================== */
17
18#include "xt_utils.h"
19
20#ifdef __cplusplus
21extern "C" {
22#endif
23
30
31/* ==================== [Defines] =========================================== */
32
33/* ==================== [Typedefs] ========================================== */
34
38#if !defined(XT_SAFE_CPU_BASE_64BITS)
39typedef uint32_t xt_cpu_base_t;
40#else
41typedef uint64_t xt_cpu_base_t;
42#endif
43
44/* ==================== [Global Prototypes] ================================= */
45
52
59
66
67/* ==================== [Macros] ============================================ */
68
69#define xt_disable_irq() xt_safe_disable_irq()
70#define xt_enable_irq(level) xt_safe_enable_irq(level)
71#define xt_irq_is_enable() xt_safe_irq_is_enable()
72
73#if !defined(XT_CRIT_STAT)
74# define XT_CRIT_STAT() xt_cpu_base_t __l_irq_rest
75#endif
76#if !defined(XT_CRIT_ENTRY)
77# define XT_CRIT_ENTRY() do { __l_irq_rest = xt_safe_disable_irq(); } while(0)
78#endif
79#if !defined(XT_CRIT_EXIT)
80# define XT_CRIT_EXIT() do { xt_safe_enable_irq(__l_irq_rest); } while(0)
81#endif
82 /* xt_safe */
84
85#ifdef __cplusplus
86} /* extern "C" */
87#endif
88
89#endif /* __XT_SAFE_H__ */
xt_cpu_base_t xt_safe_irq_is_enable(void)
查询中断是否使能
void xt_safe_enable_irq(xt_cpu_base_t level)
恢复全局中断
uint32_t xt_cpu_base_t
CPU 基础类型(中断状态保存用)
xt_cpu_base_t xt_safe_disable_irq(void)
关闭全局中断
XTINY 通用工具函数集合(字节序、对齐读取、log2 等)