打印

还是嵌入式编程

[复制链接]
1869|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jadetang|  楼主 | 2008-5-8 10:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
jadetang|  楼主 | 2008-5-8 10:51 | 只看该作者

刚刚想用goto语句试一下的

结果编译错误。是不是不能用这种笨方法?

使用特权

评论回复
板凳
computer00| | 2008-5-8 10:51 | 只看该作者

进入中断后,将任务A杀死,然后重新创建任务A。

使用特权

评论回复
地板
jadetang|  楼主 | 2008-5-8 10:54 | 只看该作者

恩。是想这么试试。

实践一下。
00做什么工作的啊?什么都懂。

使用特权

评论回复
5
jadetang|  楼主 | 2008-5-8 10:57 | 只看该作者

00的方法好像行不通啊。

OSTaskDel()应确保不是在中断服务子程序ISR中试图删除一个任务,因为这是不允许的。

使用特权

评论回复
6
HWM| | 2008-5-8 11:00 | 只看该作者

拿本《操作系统原理》看看,弄清楚程序,线程和进程的关

千万别听别人的忽悠。

使用特权

评论回复
7
jadetang|  楼主 | 2008-5-8 11:02 | 只看该作者

我只是向有经验的人请教一下吧。

自己也在很努力的解决吧,谈不上忽悠吧。

使用特权

评论回复
8
computer00| | 2008-5-9 01:08 | 只看该作者

那你可以退出中断时,切换到另外一个任务,然后将其杀死

(类似驱动程序中的延迟调用),然后再重新创建任务A。

使用特权

评论回复
9
xplore| | 2008-5-9 12:38 | 只看该作者

SetJump()好像就解决了

使用特权

评论回复
10
McuPlayer| | 2008-5-10 05:32 | 只看该作者

圈圈真是举一反二啊“类似驱动程序中的延迟调用”

使用特权

评论回复
11
xwj| | 2008-5-10 07:07 | 只看该作者

OS下更应该考虑权限继承、外界未知等方面

中断中创建任务、 SetJump()等就是软件系统不可靠、BUG的罪魁祸首


正确的应该方法是在同一层面上创建所有任务,并多创建一个守护进程,
中断中只发送时间信息或改变标志,由守护进程去杀死和创建真正的任务

使用特权

评论回复
12
computer00| | 2008-5-10 09:32 | 只看该作者

10楼的,我没有搞错吧?我没有实际用ucos,所以只能提供个

在驱动程序中,因为优先级比较高,所以很多工作不适合在驱动程序中做,因此可以安排一个延迟处理调用(DPC),
等CPU的优先级降下来之后再来处理。楼主说不能在中断中直接处理,那就回到任务中再来处理。

使用特权

评论回复
13
McuPlayer| | 2008-5-10 16:55 | 只看该作者

技术上向来是殊途同归的(注:不是同归于尽)

DPC是个非常有用的东西
其实跟单片机终端设置flag背景程序执行动作,是一个道理,但是OS提供DPC可以简化Application的设计。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

51

主题

108

帖子

0

粉丝