From add6f2f47f3121b49c38044e3d5df94984da5261 Mon Sep 17 00:00:00 2001 From: pennam Date: Wed, 3 Mar 2021 10:01:04 +0100 Subject: [PATCH 1/2] Add dedicated section for pdm buffer --- .../TOOLCHAIN_GCC_ARM/STM32H747xI.ld | 5 +++-- .../TOOLCHAIN_GCC_ARM/STM32H747xI.ld | 10 ++++++++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H747xI/TARGET_PORTENTA_H7_M4/TOOLCHAIN_GCC_ARM/STM32H747xI.ld b/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H747xI/TARGET_PORTENTA_H7_M4/TOOLCHAIN_GCC_ARM/STM32H747xI.ld index 8289581c20a..577328df82f 100644 --- a/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H747xI/TARGET_PORTENTA_H7_M4/TOOLCHAIN_GCC_ARM/STM32H747xI.ld +++ b/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H747xI/TARGET_PORTENTA_H7_M4/TOOLCHAIN_GCC_ARM/STM32H747xI.ld @@ -30,11 +30,12 @@ MEMORY { RAM (xrw) : ORIGIN = RAM_START + 0x298, LENGTH = RAM_SIZE - 0x298 OPENAMP_RSC_TAB (rwx) : ORIGIN = 0x38000000, LENGTH = 1K - OPEN_AMP_SHMEM (rwx) : ORIGIN = 0x38000400, LENGTH = 63K + OPEN_AMP_SHMEM (rwx) : ORIGIN = 0x38000400, LENGTH = 62K + /*PDM_MEM (rwx) : ORIGIN = 0x3800FC00, LENGTH = 1K Reserved for PDM and M7 */ FLASH (rx) : ORIGIN = MBED_APP_START, LENGTH = MBED_APP_SIZE } __OPENAMP_region_start__ = ORIGIN(OPEN_AMP_SHMEM); - __OPENAMP_region_end__ = ORIGIN(OPEN_AMP_SHMEM) + LENGTH(OPEN_AMP_SHMEM); + __OPENAMP_region_end__ = ORIGIN(OPEN_AMP_SHMEM) + LENGTH(OPEN_AMP_SHMEM) - 1; /* Linker script to place sections and symbol values. Should be used together * with other linker script that defines memory regions FLASH and RAM. diff --git a/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H747xI/TARGET_PORTENTA_H7_M7/TOOLCHAIN_GCC_ARM/STM32H747xI.ld b/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H747xI/TARGET_PORTENTA_H7_M7/TOOLCHAIN_GCC_ARM/STM32H747xI.ld index c0e822f5b20..4f34a649a24 100644 --- a/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H747xI/TARGET_PORTENTA_H7_M7/TOOLCHAIN_GCC_ARM/STM32H747xI.ld +++ b/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H747xI/TARGET_PORTENTA_H7_M7/TOOLCHAIN_GCC_ARM/STM32H747xI.ld @@ -33,11 +33,12 @@ MEMORY RAM (xrw) : ORIGIN = RAM_START + 0x298, LENGTH = RAM_SIZE - 0x298 RAM_D2 (xrw) : ORIGIN = 0x30000000, LENGTH = 288K OPENAMP_RSC_TAB (rwx) : ORIGIN = 0x38000000, LENGTH = 1K - OPEN_AMP_SHMEM (rwx) : ORIGIN = 0x38000400, LENGTH = 63K + OPEN_AMP_SHMEM (rwx) : ORIGIN = 0x38000400, LENGTH = 62K + PDM_MEM (xrw) : ORIGIN = 0x3800FC00, LENGTH = 1k FLASH (rx) : ORIGIN = MBED_APP_START, LENGTH = MBED_APP_SIZE } __OPENAMP_region_start__ = ORIGIN(OPEN_AMP_SHMEM); - __OPENAMP_region_end__ = ORIGIN(OPEN_AMP_SHMEM) + LENGTH(OPEN_AMP_SHMEM); + __OPENAMP_region_end__ = ORIGIN(OPEN_AMP_SHMEM) + LENGTH(OPEN_AMP_SHMEM) - 1; _ConfigStart = 0x0801F000; @@ -192,6 +193,11 @@ SECTIONS *(.resource_table) } >OPENAMP_RSC_TAB AT > FLASH + .pdm_section (NOLOAD) : { + . = ABSOLUTE(0x3800FC00); + *(.pdm_buffer) + } > PDM_MEM + /* .stack_dummy section doesn't contains any symbols. It is only * used for linker to calculate size of stack sections, and assign * values to stack symbols later */ From 94ed3e9698945f4beda0b9758533322c9bb3f096 Mon Sep 17 00:00:00 2001 From: pennam Date: Mon, 8 Mar 2021 13:27:22 +0100 Subject: [PATCH 2/2] Fix __OPENAMP_region_end__ address --- .../TARGET_PORTENTA_H7_M4/TOOLCHAIN_GCC_ARM/STM32H747xI.ld | 2 +- .../TARGET_PORTENTA_H7_M7/TOOLCHAIN_GCC_ARM/STM32H747xI.ld | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H747xI/TARGET_PORTENTA_H7_M4/TOOLCHAIN_GCC_ARM/STM32H747xI.ld b/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H747xI/TARGET_PORTENTA_H7_M4/TOOLCHAIN_GCC_ARM/STM32H747xI.ld index 577328df82f..311402a1a62 100644 --- a/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H747xI/TARGET_PORTENTA_H7_M4/TOOLCHAIN_GCC_ARM/STM32H747xI.ld +++ b/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H747xI/TARGET_PORTENTA_H7_M4/TOOLCHAIN_GCC_ARM/STM32H747xI.ld @@ -35,7 +35,7 @@ MEMORY FLASH (rx) : ORIGIN = MBED_APP_START, LENGTH = MBED_APP_SIZE } __OPENAMP_region_start__ = ORIGIN(OPEN_AMP_SHMEM); - __OPENAMP_region_end__ = ORIGIN(OPEN_AMP_SHMEM) + LENGTH(OPEN_AMP_SHMEM) - 1; + __OPENAMP_region_end__ = ORIGIN(OPEN_AMP_SHMEM) + LENGTH(OPEN_AMP_SHMEM); /* Linker script to place sections and symbol values. Should be used together * with other linker script that defines memory regions FLASH and RAM. diff --git a/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H747xI/TARGET_PORTENTA_H7_M7/TOOLCHAIN_GCC_ARM/STM32H747xI.ld b/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H747xI/TARGET_PORTENTA_H7_M7/TOOLCHAIN_GCC_ARM/STM32H747xI.ld index 4f34a649a24..29e580edcd9 100644 --- a/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H747xI/TARGET_PORTENTA_H7_M7/TOOLCHAIN_GCC_ARM/STM32H747xI.ld +++ b/targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H747xI/TARGET_PORTENTA_H7_M7/TOOLCHAIN_GCC_ARM/STM32H747xI.ld @@ -38,7 +38,7 @@ MEMORY FLASH (rx) : ORIGIN = MBED_APP_START, LENGTH = MBED_APP_SIZE } __OPENAMP_region_start__ = ORIGIN(OPEN_AMP_SHMEM); - __OPENAMP_region_end__ = ORIGIN(OPEN_AMP_SHMEM) + LENGTH(OPEN_AMP_SHMEM) - 1; + __OPENAMP_region_end__ = ORIGIN(OPEN_AMP_SHMEM) + LENGTH(OPEN_AMP_SHMEM); _ConfigStart = 0x0801F000;