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
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.
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.
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.
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