mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-19 22:35:23 +03:00
F7 optimizations (#5674)
* Revert "Revert "Rewritten F7 dshot to LL (draft)" (#5430)" This reverts commitaa42a69d2f
. * 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 commit2294518998
.
This commit is contained in:
parent
39fec69fb0
commit
bf984f39b1
34 changed files with 503 additions and 345 deletions
|
@ -110,14 +110,12 @@ typedef enum {
|
|||
typedef struct {
|
||||
TIM_TypeDef *timer;
|
||||
#if defined(USE_DSHOT) && defined(USE_DSHOT_DMAR)
|
||||
#if !defined(USE_HAL_DRIVER)
|
||||
#ifdef STM32F3
|
||||
DMA_Channel_TypeDef *dmaBurstRef;
|
||||
#else
|
||||
DMA_Stream_TypeDef *dmaBurstRef;
|
||||
#endif
|
||||
uint16_t dmaBurstLength;
|
||||
#endif
|
||||
uint32_t dmaBurstBuffer[DSHOT_DMA_BUFFER_SIZE * 4];
|
||||
#endif
|
||||
uint16_t timerDmaSources;
|
||||
|
@ -138,11 +136,6 @@ typedef struct {
|
|||
#else
|
||||
uint8_t dmaBuffer[DSHOT_DMA_BUFFER_SIZE];
|
||||
#endif
|
||||
#if defined(USE_HAL_DRIVER)
|
||||
TIM_HandleTypeDef TimHandle;
|
||||
DMA_HandleTypeDef hdma_tim;
|
||||
uint16_t timerDmaIndex;
|
||||
#endif
|
||||
} motorDmaOutput_t;
|
||||
|
||||
motorDmaOutput_t *getMotorDmaOutput(uint8_t index);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue