1. 14 10月, 2021 1 次提交
  2. 26 9月, 2021 1 次提交
  3. 06 9月, 2021 1 次提交
  4. 10 8月, 2021 1 次提交
    • H
      feat: 支持native动态加载组件 · d7538340
      Haryslee 提交于
      1.【需求描述】
      动态库开发部分:
      gcc的sample code。
      提供生成暴露接口生成机制,并允许产品新增需要暴露的接口。
      提供可以判断库允许资源大小的能力,并提供相关工具辅助开发者确定开发的库要求的资源是否可以满足。
      
      动态库运行部分:
      提供elf load的api,可以加载指定路径下的库,并完成符号重映射等运行准备。
      提供elf 暴露符号调用的api,用于调用库的api。
      elf加载&链接异常时,有明确错误记录,返回明确错误类型。
      提供elf 卸载的api。
      
      2.【方案描述】
      (1) 通过灌段的形式记录需要导出符号的地址信息,用于暴露内核对外的接口,在加载链接器中通过查询
      对应的符号信息获取符号地址。
      (2) 加载链接时,解析共享库并将共享库中可加载段通过文件系统读入内存中,并对共享库中未定义的、
      需要重定位的符号进行重定位。需要调用符号时,根据符号名通过哈希表即可查询共享库提供的对应符号
      的地址。
      
      BREAKING CHANGE:
      新增4个对外接口,声明在los_dynlink.h文件中,分别为:
      (1) LOS_DynlinkInit: 动态加载模块初始化。
      (2) LOS_SoLoad: 加载指定路径的共享库。
      (3) LOS_FindSym: 根据共享库句柄查找指定符号。
      (4) LOS_SoUnload: 卸载共享库。
      
      close #I418HJ
      Signed-off-by: NHaryslee <lihao189@huawei.com>
      Change-Id: I7669b7ef20096294f9d1094c85ac6602fefad354
      d7538340
  5. 30 7月, 2021 1 次提交
    • L
      feat: L0 支持Trace · 56c93a64
      LiteOS2021 提交于
      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: NLiteOS2021 <dinglu@huawei.com>
      56c93a64