TI中文支持网
TI专业的中文技术问题搜集分享网站

LAUNCHXL-CC26X2R1: SDK:simple_peripheral project 任务间运行和消息事件传递问题

Part Number:LAUNCHXL-CC26X2R1Other Parts Discussed in Thread:SYSCONFIG, ENERGYTRACE

在DEBUG这个工程的时候遇到一些问题:

1、当APP  task任务执行到设置GapAdv_create #2时,会跳转执行SimplePeripheral_advCallback(此函数是向BLE stack传入的回调)将APP_ADV_EVT入队。

关于这一步我的理解是:BLE stack的优先级高于APP  task,所以当GapAdv_enable之后,BLE stack可以打断APP  task的运行,从而可以先执行SimplePeripheral_advCallback。随后enable了两次,所以APP_ADV_EVT被执行两次。

请问我这样理解是不是正确的,或者APP  task和BLE stack各自是怎样运行的?

2、ble_log显示初始化完成之后会执行APP_PERIODIC_EVT,但是在代码里没有发现在初始化过程中开始周期时钟的动作。请问这个APP_PERIODIC_EVT事件是在哪里开启的?

tsru rgeherhh:

补充:

关于APP_PERIODIC_EVT事件入队函数,是不是没有任务执行的意思?

,

Yolande Wang:

您好,正在跟进您的问题。

,

Yolande Wang:

您好,

非常抱歉,久等了,

1.请问您使用的SDK版本是什么?

2.SimplePeripheral 项目包含两组广告,因此两个 GAP 事件在启用后启动。我不确定这是否是您所指的,希望告您提供一下详细信息。

2.要启用定期广告,请使用 RF 堆栈 – BLE 功能 – 定期广告下的 SysConfig 文件来执行此操作。您可以通过启用或禁用此选项来查看修改的文件。

期待您的回复!

,

tsru rgeherhh:

您好:

1、SDK版本:simplelink_cc13xx_cc26xx_sdk_7_10_00_98。

2、指的是这两个广播。第一个广播设置完参数并使能启动之后,在设置第二个广播参数时(未使能启动),stack会执行第一个广播调用的ADVcallback函数,随后第二个广播设置完并启动之后,第二个广播启动后stack又会执行一次ADVcallback函数。这是我观察到的现象,所以请问是这是怎样的逻辑?

3、启用定期广播不是经过APP tsak通过开启定时时钟,然后入队APP 事件执行的吗?

,

tsru rgeherhh:

补充:

project里没有开启周期广播,但是有周期广播功能。

,

Yolande Wang:

正在跟进您的问题,请等候一下。

,

Yolande Wang:

您好,

以下是来自E2E英文论坛的回复:

对于造成的混乱,我深表歉意,我对定期广告的回答是错误的,你的问题与此无关。但是,您能够对此进行检查吗?

关于 PERIODIC_EVT 问题,我建议查看用户指南中给出的时钟部分,尤其是功能示例图。

,

Yolande Wang:

您好,

1. 对于第一个问题,SimplePeripheral_advCallback 在软件中断上下文中执行,因此比其他任务具有更高的优先级。

2. APP_PERIODIC_EVT 是在 SimplePeripheral_init() 中使用 Util_constructClock() 创建的,但不会立即启动,而是等待调用来启动,在本例中为 Util_startClock()。例如,您可以看到该函数在 GAP_LINK_ESTABLISHED_EVENT 中被调用,也在 SimplePeripheral_clockHandler() 函数中被调用以启动下一个事件周期。

您查看上个回答的链接了吗,问题的疑惑点是否解决了?

如果没有这边会为您继续跟进,因为时差的关系,收到E2E论坛的回复会需要一些时间。

期待您的回复。

,

tsru rgeherhh:

非常抱歉!前段时间忙有其他的事情,以至于没有及时回复。

1、用户指南的时钟部分给出的正常情况start 时钟到执行post 事件的过程。在SDK simple_peripheral project中并没有执行 GAP_LINK_ESTABLISHED_EVENT事件和SimplePeripheral_clockHandler() 函数中的Util_startClock(),同样会执行APP_PERIODIC_EVT;

2、该现象是板子上电之后,没有执行任何操作。发现一直会有APP_PERIODIC_EVT执行。附件是BLE_LOG,请查收分析!

ble_log_peripheral_event.txt

,

Yolande Wang:

我正在研究这一点。

请问您是否对原始工程进行了修改?

simple_peripheral_CC26X2R1_LAUNCHXL_tirtos7_ticlang

,

tsru rgeherhh:

没有哦!谢谢。

,

Yolande Wang:

收到您的跟进信息,我会反馈给E2E,希望您等候一下。

,

Yolande Wang:

您好,

以下是来自E2E的回复,请参考:

我已经这边已经复现了此现象,观察了项目、日志和结果。

该行为是预期的,调用 SP_PERIODIC_EVT 的任务每 5000 毫秒运行一次,同时设备也在不断进行广告。您可以使用蓝牙嗅探器、EnergyTrace 或 SimpleLink Connect 移动应用程序仔细检查情况。例如,如果您启动连接,您将看到新的事件状态。此定期任务可以配置为执行示例中当前执行的操作之外的其他操作。您的设备在广告吗?

,

Yolande Wang:

您好,

您问题的疑惑解决了吗?

赞(0)
未经允许不得转载:TI中文支持网 » LAUNCHXL-CC26X2R1: SDK:simple_peripheral project 任务间运行和消息事件传递问题
分享到: 更多 (0)

© 2024 TI中文支持网   网站地图 鲁ICP备2022002796号-1