Q24PL001 watchdog restart when using FCM data mode


#1

Hi.

I have Q24PL001 device, act as Serial to TCP gateway.
When transaction data from serial (I use FCM data mode) to TCP is litte (less than 3000 characters/bytes) modem is working correctly, but when transaction data growth more than 4000 characters/bytes modem is not responding for a few seconds then restarted by watchdog timer.

After browsing in the forum, I increase stack size into maximum value (based on my trial and error).

u32 wm_apmCustomStack [1024*15];
const u16 wm_apmCustomStackSize = sizeof(wm_apmCustomStack);

Then I try to increase my data buffer

#define MAX_DATA_BUFF_LEN 102400

This is my code

#define MAX_INTERCHARACTER_TIMEOUT 2;
u32 interCharacterTimeout = 0;
u8 fcm_data_to_gprs[MAX_DATA_BUFF_LEN];

bool fcm_data_handler(u16 len, u8 *data) {
	TRACE((4, "FCM DATA HANDLER"));
	/* buffer incoming data into variable */
	wm_memcpy(&fcm_data_to_gprs[fcm_index_counter], data, len);
	fcm_index_counter += len;
	/* TRACE incoming SERIAL DATA */
	wm_sprintf(buff, "FCM DATA HANDLER : fcm_data_to_gprs = %s, length = %d", fcm_data_to_gprs, len);
	TRACE((4, buff));
	/* change FLAG */
	rcvDataComplete = TRUE;

	return (TRUE);
}

void send_to_gprs_timer_event_handler(u8 id) {
	if (rcvDataComplete == TRUE) {
		if (interCharacterTimeout < MAX_INTERCHARACTER_TIMEOUT) {
			interCharacterTimeout++;
		} else {
			nwrite = wip_write(tcpChannel, fcm_data_to_gprs, fcm_index_counter);
			if (nwrite > 0) {
				wm_sprintf(buff, "SEND TO GPRS TIMER HANDLER : serial Data (%d bytes) Sent = SUCCESS", nwrite);
				TRACE((10, buff));
			} else {
				wm_sprintf(buff, "SEND TO GPRS TIMER HANDLER : serial Data (%d bytes) Sent = FAILED", nwrite);
				TRACE((10, buff));
			}
			/* reset fcm_data buffer */
			wm_memset(fcm_data_to_gprs, 0, fcm_index_counter);
			/* reset buffer counter index */
			fcm_index_counter = 0;
			/* change FLAG */
			rcvDataComplete = FALSE;
		}
	}
	return;
}

Hardware & Firmware version

ATI3
657e09gg.Q24PL001 1961548 103107 17:56

AT+WDWL?
+WDWL: V02.1G

AT+WOPEN=2
+WOPEN: 2,"AT  v03.12","AT  v03.14"

Backtrace

Watch dog reset. Tsk 26
	Unknown function (0)
	Unknown function (0)

I have try to upgrade firmware to 657h, but no luck.
FYI, problem appear if using baudrate 9600 (this is mandatory requirement), and no problem found with baudrate 115200.

Any suggestion ?

Regards.


#2

hi,

Seems to be related to https://forum.sierrawireless.com/t/multiple-calls-to-adl-atsendresponse/1464/1

Thanks