Debug
内核调试与诊断接口。提供格式化日志输出(osal_printk)、内核 Panic(osal_panic,触发系统重启并输出栈回溯)、调用栈转储(osal_dump_stack)以及断言宏(OSAL_ASSERT / OSAL_BUG_ON)。
适用于开发调试阶段的异常定位和运行时错误捕获。
头文件清单
接口清单
接口名称 功能简述 osal_printk 日志打印函数,支持格式化输出 osal_panic 内核panic函数,打印panic信息后系统停止响应 osal_dump_stack 内核回溯函数,打印当前任务调用栈信息 osal_bug_on 条件panic函数,条件为真时触发系统异常 osal_flush_cache 刷新CPU DCache
Functions
osal_printk
头文件清单
功能说明
- 提供内核日志打印功能,支持可变参数格式化输出
- 支持linux、liteos、seliteos、freertos系统
- 当fmt为NULL时,函数直接返回,不执行打印操作
前置条件
- 无
入参
名称 参数类型 详细说明 约束取值范围 fmt const char * 格式化字符串指针 非NULL,指向有效的格式化字符串 ... ... 可变参数列表 与fmt中的格式说明符匹配
参考案例
src/tools/templates/sample_project/main/app.c#osal_printkvendor/Waveconn_WCL-63X-DK01/demo/watchdog_demo/watchdog_demo.c#osal_printkvendor/Waveconn_WCL-63X-DK01/demo/uart_demo/uart_poll/uart_poll.c#osal_printk
osal_panic
头文件清单
功能说明
- 内核panic函数,打印内核panic信息及调用栈后系统停止响应
- 支持linux、liteos系统
- 调用后系统将无法继续运行,属于致命错误处理接口
前置条件
- 仅在linux、liteos系统下可用
- 仅在发生不可恢复的致命错误时调用
入参
名称 参数类型 详细说明 约束取值范围 fmt const char * 格式化字符串指针 非NULL fun const char * 发生panic的函数名 非NULL line int 发生panic的行号 有效源码行号 cond const char * 触发panic的条件表达式 非NULL
osal_dump_stack
头文件清单
功能说明
- 内核回溯函数,打印当前运行任务的调用栈信息
- 支持linux、liteos系统
- 用于调试定位问题时的调用链追踪
前置条件
- 仅在linux、liteos系统下可用
osal_bug_on
头文件清单
功能说明
- 条件panic函数,当条件为真时触发系统异常
- 支持nonos系统
- 内部通过向地址0写入触发异常指令,使系统进入异常状态
- 使用内部标志位防止重复触发异常
前置条件
- 仅在nonos系统下可用
入参
名称 参数类型 详细说明 约束取值范围 condition unsigned char 条件判断值 0:不触发异常;非0:触发系统异常
osal_flush_cache
头文件清单
功能说明
- 刷新CPU DCache,将数据缓存写回内存
- 支持liteos系统
- 在DMA传输等需要Cache一致性操作的场景下调用
前置条件
- 仅在liteos系统下可用
参考案例
src/drivers/drivers/driver/spi/spi.c#osal_flush_cache