JerryH
8d7468b44c
feature: Support kernel signal and POSIX API.
...
内核支持信号功能,支持注册、屏蔽、等待及触发等操作。
close #I4R72Q
Signed-off-by: JerryH <huangjieliang@huawei.com>
Change-Id: I26fb11a03d1899c6f7e665f0798824c578d592a6
2022-01-20 11:17:40 +08:00
yinjiaming
194ac5898d
fix: 当前仓代码编译告警的问题
...
【背景】
当前仓代码存在编译告警需要处理
【修改方案】
在测试用例中屏蔽了-Werror选项
在对应的代码处添加了相应函数的声明头文件
【影响】
对现有的产品编译不会有影响。
re #I4N50W
Signed-off-by: yinjiaming <yinjiaming@huawei.com>
Change-Id: I7dc1e38105aa3d60f9f991f34f88875cccb48463
2022-01-19 02:27:14 +00:00
JerryH
4890222e7c
feature: Support pipe and poll interfaces.
...
支持pipe管道驱动,支持poll多文件描述符检测接口。
Signed-off-by: JerryH <huangjieliang@huawei.com>
Change-Id: Ida1f29709affbc91a26b8518e4a77b8e5469be19
2022-01-18 16:47:35 +08:00
JerryH
b98aa4eacd
feature: 支持IAR C++ thread_local特性
...
在需要IAR的thread_local特性时,在targets_config.h中包含los_iar_tls.h,覆盖los_config.h的默认定义,使能该特性。
close #I4PTVZ
Signed-off-by: JerryH <huangjieliang@huawei.com>
Change-Id: I92d3f960555f95cb3618dd5e3915824105eb13a4
2022-01-10 20:10:35 +08:00
openharmony_ci
67f8149640
!480 feat: 内核提供tick timer框架,支持多架构多平台通用化
...
Merge pull request !480 from zhushengle/timer
2022-01-04 01:12:29 +00:00
zhushengle
f635450d7c
feat: 内核提供tick timer框架,支持多架构多平台通用化
...
背景:
当前Arch下tick timer的实现依赖于弱函数机制,三方适配时出错及限制较大,且tick
timer作为内核必须模块,未模块化,当前散落在tick和调度等模块中,且当前存在arch依赖
内核,内核也依赖arch的情况,为了解决上述问题,将tick timer模块化,通过提供tick
timer框架实现内核依赖Arch而Arch不依赖内核,并且可以减少对外暴漏的接口,使得三方
适配时更加明确需要实现的接口。
方案描述:
1.tick timer结构
在kernel_liteos_m/arch/include/los_timer.h,中定义结构:
typedef struct {
UINT32 freq;
INT32 irqNum;
UINT32 (*init)(HWI_PROC_FUNC tickHandler);
UINT64 (*getCycle)(UINT32 *period);
VOID (*reload)(UINT64 time);
VOID (*lock)(VOID);
VOID (*unlock)(VOID);
HWI_PROC_FUNC tickHandler;
} ArchTickTimer;
并声明对外获取tick timer的接口:
ArchTickTimer *ArchSysTickTimerGet(VOID)
define LOS_SysTickTimerGet ArchSysTickTimerGet
2.在每个架构下提供默认的tick timer操作:
STATIC ArchTickTimer g_archTickTimer = {
.freq = xxx, 必填
.irqNum = xxx, 必填
.init = xxx, 必填
.getCycle = xxx, 必填
.reload = xxx, 必填
.lock = xxx, 必填
.unlock = xxx, 必填
.tickHandler = NULL, 可选
}
并实现:ArchTickTimer *ArchSysTickTimerGet(VOID) 接口
3.内核los_tick.c中提供对外(其它模块)和公共的tick timer初始化操作函数,
如果用户不想启用系统默认的tick timer,则需要在 "内核初始化之前" 调用接口:
LOS_TickTimerRegister(const ArchTickTimer *timer, const HWI_PROC_FUNC tickHandler)
将用户自己的tick timer或中断处理函数 注册进去。
用户也可以注册自己的中断处理函数(用户不提供,默认使用系统提供的)。
BREAKING CHANGE:
原来版本中每个架构下提供的tick timer相关操作函数为弱函数:
WEAK UINT32 HalTickStart(OS_TICK_HANDLER handler);
WEAK VOID HalSysTickReload(UINT64 nextResponseTime);
WEAK UINT64 HalGetTickCycle(UINT32 *period);
WEAK VOID HalTickLock(VOID);
WEAK VOID HalTickUnlock(VOID);
用户如果需要启用自己的tick timer需要自己实现相关接口(强属性),在 "内核初始化之前" 通过调用:
LOS_TickTimerRegister 接口替换系统默认提供的tick timer相关接口。
无论用户提供的tick timer 还是系统默认提供的,均在内核初始化时启动。
Close #I4N7XV:arch 重构
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: I83ad0bdf303904f0e73f808b57b60183619fddcd
2021-12-31 10:50:33 +08:00
kenneth
cf9c8387e3
fix: 中断向量表对齐大小支持可配置
...
根据板端实际设置中断向量表对齐大小,支持可配置。
fix #I4M20E
Signed-off-by: kenneth <zhushangyuan@huawei.com>
2021-12-28 09:52:13 +08:00
LiteOS2021
04bf3a682f
feat: synchronizing arch api
...
命名规范:修改少量Arch接口,命名规范化调整:
1.修改arch/include下接口声明,所有arch对外提供调用函数均以ArchXX命名
2.提取多个架构均有实现的公共函数声明至arch/include对应头文件中以供外部调用,并修改命名格式为ArchXX
3.修改OS_HWI_WITH_ARG为LOSCFG_PLATFORM_HWI_WITH_ARG并移至los_config.h中
4.typedef VOID (*OS_TICK_HANDLER)(VOID);暂时移至arch/include/los_timer.h中
5.实现atomic原子操作相关接口,位于arch/include/los_atomic.h,arm架构部分与汇编指令相关原子操作接口使用ARCH_ARM宏进行控制是否编译
BREAKING CHANGE: 1.修改arch/include下接口,以ArchXX命名函数
2.提取公共函数声明:ArchAtomicXchg32bits、ArchAtomicDecRet、ArchAtomicCmpXchg32bits
3.新增部分原子操作c内联实现
Close #I4N7XV
Signed-off-by: LiteOS2021 <dinglu@huawei.com>
2021-12-25 18:36:09 +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
openharmony_ci
91bd0c2e2b
!331 fix: OS_TASK_STACK_PROTECT_SIZE undeclared error
...
Merge pull request !331 from kenneth/mpu
2021-09-29 02:50:25 +00: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
kenneth
56e234b300
fix: fix OS_TASK_STACK_PROTECT_SIZE undeclared error
...
当开启LOSCFG_EXC_HARDWARE_STACK_PROTECTION宏时,增加定义OS_TASK_STACK_PROTECT_SIZE宏
close #I4C5RW
Signed-off-by: kenneth <zhushangyuan@huawei.com>
2021-09-28 10:27:52 +08:00
Haryslee
03de7f3745
feat: backtrace for arm9
...
arm9架构支持栈回溯功能
close #I4BMLG
Signed-off-by: Haryslee <lihao189@huawei.com>
Change-Id: Iba30a6853391c4cad3ed59ddfc05ef2530a4de89
2021-09-24 16:56:58 +08:00
lanche1024
8bcab9ab7a
add csky arch support
...
Signed-off-by: LiteOS2021 <dinglu@huawei.com>
2021-09-07 17:11:10 +08:00
lnlan
53117f9f47
feat: 按任务统计已经alloc的内存大小
...
【背景】
m核需补充shell命令,按任务统计已经alloc的内存大小
【修改方案】
1.新增在task命令中,在打印task
info前遍历所有内存节点,统计各任务所占用的内存节
点大小,在打印时将其打出。
2.内存节点中,taskid所占位数随系统最大任务数调整
【影响】
对现有的产品编译不会有影响。
re #I44WNU
Signed-off-by: lanleinan <lanleinan@163.com>
Change-Id: I080b5dd056966784c0752408f9e320ca0e97c7f7
2021-08-28 06:14:34 +00:00
lnlan
c4dc5ab0f8
feat: 完善m核qemu串口驱动,支持shell输入
...
【背景】
m核qemu需完善串口驱动,支持shell输入
【修改方案】
1.完善串口驱动
2.添加shell任务,获取串口输入并下发处理
【影响】
对现有的产品编译不会有影响。
re #I46N7F
Signed-off-by: lanleinan <lanleinan@163.com>
Change-Id: Ib58d4e633081743e64412cb65aa209d3356d6c1c
2021-08-26 01:15:17 +00:00
openharmony_ci
97c4a5813f
!249 堆内存算法支持多段非连续性内存区域
...
Merge pull request !249 from kenneth/multiple_mem
2021-08-17 07:43:18 +00:00
kenneth
0facb0c017
feat: support non-continuous memory regions
...
The multiple non-continuous memory regions are supported when the macro
LOSCFG_MEM_MUL_REGIONS is enabled. The array of the type LOS_MEM_REGION should be defined,
and each array element defines the start address and the length for each memory regions, \
begining from the lower address to the higher memory address.
close #I43XOP
Signed-off-by: kenneth <zhushangyuan@huawei.com>
2021-08-17 09:07:04 +08:00
JerryH
9709d29b87
fix: 增加MPU功能的开关宏,默认关闭
...
close #I3WE0S
Signed-off-by: JerryH <huangjieliang@huawei.com>
Change-Id: Id193fd555877ac0c6b5b43e5dd5ede32531b86c4
2021-08-10 19:27:14 +08:00
zhushengle
2118c84616
fix: tick 动态化计算优化,减小中断执行时间对系统总体时间的影响,保证软件定时器的响应精度。
...
方案描述:
1.周期软件定时器超时添加一个startTime字段,用于记录当前软件定时器的开始计时的时间,
在定时器响应时,开始时间修改为上一次响应的结束时间(消除了中断执行时间对软件定时器
的影响)。
2. 在执行tick中断的过程当中,持有tick动态计算锁,保证在该过程中不会触发tick周期
的计算,在tick中断结束时统一计算设置。 --- 提升tick中断的执行效率
3. 在设置tick周期时,减掉tick中断执行的时间,减小周期动态化带来的时间误差
4.新增LOSCFG_BASE_CORE_TICK_PER_SECOND_MINI配置宏,用于配置tick中断的最小响应精度
Close #I3YGP1
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: Ia53e4accce497bce870557c2c3387ce51fa3fed3
2021-08-09 21:16:22 +08: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
openharmony_ci
0526c14017
!224 feat: 新增LOSCFG_BASE_CORE_TSK_SWITCH_HOOK 宏定义配置
...
Merge pull request !224 from zhushengle/task
2021-07-19 01:37:43 +00:00
zhushengle
39efd6fb30
feat: 新增LOSCFG_BASE_CORE_TSK_SWITCH_HOOK 宏定义配置
...
优化原任务切换对外函数钩子调用为通过宏定义实现
Close #I40Q9O
Change-Id: Ie5ab75d04e2a63cb992be968d25e876fd91ee591
Signed-off-by: zhushengle <zhushengle@huawei.com>
2021-07-15 09:44:03 +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
openharmony_ci
d0efdfc20d
!169 feat: L0支持低功耗投票框架
...
Merge pull request !169 from zhushengle/PM
2021-06-22 11:55:22 +00: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
li_zan
7259289bd9
fix: 修复littlefs编译fs.c缺少头文件件依赖配置+若干musl库的缺失问题+多分区规格宏配置问题
...
close:#I3VT11
Signed-off-by: li_zan <371442490@qq.com>
2021-06-17 17:03:41 +08:00
rtos-lover
b6664e66f1
fix: fix backtrace check issue
...
fix issue that when memleak check is enabled, backtace is not enabled
close https://gitee.com/openharmony/kernel_liteos_m/issues/I3VTKD
Signed-off-by: rtos-lover <zhushangyuan@hotmail.com>
2021-06-16 17:12:41 +08:00
openharmony_ci
468ce69f27
!180 update: rename LOS_BackTraceInit
...
Merge pull request !180 from kenneth/BackTraceInit
2021-06-16 13:45:04 +08:00
openharmony_ci
48067a0596
!178 littlefs三方源码采用GN编译修改上库+默认Mount路径可配置
...
Merge pull request !178 from li_zan/master
2021-06-16 10:58:13 +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
li_zan
bdb614bc2b
fix: littlefs三方源码采用GN编译修改上库
...
close:I3VJ6X
Signed-off-by: li_zan <371442490@qq.com>
2021-06-15 19:56:50 +08:00
JerryH
97a5b6d8dc
Merge branch 'master' of gitee.com:openharmony/kernel_liteos_m into backtrace
2021-06-09 10:41:58 +08:00
YOUR_NAME
ca1792aa4b
feat(liteos_m): support backtrace for riscv
...
Support backtrace for riscv when the compilation option(-fno-omit-frame-pointer) is not turned on.
fix #I3RVXY
Change-Id: Ie7d8a223167e5c540367bc96db646b821dae9fd0
2021-05-25 11:10:28 +08:00
kenneth
16003604a9
fix: fix macro typo
...
change LOSCFG_EXC_HRADWARE_STACK_PROTECTION to LOSCFG_EXC_HARDWARE_STACK_PROTECTION
close https://gitee.com/openharmony/kernel_liteos_m/issues/I3NUX6
2021-05-18 10:02:03 +08:00
YOUR_NAME
c70ef201f3
Add Cortex-m33 TrustZone about IAR
...
close #I3MX1F
Change-Id: I449b01ad7ac714412a26bb9f3a6b723a6c74ca3f
2021-05-11 10:45:52 +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
caffe81339
IssueNo:#I3HGTM
...
Description: Fix some macro definitions of limits.h.
Feature or Bugfix: Bugfix
Binary Source:NA
Change-Id: I419c712f8605f8a0d2d6cb0b6c3831cea0e742e1
2021-04-09 10:05:57 +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
likailong
c766d49a4d
Description: support original vector base address
...
Reviewed-by: shenwei
2021-01-11 11:04:40 +08:00
likailong
5cee04fb0c
Description: support original vector base address
...
Reviewed-by: shenwei
2021-01-08 19:04:35 +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
wenjun
dc16ffa8cb
add OpenHarmony 1.0 baseline
2020-09-08 16:46:24 +08:00