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