* Revert "Revert "Rewritten F7 dshot to LL (draft)" (#5430)"
This reverts commit aa42a69d2f.
* Reworked F7 linker scripts to maximize performance of both F74x and F72x
* Some comments and changes from original F7 HAL DSHOT
* Prohibit inlining of some functions to place them in ITCM-RAM
* Fixed usartTargetConfigure implicit declaration
* Moved back to SRAM1 as main RAM
* Added SRAM2 attribute
* Fixed LL DSHOT FOR SPRF7DUAL and probably other adv TIM users
* Fixed SPRF7DUAL rev. A motor order
* Enabled CCM for data on F40x
* Fixed F7 startup assembly symbols
* Fixed KISSFCV2F7 linker script
* Added a quick way of building F7 targets only
* Got rid of the useless F7 target script
* Added NOINLINE and got rid of useless __APPLE__ define
* Added some important functions to ITCM
* Added NOINLINE macro for tests
* Copy to ITCM before passing execution into it
* Minimized cache footprint of motor output code
* Evicted low-impact functions from ITCM
* Switched MATEKF722 and SPRACINGF7DUAL to burst DSHOT
* Switched CLRACINGF7 to burst DSHOT
* Moved UART RX&TX buffers to DTCM-RAM to avoid cache incoherency
* Marked taskMainPidLoop for ITCM-RAM, disallowed inlining per-function
* Revert "Added a quick way of building F7 targets only"
This reverts commit 2294518998.
* Support DTR in serial passthrough mode to enable programming of Arduino
based devices such as MinimOSD.
Use 'serialpassthrough 5 57600 rxtx 56' and then use Ardino to program MinimOSD
Use 'serialpassthrough 5 115200' and then use MWOSD configurator to setup
* Fix comment for CDC_SetCtrlLineStateCb routine
* Handle F7 CDC interface
* Use strToPin() to allow easy port/pin specification
* Fix use of CDC_SetCtrlLineStateCb for all processor types
* Only set baud when specified
* Fix unit tests for cli
* Only register callback if needed
* Fix white space
* Provide implementation of IOConfigGPIO in SITL
* Update serialpassthrough help text
* DTR handling through serial drivers
* Fix F3, F7 and SITL builds
* If serialpassthrough command specifies baud rate of 0, set baud rate over USB. MWOSD configurator can now access config and reflash MinimOSD without rebooting and changing baud rate.
* Fix F3 build
* Fix failing unit tests
* Use resources to declare DTR pin assignment
* Don't assert DTR during normal operation as MW_OSD doesn't like it
* MW_OSD must be built with MAX_SOFTRESET defined in order to support DTR resets
* Minimise changes after dropping DTR pin param from serialpassthrough cmd
* Remove DTR pin param from serialpassthrough cmd
* Treat ioDtrTag as boolean in conditional statements
* Tidy buffer check
* Check buffer size in CDC_Itf_Control
* Fix unit test
* Add documentation for DTR
* Add note on MAX_SOFTRESET to documentation
* Remove superfluous function definitions
* Fix tabs
* Fix tabs
* Removed superfluous entried from vtable
* Backout whitespace changes unrelated to this PR
* Pass true/false to IOWrite()
* Fix line coding packing
* Add LINE_CODING structure defintion
* Revise serial documentation
* Prevent tx buffer overflow in serialPassthrough()
* Revert change unrelated to PR
* Review feedback from ledvinap
* Fix unit test
* Use PINIO to drive DTR
* Fix unit test
* Remove change unrelated to PR
* Fix SITL build
* Use shifted bits for mask definition
* Fix serialpassthrough documentation
* Only compile PINIO functionality if USE_PINIO defined
* IOConfigGPIO not needed
* Move cbCtrlLine callback to cli.c
* serialPassthrough params changed
* Check packed structure size
* Fix unit test
* Tidy up baud rate handling
* CF/BF - Set STM32F7 SPI FAST clock to 13.5Mhz - Gyros not stable at
27mhz.
* CF/BF - Initial SPRacingF7DUAL commit.
Support two simultaneous gyro support (code by Dominic Clifton and Martin Budden)
There are new debug modes so you can see the difference between each gyro.
Notes:
* spi bus instance caching broke spi mpu detection because the detection
tries I2C first which overwrites the selected bus instance when using
dual gyro.
* ALL other dual-gyro boards have one sensor per bus. SPRacingF7DUAL is has two per bus and thus commit has a lot of changes to fix SPI/BUS/GYRO initialisation issues.
* CF/BF - Add SPRacingF4EVODG target.
This target adds a second gyro to the board using the SPI pads on the back of the board.
* CF/BF - Temporarily disable Gyro EXTI pin to allow NEO target to build.