1. 14 3月, 2022 1 次提交
    • Y
      fix: 修复3.1代码检视中的问题 · bcd177bb
      yinjiaming 提交于
      【背景】
      3.1 代码检视中有一些问题需要修改
      
      【修改方案】
      在README 中添加了文档链接,更改了非可执行文件的权限
      
      【影响】
      对现有的产品编译不会有影响。
      Signed-off-by: Nyinjiaming <yinjiaming@huawei.com>
      Change-Id: I25eb1a2bfcbfdf7bc40b0516bcf9262c2d67f8b4
      bcd177bb
  2. 28 1月, 2022 1 次提交
  3. 31 12月, 2021 1 次提交
    • Z
      feat: 内核提供tick timer框架,支持多架构多平台通用化 · f635450d
      zhushengle 提交于
      背景:
            当前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: Nzhushengle <zhushengle@huawei.com>
      Change-Id: I83ad0bdf303904f0e73f808b57b60183619fddcd
      f635450d
  4. 25 12月, 2021 1 次提交
    • L
      feat: synchronizing arch api · 04bf3a68
      LiteOS2021 提交于
      命名规范:修改少量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: NLiteOS2021 <dinglu@huawei.com>
      04bf3a68
  5. 16 11月, 2021 1 次提交
  6. 12 7月, 2021 1 次提交
  7. 26 4月, 2021 1 次提交
  8. 21 4月, 2021 1 次提交
  9. 11 3月, 2021 1 次提交
  10. 16 12月, 2020 1 次提交
  11. 02 12月, 2020 1 次提交
  12. 13 11月, 2020 1 次提交
  13. 08 9月, 2020 1 次提交