os_safety.h 源码
2026/7/20小于 1 分钟源码参考内核安全头文件
os_safety.h — 安全机制头文件
源文件路径: kernel/include/os_safety.h
引用章节: 4.6.3 安全机制
完整源码
#ifndef __OS_SAFETY_H__
#define __OS_SAFETY_H__
#include <arch_interrupt.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifdef OS_USING_SAFETY_MECHANISM
extern void os_safety_task_stack_overflow_set_hook(void (*hook)(void));
extern void os_safety_assert_set_hook(void (*hook)(void));
extern void os_safety_exception_set_hook(void (*hook)(void));
extern void os_safety_task_stack_overflow_process(void);
extern void os_safety_assert_process(void);
extern void os_safety_exception_process(void);
#else
/* 未启用安全机制时:关中断死循环 */
#define os_safety_task_stack_overflow_process() \
do { os_irq_disable(); while (1); } while (0)
#define os_safety_assert_process() \
do { os_irq_disable(); while (1); } while (0)
#define os_safety_exception_process() \
do { os_irq_disable(); while (1); } while (0)
#endif /* OS_USING_SAFETY_MECHANISM */
#ifdef __cplusplus
}
#endif
#endif /* __OS_SAFETY_H__ */关键说明
| 函数 | 触发场景 | 默认行为 |
|---|---|---|
os_safety_task_stack_overflow_process | 栈溢出检测 | 关中断死循环 |
os_safety_assert_process | 断言失败 | 关中断死循环 |
os_safety_exception_process | 异常/故障 | 关中断死循环 |
*_set_hook | 注册回调 | 用户可自定义处理逻辑(如记录日志、复位) |