Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
STM32F3: Correct handling of USB ISTR and endpoint registers #4149
The USB ISTR register consists of a mix of bits that are
Similarly, the USB endpoint registers have two bits that are
Steps to test or reproduce
This check-in corrects very rare, timing specific USB issues of bits inadvertently getting cleared if they are set by the hardware in between read and write instructions when clearing other bits in the same register. Testing was done by creating a USB HID device and test software that would simultaneously transfer about 1000 packets per seconds in both IN and OUT directions. With this change, over 10 million packets were transferred without any lost packets or other behavioural issues detected.