器件型号: CC2745R10-Q1
尊敬的 TI 团队:
我们面临着代码达到 HAL_assert_Cause_stack_overflow_error 的问题。
我们观察到当我们 使用 closeCANInterface () 函数关闭 CAN 时会发生这个问题。 下面、我附上了一个代码片段供您参考。
从故障屏幕截图(已附加)中可以看出、由于空闲任务栈溢出、系统正在进入 HAL_assert_Cause_stack_overflow_error。

CAN 通信正常工作、但当我尝试关闭 CAN 时、系统稍后进入堆栈溢出置为有效。
代码参考:
空维护 (void *ptr)
{
iEHL_canInit();
GPIO_WRITE (iEHL_CAN_Control_STB、GPIO_LOW);//启用 CAN 收发器
closeCANInterface();
vTaskDelay (PDMs_to_ticks (100));
}
void iEHL_canInit (void)
{
if (can_handle == NULL)
{
can_init();
CAN_PARAMS_INIT (&canParams);
canParams.eventCbk = eventCallback;
canParams.EventMask = can_event_RX_DATA_AVAIL |
CAN_EVENT_ERR_PASSIVE |
CAN_EVENT_BUS_OFF |
CAN_EVENT_RX_FIFO_MSG_LOST |
CAN_EVENT_RX_RING_BUFFER_FULL;
canParams.msgRamConfig =&msgRamConfig;
can_handle = can_open (config_can_0、&canParams);
if (can_handle == NULL)
{
while (1);//失败:系统停止或错误记录
}
}
}
void closeCANInterface (void)
{
if (can_handle!= NULL)
{
CAN_Close (can_handle);
CAN_Handle = NULL;
}
}
环境详细信息:
控制器:CC2745R10
SDK:simplelink_lowpower_f3_SDK_9_11_01_13
请帮助我了解此栈溢出问题的根本原因、并提供建议的正确方法来安全关闭 CAN 接口。
谢谢您、
Ratan。
