找回密码
 立即注册
楼主: fan***

原创极简的51-MCU专用RTOS TinyRTOS51

[复制链接]

该用户从未签到

20

主题

578

回帖

1221

积分

荣誉版主

积分
1221
发表于 2024-5-8 11:57:26 | 显示全部楼层
fanxsp 发表于 2024-5-8 11:43
昨天我仔细梳理了一下,上下文切换,不关总中断,只关PendSV  , 应该是可以的,要做个程序测试一下,你也 ...

我是任务级也在PendSV里切换,所以不存在切换重入,也不存在关PendSV.


我没有你做的效率那么高, 就是不管任务级还是中断级, 都会全寄存器入栈,统一用PendSV处理
这样的好处是代码不用搞几份,缺点是牺牲了一些效率, 所幸的是不关中断这个好处,
足以抵消所有坏处,而对于任务级响应,不差这几个微秒

我想了一下,你的区分任务级和中断级切换,应该也是可以实现的,只需要在任务级切换时,
关掉PendSV,而不是关掉全部中断



点评

为什么不试试呢?  详情 回复 发表于 2024-5-8 12:03
回复 支持 反对 送花

使用道具 举报

该用户从未签到

66

主题

714

回帖

1万

积分

荣誉版主

积分
10969
发表于 2024-5-8 12:03:00 | 显示全部楼层
tzz1983 发表于 2024-5-8 11:57
我是任务级也在PendSV里切换,所以不存在切换重入,也不存在关PendSV.

为什么不试试呢?
回复 支持 反对 送花

使用道具 举报

该用户从未签到

20

主题

578

回帖

1221

积分

荣誉版主

积分
1221
发表于 2024-5-8 12:05:14 | 显示全部楼层
本帖最后由 tzz1983 于 2024-5-8 12:07 编辑
fanxsp 发表于 2024-5-8 11:43
昨天我仔细梳理了一下,上下文切换,不关总中断,只关PendSV  , 应该是可以的,要做个程序测试一下,你也 ...

但是还是得实践,我对你的代码也不是很熟悉,你是用链来处理优先级的,这个PendSV和高优中断调用OS服务就可能有交叉访问,实际上访问核心全局变是时还是得关中断,只是搬运的时候可以免
回复 支持 反对 送花

使用道具 举报

  • TA的每日心情
    奋斗
    10 小时前
  • 签到天数: 183 天

    [LV.7]常住居民III

    1

    主题

    166

    回帖

    759

    积分

    高级会员

    积分
    759
     楼主| 发表于 2024-5-8 12:11:25 | 显示全部楼层
    杨为民 发表于 2024-5-8 12:03
    为什么不试试呢?

    已经做了,现在是要做一个测试程序,比较严格的测试一下

    点评

    你就按照排行榜的程序把你的新版本发上来,我准备将在STC8H在测试比较专门发一个帖子,希望得到你的支持。 大家一起来研究一下“不关闭总中断”的临界区保护方法,如果技术成熟,每个本尊都有“关闭总中断”和“不关  详情 回复 发表于 2024-5-8 12:18
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    66

    主题

    714

    回帖

    1万

    积分

    荣誉版主

    积分
    10969
    发表于 2024-5-8 12:12:08 | 显示全部楼层
    CosyOS 发表于 2024-5-8 11:03
    Keil RTX 4/5 是完全继承并发展了 Arm 对 OS 的设计思想,
    其它许多 RTOS 都仅是部分借鉴,如在 PendSV 中 ...

    要不你也把你的“零中断延迟”的M3/M4上的CosyOS-II的测试程序也放上来,和我移植的uC/OS-II比较一下?
    不争RTX4/5的理念和方法是不是创新,不争别人的RTOS是不是“墨守成规”。
    只具体比较一下你的CosyOS-II是否实现了“高优先级中断零延迟”,我移植的uC/OS-II关闭总中断是否造成了“高优先级中断延迟”,同时再比较一下排行榜上的指标?
    比一比不就知道了?用具体的数字和事实说话,行吗?

    点评

    好的,杨老师,理论说的已经够多的了,不再说了, 我抽空整理一下测试程序,发上来。  详情 回复 发表于 2024-5-8 12:18
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    9 小时前
  • 签到天数: 185 天

    [LV.7]常住居民III

    5

    主题

    604

    回帖

    2483

    积分

    荣誉版主

    积分
    2483
    发表于 2024-5-8 12:12:59 | 显示全部楼层
    本帖最后由 CosyOS 于 2024-5-8 12:20 编辑



    我再重复介绍一遍,由ARM设计的、现代的、“安全关键” 的OS思想。
    “安全关键” 主要包括 两方面内容,空间隔离时间隔离

    任务中调用的服务,通过调用SVC来间接执行;
    中断中调用的服务(中断挂起服务),通过触发PendSV来缓期执行。
    实现了 用户代码内核服务 的空间隔离、任务服务中断服务 的空间隔离。(两对空间隔离)

    空间隔离的优势:
    1、内核服务可以经过充分的测试,从而能使系统更加健壮和可靠。
    2、任务无需在特权级下运行,可以运行在用户级(无法直接访问关键寄存器)

         用户程序无需承担因误操作而瘫痪整个系统的风险。
    3、如果在任务中调用中断服务(必将触发PendSV),由于权限不够,会引发总线 fault
    4、如果在中断中调用任务服务(必将触发SVC),由于用法错误,将上访成硬 fault
    从而全面提升整个系统的安全性和可靠性。



    任务应工作在“用户级”,而不是“特权级”
    以免因用户误操作,错误修改关键寄存器,
    这样才更符合“安全关键”!


    关于  时间隔离  以后再介绍。






    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    9 小时前
  • 签到天数: 185 天

    [LV.7]常住居民III

    5

    主题

    604

    回帖

    2483

    积分

    荣誉版主

    积分
    2483
    发表于 2024-5-8 12:18:34 | 显示全部楼层
    杨为民 发表于 2024-5-8 12:12
    要不你也把你的“零中断延迟”的M3/M4上的CosyOS-II的测试程序也放上来,和我移植的uC/OS-II比较一下?
    ...

    好的,杨老师,理论说的已经够多的了,不再说了,
    我抽空整理一下测试程序,发上来。



    点评

    我在M3上移植的uC/OS-II已经放在排行榜帖子里了,现在你的CosyOS for M4已经发上来了,那么对于我的这个要求: 这样RTX4/5的理念和方法是不是创新,我移植的RTOS是不是“墨守成规”?比一比不就知道了?用事实说话  详情 回复 发表于 2024-5-10 01:43
    谢谢支持。 其实对于STC单片机用户而言,有越多的RTOS和种类供他选择,越好。 从中国古人的烧烤一种口味,到现在的超过八大菜系缤纷美食,管它食品协会的大佬说什么,老百姓得到更多的选择才是王道。 从本质上说,排  详情 回复 发表于 2024-5-8 12:26
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    66

    主题

    714

    回帖

    1万

    积分

    荣誉版主

    积分
    10969
    发表于 2024-5-8 12:18:36 | 显示全部楼层
    fanxsp 发表于 2024-5-8 12:11
    已经做了,现在是要做一个测试程序,比较严格的测试一下

    你就按照排行榜的程序把你的新版本发上来,我准备将在STC8H在测试比较专门发一个帖子,希望得到你的支持。
    大家一起来研究一下“不关闭总中断”的临界区保护方法,如果技术成熟,每个本尊都有“关闭总中断”和“不关闭总中断”的临界区保护方法两个版本
    对于STC单片机用户而言,鱼与熊掌就都有了。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    10 小时前
  • 签到天数: 183 天

    [LV.7]常住居民III

    1

    主题

    166

    回帖

    759

    积分

    高级会员

    积分
    759
     楼主| 发表于 2024-5-8 12:21:00 | 显示全部楼层
    杨为民 发表于 2024-5-8 12:18
    你就按照排行榜的程序把你的新版本发上来,我准备将在STC8H在测试比较专门发一个帖子,希望得到你的支持 ...

    还是要关总中断的,只是在任务切换过程,不用全程关总中断,只关一小段时间。

    点评

    再试试,我认为你写的和tzz1983移植到STC8H上的uC/OS都可以实现“不关闭总中断”的版本  详情 回复 发表于 2024-5-8 12:30
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    66

    主题

    714

    回帖

    1万

    积分

    荣誉版主

    积分
    10969
    发表于 2024-5-8 12:26:17 | 显示全部楼层
    CosyOS 发表于 2024-5-8 12:18
    好的,杨老师,理论说的已经够多的了,不再说了,
    我抽空整理一下测试程序,发上来。

    谢谢支持。
    其实对于STC单片机用户而言,有多的RTOS和种类供他选择,越好。
    从中国古人的烧烤一种口味,到现在的超过八大菜系缤纷美食,管它食品协会的大佬说什么,老百姓得到更多的选择才是王道。
    从本质上说,排行榜就是各位本尊向大家展示和提供免费品尝的食品博览会

    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-29 18:38 , Processed in 0.069088 second(s), 65 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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