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

【全部暂停】【方向改为完善官方的FreeRTOS】 随时关EA的 FreeRT

[复制链接]

该用户从未签到

66

主题

719

回帖

1万

积分

荣誉版主

积分
11019
发表于 2024-3-27 10:35:31 | 显示全部楼层
gentleman 发表于 2024-3-27 09:55
谢谢杨老师,学生是学习 中断嵌套计数器 的部分代码
在freeRTOS 中重新映射了中断函数, 添加中断嵌套计 ...

看来你还是没有明白我给你0分的理由:人家这是徒手跳高比赛,你拎根棍子嗖地飞过去,不是0分是几分?


题目规定要“关闭总中断”,你的答卷里总中断关了吗

点评

杨老师,找到了一处 在接下来的vTaskDelay中就存在 关闭临界区的代码 那其他可能有更多 学生要思考一下这些 开启/关闭 临界区的代码 是否可以直接注释 杨老师是指的是这个问题吗 ===============================  详情 回复 发表于 2024-3-27 11:14
题目不是关闭EA 是关闭 EA OS正常运行 我例子中的确使用了EA=0;这条指令 我再去确认程序中是否有其他 开启EA的地方 ============================== 学生有错误,老师可以直接指出,不用顾忌其他的 学生太想进  详情 回复 发表于 2024-3-27 10:47
回复 支持 反对 送花

使用道具 举报

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

    [LV.7]常住居民III

    29

    主题

    560

    回帖

    2202

    积分

    荣誉版主

    积分
    2202
     楼主| 发表于 2024-3-27 10:47:31 | 显示全部楼层
    杨为民 发表于 2024-3-27 10:35
    看来你还是没有明白我给你0分的理由:人家这是徒手跳高比赛,你拎根棍子嗖地飞过去,不是0分是几分?

    题目不是关闭EA
    是关闭 EA OS正常运行


    我例子中的确使用了EA=0;这条指令
    我再去确认程序中是否有其他  开启EA的地方

    ==============================
    学生有错误,老师可以直接指出,不用顾忌其他的
    学生太想进步了,老师骂的越狠,学生成长越快





    点评

    “我再去确认程序中是否有其他 开启EA的地方” 不用到程序里去确认,用逻辑来确认: 大前提: 你的串口输出程序是依靠“中断”进行的,如果关闭了“总中断”,则串口助手将收不到任何信息。 小前提: 在你的“EA  详情 回复 发表于 2024-3-27 11:13
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    13 小时前
  • 签到天数: 172 天

    [LV.7]常住居民III

    39

    主题

    911

    回帖

    4378

    积分

    荣誉版主

    积分
    4378
    发表于 2024-3-27 10:51:46 | 显示全部楼层
    杨为民 发表于 2024-3-27 10:11
    我采用的是你的最佳方案,150分的方案

    对不起, 我向你道歉, 我对 OS的理解不够透彻底
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    13 小时前
  • 签到天数: 172 天

    [LV.7]常住居民III

    39

    主题

    911

    回帖

    4378

    积分

    荣誉版主

    积分
    4378
    发表于 2024-3-27 10:54:07 | 显示全部楼层
    tzz1983 发表于 2024-3-27 10:12
    "我的升级版方案是, 在用户中断中实时进行 0S任务切换."  
    评价:  这个本来就是UCOS的常规操作,只是你自己 ...

    谢谢指教

    我好好回炉, 把 OS 的源码, 通读透了, 再参与讨论.
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    66

    主题

    719

    回帖

    1万

    积分

    荣誉版主

    积分
    11019
    发表于 2024-3-27 10:54:31 | 显示全部楼层
    LAOXU 发表于 2024-3-27 09:21
    不好意思, 目前 STC的 定时器不支持常规的手动装载(与标准 51不兼容).

    即 定时器运行时, 无法装载, 需停 ...

    不好意思, 目前 STC的 定时器不支持常规的手动装载(与标准 51不兼容).
    即 定时器运行时, 无法装载, 需停止定时器运行才能装载, 辅助指令一多, 你不一定能达到理想的修正值(除非你把定时器优先级设为最高)



    LAOXU,人家自动挡的车你非要手动换挡,你是几个意思,真心不懂了?
    定时器初始化时已经设置好后,每次中断里无需重置,这已经很好了,为什么你还要求在里面重新手动装载一次
    原来现实中真的有跟风车打架的人存在。


    定时器重装.jpg
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    13 小时前
  • 签到天数: 172 天

    [LV.7]常住居民III

    39

    主题

    911

    回帖

    4378

    积分

    荣誉版主

    积分
    4378
    发表于 2024-3-27 11:05:06 | 显示全部楼层
    tzz1983
    1.  如何实现在用户中断中(多级中断嵌套情况下), 实时进行 0S任务切换, 如果实现, 那你提出的 BUG就不复存在了.   (熊仔版满足)
    规则评价: 你的表述有问题, 任务优级级永远低于硬件中断优先级,这是原则, 不能打破或尝试禁果, 嵌套时就是要返回之前的中断,不能在嵌套里直接返回任务. 否则异常伺候

    --------------------------------------------------------------

    描述没问题, 这是我的目标之一,  目前我的方案 自认为 比较成熟.

    至于另一个目标
    3.  最后一个超级难题, 在任何时候, 关中断, 都不影响 OS运行(能正常切换).   (熊仔版满足)
    规则评价: 之前已经描述过, 关EA无关OS使用的T0, 但是你自己应用里的其它中断无法触发, 那不关OS的事, 只怪你自己作

    ------------------------------------------------------------

    描述也没问题, 这是我的目标之一,  目前我的几个方案 自认为 还不够成熟.


    总之, 可能思维差别:

    我要求做到与众不同, 目标超出现有 OS

    所以, 不能用常规 OS原理来评判, 验收标准当然要用 OS标准.

    点评

    描述也没问题, 这是我的目标之一, 目前我的几个方案 自认为 还不够成熟. 总之, 可能思维差别: 我要求做到与众不同, 目标超出现有 OS 所以, 不能用常规 OS原理来评判, 验收标准当然要用 OS标准. =================  详情 回复 发表于 2024-3-27 11:21
    1. 如何实现在用户中断中(多级中断嵌套情况下), 实时进行 0S任务切换, 如果实现, 那你提出的 BUG就不复存在了. (熊仔版满足) 规则评价: 你的表述有问题, 任务优级级永远低于硬件中断优先级,这是原则, 不能打破或  详情 回复 发表于 2024-3-27 11:19
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    66

    主题

    719

    回帖

    1万

    积分

    荣誉版主

    积分
    11019
    发表于 2024-3-27 11:13:03 | 显示全部楼层
    gentleman 发表于 2024-3-27 10:47
    题目不是关闭EA
    是关闭 EA OS正常运行

    我再去确认程序中是否有其他  开启EA的地方



    不用到程序里去确认,逻辑来确认
    大前提: 你的串口输出程序是依靠“中断”进行的,如果关闭了“总中断”,则串口助手将收不到任何信息。
    小前提: 在你的“EA=0”语句之后,串口助手真真实实地收到了“中断已关闭”的信息。
    结论你的程序根本就没有真正关闭总中断,在那条语句之后总中断肯定在什么地方又被打开了!
    评分: 你的总中断都被打开了,你拿什么证明你的OS在关闭总中断的情况下还能正常运行


    (1)所以我不看你的程序就给你打0分,可以吗?
    (2)你正在发表解读任务调度和任务切换的文章,你自己倒是真应该找到EA是在什么地方打开的,然后分享给大家,互相交流,共同提高。

    点评

    完全可以 0分不可怕 可怕的是不知道为啥0分 感谢杨老师指正  详情 回复 发表于 2024-3-27 11:18
    回复 支持 反对 送花

    使用道具 举报

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

    [LV.7]常住居民III

    29

    主题

    560

    回帖

    2202

    积分

    荣誉版主

    积分
    2202
     楼主| 发表于 2024-3-27 11:14:39 | 显示全部楼层
    杨为民 发表于 2024-3-27 10:35
    看来你还是没有明白我给你0分的理由:人家这是徒手跳高比赛,你拎根棍子嗖地飞过去,不是0分是几分?

    杨老师,找到了一处
    在接下来的vTaskDelay中就存在  关闭临界区的代码
    那其他可能有更多
    学生要思考一下这些 开启/关闭 临界区的代码 是否可以直接注释


    杨老师是指的是这个问题吗
    ==============================================
    题目真的变成了 脑筋急转弯  ==》 关闭EA ,你又没说不能开,我OS里又给开了


    截图202403271109542349.jpg


    回复 支持 反对 送花

    使用道具 举报

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

    [LV.7]常住居民III

    29

    主题

    560

    回帖

    2202

    积分

    荣誉版主

    积分
    2202
     楼主| 发表于 2024-3-27 11:18:37 | 显示全部楼层
    杨为民 发表于 2024-3-27 11:13
    “我再去确认程序中是否有其他  开启EA的地方”

    完全可以  0分不可怕

    可怕的是不知道为啥0分
    感谢杨老师指正
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    20

    主题

    587

    回帖

    1303

    积分

    荣誉版主

    积分
    1303
    发表于 2024-3-27 11:19:27 | 显示全部楼层
    本帖最后由 tzz1983 于 2024-3-27 11:23 编辑
    LAOXU 发表于 2024-3-27 11:05
    tzz1983
    1.  如何实现在用户中断中(多级中断嵌套情况下), 实时进行 0S任务切换, 如果实现, 那你提出的 BUG ...

    LAOXU:
    1.  如何实现在用户中断中(多级中断嵌套情况下), 实时进行 0S任务切换, 如果实现, 那你提出的 BUG就不复存在了.   (熊仔版满足)
    规则评价: 你的表述有问题, 任务优级级永远低于硬件中断优先级,这是原则, 不能打破或尝试禁果, 嵌套时就是要返回之前的中断,不能在嵌套里直接返回任务. 否则异常伺候
    --------------------------------------------------------------
    描述没问题, 这是我的目标之一,  目前我的方案 自认为 比较成熟.


    换个理解方式, 就是你要在嵌套中断的时候立刻进行任务切换,
    (为了不误解, 说清楚一点, 这里说的任务切换就是从嵌套的中断立刻转到另一个任务中去:  比如: "中断A ->中断B -> 不返回A了+直接去执行OS任务")
    是这个意思吗?  嵌套之前的那个中断不需要再执行了, 不管它,先执行任务再说, 要不要回头再来执行完这个中断呢? 这个我不知道, LAOXU才知道.
    如果是这样, 那就是说你的任务优先级可以高于硬件中断优先级!!

    不能用常规 OS原理来评判, 验收标准当然要用 OS标准.

    祝你早点弄出完整体系. 由于我学识有限, 此题已超出了我的认知, 之后无法再答题了

    点评

    “换个理解方式, 就是你要在嵌套中断的时候立刻进行任务切换,” (1)LAOXU的愿望不是永动机,在操作系统原理里是没有禁止的。 (2)这个愿望在其他类型的单片机和一些类型的CPU中已经实现过了。只是不知道在STC8  详情 回复 发表于 2024-3-27 11:29
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-6-15 21:35 , Processed in 0.072214 second(s), 68 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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