### V1.2.0 * 重新调整了文件目录结构。 * 取消了所有系统文件中的头文件包含路径,以后包含路径均在编译器中添加。 * 重新调整了移植架构,耦合度更低、移植更便利。 * DEBUG接口的串口发送与接收被解耦出来,以后串口发送在 debug_hook 中实现,串口接收完成后调用服务解析。 * 进一步规范化了API格式,所有无参数的API,后面均需加入()。 ### V1.2.1 * syscfg.h 中,增加配置项 创建任务-尾参数功能,使得用户可以灵活配置“任务名称”字符串的定义方式,详见 syscfg.h。 ### V1.2.2 * 诸如 if(tick < (s_delay_t)~0) 的条件判断语句,调整为 if(~tick),调整后代码更为精炼、清晰。 * 队列控制块,size_t counter 加入了 volatile 进行修饰,严格来讲这样做是有必要的,原因不便说明。 * 解决了 port_cmx.h 中,当 系统中断配置为 SysTick_Handler + PendSV_Handler,系统滴答-配置方式 为 手动配置时,mSysTick_SetPRI() 未定义的问题。 ### V1.2.3 * 延时服务 加入了 条件判断,如果延时时间为0会立即返回。 * 启动任务 增加了 任务初始状态为阻塞(阻塞类型为延时阻塞,延时时间为无限长)。 ### V1.3.0 * 互斥信号量相关技术做出重大调整,解决了当嵌套获取多个互斥信号量时,可能会发生的优先级反转问题(该bug普遍存在于常见主流RTOS中)。 * 更新日期:2025.04.15 ### V1.3.1 * Port/Cortex-M,新加入了文件 cmsis_specific.h,以解决当用户使用老版本CMSIS核心库文件时,多项 CMSIS compiler specific defines 未定义的问题。 * 取消了 mcucfg_cmx.h 文件中,硬件浮点单元是否启用的配置选项,调整为通过包含标准头文件自动识别。 * 更新日期:2025.04.18 ### V1.3.2 * ur_api.h 中,优化并调整了部分注释说明。 * 更新日期:2025.04.19 ### V1.3.3 ~ V1.3.8 * 逐步优化并完善了 CosyOS for Arm 对 Arm Compiler 4/5/6、GNU Compiler、IAR Compiler 等主流编译器的支持,并实现了良好的易用性。 * 完成日期:2025.05.02 ### V1.3.9 * 新增服务 uExtTask(task)、dExtTask(task),任务线程的简化声明方式,以应对当采用GNU编译器时,偶尔可能出现的警告(任务相关变量未引用),详情参见API说明。 * 更新日期:2025.05.03 ### V1.4.0 * 推出了 CosyOS实用例程,包括 demo_int.c、demo_main.c、demo_task.c 三个例程文件。 * 推出了 CosyOS升级安装程序 CosyOS-III Cube.exe,可轻松将您的裸机工程升级为CosyOS工程。 * 更新日期:2025.05.08 ### V1.4.1 * 修复了一个bug。 * 更新日期:2025.05.11 ### V1.4.2 * 优化了计数信号量相关服务,性能进一步提升。 * 更新日期:2025.05.14 ### V1.4.3 * 针对 AC5,优化了任务切换部分,使任务切换性能进一步提升。 * 更新日期:2025.05.16 ### V1.4.4 ~ V1.4.5 * 针对 Arm,进一步进行了优化,使整体性能进一步提升。 * 完成日期:2025.05.17 ### V1.4.6 * 优化了一处头文件包含关系,修复了两处 C51、C251 编译器警告。 * 更新日期:2025.05.18 ### V1.4.7 * 优化了任务管理器CPU使用率相关算法,以后即使是在极端情况下,也不会出现某个任务或总的CPU使用率超过100%的情况。 * 更新日期:2025.05.19 ### V1.4.8 ~ V1.5.0 * 优化了互斥信号量、二值信号量、计数信号量相关算法,解决了当获取它们时可能会提前结束超时并返回失败的问题。 * 完成日期:2025.05.31 ### V1.5.1 * 优化了 debug_hook for 8051 and 80251. * 推出了 新版的CosyOS实用例程。 * 更新日期:2025.06.07 ### V1.5.2 * 修复了一处未引用警告,在 os_handler.c 中。 * 更新日期:2025.06.09 ### V1.5.3 * 优化了80251的移植和配置。 * 更新日期:2025.06.14 ### V1.6.0 * 部分系统变量和函数重命名,新名称更加科学、规范。 * startup_8051.s 加入了硬件栈配置并优化了注释内容。 * startup_80251.s 加入了图形用户界面并优化了注释内容。 * 进一步优化了默认配置,包括系统配置和MCU配置。 * Demo 中加入了说明文档。 * 修复了若干处漏洞和BUG。 * 除 Cortex-M0 外,经 CosyOS-III Cube 升级安装后,仅需在 syscfg.h 中正确配置标准头文件即可正常编译。 * 更新日期:2025.06.17 ### V1.6.1 * 修正了 syscfg.h 文件中,“在线用户任务总数” 的重定义问题。 * 更新日期:2025.06.18 ### V1.6.2 * 优化了 ur_api.h 中的注释说明,并推出新版 CosyOS-III API用户参考手册。 * 更新日期:2025.06.23 ### V1.6.3 * 取消了全局变量副本方案,将不再支持非原子全局变量在中断中的读访问。 * 取消了中断中获取软件RTC。 * 优化了软件RTC相关功能和服务。 * 更新日期:2025.06.27 ### V1.6.4 * 修复了由于队列控制块类型定义重命名而导致的部分宏定义引用中遗漏同步修改的bug。 * 推出了新版 CosyOS-III Cube,针对 Keil C51、C251,将自动替用户完成部分确定的、推荐的编译器配置工作。 * 更新日期:2025.07.13 ### V1.6.5 * for 8051 推出了虚拟中断技术,当启用该技术时,所有任务都将自动成为调用树覆盖分析的根。 * 更新日期:2025.07.14 ### V2.0.0 * 部分关键字重命名。 * 所有C文件中,条件编译加上了括号。 * 删除了内核文件 sv_int_pend_flag.c、sv_int_pend_flag.h。 * 新增了内核文件 sv_int_pend.h,前缀为“p”的中断挂起服务,均在 sv_int_pend.h 中定义,
并允许通过挂起服务调用(iPendSVC)间接调用、或在挂起服务钩子(pendsv_hook)中调用。
当通过挂起服务调用(iPendSVC)间接调用时,仍为中断挂起服务_FIFO;
当在挂起服务钩子(pendsv_hook)中调用时,为中断挂起服务_FLAG。
部分服务调整为支持返回,具体包括 PendSV中(p)恢复任务、挂起任务、删除任务、清除阻塞、设置阻塞、设置任务优先级,均返回错误码。
* 部分 中断挂起服务_FIFO 支持错误调用返回,便于用户实现错误处理。
具体包括 中断中(i)恢复任务、挂起任务、删除任务、清除阻塞、设置阻塞、设置任务优先级、发送消息,均返回错误码。
回调函数均在 sv_int_pend_fifo.c 中弱定义,并在 ur_api.h 中声明。 * for 8051,如果启用了XBPSTACK的任务切换现场保护,任务栈SIZE允许大于255,最大可为65535。 * 创建定时中断钩子、定时查询钩子 时,不用再输入钩子名称,由系统自动生成。 * 更新日期:2025.08.04 ### V2.0.1 * 解决了GCC下,DEBUG串口接收解析的异常问题。 * 修复了AC5下,移植文件中有关 Cortex-M0 的 BUG。 * 更新日期:2025.08.13 ### V2.0.2 * port_cmx_s.c 文件中,针对GCC编译器,增强了对 thumb-2指令集 的支持,以有效解决当编译M0处理器时的报错:在thumb16模式下不支持thumb-2指令。 * 更新日期:2025.08.15 ### V2.0.3 * 针对 8051、80251,提供了对 小数兆赫系统时钟(如 11.0592MHZ 等) 的有效支持, 使得当用户使用 小数兆赫系统时钟 时,系统节拍的精度可降至最低值。 * 更新日期:2025.08.19