LPDS gpio wake up
1.我用3200LP验证idle_profile, 按下SW3(GPIO_13)确实会唤醒,但是我用GPIO_17确不能唤醒。我只在原代码的基础上加了
int gpio_intr_hndlr(int gpio_num)
{
unsigned char queue_msg = 2;
if((GPIO_SRC_WKUP == gpio_num)||(17 == gpio_num))
{
osi_MsgQWrite(&g_tWkupSignalQueue, &queue_msg, OSI_NO_WAIT);
}
return 0;
}
我的理解是,gpio_intr_hndlr里面加入判断,user_app_config.h的gpio_list里有对应的GPIO,在pinmux.c里将可唤醒的GPIO配置成输入。这样应该就可以了吧?
2.关于IO parking,cc32xx_io_park={PIN_01, "GPIO_10", WEAK_PULL_DOWN_STD},这个是指系统进LPDS的时候将GPIO_10拉低?退出LPDS的时候恢复原GPIO_10的值?
LPDS模式下有6个GPIO可以唤醒,请参考release notes
Low Power Deep Sleep(LPDS)
RAM retention – RAM is retained by default, but the application user can decide whether and which blocks to retain when the MCU enter LPDS.
CPU context retention – No (if required, context need to be saved and restored in SW)
Peripheral context retention – No (Peripherals need to be reconfigured after exiting from LPDS)
Wake source – GPIO (2,4,11,13,17,24 – only one), LPDS Wake timer and Network wakeup