The Timer Won't Whine
You inherited the drive firmware for a small brushed-DC motor. A colleague brought up the PWM timer and handed it over as working, but on the rig the drive only ever reaches about half the commanded speed, no matter what speed is asked for. The control math looks right and the shaft does spin, it just tops out low and sits there. No fault is reported.
The timer is wired to the plant: the motor derives its duty from the timer's compare and reload registers every control tick and spins accordingly. The commanded speed is delivered in an SRAM mailbox at 0x2000FF00 in milli-RPM (10,500,000 mRPM is 10,500 RPM). A correct drive spins up smoothly and holds the commanded speed; the register state is also read back directly, the way a debugger probes a live chip, so the PWM channel must actually be brought up, not just left in a half-configured state.
Find why the drive tops out at half the commanded speed and fix it so it reaches the commanded speed.