您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> [求助]关于bf518上做操作系统,请问任务切换... 
本帖共有642个阅读者
发表帖子 发表投票 回复主题
[求助]关于bf518上做操作系统,请问任务切换时任务入口放在哪个位置(寄存器)?哪位大侠帮忙看看。多谢!
wqs(论坛新手)
wqs
头衔:社区公民
帮派:无帮无派
帖数:20
金钱:310
积分:34
注册时间:2011/12/15
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
[求助]关于bf518上做操作系统,请问任务切换时任务入口放在哪个位置(寄存器)?哪位大侠帮忙看看。多谢!

我现在在BF518上移植了RT操作系统,开了一个用户线程,系统原有一个空线程,线程调度中在做线程切换时,是用汇编将当前线程的状态(各个寄存器)压栈,然后将最新(最高就绪优先级)线程状态出栈(更新各个寄存器),返回,这时本应该进入新线程任务入口执行,但是实际却没有,走入了例外出错死循环。因此我就怀疑是不是栈操作错了,任务入口函数指针没有添加到正确的寄存器中,因为也是刚开始做,对BF518(BF51x)不是很熟悉,所以请教各位大侠,有没有清楚这块(BF518、BF51x)的,帮忙看看。



十分感谢!!


这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2011/12/30 11:09:20
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

你的RTOS是uCOSII吗,我这里有个可以在原厂开发板上运行的uCOSII的代码,你看看对你有什么帮助。

BF518 uCOSII代码

上传的附件
   2011123017433273.rar [ 1655.74 KB ]


这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2011/12/30 17:44:30
wqs(论坛新手)
wqs
头衔:社区公民
帮派:无帮无派
帖数:20
金钱:310
积分:34
注册时间:2011/12/15
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

多谢andy,我用的是RT-Thread,不过这个ucos2的也很有参考价值。

一直在纠结这个问题,昨晚终于搞定了,是在做任务却换时,入栈和出栈错了一个u32,即多了一个SP++

一直以为是什么大问题,看来一些小的细节还是要注意的。程序员,细心是很重要的。



最后,再次感谢andy的热心帮忙。


这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2011/12/31 9:15:20
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.154368 Call, 1 Queries, Processed in 0.015625 second(s),