cc3200: Make the WDT aware of the servers sleep/wake state.
This commit is contained in:
parent
5cd34aca27
commit
6545336206
@ -54,6 +54,7 @@
|
|||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
typedef struct {
|
typedef struct {
|
||||||
bool servers;
|
bool servers;
|
||||||
|
bool servers_sleeping;
|
||||||
bool simplelink;
|
bool simplelink;
|
||||||
bool running;
|
bool running;
|
||||||
}pybwdt_data_t;
|
}pybwdt_data_t;
|
||||||
@ -61,7 +62,7 @@ typedef struct {
|
|||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
DECLARE PRIVATE DATA
|
DECLARE PRIVATE DATA
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
static pybwdt_data_t pybwdt_data;
|
static pybwdt_data_t pybwdt_data = {.servers = false, .servers_sleeping = false, .simplelink = false, .running = false};
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
DEFINE PUBLIC FUNCTIONS
|
DEFINE PUBLIC FUNCTIONS
|
||||||
@ -69,12 +70,11 @@ static pybwdt_data_t pybwdt_data;
|
|||||||
// must be called in main.c just after initializing the hal
|
// must be called in main.c just after initializing the hal
|
||||||
__attribute__ ((section (".boot")))
|
__attribute__ ((section (".boot")))
|
||||||
void pybwdt_init0 (void) {
|
void pybwdt_init0 (void) {
|
||||||
pybwdt_data.running = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void pybwdt_kick (void) {
|
void pybwdt_kick (void) {
|
||||||
// check that the servers and simplelink are running fine
|
// check that the servers and simplelink are running fine
|
||||||
if (pybwdt_data.servers && pybwdt_data.simplelink && pybwdt_data.running) {
|
if ((pybwdt_data.servers || pybwdt_data.servers_sleeping) && pybwdt_data.simplelink && pybwdt_data.running) {
|
||||||
pybwdt_data.servers = false;
|
pybwdt_data.servers = false;
|
||||||
pybwdt_data.simplelink = false;
|
pybwdt_data.simplelink = false;
|
||||||
MAP_WatchdogIntClear(WDT_BASE);
|
MAP_WatchdogIntClear(WDT_BASE);
|
||||||
@ -85,6 +85,10 @@ void pybwdt_srv_alive (void) {
|
|||||||
pybwdt_data.servers = true;
|
pybwdt_data.servers = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void pybwdt_srv_sleeping (bool state) {
|
||||||
|
pybwdt_data.servers_sleeping = state;
|
||||||
|
}
|
||||||
|
|
||||||
void pybwdt_sl_alive (void) {
|
void pybwdt_sl_alive (void) {
|
||||||
pybwdt_data.simplelink = true;
|
pybwdt_data.simplelink = true;
|
||||||
}
|
}
|
||||||
|
@ -34,6 +34,7 @@ extern const mp_obj_base_t pyb_wdt_obj;
|
|||||||
void pybwdt_init0 (void);
|
void pybwdt_init0 (void);
|
||||||
void pybwdt_kick (void);
|
void pybwdt_kick (void);
|
||||||
void pybwdt_srv_alive (void);
|
void pybwdt_srv_alive (void);
|
||||||
|
void pybwdt_srv_sleeping (bool state);
|
||||||
void pybwdt_sl_alive (void);
|
void pybwdt_sl_alive (void);
|
||||||
|
|
||||||
#endif /* PYBWDT_H_ */
|
#endif /* PYBWDT_H_ */
|
||||||
|
@ -121,14 +121,16 @@ void TASK_Servers (void *pvParameters) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// set the alive flag for the wdt
|
|
||||||
pybwdt_srv_alive();
|
|
||||||
|
|
||||||
if (sleep_sockets) {
|
if (sleep_sockets) {
|
||||||
sleep_sockets = false;
|
sleep_sockets = false;
|
||||||
|
pybwdt_srv_sleeping(true);
|
||||||
modusocket_enter_sleep();
|
modusocket_enter_sleep();
|
||||||
|
pybwdt_srv_sleeping(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// set the alive flag for the wdt
|
||||||
|
pybwdt_srv_alive();
|
||||||
|
|
||||||
// move to the next cycle
|
// move to the next cycle
|
||||||
cycle = cycle ? false : true;
|
cycle = cycle ? false : true;
|
||||||
HAL_Delay(SERVERS_CYCLE_TIME_MS);
|
HAL_Delay(SERVERS_CYCLE_TIME_MS);
|
||||||
|
Loading…
Reference in New Issue
Block a user