nuttx/libs/libc/machine/Kconfig
zouboan 74aeb5d0c5 port nuttx to sparc-v8 commit
includes following parts:
add support of sparc in arch/Kconfig
add support of sparc in boards/Kconfig
add sparc dir in arch, add sparc dir in boards
add support of sparc in libs/libc/machine
modify all the coding style problem about saprc
2022-01-17 09:09:29 -03:00

198 lines
3.8 KiB
Plaintext

#
# For a description of the syntax of this configuration file,
# see the file kconfig-language.txt in the NuttX tools repository.
#
# These are library functions that may be overridden by architecture-
# specific implementations. Not all architectures support implementations
# for every library function.
menu "Architecture-Specific Support"
config ARCH_LOWPUTC
bool "Low-level console output"
default y
---help---
architecture supports low-level, boot time console output
config ARCH_ROMGETC
bool "Support for ROM string access"
default n
---help---
In Harvard architectures, data accesses and instruction accesses
occur on different buses, perhaps concurrently. All data accesses
are performed on the data bus unless special machine instructions
are used to read data from the instruction address space. Also, in
the typical MCU, the available SRAM data memory is much smaller that
the non-volatile FLASH instruction memory. So if the application
requires many constant strings, the only practical solution may be
to store those constant strings in FLASH memory where they can only
be accessed using architecture-specific machine instructions.
If ARCH_ROMGETC is defined, then the architecture logic must export
the function up_romgetc(). up_romgetc() will simply read one byte
of data from the instruction space.
If ARCH_ROMGETC is selected, certain C stdio functions are effected: (1)
All format strings in printf, fprintf, sprintf, etc. are assumed to lie
in FLASH (string arguments for %s are still assumed to reside in SRAM).
And (2), the string argument to puts and fputs is assumed to reside
in FLASH. Clearly, these assumptions may have to modified for the
particular needs of your environment. There is no "one-size-fits-all"
solution for this problem.
# Default settings for C library functions that may be replaced with
# architecture-specific versions.
config LIBC_ARCH_ATOMIC
bool
default n
config LIBC_ARCH_MEMCHR
bool
default n
config LIBC_ARCH_MEMCPY
bool
default n
config LIBC_ARCH_MEMCMP
bool
default n
config LIBC_ARCH_MEMMOVE
bool
default n
config LIBC_ARCH_MEMSET
bool
default n
config LIBC_ARCH_STRCHR
bool
default n
config LIBC_ARCH_STRCMP
bool
default n
config LIBC_ARCH_STRCPY
bool
default n
config LIBC_ARCH_STRLCAT
bool
default n
config LIBC_ARCH_STRLCPY
bool
default n
config LIBC_ARCH_STRNCPY
bool
default n
config LIBC_ARCH_STRLEN
bool
default n
config LIBC_ARCH_STRNLEN
bool
default n
config LIBC_ARCH_ELF
bool
default n
config LIBC_ARCH_ELF_64BIT
bool
default n
depends on LIBC_ARCH_ELF
config LIBM_ARCH_CEIL
bool
default n
depends on LIBM
config LIBM_ARCH_FLOOR
bool
default n
depends on LIBM
config LIBM_ARCH_NEARBYINT
bool
default n
depends on LIBM
config LIBM_ARCH_RINT
bool
default n
depends on LIBM
config LIBM_ARCH_ROUND
bool
default n
depends on LIBM
config LIBM_ARCH_TRUNC
bool
default n
depends on LIBM
config LIBM_ARCH_CEILF
bool
default n
depends on LIBM
config LIBM_ARCH_FLOORF
bool
default n
depends on LIBM
config LIBM_ARCH_NEARBYINTF
bool
default n
depends on LIBM
config LIBM_ARCH_RINTF
bool
default n
depends on LIBM
config LIBM_ARCH_ROUNDF
bool
default n
depends on LIBM
config LIBM_ARCH_TRUNCF
bool
default n
depends on LIBM
# One or more the of above may be selected by architecture specific logic
if ARCH_ARM
source "libs/libc/machine/arm/Kconfig"
endif
if ARCH_RISCV
source "libs/libc/machine/risc-v/Kconfig"
endif
if ARCH_SIM
source "libs/libc/machine/sim/Kconfig"
endif
if ARCH_X86
source "libs/libc/machine/x86/Kconfig"
endif
if ARCH_XTENSA
source "libs/libc/machine/xtensa/Kconfig"
endif
if ARCH_RENESAS
source "libs/libc/machine/renesas/Kconfig"
endif
if ARCH_SPARC
source libs/libc/machine/sparc/Kconfig
endif
endmenu # Architecture-Specific Support