Commit Graph

325 Commits

Author SHA1 Message Date
Bruce Luckcuck cb14206b96 Change BMI270 driver compilation to speed-optimized
Also move the "fake" gyro driver from speed to size-optimized.
2020-03-14 11:29:53 -04:00
Bruce Luckcuck ad0e7154a7 Split initialization from gyro.c for flash savings
Move low performance requirements initialization code into gyro_init.c and optimize that for size.
2020-03-13 10:08:11 -04:00
mikeller ad4cc3d74f Cleaned up the inclusion of the microcode for BMI270. 2020-03-11 20:47:43 +13:00
mikeller 9a3ae13038 Added some more legacy targets. 2020-03-11 12:54:52 +13:00
jflyper ec2aac314d [I2C] Introduce computational I2C waveform configuration for HAL based MCUs
Tested with
Nucleo-F722ZE I2C1 on PB8,PB9
Nucleo-H743ZI I2C1 on PB8,PB9 and I2C4 on PF14,PF15
2020-03-10 12:11:50 +09:00
Bruce Luckcuck 447cbac988 Add support for Bosch BMI270 gyro/accelerometer sensor 2020-03-08 18:56:50 -04:00
mikeller f6dcc09f65 Reduced the number of target groups to build in CI from 6 to 3. 2020-02-18 00:42:08 +13:00
Michael Keller 0ea28638c8 Move targets into legacy targets for 4.1.6. 2020-02-17 08:21:09 +13:00
Michael Keller 67ae416ec2
Merge pull request #9410 from mikeller/move_targets_into_legacy_for_4_1_5
Move targets into legacy targets for 4.1.5.
2020-02-17 08:10:20 +13:00
mikeller 39b62cb6c1 Added command to bind RX to MSP. 2020-02-06 13:36:27 +13:00
Michael Keller b4191b02e0 Move targets into legacy targets for 4.1.5. 2020-01-24 13:28:14 +13:00
Michael Keller ff1df466f3
Merge pull request #9369 from mikeller/add_unified_target
Added 'unified' target to Makefile.
2020-01-23 13:24:45 +13:00
Michael Keller 5c0d9e7d39
Merge pull request #9307 from mikeller/move_targets_into_legacy_for_4_1_4
Move targets into legacy targets for 4.1.4.
2020-01-21 13:41:21 +13:00
jflyper be923434b8 Rename FLASH_SIZE to TARGET_FLASH_SIZE 2020-01-20 12:30:28 +09:00
mikeller 5ac2114b75 Added 'unified' target to Makefile. 2020-01-17 01:33:18 +13:00
mikeller 378bb26e36 Move targets into legacy targets for 4.1.4. 2019-12-23 23:34:41 +13:00
Michael Keller c9674fd488
Move targets into legacy targets for 4.1.3. (#9181)
Move targets into legacy targets for 4.1.3.
2019-12-23 23:25:49 +13:00
Bruce Luckcuck 04844bd5a1 Refactor common USB MSC code and improve activity LED
Eliminated the duplicated MSC functions in the architecture specific files and moved to a shared common.

Improved the activity indicating LED and made it consistent between onboard flash and sd card mass storage mode.
2019-12-02 22:08:19 -05:00
Alberto García Hierro 37e66b3dda Add support for FrSky OSD
- Add displayWriteFontCharacter() for font writing, removing all max7456
specific code.
- Add displayIsReady() for asynchronous display initialization
- Add displayBeginTransaction()/displayCommitTransaction() for display
transactions, which allow performing complex drawing operations without
flickering
- Add displayGetCanvas(), which retrieves the canvas associated with a
display (if it has it)
- Add canvas implementation for pixel based access for a display
- Add FrSkyOSD driver and displayPort driver
- Enable FrSkyOSD driver for targets with flash > 256
- Rename max7456_symbols.h to osd_symbols.h
2019-11-30 22:06:36 +00:00
Bruce Luckcuck 8320467871 Fix download URLs for gcc 9.2.1 2019-11-28 12:26:56 -05:00
Michael Keller 75dda319fb Update gcc to 9.2.1. 2019-11-27 16:08:22 +13:00
Michael Keller 365ecaae9c
Removed the outdated official target list. (#9220)
Removed the outdated official target list.
2019-11-25 19:02:48 +13:00
mikeller a302b5bae2 Removed ATOMIC_BARRIER check, fixed ITCM_RAM overflow. 2019-11-25 01:16:08 +13:00
mikeller 1a2b9f422a Removed the outdated official target list. 2019-11-24 19:18:47 +13:00
Steffen Windoffer 4affef7e5a update to gcc 8.3.1 2019-11-24 13:58:07 +13:00
mikeller cedcf2d7e2 Added calibration menu to CMS. 2019-11-19 13:59:52 +13:00
mikeller 333425f419 Move targets into legacy targets for 4.1.3. 2019-11-17 14:46:15 +13:00
Michael Keller 33ba8a043e
Move targets into legacy targets for 4.1.2. (#9123)
Move targets into legacy targets for 4.1.2.
2019-11-17 10:04:09 +13:00
Michael Keller 33c2ccecf1
Added facility to use GPIO pins for fast debugging. (#8809)
Added facility to use GPIO pins for fast debugging.
2019-11-06 13:35:54 +13:00
Michael Keller bd240140ec
Moved MCU specific defines into 'common_pre.h' if not used in t… (#9117)
Moved MCU specific defines into 'common_pre.h' if not used in the STM32 libraries.
2019-10-31 01:14:54 +13:00
Michael Keller fadc45cbcb
Cleaned up parameter groups in Makefile. (#9116)
Cleaned up parameter groups in Makefile.
2019-10-31 01:14:35 +13:00
Michael Keller f3d1be6b0f
Moved 'config.[ch]' into the 'config/' directory. (#9121)
Moved 'config.[ch]' into the 'config/' directory.
2019-10-29 20:23:07 +13:00
mikeller 0aeece6b36 Move targets into legacy targets for 4.1.2. 2019-10-28 16:49:57 +13:00
Michael Keller b83e10481f
Removed legacy targets from the list of targets built in CI. (#9049)
Removed legacy targets from the list of targets built in CI.
2019-10-28 16:46:28 +13:00
mikeller 4a7904695e Moved 'config.[ch]' into the 'config/' directory. 2019-10-28 11:17:25 +13:00
mikeller 00149dbf96 Reduced list to only MATEKF405 for 4.1.1. 2019-10-28 10:51:04 +13:00
mikeller 11b3ba224c Moved MCU specific defines into 'common_pre.h' if not used in the STM32 libraries. 2019-10-27 23:09:33 +13:00
mikeller c2a64c79fc Cleaned up parameter groups in Makefile. 2019-10-27 22:36:42 +13:00
Michael Keller 55984bd3ce
Replace individual CMS vtx menus with a single entry that redir… (#9066)
Replace individual CMS vtx menus with a single entry that redirects to the correct protocol menu
2019-10-21 20:37:57 +13:00
mikeller 14359ae6e6 Added facility to use GPIO pins for fast debugging. 2019-10-21 20:13:26 +13:00
Bruce Luckcuck 5c98726318 Replace individual CMS vtx menus with a single entry that redirects to the correct protocol menu
Instead of having individual menus for RTC6705, SmartAudio, and Tramp, Now there is a single VTX menu that detects the type of active device and redirects to the appropriate protocol menu.

Reduces confusion and chances of erroneously using the wrong VTX menu.

Fixes a problem where the Tramp menu could be used to change band/channel/power even though the VTX was a SmartAudio device.

If the VTX is not configured or not communicating, a more informative message will be presented rather than a partially populated protocol menu. For example:
```
  VTX NOT RESPONDING
  OR NOT CONFIGURED

> BACK
```

Extends the CMS menu capabilities by adding an optional `redirectCheck` function that can conditionally return a menu that should be redirected to instead of the current menu. This redirect happens before any processing happens for the original menu. Adds flexibility to make the CMS menus have a more dynamic aspect.
2019-10-19 20:17:43 -04:00
jflyper cb1bdfe204 Add Nucleo-F303RE support 2019-10-18 00:19:52 +09:00
mikeller 971ded14e4 Removed legacy targets from the list of targets built in CI. 2019-10-17 02:36:25 +13:00
jflyper 4e9923569a NUCLEOF103RG target
NUCLEOF103RG is a target for Nucleo-F103RG (Nucleo-F103RB transplanted
with STM32F103RG which has 1MB of FLASH).
Such hardware with this target comes in handy when a firmware that
doesn't fit in smaller FLASH variant when compiled with DEBUG option.

The target definition files are straight copy of NAZE, except LED0_PIN
has been redefined to use Nucleo's LD2 (User LED).

It is also easy to convert exisiting F1 targets to be built to run on
the Nucleo-F103RG board:

- Add
    #define FLASH_PAGE_SIZE 0x800
    to target.h

- Also add
    #undef USE_DSHOT
    #undef USE_LED_STRIP
    #undef USE_TRANSPONDER
    #undef USE_CAMERA_CONTROL
    to target.h to avoid non-F1 compatible code from getting in.

- Add
FLASH_SIZE  = 1024
    to target.mk
2019-09-23 23:58:03 +09:00
mikeller 15c57c0f3d Fixed checks and added target for all checks. 2019-09-16 23:29:28 +12:00
jflyper adf6fd1764 DMA bit banging Dshot, first cut
F405 working (OMNIBUSF4SD target)
F411 not tested
F722 working, needs testing (OMNINXT7 target)
F74x not working

NOX target (temporary)

bb_dshot with telemetry on f4
bbshot f7 targets and fix crash due to missing debug pins

remove empty line

add empty lines

remove OMNIBUSF4 specific debug pins

add missing comma

add missing comma

Use separate bbTimerHardware array to fix unified targets

eliminate now unneeded timerGetByUsage

don't duplicate timer1 def

Add auto mode, rename dshot_bbshot to dshot_bitbang

remove newline

renamve various files

various changes to address feedback

address feedback

address feedback

add pacer timers to timer show

don't disable telemetry if dshot_bitbang is on or auto

Address feedback, add faster decode implementation based on bit banding, modify dma parameters to reduce required memory bandwidth on half

remove debug output

remove NOINLINE

Protect gpio direction change with critical sections

FIXWS_SAVE_INDEX

add static back in

no forward typedef

address review feedback

disallow proshot1000 with dshot bitbang

Extracted and plumbed up 'dbgPin'.
2019-09-04 16:06:48 +12:00
Michael Keller d331aed726
Merge pull request #8723 from schugabe/pin_up_down_config
Add resource option to configure unused pins as pulldown
2019-08-21 22:55:48 +12:00
jflyper 0780d1919c [H7] LL-Dshot support with DShot GCR telemetry 2019-08-17 02:11:48 +09:00
Johannes Kasberger 6a713a0340 add pull_up to names, change pg config to array of elements, use correct DEFs 2019-08-15 18:59:28 +02:00
Johannes Kasberger cc9687a2bf Add resource option to configure pin as pullup or pulldown input
all pins are initialized to pullup inputs per default. With resource PULLDOWN 1 PIN it is
possible to reconfigure the pin so it is a PULLDOWN input.

With this it's possible to prevent certain errors on some boards that have multiple pins connected
with an inverter and the pullup flows back via the inverter and pulls other pins low (see #7849)
2019-08-14 22:34:34 +02:00
mikeller c964eba295 Fixed Unified Target configuration names, added check for correctness. 2019-08-13 21:42:08 +12:00
Thorsten Laux 91ad2498ff ff from interpolated setpoint 2019-08-08 09:50:18 +02:00
Andrey Mironov 8a279e688e Added Spektrum SRXL2 serial protocol for new receivers (Currently only SPM4650 released) 2019-08-07 14:02:33 -05:00
mikeller 6d93fe0a40 Fixed bootloader requests for RAM based targets. 2019-08-05 19:41:05 +12:00
mikeller 882000ddc6 Changed 'EEPROM_IN_...' to 'CONFIG_IN_...' for clarity. 2019-08-04 16:23:24 +12:00
jflyper ff759034f3 Refactor (consolidation and separation of stdperiph and hal) 2019-08-02 04:11:22 +09:00
mikeller 1c60776487 Added target variant NUCLEOH743_RAMCONFIG to get CI coverage of 'EXST' changes.
Changing over to be RAM based.

Changes required for MPU configuration service.

Added documentation.
2019-07-27 18:20:05 +12:00
jflyper 7225aadb7d Move MAX_MPU_REGIONS into STM32H7.mk where EXST is visible 2019-07-24 17:16:34 +09:00
jflyper c8252fabdd Introduce memProtXXX MPU configuration service 2019-07-24 11:32:11 +09:00
jflyper 542146c702 Motor code refactor (Phase 1) 2019-07-17 01:33:39 +09:00
Dominic Clifton a0d8b57fd4 SPRACINGH7EXTREME - First STM32H750 betaflight target.
SPRACINGH7EXTREME - Disable requirement for custom gyro alignment and
dual gyro.

Requires custom gyro rotation code to be merged first, see:

https://github.com/betaflight/betaflight/pull/7845
https://github.com/betaflight/betaflight/pull/8474

SPRACINGH7EXTREME - Add boards documentation and images.

Add SPRacingH7EXTREME to the list of official targets.

SPRACINGH7EXTREME - Add unified target config.

Note: untested as no unified target exists for STM32H750+EXST yet.

SPRACINGH7EXTREME - Use correct gyro settings now that #8474 is merged.

SPRACINGH7EXTREME - Combine target files.

SPRACINGH7EXTREME - Update unified target config.
2019-07-14 14:04:27 +12:00
jflyper d924e59c3c [H7][LIB][SDMMC] Workaround for SDMMC Errata 2.11.4
Application of

STM32H750 - Apply workaround to the SDMMC Errata 2.11.4 (8446832)

to V1.4.0
2019-07-08 09:30:55 +09:00
jflyper 400a122f30 [H7] STM32H7.mk additions and cleanup 2019-07-08 09:30:21 +09:00
Michael Keller 9b04b5ebd7
H7 build script updates (#8492)
H7 build script updates
2019-06-28 19:23:20 +12:00
Dominic Clifton 0c7b161c32 STM32H750 - Allow targets to override TARGET_FLASH. 2019-06-27 02:57:55 +02:00
Dominic Clifton aea8733e4f STM32H7 - Allow targets to override linker script. 2019-06-27 02:57:55 +02:00
Dominic Clifton 05c518847d [H7] Relocate startup files to match betaflight/master branch 2019-06-26 12:36:57 +02:00
jflyper dad1110181 [H7] Relocate LD files to match betaflight/master branch 2019-06-26 12:36:34 +02:00
functionpointer 7cb34205b3 [VTX] vtxTable factory flag and full integration of vtxTable (#8380)
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.
2019-06-24 12:28:46 +02:00
Dominic Clifton e81d11049f Fix F1/F3 OPBL targets using wrong linker script. 2019-06-09 19:04:39 +02:00
Dominic Clifton 0632eeb934 Support compilation of EXST (EXTERNAL STORAGE) targets
- Initial

- Adjust load address of EXST firmware.

- Add helper script to pad an EXST binary to the expected size.

Padded firmware currently required due to a bug in the flash/dfu code
which causes anything less than a flash page size to be truncated when
uploading new firmware via the bootloader DFU.

- Minor linker script cleanups.

- STM32H7.mk change hardcoded TARGET_FLASH (384) to FIRMWARE_SIZE

- Delete unused configuration section entries from linker
scripts.

- Increase EXST firmware size to 448K.
It turns out 384K wasn't enough for a feature-complete firmware.

- Update pad-exst.sh to use 448K by default.

- Move the EXST file generation to the makefile.

[EXST] Embed firmware hash in ELF

- Add debug marker at end of CODE_RAM section.

It was found when transferring firmware to the H7 RAM via a BMP probe
using the 'gdb load' command, that the last few bytes were not
transferred, this debug marker is present to ensure all needed parts of
the firmware are present.

Example memory view of corrupted bytes at end of transfer:
0x2407DFAE  DEB90000 DEB9DEB9 DEB9DEB9 DEB9DEB9  ..¹Þ¹Þ¹Þ¹Þ¹Þ¹Þ¹Þ
0x2407DFBE  000000B9 00000000 00000000 00000000  ¹...............

should be:
0x2407DFAE  DEB9DEB9 DEB9DEB9 DEB9DEB9 DEB9DEB9  ¹Þ¹Þ¹Þ¹Þ¹Þ¹Þ¹Þ¹Þ
0x2407DFBE  00000000 00000000 00000000 00000000  ................

- Remove debug marker in EXST firmware.

STM32H750_EXST - Provide space for empty hash.

* Bootloader will run firmware if hash is empty, without re-verifying
RAM content against hash.
* CODE_RAM always shows as 100% usage.

STM32H750_EXST - Use a specific ELF section for a hash.

Two benefits:
1) CODE_RAM no-longer shows 100% full, since it is no-longer
padded/filled.
2) Prepares the code so that objcopy can be used to inject the hash
into the ELF.

STM32H750_EXST - Patch MD5 into ELF.

Process is now as follows.

* Binary generated (via make target dependency) so there is something to
hash.
* Binary copied (and padded).
* MD5 Hash computed.
* xxd patch file generated from hash.
* xxd hash patch applied to copy of binary at correct address.
* elf .exst_hash section dumped.
* hash injected into into dumped section.
* elf .exst_hash section updated with updated dumped section.

Replace EXST with USE_EXST.

Add documentation for the EXST firmware format.

Add table formatting to EXST documentation.

Update bootloader block.

Update H750 EXST linker script to use block format 0x00.

Use .exst.elf and .exst.bin on the exst files.

Add 'no checksum' to list of checksum hash methods.

Update EXST build system so it generates the following sets of files

obj/main/betaflight_TARGET.elf
obj/main/betaflight_TARGET.map
obj/main/betaflight_TARGET_EXST.elf
obj/betaflight_VERSION_TARGET.bin
obj/betaflight_VERSION_TARGET.bin.md5
obj/betaflight_VERSION_TARGET_EXST.bin

Update EXST build system to be more user-friendly.

* user-flashable files are generated in the normal place.
* Intermediate files are generated in `obj/main/...`
* Removes the `exst` goal.
* Adds .hex generation for EXST builds based on the patched .elf.

To build EXST targets, simply use `make TARGET=x` as normal and flash
the resulting `.hex/.bin` files rather than the .exst.bin file.

Developers can use either the `.elf` or patched `_EXST.elf` file as is
appropriate for their needs.

EXST documentation updated to match changes to build system.
2019-06-07 09:14:49 +12:00
jflyper 6beeca38c3 Consolidate F7 and H7 VCP HAL code except usbd_conf.c 2019-06-01 11:57:50 +09:00
jflyper dacb709e38 [H7] System and build files
Basic system files

- Initial system files

- Additional RCC clock enables for testing

- Coding style tidy (target/system_stm32h7xx.c) and enable MCO for testing

- Clock generator changes for SPI support

- Setup MPU for "D2 SRAM as write-through by MPU, call it DMA_RAM"

- Drop USB clock enabling from driver/system_stm32h7xx.c

- stm32h7_hal_conf.h for persistent object storage

Basic build files

STM32H7.mk changes

- STM32H7.mk for USE_UART and USE_SERIAL_RX

- Modify STM32H7.mk for inclusion of SPI driver

- STM32H7.mk change for D2 SRAM as write-through by MPU, call it DMA_RAM

- STM32H7.mk for DMA facility

- STM32H7.mk for [TIMER] For "Initial cut without Dshot"

- STM32H7.mk change for [LED_STRIP] Add LED_STRIP

- STM32H7.mk for [ADC] Initial cut without internal sensors

- STM32H7.mk for Enable I2C (HAL)

- STM32H7.mk for "Enable HAL-based DShot (no burst yet)"

- STM32H7.mk change for transponder

- STM32H750 - Add platform support.

- STM32H750 - Add H750 MCU ID.

- STM32H743 - Add MCU ID.

STM32H7.mk change for "Burst Dshot First working version"

Fix boot loader request

STM32H750 - Add PERSISTENT memory support.

STM32H743 - Add PERSISTENT memory support.

Use PERSISTENT memory for bootloader request.

Using DTCM RAM did not work on H750.

Change flash latency from 4WS to 2WS

STM32H750 - Fix reset of RCC_CR to reset value.

Note: The comment above the code didn't match code.

STM32H750 - Remove duplicate startup code, see SystemClock_Config.

STM32H7.mk changes for Port RTC backup register based persistent storage for H7

Make use of persistent object facility

Force reboot after possible boot loader activity

Enable CRS

stm32h7xx_hal_conf.h for H7 - QuadSPI support

stm32h7xx_hal_conf.h for STM32H7 - SDCard/SDIO using HAL Driver

stm32h7xx_hal_conf.h : Fix systick to be 0x00 instead of ST's default 0x0F.
This fixes the ability to use HAL_Delay() from an ISR, as required by
the ST's USB Library.
Specifically, systick handler must be a higher priority than the USB
FS/HS Interrupt handler priorities.

stm32h7xx_hal_conf.h for Add PID-Audio support

source.mk for H7 - QuadSPI support

drivers/system_stm32h7xx.c for H7 - QuadSPI support

STM32H7.mk for H7 - QuadSPI support

STM32H7.mk change for CDC-HID support

common_pre.h updates

- Scheduler parameters to same as F4 & F7

- Enable some important default features

- STM32H7 - Enable ITCM RAM.
Requires voltage scaling fix from commit
6e684c609310024141c43de484a5e78103140e3c

STM32H750 - Disable caches before reboot.

Prior to this when EEPROM_IN_RAM was used the persistent data section
would have corruption immediately after a reboot, prior to even the
Reset_Handler code having been executed.

drivers/system_stm32h7xx.c Touch-up after 2019-02-02 rebase

STM32H7 - Write protect ITCM ram.

Remove local defs for RESET_xxx symbols

STM32H750 - EXST firmware reboots to FLASH bootloader, rather than ROM bootloader.

STM32H750 - Disable some MCO/clock testing code as the pins interfere with new targets.

STM32H750 - Don't disable data caches after bootloader.

Observed that disabling dcache after cold boot with BOOT pin high causes
segfault.

drivers/system_stm32h7xx.c for STM32H7 - SDCard/SDIO using HAL Driver

drivers/system_stm32h7xx.c change for Move SDMMC clock init into SDIO driver

drivers/system_stm32h7xx.c: Cleanup some Clock/MCO/GPIO initialisation code.

drivers/system_stm32h7xx.c for Reset if systick is stuck.

STM32H7 - Fix missing CPU voltage scaling.

It appears this was the cause of other seemingly random issues:

* Crash soon after enabling USB.
* Flash write failures.
* Random un-explainable crashes.

Change RCC_HSE_BYPASS to RCC_HSE_ON

Even Nucleo-H743 seems to work without setting HSE_BYPASS.

STM32H7xx - Move memory section initialisation earlier into the init sequence.

Allows startup-code/libs/etc to be moved into different memory regions.

Don't touch vector table in EXST targets

STM32H750_EXST - fix boot loop

target/system_stm32h7xx.c for STM32H7 - SDCard/SDIO using HAL Driver

target/system_stm32h7xx.c change for Fix SD card clock speed selection

STM32H750_EXST - Reset MPU regions on boot.

* Failure to reset regions will result in mem-fault if bootloader has
configured a similar region.

STM32H750 - Fix missing include of platform.h in system_stm32h7xx.c

This caused the SDMMC peripheral clock to be un-configured (at reset
state) when USE_SDCARD_SDIO was defined.

Change MPU region number for DMA_RAM from 0 to 1

Avoid conflict with ITCM-RAM write protection.

STM32H7xx - HSERDY slow/stuck workarounds.

STM32H7xx - Fix region MPU number for SDIO.

* It was overwriting the previous region causing LED strip and
transponder issues.

Target/system_stmh7xx.c for Reset if systick is stuck.

startup/system_stm32h7xx.c change for non-caching DMA_RAM

H750 - Use SIZE optimization by default due to limited flash space.

STM32H7.mk for STM32H7 - SDCard/SDIO using HAL Driver

STM32H7.mk updates

- Decrease HSE_STARTUP_TIMEOUT to 1 second
* default is 5 seconds, which is too long when HSE gets stuck.

- Add PID-Audio support

Temporary override LINKER_DIR
2019-05-21 02:26:31 +09:00
jflyper ee9022de1e Add Winbond W25N01G support 2019-05-14 22:42:47 +09:00
jflyper e62cc6552d [F7] Move non-library CDC-HID code out of lib tree 2019-05-08 11:59:23 +09:00
mikeller 5141bbfa94 Moved 'rpm_filter' into 'flight'. 2019-05-06 00:10:31 +12:00
laz2wiringpi 22485e3e6e GPS Rescue cms menu 2019-04-15 10:33:38 -04:00
Michael Keller e12b802bb1
Merge pull request #7927 from krzysztofmatula/km-odometer
Flight statistics (odometer) added.
2019-04-14 21:49:31 +12:00
mikeller 2bed36b659 Make F3 targets unsupported to improve build times. 2019-04-14 19:31:24 +12:00
Krzysztof Matula 36c8f1e224 Flight statistics (odometer) added.
Supported counters:
- total flights count
- total flight time
- total flight distance (if GPS available)
2019-04-05 23:43:09 +02:00
Michael Keller 022d2708c8
Merge pull request #7623 from betaflight/bf-allow-per-file-compilation-without-optimization
Allow files to compiled without optimization.
2019-03-07 03:29:31 +13:00
Dominic Clifton e35d8a25d3 Allow files to compiled without optimization.
This is required when trying to see what the optimizer is doing to the
assembly or in aiding debugging CPU IMPRECISE bus fault errors.
2019-03-06 10:34:39 +01:00
Thorsten Laux cec679ac60 incorporte review feedback 2019-03-03 11:33:14 +01:00
Bruce Luckcuck 30672a37c5 Refactor OSD element display code
Remove the giant `select` block that contained all the code to generate the elements and transition them to individual functions called only when the element is active. Simplifies the code and results in a performance improvement as it's not necessary to fall through the large `select` statement for every element that will be drawn. The individual functions and the element to function mapping are moved to a new `osd_elements.c` file.

Moved the OSD related code files to a new `osd/` directory.

Also pre-analyze the active elements and only process those that are active. This also saves processing as it's not necessary to loop through all 50 or so elements when only a couple are active.

Various other cleanup and removal of stale or unnecessary code.

In the default configuration the element drawing phase of the OSD task is reduced from ~51us to ~35us - resulting in about a 30% decrease in processing time.
2019-02-21 14:03:25 -05:00
blckmn 1bedb1b911 Moved hal config headers etc to ./src/main/startup 2019-02-20 18:24:16 +11:00
jflyper 96fc6dc934 CLI parser for vtxtable 2019-02-06 15:24:02 +09:00
mikeller 38e1ce04df Reorganised interfaces, putting them where they are used. 2019-01-27 13:38:22 +13:00
Michael Keller af64f93a9a
Merge pull request #7367 from etracer65/cms_save_exit_popup
CMS exit/save popup menu
2019-01-12 17:51:23 +13:00
Bruce Luckcuck 5b5581fa2a CMS exit/save popup menu
Adds a new exit/save menu that can be displayed at any time using the yaw-right stick command. Yaw-left still functions as "back".

Allows the user to save their settings even while nested deep in multiple menus. Previously the user was required to back up all the way to the top level menu to save or exit.
2019-01-10 18:59:50 -05:00
Bruce Luckcuck 330d93eb5b Add CMS failsafe setup menu
Located under the Features top-level menu. Allows configuring the failsafe procedure (like selecting GPS-RESCUE if applicable).

Bounded with `#ifdef USE_CMS_FAILSAFE_MENU` so it can be disabled for space critical targets.
2019-01-10 15:22:36 -05:00
Thorsten Laux 8d4ed72e13 rpm telemetry based notch filter 2019-01-07 13:36:01 +01:00
jflyper fe182bb2fb Introduce dma_reqmap 2018-12-30 09:40:37 +09:00
jflyper c0d51a5f55 Convert F7s to use RTC backup register based persistent memory 2018-12-03 23:56:41 +09:00
jflyper 99fde1a0ff Use RTC backup register for persistent storage 2018-12-03 09:45:36 +09:00
phobos- c88a5a3a22 Refactored SPI RX led blink and bind plug functionality to rx_spi_common 2018-11-25 10:37:18 +01:00
jflyper 9f47d130b9 Adds the MCO driver facility for F7 targets
MCO2 output as run time configurable option
Add sanity check for MCO2 pin
changed output mode to AF from OUTPUT in mco driver
MCO for F4 is not implemented yet
Reinstate original OMNIBUSF7 target.h
Add config variable mco2_on_pc9
Make MCO2 pin hardcoded with mco2_on_pin control variable
fixed mco2 clock config corruption
removed unused pin definitions
2018-10-26 19:51:19 +02:00
jflyper 00840ce40f Prepare SD card SPI and SDIO variants for consolidation 2018-10-01 19:44:04 +09:00
Blaine eb5af3a161 Add support for the ST LIS3MDL 3-Axis Magnetometer per #6437 2018-09-16 19:56:13 -07:00
Andrej Podzimek 17b66067bb Adding a reusable mapping function between alt and base targets. 2018-09-11 06:06:50 +02:00
Andrey Mironov 7a331d03f4 Added preliminary support for STM32F765xx 2018-09-07 22:47:20 +03:00