
27 Sep
2021
27 Sep
'21
9:55 p.m.
On Thursday 19 August 2021 13:13:05 Loic Poulain wrote:
+static void acm_notify_complete(struct usb_ep *ep, struct usb_request *req) +{
- if (req->status)
printf("CDC ACM notify failed (%d)\n", req->status);
- /* nothing to do */
+}
+static void acm_tx_complete(struct usb_ep *ep, struct usb_request *req) +{
- static int once; /* prevent infinite recursion */
- if (req->status && !once++)
printf("CDC ACM TX failed (%d)\n", req->status);
- struct f_acm *f_acm = req->context;
- f_acm->tx_on = true;
+}
+static void acm_rx_complete(struct usb_ep *ep, struct usb_request *req) +{
- struct f_acm *f_acm = req->context;
- if (req->status != 0)
printf("CDC ACM RX failed (%d)\n", req->status);
I guess all these prints can cause issues like infinite loop. If stdout is set to this usb acm gadget then printf will call these functions again.