CosyOS
发表于 2023-5-19 22:39:05
示例代码的最新版本已发布,请去顶楼下载!以后均在顶楼发布最新版。
神农鼎
发表于 2023-5-19 23:00:32
请到顶楼下载最新发布的:
STC 1T 8051 原生RTOS,STC 32位8051 原生RTOS,
不是移植的 RTOS
DemoCode
基于 FreeRTOS-STC32G-CORE-V1.0.2-Library-DemoCode-20220817 修改的,将FreeRTOS替换为CosyOS的示例代码,
目的是能让用户快速掌握CosyOS的基本应用,降低使用门槛。
作者仅做了必要的调整,调整的地方多是先注释掉原来的代码,再在下方重写,以便用户比较CosyOS与FreeRTOS的异同。
示例代码简要说明:
配置情况:
系统时钟24MHz,任务管理器使用UART1(切换至P1.6/P1.7,波特率460800),PendSV_Handler使用外部中断0。
任务管理器已配置为开机自动启动,USB-TTL接入P1.6/P1.7,打开串口助手设置正确的波特率即可输出。
配置文件:
syscfg.h (系统配置文件,.\Sources\Config\syscfg.h)
mcucfg_80251.h(MCU配置文件,.\Sources\Config\mcucfg_80251.h)
CosyOS.h (用户配置文件,.\Sources\User\include\CosyOS.h)
最新版本下载:CosyOS-STC32G-CORE-V1.0.4-Library-DemoCode-20230519(CosyOS内核版本 V2.3.11-beta,附带所有说明文档)
CosyOS
发表于 2023-5-20 13:30:34
CosyOS最新版 v2.3.11-beta 调整记录:
1、任务中接收私信、任务中接收邮件,这两个服务调整为不需要可重入栈(reentrant),
而是和其它服务一样,天生就是不会重入或可重入的。
2、提供了任务调度接口,包括任务级任务调度和中断级任务调度,以便用户自己触发任务调度。
至此,CosyOS又一次完成了突破,使51彻底摆脱可重入栈。
中断中接收邮件、中断中接收消息,这两个服务对于不同的MCU内核有所不同:
1、对于51来说,这两个服务是不可重入的,仅能在相同优先级的各个中断中调用,
也不允许用户的自定义函数声明为“reentrant”使用可重入栈。
2、对于251、Arm32,这两个服务是可重入的,用户在中断中可随意调用。
CosyOS
发表于 2023-5-23 18:35:55
STC 原生 RTOS 最新版 CosyOS 示例代码已发布,请到楼顶下载!本版本2023/5/23晚18时发布
最新版调整记录:
1、调整了任务中接收私信、任务中接收邮件,不仅减少了内存和code,代码执行效率也有较大提升。
2、调整了中断中接收邮件,即使是51也不会重入,可随意调用。
3、251已支持“全局可重入函数 + REMOVEUNUSED”,以自动移除未使用的代码段和数据段。
4、删除了MCU配置头文件中的pdata选项,并优化了部分配置项。
5、修复了一个bug。
神农鼎
发表于 2023-5-23 20:51:33
好,必须全网学习{:4_196:}
如果顶楼描述可以优化到最新的,建议将顶楼文字部分也修改到最新特色
sdwys
发表于 2023-5-24 16:26:39
大佬看了下你的大作发表一下自己的意见,大体浏览了一下,感觉一个字 “乱”,可读性不高,在代码风格上建议作者参考下RT-THREAD,代码分类也合理。 内核函数都有相应的标记,必要的代码都有说明注释,代码风格清晰明了。CosyOS 中"Task_Scheduler(void)"函数竟让接近700行代码,没详细注释能读完的都是高手,建议作者去参考一下微软或华为代码编写格式的标准。CosyOS作为个新兴系统刚起步,要确立好自己的风格和市场定位,如果作为51或251的专属系统那就往深了优化,做精,市场也不小。如果想兼顾RAM和risc-v那用户就不如直接用RT-THREAD了。代码注释一定要做好,最好全中文,未来你的用户大部分是国人。内核,驱动,组件,应用一定要分好,可读性一定要高,必要的时候要插入说明。刚看了一下,没深入研究,希望CosyOS能做好做精。
CosyOS
发表于 2023-5-24 18:36:12
sdwys 发表于 2023-5-24 16:26
大佬看了下你的大作发表一下自己的意见,大体浏览了一下,感觉一个字 “乱”,可读性不高,在代码风格上建 ...
是的,这是个问题,注释确实太少,我会陆续添加中文注释,让他人容易看懂。感谢你的建议!{:4_196:}
CosyOS
发表于 2023-5-29 15:52:33
本帖最后由 CosyOS 于 2023-5-29 23:54 编辑
STC 原生 RTOS 最新版 CosyOS 全新大版本升级,即将推出,敬请期待!!!
新版本将调整如下功能:
1、重命名了所有内核文件,名称更加直观、易懂。
2、增加了部分注释。
3、更多模块支持可裁剪(如任务管理器等)。
4、增加了新的线程通信组件“飞信”,可实现轻量级超高速的线程通信。
5、调整了中断异步服务执行架构,由开关语句中遍历SVID调整为根据SVID直接调用函数指针,
可有效的加速中断异步服务的执行速度。
6、针对51进行了部分深度优化。
7、优化了优先级继承算法。
神农鼎
发表于 2023-5-29 18:58:55
好,期待{:4_196:}
CosyOS
发表于 2023-5-30 17:52:18
STC 原生 RTOS 最新版 CosyOS 示例代码已发布,请到楼顶下载!
本版本2023/5/29晚23时发布
STC 原生 RTOS CosyOS - 各种线程通信方式的比较
飞信:极简类型、极速通信
数据类型极简:51为u8、251为u16、Arm32为u32。
消息与消息标志复用:仅用一个变量,即能传输消息,同时又是新消息标志。有效消息必须为真值,0代表无消息。
通信速度极快:如51下,飞信内存为data,在任务或滴答中发送飞信,汇编仅需一条MOV指令即可完成。
私信:随意定义、灵活多变
私信参数的数量、名称、数据类型都可随意定义,使用极为灵活。
私信是直接发送给任务(消费者),所以叫私信,不像其它三种通信方式是发送到信箱或队列中(生产者不知道消费者是谁)。
私信只能发送给任务、中断中不能发送私信。
消息邮箱:任意类型、数据拷贝
邮箱在创建时需指定数据类型,可以是任意类型(包括结构体、数组等),最大255字节。
发送邮件时,是拷贝数据至邮箱;接收邮件时,是从邮箱拷贝数据到本地。
消息队列:并发通信、指针引用
消息队列适用于可能存在瞬时并发发送消息的场合,即生产速度 > 消费速度的时候。
发送消息时,是把消息指针放到队列上;接收消息时,返回的是消息指针。
以上就是CosyOS四种线程通信方式的简单对比(当然还有其它通信方式,未在此次对比中),
可根据具体情况灵活选择最为合适的通信方式。