- 打卡等级:以坛为家II
- 打卡总天数:432
- 最近打卡:2025-05-01 16:19:56
荣誉版主
- 积分
- 4263
|
发表于 2023-10-15 19:11:55
|
显示全部楼层
本帖最后由 CosyOS 于 2023-10-15 23:57 编辑
新版 CosyOS 即将发布,将正式命名为 CosyOS-Ⅱ !!!
新版CosyOS(CosyOS-Ⅱ),将继续秉承老版CosyOS(CosyOS-Ⅰ)的宗旨:实现“所有内核全局不关总中断(零中断延迟)”,
不仅在代码风格上焕然一新,更在某些关键技术上实现了自我突破,是一次全新的开始。
CosyOS-Ⅱ 简介
1、代码风格
将以linux风格为主线,并结合其它命名法,再适当加以变化,已经形成了CosyOS-Ⅱ自己的风格。
当前的进度是“重命名”的工作均已完成,书写规范仍需在日后陆续优化调整、注释也需陆续丰富。
相信CosyOS-Ⅱ将会给您一种全新的体验及视觉上的享受。
2、中断挂起服务
零中断延迟中的关键技术:中断挂起服务,已实现:“对于所有内核的MCU,中断挂起服务缓存均为先入先出,即 PendSV_FIFO”。
首先要说明,对于中断挂起服务来说,只有先入先出才会完全符合用户的预期,否则可能会导致严重的错误。
CosyOS-Ⅰ 在这方面是有缺陷的,CosyOS-Ⅱ 已无遗憾。
关于为何中断挂起服务缓存为先入先出才会完全符合用户的预期,以后我会专门开帖子介绍。
正是由于这个技术的突破,同时还实现了:“对于8051、80251的MCU来说,用户在调用中断挂起服务时,
不用再输入服务ID(svid),使得所有内核的MCU,中断挂起服务的API实现了统一”。
如中断中发送消息:
CosyOS-Ⅰ:
/* [ARM] */
iSendMsg(que, msg);
/* [!ARM] */
iSendMsg(que, msg, svid);
CosyOS-Ⅱ:
iSendMsg(que, msg);
3、临界区中调用服务
关于在临界区中调用服务,CosyOS-Ⅱ 仅有一条限制,“在任务中,不允许用户在临界区(包括任务临界区和全局临界区)中调用阻塞类的服务”。
4、优化了系统配置文件和MCU配置文件
(1)合理的优化了其中的一些配置项。
(2)任务栈监控功能实现了将根据用户的配置情况自动设定为禁用或启用。
任务栈监控功能的启用条件:启用了DEBUG接口 || 任务栈模式为MSP模式 && 任务创建模式 != 静态。
5、重命名了部分API
有少数API进行了重命名,原因是原有的名称实在是不够科学。
补充说明一:什么是零中断延迟?
零中断延迟并非是中断的响应时间为零,而是指当引入了RTOS以后,中断的响应时间仍然能够达到MCU内核特性的响应时间,即只要中断发生,就能按中断优先级立即抢占,绝不延误。
补充说明二:CosyOS - 实时运作模型
中断层【用户中断按中断优先级实时抢占(零中断延迟)】
>>>>
服务层【SysTick、PendSV、任务临界区】,SysTick、PendSV,均为最低优先级中断;进入任务临界区:关闭SysTick、PendSV。
>>>>
任务层【不同优先级的任务实行抢占式调度,相同优先级的任务按FIFO实行时间片轮转调度】
CosyOS-Ⅱ 将于未来几日择机发布!
|
|