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

@@ -1013,7 +1013,7 @@ VOID *LOS_MemAlloc(VOID *pool, UINT32 size)
} while (0);
MEM_UNLOCK(poolHead, intSave);
OsHookCall(LOS_HOOK_TYPE_MEM_ALLOC, pool, size);
OsHookCall(LOS_HOOK_TYPE_MEM_ALLOC, pool, ptr, size);
return ptr;
}
@@ -1068,7 +1068,7 @@ VOID *LOS_MemAllocAlign(VOID *pool, UINT32 size, UINT32 boundary)
} while (0);
MEM_UNLOCK(poolHead, intSave);
OsHookCall(LOS_HOOK_TYPE_MEM_ALLOCALIGN, pool, size, boundary);
OsHookCall(LOS_HOOK_TYPE_MEM_ALLOCALIGN, pool, ptr, size, boundary);
return ptr;
}