搜索
bottom↓
回复: 3

关于挂起任务以及时间片

[复制链接]

出0入0汤圆

发表于 2011-9-4 23:13:05 | 显示全部楼层 |阅读模式
参考编程指南!
确认一个问题:
    就绪状态中的任务:如果要挂起的话,使用RT_THREAD_SUSPEND() 就可以了。

    如果运行中的任务呢? 按照注释,是不是也是使用
    RT_TRHEAD_SUSPEND();
   + RT_SCHEDULE()?
    是不是就是实现了有些RTOS里的运行中的任务无限期的SLEEP,直到其他任务用AWAKE唤醒?

    因为尝试移植一个现有的程序到RT-THREAD上,原来的RTOS具有SLEEP_TASK() 和AWAKE_TASK()两个函数。一个任务每次都在
运行结束的时候自己吧自己挂起来,等待中断事件吧自己给唤醒。


另外:关于时间片:

    RT-THREAD 只能在创建任务,初始化的时候分配时间片,是否可以更改时间片呢?

    如果按照指南似乎不支持修改,那么再确认一下,是否可以关闭时间片的功能呢?
    如果可以关闭时间片的功能,我是否可以把几个任务的优先级别设置成一样,然后采用定时器中断调用RT_THREAD_YIELD()的办法使当前运行中的任务让出处理机,使得相同优先级的任务得以运行,自己挂在队列的最后呢?
    如果可以,我更改定时器的定时值是否就可以实现更改时间片的值呢?

    可能叙述有点麻烦了!

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2011-9-5 09:18:12 | 显示全部楼层
1. 关于挂起,书上提到一点:
不要做自己挂起自己的操作;
而至于resume,则直接恢复即可(不可能自己恢复自己吧)

2. 可以更改时间片;不支持关闭时间片功能

出0入0汤圆

 楼主| 发表于 2011-9-5 09:40:52 | 显示全部楼层
回复【1楼】ffxz  
-----------------------------------------------------------------------
1)  您的意思是不要自己挂起自己? 我以为6.7.9线程挂起 中的注,是上面我的理解呢!
    自己不会回复自己的,在中断事件中恢复。
   
    --- 谢谢!

    看来要采用个EVENT来做这个移植了。任务结束回到头的时候,再次进入等待事件。然后中断里把这个事件置为。

2) 哦!可以运行中更改时间片就好。
    --- 谢谢!

    因为原来的程序是符合ITRON的规格的,似乎很难完全移植用RT-THREAD.

出0入0汤圆

发表于 2011-9-5 09:44:30 | 显示全部楼层
1. 其实你最开始说对了的,如果是自己挂起自己,需要这样:
{
  rt_thread_suspend(rt_thread_self());
  rt_schedule();
}

移植自ITRON,没什么不可能的,RT-Thread可是支持完整的POSIX Thread,ITRON当然是可能的,只是需要自己下些功夫。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-15 19:53

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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