Hello Richard. Thank you for your answer. I realy tried to increase usStackDepth. It didnot help. I didnot use stack heavy/hungry functions like printf() or sprintf(). Here is an example of my problem:
void main()
{
...
xTaskCreate(vTask0, (signed char *) "vTask0", configMINIMAL_STACK_SIZE*5, NULL, (tskIDLE_PRIORITY + 1UL),(xTaskHandle *) NULL);
...
}
static void vTask0(void *pvParameters) {
uint32_t CanApiClkInitTable[2];
/* Publish CAN Callback Functions */
CCAN_CALLBACKS_T callbacks = {
CAN_rx,
CAN_tx,
CAN_error,
NULL,
NULL,
NULL,
NULL,
NULL,
};
baudrateCalculate(TEST_CCAN_BAUD_RATE, CanApiClkInitTable);
LPC_CCAN_API->init_can(&CanApiClkInitTable[0], TRUE);
/// here comes task stack overflow!!!
/* Configure the CAN callback functions */
LPC_CCAN_API->config_calb(&callbacks);
/* Enable the CAN Interrupt */
// NVIC_EnableIRQ(CAN_IRQn);
/* Send a simple one time CAN message */
msg_obj.msgobj = 0;
msg_obj.mode_id = 0x123;
msg_obj.mask = 0x0;
msg_obj.dlc = 4;
msg_obj.data[0] = 'T'; // 0x54
msg_obj.data[1] = 'E'; // 0x45
msg_obj.data[2] = 'S'; // 0x53
msg_obj.data[3] = 'T'; // 0x54
LPC_CCAN_API->can_transmit(&msg_obj);
/* Configure message object 1 to receive all 11-bit messages 0x400-0x4FF */
msg_obj.msgobj = 1;
msg_obj.mode_id = 0x100;//0x400;
msg_obj.mask = 0x700;
LPC_CCAN_API->config_rxmsgobj(&msg_obj);
}