mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-20 23:05:19 +03:00
New SPI API supporting DMA
Call targetConfiguration() once before config is loaded and again afterwards in case the config needs to be changed to load from SD card etc Drop SPI clock during binding Remove debug Add per device SPI DMA enable Fix sdioPinConfigure() declaration warning Reduce clock speed during SPI RX initialisation
This commit is contained in:
parent
6d286e25f1
commit
87c8847c13
136 changed files with 3585 additions and 2721 deletions
|
@ -120,7 +120,7 @@ SECTIONS
|
|||
|
||||
. = ALIGN(4);
|
||||
_edata = .; /* define a global symbol at data end */
|
||||
} >RAM AT >AXIM_FLASH
|
||||
} >RAM AT >AXIM_FLASH1
|
||||
|
||||
/* Uninitialized data section */
|
||||
. = ALIGN(4);
|
||||
|
@ -166,7 +166,7 @@ SECTIONS
|
|||
|
||||
. = ALIGN(4);
|
||||
_efastram_data = .; /* define a global symbol at data end */
|
||||
} >FASTRAM AT >AXIM_FLASH
|
||||
} >FASTRAM AT >AXIM_FLASH1
|
||||
|
||||
. = ALIGN(4);
|
||||
.fastram_bss (NOLOAD) :
|
||||
|
|
|
@ -162,7 +162,7 @@ SECTIONS
|
|||
|
||||
. = ALIGN(4);
|
||||
_edata = .; /* define a global symbol at data end */
|
||||
} >RAM AT >FLASH
|
||||
} >FASTRAM AT >FLASH
|
||||
|
||||
/* Uninitialized data section */
|
||||
. = ALIGN(4);
|
||||
|
@ -178,7 +178,7 @@ SECTIONS
|
|||
. = ALIGN(4);
|
||||
_ebss = .; /* define a global symbol at bss end */
|
||||
__bss_end__ = _ebss;
|
||||
} >RAM
|
||||
} >FASTRAM
|
||||
|
||||
/* Uninitialized data section */
|
||||
. = ALIGN(4);
|
||||
|
@ -223,17 +223,42 @@ SECTIONS
|
|||
__fastram_bss_end__ = _efastram_bss;
|
||||
} >FASTRAM
|
||||
|
||||
.DMA_RAM (NOLOAD) :
|
||||
/* used during startup to initialized dmaram_data */
|
||||
_sdmaram_idata = LOADADDR(.dmaram_data);
|
||||
|
||||
. = ALIGN(32);
|
||||
.dmaram_data :
|
||||
{
|
||||
. = ALIGN(32);
|
||||
PROVIDE(dmaram_start = .);
|
||||
_sdmaram = .;
|
||||
_dmaram_start__ = _sdmaram;
|
||||
_sdmaram_data = .; /* create a global symbol at data start */
|
||||
*(.dmaram_data) /* .data sections */
|
||||
*(.dmaram_data*) /* .data* sections */
|
||||
. = ALIGN(32);
|
||||
_edmaram_data = .; /* define a global symbol at data end */
|
||||
} >RAM AT >FLASH
|
||||
|
||||
. = ALIGN(32);
|
||||
.dmaram_bss (NOLOAD) :
|
||||
{
|
||||
_sdmaram_bss = .;
|
||||
__dmaram_bss_start__ = _sdmaram_bss;
|
||||
*(.dmaram_bss)
|
||||
*(SORT_BY_ALIGNMENT(.dmaram_bss*))
|
||||
. = ALIGN(32);
|
||||
_edmaram_bss = .;
|
||||
__dmaram_bss_end__ = _edmaram_bss;
|
||||
} >RAM
|
||||
|
||||
. = ALIGN(32);
|
||||
.DMA_RAM (NOLOAD) :
|
||||
{
|
||||
KEEP(*(.DMA_RAM))
|
||||
PROVIDE(dmaram_end = .);
|
||||
_edmaram = .;
|
||||
_dmaram_end__ = _edmaram;
|
||||
} >D2_RAM
|
||||
} >RAM
|
||||
|
||||
.DMA_RW_D2 (NOLOAD) :
|
||||
{
|
||||
|
|
|
@ -239,17 +239,42 @@ SECTIONS
|
|||
__fastram_bss_end__ = _efastram_bss;
|
||||
} >FASTRAM
|
||||
|
||||
.DMA_RAM (NOLOAD) :
|
||||
/* used during startup to initialized dmaram_data */
|
||||
_sdmaram_idata = LOADADDR(.dmaram_data);
|
||||
|
||||
. = ALIGN(32);
|
||||
.dmaram_data :
|
||||
{
|
||||
. = ALIGN(32);
|
||||
PROVIDE(dmaram_start = .);
|
||||
_sdmaram = .;
|
||||
_dmaram_start__ = _sdmaram;
|
||||
_sdmaram_data = .; /* create a global symbol at data start */
|
||||
*(.dmaram_data) /* .data sections */
|
||||
*(.dmaram_data*) /* .data* sections */
|
||||
. = ALIGN(32);
|
||||
_edmaram_data = .; /* define a global symbol at data end */
|
||||
} >RAM AT >FLASH
|
||||
|
||||
. = ALIGN(32);
|
||||
.dmaram_bss (NOLOAD) :
|
||||
{
|
||||
_sdmaram_bss = .;
|
||||
__dmaram_bss_start__ = _sdmaram_bss;
|
||||
*(.dmaram_bss)
|
||||
*(SORT_BY_ALIGNMENT(.dmaram_bss*))
|
||||
. = ALIGN(32);
|
||||
_edmaram_bss = .;
|
||||
__dmaram_bss_end__ = _edmaram_bss;
|
||||
} >RAM
|
||||
|
||||
. = ALIGN(32);
|
||||
.DMA_RAM (NOLOAD) :
|
||||
{
|
||||
KEEP(*(.DMA_RAM))
|
||||
PROVIDE(dmaram_end = .);
|
||||
_edmaram = .;
|
||||
_dmaram_end__ = _edmaram;
|
||||
} >D2_RAM
|
||||
} >RAM
|
||||
|
||||
.DMA_RW_D2 (NOLOAD) :
|
||||
{
|
||||
|
|
|
@ -50,19 +50,46 @@ REGION_ALIAS("STACKRAM", DTCM_RAM)
|
|||
REGION_ALIAS("FASTRAM", DTCM_RAM)
|
||||
REGION_ALIAS("MAIN", FLASH)
|
||||
|
||||
INCLUDE "stm32_h750_common.ld"
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
.DMA_RAM (NOLOAD) :
|
||||
/* used during startup to initialized dmaram_data */
|
||||
_sdmaram_idata = LOADADDR(.dmaram_data);
|
||||
|
||||
. = ALIGN(32);
|
||||
.dmaram_data :
|
||||
{
|
||||
. = ALIGN(32);
|
||||
PROVIDE(dmaram_start = .);
|
||||
_sdmaram = .;
|
||||
_dmaram_start__ = _sdmaram;
|
||||
_sdmaram_data = .; /* create a global symbol at data start */
|
||||
*(.dmaram_data) /* .data sections */
|
||||
*(.dmaram_data*) /* .data* sections */
|
||||
. = ALIGN(32);
|
||||
_edmaram_data = .; /* define a global symbol at data end */
|
||||
} >RAM AT >FLASH
|
||||
|
||||
. = ALIGN(32);
|
||||
.dmaram_bss (NOLOAD) :
|
||||
{
|
||||
_sdmaram_bss = .;
|
||||
__dmaram_bss_start__ = _sdmaram_bss;
|
||||
*(.dmaram_bss)
|
||||
*(SORT_BY_ALIGNMENT(.dmaram_bss*))
|
||||
. = ALIGN(32);
|
||||
_edmaram_bss = .;
|
||||
__dmaram_bss_end__ = _edmaram_bss;
|
||||
} >RAM
|
||||
|
||||
. = ALIGN(32);
|
||||
.DMA_RAM (NOLOAD) :
|
||||
{
|
||||
KEEP(*(.DMA_RAM))
|
||||
PROVIDE(dmaram_end = .);
|
||||
_edmaram = .;
|
||||
_dmaram_end__ = _edmaram;
|
||||
} >D2_RAM
|
||||
} >RAM
|
||||
|
||||
.DMA_RW_D2 (NOLOAD) :
|
||||
{
|
||||
|
@ -89,5 +116,4 @@ SECTIONS
|
|||
} >RAM
|
||||
}
|
||||
|
||||
INCLUDE "stm32_h750_common.ld"
|
||||
INCLUDE "stm32_h750_common_post.ld"
|
||||
|
|
|
@ -50,19 +50,46 @@ REGION_ALIAS("STACKRAM", DTCM_RAM)
|
|||
REGION_ALIAS("FASTRAM", DTCM_RAM)
|
||||
REGION_ALIAS("MAIN", FLASH)
|
||||
|
||||
INCLUDE "stm32_h750_common.ld"
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
.DMA_RAM (NOLOAD) :
|
||||
/* used during startup to initialized dmaram_data */
|
||||
_sdmaram_idata = LOADADDR(.dmaram_data);
|
||||
|
||||
. = ALIGN(32);
|
||||
.dmaram_data :
|
||||
{
|
||||
. = ALIGN(32);
|
||||
PROVIDE(dmaram_start = .);
|
||||
_sdmaram = .;
|
||||
_dmaram_start__ = _sdmaram;
|
||||
_sdmaram_data = .; /* create a global symbol at data start */
|
||||
*(.dmaram_data) /* .data sections */
|
||||
*(.dmaram_data*) /* .data* sections */
|
||||
. = ALIGN(32);
|
||||
_edmaram_data = .; /* define a global symbol at data end */
|
||||
} >RAM AT >FLASH
|
||||
|
||||
. = ALIGN(32);
|
||||
.dmaram_bss (NOLOAD) :
|
||||
{
|
||||
_sdmaram_bss = .;
|
||||
__dmaram_bss_start__ = _sdmaram_bss;
|
||||
*(.dmaram_bss)
|
||||
*(SORT_BY_ALIGNMENT(.dmaram_bss*))
|
||||
. = ALIGN(32);
|
||||
_edmaram_bss = .;
|
||||
__dmaram_bss_end__ = _edmaram_bss;
|
||||
} >RAM
|
||||
|
||||
. = ALIGN(32);
|
||||
.DMA_RAM (NOLOAD) :
|
||||
{
|
||||
KEEP(*(.DMA_RAM))
|
||||
PROVIDE(dmaram_end = .);
|
||||
_edmaram = .;
|
||||
_dmaram_end__ = _edmaram;
|
||||
} >D2_RAM
|
||||
} >RAM
|
||||
|
||||
.DMA_RW_D2 (NOLOAD) :
|
||||
{
|
||||
|
@ -89,5 +116,4 @@ SECTIONS
|
|||
} >RAM
|
||||
}
|
||||
|
||||
INCLUDE "stm32_h750_common.ld"
|
||||
INCLUDE "stm32_h750_common_post.ld"
|
||||
|
|
|
@ -147,7 +147,7 @@ SECTIONS
|
|||
|
||||
. = ALIGN(4);
|
||||
_edata = .; /* define a global symbol at data end */
|
||||
} >RAM AT >FLASH
|
||||
} >FASTRAM AT >FLASH
|
||||
|
||||
/* Uninitialized data section */
|
||||
. = ALIGN(4);
|
||||
|
@ -163,7 +163,7 @@ SECTIONS
|
|||
. = ALIGN(4);
|
||||
_ebss = .; /* define a global symbol at bss end */
|
||||
__bss_end__ = _ebss;
|
||||
} >RAM
|
||||
} >FASTRAM
|
||||
|
||||
/* Uninitialized data section */
|
||||
. = ALIGN(4);
|
||||
|
@ -208,17 +208,42 @@ SECTIONS
|
|||
__fastram_bss_end__ = _efastram_bss;
|
||||
} >FASTRAM
|
||||
|
||||
.DMA_RAM (NOLOAD) :
|
||||
/* used during startup to initialized dmaram_data */
|
||||
_sdmaram_idata = LOADADDR(.dmaram_data);
|
||||
|
||||
. = ALIGN(32);
|
||||
.dmaram_data :
|
||||
{
|
||||
. = ALIGN(32);
|
||||
PROVIDE(dmaram_start = .);
|
||||
_sdmaram = .;
|
||||
_dmaram_start__ = _sdmaram;
|
||||
_sdmaram_data = .; /* create a global symbol at data start */
|
||||
*(.dmaram_data) /* .data sections */
|
||||
*(.dmaram_data*) /* .data* sections */
|
||||
. = ALIGN(32);
|
||||
_edmaram_data = .; /* define a global symbol at data end */
|
||||
} >RAM AT >FLASH
|
||||
|
||||
. = ALIGN(32);
|
||||
.dmaram_bss (NOLOAD) :
|
||||
{
|
||||
_sdmaram_bss = .;
|
||||
__dmaram_bss_start__ = _sdmaram_bss;
|
||||
*(.dmaram_bss)
|
||||
*(SORT_BY_ALIGNMENT(.dmaram_bss*))
|
||||
. = ALIGN(32);
|
||||
_edmaram_bss = .;
|
||||
__dmaram_bss_end__ = _edmaram_bss;
|
||||
} >RAM
|
||||
|
||||
. = ALIGN(32);
|
||||
.DMA_RAM (NOLOAD) :
|
||||
{
|
||||
KEEP(*(.DMA_RAM))
|
||||
PROVIDE(dmaram_end = .);
|
||||
_edmaram = .;
|
||||
_dmaram_end__ = _edmaram;
|
||||
} >D2_RAM
|
||||
} >RAM
|
||||
|
||||
.DMA_RW_D2 (NOLOAD) :
|
||||
{
|
||||
|
|
|
@ -15,7 +15,7 @@ _Min_Stack_Size = 0x800; /* required amount of stack */
|
|||
/* Define output sections */
|
||||
SECTIONS
|
||||
{
|
||||
/* The startup code goes first into MAIN */
|
||||
/* The vector table goes first into MAIN */
|
||||
.isr_vector :
|
||||
{
|
||||
. = ALIGN(512);
|
||||
|
@ -111,7 +111,7 @@ SECTIONS
|
|||
. = ALIGN(4);
|
||||
_ebss = .; /* define a global symbol at bss end */
|
||||
__bss_end__ = _ebss;
|
||||
} >D2_RAM
|
||||
} >DTCM_RAM
|
||||
|
||||
/* Uninitialized data section */
|
||||
. = ALIGN(4);
|
||||
|
|
|
@ -214,17 +214,42 @@ SECTIONS
|
|||
__fastram_bss_end__ = _efastram_bss;
|
||||
} >FASTRAM
|
||||
|
||||
.DMA_RAM (NOLOAD) :
|
||||
/* used during startup to initialized dmaram_data */
|
||||
_sdmaram_idata = LOADADDR(.dmaram_data);
|
||||
|
||||
. = ALIGN(32);
|
||||
.dmaram_data :
|
||||
{
|
||||
. = ALIGN(32);
|
||||
PROVIDE(dmaram_start = .);
|
||||
_sdmaram = .;
|
||||
_dmaram_start__ = _sdmaram;
|
||||
_sdmaram_data = .; /* create a global symbol at data start */
|
||||
*(.dmaram_data) /* .data sections */
|
||||
*(.dmaram_data*) /* .data* sections */
|
||||
. = ALIGN(32);
|
||||
_edmaram_data = .; /* define a global symbol at data end */
|
||||
} >RAM
|
||||
|
||||
. = ALIGN(32);
|
||||
.dmaram_bss (NOLOAD) :
|
||||
{
|
||||
_sdmaram_bss = .;
|
||||
__dmaram_bss_start__ = _sdmaram_bss;
|
||||
*(.dmaram_bss)
|
||||
*(SORT_BY_ALIGNMENT(.dmaram_bss*))
|
||||
. = ALIGN(32);
|
||||
_edmaram_bss = .;
|
||||
__dmaram_bss_end__ = _edmaram_bss;
|
||||
} >RAM
|
||||
|
||||
. = ALIGN(32);
|
||||
.DMA_RAM (NOLOAD) :
|
||||
{
|
||||
KEEP(*(.DMA_RAM))
|
||||
PROVIDE(dmaram_end = .);
|
||||
_edmaram = .;
|
||||
_dmaram_end__ = _edmaram;
|
||||
} >D2_RAM
|
||||
} >RAM
|
||||
|
||||
.DMA_RW_D2 (NOLOAD) :
|
||||
{
|
||||
|
|
|
@ -73,19 +73,46 @@ REGION_ALIAS("STACKRAM", DTCM_RAM)
|
|||
REGION_ALIAS("FASTRAM", DTCM_RAM)
|
||||
REGION_ALIAS("MAIN", CODE_RAM)
|
||||
|
||||
INCLUDE "stm32_h750_common.ld"
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
.DMA_RAM (NOLOAD) :
|
||||
/* used during startup to initialized dmaram_data */
|
||||
_sdmaram_idata = LOADADDR(.dmaram_data);
|
||||
|
||||
. = ALIGN(32);
|
||||
.dmaram_data :
|
||||
{
|
||||
. = ALIGN(32);
|
||||
PROVIDE(dmaram_start = .);
|
||||
_sdmaram = .;
|
||||
_dmaram_start__ = _sdmaram;
|
||||
_sdmaram_data = .; /* create a global symbol at data start */
|
||||
*(.dmaram_data) /* .data sections */
|
||||
*(.dmaram_data*) /* .data* sections */
|
||||
. = ALIGN(32);
|
||||
_edmaram_data = .; /* define a global symbol at data end */
|
||||
} >RAM AT >MAIN
|
||||
|
||||
. = ALIGN(32);
|
||||
.dmaram_bss (NOLOAD) :
|
||||
{
|
||||
_sdmaram_bss = .;
|
||||
__dmaram_bss_start__ = _sdmaram_bss;
|
||||
*(.dmaram_bss)
|
||||
*(SORT_BY_ALIGNMENT(.dmaram_bss*))
|
||||
. = ALIGN(32);
|
||||
_edmaram_bss = .;
|
||||
__dmaram_bss_end__ = _edmaram_bss;
|
||||
} >RAM
|
||||
|
||||
. = ALIGN(32);
|
||||
.DMA_RAM (NOLOAD) :
|
||||
{
|
||||
KEEP(*(.DMA_RAM))
|
||||
PROVIDE(dmaram_end = .);
|
||||
_edmaram = .;
|
||||
_dmaram_end__ = _edmaram;
|
||||
} >D2_RAM
|
||||
} >RAM
|
||||
|
||||
.DMA_RW_D2 (NOLOAD) :
|
||||
{
|
||||
|
@ -112,7 +139,6 @@ SECTIONS
|
|||
} >RAM
|
||||
}
|
||||
|
||||
INCLUDE "stm32_h750_common.ld"
|
||||
INCLUDE "stm32_h750_common_post.ld"
|
||||
INCLUDE "stm32_ram_h750_exst_post.ld"
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue