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

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

 火... [复制链接]
  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

718

主题

1万

回帖

1万

积分

管理员

积分
15630
发表于 2024-1-7 16:04:25 | 显示全部楼层
能否讲:
国产原创,全局不关总中断的 RTOS / CosyOS-II for STC8H8K64U

是目前 STC8上最实用的 RTOS ?

点评

我想应该是的。 1、CosyOS是国产开源的RTOS,采用apache2.0开源许可协议,无版权问题,完全免费。 2、有CosyOS作者的在线指导,STC官方的保驾护航,用户遇到问题可及时得到解决。 3、CosyOS 针对 STC8051/32位8051  详情 回复 发表于 2024-1-7 17:52
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:433
  • 最近打卡:2025-05-02 20:23:18

5

主题

1127

回帖

4267

积分

荣誉版主

积分
4267
发表于 2024-1-7 17:52:34 | 显示全部楼层
神*** 发表于 2024-1-7 16:04
能否讲:
国产原创,全局不关总中断的 RTOS / CosyOS-II for STC8H8K64U

能否讲:
国产原创,全局不关总中断的 RTOS / CosyOS-II for STC8H8K64U
是目前 STC8上 最实用 RTOS ?


我想应该是的
1、CosyOS是国产开源的RTOS,采用apache2.0开源许可协议,无版权问题,完全免费。
2、有CosyOS作者的在线指导,STC官方的保驾护航,用户遇到问题可及时得到解决。
3、CosyOS 针对 STC8051/32位8051 做了专门的优化处理,可以说是量身定制。
4、从功能性角度来说,RTOS该有的,CosyOS基本都有;将来要有的,CosyOS 也有了。
5、从实时性角度来说,CosyOS 是 零中断延迟 的 RTOS !
                   即使是 8051 也可实现零中断延迟,实属世界首例,其优势不言自明。
6、从可靠性角度来说,当前已有很多朋友都在测试或使用CosyOS-II,迄今为止,
                   未收到有bug或问题的报告。
7、从易用性角度来说,相信用过的朋友就会知道。

希望大家多多支持国产芯片、国产RTOS,摆脱它国技术卡脖子。
家花未必没有野花香,您的支持将促使国产芯片和RTOS越来越强大!




点评

注意评判的标准是:“是目前 STC8上 最实用 的 RTOS ?” 注意作者的回答是:“我想应该是的 !” 我的的个人观点是: (1)既然是评判的标准“最实用的”,那么作者首先要证明其符合标准,首先要举出例子和证明你  详情 回复 发表于 2024-1-7 21:36
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

718

主题

1万

回帖

1万

积分

管理员

积分
15630
发表于 2024-1-7 18:13:33 | 显示全部楼层
要高大上的 论文,给他推荐了下,按这个来,肯定满分
截图202401071812363845.jpg


点评

嗯,不错,STC MCU + CosyOS-II 的 中国全球安全战略  发表于 2024-1-7 18:27
回复 支持 1 反对 0

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:16
  • 最近打卡:2025-04-30 08:41:32

105

主题

1215

回帖

1万

积分

荣誉版主

积分
12882
发表于 2024-1-7 21:36:35 | 显示全部楼层
Cos*** 发表于 2024-1-7 17:52
能否讲:
国产原创,全局不关总中断的 RTOS / CosyOS-II for STC8H8K64U
是目前 STC8上 最实用 的 RTOS ?

注意评判的标准是:是目前 STC8上 最实用 RTOS ?”
注意作者的回答是:我想应该是的



我的的个人观点是:
(1)既然是评判的标准“最实用的”,那么作者首先要证明其符合标准,首先要举出例子和证明你的RTOS已经用于“实用”了,比如在某个产品,某个研究中实际应用了。
(2)由于作者在254楼列举的7条理由没有一条是他的RTOS得到实际应用的事实依据,我个人认为目前作者在网站上开源发布了RTOS,只是为“实用”提供了基础,并没有实际的应用成果,不能称为“实用的”和“最实用的”,称为“研究成果”更为准确合适。
就像XXX的XXX新概念车,虽然造了出来,虽然已经有人预定了,但只是“研究成果”,还谈不上“实用”,更谈不上“最实用”。
(2)如果是RTOS的研究成果,我个人认为就应该用学术的标准来进行,比如“是不是任务切换速度最快?”,比如“占用内存怎么样?”等等。
(3)作者曾经开贴“STC 原生RTOS PK 移植RTOS”(https://www.stcaimcu.com/forum.p ... &extra=page%3D1)。作者现在愿意不愿意把你的STC8H上的“CosyOS-II for STC8H8K64U”从研究成果的角度(因为我的RTOS没有任何实用例子,只是学术研究成果)与我写的的在STC8H上的两个RTOS比较一下。我的RTOS在下面两个帖子里:
STC8位单片机天山x51实时多任务操作系统简介(https://www.stcaimcu.com/forum.php?mod=viewthread&tid=1402)帖子里的“天山x51-RTOS
长缨x51(1)STC单片机软件工具链(https://www.stcaimcu.com/forum.php?mod=viewthread&tid=2490)帖子里的“STC 泰山x51-RTOS




点评

1、首先,我的回答仅代表个人观点,不一定就是正确的,更代表不了他人。 2、每个人都可以有不同的见解,有自己心目中认为最实用的RTOS。 3、我的观点既不能左右他人,也没有强加给任何人。 4、我现在确实拿不出实际  详情 回复 发表于 2024-1-7 23:33
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:433
  • 最近打卡:2025-05-02 20:23:18

5

主题

1127

回帖

4267

积分

荣誉版主

积分
4267
发表于 2024-1-7 23:33:23 | 显示全部楼层
本帖最后由 CosyOS 于 2024-1-8 00:50 编辑
杨*** 发表于 2024-1-7 21:36
注意评判的标准是:“是目前 STC8上 最实用 的 RTOS ?”
注意作者的回答是:“我想应该是的 !”

1、首先,我的回答仅代表个人观点,不一定就是正确的,更代表不了他人。
2、每个人都可以有不同的见解,有自己心目中认为最实用的RTOS。
3、我的观点既不能左右他人,也没有强加给任何人。
4、我现在确实拿不出实际应用案例,只能等待在未来的时间证明。
5、我相信杨老师的作品
定然是十分优秀的,其中定会有很多值得我等晚辈学习的地方,我会在未来慢慢研究、消化。

向杨老师学习!



回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:517
  • 最近打卡:2025-05-02 12:50:19

0

主题

72

回帖

2108

积分

金牌会员

积分
2108
发表于 2024-1-8 08:53:40 | 显示全部楼层
感谢分享
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:433
  • 最近打卡:2025-05-02 20:23:18

5

主题

1127

回帖

4267

积分

荣誉版主

积分
4267
发表于 2024-1-8 14:42:47 | 显示全部楼层
本帖最后由 CosyOS 于 2024-1-8 14:45 编辑

CosyOS-II 临界区 互斥访问

关于临界区与互斥访问的问题,是CosyOS在实际应用中的关键问题,作者必须给出明确的指导。
然而,若用户能够深刻理解CosyOS零中断延迟原理,便可无往而不胜,比单纯看使用说明更加有意义。
首先,您有必要了解一下“CosyOS-实时运行模型”,它充分的展示了CosyOS的运行机制,揭示了CosyOS零中断延迟的奥妙


CosyOS-II 零中断延迟基本原理
1、服务层中,SysTick、PendSV、任务临界区,三者间是互斥访问的。换言之,整个服务层是一个大临界区(服务层临界区)。
2、所有内核服务(中断本地服务除外),均在 “服务层临界区” 执行,从而保证服务的 “操作流” 不会被打断。
3、中断本地服务采用互斥访问机制。


CosyOS-II 临界区
CosyOS的临界区可分为 任务临界区服务层临界区全局临界区

任务临界区
任务级的临界区保护,仅关闭系统中断(SysTick、PendSV)。
任务临界区不会破坏零中断延迟,当需要任务级的临界区保护时,可以考虑。

服务层临界区
【任务临界区 + 系统滴答 + 挂起服务调用/钩子】,即CosyOS实时运行模型中的服务层,是系统级的临界区保护。
具体过程:
1、任务中:在任务临界区中访问;
2、滴答中:直接访问即可;
3、中断中:采用挂起服务调用/钩子来访问;

挂起服务调用:iPendSVC(fp);
挂起服务钩子:void pendsv_hook(void);

关于“挂起服务调用”“挂起服务钩子”的区别,在“API用户参考手册 - 全局变量”中有详细描述及应用示例。

服务层临界区不会破坏零中断延迟,当需要系统级的临界区保护时,应首先予以考虑。

全局临界区
系统级的临界区保护,一般会关闭总中断。
具体方式:
8051/80251:操作EA,会关闭总中断。
Arm:
1、操作PRIMASK,会关闭总中断。
2、操作FAULTMASK,会关闭总中断。
3、操作BASEPRI,可实现不同掩蔽范围的全局临界区保护,不会关闭总中断。
全局临界区会破坏零中断延迟,应做为最后的选项,慎重使用。
CosyOS内核中从来不会进入全局临界区,提供此项服务只是为了便于用户对全局公共资源或程序过程的保护。


任务临界区、全局临界区,都支持嵌套功能,最大嵌套深度:255。

何时应用临界区
1、对于CosyOS已经提供服务支持的功能,用户直接调用API实现即可,无需考虑临界区问题。
2、只有在任务中访问“事件标志组”和“非原子全局变量”时,才需要用户自行进入“任务临界区”,参见《API用户参考手册》。
3、用户对其它公共资源或程序过程的保护,才需要考虑采用“临界区”或“其它互斥访问方式”来实现。

临界区应用原则
临界区应遵循快进快出的原则,临界段代码的执行时间应远小于系统滴答周期,这将促使整个系统更加良性的运行。


CosyOS-II 互斥访问
各访问者对同一个目标资源的访问过程是互相排斥的,即每次只允许一个访问者访问目标资源,目标资源是不可重入资源

下述为CosyOS推荐方案:

任务级公共资源
1、互斥信号量:访问过程耗时的、实时性要求不高的,应尽量采用互斥信号量。
2、任务临界区:访问过程迅速的、实时性要求较高的,可考虑任务临界区。

全局公共资源
1、服务层临界区:即可实现全局成功的互斥访问,又不会破坏零中断延迟,是最优方案,应首先予以考虑。
2、二值信号量:弊端是如果获取失败将导致访问失败,而从概率上来说,获取失败是必然会发生的。
3、全局临界区:弊端是全局临界区会破坏零中断延迟,应做为最后的选项,慎重使用。



-- END --

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-03-10 16:08:45

6

主题

131

回帖

666

积分

高级会员

积分
666
发表于 2024-1-8 15:24:00 | 显示全部楼层
Cos*** 发表于 2024-1-8 14:42
CosyOS-II 临界区 与 互斥访问

关于临界区与互斥访问的问题,是CosyOS在实际应用中的关键问题,作者必须给 ...

感谢作者的总结:
目前由于不考虑关闭中断,且希望程序运行时序皆可预期,因此按照您的建议将优先使用如下互斥访问方式:

任务级公共资源
1、互斥信号量:访问过程耗时的、实时性要求不高的,应尽量采用互斥信号量。
2、任务临界区:访问过程迅速的、实时性要求较高的,可考虑任务临界区。

全局公共资源
1、服务层临界区:即可实现全局成功的互斥访问,又不会破坏零中断延迟,是最优方案,应首先予以考虑

点评

对的  发表于 2024-1-8 15:48
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-03-10 16:08:45

6

主题

131

回帖

666

积分

高级会员

积分
666
发表于 2024-1-8 15:27:29 | 显示全部楼层
139182*** 发表于 2024-1-8 15:24
感谢作者的总结:
目前由于不考虑关闭中断,且希望程序运行时序皆可预期,因此按照您的建议将优先使用如 ...

既然这个问题得到回答,那么接着问下一个问题:
在CosyOS2的251平台下,请问任务优先级与任务调度的方式有哪几种,
分别等待调度的延迟有多大?   
--再次感谢作者的耐心解答

点评

任务优先级分组 可在系统配置文件中配置任务优先级分组。 共有六个分组可供选择,8级、16级、32级、64级、128级、256级,您也可自定义分组。 CosyOS的任务优先级,数值越大优先级越高,数值越小优先级越低,最低优先  详情 回复 发表于 2024-1-8 16:08
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:433
  • 最近打卡:2025-05-02 20:23:18

5

主题

1127

回帖

4267

积分

荣誉版主

积分
4267
发表于 2024-1-8 16:08:10 | 显示全部楼层
139182*** 发表于 2024-1-8 15:27
既然这个问题得到回答,那么接着问下一个问题:
在CosyOS2的251平台下,请问任务优先级与任务调度的方式 ...

任务优先级分组
可在系统配置文件中配置任务优先级分组。
共有六个分组可供选择,8级、16级、32级、64级、128级、256级,您也可自定义分组。
CosyOS的任务优先级,数值越大优先级越高,数值越小优先级越低,最低优先级固定为0级。
如您配置的分组为8级,则最高优先级为7级,最低优先级为0级。

任务调度
CosyOS的任务调度类型包括 抢占式调度时间片轮转调度
不同优先级的任务实行抢占式调度;
相同优先级的任务按“先入先出”实行时间片轮转调度,“入”指的是加入到任务队列,即启动任务。
CosyOS的任务调度时机分为 定时调度临时调度

定时调度
在每个系统滴答周期,系统滴答中断都会触发一次任务调度。

临时调度
1、 当前任务被阻塞、挂起、超时、停止、删除时,会立即触发任务调度。
2、 恢复任务时,如果恢复后该任务可以运行并且它的优先级高于当前任务的优先级,会立即触发任务调度。
3、 设置任务优先级时,如果该任务可以运行并且它的新优先级高于当前任务的优先级,会立即触发任务调度。
4、 设置阻塞时间为零或清除阻塞时,该任务会转为就绪状态,如果它的优先级高于当前任务的优先级,会立即触发任务调度。
5、 归还互斥信号量完成时,如果发生过优先级继承(该任务的优先级被提升),会恢复该任务的原优先级,并立即触发任务调度。
6、 用户通过调用服务,直接触发的任务调度,包括任务级任务调度和中断级任务调度。

CosyOS的任务调度策略可最大程度的实现尽可能实时高效的任务切换,使CosyOS的实时性更为优异。




回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 20:32 , Processed in 0.157296 second(s), 117 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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