找回密码
 立即注册
楼主: CosyOS

全局不关总中断的 RTOS,CosyOS-III-V1.2.0, 送 擎天柱-AI8051U转89C52核心板

 火... [复制链接]

5

主题

1206

回帖

4812

积分

荣誉版主

积分
4812
 楼主| 发表于 2026-3-7 13:41:50 | 显示全部楼层
CosyOS-III 最新版 V2.3.1 发布!

CosyOS 发展至今,在STC官方和大家的大力支持下,已经取得了十足的进步。
最新版本为 V2.3.1,是稳定可靠版,如不能发现 bug,短期内不会再更新了。
欢迎大家踊跃试用最新版!

简要介绍一下最近取得的成就
V2.1.0:重构了软件定时器,采用了针对嵌入式场景量身打造的时间轮,平均时间复杂度可达 O(1)。
V2.1.1:安全运行时的单位,由时间片调整为滴答周期。
V2.2.0:中断FIFO服务技术全面升级,完善了FIFO溢出检测机制和最大深度统计功能,运行更可靠,同时性能进一步提升。
V2.2.3:ARM“互斥访问机制”,得以进一步性能优化,已达历史最高水平,无法再精进。


V2.3.0:
重构了私信,与之前版本相比,更为易用和高效、也更加可靠。
新版私信特点:
1、与处理器架构(移植文件)无关;
2、私信参数数量支持 1~8个,各个参数的数据类型为任意,但名称有要求,必须是 tm1、tm2、tm3...
3、与之前版本不同,发送私信已支持寄存器传参,性能显著提升;
4、与之前版本不同,无需任何预处理指令相配合,对优化等级亦无要求;
5、不会有任何警告或错误,除非用户自己未使用私信或应用错误;
6、创建私信任务的API 与 原有创建任务的API 分离,互不干涉。
“私信”的应用例程供大家参考,位置在:
cosyos-master >> Demo-Service >> 2、消息同步 >> msg_taskmsg.c

V2.3.1:
1、优化了 CosyOS-启动,提升可靠性。
2、Cortex-M0,中断FIFO服务装载器-互斥访问方案 做出调整,增加了新的方案。
新版方案包括:<1=> 互斥访问指令 <2=> 互斥访问机制一 <3=> 互斥访问机制二 <0=> 关闭总中断
3、新增 中断FIFO服务处理器-最大并发执行数,具体见 MCU配置头文件。


另外 CosyOS官网 已上线,欢迎大家访问!
官网中会陆续添加相关技术资料供大家查阅。

稍后会在顶楼发布最新版的工程模板供大家参考。
但建议大家不要依赖工程模板,而是自己先创建一个裸机工程,而后用 CosyOS-III Cube 升级安装,
模板仅是用来参考和借鉴。






回复

使用道具 举报 送花

已绑定手机

9

主题

86

回帖

2381

积分

金牌会员

积分
2381
发表于 2026-3-8 10:38:41 | 显示全部楼层
回复

使用道具 举报 送花

5

主题

1206

回帖

4812

积分

荣誉版主

积分
4812
 楼主| 发表于 2026-3-15 21:51:25 | 显示全部楼层
CosyOS-III 有史以来首个发行版正式推出!

这是 CosyOS 有史以来首次正式推出发行版,CosyOS-III v2.3.2 released

可从这里进入下载页面:
截图202603152302187764.jpg


在 v2.3.1 版本的基础上,改进了如下功能:

1、任务管理器 调整为支持 中英文双语
截图202603152240085228.jpg


这样做的好处首先体现在,方便于在 LCD、OLED 等液晶屏上显示。
与串口助手不同,在液晶屏上显示,画面不会向上滚动也不会闪烁。




2、CosyOS-III Cube 做出调整,CosyOS-源代码根文件夹 已支持随意命名
flash-B-01.png



待最新版工程模板制作好后会及时在顶楼更新。

最新版工程模板已在顶楼发布!








回复

使用道具 举报 送花

5

主题

1206

回帖

4812

积分

荣誉版主

积分
4812
 楼主| 发表于 2026-4-6 19:48:17 | 显示全部楼层
CosyOS-III v2.3.3 发布!

与 v2.3.2(发行版)相比,仅是更新了安装程序 CosyOS-III Cube

新版Cube特点:
完美支持中文路径,无论是 CosyOS路径 还是 工程路径,都可随意用中文,不会有问题。
同时修复了路径识别上的bug,可应对各种复杂路径,确保成功安装。


有需要的可自行去gitee下载 v2.3.3。

回复

使用道具 举报 送花

已绑定手机

7

主题

132

回帖

1783

积分

金牌会员

积分
1783
发表于 2026-4-28 17:02:12 | 显示全部楼层
Cos*** 发表于 2023-10-20 22:30
参会学习,【免费+包邮 送】:
【一箭双雕之USB转双串口,2个USB-CDC转串口+HID烧录】
【STC-USB Link1D,2 ...

又有的学了
回复

使用道具 举报 送花

已绑定手机

40

主题

338

回帖

1052

积分

金牌会员

积分
1052
发表于 2026-5-27 22:12:20 | 显示全部楼层
Cos*** 发表于 2026-4-6 19:48
CosyOS-III v2.3.3 发布!

与 v2.3.2(发行版)相比,仅是更新了安装程序 CosyOS-III Cube。

https://www.stcaimcu.com/thread-24018-1-2.html   私信问题
回复

使用道具 举报 送花

13

主题

22

回帖

398

积分

中级会员

积分
398
发表于 2026-6-18 00:18:45 | 显示全部楼层
CosyOS-III-STC32G-V1.0.2
在查看这个案例的时候遇到一个问题

在Taskmgr.c中有串口2的中断,并且在debug接口设置中,打开的确实是串口2的中断

但是在重定向printf的时候,配置的却是串口1

我有点被绕糊涂了,不知道两路串口的作用
回复

使用道具 举报 送花

189

主题

1411

回帖

5527

积分

荣誉版主

积分
5527
发表于 10 小时前 | 显示全部楼层
(1)我认为本帖给出的CosyOS系统存在严重的安全问题,包括死机:
华山论剑(3): CosyOS-II-STC8H在测试高优先级中断服务调用时崩溃了
https://www.stcaimcu.com/thread-8516-1-1.html
(出处: 国芯人工智能技术交流网站)
两年前(发表于 2024-5-23 03:19:15 )我对其进行了测试:
对于崩溃的原因,笔者觉得不是程序BUG造成的,而是由于CosyOS-II没有采用关闭总中断作为临界区保护方法造成的

(2)后来我再次对其进行安全性测试:
华山论剑(5):CosyOS-II-STC8H在有函数重入时又崩溃了
https://www.stcaimcu.com/thread-8604-1-1.html
(出处: 国芯人工智能技术交流网站)
两年前(发表于 2024-5-27 07:10:45 )我对其进行了测试:
当时我在该文给出了对RTOS不可重入函数的实际测试例子,测试结果表明“CosyOS-II-STC8H”目前的版本是不支持函数重入的,碰到有函数重入时崩溃了。

(3)这两年楼主并没有对这些CosyOS存在的严重安全问题进行正面解释,也未说明新版本是否进行了改进,这些安全问题是否得到了解决。
为了对论坛广大的网友负责,我特地就本论坛的CosyOS系统的安全性问题,请教了STC AI助手,STC AI助手是这样回答的:

===========================================
提问:
请从论坛内的:
华山论剑(5):CosyOS-II-STC8H在有函数重入时又崩溃了 https://www.stcaimcu.com/thread-8604-1-1.html
以及华山论剑(3): CosyOS-II-STC8H在测试高优先级中断服务调用时崩溃了 https://www.stcaimcu.com/thread-8516-1-1.html
对这两个实际测试例子从官方软件产品和网友自研交流两个角度来评价CosyOS的安全性


回答:
我已经获得了足够的信息。现在让我综合两个论坛帖子的内容,从官方软件产品角度和网友自研交流角度对CosyOS的安全性进行评价。

关于 CosyOS-II 在 STC8H 上安全性的评价
一、两个测试案例概述
案例1(华山论剑3):高优先级中断服务调用时崩溃
帖子: tis=8516
  • 测试环境: CosyOS-II-STC8H官宣的"零中断延迟"测试程序
  • 现象: 在用户中断中调用系统服务(iResumeTask(task_3))时,当用户中断周期小于25微秒(约40KHz)时,系统运行崩溃
  • 双方观点:
    • CosyOS本尊确认:不是因为定时器1中断的5us周期过短,而是因为每25us调用一次iResumeTask(task_3),属于"生产速度 > 消费速度"的典型场景,导致PendSV中来不及执行服务,最终"中断挂起服务队列"持续溢出,内存被覆盖。
    • CosyOS进一步修正:不是挂起服务队列溢出,而是因为在PendSV中始终在永不停息地执行挂起服务iResumeTask(task_3)。
    • CosyOS本尊的结论:**中断挂起服务仅支持有限的并发调用,如果是无限的并发调用,一定会出问题。**并坦言"关闭总中断处理临界段的方法就不会存在这样的问题"。

案例2(华山论剑5):有函数重入时又崩溃了
帖子: tis=8604
  • 测试环境: 3个实时任务(A/B/C),任务B和C都调用了一个不可重入的3重循环超长延时函数DelayMS()
  • 现象: 当任务B第一次执行不可重入函数后,任务C便崩溃了,程序陷入死循环状态;只有任务A和B正常运行,任务C死在那里
  • 修复方法: 给DelayMS()函数加reentrant关键字变为可重入后,系统正常运行
  • 结论: 测试结果表明"CosyOS-II-STC8H"目前的版本不支持函数重入,碰到有函数重入时崩溃了


二、从官方软件产品角度评价 CosyOS 的安全性
作为 STC 官方 FAE,我们必须客观指出:CosyOS-II 是第三方社区自研的 RTOS,并非 STC 官方软件产品。 它的安全性存在以下值得关注的问题:
1. 临界区保护机制的固有风险
CosyOS-II 采用**"不关闭总中断"**的临界区保护方法(区别于 FreeRTOS/uC-OS 等主流 RTOS 的"关闭总中断"方法)。这种设计虽然宣称能实现"零中断延迟",但带来了两个突出问题:
  • 挂起服务队列溢出风险:在案例1中,中断挂起服务队列的持续溢出直接导致内存被覆盖。CosyOS本尊确认,中断挂起服务"仅支持有限的并发调用",无限并发调用一定会出问题。
  • 不可重入函数导致系统崩溃:案例2证明,对于C51编译器,默认函数是不可重入的。当多个任务调用同一个不可重入函数时,CosyOS-II 对函数现场的保护不足,导致任务C崩溃死锁。
2. 设计权衡的透明性
CosyOS 本尊在案例1中明确承认:"客观的说,关总中断处理临界段的方法就不会存在这样的问题",并指出"凡事都有两面性,没有绝对的好或不好,先进或不先进"。这说明 CosyOS 的"不关中断"设计在极端高频中断场景下存在明显短板。
3. 安全性结论
对于工业级、安全性要求高的场合,CosyOS-II 的"不关闭总中断"临界区保护方案存在已知的崩溃隐患。 官方推荐的更稳妥方案是在临界区处理时采用**"关闭总中断"**的方法(参考 STC 单片机手册「14 中断系统」章节中关于中断响应和优先级控制的说明)。


三、从网友自研交流角度评价 CosyOS 的安全性
1. 社区交流氛围:积极且透明
  • CosyOS 本尊在论坛中主动认领问题,给出崩溃根因分析,不回避责任;
  • 杨教授(测试方)在测试后给出了详细的测试方法、操作流程和实测信号截图,具有可复现性;
  • 社区中有网友(tzz1983)提出"CPU使用率超过100%"的猜想,CosyOS 本尊明确排查并否定此猜测,展示了技术讨论的严谨性;
  • 网友13918210822对"关EA和丢信号之间的关系"给出了更准确的理解,认为**"只要控制好关闭EA的时钟数,也是信号安全的"**,这一观点与杨教授关于PLC工控设备9600波特率的讨论相呼应。
2. 开放性评价
  • 测试结果表明 CosyOS-II 对函数重入的支持不如预期,需要用户显式添加reentrant关键字;
  • 对高频中断的容忍度有硬性下限(约25us/40KHz),超出则崩溃;
  • CosyOS 本尊对此回应:"对于这种极端测试情况,CosyOS 确实是无法胜任的,建议用户更换其它RTOS来实现",并强调"关总中断的方法在这种情况下一定会比CosyOS好的多"。
3. 综合评价
从网友自研交流角度看,CosyOS 的设计理念(不关中断换零延迟)值得肯定,但其实现层面在极端条件下的鲁棒性不足,属于"性能优先、安全性次之"的设计取向。
对于一个由社区爱好者自研的 RTOS 而言,其技术讨论的开放性值得称赞,但用户在选用时应充分了解其适用边界


四、最终建议
评价维度
结论
适用场景
CosyOS-II 适用于中断频率适中(>40KHz场景需谨慎)、无函数重入需求的简单实时应用
安全性风险
高频中断下挂起服务队列可能溢出导致内存覆盖;多任务调用不可重入函数会导致崩溃
建议
若应用要求高可靠性,建议使用"关闭总中断"临界区方法的主流 RTOS,或采用裸机+中断的经典架构
STC官方立场
STC 单片机的硬件中断系统(多级中断优先级、所有I/O口可中断、中断向量表)本身设计完备,为任何 RTOS 提供了良好的硬件基础,但第三方 RTOS 的安全性与实现质量责任在于该 RTOS 的作者
需要说明: 以上分析基于论坛帖子内容(用户反馈),
CosyOS-II 是第三方社区自研产品,并非 STC 官方软件。STC 官方不对第三方 RTOS 的功能安全做背书。
用户选择 RTOS 时应根据实际应用的实时性和可靠性要求,充分评估各方案的适用边界。

================================================
继续提问:
请注意上面你提到的“修复方法: 给DelayMS()函数加reentrant关键字变为可重入后,系统正常运行”这个结论是错误的,是倚天剑x51的系统是正常的,CosyOS仍然崩溃。请针对这一点重新进行评估

再次回答:
我发现原帖的正文在关键的第(9)点位置被截断,无法直接看到加reentrant关键字后CosyOS的测试结果。但根据用户的反馈,以及帖子标题本身"CosyOS-II-STC8H在有函数重入时又崩溃了"——注意标题说的是"又崩溃了",这表明即使加了reentrant关键字,CosyOS仍然崩溃。
让我查看第4篇(倚天剑x51)帖子中关于第4篇文章对结果的描述,以及第5篇文章开头的摘要来确认这一点。从第5篇文章的前言中我看到:"本文给出了对RTOS不可重入函数的实际测试例子,测试结果表明'CosyOS-II-STC8H'目前的版本是不支持函数重入的,碰到有函数重入时崩溃了。"
结合用户的纠正,关键结论是:
  • 第(8)点:加reentrant后,倚天剑x51系统正常运行,任务C可以连续运行
  • 第(9)点:当对CosyOS-II-STC8H的DelayMS()加reentrant后...系统启动时的信号是这样(帖子在此处被截断,但结合标题"又崩溃了"以及用户反馈,CosyOS仍然崩溃)
感谢您的指正。让我重新评估CosyOS的安全性,修正此前误读的结论。


关于 CosyOS-II 在 STC8H 上安全性的重新评估
一、对之前误读的修正
我此前得出的"加reentrant关键字后CosyOS正常运行"是错误的。
根据《华山论剑(5)》帖子的原文结构,正确的测试结果是:

函数类型
倚天剑x51
CosyOS-II-STC8H
不可重入函数(无reentrant)
任务C崩溃
任务C崩溃
可重入函数(加reentrant)
✅ 任务C正常连续运行
❌ 仍然崩溃(帖子标题"又崩溃了"即为佐证)
帖子在第(9)点描述:"当对CosyOS-II-STC8H的'DelayMS()'函数加了'reentrant'的关键字后,系统启动时的信号是这样的:"——结合帖子标题"CosyOS-II-STC8H在有函数重入时又崩溃了",可以确认即使采用了C51编译器的标准可重入机制,CosyOS-II-STC8H 仍然无法正确处理函数重入,系统仍然崩溃。


二、从官方软件产品角度重新评估

1. 函数重入问题的严重性更严重
之前我的评估认为"加reentrant后可以修复",现在修正为:即使函数本身被C51编译器标记为可重入(使用reentrant关键字,局部变量在堆栈上分配),CosyOS-II-STC8H 仍然崩溃。
这说明问题不在于用户是否正确地编写了可重入函数,而是在于 CosyOS-II 的上下文切换机制没有正确保存/恢复可重入函数使用的堆栈帧,或者其任务堆栈管理存在缺陷。
2. 根本性缺陷
  • 不可重入函数崩溃 → 可能是任何RTOS在多个任务调用同一不可重入函数时的普遍风险
  • 可重入函数也崩溃 → 说明CosyOS-II对C51编译器生成的reentrant函数的内部堆栈管理存在问题,这是RTOS内核级的缺陷,不是应用层可以规避的
这一结论远比之前的评估更为严重,意味着用户即使在应用层正确使用reentrant关键字,也无法规避CosyOS-II的崩溃问题。
3. 对高可靠性应用的影响
结合华山论剑(3)的高频中断服务崩溃问题(中断周期<25us即崩溃),CosyOS-II-STC8H在以下两个维度均存在系统性风险:
  • 中断并发维度:挂起服务队列溢出导致内存被覆盖(临界区不关中断的设计缺陷)
  • 函数重入维度:即使使用标准可重入函数,任务切换仍导致崩溃(内核任务栈管理缺陷)


三、从网友自研交流角度重新评估
1. 帖子标题本身即结论
帖子标题《CosyOS-II-STC8H在有函数重入时又崩溃了》中的"又"字,直接说明即使在前面测试的基础上做了修正(加reentrant),CosyOS仍然无法通过测试。
2. 杨教授(测试方)的观点
杨教授在论坛中指出:"测试结果表明'CosyOS-II-STC8H'目前的版本是不支持函数重入的,碰到有函数重入时崩溃了。" 这是对测试结果的直接、明确的结论。
3. 网友13918210822的评论值得关注
在华山论剑(5)回帖中,网友13918210822指出:
"不使用临界区保护时,我可以写不可重入代码破坏任何MCU操作系统。因此,这不是操作系统单方面的责任"
这句话有一定道理——不可重入函数确实是用户代码的责任。
但是,当用户已经正确使用了reentrant关键字(这是C51编译器的标准可重入机制),CosyOS仍然崩溃,这就不能归咎于用户代码了而是CosyOS内核本身对可重入场景支持不足


四、修正后的综合评价
评价维度
结论
不可重入函数
多任务调用同一不可重入函数,CosyOS崩溃——这部分可归因于用户代码,任何RTOS都可能遇到
可重入函数(加reentrant)
CosyOS仍然崩溃——这是内核级缺陷,用户无法通过正确编写代码规避
高频中断
中断周期<25us调用系统服务即崩溃——"不关中断"临界区设计的固有风险
总体安全性
⚠️ 存在内核级可靠性缺陷,在函数重入和高频中断两个维度均无法通过标准测试
对用户的建议
  • 选型警示:若应用场景涉及多个任务调用公共函数(无论是否加reentrant),或存在高频中断(周期<25us)中调用系统服务,不应选用CosyOS-II-STC8H。
  • 可靠性权衡:CosyOS-II的"不关中断"设计在追求低中断延迟的同时,牺牲了内核级的安全性和鲁棒性。对于安全性要求高的应用,建议采用"关闭总中断"处理临界区的RTOS方案。
  • STC官方立场CosyOS-II是第三方社区自研RTOS,其安全性责任在于作者。
  • STC官方提供的单片机硬件中断系统(优先级可配置、多级嵌套)本身设计完备,但第三方RTOS的实现质量需要用户自行评估。


说明:以上修正基于对《华山论剑(5)》帖子标题、前言摘要以及帖子结构的综合分析。
帖子中第(9)点关于CosyOS加reentrant后的具体信号波形图在论坛页面中未能完整展示,但标题"又崩溃了"明确表达了测试结论。
如需要更精确的波形数据,建议查看论坛原帖的完整附件图片。
再次感谢您的指正,这一关键细节对评价CosyOS安全性的结论有重大影响。

=============================
楼主:
请你回答:这两年来你推出的新版本是否对这些安全隐患进行了研究,给出了解决的方法?


回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-9-22 10:31 , Processed in 0.069567 second(s), 68 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表