picolibc: Allow default memory layout values to be configured

These values are used when constructing the default linker scripts
used with picolibc. Setting reasonable defaults allows simple test
applications to be compiled without additional configuration.

Signed-off-by: Keith Packard <keithp@keithp.com>
This commit is contained in:
Keith Packard 2023-04-03 15:49:14 -07:00 committed by Chris Packham
parent 06faf2002e
commit c33c2bf04e
2 changed files with 44 additions and 0 deletions

View File

@ -123,3 +123,43 @@ config LIBC_PICOLIBC_EXTRA_CONFIG_ARRAY
default "" default ""
help help
Extra flags to pass to meson when configuring picolibc. Extra flags to pass to meson when configuring picolibc.
config LIBC_PICOLIBC_DEFAULT_FLASH_ADDR
string
prompt "Default flash address for picolibc.ld"
default "0x10000000"
help
Sets the default base adddress for the read-only portion of the
application when linked using the default picolibc link
script. Can be overridden on the linker command line using
-Wl,--defsym=__flash=<value>
config LIBC_PICOLIBC_DEFAULT_FLASH_SIZE
string
prompt "Default flash size for picolibc.ld"
default "0x00010000"
help
Sets the default size for the read-only portion of the
application when linked using the default picolibc link script.
Can be overridden on the linker command line using
-Wl,--defsym=__flash_size=<value>
config LIBC_PICOLIBC_DEFAULT_RAM_ADDR
string
prompt "Default ram address for picolibc.ld"
default "0x20000000"
help
Sets the default base adddress for the read-write portion of the
application when linked using the default picolibc link
script. Can be overridden on the linker command line using
-Wl,--defsym=__ram=<value>
config LIBC_PICOLIBC_DEFAULT_RAM_SIZE
string
prompt "Default ram size for picolibc.ld"
default "0x00008000"
help
Sets the default size for the read-write portion of the
application when linked using the default picolibc link script.
Can be overridden on the linker command line using
-Wl,--defsym=__ram_size=<value>

View File

@ -82,6 +82,10 @@ endian = '${CT_ARCH_ENDIAN}'
c_args = [ ${meson_cflags} '-nostdlib', '-fno-common', '-ftls-model=local-exec' ] c_args = [ ${meson_cflags} '-nostdlib', '-fno-common', '-ftls-model=local-exec' ]
needs_exe_wrapper = true needs_exe_wrapper = true
skip_sanity_check = true skip_sanity_check = true
default_flash_addr = '${CT_LIBC_PICOLIBC_DEFAULT_FLASH_ADDR}'
default_flash_size = '${CT_LIBC_PICOLIBC_DEFAULT_FLASH_SIZE}'
default_ram_addr = '${CT_LIBC_PICOLIBC_DEFAULT_RAM_ADDR}'
default_ram_size = '${CT_LIBC_PICOLIBC_DEFAULT_RAM_SIZE}'
EOF EOF
local picolibc_sysroot_dir local picolibc_sysroot_dir