-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Description
Description / Steps to reproduce the issue
The ARM idle stack for boards based on armv6/armv7 cores can potentially only be aligned to 4-byte boundarys instead of 8-byte stack alignment called out by AAPCS32. Normally this isn't an issue but vararg processing by GCC forcibly aligns accesses of long long on 8-byte boundaries.
While adding code to remove the "Missing logic" warning in stm32_irq.c:152 I ran into a data abortbus fault exception while calling syslog() from the idle task on a nucleo-stm32h743zi2 board(based on stm32h7). Applying the same changtes to nucleo-f446re(stm32) and nuclio-f767zi(stm32f7) also caused the exception.
The underlying issue occurs due to calling stm32_dumpnvic from the idletask with SYSLOG_TIMESTAMP enabled, but only when the Idlestak is not aligned to an 8-byte bvoundary. The issue is due to invoking "x = va_arg(ap, unsigned long long);" in vsprintf_internal (lib_libvsprintf.c:1061) which aligns ap before accessing the long long:
Breakpoint 5, vsprintf_internal (stream=stream@entry=0x20005390, arglist=0x0,
numargs=0, fmt=0x8018bf2 ".%06ld] [%6s] %s: ",
fmt@entry=0x8005817 <lib_sprintf_internal+22> "...",
ap=..., ap@entry=..., numargs=0, arglist=0x0)
at stream/lib_libvsprintf.c:1061
1061 x = va_arg(ap, unsigned long long);
p ap
$18 = {__ap = 0x2000536c}
(gdb) x/5i $pc
=> 0x800563a <vsprintf_internal+782>: add.w r9, r9, #7
0x800563e <vsprintf_internal+786>: bic.w r9, r9, #7 # align ap
0x8005642 <vsprintf_internal+790>: mov r7, r9
0x8005644 <vsprintf_internal+792>: ldr.w r1, [r9, #4]
0x8005648 <vsprintf_internal+796>: ldr.w r0, [r7], #8
(gdb) p/x $r9
$19 = 0x2000536c
(gdb) s
1108 flags &= ~(FL_PLUS | FL_SPACE);
(gdb) p ap
$20 = {__ap = 0x20005378}
(gdb) p/x $r7
$21 = 0x20005378
(gdb)
This works fine if the stack is aligned on an 8-byte boundary (which all other task/user stacks currently are due to MM_DEFAULT_ALIGNMENT being 8). But if the idletask stack is not aligned, ap ends up incremented by 12 causing access to any following vararg in vsprintf_internal to be offset by 4 bytes resulting in potential exceptions.
A clean fix would be to increase the alignment in the .bss section to 8 in the linker description file (since the idlestack immediately follows .bss starting at _ebss). I've tested this fix on nucleo-743zi2 (based on stm32h7), nucleo-h767zi (based on stm32f7), and nucleo-f446re (based on stm32), all with success.
I reproduced the issue using the following steps in nuttx (git hash 55e752a) and nuttx-apps(git hash 8cd9e9acc23d35a8bcc5f38e7f49cbb05951675e) but believe it can be reproduced in other STM32 versions that enable ARCH_IRQINFO, USB_DEBUG_INFO, and SYSLOG_TIMESTAMP, (but have not verified if only those options are required):
tools/configure.sh -l nucleo-h743zi2:jumbo
kconfig-tweak --file .config --enable ARCH_IRQPRIO
kconfig-tweak --file .config --enable DEBUG_IRQ
kconfig-tweak --file .config --disable DEBUG_IRQ_ERROR
kconfig-tweak --file .config --disable DEBUG_IRQ_WARN
kconfig-tweak --file .config --enable DEBUG_IRQ_INFO
make -j $(npproc)
Triggering the issue requies that _ebss(and thereby the idle stack) is not 8-byte aligned (determined by "nm nuttx | grep _ebss"). If _ebss is aligned, you can force non-8-byte alignment by applying the following (artifical) patch to add a pointless global variable at/near end of .bss section to bump _ebss:
diff --git a/sched/wqueue/kwork_notifier.c b/sched/wqueue/kwork_notifier.c
index 8b3a3b5df4..b04fe98dad 100644
--- a/sched/wqueue/kwork_notifier.c
+++ b/sched/wqueue/kwork_notifier.c
@@ -156,12 +156,16 @@ static int work_notifier_key(void)
*
****************************************************************************/
+FAR void *pointless_arg;
+
static void work_notifier_worker(FAR void *arg)
{
FAR struct work_notifier_entry_s *notifier =
(FAR struct work_notifier_entry_s *)arg;
irqstate_t flags;
+ pointless_arg = arg;
+
/* Forward to the real worker */
notifier->info.worker(notifier->info.arg);
@@ -207,7 +211,6 @@ static void work_notifier_worker(FAR void *arg)
* nature of the failure.
*
****************************************************************************/
-
int work_notifier_setup(FAR struct work_notifier_s *info)
{
FAR struct work_notifier_entry_s *notifier;
At this point execution failed(for me) with a bus fault:
Program received signal SIGTRAP, Trace/breakpoint trap.
exception_common () at armv7-m/arm_exception.S:127
127 mrs r0, ipsr /* R0=exception number */
where
#0 exception_common () at armv7-m/arm_exception.S:127
#1 <signal handler called>
#2 0x080074d4 in strnlen (
s=s@entry=0xdeadbeef <error: Cannot access memory at address 0xdeadbeef>,
maxlen=<optimized out>) at string/lib_strnlen.c:42
#3 0x08006bc8 in vsprintf_internal (stream=stream@entry=0x2400e848,
arglist=0x0, numargs=0, fmt=0x803f15b ": ",
fmt@entry=0x800723b <lib_sprintf_internal+22> "....",
ap=..., ap@entry=..., numargs=0, arglist=0x0)
at stream/lib_libvsprintf.c:933
#4 0x0800723a in lib_sprintf_internal (stream=stream@entry=0x2400e848,
fmt=0x803f146 "[%5ju.%06ld] [%6s] %s: ") at stream/lib_libvsprintf.c:1425
#5 0x08023624 in nx_vsyslog (priority=priority@entry=6,
fmt=0x803d673 "%s: NVIC (%s, irq=%d):\n",
fmt@entry=0x2400e894 "....", ap=ap@entry=0x2400e878)
at syslog/vsyslog.c:155
#6 0x08007548 in vsyslog (priority=priority@entry=6,
fmt=fmt@entry=0x2400e894 "....", ap=..., ap@entry=...)
at syslog/lib_syslog.c:70
#7 0x08007560 in syslog (priority=priority@entry=6,
fmt=0x803d673 "%s: NVIC (%s, irq=%d):\n") at syslog/lib_syslog.c:102
#8 0x08001032 in stm32_dumpnvic (msg=msg@entry=0x803d7a3 "initial",
irq=irq@entry=179) at chip/stm32_irq.c:85
#9 0x080012d4 in up_irqinitialize () at chip/stm32_irq.c:508
#10 0x08001dd0 in irq_initialize () at irq/irq_initialize.c:98
#11 0x08001cc6 in nx_start () at init/nx_start.c:634
#12 0x08000378 in __start () at chip/stm32_start.c:315
(gdb)
On which OS does this issue occur?
[OS: Linux]
What is the version of your OS?
Ubuntu 24.04.4 LTS
NuttX Version
master
Issue Architecture
[Arch: arm]
Issue Area
[Area: Board support]
Host information
file sysinfo.h not exists
NuttX configuration options:
CONFIG_HOST_LINUX=y
CONFIG_APPS_DIR="../apps"
CONFIG_BASE_DEFCONFIG="nucleo-h743zi2:jumbo-dirty"
CONFIG_BUILD_FLAT=y
CONFIG_INTELHEX_BINARY=y
CONFIG_RAW_BINARY=y
CONFIG_OUTPUT_STRIP_PATHS=y
CONFIG_ARCH_FLOAT_H=y
CONFIG_ARCH_HAVE_STDARG_H=y
CONFIG_ARCH_HAVE_SETJMP=y
CONFIG_ARCH_NONE_DEBUG_H=y
CONFIG_FORTIFY_SOURCE=0
CONFIG_NDEBUG=y
CONFIG_DEBUG_ALERT=y
CONFIG_DEBUG_FEATURES=y
CONFIG_DEBUG_ERROR=y
CONFIG_DEBUG_WARN=y
CONFIG_DEBUG_INFO=y
CONFIG_DEBUG_IRQ=y
CONFIG_DEBUG_IRQ_INFO=y
CONFIG_DEBUG_USB=y
CONFIG_DEBUG_USB_ERROR=y
CONFIG_DEBUG_USB_WARN=y
CONFIG_ARCH_HAVE_STACKCHECK=y
CONFIG_STACK_COLORATION=y
CONFIG_STACK_USAGE_WARNING=0
CONFIG_DEBUG_SYMBOLS=y
CONFIG_DEBUG_SYMBOLS_LEVEL="-g"
CONFIG_ARCH_HAVE_CUSTOMOPT=y
CONFIG_DEBUG_FULLOPT=y
CONFIG_LTO_NONE=y
CONFIG_DEBUG_OPT_UNUSED_SECTIONS=y
CONFIG_DEBUG_LINK_MAP=y
CONFIG_ARCH_ARM=y
CONFIG_ARCH="arm"
CONFIG_ARM_TOOLCHAIN_GNU_EABI=y
CONFIG_ARCH_CHIP_STM32H7=y
CONFIG_ARCH_ARMV7M=y
CONFIG_ARCH_CORTEXM7=y
CONFIG_ARCH_FAMILY="armv7-m"
CONFIG_ARCH_CHIP="stm32h7"
CONFIG_ARM_THUMB=y
CONFIG_ARM_HAVE_MPU_UNIFIED=y
CONFIG_ARCH_HAVE_HARDFAULT_DEBUG=y
CONFIG_ARCH_HAVE_MEMFAULT_DEBUG=y
CONFIG_ARCH_HAVE_BUSFAULT_DEBUG=y
CONFIG_ARCH_HAVE_USAGEFAULT_DEBUG=y
CONFIG_ARMV7M_HAVE_ICACHE=y
CONFIG_ARMV7M_HAVE_DCACHE=y
CONFIG_ARMV7M_ICACHE=y
CONFIG_ARMV7M_DCACHE=y
CONFIG_ARMV7M_DCACHE_WRITETHROUGH=y
CONFIG_ARMV7M_HAVE_ITCM=y
CONFIG_ARMV7M_HAVE_DTCM=y
CONFIG_ARMV7M_DTCM=y
CONFIG_ARMV7M_HAVE_STACKCHECK=y
CONFIG_ARCH_CHIP_STM32H743ZI=y
CONFIG_STM32H7_IO_CONFIG_Z=y
CONFIG_ARCH_CHIP_STM32H7_CORTEXM7=y
CONFIG_STM32H7_STM32H7X3XX=y
CONFIG_STM32H7_FLASH_CONFIG_I=y
CONFIG_STM32H7_FLASH_OVERRIDE_DEFAULT=y
CONFIG_STM32H7_FLASH_CR_PSIZE=3
CONFIG_STM32H7_AXI_SRAM_CORRUPTION_WAR=y
CONFIG_STM32_APP_FORMAT_LEGACY=y
CONFIG_STM32H7_HAVE_LTDC=y
CONFIG_STM32H7_HAVE_ETHERNET=y
CONFIG_STM32H7_HAVE_PHY_POLLED=y
CONFIG_STM32H7_HAVE_FMC=y
CONFIG_STM32H7_HAVE_GPIOF=y
CONFIG_STM32H7_HAVE_GPIOG=y
CONFIG_STM32H7_HAVE_SPI4=y
CONFIG_STM32H7_HAVE_SPI5=y
CONFIG_STM32H7_HAVE_SPI6=y
CONFIG_STM32H7_HAVE_RNG=y
CONFIG_STM32H7_HSI48=y
CONFIG_STM32H7_USART=y
CONFIG_STM32H7_ETHMAC=y
CONFIG_STM32H7_OTGFS=y
CONFIG_STM32H7_SYSCFG=y
CONFIG_STM32H7_USART3=y
CONFIG_STM32H7_OTGFS_HOST=y
CONFIG_USART3_RXFIFO_THRES=3
CONFIG_STM32H7_HAVE_RTC_SUBSECONDS=y
CONFIG_STM32H7_PHYADDR=0
CONFIG_STM32H7_AUTONEG=y
CONFIG_STM32H7_ETH_NRXDESC=8
CONFIG_STM32H7_ETH_NTXDESC=4
CONFIG_STM32H7_PHYSR=31
CONFIG_STM32H7_PHYSR_ALTCONFIG=y
CONFIG_STM32H7_PHYSR_ALTMODE=0x001c
CONFIG_STM32H7_PHYSR_10HD=0x0004
CONFIG_STM32H7_PHYSR_100HD=0x0008
CONFIG_STM32H7_PHYSR_10FD=0x0014
CONFIG_STM32H7_PHYSR_100FD=0x0018
CONFIG_STM32H7_RMII=y
CONFIG_STM32H7_RMII_EXTCLK=y
CONFIG_ARCH_TOOLCHAIN_GNU=y
CONFIG_ARCH_TOOLCHAIN_GCC=y
CONFIG_ARCH_HAVE_IRQTRIGGER=y
CONFIG_ARCH_HAVE_IRQPRIO=y
CONFIG_ARCH_ICACHE=y
CONFIG_ARCH_DCACHE=y
CONFIG_ARCH_HAVE_FORK=y
CONFIG_ARCH_HAVE_FPU=y
CONFIG_ARCH_HAVE_DPFPU=y
CONFIG_ARCH_HAVE_MPU=y
CONFIG_ARCH_HAVE_PROGMEM=y
CONFIG_ARCH_HAVE_RESET=y
CONFIG_ARCH_HAVE_TESTSET=y
CONFIG_ARCH_HAVE_THREAD_LOCAL=y
CONFIG_ARCH_HAVE_RTC_SUBSECONDS=y
CONFIG_ARCH_HAVE_SYSCALL_HOOKS=y
CONFIG_ARCH_HAVE_BACKTRACE=y
CONFIG_ARCH_HAVE_DEBUG=y
CONFIG_ARCH_HAVE_PERF_EVENTS=y
CONFIG_ARCH_PERF_EVENTS=y
CONFIG_ARCH_HAVE_CPUINFO=y
CONFIG_ARCH_CPUINFO_FREQ_KHZ=0
CONFIG_ARCH_HAVE_TCBINFO=y
CONFIG_ARCH_FPU=y
CONFIG_ARCH_DPFPU=y
CONFIG_NCPUS=1
CONFIG_ARCH_IRQPRIO=y
CONFIG_ARCH_STACKDUMP=y
CONFIG_ARCH_STACKDUMP_MAX_LENGTH=0
CONFIG_ARCH_HAVE_RAMVECTORS=y
CONFIG_BOARD_LOOPSPERMSEC=43103
CONFIG_ARCH_HAVE_INTERRUPTSTACK=y
CONFIG_ARCH_INTERRUPTSTACK=0
CONFIG_ARCH_HAVE_HIPRI_INTERRUPT=y
CONFIG_BOOT_RUNFROMFLASH=y
CONFIG_RAM_START=0x20010000
CONFIG_RAM_SIZE=245760
CONFIG_FLASH_START=0x0
CONFIG_FLASH_SIZE=0
CONFIG_ARCH_BOARD_NUCLEO_H743ZI2=y
CONFIG_ARCH_BOARD="nucleo-h743zi2"
CONFIG_ARCH_HAVE_LEDS=y
CONFIG_ARCH_LEDS=y
CONFIG_ARCH_HAVE_BUTTONS=y
CONFIG_ARCH_BUTTONS=y
CONFIG_ARCH_HAVE_IRQBUTTONS=y
CONFIG_ARCH_IRQBUTTONS=y
CONFIG_BOARD_CRASHDUMP_NONE=y
CONFIG_BOARDCTL=y
CONFIG_BOARDCTL_RESET=y
CONFIG_BOARD_RESET_ON_ASSERT=0
CONFIG_BOARD_ASSERT_RESET_VALUE=1
CONFIG_BOARDCTL_MKRD=y
CONFIG_BOARD_MEMORY_RANGE=""
CONFIG_DISABLE_OS_API=y
CONFIG_ARCH_HAVE_TICKLESS=y
CONFIG_USEC_PER_TICK=10000
CONFIG_TIMER_ADJUST_USEC=0
CONFIG_ARCH_HAVE_TIMEKEEPING=y
CONFIG_START_YEAR=2011
CONFIG_START_MONTH=12
CONFIG_START_DAY=6
CONFIG_PREALLOC_TIMERS=4
CONFIG_IRQ_NWORKS=8
CONFIG_IRQ_WORK_SECTION=""
CONFIG_IRQ_WORK_STACKSIZE=4096
CONFIG_INIT_ENTRY=y
CONFIG_INIT_ARGS=""
CONFIG_INIT_STACKSIZE=4096
CONFIG_INIT_PRIORITY=100
CONFIG_INIT_ENTRYPOINT="nsh_main"
CONFIG_INIT_ENTRYNAME="nsh_main"
CONFIG_RR_INTERVAL=200
CONFIG_TASK_NAME_SIZE=16
CONFIG_SCHED_WAITPID=y
CONFIG_PTHREAD_MUTEX_BOTH=y
CONFIG_PTHREAD_MUTEX_DEFAULT_UNSAFE=y
CONFIG_PTHREAD_MUTEX_DEFAULT_PRIO_NONE=y
CONFIG_SCHED_IRQMONITOR=y
CONFIG_SCHED_CPULOAD_SYSCLK=y
CONFIG_SCHED_CPULOAD_TICKSPERSEC=100
CONFIG_SCHED_CPULOAD_TIMECONSTANT=2
CONFIG_SCHED_PROFILE_TICKSPERSEC=1000
CONFIG_SCHED_STACK_RECORD=0
CONFIG_DEV_CONSOLE=y
CONFIG_NFILE_DESCRIPTORS_PER_BLOCK=8
CONFIG_FILE_STREAM=y
CONFIG_ENABLE_ALL_SIGNALS=y
CONFIG_SIG_PREALLOC_ACTIONS=4
CONFIG_SIG_ALLOC_ACTIONS=1
CONFIG_SIG_PREALLOC_IRQ_ACTIONS=8
CONFIG_PREALLOC_MQ_MSGS=8
CONFIG_PREALLOC_MQ_IRQ_MSGS=8
CONFIG_MQ_MAXMSGSIZE=32
CONFIG_SCHED_WORKQUEUE=y
CONFIG_WQUEUE_NOTIFIER=y
CONFIG_SCHED_HPWORK=y
CONFIG_SCHED_HPNTHREADS=1
CONFIG_SCHED_HPWORKPRIORITY=224
CONFIG_SCHED_HPWORKSTACKSIZE=2048
CONFIG_SCHED_HPWORKSTACKSECTION=""
CONFIG_SCHED_LPWORK=y
CONFIG_SCHED_LPNTHREADS=1
CONFIG_SCHED_LPWORKPRIORITY=100
CONFIG_SCHED_LPWORKSTACKSIZE=2048
CONFIG_SCHED_LPWORKSTACKSECTION=""
CONFIG_DEFAULT_TASK_STACKSIZE=4096
CONFIG_IDLETHREAD_STACKSIZE=1024
CONFIG_PTHREAD_STACK_MIN=256
CONFIG_PTHREAD_STACK_DEFAULT=2048
CONFIG_PTHREAD_GUARDSIZE_DEFAULT=0
CONFIG_PID_INITIAL_COUNT=16
CONFIG_ARCH_HAVE_I2CRESET=y
CONFIG_ARCH_HAVE_SPI_BITORDER=y
CONFIG_BCH=y
CONFIG_BCH_BUFFER_ALIGNMENT=0
CONFIG_INPUT=y
CONFIG_INPUT_MOUSE=y
CONFIG_INPUT_BUTTONS=y
CONFIG_INPUT_BUTTONS_DEBOUNCE_DELAY=0
CONFIG_INPUT_BUTTONS_LOWER=y
CONFIG_INPUT_BUTTONS_NPOLLWAITERS=2
CONFIG_DEV_NULL=y
CONFIG_DEV_ZERO=y
CONFIG_DEV_OPTEE_NONE=y
CONFIG_DRVR_MKRD=y
CONFIG_ARCH_HAVE_RDWR_MEM_CPU_RUN=y
CONFIG_MTD=y
CONFIG_MTD_CONFIG_NONE=y
CONFIG_RAMMTD=y
CONFIG_RAMMTD_BLOCKSIZE=512
CONFIG_RAMMTD_ERASESIZE=4096
CONFIG_RAMMTD_ERASESTATE=0xff
CONFIG_NETDEVICES=y
CONFIG_MDIO_BUS=y
CONFIG_NETDEV_TELNET=y
CONFIG_TELNET_RXBUFFER_SIZE=256
CONFIG_TELNET_TXBUFFER_SIZE=256
CONFIG_TELNET_MAXLCLIENTS=8
CONFIG_ETH0_PHY_LAN8742A=y
CONFIG_ETH1_PHY_NONE=y
CONFIG_ARCH_HAVE_SERIAL_TERMIOS=y
CONFIG_SERIAL=y
CONFIG_SERIAL_CONSOLE=y
CONFIG_MCU_SERIAL=y
CONFIG_SERIAL_NPOLLWAITERS=4
CONFIG_USART3_SERIAL_CONSOLE=y
CONFIG_USART3_SERIALDRIVER=y
CONFIG_USART3_RXBUFSIZE=252
CONFIG_USART3_TXBUFSIZE=252
CONFIG_USART3_BAUD=115200
CONFIG_USART3_BITS=8
CONFIG_USART3_PARITY=0
CONFIG_USART3_2STOP=0
CONFIG_USBHOST_HAVE_ASYNCH=y
CONFIG_USBHOST=y
CONFIG_USBHOST_NPREALLOC=4
CONFIG_USBHOST_ASYNCH=y
CONFIG_USBHOST_HUB=y
CONFIG_USBHOST_HUB_POLLMSEC=400
CONFIG_USBHOST_MSC=y
CONFIG_USBHOST_MSC_NOTIFIER=y
CONFIG_USBHOST_HIDKBD=y
CONFIG_HIDKBD_POLLUSEC=40000
CONFIG_HIDKBD_DEFPRIO=50
CONFIG_HIDKBD_STACKSIZE=1024
CONFIG_HIDKBD_BUFSIZE=64
CONFIG_HIDKBD_NPOLLWAITERS=2
CONFIG_USBHOST_HIDMOUSE=y
CONFIG_HIDMOUSE_DEFPRIO=50
CONFIG_HIDMOUSE_STACKSIZE=1024
CONFIG_HIDMOUSE_BUFSIZE=64
CONFIG_HIDMOUSE_NPOLLWAITERS=2
CONFIG_HIDMOUSE_XMAX=320
CONFIG_HIDMOUSE_YMAX=240
CONFIG_HIDMOUSE_XSCALE=0x00010000
CONFIG_HIDMOUSE_YSCALE=0x00010000
CONFIG_HIDMOUSE_XTHRESH=12
CONFIG_HIDMOUSE_THRESHY=12
CONFIG_USBHOST_TRACE=y
CONFIG_USBHOST_TRACE_NRECORDS=128
CONFIG_USBHOST_TRACE_VERBOSE=y
CONFIG_HAVE_USBTRACE=y
CONFIG_USBMONITOR=y
CONFIG_USBMONITOR_STACKSIZE=4096
CONFIG_USBMONITOR_PRIORITY=50
CONFIG_USBMONITOR_INTERVAL=2
CONFIG_SYSLOG=y
CONFIG_SYSLOG_DEFAULT_MASK=0xff
CONFIG_SYSLOG_CRLF=y
CONFIG_SYSLOG_MAX_CHANNELS=1
CONFIG_RAMLOG=y
CONFIG_RAMLOG_NONBLOCKING=y
CONFIG_RAMLOG_POLLTHRESHOLD=1
CONFIG_SYSLOG_INTBUFFER=y
CONFIG_SYSLOG_INTBUFSIZE=512
CONFIG_SYSLOG_PRIORITY=y
CONFIG_SYSLOG_TIMESTAMP=y
CONFIG_SYSLOG_PROCESS_NAME=y
CONFIG_SYSLOG_DEVPATH="/dev/kmsg"
CONFIG_RAMLOG_SYSLOG=y
CONFIG_RAMLOG_BUFFER_SECTION=""
CONFIG_RAMLOG_BUFSIZE=10240
CONFIG_ARCH_HAVE_NET=y
CONFIG_ARCH_HAVE_PHY=y
CONFIG_ARCH_HAVE_NETDEV_STATISTICS=y
CONFIG_NET_READAHEAD=y
CONFIG_NET_MCASTGROUP=y
CONFIG_NET=y
CONFIG_NET_DEFAULT_MIN_PORT=4096
CONFIG_NET_DEFAULT_MAX_PORT=32000
CONFIG_NET_ETH_PKTSIZE=1500
CONFIG_NET_GUARDSIZE=2
CONFIG_NET_LL_GUARDSIZE=14
CONFIG_NET_RECV_BUFSIZE=0
CONFIG_NET_ETHERNET=y
CONFIG_NET_LOOPBACK=y
CONFIG_NET_LOOPBACK_PKTSIZE=0
CONFIG_NETDEV_IFINDEX=y
CONFIG_NET_IPv4=y
CONFIG_NET_IPFORWARD_ALLOC_STRUCT=1
CONFIG_NET_PREALLOC_DEVIF_CALLBACKS=16
CONFIG_NET_ALLOC_DEVIF_CALLBACKS=0
CONFIG_NET_SOCKOPTS=y
CONFIG_NET_BINDTODEVICE=y
CONFIG_NET_IPV4_CHECKSUMS=y
CONFIG_NET_TCP=y
CONFIG_NET_TCP_CHECKSUMS=y
CONFIG_NET_TCP_PREALLOC_CONNS=8
CONFIG_NET_TCP_ALLOC_CONNS=0
CONFIG_NET_TCP_NPOLLWAITERS=2
CONFIG_NET_TCP_RTO=3
CONFIG_NET_TCP_MAXRTX=8
CONFIG_NET_TCP_MAXSYNRTX=5
CONFIG_NET_TCP_WAIT_TIMEOUT=120
CONFIG_NET_MAX_LISTENPORTS=20
CONFIG_NET_TCP_FAST_RETRANSMIT=y
CONFIG_NET_TCPBACKLOG=y
CONFIG_NET_TCPBACKLOG_CONNS=8
CONFIG_NET_UDP=y
CONFIG_NET_BROADCAST=y
CONFIG_NET_UDP_CHECKSUMS=y
CONFIG_NET_UDP_PREALLOC_CONNS=8
CONFIG_NET_UDP_ALLOC_CONNS=0
CONFIG_NET_UDP_NPOLLWAITERS=1
CONFIG_NET_ICMP=y
CONFIG_NET_ICMP_PMTU_ENTRIES=0
CONFIG_NET_ICMP_SOCKET=y
CONFIG_NET_ICMP_CHECKSUMS=y
CONFIG_NET_ICMP_PREALLOC_CONNS=4
CONFIG_NET_ICMP_ALLOC_CONNS=0
CONFIG_NET_ICMP_NPOLLWAITERS=1
CONFIG_NET_IGMP=y
CONFIG_NET_IGMP_CHECKSUMS=y
CONFIG_NET_ARP=y
CONFIG_NET_ARPTAB_SIZE=16
CONFIG_NET_ARP_MAXAGE=120
CONFIG_NET_ARP_MAXAGE_UNREACHABLE=1
CONFIG_NET_ARP_IPIN=y
CONFIG_NET_ARP_SEND=y
CONFIG_ARP_SEND_MAXTRIES=5
CONFIG_ARP_SEND_DELAYMSEC=20
CONFIG_NET_SNOOP_BUFSIZE=4096
CONFIG_NET_RECV_PACK=y
CONFIG_NET_STATISTICS=y
CONFIG_NET_ROUTE=y
CONFIG_ROUTE_IPv4_RAMROUTE=y
CONFIG_ROUTE_MAX_IPv4_RAMROUTES=4
CONFIG_ROUTE_LONGEST_MATCH=y
CONFIG_FS_NEPOLL_DESCRIPTORS=8
CONFIG_FS_LOCK_BUCKET_SIZE=0
CONFIG_SENDFILE_BUFSIZE=512
CONFIG_FS_BACKTRACE=0
CONFIG_FS_MQUEUE_VFS_PATH="/var/mqueue"
CONFIG_FS_MQUEUE_NPOLLWAITERS=4
CONFIG_FS_ANONMAP=y
CONFIG_FS_FAT=y
CONFIG_FAT_LCNAMES=y
CONFIG_FS_PROCFS=y
CONFIG_FS_PROCFS_REGISTER=y
CONFIG_FS_LITTLEFS=y
CONFIG_FS_LITTLEFS_PROGRAM_SIZE_FACTOR=4
CONFIG_FS_LITTLEFS_READ_SIZE_FACTOR=4
CONFIG_FS_LITTLEFS_BLOCK_SIZE_FACTOR=1
CONFIG_FS_LITTLEFS_CACHE_SIZE_FACTOR=4
CONFIG_FS_LITTLEFS_LOOKAHEAD_SIZE=0
CONFIG_FS_LITTLEFS_BLOCK_CYCLE=200
CONFIG_FS_LITTLEFS_NAME_MAX=32
CONFIG_FS_LITTLEFS_FILE_MAX=2147483647
CONFIG_FS_LITTLEFS_ATTR_MAX=1022
CONFIG_FS_LITTLEFS_LOCAL_PATCHES=y
CONFIG_FS_LITTLEFS_ATTR_UPDATE=y
CONFIG_FS_LITTLEFS_GETPATH=y
CONFIG_FS_LITTLEFS_VERSION="v2.5.1"
CONFIG_NXFONTS_PACKEDMSFIRST=y
CONFIG_MM_DEFAULT_MANAGER=y
CONFIG_MM_DEFAULT_ALIGNMENT=8
CONFIG_MM_NODE_GUARDSIZE=0
CONFIG_MM_REGIONS=4
CONFIG_MM_MAP_COUNT_MAX=1024
CONFIG_MM_BACKTRACE=-1
CONFIG_MM_FREE_DELAYCOUNT_MAX=0
CONFIG_MM_HEAP_BIGGEST_COUNT=30
CONFIG_MM_HEAP_MEMPOOL_THRESHOLD=-1
CONFIG_MM_IOB=y
CONFIG_IOB_NBUFFERS=24
CONFIG_IOB_BUFSIZE=196
CONFIG_IOB_ALIGNMENT=4
CONFIG_IOB_SECTION=""
CONFIG_IOB_NCHAINS=24
CONFIG_IOB_THROTTLE=0
CONFIG_BINFMT_ELF_RELOCATABLE=y
CONFIG_STDIO_BUFFER_SIZE=64
CONFIG_STDIO_LINEBUFFER=y
CONFIG_NUNGET_CHARS=2
CONFIG_LIBC_FLOATINGPOINT=y
CONFIG_LIBC_LONG_LONG=y
CONFIG_ARCH_LOWPUTC=y
CONFIG_LIBC_RAND_ORDER=1
CONFIG_LIBC_HOMEDIR="/"
CONFIG_LIBC_TMPDIR="/tmp"
CONFIG_LIBC_MAX_TMPFILE=32
CONFIG_LIBC_MAX_EXITFUNS=0
CONFIG_POSIX_SPAWN_DEFAULT_STACKSIZE=2048
CONFIG_LIBC_HOSTNAME=""
CONFIG_LIBC_OPEN_MAX=256
CONFIG_NAME_MAX=32
CONFIG_PATH_MAX=256
CONFIG_LINE_MAX=64
CONFIG_LIBC_STRERROR_ERRNUM=y
CONFIG_LIBC_STRSIGNAL=y
CONFIG_TLS_NELEM=0
CONFIG_TLS_TASK_NELEM=0
CONFIG_TLS_NCLEANUP=0
CONFIG_LIBC_NETDB=y
CONFIG_LIBC_GAISTRERROR_ERRNUM=y
CONFIG_NETDB_BUFSIZE=256
CONFIG_NETDB_MAX_IPv4ADDR=1
CONFIG_NETDB_DNSCLIENT=y
CONFIG_NETDB_DNSCLIENT_ENTRIES=8
CONFIG_NETDB_DNSCLIENT_NAMESIZE=256
CONFIG_NETDB_DNSCLIENT_LIFESEC=3600
CONFIG_NETDB_DNSCLIENT_MAXRESPONSE=512
CONFIG_NETDB_DNSCLIENT_RECV_TIMEOUT=5
CONFIG_NETDB_DNSCLIENT_SEND_TIMEOUT=5
CONFIG_NETDB_DNSCLIENT_MAX_TIMEOUT=30
CONFIG_NETDB_DNSCLIENT_RETRIES=3
CONFIG_NETDB_DNSSERVER_NAMESERVERS=1
CONFIG_NETDB_DNSSERVER_IPv4=y
CONFIG_NETDB_DNSSERVER_IPv4ADDR=0x0a000001
CONFIG_LIBC_FTOK_VFS_PATH="/var/ftok"
CONFIG_LIBC_MEMFD_ERROR=y
CONFIG_LIBC_TEMPBUFFER=y
CONFIG_LIBC_MAX_TEMPBUFFER=2
CONFIG_LIBC_TEMPBUFFER_MALLOC=y
CONFIG_LIBC_MUTEX_BACKTRACE=0
CONFIG_BUILTIN=y
CONFIG_STREAM_OUT_BUFFER_SIZE=64
CONFIG_STREAM_HEXDUMP_BUFFER_SIZE=128
CONFIG_STREAM_BASE64_BUFFER_SIZE=128
CONFIG_LIBC_INLINE_QUEUE=y
CONFIG_LIBM=y
CONFIG_HAVE_CXX=y
CONFIG_HAVE_CXXINITIALIZE=y
CONFIG_LIBCXXNONE=y
CONFIG_LIBMINIABI=y
CONFIG_CXX_STANDARD="gnu++17"
CONFIG_CXX_NO_LOCALIZATION=y
CONFIG_BUILTIN_TOOLCHAIN=y
CONFIG_COVERAGE_NONE=y
CONFIG_COVERAGE_DEFAULT_PREFIX_STRIP="0"
CONFIG_COVERAGE_DEFAULT_PREFIX="/data"
CONFIG_PROFILE_NONE=y
CONFIG_EXAMPLES_BUTTONS=y
CONFIG_EXAMPLES_BUTTONS_PROGNAME="buttons"
CONFIG_EXAMPLES_BUTTONS_PRIORITY=100
CONFIG_EXAMPLES_BUTTONS_STACKSIZE=4096
CONFIG_EXAMPLES_BUTTONS_DEVPATH="/dev/buttons"
CONFIG_EXAMPLES_BUTTONS_NAMES=y
CONFIG_EXAMPLES_BUTTONS_SIGNAL=y
CONFIG_EXAMPLES_BUTTONS_QTD=1
CONFIG_EXAMPLES_BUTTONS_NAME0="B1"
CONFIG_EXAMPLES_BUTTONS_NAME1="BUTTON1"
CONFIG_EXAMPLES_BUTTONS_NAME2="BUTTON2"
CONFIG_EXAMPLES_BUTTONS_NAME3="BUTTON3"
CONFIG_EXAMPLES_BUTTONS_NAME4="BUTTON4"
CONFIG_EXAMPLES_BUTTONS_NAME5="BUTTON5"
CONFIG_EXAMPLES_BUTTONS_NAME6="BUTTON6"
CONFIG_EXAMPLES_BUTTONS_NAME7="BUTTON7"
CONFIG_EXAMPLES_HIDKBD=y
CONFIG_EXAMPLES_HIDKBD_PROGNAME="hidkbd"
CONFIG_EXAMPLES_HIDKBD_STACKSIZE=4096
CONFIG_EXAMPLES_HIDKBD_DEFPRIO=100
CONFIG_EXAMPLES_HIDKBD_DEVNAME="/dev/kbda"
CONFIG_EXAMPLES_TOUCHSCREEN=y
CONFIG_EXAMPLES_TOUCHSCREEN_MINOR=0
CONFIG_EXAMPLES_TOUCHSCREEN_DEVPATH="/dev/mouse0"
CONFIG_EXAMPLES_TOUCHSCREEN_NSAMPLES=0
CONFIG_EXAMPLES_TOUCHSCREEN_MOUSE=y
CONFIG_FSUTILS_MKFATFS=y
CONFIG_MKFATFS_BUFFER_ALIGNMENT=0
CONFIG_NETUTILS_DHCPC=y
CONFIG_NETUTILS_DHCPC_HOST_NAME="nuttx"
CONFIG_NETUTILS_DHCPC_RECV_TIMEOUT_MS=3000
CONFIG_NETUTILS_DHCPC_RETRIES=3
CONFIG_NETUTILS_DHCPC_BOOTP_FLAGS=0x0000
CONFIG_NETUTILS_DHCPC_RELEASE_RETRIES=3
CONFIG_NETUTILS_DHCPC_RELEASE_TRANSMISSION_DELAY_MS=10
CONFIG_NETUTILS_DHCPC_RELEASE_ENSURE_TRANSMISSION=y
CONFIG_NETUTILS_DISCOVER=y
CONFIG_DISCOVER_STACK_SIZE=1024
CONFIG_DISCOVER_PRIORITY=50
CONFIG_DISCOVER_PORT=96
CONFIG_DISCOVER_INTERFACE="eth0"
CONFIG_DISCOVER_DEVICE_CLASS=0xff
CONFIG_DISCOVER_DESCR="NuttX"
CONFIG_NETUTILS_IPERF=y
CONFIG_NETUTILS_IPERF_PROGNAME="iperf"
CONFIG_NETUTILS_IPERF_PRIORITY=100
CONFIG_NETUTILS_IPERF_STACKSIZE=4096
CONFIG_NETUTILS_IPERFTEST_DEVNAME="eth0"
CONFIG_NETUTILS_NETCAT=y
CONFIG_NETUTILS_NETCAT_PROGNAME="netcat"
CONFIG_NETUTILS_NETCAT_PRIORITY=100
CONFIG_NETUTILS_NETCAT_STACKSIZE=4096
CONFIG_NETUTILS_NETCAT_BUFSIZE=256
CONFIG_NETUTILS_NETINIT=y
CONFIG_NETINIT_IPADDR=0x0a000002
CONFIG_NETINIT_DRIPADDR=0x0a000001
CONFIG_NETINIT_NETMASK=0xffffff00
CONFIG_NETUTILS_NETLIB=y
CONFIG_NETUTILS_NETLIB_GENERICURLPARSER=y
CONFIG_NETUTILS_PING=y
CONFIG_NETUTILS_TELNETD=y
CONFIG_NETUTILS_WEBCLIENT=y
CONFIG_NSH_WGET_USERAGENT="NuttX/6.xx.x (; http://www.nuttx.org/)"
CONFIG_WEBCLIENT_TIMEOUT=10
CONFIG_WEBCLIENT_MAXHTTPLINE=200
CONFIG_WEBCLIENT_MAXMIMESIZE=32
CONFIG_WEBCLIENT_MAXHOSTNAME=40
CONFIG_WEBCLIENT_MAXFILENAME=100
CONFIG_NSH_LIBRARY=y
CONFIG_NSH_PROMPT_STRING="nsh> "
CONFIG_NSH_PROMPT_MAX=32
CONFIG_NSH_PROMPT_ENV="PS1"
CONFIG_NSH_PROMPT_SUFFIX="> "
CONFIG_NSH_READLINE=y
CONFIG_NSH_QUOTE=y
CONFIG_NSH_MAXARGUMENTS=12
CONFIG_NSH_ARGCAT=y
CONFIG_NSH_NESTDEPTH=3
CONFIG_NSH_ALIAS=y
CONFIG_NSH_ALIAS_MAX_AMOUNT=1
CONFIG_NSH_BUILTIN_APPS=y
CONFIG_NSH_DISABLE_IFUPDOWN=y
CONFIG_NSH_DISABLE_LOSMART=y
CONFIG_NSH_DISABLE_LOMTD=y
CONFIG_NSH_DISABLE_MB=y
CONFIG_NSH_DISABLE_MH=y
CONFIG_NSH_DISABLE_MW=y
CONFIG_NSH_DISABLE_SHUTDOWN=y
CONFIG_NSH_DISABLE_TIMEDATECTL=y
CONFIG_NSH_CODECS_BUFSIZE=128
CONFIG_NSH_CMDOPT_HEXDUMP=y
CONFIG_NSH_PROC_MOUNTPOINT="/proc"
CONFIG_NSH_FILEIOSIZE=512
CONFIG_NSH_SYSINITSCRIPT="init.d/rc.sysinit"
CONFIG_NSH_INITSCRIPT="init.d/rcS"
CONFIG_NSH_SCRIPT_REDIRECT_PATH=""
CONFIG_NSH_CONSOLE=y
CONFIG_NSH_ARCHINIT=y
CONFIG_NSH_NETINIT=y
CONFIG_NSH_WGET_BUFF_SIZE=512
CONFIG_NSH_TELNET=y
CONFIG_SYSTEM_ARGTABLE3=y
CONFIG_SYSTEM_ARGTABLE3_VERSION="3.2.0.7402e6e"
CONFIG_SYSTEM_CLE=y
CONFIG_SYSTEM_CLE_DEBUGLEVEL=0
CONFIG_SYSTEM_DD=y
CONFIG_SYSTEM_DD_PROGNAME="dd"
CONFIG_SYSTEM_DD_PRIORITY=100
CONFIG_SYSTEM_DD_STACKSIZE=4096
CONFIG_SYSTEM_DD_STATS=y
CONFIG_SYSTEM_DHCPC_RENEW=y
CONFIG_DHCPC_RENEW_PROGNAME="renew"
CONFIG_DHCPC_RENEW_PRIORITY=100
CONFIG_DHCPC_RENEW_STACKSIZE=2048
CONFIG_SYSTEM_NSH=y
CONFIG_SYSTEM_NSH_PRIORITY=100
CONFIG_SYSTEM_NSH_STACKSIZE=2048
CONFIG_SYSTEM_NSH_PROGNAME="nsh"
CONFIG_SYSTEM_PING=y
CONFIG_SYSTEM_PING_PROGNAME="ping"
CONFIG_SYSTEM_PING_PRIORITY=100
CONFIG_SYSTEM_PING_STACKSIZE=2048
CONFIG_SYSTEM_READLINE=y
CONFIG_READLINE_HAVE_EXTMATCH=y
CONFIG_READLINE_ECHO=y
CONFIG_READLINE_TABCOMPLETION=y
CONFIG_READLINE_MAX_BUILTINS=64
CONFIG_READLINE_MAX_EXTCMDS=64
CONFIG_READLINE_CMD_HISTORY=y
CONFIG_READLINE_CMD_HISTORY_LINELEN=80
CONFIG_READLINE_CMD_HISTORY_LEN=16
CONFIG_SYSTEM_TELNETD=y
CONFIG_SYSTEM_TELNETD_PROGNAME="telnetd"
CONFIG_SYSTEM_TELNETD_PRIORITY=100
CONFIG_SYSTEM_TELNETD_STACKSIZE=2048
CONFIG_SYSTEM_TELNETD_PORT=23
CONFIG_SYSTEM_TELNETD_SESSION_PRIORITY=100
CONFIG_SYSTEM_TELNETD_SESSION_STACKSIZE=2048
CONFIG_TESTING_FSTEST=y
CONFIG_TESTING_FSTEST_PROGNAME="fstest"
CONFIG_TESTING_FSTEST_PRIORITY=100
CONFIG_TESTING_FSTEST_STACKSIZE=2048
CONFIG_TESTING_FSTEST_MAXNAME=32
CONFIG_TESTING_FSTEST_MAXFILE=8192
CONFIG_TESTING_FSTEST_MAXIO=347
CONFIG_TESTING_FSTEST_MAXOPEN=512
CONFIG_TESTING_FSTEST_MOUNTPT=""
CONFIG_TESTING_FSTEST_NLOOPS=100
CONFIG_TESTING_OSTEST=y
CONFIG_TESTING_OSTEST_LOOPS=1
CONFIG_TESTING_OSTEST_STACKSIZE=8192
CONFIG_TESTING_OSTEST_NBARRIER_THREADS=8
CONFIG_TESTING_OSTEST_RR_RANGE=30000
CONFIG_TESTING_OSTEST_RR_RUNS=10
CONFIG_TESTING_OSTEST_FPULOOPS=16
CONFIG_TESTING_OSTEST_FPUMSDELAY=750
CONFIG_TESTING_OSTEST_FPUPRIORITY=100
CONFIG_TESTING_OSTEST_FPUSTACKSIZE=2048
CONFIG_TESTING_OSTEST_WAITRESULT=y
CONFIG_TESTING_OSTEST_SPINLOCK_THREADS=2
CONFIG_TEST_LOOP_SCALE=100
CONFIG_TESTING_GETPRIME=y
CONFIG_TESTING_GETPRIME_PROGNAME="getprime"
CONFIG_TESTING_GETPRIME_PRIORITY=50
CONFIG_TESTING_GETPRIME_STACKSIZE=2048
CONFIG_TESTING_GETPRIME_THREAD_PRIORITY=10
Host system OS:
Ubuntu 24.04.4 LTS Linux legion 6.17.0-14-generic #14~24.04.1-Ubuntu SMP PREEMPT_DYNAMIC Thu Jan 15 15:52:10 UTC 2 x86_64 x86_64
Host system PATH:
/home/peter/.local/bin
/home/peter/local/bin
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/bin
/usr/games
/usr/local/games
/snap/bin
/snap/bin
Verification
- I have verified before submitting the report.