Commit Graph

750 Commits

Author SHA1 Message Date
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 3c19b017fc
!522 fix: 修复pthread_create相关问题
Merge pull request !522 from zhushengle/pthread
2022-01-04 11:16:07 +00:00
zhushengle cd949ddae0 fix: 修复pthread_create相关问题
1. 系统调度未起时,调用pthread_create失败
  系统调度未起时,系统无运行任务,获取当前线程失败
2. 先创建任务再给任务赋值name,且未加锁保护,和shell存在静态

Close #I4P78J

Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: I2570dcf90953ced06400a0a22193cc81719fb546
2022-01-04 15:06:13 +08:00
openharmony_ci 67f8149640 !480 feat: 内核提供tick timer框架,支持多架构多平台通用化
Merge pull request !480 from zhushengle/timer
2022-01-04 01:12:29 +00:00
openharmony_ci 9ebad7d291 !521 fix: 修复newlib缺省PTHREAD_KEYS_MAX 问题
Merge pull request !521 from zhushengle/key
2021-12-31 08:51:16 +00:00
zhushengle 65f04bf093 fix: 修复newlib缺省PTHREAD_KEYS_MAX 问题
Close #I4OX47
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: I4c6b07a77dca5eb5b24f462e639ff173f06d5da0
2021-12-31 15:38:18 +08:00
openharmony_ci 1af387098f !520 pm codex告警清零
Merge pull request !520 from zhushengle/codex
2021-12-31 07:22:52 +00:00
zhushengle 96663805ec fix: pm codex告警清零
Close #I4OWPE
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: I07f6db919062090b917ce991198f769032365472
2021-12-31 14:55:20 +08: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
openharmony_ci 909a18ec8f !510 feat: 支持posix线程私有数据能力
Merge pull request !510 from zhushengle/pthread_key
2021-12-30 06:34:28 +00:00
openharmony_ci bd0ae07bcf !511 fix: 公版gcc编译内核,调用calloc崩溃
Merge pull request !511 from Zhaotianyu/1228newlib_calloc
2021-12-30 01:12:29 +00:00
openharmony_ci ad6bdba415 !460 fix: 中断向量表对齐大小支持可配置
Merge pull request !460 from kenneth/align
2021-12-29 00:55:39 +00:00
zhushengle a856303b9c feat: 支持posix线程私有数据能力
BREAKING CHANGE:
  int pthread_key_create(pthread_key_t *k, void (*dtor)(void *))
  int pthread_key_delete(pthread_key_t k)
  int pthread_setspecific(pthread_key_t k, const void *x)
  void *pthread_getspecific(pthread_key_t k)

Close #I4ODEB
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: I60ce26c20d1e2033922d2d1b01d73fc8938c8019
2021-12-28 19:55:10 +08:00
arvinzzz 8d0ced2069 fix: 修复公版gcc编译内核,调用calloc崩溃
使用内核提供的calloc接口替换工具链的实现

close: #I4OFG6

Signed-off-by: arvinzzz <zhaotianyu9@huawei.com>
Change-Id: Ia979f2b613c8bab89b5df3aa4bd340f6cc6fabd7
2021-12-28 16:12:26 +08:00
kenneth cf9c8387e3 fix: 中断向量表对齐大小支持可配置
根据板端实际设置中断向量表对齐大小,支持可配置。

fix #I4M20E

Signed-off-by: kenneth <zhushangyuan@huawei.com>
2021-12-28 09:52:13 +08:00
openharmony_ci 5a7fabe4f8 !498 fix: liteos_kernel_only=true编译内核报错
Merge pull request !498 from kenneth/mk
2021-12-28 00:59:20 +00:00
openharmony_ci d7fd58b986 !496 fix the compile warning
Merge pull request !496 from laojr1/master
2021-12-28 00:58:24 +00:00
openharmony_ci 28d0761b85 !505 解决m核开启ipv6功能的编译的问题
Merge pull request !505 from xieshen9527/master
2021-12-27 06:23:03 +00:00
zhangyang c7843926b8 refactor: 解决m核开启ipv6功能的编译
close #I4NOIP

Signed-off-by: zhangyang <zhangyang349@huawei.com>
2021-12-27 12:00:30 +08:00
openharmony_ci 900f183260 !504 在arch\csky\v2\gcc\los_exc.S中添加IrqEntry函数实现
Merge pull request !504 from ouyk/master
2021-12-27 03:38:51 +00:00
wcc0 79d42b7976 在arch\csky\v2\gcc\los_exc.S中添加IrqEntry函数实现
Signed-off-by: wcc0 <917033401@qq.com>
2021-12-27 11:10:45 +08:00
openharmony_ci 85a1ce43c6 !493 feat:Synchronizing arch api
Merge pull request !493 from LiteOS/master
2021-12-25 10:42:15 +00: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
kenneth adc21052b2 fix: liteos_kernel_only=true编译内核报错
修复单独编译内核报错的问题

close #I4O204

Signed-off-by: kenneth <zhushangyuan@huawei.com>
2021-12-25 14:10:01 +08:00
老家荣 cbcd297a3a chore: 解决 cmsis_liteos2.c:115:23: warning 编译告警
Signed-off-by: laojr1 <laojr1@midea.com>
2021-12-23 17:55:11 +08:00
openharmony_ci 4334b3e18b !473 fix:修复拼写错误
Merge pull request !473 from ouyk/master
2021-12-22 02:46:46 +00:00
openharmony_ci b998978561 !474 fix: 修复L0_Emulator 门禁高概率失败的问题
Merge pull request !474 from zhushengle/Emulator
2021-12-20 08:18:56 +00:00
zhushengle 7ad2f62a03 fix: 修复L0_Emulator 门禁高概率失败的问题
内存测试用例002中对全局的内存池进行了重复申请释放操作,
释放之后全局的测试内存池为无效的野指针,而该内存已被网络
分配并使用,从而导致出现踩内存的现象。

Close #I4NB0N

Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: Iffd631fcdaa020afefd108c189850ef3e75d1e4b
2021-12-20 15:34:08 +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 7e9d84362f !442 M核posix接口fs模块用例完善
Merge pull request !442 from wangchen/posix_test
2021-12-19 08:12:27 +00:00
openharmony_ci b56c6e86d4 !470 fix: 补充newlib对ipv6的支持
Merge pull request !470 from Zhaotianyu/1218newlib_ipv6
2021-12-18 11:58:52 +00:00
arvinzzz f7400fbcb2 fix: 添加newlib对ipv6的支持
补充业务中需要的ipv6相关宏定义

close: #I4M1DB

Signed-off-by: arvinzzz <zhaotianyu9@huawei.com>
Change-Id: I6835fb0673874ed8efff01c8e4f79c2d64ea0d46
2021-12-18 19:35:10 +08:00
openharmony_ci e6dd09733d !469 修复posix的Kconfig
Merge pull request !469 from Zhaotianyu/1217Kconfig_fix
2021-12-17 04:05:20 +00:00
arvinzzz bb04582910 fix: 修复Kconfig信息错误
close: #I4MZ1F

Signed-off-by: arvinzzz <zhaotianyu9@huawei.com>
Change-Id: I9216b28ab5b2a43d77512d529a6a6637998e19ea
2021-12-17 11:35:04 +08:00
openharmony_ci 41a3cb0233 !468 fix:修复异常处理入口条件判断范围错误的问题
Merge pull request !468 from 王树林/master
2021-12-17 03:20:15 +00:00
wcc0 d09d46ff75 fix:fix bug of exception
Signed-off-by: wcc0 <917033401@qq.com>
2021-12-17 09:37:03 +08:00
openharmony_ci 6f7ceb3e72 !464 转移csky架构中断入口由device到kernel中
Merge pull request !464 from ouyk/master
2021-12-16 12:03:15 +00:00
ou-yangkan ee79364748 转移csky架构中断入口由device到kernel中
Signed-off-by: ou-yangkan <519689417@qq.com>
2021-12-16 19:43:47 +08:00
openharmony_ci 91e5b3054e !466 修改csky和xtensa架构的g_intCount变量使用
Merge pull request !466 from ouyk/modify_g_intCount
2021-12-16 08:01:06 +00:00
ou-yangkan d6aa3bf44b 修改csky和xtensa架构的g_intCount变量使用
Signed-off-by: ou-yangkan <519689417@qq.com>
2021-12-16 13:50:48 +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
openharmony_ci 12b66edbe3 !459 解决kernel目录下一些函数入参过剩导致编译错误的问题
Merge pull request !459 from 苏宗耀/master
2021-12-14 02:15:40 +00:00
suzongyao eff6b5533c fix: 解决kernel目录下一些函数入参过剩导致编译错误的问题
Signed-off-by: suzongyao <suzongyao@talkweb.com.cn>
2021-12-13 17:15:26 -08:00
openharmony_ci 4b43e360a2 !458 解决_SEM_MAGIC宏定义数据类型错误导致的编译问题
Merge pull request !458 from 苏宗耀/master
2021-12-13 10:14:32 +00:00
szy 58ebbf0a71 fix: 解决宏定义_SEM_MAGIC数据类型错误导致的编译问题
Signed-off-by: suzongyao <suzongyao@talkweb.com.cn>
2021-12-13 01:52:13 -08:00
openharmony_ci 3aff6c572f !434 feat: 低内存资源回收low memory killer
Merge pull request !434 from kenneth/lmk1130
2021-12-13 08:56:26 +00: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