Reduce code by supporting only GCR, fix serial_4way, fix f7 dshot bidir
fix ws and eliminate superfluous buffer
use GCR constant instead of 32
decode optimization
bump 4way prot version mumber
bump if version
Fix compilation when USE_DMA and USE_DMA_SPEC are not defined.
Cleanup calling code of `isMotorProtocolDshot`.
Fix 'unused' warning when USE_PWM_OUTPUT is not defined.
Undo isMotoroProtocolDshot change.
Disable USE_SERIAL_4WAY_BLHELI_INTERFACE when USE_PWM_OUTPUT is not
enabled.
Style cleanup.
Moved vtxtable frequency mode implementation into `vtx_common.c`.
This makes the implementation available for all vtx types and allows
for some code deduplication (see point below)
Removed band and channel tracking from tramp and rtc6705.
The hardware underlying both only support frequency mode and
the tracking is now done in `vtx_common.c` using the new factory flag.
Deleted vtxStringXXX. to continue supporting builds without
`USE_VTX_TABLE`, new infrastructure was created in
`drivers/vtx_table.c`, which loads fixed tables into vtxTableXXX
when built witout `USE_VTX_TABLE`. Individual vtx implementations no
longer need to load any band/channel tables. They only need to load
their individual power tables when built without `USE_VTX_TABLE`.
Additionally this allows for the next point:
Fully integrated vtxTableXXX and removed the old and no longer needed
indirection of frequency and power tables in `vtxDevice_t`.
Removed VTX_SETTINGS_* constants from `vtx_common.h` and replaced them
with the vtxtable equivalent.
rtc6705 implementation now uses power values from vtxtable instead of
using indices directly. It also stops using index 0. This makes it
consistent with other vtx implementations and is more user configurable.
It also cleans up `telemetry\srxl.c` which had to have a special case for rtc6705.
Finally, frequency entries in the vtxtable can now be marked as empty
by setting their frequency to 0. Betaflight will never allow a blocked
channel to be selected. This is useful for vtxtable index mode
(FACTORY flag set) where manufacturer-defined bands can be truncated
to ensure compliance with local laws and regulations.
* On boot SPI or SDIO is initialised.
* Filesystem is initialised (including creation of blackbox freespace
file)
* Empty config file is created if it doesn't exist, or read if it does.
* If config is invalid/empty then config file is written to, then read
back and verified.
Enable as follows.
target.h:
target.c:
uint8_t eepromData[EEPROM_SIZE];
Changes:
- Replace boolean init flags with single initFlags variables.
- Avoid unused variable warnings.
If the MCU also supports PERSISTENT ram (not erased on a warm boot) it
allows testing of config changes without wearing out your flash.
e.g.
linker script
-------------
comment out __config_start/__config_end
target.c
--------
PERSISTENT uint8_t eepromData[EEPROM_SIZE]; // persistent, so it
survives warm boots.
target.h
--------
extern uint8_t eepromData[EEPROM_SIZE];
SITL actually keeps the EEPROM in a FILE, loaded into RAM using
alternate FLASH_* implementation.