搜索
bottom↓
回复: 6

请教关于small rtos51实时操作系统任务调度函数的理解【恢复】

[复制链接]

出0入0汤圆

发表于 2008-10-21 17:35:38 | 显示全部楼层 |阅读模式
请教关于small rtos51实时操作系统任务调度函数的理解

我买了一本《嵌入式实时操作系统 Small RTOS51》的书,看了一部分之后让我对嵌入式操作系统有了一定的认识,但限于个人能力和水平,对某些地方还是看不明白,希望能得到朋友们的帮助。今天要问的是对任务调度函数的理解。想请教熟悉small rtos51的大侠特别是如果有幸能遇到作者陈明计先生给我指点下任务切换的具体过程,我将不甚感激。

     在ucosII和small rtos51中任务级的任务调度都是由void  OSSche(void)函数完成的,而实际的任务切换则是函数OS_TASK_SW()。任务调度函数首先查找进入就绪态并且优先级最高的任务,然后调用OS_TASK_SW()函数,进行实际的任务切换。当有新的更高优先的的任务就绪时,OS_TASK_SW()函数先进行任务切换前的堆栈处理,堆栈处理完成之后,堆栈指针就指向新任务的程序地址,当执行到LoadCtx()函数的RET指令后,RET指令将堆栈中新任务的程序地址弹出到CPU的程序计数指针PC中,使得新的任务立即获得CPU的控制权,程序跳转,实现任务切换。可是这样以来,任务调度函数OSSche()就没有执行完,因为程序已经从OS_TASK_SW()函数中跳走了,去到了新任务的程序地址处,不能返回。那就意味着在OSSche()函数中最后面开中断语句得不到执行,中断被关掉了,不能重新被打开。这样会一起一系列问题。我不知道我这样分析哪里出了问题,这个问题捆饶我很久,希望各位老师们能忙我排除捆饶。谢谢了!

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

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2008-12-26 11:03:07 | 显示全部楼层
我能理解,但是不知道怎样表达。你放心,如果放弃CPU的任务一旦从新获得CPU使用权,它会执行剩下的语句的。

出0入0汤圆

发表于 2008-10-22 15:14:34 | 显示全部楼层
可是这样以来,任务调度函数OSSche()就没有执行完,因为程序已经从OS_TASK_SW()函数中跳走了,去到了新任务的程序地址处,不能返回。那就意味着在OSSche()函数中最后面开中断语句得不到执行,中断被关掉了,不能重新被打开。



比如说任务A切换到任务B:

在调用OS_TASK_SW()时,先保存任务A的上下文环境,包括中断标志状态,然后切换堆栈指针到任务B,并恢复任务B的上下文环境,包括中断标志状态,显然,这里恢复中断标志状态会打开中断。

出0入0汤圆

 楼主| 发表于 2008-10-22 14:47:31 | 显示全部楼层
我顶!

出0入0汤圆

发表于 2009-4-27 11:05:07 | 显示全部楼层
楼主你有QQ没 我有些RTOS51的问题想请教下

出0入0汤圆

发表于 2015-7-19 14:41:31 | 显示全部楼层
在LoadCtx()之前 当前的Os_Enter_Sum已经入栈,每个任务都在任务切换前保存好了字节的Os_Enter_Sum--根据它可以判断EA=1还是=0;等执行完其他任务后,再回到这个任务时,Os_Enter_Sum会出栈的----即保护现场

出0入0汤圆

发表于 2015-7-19 14:42:06 | 显示全部楼层
本帖最后由 gagaguojia 于 2015-7-19 14:44 编辑

详细看堆栈初始化的函数也有助理解,在 V1.20.3版本里 堆栈初始化用汇编写了
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-25 14:08

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

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