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 <aurelien@aurel32.net>
This commit is contained in:
parent
e1cc657941
commit
eb097bd095
3 changed files with 3 additions and 2 deletions
|
@ -82,7 +82,7 @@ void _arch_configure_static_mpu_regions(void)
|
||||||
#if defined(CONFIG_RAM_FUNCTION)
|
#if defined(CONFIG_RAM_FUNCTION)
|
||||||
{
|
{
|
||||||
.start = (u32_t)&_ramfunc_ram_start,
|
.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,
|
.attr = K_MEM_PARTITION_P_RX_U_RX,
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_RAM_FUNCTION */
|
#endif /* CONFIG_RAM_FUNCTION */
|
||||||
|
|
|
@ -247,6 +247,7 @@ extern char _nocache_ram_size[];
|
||||||
*/
|
*/
|
||||||
extern char _ramfunc_ram_start[];
|
extern char _ramfunc_ram_start[];
|
||||||
extern char _ramfunc_ram_end[];
|
extern char _ramfunc_ram_end[];
|
||||||
|
extern char _ramfunc_ram_size[];
|
||||||
extern char _ramfunc_rom_start[];
|
extern char _ramfunc_rom_start[];
|
||||||
|
|
||||||
#endif /* ! _ASMLANGUAGE */
|
#endif /* ! _ASMLANGUAGE */
|
||||||
|
|
|
@ -175,7 +175,7 @@ void _data_copy(void)
|
||||||
((u32_t) &__data_ram_end - (u32_t) &__data_ram_start));
|
((u32_t) &__data_ram_end - (u32_t) &__data_ram_start));
|
||||||
#ifdef CONFIG_RAM_FUNCTION
|
#ifdef CONFIG_RAM_FUNCTION
|
||||||
(void)memcpy(&_ramfunc_ram_start, &_ramfunc_rom_start,
|
(void)memcpy(&_ramfunc_ram_start, &_ramfunc_rom_start,
|
||||||
((u32_t) &_ramfunc_ram_end - (u32_t) &_ramfunc_ram_start));
|
((u32_t) &_ramfunc_ram_size));
|
||||||
#endif
|
#endif
|
||||||
#ifdef DT_CCM_BASE_ADDRESS
|
#ifdef DT_CCM_BASE_ADDRESS
|
||||||
(void)memcpy(&__ccm_data_start, &__ccm_data_rom_start,
|
(void)memcpy(&__ccm_data_start, &__ccm_data_rom_start,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue