Changes

Summary

  1. [H7] System and build files (commit: dacb709) (details)
Commit dacb709e381c150fb09c2b0ea794342906e5b887 by shinoda
[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
(commit: dacb709)
The file was modifiedmake/source.mk (diff)
The file was modifiedsrc/main/target/common_pre.h (diff)
The file was addedsrc/main/target/stm32h7xx_hal_conf.h
The file was addedsrc/main/target/link/stm32_flash_h743_2m.ld
The file was addedsrc/main/target/link/stm32_flash_h750.ld
The file was addedsrc/main/target/system_stm32h7xx.c
The file was addedsrc/main/startup/startup_stm32h743xx.s
The file was addedmake/mcu/STM32H7.mk
The file was modifiedsrc/main/platform.h (diff)
The file was modifiedmake/targets.mk (diff)
The file was addedsrc/main/target/system_stm32h7xx.h
The file was addedsrc/main/drivers/system_stm32h7xx.c