DA14695 Freertos眨眼示例冻结

⚠️
嗨,那里..感谢您参加论坛。激动人心的消息!现在,我们正在转到我们的新论坛平台,该平台将提供更好的功能,并包含在主话网站中。所有帖子和帐户都已迁移。我们现在仅在新论坛上接受流量 - 请在https://www.dialog-spoomendonductor.com/support。我们将在未来几天修复错误 /优化搜索和标记。
13个帖子 / 0新
最后一篇文章
Zephraimmckladden
离线
最后一次露面:1年8个月前
加入:2020-08-18 21:31
DA14695 Freertos眨眼示例冻结

我仍在使用DA14695 USB-DEVKIT并修改了PXP_REPORTER示例,其中我用Blinker_task.c修改了main.c,并替换了pxp_reporter_task.c.c,您可以在此处看到:

https://gist.github.com/tetrodoxin/34C8A2EF9AF9AF80B0D3E30C4D213B5CA40

当我构建闪光灯时,我可以启动它,而LED眨眼约4秒钟,然后该程序似乎冻结了,并且LED保持在一个状态,具体取决于使用的计时器延迟。

另外,电话OS_TASK_DELETE(OS_GET_CURRENT_TASK());在system_init()中永远不会返回。我不知道,如果这是连接的,但我也不知道在哪里寻找问题。

有什么建议么?提前致谢!

设备:
pm_dialog
离线
最后一次露面:4个月3周前
职员
加入:2018-02-08 11:03
嗨,Zephraimmckladden,

嗨,Zephraimmckladden,

您能以调试模式运行它并指定冻结的位置吗?

谢谢,pm_dialog

Zephraimmckladden
离线
最后一次露面:1年8个月前
加入:2020-08-18 21:31
不幸的是不是。

不幸的是不是。
正如我在本主题中描述的那样:
https://support.dialog-spoomendonductor.com/forums/post/dialog-smartbond-bl ...

目前,我无法在14695 USB-KIT(不是Pro-DK)上在Debugmode中运行我的项目。

当我更改计时器延迟值时,我观察到,这不是在冻结之前的时间问题,而是时间问题(约4秒)。

Zephraimmckladden
离线
最后一次露面:1年8个月前
加入:2020-08-18 21:31
关于我的第二

关于我的第二个问题:
可能是正常的吗?OS_TASK_DELETE(OS_GET_CURRENT_TASK());从未执行过,因为该调用完全结束了当前任务?

Zephraimmckladden
离线
最后一次露面:1年8个月前
加入:2020-08-18 21:31
同时我发现:

同时我发现:
作为我的示例是基于pxp_reporter,其中有很多ble东西。如果我将原始的PXP_REPORTER重写始终眨眼,则可以使用。如果我逐步删除BLE函数,则以函数ble_enable()结尾,如果我删除了函数,则在几秒钟后发生冻结。所以...也许该设备进入某种睡眠,这是由BLE功能阻止的???可能的?

pm_dialog
离线
最后一次露面:4个月3周前
职员
加入:2018-02-08 11:03
嗨,Zephraimmckladden,

嗨,Zephraimmckladden,

不确定您已经完成了什么步骤,但很高兴您能开始使用它。是的,SDK的pxp_reporter项目默认使用睡眠模式 - 请检查pm_sleep_mode_set(pm_mode_extended_sleep);在system_init()中。当系统处于任何可用的睡眠模式时,所有外围域都会关闭。

谢谢,pm_dialog

Zephraimmckladden
离线
最后一次露面:1年8个月前
加入:2020-08-18 21:31
我还尝试使用pm_sleep

我还尝试使用PM_SLEEP_MODE_SET(PM_ACTIVE),但仍会发生“冻结”。

是什么触发了力量?
Ble-Manager如何阻止它?
即使在延长的睡眠模式下,GPIO引脚仍然可以打开电源吗?

pm_dialog
离线
最后一次露面:4个月3周前
职员
加入:2018-02-08 11:03
嗨,Zephraimmckladden,

嗨,Zephraimmckladden,

为延迟道歉。您可以指出代码在哪里冻结吗?

谢谢,pm_dialog

Zephraimmckladden
离线
最后一次露面:1年8个月前
加入:2020-08-18 21:31
就像我说的:

就像我说的:
这不是一个特殊的代码,它是冻结的,现在是时候了。

因此,我想它正在进入睡眠模式。有什么办法可以完全禁用睡眠模式?

pm_dialog
离线
最后一次露面:4个月3周前
职员
加入:2018-02-08 11:03
嗨,Zephraimmckladden,

嗨,Zephraimmckladden,

我仍然无法理解您的意思:“这不是一个特殊的代码,它是冻结的,是时候了。”

通常,如果您附上调试GER,则应该可以检查冻结的位置。是WDOG到期吗?断言?NMI?

要禁用睡眠模式,您应该致电PM_SLEEP_MODE_SET(PM_ACTIVE)。

谢谢,pm_dialog

Zephraimmckladden
离线
最后一次露面:1年8个月前
加入:2020-08-18 21:31
我的意思是:

我的意思是:

我有一个计时器集和一个任务,等待该计时器通知(os_task_notify_wait之后sys_watchdog_suspend之后)。通知后,所有循环都可以切换绿色LED。现在,如果我更改计时器间隔,则该循环可能运行20次(短间隔)或仅2次(长时间间隔),但总共,LED永远不会闪烁超过5秒。

因此,我得出的结论是,代码中不是一个点/步/命令/函数调用,导致睡眠。我想,该设备在特定时间(4-5秒)后才进入睡眠模式。

我试过了pm_sleep_mode_set(pm_mode_active);在System_Init任务中(因为这是一个弗雷托斯项目),但这似乎没有任何效果。

正如我在上面写的那样,如果我使用函数ble_enable(),从而启用蓝牙功能,这似乎可以防止睡眠。但这是保持1469x清醒的唯一方法吗?

我在这里想念什么?

Zephraimmckladden
离线
最后一次露面:1年8个月前
加入:2020-08-18 21:31
同时我发现,如果我跑步

同时,我发现,如果我以调试模式运行示例,它不会入睡,因此我观察到的“冻结”不会发生。

在这里,使用的示例是SDK的Freertos_retarget项目。使用Freertos时,我仍然没有任何线索,如何防止睡眠模式。再次:pm_sleep_mode_set(pm_mode_active);什么也没做。

pm_dialog
离线
最后一次露面:4个月3周前
职员
加入:2018-02-08 11:03
嗨,Zephraimmckladden,

嗨,Zephraimmckladden,

您是如何检查它没有入睡的?

谢谢,pm_dialog