3 posts / 0 new
Last post
Lane
Offline
Last seen:3 weeks 16 hours ago
加入:2015-07-14 14:21
需求方V5.150.2中的睡眠模式问题

Hi Dialog:
我使用DSPS V5.150.2时,在da1458x_config_basic.h文件中并没有定义睡眠模式
#undef CFG_MEM_MAP_EXT_SLEEP
#undef CFG_MEM_MAP_DEEP_SLEEP

但运行时还是会进入
if ((sleep_mode == mode_ext_sleep) || (sleep_mode == mode_deep_sleep)) {
//power down the radio and whatever is allowed
arch_goto_sleep(sleep_mode);

//wait for an interrupt to resume operation
WFI();

//resume operation
arch_resume_from_sleep();
}

请问默认是开启的睡眠模式的么,如何将其关闭,如何在这个例程中添加IO口外部唤醒?

Device:
Qinjiny_Dialog
Offline
Last seen:1 month 1 week ago
工作人员
加入:2016-11-01 05:47
你好,

你好,

睡眠模式的定义在user_config.h中,修改代码:

/******************************************
* Default sleep mode. Possible values are:
*
* - ARCH_SLEEP_OFF
* - ARCH_EXT_SLEEP_ON
* - ARCH_DEEP_SLEEP_ON
******************************************
*/
const static sleep_state_t app_default_sleep_mode = ARCH_SLEEP_OFF;

当然,memory map的配置也要跟着修改定义。把两个CFG_MEM_MAP_XXX_SLEEP都去定义即可

关于添加外部唤醒的机制可以去SDK的 ble_sleepmode 或者pxp reporter参考例程中看一下。里面有实现基于按键的外部唤醒

Lane
Offline
Last seen:3 weeks 16 hours ago
加入:2015-07-14 14:21
Hi Dialog:

Hi Dialog:
SDK中ble_sleepmode 和DSPS睡眠构架和使用的唤醒函数一样的,但我还是遇到一些问题:
在da1458x_config_basic.h文件中
#define CFG_APP
在rwip_config.h文件中
#ifdef CFG_APP
#define BLE_APP_PRESENT 1
#else
#define BLE_APP_PRESENT 0

所以预处理中BLE_APP_PRESENT = 1导致两者下面两个用于唤醒设置和回调的函数无法被编译和调用

#if ((EXTERNAL_WAKEUP) && (!BLE_APP_PRESENT)) // only in full embedded designs

void ext_wakeup_enable(uint32_t port, uint32_t pin, uint8_t polarity)
{
...........
}

void ext_wakeup_disable(void)
{
..........
}
#endif // ((EXTERNAL_WAKEUP) && (!BLE_APP_PRESENT))
如果我想使用这两个函数,应该做哪些设置