查看: 1957|回复: 4

[其他] 有人用过队列吗?

[复制链接]

该用户从未签到

1

主题

5

帖子

0

新手上路

Rank: 1

积分
4
最后登录
1970-1-1
发表于 2014-7-21 16:52:04 | 显示全部楼层 |阅读模式
 源码中 的 mqx/source/kernel/ queue.c
      有人使用其中的的函数写过东西吗?
            这个当中的每个函数又是怎么实现的呢?
       以 _queue_enqueue
  /*!
 * \brief Adds the element to the end of the queue.
 * 
 * \param[in] q_ptr Pointer to the queue to which to add the element; initialized 
 * with _queue_init().
 * \param[in] e_ptr Pointer to the element to add.
 * 
 * \return TRUE (success) or FALSE (Failure: the queue is full.)
 * 
 * \warning The function might behave unpredictably if either:
 * \li Q_ptr is not a pointer to QUEUE_STRUCT.
 * \li E_ptr is not a pointer to QUEUE_ELEMENT_STRUCT.
 * 
 * \see _queue_init 
 * \see _queue_dequeue
 * \see _queue_init
 * \see QUEUE_STRUCT
 * \see QUEUE_ELEMENT_STRUCT 
 */ 
boolean _queue_enqueue
(
    QUEUE_STRUCT_PTR         q_ptr,
    QUEUE_ELEMENT_STRUCT_PTR e_ptr
)
{ /* Body */
 
    _int_disable();
    if ((q_ptr->MAX != 0) && (q_ptr->SIZE >= q_ptr->MAX))
    {
        _int_enable();
        return (FALSE);
    } /* Endif */
 
    _QUEUE_ENQUEUE(q_ptr, e_ptr);
    _int_enable();
    return (TRUE);
 
} /* Endbody */
 
然后
#define _QUEUE_ENQUEUE(queue,element) \
   _queue_enqueue((QUEUE_STRUCT_PTR)(queue), \
      (QUEUE_ELEMENT_STRUCT_PTR)((pointer)(element)))
 
这两个函数相互调。。有什么意思没? 大神多指教指教啊。

 
我知道答案 目前已有3人回答
回复

使用道具 举报

该用户从未签到

124

主题

3600

帖子

0

金牌会员

Rank: 6Rank: 6

积分
5781
最后登录
1970-1-1
发表于 2014-7-22 09:17:44 | 显示全部楼层

RE:有人用过队列吗?

你好,楼主!
我会将你的问题转告MQX工程师,他稍后会回复你的。
回复 支持 反对

使用道具 举报

该用户从未签到

7

主题

196

帖子

0

中级会员

Rank: 3Rank: 3

积分
380
最后登录
1970-1-1
发表于 2014-7-22 11:49:35 | 显示全部楼层

回复:有人用过队列吗?

有很多例程都使用了这个宏,启用MQX_USE_INLINE_MACROS
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

5

帖子

0

新手上路

Rank: 1

积分
4
最后登录
1970-1-1
 楼主| 发表于 2014-7-23 17:44:39 | 显示全部楼层

RE:有人用过队列吗?

个人感觉上面的队列是 用于 将各个设备 如串口,之类的设备。用上述这个队列链接到内核中去。 如果为了单纯地操作数据,建议模仿。MQX源码中的串口,的读取和输出。用_CHARQ_DEQUEUE (出队的) 中所用的字符队列
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

5

帖子

0

新手上路

Rank: 1

积分
4
最后登录
1970-1-1
 楼主| 发表于 2014-7-23 17:45:20 | 显示全部楼层

RE:有人用过队列吗?

那个相互调,应该是递归,但是 依然看不懂。。。。
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

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

GMT+8, 2025-7-26 21:19 , Processed in 0.095823 second(s), 25 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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