From 9f2b9b5604a7cbd0704c406e33acc01425f5d758 Mon Sep 17 00:00:00 2001 From: Rostyslav Spolyak Date: Mon, 13 Feb 2017 21:50:42 +0200 Subject: [PATCH 1/2] Increase thread stack size --- bsp/gtrack/bsp.h | 8 ++++---- drivers/include/gsm_ll.h | 2 ++ drivers/network/gsm_ll.c | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/bsp/gtrack/bsp.h b/bsp/gtrack/bsp.h index 7ff74fe..94ada67 100644 --- a/bsp/gtrack/bsp.h +++ b/bsp/gtrack/bsp.h @@ -45,13 +45,13 @@ extern void bspSystemPowerOff(void); #undef GSM_SERIAL_PORT #define GSM_SERIAL_PORT SD2 -#define CTRL_TASK_STACK_SIZE 768 +#define CTRL_TASK_STACK_SIZE 1024 -#define LOGGING_THREAD_STACK_SIZE 512 +#define LOGGING_THREAD_STACK_SIZE 768 -#define CLI_THREAD_STACK_SIZE 512 +#define CLI_THREAD_STACK_SIZE 1024 -#define ACCEL_THREAD_STACK_SIZE 768 +#define ACCEL_THREAD_STACK_SIZE 1024 #define BSP_SYS_PWR_PORT GPIOA #define BSP_SYS_PWR_PIN GPIOA_PIN7 diff --git a/drivers/include/gsm_ll.h b/drivers/include/gsm_ll.h index b755319..19cf7cb 100644 --- a/drivers/include/gsm_ll.h +++ b/drivers/include/gsm_ll.h @@ -33,6 +33,8 @@ */ #define GSM_SERIAL_SPEED 19200 +#define GSM_THREAD_STACK_SIZE 1536 + #define MED_BUF_LEN 64 #define GSM_SMS_INTERNAL_BLOCKS 3 diff --git a/drivers/network/gsm_ll.c b/drivers/network/gsm_ll.c index f2517c6..2ba4468 100644 --- a/drivers/network/gsm_ll.c +++ b/drivers/network/gsm_ll.c @@ -59,7 +59,7 @@ static struct float balance; } balance_s = {.state = false, .balance = 0.0}; -static THD_WORKING_AREA(gsmThread, 1024); +static THD_WORKING_AREA(gsmThread, GSM_THREAD_STACK_SIZE); static bool gsm_is_ready = FALSE; static MUTEX_DECL(gsm_ready_mutex); From a0563cfa32def484ff208a937c4c7e4036af12dd Mon Sep 17 00:00:00 2001 From: Rostyslav Spolyak Date: Mon, 13 Feb 2017 22:02:28 +0200 Subject: [PATCH 2/2] Enable GSM power safe mode --- bsp/gtrack/board.h | 2 +- drivers/network/gsm_ll.c | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/bsp/gtrack/board.h b/bsp/gtrack/board.h index a8fafac..1254752 100644 --- a/bsp/gtrack/board.h +++ b/bsp/gtrack/board.h @@ -266,7 +266,7 @@ PIN_ODR_LOW(GPIOA_PIN3) | \ PIN_ODR_HIGH(GPIOA_PIN4) | \ PIN_ODR_HIGH(GPIOA_PIN5) | \ - PIN_ODR_LOW(GPIOA_PIN6) | \ + PIN_ODR_HIGH(GPIOA_PIN6) | \ PIN_ODR_LOW(GPIOA_PIN7) | \ PIN_ODR_HIGH(GPIOA_PIN8) | \ PIN_ODR_HIGH(GPIOA_PIN9) | \ diff --git a/drivers/network/gsm_ll.c b/drivers/network/gsm_ll.c index 2ba4468..489d55d 100644 --- a/drivers/network/gsm_ll.c +++ b/drivers/network/gsm_ll.c @@ -41,7 +41,7 @@ //#define GSM_ERROR_HANDLE /* Enables GSM low power mode */ -//#define GSM_SLEEP +#define GSM_SLEEP gsmCbFunc_t gsmCbArray_g[GSM_EVENT_LAST]; phoneBook_t phoneBook_g; @@ -256,7 +256,7 @@ void gsmModuleCfg(void) //gsmCmdSend(GSM_PHONEBOOK_READ_ALL); - //gsmCmdSend(GSM_SLEEP_MODE_DTR); + gsmCmdSend(GSM_SLEEP_MODE_DTR); } void gsmModulePhoneNumberAdd(char* number, char* name) @@ -694,9 +694,9 @@ static THD_FUNCTION(gsmTask, arg) if (res == MSG_OK) { cur_command.id++; -#if GSM_SLEEP +#ifdef GSM_SLEEP /* exit sleep mode. serial port will be active after about 50ms */ - palClearPad(GPIOA, GPIOA_PIN2); + palClearPad(GPIOA, GPIOA_PIN6); chThdSleepMilliseconds(100); #endif LOG_TRACE(GSM_CMP, "Sending a command #%d:%s", cur_command.id, pBuf); @@ -769,9 +769,9 @@ static THD_FUNCTION(gsmTask, arg) #endif /* allow next command to be dispatched to GSM module */ cur_command.ack = true; -#if GSM_SLEEP +#ifdef GSM_SLEEP /* enter sleep mode */ - palSetPad(GPIOA, GPIOA_PIN2); + palSetPad(GPIOA, GPIOA_PIN6); #endif } val = 0;