我仍在使用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()中永远不会返回。我不知道,如果这是连接的,但我也不知道在哪里寻找问题。
有什么建议么?提前致谢!
设备:
嗨,Zephraimmckladden,
您能以调试模式运行它并指定冻结的位置吗?
谢谢,pm_dialog
不幸的是不是。
正如我在本主题中描述的那样:
https://support.dialog-spoomendonductor.com/forums/post/dialog-smartbond-bl ...
目前,我无法在14695 USB-KIT(不是Pro-DK)上在Debugmode中运行我的项目。
当我更改计时器延迟值时,我观察到,这不是在冻结之前的时间问题,而是时间问题(约4秒)。
关于我的第二个问题:
可能是正常的吗?OS_TASK_DELETE(OS_GET_CURRENT_TASK());从未执行过,因为该调用完全结束了当前任务?
同时我发现:
作为我的示例是基于pxp_reporter,其中有很多ble东西。如果我将原始的PXP_REPORTER重写始终眨眼,则可以使用。如果我逐步删除BLE函数,则以函数ble_enable()结尾,如果我删除了函数,则在几秒钟后发生冻结。所以...也许该设备进入某种睡眠,这是由BLE功能阻止的???可能的?
嗨,Zephraimmckladden,
不确定您已经完成了什么步骤,但很高兴您能开始使用它。是的,SDK的pxp_reporter项目默认使用睡眠模式 - 请检查pm_sleep_mode_set(pm_mode_extended_sleep);在system_init()中。当系统处于任何可用的睡眠模式时,所有外围域都会关闭。
谢谢,pm_dialog
我还尝试使用PM_SLEEP_MODE_SET(PM_ACTIVE),但仍会发生“冻结”。
是什么触发了力量?
Ble-Manager如何阻止它?
即使在延长的睡眠模式下,GPIO引脚仍然可以打开电源吗?
嗨,Zephraimmckladden,
为延迟道歉。您可以指出代码在哪里冻结吗?
谢谢,pm_dialog
就像我说的:
这不是一个特殊的代码,它是冻结的,现在是时候了。
因此,我想它正在进入睡眠模式。有什么办法可以完全禁用睡眠模式?
嗨,Zephraimmckladden,
我仍然无法理解您的意思:“这不是一个特殊的代码,它是冻结的,是时候了。”
通常,如果您附上调试GER,则应该可以检查冻结的位置。是WDOG到期吗?断言?NMI?
要禁用睡眠模式,您应该致电PM_SLEEP_MODE_SET(PM_ACTIVE)。
谢谢,pm_dialog
我的意思是:
我有一个计时器集和一个任务,等待该计时器通知(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清醒的唯一方法吗?
我在这里想念什么?
同时,我发现,如果我以调试模式运行示例,它不会入睡,因此我观察到的“冻结”不会发生。
在这里,使用的示例是SDK的Freertos_retarget项目。使用Freertos时,我仍然没有任何线索,如何防止睡眠模式。再次:pm_sleep_mode_set(pm_mode_active);什么也没做。
嗨,Zephraimmckladden,
您是如何检查它没有入睡的?
谢谢,pm_dialog