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

直播视频教学:RTOS, 4/30上午继续,全局不关总中断的CosyOS for STC

 火... [复制链接]

该用户从未签到

551

主题

9237

回帖

1万

积分

管理员

积分
13955
发表于 2023-5-6 14:00:23 | 显示全部楼层
有啥在这讨论,官方保驾护航
回复 支持 反对 送花

使用道具 举报

  • TA的每日心情
    慵懒
    11 小时前
  • 签到天数: 119 天

    [LV.6]常住居民II

    7

    主题

    75

    回帖

    1021

    积分

    金牌会员

    机长

    积分
    1021
    发表于 2023-5-6 14:00:34 | 显示全部楼层
    膜拜大神,坐等向sdcc编译器的迁移
    业余撸代码,专业开飞机
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    61

    主题

    622

    回帖

    1万

    积分

    荣誉版主

    积分
    10818
    发表于 2023-5-6 14:02:26 | 显示全部楼层
    CosyOS 发表于 2023-5-6 12:33
    临界区是有的,同时也开放给用户。CosyOS的临界区只有一种,对于8051、80251内核,在进入临界区时会关闭 S ...

    楼主:
    临界区是有的,同时也开放给用户。CosyOS的临界区只有一种,对于8051、80251内核,在进入临界区时会关闭 SysTick 和 PendSV 中断;
    我也在研究RTOS,我很困难地阅读你的范例程序,但是这个过程的在哪个文件的哪个地方,我看不出来,请指点。
    楼主:
    任务中的个别应用,推荐用户进入临界区执行,这样不仅高效,也是因为个别应用封装为API非常的困难。
    用户如何进入临界区执行,请指出进入临界区和退出临界区的函数名或者宏定义名,请指出,帮助我们学习

    点评

    进入临界区,uEnterCritical 退出临界区,uExitCritical 备注:仅适用于任务  发表于 2023-5-6 14:19
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 15:35
  • 签到天数: 155 天

    [LV.7]常住居民III

    5

    主题

    475

    回帖

    2076

    积分

    荣誉版主

    积分
    2076
     楼主| 发表于 2023-5-6 14:14:28 | 显示全部楼层
    本帖最后由 CosyOS 于 2023-5-6 14:15 编辑
    杨为民 发表于 2023-5-6 13:26
    临界区保护分为两种情况,一种是操作系统本身对系统自身的资源(任务表、调度过程等)的保护,如你上面提 ...

    是的,如你所说,这种情况是存在的。
    如果是全局变量访问,CosyOS提供的服务可确保不会重入,包括在中断中的读、写、和自运算。
    如果涉及到某些对硬件和寄存器的操作,如果仅是在任务中,可以用临界区的方法,仅关闭任务调度;如果是在中断中,只能用户自己实现机制保护或关闭总中断或用户中断了。
    然而,对于OS来说,在系统及服务层面上已经实现了全局不关中断,用户需要关闭中断是他的自由。
    Keil RTX4/5也是相同的道理,也会遇到这种情况。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 15:35
  • 签到天数: 155 天

    [LV.7]常住居民III

    5

    主题

    475

    回帖

    2076

    积分

    荣誉版主

    积分
    2076
     楼主| 发表于 2023-5-6 14:20:08 | 显示全部楼层
    本帖最后由 CosyOS 于 2023-5-15 05:17 编辑
    杨为民 发表于 2023-5-6 14:02
    楼主:
    临界区是有的,同时也开放给用户。CosyOS的临界区只有一种,对于8051、80251内核,在进入临界区时 ...

    CosyOS进入临界区及退出临界区的方法:
    进入临界区,uEnterCritical
    退出临界区,uExitCritical
    备注:仅适用于任务

    所有的API均在文件 usrapi.h 中。
    进入与退出临界区的原型服务在MCU配置头文件中,mcucfg_8051.h, mcucfg_80251.h, mcucfg_cmx.h.
    名称为 mEnterCritical、mExitCritical,均为宏定义。


    再有,关于哪些在任务中的应用需要进入临界区、或推荐用户进入临界区执行,在 CosyOS-API用户参考手册中 均有详细说明。

    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 15:35
  • 签到天数: 155 天

    [LV.7]常住居民III

    5

    主题

    475

    回帖

    2076

    积分

    荣誉版主

    积分
    2076
     楼主| 发表于 2023-5-6 17:51:30 | 显示全部楼层
    本帖最后由 CosyOS 于 2023-5-6 17:58 编辑

    由于本人能力有限,CosyOS定然还存在很多不足之处,希望大家批评指正,我都虚心接受。
    另外,欢迎有兴趣的朋友共同参与到CosyOS的维护建设中,CosyOS还仅仅是一个内核,未来还有很长的路要走。

    由于我在实现 所有内核全局不关中断 方面花费了大量的时间和精力,导致整体进度缓慢。。。
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    61

    主题

    622

    回帖

    1万

    积分

    荣誉版主

    积分
    10818
    发表于 2023-5-6 17:55:42 | 显示全部楼层
    CosyOS 发表于 2023-5-6 14:20
    CosyOS进入临界区及退出临界区的方法:
    进入临界区,uEnterCritical
    退出临界区,uExitCritical

    感谢作者回复和提供的指引,这对理解CosyOS很有帮助。我想这个技术问题也是许多想了解CosyOS的读者会关心的,因此我另外发个贴来说明我的理解和看法,也请作者关注和讨论

    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 15:35
  • 签到天数: 155 天

    [LV.7]常住居民III

    5

    主题

    475

    回帖

    2076

    积分

    荣誉版主

    积分
    2076
     楼主| 发表于 2023-5-6 18:04:03 | 显示全部楼层
    本帖最后由 CosyOS 于 2023-5-6 18:06 编辑
    杨为民 发表于 2023-5-6 17:55
    感谢作者回复和提供的指引,这对理解CosyOS很有帮助。我想这个技术问题也是许多想了解CosyOS的读者会关心 ...

    你提的问题很好,是客观存在的问题,也希望大家都能发表自己的看法,共同讨论。真理不辨不明。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 15:35
  • 签到天数: 155 天

    [LV.7]常住居民III

    5

    主题

    475

    回帖

    2076

    积分

    荣誉版主

    积分
    2076
     楼主| 发表于 2023-5-8 10:38:56 | 显示全部楼层
    本帖最后由 CosyOS 于 2023-5-15 05:18 编辑

    CosyOS已升级至V2.3.6-beta,重构了临界区,把临界区划分为“任务临界区”与“全局临界区”。
    任务临界区是任务级的临界区保护,仅关闭任务调度(SysTick、PendSV);
    全局临界区是系统级的临界区保护,会关闭总中断。CosyOS内核中从来不会进入全局临界区,提供此项服务只是为了便于用户对全局公共资源的保护。
    两种临界区都支持嵌套功能,可在系统配置头文件中设置嵌套功能的开启或关闭,默认为开启。
    20230508102916.png


    CosyOS的内核中还有些功能做的不够完善,如还未支持递归互斥信号量等,会在以后的版本中逐步完善。



    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 15:35
  • 签到天数: 155 天

    [LV.7]常住居民III

    5

    主题

    475

    回帖

    2076

    积分

    荣誉版主

    积分
    2076
     楼主| 发表于 2023-5-9 10:59:06 | 显示全部楼层
    本帖最后由 CosyOS 于 2023-5-9 11:08 编辑

    最新消息
    这两天CosyOS还要有一次重要升级,待测试完成后再发布新版给大家。
    主要包括:

    1、优化临界区代码,原有设计过于谨慎,会影响进出临界区的效率,需做简化。
    2、可能要优化一下任务启动流程。

    未来,我会加强对CosyOS应用的讲解,并分享自己使用RTOS开发项目的心得。
    回复 支持 1 反对 0 送花

    使用道具 举报

    高级模式
    B Color Image Link Quote Code Smilies |上传

    本版积分规则

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

    GMT+8, 2024-4-30 11:38 , Processed in 0.070681 second(s), 67 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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