From eb097bd0953bbd8ceab37372e44e3aa3c7575b84 Mon Sep 17 00:00:00 2001 From: Aurelien Jarno Date: Sun, 10 Feb 2019 11:05:51 +0100 Subject: [PATCH] arch: arm: mpu: get the __ramfunc region size from the linker The linker file defines the __ramfunc_ram_size symbols to get the size of the __ramfunc_ram section. Use that instead of computing the value at runtime from the start and end symbols. This saves 16 bytes of code with CONFIG_RAM_FUNCTION=y. Signed-off-by: Aurelien Jarno --- arch/arm/core/cortex_m/mpu/arm_core_mpu.c | 2 +- include/linker/linker-defs.h | 1 + kernel/init.c | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/arch/arm/core/cortex_m/mpu/arm_core_mpu.c b/arch/arm/core/cortex_m/mpu/arm_core_mpu.c index 859f0747bab..4a332e8877c 100644 --- a/arch/arm/core/cortex_m/mpu/arm_core_mpu.c +++ b/arch/arm/core/cortex_m/mpu/arm_core_mpu.c @@ -82,7 +82,7 @@ void _arch_configure_static_mpu_regions(void) #if defined(CONFIG_RAM_FUNCTION) { .start = (u32_t)&_ramfunc_ram_start, - .size = (u32_t)&_ramfunc_ram_start - (u32_t)&_ramfunc_ram_end, + .size = (u32_t)&_ramfunc_ram_size, .attr = K_MEM_PARTITION_P_RX_U_RX, } #endif /* CONFIG_RAM_FUNCTION */ diff --git a/include/linker/linker-defs.h b/include/linker/linker-defs.h index d58b198d0b1..61ab3af4a51 100644 --- a/include/linker/linker-defs.h +++ b/include/linker/linker-defs.h @@ -247,6 +247,7 @@ extern char _nocache_ram_size[]; */ extern char _ramfunc_ram_start[]; extern char _ramfunc_ram_end[]; +extern char _ramfunc_ram_size[]; extern char _ramfunc_rom_start[]; #endif /* ! _ASMLANGUAGE */ diff --git a/kernel/init.c b/kernel/init.c index b4166928861..adc1b9a2dfb 100644 --- a/kernel/init.c +++ b/kernel/init.c @@ -175,7 +175,7 @@ void _data_copy(void) ((u32_t) &__data_ram_end - (u32_t) &__data_ram_start)); #ifdef CONFIG_RAM_FUNCTION (void)memcpy(&_ramfunc_ram_start, &_ramfunc_rom_start, - ((u32_t) &_ramfunc_ram_end - (u32_t) &_ramfunc_ram_start)); + ((u32_t) &_ramfunc_ram_size)); #endif #ifdef DT_CCM_BASE_ADDRESS (void)memcpy(&__ccm_data_start, &__ccm_data_rom_start,