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

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

[复制链接]

该用户从未签到

20

主题

551

回帖

1127

积分

荣誉版主

积分
1127
发表于 2024-3-25 16:49:26 | 显示全部楼层
本帖最后由 tzz1983 于 2024-3-25 16:53 编辑
杨为民 发表于 2024-3-25 13:59
tzz1983网友你好,我将此贴置顶了。

(1)我建议你在此贴与楼主互相交流技术,然后也推出另一个你自己的 ...

感谢杨老师的信任,对于移植,我也有些看法:

1. UCOS2取消用中断切换任务,全部改用函数切换任务,这个是可以做到的.  
        分析优劣之处:好处:最大的好处是少用一个中断源,其次是和以前的版本接近一些。
                              劣处:中断嵌套OSIntNesting++ 的理论支撑尚欠一丝。
                              综合分析:改过之后性能并不会有提升,况且现有版本已然稳定,无需过度更改。

2. UCOS2改用最高优先级切换任务,这个也是可以做到。但是缺点比较明显,还不如现有版本。
         分析优劣之处: 劣处: 如果最高优先级中断用于时钟滴答,OSTimeTick()遍历所有任务链, 任务一旦增多将严重拖累系统响应。

3. FreeRTOS重新移植,现在用最高优先级切换任务这个版本,只能说是能用的,大家在论坛内嬉笑玩耍的产物。
但是对于FreeRTOS重新移植,我也有想法,就是恢复中断里可以切换任务的功能,真正变成RTOS。
现在是滴答切换,也就是说,现在中断内是无法找到切换任务的相关入口的。
我对FreeRTOS的原文不太熟练,就不班门弄斧了,论坛内熟悉FreeRTOS的版主大有人在,有空的话可以跟进一下。



回复 支持 反对 送花

使用道具 举报

该用户从未签到

63

主题

661

回帖

1万

积分

荣誉版主

积分
10810
发表于 2024-3-25 17:07:53 | 显示全部楼层
本帖最后由 杨为民 于 2024-3-25 17:22 编辑

技术性失误
回复 支持 反对 送花

使用道具 举报

该用户从未签到

63

主题

661

回帖

1万

积分

荣誉版主

积分
10810
发表于 2024-3-25 17:19:53 | 显示全部楼层
本帖最后由 杨为民 于 2024-3-25 17:23 编辑

技术性失误

回复 支持 反对 送花

使用道具 举报

该用户从未签到

63

主题

661

回帖

1万

积分

荣誉版主

积分
10810
发表于 2024-3-25 17:21:28 | 显示全部楼层
gentleman 发表于 2024-3-25 10:05
还是抄了杨老师的作业

杨老师去年就发布了 uC/OS-II的

现在用最高优先级切换任务这个版本,只能说是能用的,大家在论坛内嬉笑玩耍的产物。


楼主,网友在12楼对STC官方移植的、使用高优先级定时器0中断作为系统节拍中断的FreeRTOS移植版的这个观点,你有什么看法和想法?

点评

“现在中断内是无法找到切换任务的相关入口的” 找不到吗,我再研究一下 下图是学生对 FreeRTOS 定时器内任务切换(轮询)的总结 [attachimg]39567[/attachimg]  详情 回复 发表于 2024-3-25 17:42
回复 支持 反对 送花

使用道具 举报

  • TA的每日心情
    奋斗
    4 天前
  • 签到天数: 143 天

    [LV.7]常住居民III

    29

    主题

    558

    回帖

    2128

    积分

    荣誉版主

    积分
    2128
     楼主| 发表于 2024-3-25 17:42:59 | 显示全部楼层
    杨为民 发表于 2024-3-25 17:21
    “现在用最高优先级切换任务这个版本,只能说是能用的,大家在论坛内嬉笑玩耍的产物。”

    “现在中断内是无法找到切换任务的相关入口的”
    找不到吗,我再研究一下

    下图是学生对 FreeRTOS 定时器内任务切换(轮询)的总结

    截图202403251735073289.jpg



    点评

    前年年底的时候看过了,如果没有更改过,除了滴答, 其它中断是无法即时切换任务的,任务级主动切换应该是即时切换,中断级是等到时钟滴答到了以后统一 一起处理切换中求.  详情 回复 发表于 2024-3-25 18:43
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    20

    主题

    551

    回帖

    1127

    积分

    荣誉版主

    积分
    1127
    发表于 2024-3-25 18:43:04 | 显示全部楼层
    gentleman 发表于 2024-3-25 17:42
    “现在中断内是无法找到切换任务的相关入口的”
    找不到吗,我再研究一下

    前年年底的时候看过了,如果没有更改过,除了滴答, 其它中断是无法即时切换任务的,任务级主动切换应该是即时切换,中断级是等到时钟滴答到了以后统一 一起处理切换请求.

    点评

    我以为你已经解决了这个问题了。当时技术支持已经答复你了,你没有按他说的方法去试一试?是碰到什么问题了吗?  详情 回复 发表于 2024-3-25 19:47
    我明白老师的意思了 这个中断内切换接口实现起来 要注意什么吗 如果我把 定时器0中断函数 的内容(入栈,取任务,改sp指针,出栈,RETI, ERET)都搬过去 可以实现吗 还是直接搬过去会有什么风险  详情 回复 发表于 2024-3-25 19:46
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    4 天前
  • 签到天数: 143 天

    [LV.7]常住居民III

    29

    主题

    558

    回帖

    2128

    积分

    荣誉版主

    积分
    2128
     楼主| 发表于 2024-3-25 19:46:28 | 显示全部楼层
    tzz1983 发表于 2024-3-25 18:43
    前年年底的时候看过了,如果没有更改过,除了滴答, 其它中断是无法即时切换任务的,任务级主动切换应该是 ...

    我明白老师的意思了

    这个中断内切换接口实现起来 要注意什么吗
    如果我把  定时器0中断函数 的内容(入栈,取任务,改sp指针,出栈,RETI, ERET)都搬过去 可以实现吗
    还是直接搬过去会有什么风险

    点评

    要注意什么好像倒是没有,这个功能应该是标准OS功能,只不过这里被和谐了而已. 我是这样认为:把"定时器0中断函数 的内容(入栈,取任务,改sp指针,出栈,RETI, ERET)都搬过去"单独弄个调用,这样应该是可以的  详情 回复 发表于 2024-3-25 20:51
    当时技术支持也是这么答复他的  详情 回复 发表于 2024-3-25 19:48
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    63

    主题

    661

    回帖

    1万

    积分

    荣誉版主

    积分
    10810
    发表于 2024-3-25 19:47:23 | 显示全部楼层
    tzz1983 发表于 2024-3-25 18:43
    前年年底的时候看过了,如果没有更改过,除了滴答, 其它中断是无法即时切换任务的,任务级主动切换应该是 ...

    我以为你已经解决了这个问题了。当时技术支持已经答复你了,你没有按他说的方法去试一试?是碰到什么问题了吗?
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    63

    主题

    661

    回帖

    1万

    积分

    荣誉版主

    积分
    10810
    发表于 2024-3-25 19:48:48 | 显示全部楼层
    gentleman 发表于 2024-3-25 19:46
    我明白老师的意思了

    这个中断内切换接口实现起来 要注意什么吗

    当时技术支持也是这么答复他的

    点评

    有点巧了 学生就是觉得 定时器0 也是中断 感觉 与其他中断切换任务过程应该是 相同的 我再去翻一翻老师之前的帖子学习一下  详情 回复 发表于 2024-3-25 19:53
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    4 天前
  • 签到天数: 143 天

    [LV.7]常住居民III

    29

    主题

    558

    回帖

    2128

    积分

    荣誉版主

    积分
    2128
     楼主| 发表于 2024-3-25 19:53:14 | 显示全部楼层
    杨为民 发表于 2024-3-25 19:48
    当时技术支持也是这么答复他的

    有点巧了

    学生就是觉得 定时器0 也是中断
    感觉 与其他中断切换任务过程应该是 相同的


    我再去翻一翻老师之前的帖子学习一下

    点评

    我回翻了一下帖子,当时我是这么问的: "内核是会在每次节拍的时候切换任务,但是如果我在别的中断中,激活了一个高优先级的任务(比如说xSemaphoreGiveFromISR( xBinarySemaphore, &xHigherPriorityTaskWoken );然  详情 回复 发表于 2024-3-25 20:26
    不是我的,是tzz1983的帖子《FREERTOS中断里切换任务》(https://www.stcaimcu.com/forum.php?mod=viewthread&tid=581)  详情 回复 发表于 2024-3-25 20:13
    我个人觉得FreeRTOS的这个STC移植版本有些仓促了,好像还有些没有完成,我也在等更新,这是我后面没有继续写如何RTOS编程文章的主要原因。 比如临界区保护方法也只是简单地关闭总中断,比如如何在定时器0以外的其他  详情 回复 发表于 2024-3-25 20:10
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-9 19:00 , Processed in 0.072087 second(s), 67 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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