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

RTOS临界区中(仅指关闭总中断的方法),用户是否可以任务切换的初步思考

[复制链接]
  • TA的每日心情
    奋斗
    5 小时前
  • 签到天数: 174 天

    [LV.7]常住居民III

    5

    主题

    580

    回帖

    2351

    积分

    荣誉版主

    积分
    2351
     楼主| 发表于 2023-11-9 08:33:41 | 显示全部楼层
    CosyOS 发表于 2023-11-9 03:36
    那我就简单谈一谈我所了解的“互斥访问”,有不足之处望大家谅解。

    一、访问

    这个工程很是浩大,越说牵扯到的问题就越多,容易引起歧义的地方也越多,以后还是尽量少说。

    点评

    说还是要说的, 要不大家怎么交流, 怎么进步, 表达自己的观点, 保留不同的声音, 这样就好 我觉得大家都可以自由发表自己的观点, 不一定要分个对错. 如果一定要分对错, 那错的一定是做的最多的那个人, 这不公平 至于  详情 回复 发表于 2023-11-9 09:58
    所以如果要想研制一个产品级而不是玩家版的STC单片机RTOS,应该像读研究生一样经历一个流程:先学RTOS理论,然后调研现有的单片机RTOS现状和特点,最后再规划动手完成实际作品。  详情 回复 发表于 2023-11-9 09:22
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    63

    主题

    703

    回帖

    1万

    积分

    荣誉版主

    积分
    10906
    发表于 2023-11-9 09:22:06 | 显示全部楼层
    CosyOS 发表于 2023-11-9 08:33
    这个工程很是浩大,越说牵扯到的问题就越多,容易引起歧义的地方也越多,以后还是尽量少说。 ...

    所以如果要想研制一个产品级而不是玩家版的STC单片机RTOS,应该像读研究生一样经历一个流程:先学RTOS理论,然后调研现有的单片机RTOS现状和特点,最后再规划动手完成实际作品。
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    20

    主题

    576

    回帖

    1195

    积分

    荣誉版主

    积分
    1195
    发表于 2023-11-9 09:58:40 | 显示全部楼层
    本帖最后由 tzz1983 于 2023-11-9 10:03 编辑
    CosyOS 发表于 2023-11-9 08:33
    这个工程很是浩大,越说牵扯到的问题就越多,容易引起歧义的地方也越多,以后还是尽量少说。 ...

    说还是要说的, 要不大家怎么交流, 怎么进步, 表达自己的观点, 保留不同的声音, 这样就好
    我觉得大家都可以自由发表自己的观点, 不一定要分个对错.
    如果一定要分对错, 那错的一定是做的最多的那个人, 这不公平
    至于谁的好谁的不好, 这就更不要去评论了, 三人行, 必有我师, 好的接收, 自认为不好的就让他随风而去.
    也不用怕别人对我们的言论进行评击, 人家说的对,我就接收, 自认为说的不对的, 就不要去管它了.
    反正最终的目的就是交流, 偶尔别那么严肃, 聊聊天也好的, 我们做软硬件的, 除了和机器交流, 也需要多和人聊天啊, 要不怎么会出现一个优秀的程序员找不到老婆这种现象
    如此就欣欣向荣了
    回复 支持 反对 送花

    使用道具 举报

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

    [LV.7]常住居民III

    5

    主题

    580

    回帖

    2351

    积分

    荣誉版主

    积分
    2351
     楼主| 发表于 2023-11-9 10:19:42 | 显示全部楼层
    是的,应该多交流的,以后交流的重点还应放在解决实际问题上。
    回复 支持 反对 送花

    使用道具 举报

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

    [LV.7]常住居民III

    1

    主题

    164

    回帖

    711

    积分

    高级会员

    积分
    711
    发表于 2023-11-9 16:23:46 | 显示全部楼层
    CosyOS 发表于 2023-11-9 03:36
    那我就简单谈一谈我所了解的“互斥访问”,有不足之处望大家谅解。

    一、访问

    在RTOS中可以用信号量或二进制信号量(UCOS中只有信号量)就可以实现互斥和同步。
    互斥:创建信号量,初始化信号量为1,需要使用共享资源的任务按以下流程操作,就可以实现互斥
              等待信号量->使用资源->发送信号量
    同步:1个任务等待信号量,另一个任务发送信号量。

    点评

    具体来说,其它RTOS一般都可以用信号量、二值信号量实现互斥; 但对于CosyOS来说,二值信号量是可以随意使用的,没有限制。但计数信号量通常是不可以在中断中获取的。  详情 回复 发表于 2023-11-9 17:09
    是的,信号量是可以的,只是牵扯到一些其它的问题,为避免争议,故未提及。感谢补充!  发表于 2023-11-9 17:00
    回复 支持 反对 送花

    使用道具 举报

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

    [LV.7]常住居民III

    5

    主题

    580

    回帖

    2351

    积分

    荣誉版主

    积分
    2351
     楼主| 发表于 2023-11-9 17:09:06 | 显示全部楼层
    本帖最后由 CosyOS 于 2023-11-9 17:19 编辑
    fanxsp 发表于 2023-11-9 16:23
    在RTOS中可以用信号量或二进制信号量(UCOS中只有信号量)就可以实现互斥和同步。
    互斥:创建信号量,初始化 ...

    具体来说,其它RTOS一般都可以用信号量、二值信号量实现互斥;
    但对于CosyOS来说,二值信号量是可以随意使用的,没有限制。
    但计数信号量通常是不可以在中断中获取的(除非只在相同优先级的各个中断中获取,其它的中断、任务中不会获取)。

    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    5

    主题

    89

    回帖

    405

    积分

    中级会员

    积分
    405
    发表于 2023-12-29 17:52:31 | 显示全部楼层
    杨为民 发表于 2023-11-8 19:42
    (1)楼主的标题已经改为“RTOS临界区中(仅指关闭总中断的方法),用户是否可以任务切换的初步思考”了, ...

    对于MCU来说, 外部来源的中断往往意味着外部“信号”, 这些信号是MCU存在的意义(在产品中)。
    所以, 如果要以关中断来“操作系统”, 对于MCU来说有些得不偿失。
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    5

    主题

    89

    回帖

    405

    积分

    中级会员

    积分
    405
    发表于 2023-12-29 17:56:51 | 显示全部楼层
    杨为民 发表于 2023-11-9 09:22
    所以如果要想研制一个产品级而不是玩家版的STC单片机RTOS,应该像读研究生一样经历一个流程:先学RTOS理 ...

    你是否开发过成功的产品, 而不是移植别人的软件?

    如果只是移植过软件, 来否定原创的价值,有些无理。
    我的十多年来,产品销售过很多海内外客户。我理解一个好的软件是对于需求的应答,
    而不是定义是否符合某人的教材。

    点评

    (1)这是我研发的RTOS,RTOS的每一行代码都是我写的。 https://www.stcaimcu.com/forum.php?mod=viewthread&tid=1402 (2)这是我研发的RTOS,RTOS的每一行代码都是我写的。这个RTOS使用的是我研发的C语言编译  详情 回复 发表于 2023-12-29 18:09
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    63

    主题

    703

    回帖

    1万

    积分

    荣誉版主

    积分
    10906
    发表于 2023-12-29 18:09:11 | 显示全部楼层
    13918210822 发表于 2023-12-29 17:56
    你是否开发过成功的产品, 而不是移植别人的软件?

    如果只是移植过软件, 来否定原创的价值,有些无理。 ...



    (1)这是我研发的RTOS,RTOS的每一行代码都是我写的。
    https://www.stcaimcu.com/forum.php?mod=viewthread&tid=1402


    (2)这是我研发的RTOS,RTOS的每一行代码都是我写的。这个RTOS使用的是我研发的C语言编译器,C语言编译器的每一行代码都是我写的。
    https://www.stcaimcu.com/forum.php?mod=viewthread&tid=2490

    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    5

    主题

    89

    回帖

    405

    积分

    中级会员

    积分
    405
    发表于 2023-12-29 18:12:22 | 显示全部楼层
    我提一些实际需求, 请教Cosy老师如何从RTOS角度来支持会比较好
    以下需求考虑适配STC32F或资源更多的平台(8K+ edata, 4K+ xdata, 54k Flash/EEPROM)

    1。不可以关闭任何中断, 如果在任何时候关中断, 只能由用户关闭, 不能由系统服务代劳
         这个类似于驱动的启动和关闭, 不能由操作系统来没有用户请求的情况下“代劳”
         原因是, 产品的设计者会更了解实际产品的需求, 而不是提前设计操作系统的设计师
    2. ISR的应答应该在“驱动”层级,永远不会 “被“任务调度”打断
    3. 服务层应该对“消息/命令队列”,“FIFO"等常用数据服务提供来自平台的支撑
    4. 可以明确地调整栈的大小以及位置。从而相对动态的适配“活跃”会话的数量(是否有动态调整的可能)

    更具体的, 有一个GPIO模拟特殊接口(SMI). 有6+1个UART(分时),有N个ADC, 有一个debug console(UART), 无(CAN,USB,SPI,I2C,PWM等等)

    这样一个项目可以用前后台,但是,如果能不丢失任何信号、不损失实时性的前提下,使用某个RTOS似乎更加易于后期扩展和维护。

    一个实际而相对复杂的需求, 请cosy老师有空给些建议

    点评

    1、对于 CosyOS 来说,SysTick 和 PendSV 是做为系统专用中断,在进入任务临界区时,会关闭这两个中断,也不允许用户私自操作这两个中断。 2、CosyOS 会在系统初始化时自动开启总中断,而后不会再操作总中断和任何用  详情 回复 发表于 2023-12-29 19:13
    好的,容我稍后解答  发表于 2023-12-29 18:27
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-18 15:54 , Processed in 0.081428 second(s), 69 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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