分享一款国产开源的零中断延迟RTOS:CosyOS

strongerHuang 2025-01-12 12:21

关注+星标公众,不错过精彩内容

作者 | 来源gitee


基于用心做过项目的朋友应该知道在项目,以关闭总中断等方式来保护临界段所带来的危害性(丢失响应、处理延误)。比如高速通讯接收丢帧、高速捕获丢失脉冲等中断丢失响应现象。


有些RTOS肆意关闭总中断,且未能提供“系统最大关闭中断时间”等核心关键参数,实时性已无从谈起。据统计,越来越多的用户均对此表达了不满,并对RTOS中断响应的实时性提出了要求,希望高优先级中断能够实时抢占、零中断延迟。


随着时代的发展、科技的进步,零中断延迟已经成为可能......于是,就有工程师开发了一款零中断延迟的RTOS:CosyOS.


开源地址:

https://gitee.com/cosyos/cosyos


关于CosyOS

CosyOS是一款来自中国的开源实时操作系统,从经典的8051内核,到流行的Arm Cortex-M内核,均可实现全局不关总中断、零中断延迟,适用于对系统实时性及中断响应速度有较高要求的场合。
CosyOS以极具浪漫主义色彩的宏定义,实现了高度的面向对象及良好的易用性。
CosyOS以零中断延迟为宗旨,突破创新为方针,简单易用为原则。

CosyOS-实时运行模型

  • 用户中断层
    -> 中断本地服务的执行
    -> 中断挂起服务的装载

  • 内核服务层

    • SysTick [minpri]
      -> 软件RTC/定时器计数
      -> 恢复定时任务
      -> 调用定时钩子/滴答钩子(滴答服务的执行)

    • PendSV [minpri]
      -> 中断挂起服务的执行
      -> 任务调度/切换

    • 任务临界区 [关闭SysTick/PendSV]
      -> 任务服务的执行

  • 任务层

    • Taskmgr[maxpri]

    • Debugger[maxpri]

    • Starter[maxpri-1]

    • 一般用户任务[maxpri-1 ~ minpri+1:1]

    • 用户空闲任务[minpri:0]

    • 系统空闲任务[minpri:0]

  • 用户中断按中断优先级实时抢占、零中断延迟

  • 不同优先级的任务抢占式调度,相同优先级的任务时间片轮转调度

零中断延迟基本原理

  • 服务层中,SysTick、PendSV、任务临界区,三者间是互斥访问的。换言之,整个服务层是一个大临界区(服务层临界区)。

  • 所有内核服务(中断本地服务除外),均在 “服务层临界区” 执行,从而保证服务的 “操作流” 不会被打断。

  • 中断本地服务采用互斥访问机制。

初体验

下面,让我们来初步体验一下CosyOS的易用性。

CosyOS一步创建任务示例:

任务名称任务优先级任务栈大小安全运行时私信
demo1_task1级128字节0,无限长0,无私信
demo2_task2级256字节9个时间片3个参数

注1:安全运行时是CosyOS的安全关键技术,可防止某任务长期独占或超时使用处理器。
注2:私信是CosyOS独创的一种任务间通信方式,可用来实现信号、事件、消息等功能。

# 静态创建demo1_task
uCreateTask(demo1_task, 1, 128, 0, 0)
{
uSendTaskMsg(demo2_task) "hello", 999, 3.14); // 发送私信至demo2_task
uDelay_ms(100); // 阻塞延时100ms
uEndTasking; // 所有任务线程的最后一句代码
}
# 动态创建demo2_task
dCreateTask(demo2_task, 2, 256, 9, 3)(char *p, int a, float b)
{
if(uRecvTaskMsg(500)){ // 接收私信,超时时间为500个滴答周期,返回真则接收成功
/* 使用私信(读取p、a、b)*/
}
uEndTasking;
}
# 启动钩子
void start_hook(void)
{
uStartTask(demo1_task, 0); // 启动demo1_task并置任务的初始状态为就绪状态
uStartTask(demo2_task, 1); // 启动demo2_task并置任务的初始状态为挂起状态
}

您有没有眼前一亮呢?CosyOS创建一个任务竟如此简单,通过调用API并输入各项参数,而后直接写任务代码即可(已集成循环,用户可不必再写循环)。下一步就是在启动钩子中启动任务,任务便可参与调度并运行了。
CosyOS还开创性的把任务形参用做私信,私信参数(数量、名称、类型)可随意定义,与普通函数定义形参如出一辙。其它应用也都有着异曲同工之妙,即无论做什么事,都尽可能做到简化流程一步完成,最大程度的降低开发者的工作量,给开发者创造一个温馨舒适的开发环境。

突破创新

  • 实现了所有内核全局不关总中断(零中断延迟),保证了中断的实时响应

  • 独家技术实现系统服务的可重入,使51彻底摆脱可重入栈、全面提速

  • 针对51做了高度的性能优化,使51迸发出蓬勃生机、熠熠生辉

  • 251支持MSP、PSP两种栈模式,其中PSP模式可使任务的切换效率等同于Cortex-M

  • 定时服务(软件定时器中断),包括定时中断任务/钩子、定时查询任务/钩子,优先级都可由用户灵活配置

  • 软件RTC,支持设置时间和获取时间,可替代硬件RTC

  • 独创的飞信,极简类型、极速通信,是线程间通信的利器

  • 独创的私信,随意定义,灵活多变,便于多条消息的传递

  • 消息邮箱,每个邮箱在创建时,都可定义自己的数据类型,极大的丰富了邮件的形式,方便了线程间消息的传递

  • 消息队列,支持静态队列和动态队列,传输模式支持FIFO、LIFO,采用高效的指针引用方式

  • 事件标志组,声明标志组的同时定义标志位,不同标志组的标志位可以重名,对标志组和标志位的访问通过组名和位名来实现,极大的方便了标志组的应用

  • 全局变量访问,支持在任意任务和中断中对全局变量的安全访问,而不必担心重入的发生

  • 安全关键技术,有多项安全关键技术,如中断挂起服务空间隔离、安全运行时,可靠性高

  • 任务栈监控,拥有多项任务栈监控措施,可提前预判任务栈溢出的风险

因循守旧

  • 完全开源的免版税、确定性的RTOS

  • 任务调度支持抢占式调度、时间片轮转调度

  • 用户任务数量不限,且每个任务都可以有255级优先级(0~254)

  • 简洁高效的代码,极低的硬件资源占用,使CosyOS可轻松应用于各种小型MCU

  • 任务管理器,可实时监控各任务的运行,便于开发者急时发现设计中存在的潜在问题

    —————————— CosyOS-任务管理器 ——————————

支持内核

CosyOS现支持8051、80251、Cortex-M等内核,未来会陆续添加对其它内核的支持。

编译环境

CosyOS是在keil C51、C251、MDK-Arm编译器下开发的,对其支持最好。
未来,将会陆续优化调整对其它编译器的支持。

文件说明


名称描述
SystemCosyOS的内核文件
ur_api.h:用户API
sv_:系统服务文件
os_:其它内核文件
ConfigCosyOS的配置文件
syscfg.h:系统配置文件
mcucfg_:MCU配置文件
HookCosyOS的系统钩子
CosyOS已经为用户创建好了六个系统钩子函数,
分别位于各自的同名文件中,用户直接写代码即可。

------------ END ------------



●专栏《嵌入式工具

●专栏《嵌入式开发》

●专栏《Keil教程》

●嵌入式专栏精选教程


关注公众号回复“加群”按规则加入技术交流群,回复“1024”查看更多内容。

点击“阅读原文”查看更多分享。

strongerHuang 作者黄工,高级嵌入式软件工程师,分享嵌入式软硬件、物联网、单片机、开发工具、电子等内容。
评论
  • 光伏逆变器是一种高效的能量转换设备,它能够将光伏太阳能板(PV)产生的不稳定的直流电压转换成与市电频率同步的交流电。这种转换后的电能不仅可以回馈至商用输电网络,还能供独立电网系统使用。光伏逆变器在商业光伏储能电站和家庭独立储能系统等应用领域中得到了广泛的应用。光耦合器,以其高速信号传输、出色的共模抑制比以及单向信号传输和光电隔离的特性,在光伏逆变器中扮演着至关重要的角色。它确保了系统的安全隔离、干扰的有效隔离以及通信信号的精准传输。光耦合器的使用不仅提高了系统的稳定性和安全性,而且由于其低功耗的
    晶台光耦 2025-01-09 09:58 112浏览
  • 一个真正的质量工程师(QE)必须将一件产品设计的“意图”与系统的可制造性、可服务性以及资源在现实中实现设计和产品的能力结合起来。所以,可以说,这确实是一种工程学科。我们常开玩笑说,质量工程师是工程领域里的「侦探」、「警察」或「律师」,守护神是"墨菲”,信奉的哲学就是「墨菲定律」。(注:墨菲定律是一种启发性原则,常被表述为:任何可能出错的事情最终都会出错。)做质量工程师的,有时会不受欢迎,也会被忽视,甚至可能遭遇主动或被动的阻碍,而一旦出了问题,责任往往就落在质量工程师的头上。虽然质量工程师并不负
    优思学院 2025-01-09 11:48 158浏览
  • 根据环洋市场咨询(Global Info Research)项目团队最新调研,预计2030年全球中空长航时无人机产值达到9009百万美元,2024-2030年期间年复合增长率CAGR为8.0%。 环洋市场咨询机构出版了的【全球中空长航时无人机行业总体规模、主要厂商及IPO上市调研报告,2025-2031】研究全球中空长航时无人机总体规模,包括产量、产值、消费量、主要生产地区、主要生产商及市场份额,同时分析中空长航时无人机市场主要驱动因素、阻碍因素、市场机遇、挑战、新产品发布等。报告从中空长航时
    GIRtina 2025-01-09 10:35 150浏览
  • 车机导航有看没有懂?智能汽车语系在地化不可轻忽!随着智能汽车市场全球化的蓬勃发展,近年来不同国家地区的「Automotive Localization」(汽车在地化)布局成为兵家必争之地,同时也是车厂在各国当地市场非常关键的营销利器。汽车在地化过程中举足轻重的「汽车语系在地化」,则是透过智能汽车产品文字与服务内容的设计订制,以对应不同国家地区用户的使用习惯偏好,除了让当地车主更能清楚理解车辆功能,也能进一步提高品牌满意度。客户问题与难处某车厂客户预计在台湾市场推出新一代车款,却由于车机导航开发人
    百佳泰测试实验室 2025-01-09 17:47 98浏览
  • Snyk 是一家为开发人员提供安全平台的公司,致力于协助他们构建安全的应用程序,并为安全团队提供应对数字世界挑战的工具。以下为 Snyk 如何通过 CircleCI 实现其“交付”使命的案例分析。一、Snyk 的挑战随着客户对安全工具需求的不断增长,Snyk 的开发团队面临多重挑战:加速交付的需求:Snyk 的核心目标是为开发者提供更快、更可靠的安全解决方案,但他们的现有 CI/CD 工具(TravisCI)运行缓慢,无法满足快速开发和部署的要求。扩展能力不足:随着团队规模和代码库的不断扩大,S
    艾体宝IT 2025-01-10 15:52 124浏览
  • 1月9日,在2025国际消费电子展览会(CES)期间,广和通发布集智能语音交互及翻译、4G/5G全球漫游、随身热点、智能娱乐、充电续航等功能于一体的AI Buddy(AI陪伴)产品及解决方案,创新AI智能终端新品类。AI Buddy是一款信用卡尺寸的掌中轻薄智能设备,为用户带来实时翻译、个性化AI语音交互助手、AI影像识别、多模型账户服务、漫游资费服务、快速入网注册等高品质体验。为丰富用户视觉、听觉的智能化体验,AI Buddy通过蓝牙、Wi-Fi可配套OWS耳机、智能眼镜、智能音箱、智能手环遥
    物吾悟小通 2025-01-09 18:21 139浏览
  • 职场是人生的重要战场,既是谋生之地,也是实现个人价值的平台。然而,有些思维方式却会悄无声息地拖住你的后腿,让你原地踏步甚至退步。今天,我们就来聊聊职场中最忌讳的五种思维方式,看看自己有没有中招。1. 固步自封的思维在职场中,最可怕的事情莫过于自满于现状,拒绝学习和改变。世界在不断变化,行业的趋势、技术的革新都在要求我们与时俱进。如果你总觉得自己的方法最优,或者害怕尝试新事物,那就很容易被淘汰。与其等待机会找上门,不如主动出击,保持学习和探索的心态。加入优思学院,可以帮助你快速提升自己,与行业前沿
    优思学院 2025-01-09 15:48 139浏览
  • 在智能网联汽车中,各种通信技术如2G/3G/4G/5G、GNSS(全球导航卫星系统)、V2X(车联网通信)等在行业内被广泛使用。这些技术让汽车能够实现紧急呼叫、在线娱乐、导航等多种功能。EMC测试就是为了确保在复杂电磁环境下,汽车的通信系统仍然可以正常工作,保护驾乘者的安全。参考《QCT-基于LTE-V2X直连通信的车载信息交互系统技术要求及试验方法-1》标准10.5电磁兼容试验方法,下面将会从整车功能层面为大家解读V2X整车电磁兼容试验的过程。测试过程揭秘1. 设备准备为了进行电磁兼容试验,技
    北汇信息 2025-01-09 11:24 141浏览
  • 在过去十年中,自动驾驶和高级驾驶辅助系统(AD/ADAS)软件与硬件的快速发展对多传感器数据采集的设计需求提出了更高的要求。然而,目前仍缺乏能够高质量集成多传感器数据采集的解决方案。康谋ADTF正是应运而生,它提供了一个广受认可和广泛引用的软件框架,包含模块化的标准化应用程序和工具,旨在为ADAS功能的开发提供一站式体验。一、ADTF的关键之处!无论是奥迪、大众、宝马还是梅赛德斯-奔驰:他们都依赖我们不断发展的ADTF来开发智能驾驶辅助解决方案,直至实现自动驾驶的目标。从新功能的最初构思到批量生
    康谋 2025-01-09 10:04 136浏览
  • 在当前人工智能(AI)与物联网(IoT)的快速发展趋势下,各行各业的数字转型与自动化进程正以惊人的速度持续进行。如今企业在设计与营运技术系统时所面临的挑战不仅是技术本身,更包含硬件设施、第三方软件及配件等复杂的外部因素。然而这些系统往往讲究更精密的设计与高稳定性,哪怕是任何一个小小的问题,都可能对整体业务运作造成严重影响。 POS应用环境与客户需求以本次分享的客户个案为例,该客户是一家全球领先的信息技术服务与数字解决方案提供商,遭遇到一个由他们所开发的POS机(Point of Sal
    百佳泰测试实验室 2025-01-09 17:35 155浏览
  • HDMI 2.2 规格将至,开启视听新境界2025年1月6日,HDMI Forum, Inc. 宣布即将发布HDMI规范2.2版本。新HDMI规范为规模庞大的 HDMI 生态系统带来更多选择,为创建、分发和体验理想的终端用户效果提供更先进的解决方案。新技术为电视、电影和游戏工作室等内容制作商在当前和未来提供更高质量的选择,同时实现多种分发平台。96Gbps的更高带宽和新一代 HDMI 固定比率速率传输(Fixed Rate Link)技术为各种设备应用提供更优质的音频和视频。终端用户显示器能以最
    百佳泰测试实验室 2025-01-09 17:33 176浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦