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

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

[复制链接]
  • TA的每日心情
    开心
    6 小时前
  • 签到天数: 147 天

    [LV.7]常住居民III

    39

    主题

    887

    回帖

    4126

    积分

    荣誉版主

    积分
    4126
    发表于 2024-3-27 09:21:27 | 显示全部楼层
    gentleman 发表于 2024-3-27 09:04
    我这里丢tick  是 存在其他中断 进入T0时  直接退出导致的
    tzz1983 网友 给出的解决方法 时T0 滴答后在退 ...

    不好意思, 目前 STC的 定时器不支持常规的手动装载(与标准 51不兼容).

    即 定时器运行时, 无法装载, 需停止定时器运行才能装载, 辅助指令一多, 你不一定能达到理想的修正值(除非你把定时器优先级设为最高)

    这样的话, 还不如用 T0(模式 3) 省时省力.

    点评

    不好意思, 目前 STC的 定时器不支持常规的手动装载(与标准 51不兼容). 即 定时器运行时, 无法装载, 需停止定时器运行才能装载, 辅助指令一多, 你不一定能达到理想的修正值(除非你把定时器优先级设为最高) LAOXU,  详情 回复 发表于 2024-3-27 10:54
    谢谢  详情 回复 发表于 2024-3-27 09:25
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-5-5 08:35
  • 签到天数: 143 天

    [LV.7]常住居民III

    29

    主题

    558

    回帖

    2140

    积分

    荣誉版主

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

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

    谢谢

    点评

    同感  发表于 2024-3-27 10:26
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-5-5 08:35
  • 签到天数: 143 天

    [LV.7]常住居民III

    29

    主题

    558

    回帖

    2140

    积分

    荣誉版主

    积分
    2140
     楼主| 发表于 2024-3-27 09:32:45 | 显示全部楼层
    本帖最后由 gentleman 于 2024-3-27 09:34 编辑
    tzz1983 发表于 2024-3-27 09:08
    这样是可以切换的

    解释: 在中断里关中断, 中断已经发生!   然后被滴答嵌套, 滴答中断返到原来的中断, 由 ...

    做一定是要继续做的

    做中断内切换任务


    可能要过两天
    其实认真一下还是有收获的,把FreeRTOS的中断嵌套计数器搞完了,钩子也正常,os也能跑起来

    回复 支持 反对 送花

    使用道具 举报

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

    [LV.7]常住居民III

    39

    主题

    887

    回帖

    4126

    积分

    荣誉版主

    积分
    4126
    发表于 2024-3-27 09:53:05 | 显示全部楼层
    tzz1983 发表于 2024-3-27 09:08
    这样是可以切换的

    解释: 在中断里关中断, 中断已经发生!   然后被滴答嵌套, 滴答中断返到原来的中断, 由 ...

    不是我自相予盾, 这是我奋斗的目标

    任何时候, 关中断, 都不影响 OS运行(能正常切换).

    事实上, 这个问题我还在思考, 有几个方案, 但都不是很理想.



    杨老师的方案, 和我的方案大部分相同(是我的简化版).


    我跟杨老师确认的几点, 杨老师可能没看到没回.


    根据我对杨老师源码的分析, 得出如下结论.


    给杨老师的 OS , 打 99分, 扣掉的 1分, 不是你找出的 BUG, 这个对我来说, 我不认为解决不了,
    而扣的这 1分, 是我发现其 程序有个很大的漏洞, 结果.....然后子弹飞没了.
    杨老师 要求 OS的切换越快越好, 但是, 目前的常规方案, 等全部的中断嵌套退出后才响应切换.
    显然切换慢了, 我的升级版方案是, 在用户中断中实时进行 0S任务切换.
    大家继续讨论
    1.  如何实现在用户中断中(多级中断嵌套情况下), 实时进行 0S任务切换, 如果实现, 那你提出的 BUG就不复存在了.
        回答正确的 , 附加分 +50分

    2.  找出目前 杨老师程序中的一个大漏洞
        回答正确的 , 附加分 +50分


    3.  最后一个超级难题, 在任何时候, 关中断, 都不影响 OS运行(能正常切换).
        回答正确的 , 附加分 +50分

    点评

    “我跟杨老师确认的几点, 杨老师可能没看到没回.” 请你不要跟我确认,请你自己独立自主地研制你的100分的STC单片机RTOS  详情 回复 发表于 2024-3-27 10:29
    "我的升级版方案是, 在用户中断中实时进行 0S任务切换." 评价: 这个本来就是UCOS的常规操作,只是你自己不知道而已. UCOS-II 标准使用方法 "要求用户每次退出中断都要调用 OSIntExit(); 来退出中断. 如果不调用,  详情 回复 发表于 2024-3-27 10:12
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-5-5 08:35
  • 签到天数: 143 天

    [LV.7]常住居民III

    29

    主题

    558

    回帖

    2140

    积分

    荣誉版主

    积分
    2140
     楼主| 发表于 2024-3-27 09:55:09 | 显示全部楼层
    杨为民 发表于 2024-3-26 22:48
    (1)你直接学习tzz1983的招数(见我34楼的介绍),抄袭他的答案,他现在是忽悠你的,他自己已经解决了

    ...

    谢谢杨老师,学生是学习 中断嵌套计数器 的部分代码
    在freeRTOS 中重新映射了中断函数, 添加中断嵌套计数器,使用中断函数钩子的方法


    修复 中断嵌套时, 任务调度器直接 返回任务级的bug
    有关中断内 切换任务的部分,会在后续版本实现(要过两天

    点评

    看来你还是没有明白我给你0分的理由:人家这是徒手跳高比赛,你拎根棍子嗖地飞过去,不是0分是几分? 题目规定要“关闭总中断”,你的答卷里总中断关了吗?  详情 回复 发表于 2024-3-27 10:35
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    63

    主题

    703

    回帖

    1万

    积分

    荣誉版主

    积分
    10906
    发表于 2024-3-27 10:11:38 | 显示全部楼层
    LAOXU 发表于 2024-3-27 06:13
    想确定一下你的方案,
    1.  OS系统用几个中断源 , 是 1个(T0), 还是 2个(增加 1个 PendSv 中断) ?
    2. 用户 ...

    我采用的是你的最佳方案,150分的方案

    点评

    对不起, 我向你道歉, 我对 OS的理解不够透彻底  详情 回复 发表于 2024-3-27 10:51
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    20

    主题

    575

    回帖

    1193

    积分

    荣誉版主

    积分
    1193
    发表于 2024-3-27 10:12:28 | 显示全部楼层
    本帖最后由 tzz1983 于 2024-3-27 10:30 编辑
    LAOXU 发表于 2024-3-27 09:53
    不是我自相予盾, 这是我奋斗的目标

    任何时候, 关中断, 都不影响 OS运行(能正常切换).

    "我的升级版方案是, 在用户中断中实时进行 0S任务切换."  
    评价:  这个本来就是UCOS的常规操作,只是你自己不知道而已.
    UCOS-II 标准使用方法 "要求用户每次退出中断都要调用 OSIntExit(); 来退出中断.
    如果不调用, 那是你自己的BUG.


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

    2.  找出目前 杨老师程序中的一个大漏洞  (找不到)

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



    点评

    谢谢指教 我好好回炉, 把 OS 的源码, 通读透了, 再参与讨论.  详情 回复 发表于 2024-3-27 10:54
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    63

    主题

    703

    回帖

    1万

    积分

    荣誉版主

    积分
    10906
    发表于 2024-3-27 10:17:07 | 显示全部楼层
    tzz1983 发表于 2024-3-27 08:02
    我的答案是:
    论坛内熊仔大神早就移植好的 uC/OS-II @STC8

    举例说明,无需上自己的例子。回答正确,满分!
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    63

    主题

    703

    回帖

    1万

    积分

    荣誉版主

    积分
    10906
    发表于 2024-3-27 10:21:36 | 显示全部楼层
    LAOXU 发表于 2024-3-27 08:25
    没有达到我心中的目标.

    你在任务中关中断没问题.

    期待LAOXU自己答出自己题目得满分答案:LAOXU推出自己移植的或者自己研发得STC单片机RTOS!

    我预祝LAOXU早日完成这个壮举,让我们对他刮目相看。

    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    63

    主题

    703

    回帖

    1万

    积分

    荣誉版主

    积分
    10906
    发表于 2024-3-27 10:29:41 | 显示全部楼层
    本帖最后由 杨为民 于 2024-3-27 10:38 编辑
    LAOXU 发表于 2024-3-27 09:53
    不是我自相予盾, 这是我奋斗的目标

    任何时候, 关中断, 都不影响 OS运行(能正常切换).

    我跟杨老师确认的几点, 杨老师可能没看到没回.

    请你不要跟我确认,请你自己独立自主地研制你的100分的STC单片机RTOS

    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-18 14:37 , Processed in 0.091182 second(s), 73 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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