搜索
bottom↓
回复: 1

新手求教,关于Z-STACK的OSAL层中的事件捕获

[复制链接]

出0入0汤圆

发表于 2013-8-16 16:46:34 | 显示全部楼层 |阅读模式
在Z-STACK中有个系统抽象层,其中main函数中的代码如下

do {
      if (tasksEvents[idx])  // Task is highest priority that is ready.
      {
        break;
      }
    } while (++idx < tasksCnt);

    if (idx < tasksCnt)
    {
      uint16 events;
      halIntState_t intState;

      HAL_ENTER_CRITICAL_SECTION(intState);
      events = tasksEvents[idx];
      tasksEvents[idx] = 0;  // Clear the Events for this task.
      HAL_EXIT_CRITICAL_SECTION(intState);

      events = (tasksArr[idx])( idx, events );

      HAL_ENTER_CRITICAL_SECTION(intState);
      tasksEvents[idx] |= events;  // Add back unprocessed events to the current task.
      HAL_EXIT_CRITICAL_SECTION(intState);
    }

求教下高手,tasksEvents[idx]用于捕获事件,那么事件中是如何被捕获的?如果说捕获事件后,进入相关任务的处理函数,我还能兴许明白事件的捕获,在相关的处理函数中,osal_set_event( destination_task, SYS_EVENT_MSG ); 大多都调用了事件的捕获,并把tasksEvents这个指针的里面包含的内容加了标记位,也就是非0了。但是在初始化后,tasksEvents里面的内容清0,如果我要捕获一个事件,它又从哪里置位呢?求大神指导下。举个例子也行,网上的资料别贴,我看了大部分了。

{
        tasksEvents[task_id] |= event_flag;
  }

出0入0汤圆

发表于 2015-6-15 18:16:01 | 显示全部楼层
这是一个让人纠结的操作系统,各种乱
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-8 14:11

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

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