nuttx/arch/avr/Kconfig
zhangyu117 4ca2256a9b nuttx/atomic: select LIBC_ATOMIC_IRQ for archs without atomic support
Select LIBC_ATOMIC_IRQ at the architecture level (ARM7TDMI, ARM926EJS,
ARMv6M) for chips that do not support atomic operations natively. This
covers all ARM7TDMI, ARM926EJS, and Cortex-M0 based chips automatically.

Also select LIBC_ATOMIC_IRQ for specific non-ARM architectures (AVR,
RISC-V, SPARC, Xtensa) that lack atomic instruction support.

Signed-off-by: zhangyu117 <zhangyu117@xiaomi.com>
2026-08-24 13:20:45 +08:00

89 lines
1.8 KiB
Text

#
# For a description of the syntax of this configuration file,
# see the file kconfig-language.txt in the NuttX tools repository.
#
if ARCH_AVR
choice
prompt "Atmel AVR chip selection"
default ARCH_CHIP_AT32UC3
config ARCH_CHIP_ATMEGA
bool "ATMega family"
select ARCH_FAMILY_AVR
select MM_SMALL
select LIBC_ATOMIC_IRQ
---help---
Atmel ATMega family of 8-bit AVRs.
config ARCH_CHIP_AT90USB
bool "AT90USB family"
select ARCH_FAMILY_AVR
select LIBC_ATOMIC_IRQ
select MM_SMALL
---help---
Atmel AT90USB family of 8-bit AVRs.
config ARCH_CHIP_AVRDX
bool "AVR 32/64/128 DA/DB core"
select ARCH_FAMILY_AVR
select MM_SMALL
select ARCH_HAVE_TICKLESS
select AVR_HAVE_FLMAP
---help---
Atmel/Microchip AVR 32/64/128 DA/DB core family.
config ARCH_CHIP_AT32UC3
bool "AVR32 AT32UC3* family"
select ARCH_FAMILY_AVR32
select LIBC_ATOMIC_IRQ
---help---
Atmel AT32UC3A/B/C family of 32-bit AVR32s.
config ARCH_CHIP_AVR_CUSTOM
bool "Custom AVR chip"
select ARCH_CHIP_CUSTOM
select LIBC_ATOMIC_IRQ
---help---
Select this option if there is no directory for the chip under arch/avr/src/.
endchoice
config ARCH_FAMILY_AVR
bool
default n
select ARCH_HAVE_STACKCHECK
select ARCH_LDST_16BIT_NOT_ATOMIC
config ARCH_FAMILY_AVR32
bool
default n
config ARCH_FAMILY
string
default "avr" if ARCH_FAMILY_AVR
default "avr32" if ARCH_FAMILY_AVR32
config ARCH_CHIP
string
default "atmega" if ARCH_CHIP_ATMEGA
default "avrdx" if ARCH_CHIP_AVRDX
default "at90usb" if ARCH_CHIP_AT90USB
default "at32uc3" if ARCH_CHIP_AT32UC3
source "arch/avr/src/common/Kconfig"
if ARCH_FAMILY_AVR
source "arch/avr/src/avr/Kconfig"
source "arch/avr/src/at90usb/Kconfig"
source "arch/avr/src/atmega/Kconfig"
source "arch/avr/src/avrdx/Kconfig"
endif
if ARCH_FAMILY_AVR32
source "arch/avr/src/avr32/Kconfig"
source "arch/avr/src/at32uc3/Kconfig"
endif
endif # ARCH_AVR