3个帖子/ 0个新帖子
最后发表
2455321262
离线
最后看到:2年11个月前
加入:2017-01-22 06:43
关于睡眠模式

你好,
1)在阅读了嗯- b - 006之后,我没有搞清楚同步唤醒和异步唤醒事件,能否举个例子描述下这两个唤醒事件的区别吗?
而(1)

------------------------------------------------------- 第1部分:调度(同步)
如果BLE是ON {
做安排
异步事件请求的DO同步(钩子#1)

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 第2部分:处理异步事件
DO异步事件处理(钩子#2)
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 第3部分:睡眠进入/退出
#如果SLEEP_ENABLED
GLOBAL_INT_STOP ();
DO异步事件睡眠处理(钩子#3)
//如果app已经关闭了sleep, rwip_sleep()将相应执行
根据rwip_sleep()结果设置sleep_mode
...............................

2)承接问1)参考该文档的伪代码,请问一般开发自己添加的代码应该放在哪个钩处理好吗?

非常感谢,期待你的答复。

设备:
2455321262
离线
最后看到:2年11个月前
加入:2017-01-22 06:43
有路过的朋友解答下吗,谢谢了

有路过的朋友解答下吗,谢谢了

Qinjiny_Dialog
离线
最后看到:4个月6天前
工作人员
加入:2016-11-01 05:47
你好,

你好,

仔细阅读文档的话其实有很清楚的说明:

在BLE应用程序中,DA14580可以设置为上述两种睡眠模式中的任意一种。对于一个广告事件、连接事件或其他无线通信事件,需DA14580唤醒并进入活动模式,以便通过BLE无线链路发送/接收数据包。自这些事件是基于时间的事件,BLE定时器用于唤醒系统,包括BLE核心、无线电、ARM处理器和其他模块。在这种情况下,以下约定使用:系统与BLE核心同步唤醒”。

在Extended / Deep sleep模式下,DA14580也可以被外部事件唤醒唤醒后ARM处理器可以执行一些功能。然而,在那一刻,它可能不会但是是一个BLE通信事件的时间,例如一个连接事件,因此BLE和收音机可以保持断电状态。在这种情况下,使用以下约定:该系统是BLE核心异步唤醒”。

同步唤醒和异步唤醒的主要区别在于唤醒的来源以及祝福核心是否唤醒。同步唤醒一般由内部BLE计时器发起,除手臂处理器之外BLE核心和广播装置也唤醒工作。同步唤醒主要用于计划中的祝福相关任务,包括定期唤醒广播,扫描,连接,使用祝福传输信息等等工作时需要祝福核心以及祝福时钟进行同步的事件。而异步唤醒一般由外部中断触发,仅唤醒ARM核心及少量相关模块,用于处理一些不需要用到BLE核心的基础任务,例如一些基础的数据处理工作。当然,同步唤醒也可以由外部中断的方式来实现。

至于2)代码添加到哪个钩取决于你的需要和具体任务。这段伪代码的实现在arch_main.c里面,用户在添加代码时一般不直接添加在这个文件,而是另外写在单独的用户文件里