1 Reply Latest reply on May 14, 2020 12:28 AM by ChunleiL_51

    TASK 的优先级

    CaLi_4592466

      测试过程中发现,在某一函数运行过程中,app_management_callback 有消息过来时,当前函数会被打断?进入消息的处理过程中?

       

      比如: 某一A 函数在组包过程中,此时来了BTM_BLE_ADVERT_STATE_CHANGED_EVT 的消息,那么A函数 执行会被打断?

        • 1. Re: TASK 的优先级
          ChunleiL_51

          Hi,

           

          请问您遇到的“被打断”具体是什么表现呢?

           

          在WICED正常的执行中,app_management_callback是在每一遍循环中被回调的,蓝牙协议栈的事件也是按照FIFO的方式处理的。所以如果你的某A函数是在app_management_callback中展开,而且没有使用共享变量、没有使用非阻塞函数等的话,应该是不会被打断的。

           

          如果实在遇到这样的问题,您可以使用独立线程、使用信号量、设置阻塞方式等程序设计的手段来避免这样的问题。

          WICED的蓝牙协议栈的程序接口和事件回调方式是标准化的,能适合正常的标准的程序设计和使用。同时,因为对其修改是非现实的,故如果遇到无法满足的设计需求,也只能优先考虑其他更高层的处理或修复方式。

           

          <<<<<<<<<<<<<>>>>>>>>>>>>>

          Sincere regards from C. L.

          <<<<<<<<<<<<<>>>>>>>>>>>>>