hsrzq 发表于 2023-5-6 14:00:34

膜拜大神,坐等向sdcc编译器的迁移

杨为民 发表于 2023-5-6 14:02:26

CosyOS 发表于 2023-5-6 12:33
临界区是有的,同时也开放给用户。CosyOS的临界区只有一种,对于8051、80251内核,在进入临界区时会关闭 S ...

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

CosyOS 发表于 2023-5-6 14:14:28

本帖最后由 CosyOS 于 2023-5-6 14:15 编辑

杨为民 发表于 2023-5-6 13:26
临界区保护分为两种情况,一种是操作系统本身对系统自身的资源(任务表、调度过程等)的保护,如你上面提 ...
是的,如你所说,这种情况是存在的。
如果是全局变量访问,CosyOS提供的服务可确保不会重入,包括在中断中的读、写、和自运算。
如果涉及到某些对硬件和寄存器的操作,如果仅是在任务中,可以用临界区的方法,仅关闭任务调度;如果是在中断中,只能用户自己实现机制保护或关闭总中断或用户中断了。
然而,对于OS来说,在系统及服务层面上已经实现了全局不关中断,用户需要关闭中断是他的自由。
Keil RTX4/5也是相同的道理,也会遇到这种情况。

CosyOS 发表于 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用户参考手册中 均有详细说明。

CosyOS 发表于 2023-5-6 17:51:30

本帖最后由 CosyOS 于 2023-5-6 17:58 编辑

由于本人能力有限,CosyOS定然还存在很多不足之处,希望大家批评指正,我都虚心接受。
另外,欢迎有兴趣的朋友共同参与到CosyOS的维护建设中,CosyOS还仅仅是一个内核,未来还有很长的路要走。
由于我在实现 所有内核全局不关中断 方面花费了大量的时间和精力,导致整体进度缓慢。。。

杨为民 发表于 2023-5-6 17:55:42

CosyOS 发表于 2023-5-6 14:20
CosyOS进入临界区及退出临界区的方法:
进入临界区,uEnterCritical
退出临界区,uExitCritical


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

CosyOS 发表于 2023-5-6 18:04:03

本帖最后由 CosyOS 于 2023-5-6 18:06 编辑

杨为民 发表于 2023-5-6 17:55
感谢作者回复和提供的指引,这对理解CosyOS很有帮助。我想这个技术问题也是许多想了解CosyOS的读者会关心 ...
你提的问题很好,是客观存在的问题,也希望大家都能发表自己的看法,共同讨论。真理不辨不明。

CosyOS 发表于 2023-5-8 10:38:56

本帖最后由 CosyOS 于 2023-5-15 05:18 编辑

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



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



CosyOS 发表于 2023-5-9 10:59:06

本帖最后由 CosyOS 于 2023-5-9 11:08 编辑

最新消息
这两天CosyOS还要有一次重要升级,待测试完成后再发布新版给大家。
主要包括:
1、优化临界区代码,原有设计过于谨慎,会影响进出临界区的效率,需做简化。
2、可能要优化一下任务启动流程。

未来,我会加强对CosyOS应用的讲解,并分享自己使用RTOS开发项目的心得。

神农鼎 发表于 2023-5-9 15:52:21

好,中午在深圳湾,已请内部2位大佬下周简单跑下您的大作,方便的时候电我下: 13922805190
页: 1 2 3 [4] 5 6 7 8 9 10 11 12 13
查看完整版本: 全局不关总中断的 RTOS,CosyOS-III-V1.2.0, 送 擎天柱-AI8051U转89C52核心板