From 2a14d36ebd7bde9a3a6c98871050b14b54598389 Mon Sep 17 00:00:00 2001 From: Paul Selkirk Date: Thu, 9 Jun 2016 18:53:31 -0400 Subject: Put thread stack buffers in SDRAM, because pkey uses a lot of stack. Also rearchitect the way we handle RPC requests - have a bunch of waiting dispatch threads rather than continually creating and deleting threads. --- .../TOOLCHAIN_GCC_ARM/STM32F429BI.ld | 52 ++++++++++++++++++++-- .../TARGET_CRYPTECH_ALPHA/stm32f4xx_hal_msp.c | 1 + 2 files changed, 49 insertions(+), 4 deletions(-) (limited to 'libraries') diff --git a/libraries/mbed/targets/cmsis/TARGET_STM/TARGET_STM32F4/TARGET_CRYPTECH_ALPHA/TOOLCHAIN_GCC_ARM/STM32F429BI.ld b/libraries/mbed/targets/cmsis/TARGET_STM/TARGET_STM32F4/TARGET_CRYPTECH_ALPHA/TOOLCHAIN_GCC_ARM/STM32F429BI.ld index ad7ddaf..2f80bce 100644 --- a/libraries/mbed/targets/cmsis/TARGET_STM/TARGET_STM32F4/TARGET_CRYPTECH_ALPHA/TOOLCHAIN_GCC_ARM/STM32F429BI.ld +++ b/libraries/mbed/targets/cmsis/TARGET_STM/TARGET_STM32F4/TARGET_CRYPTECH_ALPHA/TOOLCHAIN_GCC_ARM/STM32F429BI.ld @@ -10,9 +10,11 @@ MEMORY BOOTLOADER (rx) : ORIGIN = 0x08000000, LENGTH = 128K FIRMWARE (rx) : ORIGIN = 0x08000000 + 128K, LENGTH = 2048K - 128K FLASH (rx) : ORIGIN = 0x08000000 + 128K, LENGTH = 2048K - 128K - RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 192K - 4 + CCMRAM (rwx) : ORIGIN = 0x10000000, LENGTH = 64K + RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 192K - 4 + SDRAM1 (rwx) : ORIGIN = 0xC0000000, LENGTH = 64M + SDRAM2 (rwx) : ORIGIN = 0xD0000000, LENGTH = 64M } -/* original: FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 2048K */ /* Linker script to place sections and symbol values. Should be used together * with other linker script that defines memory regions FLASH and RAM. @@ -86,7 +88,7 @@ SECTIONS __etext = .; _sidata = .; - .data : AT (__etext) + .data : { __data_start__ = .; _sdata = .; @@ -120,7 +122,49 @@ SECTIONS __data_end__ = .; _edata = .; - } > RAM + } > RAM AT> FLASH + + /* If initialized variables are placed in this section, + * the startup code needs to be modified to copy the init-values. + */ + .ccmram : + { + . = ALIGN(4); + _sccmram = .; + *(.ccmram) + *(.ccmram*) + + . = ALIGN(4); + _eccmram = .; + } >CCMRAM AT> FLASH + + /* If initialized variables are placed in this section, + * the startup code needs to be modified to copy the init-values. + */ + .sdram1 : + { + . = ALIGN(4); + _ssdram1 = .; + *(.sdram1) + *(.sdram1*) + + . = ALIGN(4); + _esdram1 = .; + } >SDRAM1 AT> FLASH + + /* If initialized variables are placed in this section, + * the startup code needs to be modified to copy the init-values. + */ + .sdram2 : + { + . = ALIGN(4); + _ssdram2 = .; + *(.sdram2) + *(.sdram2*) + + . = ALIGN(4); + _esdram2 = .; + } >SDRAM2 AT> FLASH .bss : { diff --git a/libraries/mbed/targets/cmsis/TARGET_STM/TARGET_STM32F4/TARGET_CRYPTECH_ALPHA/stm32f4xx_hal_msp.c b/libraries/mbed/targets/cmsis/TARGET_STM/TARGET_STM32F4/TARGET_CRYPTECH_ALPHA/stm32f4xx_hal_msp.c index fbd0adf..7eeb6df 100644 --- a/libraries/mbed/targets/cmsis/TARGET_STM/TARGET_STM32F4/TARGET_CRYPTECH_ALPHA/stm32f4xx_hal_msp.c +++ b/libraries/mbed/targets/cmsis/TARGET_STM/TARGET_STM32F4/TARGET_CRYPTECH_ALPHA/stm32f4xx_hal_msp.c @@ -190,6 +190,7 @@ void HAL_UART_MspInit(UART_HandleTypeDef* huart) hdma->Init.PeriphBurst = DMA_PBURST_SINGLE; */ if (HAL_DMA_Init(hdma) != HAL_OK) { + extern void mbed_die(void); mbed_die(); } } -- cgit v1.2.3