TASK 的优先级

公告

大中华汽车电子生态圈社区并入开发者社区- 更多资讯点击此

Tip / 登入 to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
CaLi_4592466
Level 4
Level 4
25 replies posted 10 replies posted 5 replies posted

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

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

0 点赞
1 解答
Charles_Lai
Moderator
Moderator
Moderator
500 replies posted 250 solutions authored 250 sign-ins

Hi,

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

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

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

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

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

Sincere regards from​ C. L.

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

在原帖中查看解决方案

0 点赞
1 回复