我有一个功能,当我的设备的USB连接时响应。
Void usb_attach_cb(Void) {printf("usb_attach_cb\n");ActionDispatcher * ActionDispatcher = ActionDispatcher::Instance();Uint8_t数据= 1;actionDispatcher - >调度(ActionType_UsbStatusChange平1);}
这段代码工作良好,但如果我添加一个printf语句的调度函数,我得到一个堆栈溢出
v亚博国际官网平台网址ApplicationStackOverflowHook USBC
有没有办法增加堆栈大小来避免这个问题?
设备:
嗨alarner,
不建议在回调函数内部调用printf函数。最佳实践是创建一个任务,当触发usb_attach_cb时,应该触发具有printf的任务。否则,您应该增加将分配给您正在使用的任务的堆栈的字节数(stack_size)。
谢谢,PM_Dialog
谢谢你的回复。在哪里可以找到演示如何增加分配给堆栈的字节数的代码示例?
嗨alarner,
您可以查看SDK的任何BLE示例。例如,请检查pxp_reporter的例子和在主。f你会发现“PXP Reporter”任务。所以,你要做的就是改变从OS_TASK_CREATE() API中分配给任务栈的字节数。
谢谢,PM_Dialog