zhangfanfan2
f51d675fee
fix: LOS_Panic接口中增加需要增加LOS_BackTrace(),方便定位主动异常位置
...
close: #I4IGGY
Signed-off-by: zff <zhangfanfan2@huawei.com>
2021-11-30 07:24:29 +00:00
LiteOS2021
7b838e8a7b
feat: 支持Lms
...
1.【需求描述】:
支持内核态堆内存非法访问检测,包括:越界访问、double free、释放后使用;支持libc常用高频函数内存检测;支持安全函数内存检测;读写检测可配可裁剪。
2.【方案描述】:
(1).影子内存映射与标记
(2).编译器使能-fsanitize=kernel-address 自动插桩检测点
(3).实时校验影子内存的合法性;
(4).错误访问打印回溯栈
BREAKING CHANGE: 新增支持API:
LOS_LmsCheckPoolAdd使能检测指定内存池
LOS_LmsCheckPoolDel不检测指定内存池
LOS_LmsAddrProtect为指定内存段上锁,不允许访问
LOS_LmsAddrDisableProtect去能指定内存段的访问保护
Close #I4HYBG
Signed-off-by: LiteOS2021 <dinglu@huawei.com>
Change-Id: Ia356a003088b9df37df667ea8ba91c80f5a41967
2021-11-27 11:31:12 +08:00
Caoruihong
7e673430dc
feat(build): support Kconfig
...
Kconfig usages are the same with liteos_a
Signed-off-by: Caoruihong <crh.cao@huawei.com>
Change-Id: I9aacbb69da88d5427cced89d1a49cb1041afa998
2021-11-05 12:18:04 +08:00
LiteOS2021
afbc9a593b
fix: 优化trace buffer初始化,删除swtmr 桩中的无效参数
...
close #I4DPR7
Signed-off-by: LiteOS2021 <dinglu@huawei.com>
2021-10-14 09:48:49 +08:00
kenneth
f7d26b8e12
fix: gcc编译testsuite编译问题修复
...
修复It_los_mem.h中没有定义LOS_DLNK_NODE_HEAD_SIZE、MIN_DLNK_POOL_SIZE,编译告警等问题。
close #I4DAOU
Signed-off-by: kenneth <zhushangyuan@huawei.com>
2021-10-11 14:30:51 +08:00
zhushengle
0fb49d4422
fix: 修复risc-v异常时,异常信息混乱且backtrace无法输出的问题
...
1.修复risc-v backtrace无法输出的问题
异常时未将fp传入,且backtrace校验不足,容易导致再次异常
2.优化task 输出信息格式
3.shell中task命令代码重复
4.OSBackTraceInit 拼写有误
Close #I4BPHX:riscv32_virt 异常时无法输出backtrace信息
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: I141d5e7808fc967d846f425422f5dcf2ac01d1d1
2021-09-28 11:39:42 +08:00
Haryslee
d75383400e
feat: 支持native动态加载组件
...
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: Haryslee <lihao189@huawei.com>
Change-Id: I7669b7ef20096294f9d1094c85ac6602fefad354
2021-08-10 20:26:40 +08:00
openharmony_ci
8f5cefe41a
!225 fix: 在内核初始化前期启动tick timer
...
Merge pull request !225 from zhushengle/tick
2021-07-31 02:59:35 +00:00
LiteOS2021
56c93a641b
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>
2021-07-30 09:29:37 +08:00
zhushengle
b3841ed1dd
fix: 在内核初始化前期启动tick timer
...
解决系统未初始化完成前无timer可用的问题。
Close #I410F0
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: I3799b9b0ff03cb1dfe80a97816a484df28ae49fd
2021-07-21 10:02:42 +08:00
arvinzzz
3c48951857
fix: 清理残留无效的trace代码
...
1. 删除残留无用的trace代码
2. 调整los_error.h中失效的错误类型定义
3. 整理los_config.h中的特性控制宏
close: #I3ZMB4
Signed-off-by: arvinzzz <zhaotianyu9@huawei.com>
Change-Id: I9f03c486b54ae66308f0dac1aa003dd2a5ef5b84
2021-07-13 11:31:32 +08:00
zhushengle
558ce14bec
feat: L0 支持低功耗框架
...
1.【需求描述】
L0 支持低功耗投票框架, 使内核与应用、驱动分离开,通过注册及投票机制控制系统的低功耗模式,
减低系统功耗,提升设备电池寿命。
2.【方案描述】
(1).提供注册机制,使驱动与内核分离
(2).提供投票机制,判断系统运行模式
(3).记录持锁设备,便于回溯
进入:系统运行进入idle任务时判断当前的功耗模式,如果上层应用未对当前功耗模式(deep和shutdown)
持锁,则系统准备进入当前模式,首先所有设备依次进入当前模式,如果有设备进入当前模式失败,则恢复
已进入当前模式的所有设备,并且功耗模式变为normal模式;设备依次进入当前功耗模式后cpu再进入当前
功耗模式。
恢复:功耗模式为deep时,需要恢复逻辑,时系统恢复运行。当有中断出发时,系统会退出低功耗模式,
恢复顺序为:首先cpu先恢复,然后设备依次恢复。
BREAKING CHANGE:
1.原调度中基于tick timer的低功耗扩展和当前的pm模块合并,删除原对外接口LOS_SchedSleepInit,
变为pm模块统一提供的LOS_PmRegistered接口.
2.原来在arch los_timer.h下提供的低功耗模式为枚举LOS_SysSleepEnum,其中OS_SYS_NORMAL_SLEEP
和OS_SYS_DEEP_SLEEP不符合对外定义,统一修改为LOS_SYS_NORMAL_SLEEP和LOS_SYS_DEEP_SLEEP,
并移至los_pm.h中.
3.VOID HalEnterSleep(LOS_SysSleepEnum sleep) 变更为UINT32 HalEnterSleep(VOID).
Close #I3UDNV
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: Id5382c42c8055ba7850895a3f575130a73e38a65
2021-06-22 13:15:06 +08:00
kenneth
a0a32188ff
update: rename LOS_BackTraceInit
...
change function name LOS_BackTraceInit and involve it in los_init.c when macro is not set to 0
close https://gitee.com/openharmony/kernel_liteos_m/issues/I3SYQQ
Signed-off-by: kenneth <459864689@qq.com>
2021-06-16 08:51:00 +08:00
zhushengle
793d2139b2
fix:Solution of conflict.
...
Close #I3IK07
Change-Id: I6913691a28c90b54fbda233209d43b981884f10c
2021-04-20 14:56:26 +08:00
Caoruihong
3cea0e42b1
remove __cplusplus guards in .c files
...
Change-Id: Ie25b83a42d3ca35c3a6d624ef01f425a85957d7f
2021-04-19 18:19:28 +08:00
zhushengle
f685eeb97d
IssueNo:#I3IK07
...
Description:liteos_m scheduling optimization and low power design.
Sig:kernel
Feature or Bugfix:Feature
Binary Source:No
Change-Id: If913b673c9b69039b51ca416be0a77ebccf2773b
2021-04-13 21:48:04 +08:00
arvinzzz
62caa74382
Description: add hook framework
...
Change-Id: I45c37c3c92e74e676818e713fa46b3a9fe970e68
2021-04-01 11:26:49 +08:00
mamingshuai
778c8b9930
update openharmony 1.0.1
2021-03-11 20:30:40 +08:00
huangjieliang
25b432927c
Description: Sync liteos_m to OpenHarmony.
...
Reviewed-by: likailong
2021-01-30 18:05:13 +08:00
zhushengle
e12055cfcc
修复CPUP编译失败问题
2021-01-20 11:07:55 +08:00
Caoruihong
1405111aa9
Description: refactor
...
Reviewed-by: likailong
2020-12-16 17:30:08 +08:00
likailong
72c4acf01e
Description: liteos-m refactoring
...
Reviewed-by: wangmihu, zhushengle
2020-12-02 19:40:34 +08:00
l00278955
07d25a8ae8
Description: liteos-m refactoring
...
Reviewed-by: liulei, shenwei
Change-Id: I7baba352c02b78aefc81fc5eca000d840d3b2fe3
2020-11-13 09:55:39 +08:00