1 Star 0 Fork 533

hawkwolf / kernel_liteos_m

forked from OpenHarmony / kernel_liteos_m 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
CHANGELOG.md 55.02 KB
一键复制 编辑 原始数据 按行查看 历史
Hongjin Li 提交于 2023-04-24 09:38 . fix: 修复文档死链

(2022-03-30)

Bug Fixes

  • c-sky等芯片架构的BUILD.gn优化 (3311d73), closes #I4D129
  • change the sensitive words (8e2248c), closes #I4K7LL
  • cortex-m55栈优化 (59e9c6e), closes #I4SQIQ
  • csky等新增模块的HalTickStart函数定义和实现不一致 (07ab6a5), closes #I4D1HY
  • FD_SETSIZE compatible newlibc (82c6d5f)
  • fix compile warning saying dereference void * pointer (29126a9)
  • gcc编译testsuite编译问题修复 (f7d26b8), closes #I4DAOU
  • Kconfig中打开littlefs选项默认关联打开LOSCFG_SUPPORT_LITTLEFS宏 (b2bcab3), closes #I4ENQ1
  • kernel接口融合,添加/修改kernel函数 (cee9714)
  • L0 pthread_cond_timedwait接口实现存在的几个问题 (2219c32), closes #I4N9P8
  • liteos_kernel_only=true编译内核报错 (adc2105), closes #I4O204
  • los_exc.S中_ExcInMsp主栈中异常处理函数中异常返回类型错误 (c51df7a), closes #I4EJI4
  • los_interrupt.c存在未使用的参数编译出错 (5af4c2e), closes #I4SJPZ
  • LOS_Panic接口中增加需要增加LOS_BackTrace(),方便定位主动异常位置 (f51d675), closes #I4IGGY
  • los_trace.h接口注释错误修正 (693468e), closes #I4CYPZ
  • m4核在任务中异常时backtrace使用的是MSP所在的栈,而不是PSP所在的栈 (3e8aea2), closes #I4D7GE
  • M核posix接口fs模块用例完善 (ee380fb), closes #I4L7BF
  • optimize default configuration (b2e3849), closes #I4FSC9
  • OsGetAllTskInfo调用和异常时无任务回调函数地址 (1c605a3), closes #I4MG2T
  • pm codex告警清零 (9666380), closes #I4OWPE
  • pm模块解冻线程时存在删除空链表且时间片频繁唤醒系统 (9f185b5), closes #I4AKUS
  • posix unittest: posix unittest 融合 (ad6f249)
  • posix: posix兼容回退 (207efc1)
  • posix: posix接口融合,接口规范兼容性修改 (e0b1275)
  • posix接口融合: posix接口融合,接口规范兼容性修改 (4b607fd)
  • posix线程和LOS_TaskCreate任务不兼容,补齐接口防护,防止访问野指针 (60805e1)
  • pr模板补充说明 (7b86f69)
  • ReadMe中无对动态加载模块待加载的共享库的限制说明。 (f86b971), closes #I4ICK8
  • shell 输入不识别命令时内存泄漏 (0245b1a), closes #I4UR9P
  • shell: cat针对大文件无法工作 (d518bad), closes #I4J4TK
  • shell模块task命令踩内存问题修改 (6ffd55d), closes #I4A70V
  • switch inet_addr to a function (b30e913), closes #I4G4I4
  • testsuites: cpup和测试套解耦 (692651f)
  • tick timer时钟频率赋值修改为运行时赋值 (ae02afc), closes #I4PGUR
  • tick中断处理时,无挂起任务时应更新当前运行任务的时间片, 并触发一次调度 (ea12d40), closes #I4LRZG
  • time_func_test_01.c: 修复testTimes测试单板配置LOSCFG_BASE_CORE_TICK_PER_SECOND = 1000的问题 (5c982f1)
  • 中断向量表对齐大小支持可配置 (cf9c838), closes #I4M20E
  • 优化trace buffer初始化,删除swtmr 桩中的无效参数 (afbc9a5), closes #I4DPR7
  • 优化低功耗流程 (c6600d9), closes #I46VXK
  • 修复arch目录调整影响到的target目录下的文件 (d5725b2), closes #I4JM7Z
  • 修复cortex-m系列系统提供的timer在低频下时间不准的问题 (3e569ba), closes #I4HBGR
  • 修复hook层LOS_HOOK_TYPE_SEM_PEND的runningTask入参可能为空 (3fd22ac), closes #I4BU4P
  • 修复irqNum = HwiNumGet()编译错误的问题 (16e87d7), closes #I4S81B
  • 修复Kconfig信息错误 (bb04582), closes #I4MZ1F
  • 修复L0_Emulator 门禁高概率失败的问题 (7ad2f62), closes #I4NB0N
  • 修复liteos-m在iar环境下的编译问题 (4c4784e), closes #I4Q5Q5
  • 修复los_interrupt.c文件中HalHwiInit函数里未使能未对齐异常问题 (d32e25f), closes #I4EJGR
  • 修复newlib缺省PTHREAD_KEYS_MAX 问题 (65f04bf), closes #I4OX47
  • 修复OsQueueMailFree提早释放内存的问题 (ec88d16)
  • 修复pm编译告警导致内核编译失败 (18b0524), closes #I49MIN
  • 修复pthread 编译告警 (cc57f81), closes #I4U16U
  • 修复pthread_create相关问题 (cd949dd), closes #I4P78J
  • 修复pthread_create行为与posix不一致问题 (2b1e5a7), closes #I49W9F
  • 修复readme中文档链接错误 (8ee70a0), closes #I4FD5G
  • 修复risc-v异常时,异常信息混乱且backtrace无法输出的问题 (0fb49d4), closes #I4BPHX
  • 修复shcmd.h需要用宏包起来的问题 (a7a8a62), closes #I45FU2
  • 修复shell 模块存在大量的编译告警及codeCheck。 (e0d8b53), closes #I48V2J
  • 修复任务栈对齐问题及补充posix和cmsis测试用例 (ed863e9)
  • 修复公版gcc编译内核,调用calloc崩溃 (8d0ced2), closes #I4OFG6
  • 修复未使用的参数和类型比较编译报错问题 (21b46e8)
  • 修复调度时间最大值不一致问题 (9f393bc)
  • 修正liteos-m内核README不准确信息 (0e067b2), closes #I4PLWP
  • 修正部分编码风格问题 (91903a3), closes #I4K8M7
  • 内核ERR打印,线程信息,不方便问题定位。 (232fec2), closes #I4DAKM
  • 内源检视问题修复 (c24363b)
  • 删除C文件中无用的__cplusplus (7fe3aad), closes #I4D0YK
  • 删除OsMemboxExcInfoGetSub内存调测方法中多余的赋值语句。 (94db0fe), closes #I4CFNX
  • 去掉没有使用的入参consoleid。 (a627953), closes #I43CVE
  • 去掉编译选项-fno-short-enums (b542aab), closes #I4JY32
  • 取消cpu进入低功耗前开中断操作 (bd39e9e), closes #I4KDP8
  • 告警修复 (7d2fd01)
  • 告警修复 (2d7bf3b)
  • 在头文件中补充LOSCFG_MEM_FREE_BY_TASKID函数的声明 (ad18026), closes #I4JBOV
  • 将curl依赖的函数新增至newlib库 (bd04d9f), closes #I4RG71
  • 将未定义小写"true","false"改为"TRUE","FALSE"。 (9819eb5), closes #I43D20
  • 当前仓代码编译告警的问题 (194ac58), closes #I4N50W
  • 支持硬浮点编译 (988fd85), closes #I48KJP
  • 测试用例任务栈的宏定义重复定义,导致在osTest.h中修改不生效 (ce6cf68)
  • 添加L0 测试门禁 (5c168fc), closes #I4C5R4
  • 添加newlib对ipv6的支持 (f7400fb), closes #I4M1DB
  • 添加文件版权头等信息 (cf4e017), closes #I4BXBH
  • 清除因g_tm变量没有使用引入的编译告警 (9689522), closes #I4LW3H
  • 移除los_arch_interrupt.h文件中冗余声明的函数VOID OsExcInit(VOID) (136952f), closes #I4D9OO
  • 补充net相关头文件 (93f616b)
  • 解决gmtime和localtime接口由于g_tm全局变量导致的竞态问题 (1454b76), closes #I4LW3H
  • 解决los_pm.c:743:19: warning 编译告警 (0c72c8b), closes #I4D4L8
  • 解决定时器超时但还在队列中无法删除的问题 (ecce17e), closes #I4LFVD
  • 解除net对cmsis的依赖,net属于内核模块,不应该依赖内核对外接口 (9982624)
  • 调度中将pm相关的部分用LOSCFG_KERNEL_PM包含 (d7c0059), closes #I4L00F
  • 调用LOS_TaskDetach操作已退出的joinable的任务时,未正确回收该任务 (49c93b3), closes #I4DZL7
  • 针对pr是否同步至release分支,增加原因说明规则 (1ee543d)
  • 队列相关的API实现中,参数的校验不完全,导致程序异常 (eef7c80)

Features

BREAKING CHANGES

  • pthread_create 支持任务栈设置 osThreadNew 支持任务栈设置 TSK_INIT_PARAM_S 结构体添加stackAddr 字段

  • 涉及接口修改: LOS_HwiCreate LOS_HwiDelete

改动内容: 中断处理函数参数类型由HWI_ARG_T统一改为HwiIrqParam,封装原有arg参数及riscv部分实际使用变量pDevId, 这样一方面统一LiteOS接口,也统一了中断处理函数的arg参数 同步LOS_HwiDelete接口入参,新增HWI_IRQ_PARAM_S *irqParam参数,为后续共享中断功能的添加预留

  • 新增接口: LOS_TaskResRecycle LOS_CurrNanosec LOS_MDelay

接口修改: LOS_QueueCreate:第一个入参添加const修饰并增加一种异常情况处理 los_memory.c中 OS_ERROR 修改为LOS_NOK,重定义LOS_NOK为(UINT32)-1。

接口位置转移: LOS_UDelay 由los_task.h/.c 转移到los_tick.h/.c 

宏修改: LOS_ERRNO_MUX_PEND_INTERR 改名为 LOS_ERRNO_MUX_IN_INTERR

  • posix接口融合:

接口修改: calloc pthread_mutex_init mq_unlink pthread_join pthread_exit pthread_attr_init pthread_attr_destroy pthread_condattr_destroy pthread_cond_timedwait pthread_mutexattr_init pthread_mutexattr_settype pthread_mutex_destroy pthread_mutex_timedlock pthread_mutex_trylockk pthread_mutex_unlock sem_getvalue sem_timedwait pthread_cond_timedwait nanosleep timer_create timer_settime timer_gettime testStdlibStrtoull005 testStdlibStrtol011 testStdlibStrtoul007 testPthread004

新增接口: CheckForCancel pthread_setcancelstate pthread_setcanceltype pthread_once pthread_setschedprio pthread_attr_setstack pthread_attr_getstack pthread_condattr_getpshared pthread_condattr_setpshared pthread_condattr_getclock pthread_mutexattr_gettype CheckMutexAttr OsMuxPreCheck sem_trywait MuxPendForPosix MuxPostForPosix 增加overrun功能

接口变化: mq_getsetattr 改为内部接口MqGetSetAttr GetTickTimeFromNow->OsGetTickTimeFromNow

接口位置转移: pthread_equal接口由newlib下转移到kal/posix/src/pthread.c中

  • posix: 接口修改: calloc pthread_mutex_init mq_unlink pthread_join pthread_exit pthread_attr_init pthread_attr_destroy pthread_condattr_destroy pthread_cond_timedwait pthread_mutexattr_init pthread_mutexattr_settype pthread_mutex_destroy pthread_mutex_timedlock pthread_mutex_trylockk pthread_mutex_unlock sem_getvalue

新增接口: CheckForCancel pthread_setcancelstate pthread_setcanceltype pthread_once pthread_setschedprio pthread_attr_setstack pthread_attr_getstack pthread_condattr_getpshared pthread_condattr_setpshared pthread_condattr_getclock pthread_mutexattr_gettype CheckMutexAttr OsMuxPreCheck sem_trywait

接口变化: mq_getsetattr 改为内部接口OsMqGetSetAttr

接口位置转移: pthread_equal接口由newlib下转移到kal/posix/src/pthread.c中

  • 新增接口: LOS_HwiTrigger ArchIntTrigger LOS_HwiEnable ArchIntEnable LOS_HwiDisable ArchIntDisable LOS_HwiClear ArchIntClear LOS_HwiSetPriority ArchIntSetPriority

  • Assembly implementation: ArchAtomicRead ArchAtomicSet ArchAtomicAdd ArchAtomicSub ArchAtomicInc ArchAtomicIncRet ArchAtomicDec ArchAtomicDecRet

  • 原来版本中每个架构下提供的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 还是系统默认提供的,均在内核初始化时启动。

  • 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)

  • 1.修改arch/include下接口,以ArchXX命名函数 2.提取公共函数声明:ArchAtomicXchg32bits、ArchAtomicDecRet、ArchAtomicCmpXchg32bits 3.新增部分原子操作c内联实现

  • 增加低内存资源回收注册相关接口LOS_LmkOpsNodeRegister、LOS_LmkOpsNodeUnregister和内存资源释放和任务恢复接口LOS_LmkTasksKill和LOS_LmkTasksRestore.

  • SwtmrHandlerItem结构体新增swtmrID字段,用于标识超时队列中软件定时器id

  • 新增支持API:

LOS_LmsCheckPoolAdd使能检测指定内存池 LOS_LmsCheckPoolDel不检测指定内存池 LOS_LmsAddrProtect为指定内存段上锁,不允许访问 LOS_LmsAddrDisableProtect去能指定内存段的访问保护

(2021-09-30)

Bug Fixes

  • M核代码告警清零 (cb5f862), closes #I4386N
  • M核告警消除 (5a9d53b), closes #I46LHG
  • M核编译配置修改 (deff7c9), closes #I46XEA
  • shell模块task命令踩内存问题修改 (b5e84d5), closes #II4
  • trustzone 中断适配 (15a2c17), closes #I42TFV
  • add API LOS_HwiCreate and LOS_HwDelete (eb668eb), closes #I3R75F
  • add liteos_m vfs (5479dd6), closes #I3R493
  • backtrace代码段判断函数定义成弱函数,如果有多个代码段,那么可根据实际情况重定义 (8692ed3), closes #I420PQ
  • change cpup retval range (d00a35b)
  • change description according to review (a38365e)
  • change queuePosion to queuePosition (e772ccb)
  • change to OpenHarmony LiteOS-M (259fb54)
  • comment error (a37b73d)
  • compile warning fix (8dea15c), closes #I4330
  • compile warnings (75f6187), closes #I3Y57X
  • correct ECB in comment (e2aeb1f)
  • correct spelling (dd5cefb)
  • correct spelling (e7ea50f)
  • correct the counter of exception type (bff6587)
  • correct typo (3ceface)
  • cpup funciton repair (c842251)
  • delete unused symbols for default config (7ad3a22), closes #I45HN3
  • fix __cplusplus typo (c3eb3e5)
  • fix backtrace check issue (b6664e6)
  • fix bad params def in HalTickStart (4443b74), closes #I48YWT
  • fix comment typo issue (0c2a675)
  • fix destroy typo (4ba6259)
  • fix function name (f7d50d0)
  • fix length typo (98d6580)
  • fix LOS_MEMBOX_ALIGNED macro name (fced899)
  • fix LOS_TaskNameGet comment (c70b28b)
  • fix macro typo (1600360)
  • fix misspell in comments (4572814)
  • fix NULL UNUSED redefined issue (765bd55)
  • fix OS_TASK_STACK_PROTECT_SIZE undeclared error (2a5a515), closes #I4C5RW
  • fix print format compilation warning (ef12c89)
  • fix readme link issue (9e332c6)
  • fix some typo issues (f6b8cab)
  • fix typo in comment (811d3fa)
  • fix typos (191644e)
  • Fixed a spelling error in FS_LOCK_TIMEOUT_SEC. (42dc308), closes #I3TL66
  • include file log_config.h in los_mpu.c (1932d71)
  • L0 GN compilation problem (2f9bfcc), closes I3ORHS
  • l0 shell adapt new master (fd2227e)
  • littlefs inappropriate return value and errno (452f364), closes I3YIVT
  • littlefs三方源码采用GN编译修改上库 (bdb614b)
  • LOS_QueueInfoGet函数统计等待读写任务有误 (215a1f6), closes #I4C6P2
  • los_swtmr.h不满足自包含要求对los_config.h存在依赖,但未包含los_config.h (ad8e96a), closes #I40DHM
  • mbedtls: mbedtls l0 support (761b860)
  • misspell (30578a6)
  • modify event API description (9481f1d)
  • modify the return type of LOS_IntLock from UINTPTR to UINT32. (bcc34e2)
  • modify type INLNIE (294a6d2)
  • Mutex锁释放后,无任务持有的情况下,owner未清空 (c136cfd), closes #I40OC8
  • M核littlefs当文件open失败时,需要回收fd,否则会有fd泄露 (b458e12), closes #I3XU6R
  • m核上littlefs新增错误码功能 (a062378), closes #I3UVMQ
  • net compile fix (299813c)
  • open shell & fix qemu compile (911a767)
  • ping cmd compile fail (ae05de3)
  • protect from accssing NULL pointer, access g_handle after fslock (bc7a914), closes #I3UCX3
  • remove changelog in README (37ef8ca), closes #I3ZECY
  • remove libsec_kernel (1144b75)
  • remove project files (4ad01ce)
  • remove targets project files (f39da5a)
  • risc-v 锁中断在调度后失效 (70f3aa1), closes #I42OLJ
  • riscv_nuclei 编译失败 (d3fb23c), closes #I41PQJ
  • rollback resources when opendir failed (82fad6c), closes #I3Y577
  • Scheduling module code to join GN compilation. (8bf166b), closes #I3OA95
  • The hook module fails to compile under the c99 compilation standard. (a078c30), closes #I3S4ME
  • tick 动态化计算优化,减小中断执行时间对系统总体时间的影响,保证软件定时器的响应精度。 (2118c84), closes #I3YGP1
  • timer qemu 头文件缺失 (12fed74)
  • update according to review comments (4dc0d31)
  • update arch_spec.md (cf43988)
  • update doc usage (5c19fd4)
  • update document description (954c2fc)
  • update macro to config item (be57ece)
  • 以g_sysSchedStartTime是否为0判断时间轴是否生效存在极限场景导致调度时间不生效 (509cf59), closes #I45HP5
  • 修复littlefs的多分区挂载时,对pathname的处理逻辑异常 (b55cfc1), closes #I3WWFA
  • 修复littlefs编译fs.c缺少头文件件依赖配置+若干musl库的缺失问题+多分区规格宏配置问题 (7259289), closes #I3VT11
  • 修复M核littlefs GN编译的若干错误 (d77828e)
  • 修复M核上musl库缺失strdup,c的问题 (139f83a), closes #I3VZSI
  • 修复QUEUE_INFO_S中waitReadTask无法保存大于32的任务编号 (704cca9), closes #I41N78
  • 修复task命令格式错误,增加copyright (ad15bbd)
  • 修复timer_settime只设置第一次到期时间时,到期时间不准的缺陷 (a5f4e37), closes #I3TCHA
  • 修复timer_settime只设置第一次到期时间时,到期时间不准的缺陷 (e4b5d4e), closes #I3TCHA
  • 修复不规范的copyright (2d9bbd2), closes #I3SPJ1
  • 修复中断操作接口头文件位置变更,导致的编译错误 (013a953), closes #I4665Z
  • 修复文档链接失效问题 (5d53c84), closes #I4529I
  • 内核模块编译增加-Werror编译选项,且清除内核编译告警 (3798091), closes #I46E6S
  • 删除MQ内冗余的重复宏定义 (6d72916), closes #I3U5QQ
  • 删除延时节点后,存在时间无法有效刷新的场景 (0a87c04), closes #I45I9Y
  • 在内核初始化前期启动tick timer (b3841ed), closes #I410F0
  • 增加MPU功能的开关宏,默认关闭 (9709d29), closes #I3WE0S
  • 宏LOSCFG_SUPPORT_FATFS在fs.c中存在使用问题,导致无fatfs的情况下,编译出错 (c1614ce), closes #I44XNR
  • 延时队列为NULL时,返回的响应时间为64位最大值,导致无法更新tick timer的响应周期 (bcec32e), closes #I3W1LF
  • 支持smoke 测试用例 (3ad5942), closes #I424RX
  • 新增函数regcomp,regfree和regexec支持 (86d5544), closes #I3U9LE
  • 清理残留无效的trace代码 (3c48951), closes #I3ZMB4
  • 解决arm9编译冲突问题 (c1a6245), closes #I420PQ
  • 调度过程低概率触发OsSchedTaskEnQueue断言,导致系统异常 (e5e9289), closes #I3VX9Y
  • 调整hook类型和位置,方便调试 (369320d), closes #I3TGZS

Features

BREAKING CHANGES

  • 新增4个对外接口,声明在los_dynlink.h文件中,分别为: (1) LOS_DynlinkInit: 动态加载模块初始化。 (2) LOS_SoLoad: 加载指定路径的共享库。 (3) LOS_FindSym: 根据共享库句柄查找指定符号。 (4) LOS_SoUnload: 卸载共享库。
  • 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注册过滤特定中断号事件的钩子函数
  • 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).
C
1
https://gitee.com/hawkwolf/kernel_liteos_m.git
git@gitee.com:hawkwolf/kernel_liteos_m.git
hawkwolf
kernel_liteos_m
kernel_liteos_m
master

搜索帮助