[130] USBD: Writing to certain read-only registers causes undefined behavior

This anomaly applies to IC Rev. Engineering A, build codes QIAA-AA0.

Symptoms

Writing to the following read-only registers locks up the APB bus:
  • HALTEDEPIN[0:7]
  • HALTEDEPOUT[0:7]
  • USBADDR
  • DMASTATE
  • BMREQUESTTYPE
  • BREQUEST
  • WVALUEL
  • WVALUEH
  • WINDEXL
  • WINDEXH
  • WLENGTHL
  • WLENGTHH
  • EPOUTSIZE[0:7]
  • ISOOUTSIZE8
  • FRAMECNTR

Conditions

Always.

Consequences

Software crashes.

Workaround

Do not write these registers. Only read them.


Documentation feedback | Developer Zone | Subscribe | Updated 2016-12-06