查看: 3452|回复: 4

[MQX] 关于MQX中调用_time_delay函数把任务加入超时队列的问题(已解决)

[复制链接]

该用户从未签到

35

主题

83

帖子

0

新手上路

Rank: 1

积分
0
最后登录
1970-1-1
发表于 2013-7-17 22:24:07 | 显示全部楼层 |阅读模式
在调用_time_delay函数时,会发生下列函数自己调自己的情况
#define _QUEUE_INSERT(queue,queue_member,element) \
_queue_insert((QUEUE_STRUCT_PTR)(queue), \
(QUEUE_ELEMENT_STRUCT_PTR)((pointer)(queue_member)), \
(QUEUE_ELEMENT_STRUCT_PTR)((pointer)(element)))

boolean _queue_insert
(
QUEUE_STRUCT_PTR q_ptr,
QUEUE_ELEMENT_STRUCT_PTR qe_ptr,
QUEUE_ELEMENT_STRUCT_PTR e_ptr
)
{ /* Body */
if (qe_ptr == NULL)
{
/* Insert at the front */
qe_ptr = (QUEUE_ELEMENT_STRUCT_PTR) ((pointer) q_ptr);
} /* Endif */
_int_disable();
if ((q_ptr->MAX != 0) && (q_ptr->SIZE >= q_ptr->MAX))
{
_int_enable();
return (FALSE);
} /* Endif */
_QUEUE_INSERT(q_ptr, qe_ptr, e_ptr);
_int_enable();
return (TRUE);
} /* Endbody */
请问这个函数是怎样结束的,它是怎样把任务描述符加入超时队列的?我看着怎么像是一个死循环啊?
 
我知道答案 目前已有3人回答
回复

使用道具 举报

该用户从未签到

35

主题

83

帖子

0

新手上路

Rank: 1

积分
0
最后登录
1970-1-1
 楼主| 发表于 2013-7-23 22:25:26 | 显示全部楼层

回复:关于MQX中调用_time_delay函数把任务加入超时队列的问题

自己顶一下!不要沉了啊,谢谢
回复 支持 反对

使用道具 举报

该用户从未签到

35

主题

83

帖子

0

新手上路

Rank: 1

积分
0
最后登录
1970-1-1
 楼主| 发表于 2013-7-30 11:15:10 | 显示全部楼层

回复:关于MQX中调用_time_delay函数把任务加入超时队列的问题

没人回答啊?大神在哪里?
回复 支持 反对

使用道具 举报

该用户从未签到

85

主题

790

帖子

0

金牌会员

Rank: 6Rank: 6

积分
2279
最后登录
1970-1-1
发表于 2013-8-1 17:08:01 | 显示全部楼层

RE:关于MQX中调用_time_delay函数把任务加入超时队列的问题

可以将这个问题描述一下,通过邮件发送到support@freescale.com.那里有更多的MQX的专家为你提供技术支持。
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

19

帖子

0

新手上路

Rank: 1

积分
24
最后登录
1970-1-1
发表于 2013-8-7 10:39:55 | 显示全部楼层

RE:关于MQX中调用_time_delay函数把任务加入超时队列的问题(正解)

我刚刚看了一下代码,MQX中调用_time_delay()函数中把任务加入超时队列的 _QUEUE_INSERT函数的宏定义是(因为MQX_USE_INLINE_MACROS值为1)
#define _QUEUE_INSERT(queue,queue_member,element) \
_QUEUE_LINK((QUEUE_ELEMENT_STRUCT_PTR)((pointer)(queue_member)), \
(QUEUE_ELEMENT_STRUCT_PTR)((pointer)(element))); \
++((QUEUE_STRUCT_PTR)(queue))->SIZE;
直接将任务插入到对应的超时队列的位置(超时队列按照超时时间从小到大排列)。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-9-8 16:54 , Processed in 0.101648 second(s), 25 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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