feat: L0 支持Trace

1.【需求描述】
 L0 支持Trace,提供两种工作模式:在线模式、离线缓存模式, 用于按时间线追踪系统事件,如任务切换、中断、ipc等。
2.【方案描述】
 (1).在内核模块预置静态代码桩
  (2).触发桩后,收集系统上下文信息
  (3).离线模式则写入内存,用户可通过dump导出;
  (4).在线模式通过pipeline对接IDE进行可视化解析和展示;

BREAKING CHANGE:
1.新增一系列trace的对外API,位于los_trace.h中.
LOS_TRACE_EASY简易插桩
LOS_TRACE标准插桩
LOS_TraceInit配置Trace缓冲区的地址和大小
LOS_TraceStart开启事件记录
LOS_TraceStop停止事件记录
LOS_TraceRecordDump输出Trace缓冲区数据
LOS_TraceRecordGet获取Trace缓冲区的首地址
LOS_TraceReset清除Trace缓冲区中的事件
LOS_TraceEventMaskSet设置事件掩码,仅记录某些模块的事件
LOS_TraceHwiFilterHookReg注册过滤特定中断号事件的钩子函数

Close #I41Y9Y

Signed-off-by: LiteOS2021 <dinglu@huawei.com>
This commit is contained in:
LiteOS2021
2021-07-22 15:26:55 +08:00
parent ba27241b02
commit 56c93a641b
26 changed files with 2722 additions and 24 deletions

View File

@@ -613,6 +613,52 @@ extern UINT8 *m_aucSysMem0;
#define LOSCFG_DEBUG_HOOK 0
#endif
#if (LOSCFG_DEBUG_HOOK == 1)
#ifndef LOSCFG_KERNEL_TRACE
#define LOSCFG_KERNEL_TRACE 0
#endif
#endif
#if (LOSCFG_KERNEL_TRACE == 1)
#ifndef LOSCFG_TRACE_FRAME_MAX_PARAMS
#define LOSCFG_TRACE_FRAME_MAX_PARAMS 3
#endif
#ifndef LOSCFG_TRACE_FRAME_EVENT_COUNT
#define LOSCFG_TRACE_FRAME_EVENT_COUNT 0
#endif
#ifndef LOSCFG_RECORDER_MODE_OFFLINE
#define LOSCFG_RECORDER_MODE_OFFLINE 1
#endif
#ifndef LOSCFG_RECORDER_MODE_ONLINE
#define LOSCFG_RECORDER_MODE_ONLINE 0
#endif
#if (!(LOSCFG_RECORDER_MODE_OFFLINE ^ LOSCFG_RECORDER_MODE_ONLINE))
#error One of LOSCFG_RECORDER_MODE_OFFLINE and LOSCFG_RECORDER_MODE_ONLINE should be set to 1 and only.
#endif
#ifndef LOSCFG_TRACE_CLIENT_INTERACT
#define LOSCFG_TRACE_CLIENT_INTERACT 1
#endif
#ifndef LOSCFG_TRACE_BUFFER_SIZE
#define LOSCFG_TRACE_BUFFER_SIZE 2048
#endif
#ifndef NUM_HAL_INTERRUPT_UART
#define NUM_HAL_INTERRUPT_UART 0xff
#endif
#ifndef OS_TICK_INT_NUM
#define OS_TICK_INT_NUM 0xff
#endif
#endif
/* =============================================================================
PM module configuration
============================================================================= */