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

STC单片机 uC/OS-II核心技术(2):在替代法中任务切换时其实不需要临界区保护

[复制链接]

该用户从未签到

11

主题

331

回帖

886

积分

荣誉版主

积分
886
发表于 2023-9-19 00:14:39 | 显示全部楼层
截图202309190004438633.jpg
F5执行后,确实改变了OSPrioHighRdy


截图202309190005256015.jpg



把定时器中断的断点去掉,然后F5执行到RETI,
截图202309190007193463.jpg


可以看到OSPrioCur 不等于 OSPrioHighRdy,
中断返回变成了OSTCBCur变成了新的任务。


这个只能用仿真看,逻辑分析仪看很难分出来的。
仿真的结果和理论是一样的。

结论就是下面两条需要同时保护。不然嵌套后,出现不一样的结果。
OSPrioCur = OSPrioHighRdy;
OSTCBCur  = OSTCBHighRdy;


uCOSII-STC32G-V1.00_任务切换.zip

438.72 KB, 下载次数: 9

回复 支持 反对 送花

使用道具 举报

该用户从未签到

11

主题

331

回帖

886

积分

荣誉版主

积分
886
发表于 2023-9-20 00:04:57 来自手机 | 显示全部楼层
好像想明白为什么杨老师说,他以前用软中断的方式,不需要去保护那两条关键的语句。我猜是因为那个软件中断是高优先级的,其他中断根本不能打断正在执行的中断服务。

一般我们把软件切换任务中断,设置成最低优先级。这样就是保证高优先级中断可以嵌套优先执行,实时性更强。需要对最关键的两条语句做保护处理。

点评

是的  详情 回复 发表于 2023-9-20 00:11
回复 支持 反对 送花

使用道具 举报

该用户从未签到

63

主题

703

回帖

1万

积分

荣誉版主

积分
10922
 楼主| 发表于 2023-9-20 00:11:48 | 显示全部楼层
熊仔 发表于 2023-9-20 00:04
好像想明白为什么杨老师说,他以前用软中断的方式,不需要去保护那两条关键的语句。我猜是因为那个软件中断 ...

是的
回复 支持 反对 送花

使用道具 举报

  • TA的每日心情
    奋斗
    昨天 13:03
  • 签到天数: 176 天

    [LV.7]常住居民III

    5

    主题

    581

    回帖

    2383

    积分

    荣誉版主

    积分
    2383
    发表于 2023-9-20 00:18:00 | 显示全部楼层
    原来如此,还真是没想到
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-21 10:54 , Processed in 0.059791 second(s), 45 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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