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 |
houpengfei
|
1e5aeb9eed
|
fix:当前仓代码编译告警的问题
Signed-off-by: houpengfei <houpengfei@talkweb.com.cn>
|
2022-01-19 16:11:39 +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 |
openharmony_ci
|
c2d3518c42
|
!538 支持pipe管道通信机制以及poll多文件描述符检测接口
Merge pull request !538 from JerryH/pipe
|
2022-01-18 10:29:15 +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 |
wangchen
|
1c605a338a
|
fix: OsGetAllTskInfo调用和异常时无任务回调函数地址
【背景】OsGetAllTskInfo调用和异常时无任务回调函数地址
【修改方案】
1,新增tskinfo内容
【影响】
对现有的产品编译不会有影响。
re #I4MG2T
Signed-off-by: wangchen <wangchen64@huawei.com>
|
2022-01-15 08:14:53 +00: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 |
zhushengle
|
ae02afc850
|
fix: tick timer时钟频率赋值修改为运行时赋值
OS_SYS_CLOCK 宏由产品定义,该宏可能为函数,在编译时赋值无法覆盖该场景
Close #I4PGUR
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: I60e3f4fcd8f94b26c23cc88e0622408a24fbebe2
|
2022-01-05 15:51:11 +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 |
ou-yangkan
|
c082d77f55
|
fix:Fix spelling errors
Signed-off-by: ou-yangkan <519689417@qq.com>
|
2021-12-20 09:35:58 +08:00 |
openharmony_ci
|
d03b490d3d
|
!462 OsMuxInit函数中增加对owner成员的初始化
Merge pull request !462 from fangye945a/master
|
2021-12-15 02:34:24 +00:00 |
openharmony_ci
|
939414ea9a
|
!456 fix: tick中断处理时,无挂起任务时应更新当前运行任务的时间片, 并触发一次调度
Merge pull request !456 from zhushengle/tick
|
2021-12-15 01:57:10 +00:00 |
fangye
|
d1f7b8e465
|
OsMuxInit函数中增加对owner成员的初始化
Signed-off-by: fangye <fangye@talkweb.com.cn>
|
2021-12-14 22:45:29 +08:00 |
suzongyao
|
eff6b5533c
|
fix: 解决kernel目录下一些函数入参过剩导致编译错误的问题
Signed-off-by: suzongyao <suzongyao@talkweb.com.cn>
|
2021-12-13 17:15:26 -08:00 |
kenneth
|
ab886d848a
|
feat: 低内存资源回收low memory killer
低内存资源回收特性,支持维护可杀低重要任务,当高内存任务申请不到足够内存时,临时释放低重要性的任务来释放内存来满足高内存任务正常运行;
当高内存任务退出运行时,自动恢复被杀的低重要性任务。设计文档归档位置 https://gitee.com/rtos_yuan/lmk/tree/design/
BREAKING CHANGE: 增加低内存资源回收注册相关接口LOS_LmkOpsNodeRegister、LOS_LmkOpsNodeUnregister和内存资源释放和任务恢复接口LOS_LmkTasksKill和LOS_LmkTasksRestore.
close #I4ID0M
Signed-off-by: kenneth <zhushangyuan@huawei.com>
|
2021-12-13 12:07:33 +08:00 |
zhushengle
|
ea12d40caf
|
fix: tick中断处理时,无挂起任务时应更新当前运行任务的时间片, 并触发一次调度
Close #I4LRZG
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: I4472fb50c775b832688aa7a555498901a80e2999
|
2021-12-13 11:37:50 +08:00 |
openharmony_ci
|
4a95944fc5
|
!446 支持删除已经超时但还在队列中未执行的软件定时器
Merge pull request !446 from JerryH/swtmr
|
2021-12-09 03:10:36 +00:00 |
JerryH
|
ecce17ea48
|
fix: 解决定时器超时但还在队列中无法删除的问题
利用每次创建时,软件定时器timerId都是唯一的(0~0xffffffff循环),在超时写队列时,同时记录软件定时器id,删除的时候更新软件定时器id,那么在处理软件定时器前,
通过队列中记录的id获取软件定时器控制块,如果控制块的id不等于记录的id,那么说明该软件定时器被删除过,将不执行对应回调函数,表现为删除该定时器。
BREAKING CHANGE: SwtmrHandlerItem结构体新增swtmrID字段,用于标识超时队列中软件定时器id
Close #I4LFVD
Signed-off-by: JerryH <huangjieliang@huawei.com>
Change-Id: I716176f177c4bc07adb348936d5568fbadcbebe7
|
2021-12-08 15:27:49 +08:00 |
zhushengle
|
d7c0059dc4
|
fix: 调度中将pm相关的部分用LOSCFG_KERNEL_PM包含
Close #I4L00F
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: I0dbe0954dcb881c0079677c215aceb099d6d1b94
|
2021-12-06 19:12:55 +08:00 |
zhangfanfan2
|
f51d675fee
|
fix: LOS_Panic接口中增加需要增加LOS_BackTrace(),方便定位主动异常位置
close: #I4IGGY
Signed-off-by: zff <zhangfanfan2@huawei.com>
|
2021-11-30 07:24:29 +00:00 |
openharmony_ci
|
d0d51b4a29
|
!393 feat: 支持Lms轻量级地址消毒
Merge pull request !393 from LiteOS/lms
|
2021-11-29 14:22:21 +00:00 |
zhushengle
|
91903a3716
|
fix: 修正部分编码风格问题
Close #I4K8M7
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: If34d5c632cbb06f639434d8c35fb226a0253f4a7
Signed-off-by: zhushengle <zhushengle@huawei.com>
|
2021-11-29 14:22:39 +08: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 |
openharmony_ci
|
2ad9dc0eac
|
!426 feat: 调度、任务及pm解耦
Merge pull request !426 from zhushengle/pm
|
2021-11-27 02:08:29 +00:00 |
zhushengle
|
cc8a794229
|
feat: 调度、任务及pm解耦
pm中冻结线程的操作,融合至OsSchedSuspend和OsSchedResume,
使得调度模块提供对应完整的方法给任务模块,做到之间的相互解耦,
方便其它调度算法的融入。
Close #I4JTN6
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: Ifde7077166a2fe67e7246fa68f777844640d67db
|
2021-11-25 16:54:02 +08:00 |
kenneth
|
ad18026a59
|
fix: 在头文件中补充LOSCFG_MEM_FREE_BY_TASKID函数的声明
LOSCFG_MEM_FREE_BY_TASKID函数在头文件kernel\include\los_memory.h中没有声明,使用会有警告,补充声明该函数。
close #I4JBOV
Signed-off-by: kenneth <zhushangyuan@huawei.com>
|
2021-11-22 20:40:32 +08:00 |
Caoruihong
|
201da62e1f
|
chore: move kernel/arch to arch
Signed-off-by: Caoruihong <crh.cao@huawei.com>
Change-Id: I0f0b6f5cff967c47acf58be133a12a0fd98f4643
|
2021-11-16 00:45:24 +08:00 |
openharmony_ci
|
942c614995
|
!371 支持Kconfig配置
Merge pull request !371 from Caoruihong/kconfig
|
2021-11-11 06:04:28 +00:00 |
Caoruihong
|
4546ff92f7
|
chore: clean unused files
Signed-off-by: Caoruihong <crh.cao@huawei.com>
Change-Id: I1ebc5d066a854f502c9f5e31b7acab8d8cdb69b1
|
2021-11-09 22:06:44 +08:00 |
zhushengle
|
3e569bac58
|
fix: 修复cortex-m系列系统提供的timer在低频下时间不准的问题
触发场景:
cpu主频比较高,timer频率较低时,当SysTick->VAL == 0时,
触发tick中断,在中断中系统将当前周期累加到基准时间里,在中
断结束更新tick响应时间时,会更新系统基准时间(为了让时间更
加准确)此时由于SysTick->VAL任然等于0,接口HalGetTickCycle
返回的仍然是当前周期,导致该周期被累加了两次。
解决方案:
接口HalGetTickCycle在SysTick->VAL == 0时返回0.
因为SysTick->VAL == 0时,必然会触发tick中断,周期
的累加是由中断处理的,此时只需要返回0即可。
Close #I4HBGR
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: Iba6e8799b0ae851fc94aa23867b2360a4245994d
|
2021-11-08 14:49:52 +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
|
454c234512
|
!354 m4核在任务中异常时backtrace使用的是MSP所在的栈,而不是PSP所在的栈
Merge pull request !354 from zhangfanfan2/exc
|
2021-10-27 13:51:47 +00:00 |
zff
|
3e8aea224e
|
fix: m4核在任务中异常时backtrace使用的是MSP所在的栈,而不是PSP所在的栈
m4核开启浮点运算时,异常处理流程未将浮点压栈,导致异常上下文信息错位,
进而导致backtrace时使用的SP值错误,从而出现backtrace时使用的栈信息不对。
close: #I4D7GE
Signed-off-by: zff <zhangfanfan2@huawei.com>
Change-Id: If7d5198d1f808de4f1cd9c2bc5c6f68185a4ffac
|
2021-10-27 11:18:57 +08:00 |
openharmony_ci
|
844c5952ed
|
!356 系统pend类接口未对软件定时器任务进行限制,容易引发软件定时器任务非正常挂起,出现响应不及时的问题。
Merge pull request !356 from zhangfanfan2/swtmr
|
2021-10-26 11:19:31 +00:00 |
openharmony_ci
|
3fefeba1f0
|
!362 fix: 修复los_interrupt.c文件中HalHwiInit函数里未使能未对齐异常问题
Merge pull request !362 from kenneth/unaligned
|
2021-10-26 06:11:22 +00:00 |
kenneth
|
2da043ce16
|
fix:修复Fault异常模块中FPU宏等问题
去掉不必要的宏判断__FPU_PRESENT;参数变量名称 uwPid改为pid,和函数HalExcHandleEntry的参数保持一致
close #I4D575
Signed-off-by: kenneth <zhushangyuan@huawei.com>
|
2021-10-20 16:49:43 +08:00 |
openharmony_ci
|
fe68a93ded
|
!355 修复qemu和csky编译使用问题
Merge pull request !355 from LiteOS/master
|
2021-10-20 08:13:47 +00:00 |
kenneth
|
c51df7a94c
|
fix: los_exc.S中_ExcInMsp主栈中异常处理函数中异常返回类型错误
修复los_exc.S中_ExcInMsp主栈中异常处理函数中异常返回类型错误
close #I4EJI4
Signed-off-by: kenneth <zhushangyuan@huawei.com>
|
2021-10-19 20:01:50 +08:00 |
kenneth
|
d32e25f3ae
|
fix: 修复los_interrupt.c文件中HalHwiInit函数里未使能未对齐异常问题
修复los_interrupt.c文件中HalHwiInit函数里未使能未对齐异常问题
close #I4EJGR
Signed-off-by: kenneth <zhushangyuan@huawei.com>
|
2021-10-19 19:45:24 +08:00 |
zff
|
c886629e27
|
fix:系统pend类接口未对软件定时器任务进行限制,容易引发软件定时器任务非正常挂起,
出现响应不及时的问题
close: #I44CI9
Signed-off-by: zff <zhangfanfan2@huawei.com>
Change-Id: I6aa612f3c34eef274eaa0c98efed0a3c4736de6e
|
2021-10-18 16:35:51 +08:00 |
LiteOS2021
|
f2f8a865f0
|
修复qemu和csky编译使用问题
Signed-off-by: LiteOS2021 <dinglu@huawei.com>
|
2021-10-18 13:34:48 +08:00 |
openharmony_ci
|
c68b67a4e3
|
!351 fix: 调用LOS_TaskDetach操作已退出的joinable的任务时,未正确回收该任务
Merge pull request !351 from zhushengle/detach
|
2021-10-15 07:40:54 +00:00 |
zhushengle
|
49c93b37c5
|
fix: 调用LOS_TaskDetach操作已退出的joinable的任务时,未正确回收该任务
Close #I4DZL7
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: Iac88818317c07807d0636712025f2c75b3b1f766
|
2021-10-15 10:56:02 +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 |
openharmony_ci
|
badf1e9557
|
!341 fix: csky等新增模块的HalTickStart函数定义和实现不一致
Merge pull request !341 from kenneth/HalTickStart
|
2021-10-11 09:19:08 +00:00 |
openharmony_ci
|
68a3f9e6dd
|
!342 fix: 移除los_arch_interrupt.h文件中冗余声明的函数VOID OsExcInit(VOID)
Merge pull request !342 from kenneth/OsExcInit
|
2021-10-11 09:18:26 +00:00 |
openharmony_ci
|
6c1587bf03
|
!343 fix: gcc编译testsuite编译问题修复
Merge pull request !343 from kenneth/testsuite
|
2021-10-11 09:17:47 +00:00 |