Enables easier development and testing of MSP displayPort devices as the existing VCP connection to a computer can be used.
To use, define `USE_MSP_PUSH_OVER_VCP` either in the code or when compiling like:
```
make TARGET=STM32F405 OPTIONS=USE_MSP_PUSH_OVER_VCP
```
The existing code has the VCP blocked for MSP push serial as it can cause a number of problems. If there is no consumer then the USB endpoint will quickly fill its buffer and start flow-controlling. This leads to the the STM libraries blocking and the firmware wedges until data is read. So it's only appropriate that this is used for development testing.
The previous logic runs the OSD task at 60hz with a logical update rate of 12hz. The structure is based around an "update" (draw the elements) phase followed by 4 "drawScreen" phases that are designed to spread out the flushing of the screen buffer over SPI and reduce the OSD task delay.
The problem with MSP displayport is that is has no buffering aspect. The data is sent immediately to the external device as the elements are "drawn". Later only a single "drawScreen" call is needed to tell the external device to render. So because the same logical structure was used as for the max7456, there were 3 unnecessary drawScreen calls resulting in 36 messages and ~250 bytes/second sent over the serial line.
Discovered while testing with an external application that emulates a MSP displayPort serial device (reads the serial data, renders the OSD). Found the application was needing excessively high processing power because it was being told to render the display 4 times too often.
When motor is stopped and not spinning properly, show letter S instead
of expected esc output.
This is useful after crash recovery or during turtle mode.
Adds a `STICK COMMAND DISABLE SW` mode used to prevent inadvertant triggering of controls, calibrations, or settings changes. Useful for USB HID mode when using the flight controller as a joystick (and auto-detect doesn't work), in "team" or "relay" racing where multiple quads might be bound to the same transmitter, or just in general if the user wants prevent stick commands.
Will also prevent stick arming when the mode is active (but not stick disarming).
TIM_DMADelayPulseCplt (HAL_TIM_DMADelayPulseCplt) was changed to static
in 1.7 or 1.8, but this will cause timer_hal.c which uses
HAL_TIM_DMADelayPulseCplt not to build.