Description
Description
After my PR #10689 was recently merged, I synced a project I'm working on up to Mbed-OS master. This project uses USB MSD.
Now, when I connect my device to a host (tried on Linux and Windows), I hit the following assert:
++ MbedOS Error Info ++
Error Status: 0x80FF0144 Code: 324 Module: 255
Error Message: Assertion failed: info->pending >= 1
Location: 0x6549
File: ./mbed-os/usb/device/USBDevice/USBDevice.cpp+955
Error Value: 0x0
Current Thread: main Id: 0x2000155C Entry: 0x76B5 StackSize: 0x1000 StackMem: 0x200023B0 SP: 0x2003FF00
For more info, visit: https://mbed.com/s/error?error=0x80FF0144&tgt=NRF52840_DK
-- MbedOS Error Info --
I then changed back to my feature branch (https://github.com/AGlass0fMilk/mbed-os/tree/nrf52840-usbphy-implementation), rebuild and the issue is gone. My device mounts as /dev/sdb
fine.
Not sure if anything changed in the USB stack that might be causing this. I don't see any other recent changes.
Essentially, my main code ends with (after setting up FAT file system from example):
USBMSD usb(&qspi_blockdevice);
while (true) {
usb.process();
}
I am also printing to the debug UART. Other than that, there's not much else going on in the project.
I tested this on my USB Serial example here: https://github.com/AGlass0fMilk/mbed-usb-cdc-example.git
Same results. When I'm on my feature branch it works as expected. When I pull master (currently at 14b77c9) the code hits the assert as soon as I plug in USB.
I haven't had luck tracing down the commit that introduced this issue. My feature branch isn't that stale so that should help narrow it down.
Testing on nRF52840_DK with GCC_ARM toolchain.
Issue request type
[ ] Question
[ ] Enhancement
[X] Bug