From 2cb4ef0629d7890e64c632bf57b2086a237dc35c Mon Sep 17 00:00:00 2001 From: Daniel Agar Date: Sun, 20 Nov 2022 20:28:07 -0500 Subject: [PATCH] NuttX 10.3+ upgrade (#20190) Co-authored-by: Peter van der Perk Co-authored-by: David Sidrane Co-authored-by: alexklimaj --- .../mindpx-v2/nuttx-config/nsh/defconfig | 29 ++- boards/airmind/mindpx-v2/src/can.c | 2 +- boards/airmind/mindpx-v2/src/usb.c | 2 +- .../nuttx-config/canbootloader/defconfig | 23 +- .../ark/can-flow/nuttx-config/nsh/defconfig | 46 +++- boards/ark/can-flow/src/can.c | 2 +- .../nuttx-config/canbootloader/defconfig | 23 +- boards/ark/can-gps/nuttx-config/nsh/defconfig | 46 +++- boards/ark/can-gps/src/can.c | 2 +- .../nuttx-config/canbootloader/defconfig | 23 +- .../can-rtk-gps/nuttx-config/nsh/defconfig | 46 +++- boards/ark/can-rtk-gps/src/can.c | 2 +- .../nuttx-config/canbootloader/defconfig | 23 +- boards/ark/cannode/nuttx-config/nsh/defconfig | 46 +++- boards/ark/cannode/src/can.c | 2 +- .../fmu-v6x/extras/ark_fmu-v6x_bootloader.bin | Bin 45172 -> 45508 bytes .../ark/fmu-v6x/extras/px4_io-v2_default.bin | Bin 39924 -> 40140 bytes .../fmu-v6x/nuttx-config/bootloader/defconfig | 27 +- boards/ark/fmu-v6x/nuttx-config/nsh/defconfig | 44 +++- boards/ark/fmu-v6x/src/board_config.h | 4 +- boards/ark/fmu-v6x/src/can.c | 2 +- boards/ark/fmu-v6x/src/usb.c | 2 +- .../atl/mantis-edu/nuttx-config/nsh/defconfig | 29 ++- boards/atl/mantis-edu/src/pwr.cpp | 2 +- boards/av/x-v1/nuttx-config/nsh/defconfig | 29 ++- boards/av/x-v1/src/board_config.h | 2 +- .../crazyflie/nuttx-config/nsh/defconfig | 29 ++- boards/bitcraze/crazyflie/src/spi.cpp | 2 +- boards/bitcraze/crazyflie/src/usb.c | 2 +- .../crazyflie21/nuttx-config/nsh/defconfig | 29 ++- boards/bitcraze/crazyflie21/src/spi.cpp | 2 +- boards/bitcraze/crazyflie21/src/usb.c | 2 +- .../nuttx-config/canbootloader/defconfig | 23 +- .../can-gps-v1/nuttx-config/nsh/defconfig | 39 ++- boards/cuav/can-gps-v1/src/can.c | 2 +- .../cuav/nora/extras/cuav_nora_bootloader.bin | Bin 42908 -> 43248 bytes .../nora/nuttx-config/bootloader/defconfig | 26 +- boards/cuav/nora/nuttx-config/nsh/defconfig | 42 ++- .../x7pro/extras/cuav_x7pro_bootloader.bin | Bin 42908 -> 43248 bytes .../x7pro/nuttx-config/bootloader/defconfig | 27 +- boards/cuav/x7pro/nuttx-config/nsh/defconfig | 42 ++- boards/cuav/x7pro/nuttx-config/test/defconfig | 42 ++- .../cubepilot_cubeorange_bootloader.bin | Bin 42836 -> 43176 bytes .../extras/cubepilot_io-v2_default.bin | Bin 39704 -> 39920 bytes .../nuttx-config/bootloader/defconfig | 27 +- .../cubeorange/nuttx-config/nsh/defconfig | 42 ++- .../cubeorange/nuttx-config/test/defconfig | 43 ++- .../extras/cubepilot_io-v2_default.bin | Bin 39704 -> 39920 bytes .../cubeyellow/nuttx-config/nsh/defconfig | 43 ++- .../io-v2/nuttx-config/nsh/defconfig | 8 +- .../mamba-f405-mk2/nuttx-config/nsh/defconfig | 9 +- boards/diatone/mamba-f405-mk2/src/usb.c | 2 +- .../nuttx-config/canbootloader/defconfig | 23 +- .../can-rtk-gps/nuttx-config/nsh/defconfig | 32 ++- boards/freefly/can-rtk-gps/src/can.c | 2 +- boards/freefly/can-rtk-gps/src/usb.c | 2 +- .../nuttx-config/canbootloader/defconfig | 23 +- .../can-gps-v1/nuttx-config/nsh/defconfig | 29 ++- boards/holybro/can-gps-v1/src/can.c | 2 +- boards/holybro/can-gps-v1/src/usb.c | 2 +- .../extras/holybro_durandal-v1_bootloader.bin | Bin 42928 -> 43260 bytes .../durandal-v1/extras/px4_io-v2_default.bin | Bin 39924 -> 40140 bytes .../nuttx-config/bootloader/defconfig | 27 +- .../durandal-v1/nuttx-config/nsh/defconfig | 29 ++- boards/holybro/durandal-v1/src/board_config.h | 2 +- boards/holybro/durandal-v1/src/can.c | 2 +- boards/holybro/durandal-v1/src/usb.c | 2 +- .../kakutef7/nuttx-config/nsh/defconfig | 29 ++- boards/holybro/kakutef7/src/usb.c | 2 +- .../extras/holybro_kakuteh7_bootloader.bin | Bin 41156 -> 41868 bytes .../nuttx-config/bootloader/defconfig | 27 +- .../kakuteh7/nuttx-config/nsh/defconfig | 29 ++- boards/holybro/kakuteh7/src/board_config.h | 2 +- boards/holybro/kakuteh7/src/usb.c | 2 +- .../pix32v5/extras/px4_io-v2_default.bin | Bin 39924 -> 40140 bytes .../pix32v5/nuttx-config/nsh/defconfig | 29 ++- boards/holybro/pix32v5/src/board_config.h | 2 +- boards/holybro/pix32v5/src/can.c | 2 +- boards/holybro/pix32v5/src/usb.c | 2 +- .../nuttx-config/canbootloader/defconfig | 23 +- .../gnss-m9n-f4/nuttx-config/nsh/defconfig | 29 ++- boards/matek/gnss-m9n-f4/src/can.c | 2 +- boards/matek/gnss-m9n-f4/src/usb.c | 2 +- .../extras/matek_h743-mini_bootloader.bin | Bin 42308 -> 42640 bytes .../nuttx-config/bootloader/defconfig | 27 +- .../h743-mini/nuttx-config/nsh/defconfig | 29 ++- .../extras/matek_h743-slim_bootloader.bin | Bin 42896 -> 43224 bytes .../nuttx-config/bootloader/defconfig | 27 +- .../h743-slim/nuttx-config/nsh/defconfig | 29 ++- .../h743/extras/matek_h743_bootloader.bin | Bin 42308 -> 42640 bytes .../h743/nuttx-config/bootloader/defconfig | 27 +- boards/matek/h743/nuttx-config/nsh/defconfig | 29 ++- .../modalai/fc-v1/nuttx-config/nsh/defconfig | 29 ++- boards/modalai/fc-v1/src/board_config.h | 2 +- boards/modalai/fc-v1/src/can.c | 2 +- boards/modalai/fc-v1/src/usb.c | 2 +- .../fc-v2/extras/modalai_fc-v2_bootloader.bin | Bin 42924 -> 43252 bytes .../fc-v2/nuttx-config/bootloader/defconfig | 27 +- .../modalai/fc-v2/nuttx-config/nsh/defconfig | 29 ++- boards/modalai/fc-v2/src/board_config.h | 2 +- boards/modalai/fc-v2/src/can.c | 2 +- boards/modalai/fc-v2/src/usb.c | 2 +- .../mro_ctrl-zero-classic_bootloader.bin | Bin 42864 -> 43204 bytes .../nuttx-config/bootloader/defconfig | 27 +- .../nuttx-config/nsh/defconfig | 29 ++- boards/mro/ctrl-zero-classic/src/usb.c | 2 +- .../nuttx-config/nsh/defconfig | 29 ++- boards/mro/ctrl-zero-f7-oem/src/usb.c | 2 +- .../ctrl-zero-f7/nuttx-config/nsh/defconfig | 29 ++- boards/mro/ctrl-zero-f7/src/usb.c | 2 +- .../mro_ctrl-zero-h7-oem_bootloader.bin | Bin 42864 -> 43200 bytes .../nuttx-config/bootloader/defconfig | 27 +- .../nuttx-config/nsh/defconfig | 29 ++- boards/mro/ctrl-zero-h7-oem/src/usb.c | 2 +- .../extras/mro_ctrl-zero-h7_bootloader.bin | Bin 42844 -> 43180 bytes .../nuttx-config/bootloader/defconfig | 27 +- .../ctrl-zero-h7/nuttx-config/nsh/defconfig | 29 ++- boards/mro/ctrl-zero-h7/src/usb.c | 2 +- .../extras/mro_pixracerpro_bootloader.bin | Bin 42844 -> 43180 bytes .../nuttx-config/bootloader/defconfig | 27 +- .../pixracerpro/nuttx-config/nsh/defconfig | 29 ++- .../mro/x21-777/extras/px4_io-v2_default.bin | Bin 39924 -> 40140 bytes boards/mro/x21-777/nuttx-config/nsh/defconfig | 29 ++- boards/mro/x21-777/src/usb.c | 2 +- boards/mro/x21/extras/px4_io-v2_default.bin | Bin 39924 -> 40140 bytes boards/mro/x21/nuttx-config/nsh/defconfig | 29 ++- boards/mro/x21/src/can.c | 2 +- boards/mro/x21/src/usb.c | 2 +- .../nxp/fmuk66-e/nuttx-config/nsh/defconfig | 16 +- .../fmuk66-e/nuttx-config/socketcan/defconfig | 12 +- boards/nxp/fmuk66-e/src/can.c | 2 +- boards/nxp/fmuk66-e/src/init.c | 2 +- boards/nxp/fmuk66-e/src/spi.cpp | 2 +- boards/nxp/fmuk66-e/src/usb.c | 2 +- .../nxp/fmuk66-v3/nuttx-config/nsh/defconfig | 17 +- .../nuttx-config/socketcan/defconfig | 12 +- .../nxp/fmuk66-v3/nuttx-config/test/defconfig | 12 +- boards/nxp/fmuk66-v3/src/init.c | 2 +- boards/nxp/fmuk66-v3/src/spi.cpp | 2 +- boards/nxp/fmuk66-v3/src/usb.c | 2 +- .../fmurt1062-v1/nuttx-config/nsh/defconfig | 13 +- boards/nxp/fmurt1062-v1/src/board_config.h | 2 +- boards/nxp/fmurt1062-v1/src/can.c | 2 +- boards/nxp/fmurt1062-v1/src/init.c | 2 +- boards/nxp/fmurt1062-v1/src/spi.cpp | 2 +- boards/nxp/fmurt1062-v1/src/usb.c | 2 +- .../nuttx-config/canbootloader/defconfig | 23 +- .../ucans32k146/nuttx-config/nsh/defconfig | 11 +- boards/nxp/ucans32k146/src/autoleds.c | 2 +- boards/nxp/ucans32k146/src/board_config.h | 2 +- boards/nxp/ucans32k146/src/bringup.c | 2 +- boards/nxp/ucans32k146/src/spi.c | 2 +- boards/nxp/ucans32k146/src/spi.cpp | 2 +- boards/nxp/ucans32k146/src/userleds.c | 2 +- .../omnibus/f4sd/nuttx-config/nsh/defconfig | 9 +- boards/omnibus/f4sd/src/usb.c | 2 +- .../px4/fmu-v2/extras/px4_io-v2_default.bin | Bin 39924 -> 40140 bytes boards/px4/fmu-v2/nuttx-config/nsh/defconfig | 42 ++- boards/px4/fmu-v2/src/can.c | 2 +- boards/px4/fmu-v2/src/usb.c | 2 +- .../px4/fmu-v3/extras/px4_io-v2_default.bin | Bin 39924 -> 40140 bytes boards/px4/fmu-v3/nuttx-config/nsh/defconfig | 40 ++- boards/px4/fmu-v3/nuttx-config/test/defconfig | 43 ++- boards/px4/fmu-v3/src/can.c | 2 +- boards/px4/fmu-v3/src/usb.c | 2 +- boards/px4/fmu-v4/nuttx-config/nsh/defconfig | 41 ++- boards/px4/fmu-v4/nuttx-config/test/defconfig | 43 ++- boards/px4/fmu-v4/src/can.c | 2 +- boards/px4/fmu-v4/src/usb.c | 2 +- .../fmu-v4pro/extras/px4_io-v2_default.bin | Bin 39924 -> 40140 bytes .../px4/fmu-v4pro/nuttx-config/nsh/defconfig | 42 ++- .../px4/fmu-v4pro/nuttx-config/test/defconfig | 43 ++- boards/px4/fmu-v4pro/src/can.c | 2 +- boards/px4/fmu-v4pro/src/usb.c | 2 +- .../px4/fmu-v5/extras/px4_io-v2_default.bin | Bin 39924 -> 40140 bytes .../fmu-v5/nuttx-config/cryptotest/defconfig | 43 ++- .../px4/fmu-v5/nuttx-config/cyphal/defconfig | 43 ++- .../px4/fmu-v5/nuttx-config/debug/defconfig | 44 +++- .../px4/fmu-v5/nuttx-config/mbedtls/defconfig | 244 ++++++++++++++++++ boards/px4/fmu-v5/nuttx-config/nsh/defconfig | 43 ++- .../fmu-v5/nuttx-config/protected/defconfig | 46 +++- .../fmu-v5/nuttx-config/stackcheck/defconfig | 45 +++- boards/px4/fmu-v5/nuttx-config/test/defconfig | 43 ++- boards/px4/fmu-v5/src/board_config.h | 2 +- boards/px4/fmu-v5/src/can.c | 2 +- boards/px4/fmu-v5/src/stm32_userspace.c | 6 +- boards/px4/fmu-v5/src/usb.c | 2 +- .../px4/fmu-v5x/extras/px4_io-v2_default.bin | Bin 39924 -> 40140 bytes boards/px4/fmu-v5x/nuttx-config/nsh/defconfig | 44 +++- .../px4/fmu-v5x/nuttx-config/test/defconfig | 44 +++- boards/px4/fmu-v5x/src/board_config.h | 2 +- boards/px4/fmu-v5x/src/can.c | 2 +- boards/px4/fmu-v5x/src/usb.c | 2 +- .../fmu-v6c/extras/px4_fmu-v6c_bootloader.bin | Bin 45684 -> 46040 bytes .../px4/fmu-v6c/extras/px4_io-v2_default.bin | Bin 39924 -> 40140 bytes .../fmu-v6c/nuttx-config/bootloader/defconfig | 27 +- boards/px4/fmu-v6c/nuttx-config/nsh/defconfig | 42 ++- boards/px4/fmu-v6c/src/board_config.h | 2 +- boards/px4/fmu-v6c/src/can.c | 2 +- boards/px4/fmu-v6c/src/usb.c | 2 +- .../fmu-v6u/extras/px4_fmu-v6u_bootloader.bin | Bin 42904 -> 43232 bytes .../fmu-v6u/nuttx-config/bootloader/defconfig | 27 +- boards/px4/fmu-v6u/nuttx-config/nsh/defconfig | 42 ++- boards/px4/fmu-v6u/src/board_config.h | 2 +- boards/px4/fmu-v6u/src/can.c | 2 +- boards/px4/fmu-v6u/src/usb.c | 2 +- .../fmu-v6x/extras/px4_fmu-v6x_bootloader.bin | Bin 45764 -> 46120 bytes .../px4/fmu-v6x/extras/px4_io-v2_default.bin | Bin 39924 -> 40140 bytes .../fmu-v6x/nuttx-config/bootloader/defconfig | 27 +- boards/px4/fmu-v6x/nuttx-config/nsh/defconfig | 45 +++- boards/px4/fmu-v6x/src/board_config.h | 2 +- boards/px4/fmu-v6x/src/can.c | 2 +- boards/px4/fmu-v6x/src/usb.c | 2 +- boards/px4/io-v2/nuttx-config/nsh/defconfig | 23 +- .../pico/nuttx-config/nsh/defconfig | 9 +- boards/raspberrypi/pico/src/usb.c | 2 +- .../nuttx-config/nsh/defconfig | 29 ++- .../smartap-airlink/src/board_config.h | 2 +- boards/sky-drones/smartap-airlink/src/can.c | 2 +- boards/sky-drones/smartap-airlink/src/usb.c | 2 +- .../h7extreme/nuttx-config/nsh/defconfig | 29 ++- boards/spracing/h7extreme/src/qspi.c | 5 +- boards/spracing/h7extreme/src/usb.c | 2 +- boards/uvify/core/nuttx-config/nsh/defconfig | 29 ++- boards/uvify/core/src/can.c | 2 +- boards/uvify/core/src/usb.c | 2 +- platforms/common/shutdown.cpp | 2 +- platforms/common/uORB/CMakeLists.txt | 12 +- platforms/nuttx/NuttX/Make.defs.in | 1 - platforms/nuttx/NuttX/apps | 2 +- platforms/nuttx/NuttX/nuttx | 2 +- .../src/bootloader/stm/stm32_common/systick.c | 2 +- .../nuttx/src/px4/common/cdc_acm_check.cpp | 2 +- .../nuttx/src/px4/common/px4_24xxxx_mtd.c | 1 - .../nxp/imxrt/board_critmon/board_critmon.c | 2 +- .../px4/nxp/imxrt/board_reset/board_reset.cpp | 2 +- .../px4/nxp/imxrt/version/board_identity.c | 2 +- .../px4/nxp/imxrt/version/board_mcu_version.c | 2 +- .../nxp/kinetis/version/board_mcu_version.c | 2 +- .../nxp/s32k1xx/version/board_mcu_version.c | 2 +- .../nuttx/src/px4/nxp/s32k1xx/watchdog/iwdg.c | 1 - .../nuttx/src/px4/rpi/rpi_common/spi/spi.cpp | 2 +- .../board_critmon/board_critmon.c | 2 +- .../src/px4/stm/stm32_common/spi/spi.cpp | 2 +- .../nuttx/src/px4/stm/stm32f7/watchdog/iwdg.c | 2 +- src/drivers/bootloaders/boot_app_shared.c | 12 +- .../kinetis/driver/src/internal.hpp | 2 +- src/drivers/uavcan/uavcan_servers.cpp | 4 +- src/modules/px4iofirmware/serial.cpp | 2 +- 249 files changed, 2850 insertions(+), 632 deletions(-) create mode 100644 boards/px4/fmu-v5/nuttx-config/mbedtls/defconfig diff --git a/boards/airmind/mindpx-v2/nuttx-config/nsh/defconfig b/boards/airmind/mindpx-v2/nuttx-config/nsh/defconfig index 9f7d02d481..0cf098ff84 100644 --- a/boards/airmind/mindpx-v2/nuttx-config/nsh/defconfig +++ b/boards/airmind/mindpx-v2/nuttx-config/nsh/defconfig @@ -7,6 +7,7 @@ # # CONFIG_DISABLE_ENVIRON is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_MMCSD_HAVE_CARDDETECT is not set # CONFIG_MMCSD_HAVE_WRITEPROTECT is not set # CONFIG_MMCSD_MMCSUPPORT is not set @@ -36,9 +37,11 @@ CONFIG_ARCH_STACKDUMP=y CONFIG_ARMV7M_MEMCPY=y CONFIG_ARMV7M_USEBASEPRI=y CONFIG_BOARDCTL_RESET=y +CONFIG_BOARDCTL=y CONFIG_BOARD_CRASHDUMP=y CONFIG_BOARD_LOOPSPERMSEC=16717 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y CONFIG_C99_BOOL8=y CONFIG_CDCACM=y @@ -54,6 +57,25 @@ CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_HARDFAULT_ALERT=y CONFIG_DEBUG_SYMBOLS=y CONFIG_DEFAULT_SMALL=y +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set +# CONFIG_NSH_DISABLE_FREE is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_KILL is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MODCMDS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PRINTF is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_DEV_FIFO_SIZE=0 CONFIG_DEV_PIPE_MAXSIZE=1024 CONFIG_DEV_PIPE_SIZE=70 @@ -118,12 +140,13 @@ CONFIG_RAM_SIZE=262144 CONFIG_RAM_START=0x20000000 CONFIG_RAW_BINARY=y CONFIG_RTC_DATETIME=y -CONFIG_SCHED_ATEXIT=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 @@ -226,5 +249,5 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2944 +CONFIG_INIT_ENTRYPOINT="nsh_main" diff --git a/boards/airmind/mindpx-v2/src/can.c b/boards/airmind/mindpx-v2/src/can.c index 9d07cf7a35..b826cf001e 100644 --- a/boards/airmind/mindpx-v2/src/can.c +++ b/boards/airmind/mindpx-v2/src/can.c @@ -50,7 +50,7 @@ #include #include "chip.h" -#include "arm_arch.h" +#include "arm_internal.h" #include "stm32.h" #include "stm32_can.h" diff --git a/boards/airmind/mindpx-v2/src/usb.c b/boards/airmind/mindpx-v2/src/usb.c index 1f942b04af..93a008cf0f 100644 --- a/boards/airmind/mindpx-v2/src/usb.c +++ b/boards/airmind/mindpx-v2/src/usb.c @@ -51,7 +51,7 @@ #include #include -#include +#include #include #include "board_config.h" diff --git a/boards/ark/can-flow/nuttx-config/canbootloader/defconfig b/boards/ark/can-flow/nuttx-config/canbootloader/defconfig index 75230422cf..8f5aa48325 100644 --- a/boards/ark/can-flow/nuttx-config/canbootloader/defconfig +++ b/boards/ark/can-flow/nuttx-config/canbootloader/defconfig @@ -23,6 +23,25 @@ CONFIG_CLOCK_MONOTONIC=y CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_SYMBOLS=y CONFIG_DEFAULT_SMALL=y +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set +# CONFIG_NSH_DISABLE_FREE is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_KILL is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MODCMDS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PRINTF is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_DISABLE_MOUNTPOINT=y CONFIG_DISABLE_MQUEUE=y CONFIG_DISABLE_PTHREAD=y @@ -35,7 +54,7 @@ CONFIG_IDLETHREAD_STACKSIZE=4096 CONFIG_LIBC_FLOATINGPOINT=y CONFIG_LIBC_LONG_LONG=y CONFIG_LIBC_STRERROR=y -CONFIG_LIB_BOARDCTL=y +CONFIG_BOARDCTL=y CONFIG_FS_PROCFS_MAX_TASKS=0 CONFIG_MM_REGIONS=2 CONFIG_NAME_MAX=0 @@ -58,4 +77,4 @@ CONFIG_STM32_NOEXT_VECTORS=y CONFIG_STM32_TIM8=y CONFIG_TASK_NAME_SIZE=0 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=4096 +CONFIG_INIT_STACKSIZE=4096 diff --git a/boards/ark/can-flow/nuttx-config/nsh/defconfig b/boards/ark/can-flow/nuttx-config/nsh/defconfig index 7c8691089f..136d3dc0d6 100644 --- a/boards/ark/can-flow/nuttx-config/nsh/defconfig +++ b/boards/ark/can-flow/nuttx-config/nsh/defconfig @@ -5,20 +5,51 @@ # You can then do "make savedefconfig" to generate a new defconfig file that includes your # modifications. # -# CONFIG_DISABLE_OS_API is not set +# CONFIG_DISABLE_ENVIRON is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set +# CONFIG_MMCSD_HAVE_CARDDETECT is not set +# CONFIG_MMCSD_HAVE_WRITEPROTECT is not set +# CONFIG_MMCSD_MMCSUPPORT is not set +# CONFIG_MMCSD_SPI is not set # CONFIG_NSH_DISABLEBG is not set # CONFIG_NSH_DISABLESCRIPT is not set +# CONFIG_NSH_DISABLE_ARP is not set +# CONFIG_NSH_DISABLE_CAT is not set +# CONFIG_NSH_DISABLE_CD is not set +# CONFIG_NSH_DISABLE_CP is not set +# CONFIG_NSH_DISABLE_DATE is not set # CONFIG_NSH_DISABLE_DF is not set +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set # CONFIG_NSH_DISABLE_EXEC is not set -# CONFIG_NSH_DISABLE_EXIT is not set +# CONFIG_NSH_DISABLE_EXPORT is not set +# CONFIG_NSH_DISABLE_FREE is not set # CONFIG_NSH_DISABLE_GET is not set +# CONFIG_NSH_DISABLE_HELP is not set # CONFIG_NSH_DISABLE_ITEF is not set +# CONFIG_NSH_DISABLE_KILL is not set # CONFIG_NSH_DISABLE_LOOPS is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set # CONFIG_NSH_DISABLE_MKFATFS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_NSLOOKUP is not set +# CONFIG_NSH_DISABLE_PS is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE is not set +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_RM is not set +# CONFIG_NSH_DISABLE_RMDIR is not set # CONFIG_NSH_DISABLE_SEMICOLON is not set +# CONFIG_NSH_DISABLE_SET is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_TEST is not set # CONFIG_NSH_DISABLE_TIME is not set -# CONFIG_STM32_DMACAPABLE is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_ARCH="arm" CONFIG_ARCH_BOARD_CUSTOM=y CONFIG_ARCH_BOARD_CUSTOM_DIR="../../../../boards/ark/can-flow/nuttx-config" @@ -32,8 +63,10 @@ CONFIG_ARCH_STACKDUMP=y CONFIG_ARMV7M_MEMCPY=y CONFIG_ARMV7M_USEBASEPRI=y CONFIG_BOARDCTL_RESET=y +CONFIG_BOARDCTL=y CONFIG_BOARD_LOOPSPERMSEC=16717 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y CONFIG_C99_BOOL8=y CONFIG_CLOCK_MONOTONIC=y @@ -95,12 +128,13 @@ CONFIG_RAM_SIZE=262144 CONFIG_RAM_START=0x20000000 CONFIG_RAW_BINARY=y CONFIG_RTC_DATETIME=y -CONFIG_SCHED_ATEXIT=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=254 CONFIG_SCHED_HPWORKSTACKSIZE=3000 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 @@ -149,5 +183,5 @@ CONFIG_USART2_RXBUFSIZE=600 CONFIG_USART2_SERIAL_CONSOLE=y CONFIG_USART2_TXBUFSIZE=1100 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2624 -CONFIG_USER_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2624 +CONFIG_INIT_ENTRYPOINT="nsh_main" diff --git a/boards/ark/can-flow/src/can.c b/boards/ark/can-flow/src/can.c index acc20252fa..7737965dc6 100644 --- a/boards/ark/can-flow/src/can.c +++ b/boards/ark/can-flow/src/can.c @@ -50,7 +50,7 @@ #include #include "chip.h" -#include "arm_arch.h" +#include "arm_internal.h" #include "stm32.h" #include "stm32_can.h" diff --git a/boards/ark/can-gps/nuttx-config/canbootloader/defconfig b/boards/ark/can-gps/nuttx-config/canbootloader/defconfig index 8d495caa8d..19d7bf42b2 100644 --- a/boards/ark/can-gps/nuttx-config/canbootloader/defconfig +++ b/boards/ark/can-gps/nuttx-config/canbootloader/defconfig @@ -23,6 +23,25 @@ CONFIG_CLOCK_MONOTONIC=y CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_SYMBOLS=y CONFIG_DEFAULT_SMALL=y +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set +# CONFIG_NSH_DISABLE_FREE is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_KILL is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MODCMDS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PRINTF is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_DISABLE_MOUNTPOINT=y CONFIG_DISABLE_MQUEUE=y CONFIG_DISABLE_PTHREAD=y @@ -35,7 +54,7 @@ CONFIG_IDLETHREAD_STACKSIZE=4096 CONFIG_LIBC_FLOATINGPOINT=y CONFIG_LIBC_LONG_LONG=y CONFIG_LIBC_STRERROR=y -CONFIG_LIB_BOARDCTL=y +CONFIG_BOARDCTL=y CONFIG_FS_PROCFS_MAX_TASKS=0 CONFIG_MM_REGIONS=2 CONFIG_NAME_MAX=0 @@ -58,4 +77,4 @@ CONFIG_STM32_NOEXT_VECTORS=y CONFIG_STM32_TIM8=y CONFIG_TASK_NAME_SIZE=0 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=4096 +CONFIG_INIT_STACKSIZE=4096 diff --git a/boards/ark/can-gps/nuttx-config/nsh/defconfig b/boards/ark/can-gps/nuttx-config/nsh/defconfig index c305c085f4..497414a0a4 100644 --- a/boards/ark/can-gps/nuttx-config/nsh/defconfig +++ b/boards/ark/can-gps/nuttx-config/nsh/defconfig @@ -5,20 +5,51 @@ # You can then do "make savedefconfig" to generate a new defconfig file that includes your # modifications. # -# CONFIG_DISABLE_OS_API is not set +# CONFIG_DISABLE_ENVIRON is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set +# CONFIG_MMCSD_HAVE_CARDDETECT is not set +# CONFIG_MMCSD_HAVE_WRITEPROTECT is not set +# CONFIG_MMCSD_MMCSUPPORT is not set +# CONFIG_MMCSD_SPI is not set # CONFIG_NSH_DISABLEBG is not set # CONFIG_NSH_DISABLESCRIPT is not set +# CONFIG_NSH_DISABLE_ARP is not set +# CONFIG_NSH_DISABLE_CAT is not set +# CONFIG_NSH_DISABLE_CD is not set +# CONFIG_NSH_DISABLE_CP is not set +# CONFIG_NSH_DISABLE_DATE is not set # CONFIG_NSH_DISABLE_DF is not set +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set # CONFIG_NSH_DISABLE_EXEC is not set -# CONFIG_NSH_DISABLE_EXIT is not set +# CONFIG_NSH_DISABLE_EXPORT is not set +# CONFIG_NSH_DISABLE_FREE is not set # CONFIG_NSH_DISABLE_GET is not set +# CONFIG_NSH_DISABLE_HELP is not set # CONFIG_NSH_DISABLE_ITEF is not set +# CONFIG_NSH_DISABLE_KILL is not set # CONFIG_NSH_DISABLE_LOOPS is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set # CONFIG_NSH_DISABLE_MKFATFS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_NSLOOKUP is not set +# CONFIG_NSH_DISABLE_PS is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE is not set +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_RM is not set +# CONFIG_NSH_DISABLE_RMDIR is not set # CONFIG_NSH_DISABLE_SEMICOLON is not set +# CONFIG_NSH_DISABLE_SET is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_TEST is not set # CONFIG_NSH_DISABLE_TIME is not set -# CONFIG_STM32_DMACAPABLE is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_ARCH="arm" CONFIG_ARCH_BOARD_CUSTOM=y CONFIG_ARCH_BOARD_CUSTOM_DIR="../../../../boards/ark/can-gps/nuttx-config" @@ -32,8 +63,10 @@ CONFIG_ARCH_STACKDUMP=y CONFIG_ARMV7M_MEMCPY=y CONFIG_ARMV7M_USEBASEPRI=y CONFIG_BOARDCTL_RESET=y +CONFIG_BOARDCTL=y CONFIG_BOARD_LOOPSPERMSEC=16717 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y CONFIG_C99_BOOL8=y CONFIG_CLOCK_MONOTONIC=y @@ -97,12 +130,13 @@ CONFIG_RAM_SIZE=262144 CONFIG_RAM_START=0x20000000 CONFIG_RAW_BINARY=y CONFIG_RTC_DATETIME=y -CONFIG_SCHED_ATEXIT=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 @@ -154,5 +188,5 @@ CONFIG_USART2_RXBUFSIZE=600 CONFIG_USART2_SERIAL_CONSOLE=y CONFIG_USART2_TXBUFSIZE=1100 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2624 -CONFIG_USER_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2624 +CONFIG_INIT_ENTRYPOINT="nsh_main" diff --git a/boards/ark/can-gps/src/can.c b/boards/ark/can-gps/src/can.c index acc20252fa..7737965dc6 100644 --- a/boards/ark/can-gps/src/can.c +++ b/boards/ark/can-gps/src/can.c @@ -50,7 +50,7 @@ #include #include "chip.h" -#include "arm_arch.h" +#include "arm_internal.h" #include "stm32.h" #include "stm32_can.h" diff --git a/boards/ark/can-rtk-gps/nuttx-config/canbootloader/defconfig b/boards/ark/can-rtk-gps/nuttx-config/canbootloader/defconfig index 1ce0048f92..b746c94fba 100644 --- a/boards/ark/can-rtk-gps/nuttx-config/canbootloader/defconfig +++ b/boards/ark/can-rtk-gps/nuttx-config/canbootloader/defconfig @@ -23,6 +23,25 @@ CONFIG_CLOCK_MONOTONIC=y CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_SYMBOLS=y CONFIG_DEFAULT_SMALL=y +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set +# CONFIG_NSH_DISABLE_FREE is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_KILL is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MODCMDS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PRINTF is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_DISABLE_MOUNTPOINT=y CONFIG_DISABLE_MQUEUE=y CONFIG_DISABLE_PTHREAD=y @@ -35,7 +54,7 @@ CONFIG_IDLETHREAD_STACKSIZE=4096 CONFIG_LIBC_FLOATINGPOINT=y CONFIG_LIBC_LONG_LONG=y CONFIG_LIBC_STRERROR=y -CONFIG_LIB_BOARDCTL=y +CONFIG_BOARDCTL=y CONFIG_FS_PROCFS_MAX_TASKS=0 CONFIG_MM_REGIONS=2 CONFIG_NAME_MAX=0 @@ -58,4 +77,4 @@ CONFIG_STM32_NOEXT_VECTORS=y CONFIG_STM32_TIM8=y CONFIG_TASK_NAME_SIZE=0 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=4096 +CONFIG_INIT_STACKSIZE=4096 diff --git a/boards/ark/can-rtk-gps/nuttx-config/nsh/defconfig b/boards/ark/can-rtk-gps/nuttx-config/nsh/defconfig index b669e96463..1ad303e01f 100644 --- a/boards/ark/can-rtk-gps/nuttx-config/nsh/defconfig +++ b/boards/ark/can-rtk-gps/nuttx-config/nsh/defconfig @@ -5,20 +5,51 @@ # You can then do "make savedefconfig" to generate a new defconfig file that includes your # modifications. # -# CONFIG_DISABLE_OS_API is not set +# CONFIG_DISABLE_ENVIRON is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set +# CONFIG_MMCSD_HAVE_CARDDETECT is not set +# CONFIG_MMCSD_HAVE_WRITEPROTECT is not set +# CONFIG_MMCSD_MMCSUPPORT is not set +# CONFIG_MMCSD_SPI is not set # CONFIG_NSH_DISABLEBG is not set # CONFIG_NSH_DISABLESCRIPT is not set +# CONFIG_NSH_DISABLE_ARP is not set +# CONFIG_NSH_DISABLE_CAT is not set +# CONFIG_NSH_DISABLE_CD is not set +# CONFIG_NSH_DISABLE_CP is not set +# CONFIG_NSH_DISABLE_DATE is not set # CONFIG_NSH_DISABLE_DF is not set +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set # CONFIG_NSH_DISABLE_EXEC is not set -# CONFIG_NSH_DISABLE_EXIT is not set +# CONFIG_NSH_DISABLE_EXPORT is not set +# CONFIG_NSH_DISABLE_FREE is not set # CONFIG_NSH_DISABLE_GET is not set +# CONFIG_NSH_DISABLE_HELP is not set # CONFIG_NSH_DISABLE_ITEF is not set +# CONFIG_NSH_DISABLE_KILL is not set # CONFIG_NSH_DISABLE_LOOPS is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set # CONFIG_NSH_DISABLE_MKFATFS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_NSLOOKUP is not set +# CONFIG_NSH_DISABLE_PS is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE is not set +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_RM is not set +# CONFIG_NSH_DISABLE_RMDIR is not set # CONFIG_NSH_DISABLE_SEMICOLON is not set +# CONFIG_NSH_DISABLE_SET is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_TEST is not set # CONFIG_NSH_DISABLE_TIME is not set -# CONFIG_STM32_DMACAPABLE is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_ARCH="arm" CONFIG_ARCH_BOARD_CUSTOM=y CONFIG_ARCH_BOARD_CUSTOM_DIR="../../../../boards/ark/can-rtk-gps/nuttx-config" @@ -32,8 +63,10 @@ CONFIG_ARCH_STACKDUMP=y CONFIG_ARMV7M_MEMCPY=y CONFIG_ARMV7M_USEBASEPRI=y CONFIG_BOARDCTL_RESET=y +CONFIG_BOARDCTL=y CONFIG_BOARD_LOOPSPERMSEC=16717 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y CONFIG_C99_BOOL8=y CONFIG_CLOCK_MONOTONIC=y @@ -97,12 +130,13 @@ CONFIG_RAM_SIZE=262144 CONFIG_RAM_START=0x20000000 CONFIG_RAW_BINARY=y CONFIG_RTC_DATETIME=y -CONFIG_SCHED_ATEXIT=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 @@ -155,5 +189,5 @@ CONFIG_USART2_RXBUFSIZE=600 CONFIG_USART2_SERIAL_CONSOLE=y CONFIG_USART2_TXBUFSIZE=1100 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2624 -CONFIG_USER_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2624 +CONFIG_INIT_ENTRYPOINT="nsh_main" diff --git a/boards/ark/can-rtk-gps/src/can.c b/boards/ark/can-rtk-gps/src/can.c index acc20252fa..7737965dc6 100644 --- a/boards/ark/can-rtk-gps/src/can.c +++ b/boards/ark/can-rtk-gps/src/can.c @@ -50,7 +50,7 @@ #include #include "chip.h" -#include "arm_arch.h" +#include "arm_internal.h" #include "stm32.h" #include "stm32_can.h" diff --git a/boards/ark/cannode/nuttx-config/canbootloader/defconfig b/boards/ark/cannode/nuttx-config/canbootloader/defconfig index 2e99504e20..0fb0924f6d 100644 --- a/boards/ark/cannode/nuttx-config/canbootloader/defconfig +++ b/boards/ark/cannode/nuttx-config/canbootloader/defconfig @@ -23,6 +23,25 @@ CONFIG_CLOCK_MONOTONIC=y CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_SYMBOLS=y CONFIG_DEFAULT_SMALL=y +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set +# CONFIG_NSH_DISABLE_FREE is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_KILL is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MODCMDS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PRINTF is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_DISABLE_MOUNTPOINT=y CONFIG_DISABLE_MQUEUE=y CONFIG_DISABLE_PTHREAD=y @@ -35,7 +54,7 @@ CONFIG_IDLETHREAD_STACKSIZE=4096 CONFIG_LIBC_FLOATINGPOINT=y CONFIG_LIBC_LONG_LONG=y CONFIG_LIBC_STRERROR=y -CONFIG_LIB_BOARDCTL=y +CONFIG_BOARDCTL=y CONFIG_FS_PROCFS_MAX_TASKS=0 CONFIG_MM_REGIONS=2 CONFIG_NAME_MAX=0 @@ -58,4 +77,4 @@ CONFIG_STM32_FLASH_CONFIG_G=y CONFIG_STM32_NOEXT_VECTORS=y CONFIG_TASK_NAME_SIZE=0 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=4096 +CONFIG_INIT_STACKSIZE=4096 diff --git a/boards/ark/cannode/nuttx-config/nsh/defconfig b/boards/ark/cannode/nuttx-config/nsh/defconfig index 5b6364324e..44846b4bef 100644 --- a/boards/ark/cannode/nuttx-config/nsh/defconfig +++ b/boards/ark/cannode/nuttx-config/nsh/defconfig @@ -5,20 +5,51 @@ # You can then do "make savedefconfig" to generate a new defconfig file that includes your # modifications. # -# CONFIG_DISABLE_OS_API is not set +# CONFIG_DISABLE_ENVIRON is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set +# CONFIG_MMCSD_HAVE_CARDDETECT is not set +# CONFIG_MMCSD_HAVE_WRITEPROTECT is not set +# CONFIG_MMCSD_MMCSUPPORT is not set +# CONFIG_MMCSD_SPI is not set # CONFIG_NSH_DISABLEBG is not set # CONFIG_NSH_DISABLESCRIPT is not set +# CONFIG_NSH_DISABLE_ARP is not set +# CONFIG_NSH_DISABLE_CAT is not set +# CONFIG_NSH_DISABLE_CD is not set +# CONFIG_NSH_DISABLE_CP is not set +# CONFIG_NSH_DISABLE_DATE is not set # CONFIG_NSH_DISABLE_DF is not set +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set # CONFIG_NSH_DISABLE_EXEC is not set -# CONFIG_NSH_DISABLE_EXIT is not set +# CONFIG_NSH_DISABLE_EXPORT is not set +# CONFIG_NSH_DISABLE_FREE is not set # CONFIG_NSH_DISABLE_GET is not set +# CONFIG_NSH_DISABLE_HELP is not set # CONFIG_NSH_DISABLE_ITEF is not set +# CONFIG_NSH_DISABLE_KILL is not set # CONFIG_NSH_DISABLE_LOOPS is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set # CONFIG_NSH_DISABLE_MKFATFS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_NSLOOKUP is not set +# CONFIG_NSH_DISABLE_PS is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE is not set +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_RM is not set +# CONFIG_NSH_DISABLE_RMDIR is not set # CONFIG_NSH_DISABLE_SEMICOLON is not set +# CONFIG_NSH_DISABLE_SET is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_TEST is not set # CONFIG_NSH_DISABLE_TIME is not set -# CONFIG_STM32_DMACAPABLE is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_ARCH="arm" CONFIG_ARCH_BOARD_CUSTOM=y CONFIG_ARCH_BOARD_CUSTOM_DIR="../../../../boards/ark/cannode/nuttx-config" @@ -32,8 +63,10 @@ CONFIG_ARCH_STACKDUMP=y CONFIG_ARMV7M_MEMCPY=y CONFIG_ARMV7M_USEBASEPRI=y CONFIG_BOARDCTL_RESET=y +CONFIG_BOARDCTL=y CONFIG_BOARD_LOOPSPERMSEC=16717 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y CONFIG_C99_BOOL8=y CONFIG_CLOCK_MONOTONIC=y @@ -97,12 +130,13 @@ CONFIG_RAM_SIZE=262144 CONFIG_RAM_START=0x20000000 CONFIG_RAW_BINARY=y CONFIG_RTC_DATETIME=y -CONFIG_SCHED_ATEXIT=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=254 CONFIG_SCHED_HPWORKSTACKSIZE=3000 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 @@ -156,5 +190,5 @@ CONFIG_USART2_RXBUFSIZE=600 CONFIG_USART2_SERIAL_CONSOLE=y CONFIG_USART2_TXBUFSIZE=1100 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2624 -CONFIG_USER_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2624 +CONFIG_INIT_ENTRYPOINT="nsh_main" diff --git a/boards/ark/cannode/src/can.c b/boards/ark/cannode/src/can.c index acc20252fa..7737965dc6 100644 --- a/boards/ark/cannode/src/can.c +++ b/boards/ark/cannode/src/can.c @@ -50,7 +50,7 @@ #include #include "chip.h" -#include "arm_arch.h" +#include "arm_internal.h" #include "stm32.h" #include "stm32_can.h" diff --git a/boards/ark/fmu-v6x/extras/ark_fmu-v6x_bootloader.bin b/boards/ark/fmu-v6x/extras/ark_fmu-v6x_bootloader.bin index cdf31e487d31ca35d180d2339648cffed0d9e229..8dbf57ba2e0a4fb3a2b5016b93b37b4315f5e75c 100755 GIT binary patch delta 17356 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 G-2VfKDyFvp diff --git a/boards/ark/fmu-v6x/extras/px4_io-v2_default.bin b/boards/ark/fmu-v6x/extras/px4_io-v2_default.bin index 51403914013d2f9cecc849dfda750db977a95303..957f0f13a12e8eb8a7979955f29ad98d82433933 100755 GIT binary patch delta 17038 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 delta 16986 zcmc(Gdwf$x+VITD$)#ya)0RSSlw4X!8!jy^Qf?B`_OvC%a?uq5HBc_6!a@OM!3zl# zw1DoSqi&_3V0FEKuT7y!!ICQYdf!bzc7e)TMU8E}oRrErX`1AFCaJ6M_xt|({(1BJ zO=ix_oM&d9dFHv!`LvxGc$=}CMuR z0fq4D5EfPpl}K#H&)!868w;h_pS{R+fI(U|9%&Im+EuS1)e|T7;| zS`G`lq#s-NKwEK#0qSGen7FVwKRnllKxG+%r&*g*AgLm)cItNYDnfTyaMVkt+=uNVplshLh4g+C+u&(n)E# zHc277q~(xsf|Mv1ro8LYbRb=Eo1ELdUd!#4Y?`pRg1n}j9(z1^WMjwo#W2@b$dAfR zN;N!(MI~9SD!`chRrSo+$3`QSrY)ul>9jEW#vsxuE5hQ_K}7}9g~bEJ8l#&!J*cTn ztU$ul;0S1YJQ9F0jHapVwE zy#eVIr1OW!dof%_K~Oz`@x*Jx;>SbXfd3DMIwXZg27ptELETi~kmy9(!g#7}8xp4b zl@nQ?hVAv#b+llly*nML6jn`}tPhRUa!fuJEaYc(3Z75ovDc@r=duMQ^9&%STheh2 zmKZnkO~B6Yg#^s&dW3|Q?}w^!w-f%e1U4bgweyCmVJDHtwZ(1?=W&`!nHC9~$op}H zG5IXgJ~0NV9w0cr+OBE?>Zy-X&tp0asF);~4u!1}RH;qD#dC_P@x0C!7Tw`|E*IvT8P@XSZBhqv(LSm+ zMleZOi-n@Wd}k~1#*fc4OQQ@jTeT3*7rhvIU?F8t(^itDE`8F1JerO~30q|nt`@zd zbi{(pB{03t+PZRjwisz-zN%wv8`9#}=uqVJh-Yy>S(q>fUm#B=%*8%(G2t^jj~vy^ z!Fl8>%`|))NlUEO8n&<8KGU3BQnShG?B?-njIc3)n~;h5qMJv;=n!d0%)}p(mlJd4 zg)5NIMJ^`l?A^f%SkMQ-uOBx&k<^;edeD;UD%@VdWx8YnmW?Sv!asszoVgs`=7V8# zq;D~t38@|zvL=@Y88!+D%EA>s@6_#bft6qI7SI$!SVvkUce5opyGjk*0 z-P)i$YeE-n&tuW;LFAF-@yz@n`CD>!!h=C002Usr9(b@02^Yzg;ijlnOF*km34Gntq?p8aa*X)hT{*4u?4tVcT5myN<=?{HZI!ZMEU0yA0O`X}&uh|q9XP!mIeI9c^h9T83jh*&-&jU^qUt?RxH{1I7>$ZoyQ=K)u z$=1xTvt8%=Y+EAywGQ|z%OPD7a2z$DjUoUE@*xbRR4AcHDH}?G0P7otuvJHyFA@gM zP+Z6X7rS0~FlSipXm$Rv z34pG5AffGav=4Ao4g?REEMZe#JIcreuIeW{Q>V$lZ$_$Fq$71PevTxj)ibY$$+KzC z+G+KAAir5K02YLHW?nLn3zKbi<;X>k7dD{ms@v+@3hSz>tE{tZ58E<0W=VI3A;@?Yyg7z=L&Si`I;gU!HW(}HVSz7s_0dmwCKtq+gpZn37?w0s(Wz*6>w zo=4g7whTVE;*cZPj)boQ<14VRWH42i19@iP7~jOpYQwBUK7nk&&ip^i#qDrNH&s-AHxvd9p7f9UmnxXBg!3 zCm>Z7`7C3yy$W8VV^L7F_V+@r5QJP@&(>dLXUt~@$Wf;EmC!`HzMR0fVXkCAsXC*yqL%bb~J*o}oJq?3No z42^=@Z22j|8v4BXq-@MsyIopkVIy)A@Sz>@$~aA1#R-_|ZijvsFrxCC;Z00KQtLj8 z-1ANAZm8KP>_eIkrU6e$YGoX>4dumr5i?K2=R2A82Q4ZPQL-8c&s_=d7 zrQ4=y3yYtG*(~|hFeA<(zA-5{l_;~uCXNb6n9773*NhyV6&7D2)3U~|_+d!aa<{|= z;PhA$(8QkbT$VepZ2;jk7F5%VemQs98P{|~%5*R!wn@ifqHdbPAu{Ss;mtJvYh~_6DwilXFi3{A-f&2om1$ zvstBGMu3+*2=D}%qPXi%&P5zOgIF*@>y)lkkb79@ks8`5Ok?*HXjA)AG01aR>d#k? zt&^Q7i1c3}Wpp3oE4e0KGf!qSaeJf59muI_z5F1GLe z5zC~h3(&-=p1(`T48ZbV2cU;ak4vofX6uVPsqA8!4ok&a!wMPXtfpo~^L|ExZShycG$L+QVV7Kd9yOu+pu-v6{DrMG5p1Io-0qP+G(J zfAh}Zfottpgl5=~el&-CY@CYUWl89|3s#p@J%d*jFnt#`xAd({i0xWJH(mNrLJM|z z%Yd0okfwCwDc=E%0zdodLP<3X&xq?~7--9v_u1czgX#%5pRVMpmog8ER?0jm6Unzu z>=CO`?nu`@?jYyj7H}y5{;3d`IrYp0jww>~?Z#AB>kGev6oAK4H|kTybV}&J0_e9R z#BvL{3N9pW3Z39^k!ns=DLZ>w>6x-jkW!Tr8~0(l)M=AN){3%0(2u@D0&pb0X9&^td;tU( z7T*g0D6(>9uF z=DVT?Rc(!}%-~~qJX2=IedpMde%8F(66abd6@o=?zt~D`^C*u-u3u$a9ZW!bf^J5O z^EXgv+z8lb3Mjrp&X-ArHpHX8b22zPb&ZZFq~>+WPKuoou)eTpgAD;gD8hb!g`Mw| zHDs{(b8L_~5V7W_WEq3QvZ6@KX*#5~(cCDjf}?ULEQSK)2Sd?pAMCr-q2upcukXdo z&t5(MBM@i``vWB+SoyTJ(N^01AA$AjDJ%PO@S76WjGxYK4~rMc-Pvi(Km24{wqAKM zfVE$Oj5?Z~Y*}7=zf-?`pGD!3`9|XWb`|VnP-45aTsH3m8HxQ-@kw0*pshW$jEdUb z!)OJ5azY|Ev$O4`XFpdW?Wd3^#o=sSgd5lUwe7e_J3;h-@dyhm26_aY*;gf}{QR`E zpq=&I9x0!cirb;jl=D4_+Tso*7z00gsoz5IM&F2w^g1dT+eZQ%EF6+j+iAbz!G3R8 zY+eKY65!HvUF$f4Jf^_3@SLy2{SLj0skYY*>lL@aRvJS9yVprIB=K@0^Ek^j-*slTH7+zyn_hiM%ukY z_YOAPpu~+PtK9f1Pzx9wRO^S6uejoE-XS;L^swN6LBb8m=lyjLJEkEO<;g5pEjU!L zUouRP?{*~&RNny5PD+_a?j5Z6rw^b9S@&M3iLzJRh=iBJlt&M^U)(=^C1)8xn_sL) z!rJiXQfW&YZ|#-KSFfTkEaJBC`41_4ak#M@!0w}9oA*!W3@eQ&I6 zjCoIQEWCq+n()1Y`v&(xzpz*kqIS{`{<*LV#&kO$ zrknU}L3`HXf4Z*-ObV`DtoKr)U&iiy~W8|bScdUzLw zn)jCspql3Ts8I_R9<)ZeQRb;^u>Dd`M>!P|UJoII9*p8tpwGOZo6Gd}e;QT29t?Sx_78#l^Y@;h|f@vC6?gtGa5@2(xhotMhYK0|u*^0TUfR3L^$ zRdAw{;lT4c$7EX!*0y4MSj-HPVpCBO7M6#>ub~1XlN&wH4BONI8==ra?x#%m7*O@xhtJZSi1+ zn!%#tq;L3Vh6tWZ zfdr$9fw4Um(8`VosGM-7AJB9}kVocE7|oOgDbG~?^K`W8$qD0Ak+4b{Te-nDf`4C% zbKs(^cFMsuLE@fp3&RG9YNCGW4@1Xo;nv51qLG%KVdVM(@Lt!JP^IUWItd6RWFj`j z7dadnXW)~aO*}H8YjqtIk~C!CGn@zcoxHmApsj@GY@K{#c^^m)3WKET^Y1{y)gh#{ z*?#p#r*av5kC%ldogeC_M+o`68GQKP^aZ46tY9GPso71RWgrt}wsStMAvR))KMn$% z`Uz)}!xP8buY{C(g*8E&ZtM77We$o@y1?B05q19vR^!NS)UAO8kPv-iJQ%7ukPMO< zV4A4p9rk{PKp=EVMyDL=Ghk^xx2i*Cjc8EARw>T5 zM}P|M46qj;53nWQv{pG|s}#Qbfol{1YfX|&{QZRnn4qvTmxuqk_ZJ}HDR6dCpwuR& z&e5F~m76Wbzz-KntZBc+EU}aQ9;zb6bM@<#Q&}#N%Mq0F{q4D&3U>dm{v$O<*4Z1K z-8H$~>KY_e`@wMn48^gyxxTogWZf~#&u;3dXSOH(VpCM9+6??}YsW%o zK+E3`?55ODCxrA=B}})mVEzZiL%}FsrFZBgo#3Y~ZUenVLq+W>`9gbp5@?sz1J7?c z^2_se=X*w=8kmaOzZ}#)N*m?j>+4poOD?ThYp6AVpY*(RDj)d%mh%8_qo9E2L-~TC zc`e9W7u{F}prPVaSHwVu0qfdg=T87+e>GU)jJb^koEGr8aF%Mr6sLtYdtC=bX`Pv( zwD(jLrF5nd#<@=GY~J6+;!D7Tq~`sG2yT!8rde2115Ed%WkVc?@+Nsw=OuwXlIj_4 zP2&^W4V>nk)biWcSl2T!AX#JOFRt0YK6$OiYF*_pSi$OcY}vm`^G;YCXLq@!Q`)&} zcCFd9@x3)}=^ZVzRynT|>VQwJg^rs$p-%HoRNJN#`^bz``E5zoXIe7(p!iJ))`aCe zel;wjun;i-R=%a>YBoef*D!eoMR!PUYuW8YI})OLWhQ+v?YS zHinH5$U{!L_am;HTbBpkF9cld(U6S$dR<=W*EK8GEy`F~lM0Ln83I5Hb>Ov+iy(OO zU_KD?MgRXq^V^{)ntzYw;@@GpZX^s$9seUagA?1aAj4s?gajvN*w1Aez(iT-RF!H4 z8R|@@|LnZf(s~O6RLyh0cp(C261_j4edFJls}?XqU)GhYIa+2SWrWmVonTG|Y+{K7 zlwnf=m0SgL=^J1Rj1_Z0E5bRL&hMX7;atJ99Xe28w9EbNzwgi$?En#rcyL7k9Se6# zucyg<39=QuK}e8MSEf51m!9vz$!tyT%zR`JCJaDM1V_XBtYmUXNnFxN%<7hqSwMkuC9ZcLP2qB#DNWwtdPn{ z#dSz*2qUAvDN?Dw5b)AE&nZ0eQwzU1UR{wo*S3w&(>rlU%}ZC5|HK^hx@O zNQdOEi#=E~*B0Y!si_S+JUGsptSR$5zhLf=rszizqZ;*0!ZTMZxU ze33tB(>E;6h&5@hyxQ8-x+1M+vA(pzq5a*6vXaFP3bQa=)4&$}idwojsI`mZ!r9K( zL7~hWi-c!Dg_1gQcwHpUP#T`V{g*dZ>+)uD?}9u*CC^!CG{gbsK65c5(jI%)htvhV zYMHthD}V85CbO4;6_+Q%aJyU#>^|N5?dYS_3E(;UN?y9%@MWJ-sOHc ztEkk>vAt?GEOv(eX8D_s#pB$~8MjF6gjmzFu5Z%Dj~zc&UHYYTduOAoIm4aN)LQH) z>5W6%9OGbnDjGU(j6fBR#SO&`vfeluU9XvY8@vr+@pNc9_nME5k^7PvN`g<8F;}Sa zkt~^Eim!#V1>7Moa)iTFAcVzSFuGHnR5Jxp4!9`p5KhK5#B%XzZGJ`rYI1I77h&d& zvu6*4OS1(#n^{r{xD|kDJ#dx*)%bBs+{I^GpG$oyA!QJpnAKO}a5ZhC$7kw2n#O^1wcUL6)+4vJoI zCfZ{8WYS*r0Z=4yOr2%_K+3m89EG43{i-HuswVa{RE*~I;0GANEp7i&Dsn(N0O<&% zmJiDm9&9k!ro%qJS{@Qd2bW0f%*AE>7nhX@7aGgKAK>~P*uioLozsLg(cI|NfgOyr z8Ld=npc+Qqh;kKI;H=1Ej76@E!kt8S%LDfPElQ4g6+eZ9*^(YYmdvY2;3W2Wd<&(+ zXF#>JIWaedlS6%~l*{3Rv@}(kWs7YQI;cn;^w#rCEwLysyvKWPN4k3cJ%}3A+dQ|| zmCLPohRi0nGAl}K$k5rt6vWn1wZ>G5RC^%R+aq1;%4JrWO=hK?>LWVN>fsK6t#axi zWVr*N@;}z{q=b%~_MrqIi(RLEISEQP_TgAObs?y@22i@b>V8tfN3f5HrLFyLG+wR0 zm22nPeRC3SyL{SbN-(=eLat4?)qUD$NXVJ%e%+TZ>uQZLExMdG;IJpTn1FH`6Hwez zDL7)3-KTvM6DE-D(=rz@Ox^=mPWx&S0ROQ&+>1?S;h3Yvii{&&yTG+ZUmoe24$M1T zumH$bISBS~ccs9@R0?d&zr2-#D&}+e*Ti_d?Y|)V+oWgOn2l)rS?_6IUV_F$-={mv zxDCD6|8&BOOs}}II68@YER{k-%~KlHC{AUlhb?e$*ec$H77G73u7m(mwURX&v}O;9Cdc${2p zHy;0l6o=w{aq0oD7I+QCYK$*Dy}C@i__pP5eM;HWu5=FR&-sw7!G#PdrCFtFa2bAF zru57%oyMWbWvx#Pr85;6z*1wqyKS7YdX^xqwH^8lyRYTMfd-luA{ZHH5Zh) z)4nAMO|1qXrHzcIH70l5<(Rze%U^!a2)W4y_{j~16tzBA7$s|JO}4{EGwwTkQOwKk z=vtohmcVMSD)1#(Z;3|#qc=^^Bw%;RKxawy0K55HZ_e;WFjN2dol1YrI}Zr%ApAFa z(+3>Y*n_8_Zf44b))%~U`xUbEURlCH_W&>kFX#$iLW*uAeyXt?A56wm7pHZ#p0Esb zrE{&8<1RGrEwX9m=&`4{kIRf-ywVpVYcKl{c6Ll@JDjv}9@I3ZG}c>9UYTi~pg2a6 zE$fS6=-wttahZ+fAO43<@SIEEfzLnc4R(>tS+f#boM;^77pvFhfL|1RN@UNh@#Mhl z8Fs3mYPq1e8>IhWm!=~qx?I#uVL<~VMShhszFmImELC^^0b0W1Lw>=Fr*>Gp7uVQc zse`*75mjbLywfGYBKE+0$_qAd4z2|sEnIjohr~6f>&Cr_YWT}{<(F!1MM8mpluwgz z(?e^*;$r`|-t>t*QZSko^d!p_mh{S|^Qva1zPF%TkC<}AV= zlRa}L;)UeIoS8K&TydcOIRz&<>$jckJC~4kAt>G-l4qrK88|fIlocsNWS6*Zx1c_D6QQ{z$r1D|VaeJXf4)Lj=SWfnuC+hM;BYU&iV%IG0I)%k{dxbU{)3h#tn)$g4CsirEk4;ZI6QR+uiAFiT00`GLE^#)IP;8awdYB9OKTY?E)2Xqzh>`3Q^ZS{il|y9ArjA z3(CFKjmF_uKkH%EeAdIR!A~lleL~8#feRNxY}sAR3xT~d(0s6Iyk};u=>!e%N27d+ zUGMjxN8j&Zw$7~0;0xOojg1T1QMQ&-4M*b|%h{}ftH@By9RqNmNQy>e{Mj869}E8g zI_mE5_kamG8wp#o*S+~bD)HQ7E#LzS=(s$Pv|;f$dDoI0I|^{gT&2%5$d{IB#e06| zuBN^}jak-0mjn^MtOlU_v0PDc8Voc`Yp76(Xlg)9s~UjT11z4tSYK zmn7AJoNF3wNHm4zT=9t*UpCx-35rh*QQ9(sQmqVkd#}K~xrdx%Yzw%Lq~!~O;<=#> zwwEQ9XmEp0Eq$LY}^v3ilQjAmSl2q(D_>W~fy|cIJ)GyCs zyPEgH{e_)D@v7elikX}XKnF?%ry$~}1{w;AwGfXy>bj37(33#V_u=SJCpgP}2w-0F zBV(ZJq(3g-+J1d+mm>C3P&`TAD9gZqBOjHGu|IPb0=eLEXylPIGe2ruYT6R4;CbXv z__MSqPkk+Yhiu0|i{gTs`q3n~yP$2}s)4|Y9G-O&W6(Nf`WLtAd9w9}w|T2C;=7{0 zh~l;qp5>Oc%k(%$#vj}Y(bvkbnCM3aBiFnY49A>b5+a>7ZLvJFSu~x^f2us!%65aB^n1W9?$wvs(?e7q+HzHQaYz@Vwcc-zs?*gRAFP?*~zrXWEZb zz{2DHLGQ!BuI1KUJ2Y*Jr77TL2#bfo`$ngZT(k`Xd!#B9wR$PDq&|v^e(IwLiFcks zt~9t#FaoUjQ@@L=Ks=-snLcvKAO@~RGGDkbqxHN?=0MtutslBntLp9G_Zn6bBT+FL z=)M*SbPtK%!0&@6l=~)BCHk=JL*Y~qJdW(RG1VQ(Pu@2(Zz-`r% z3~Jzp!OZL6n4uG=c&=+3!A1O;VDsA(8-ikP=*L!;JL256BhE_K9u{>Hy}OA(_)P&? z{Y28)DSxdqQ!_g#7M`W8kx*U-#msN^E^~_7yOhCF`)35FYp0hprRtE#pG|5HiKEJF}NSp+B*+Sy^;8c!Y){_2m zi^OEIeKG3Oa9c+=fab19MlAi5jzJmaEp?x^ z;45hIU7mv$hp^vqI6ay3^x)1;$beh4KvN=vmjMmICy>VdLzAiCfglrA6J~p<1TSAQ}W=Q^HQH`eZiu4jI-umvD-6Tt*A@Q5VdOVD;r7joQx{_`{n8+&r#gNVE?YK*JO-%Bcd~ zcg_I!Cd%0qvG?dz$9T!igYyGSDl0^S)O=FA%2olELaHs`RkaO?hXxUCM<*`NOJZ>y z>ANj$X+DU50q9_Y3Tc0UoH7?I+!AKe=7R3ZRKDAT4D?h<5n2(d!`kOsurOgz18$1v zD{<_t z@0+*ZqH^uBq+P(miyY_&oW?qRIFG2`?&;)A91j)WwBq3Be|7 z)4X#%3?>a>ZBuKBV3rXF7HUuITs$7L0Z}25vIi>1CC8H52fBgarIg9)16t7mG35Vml##6k?P2!7}-eTlCge}L-YD& zkT(yJ=a**XO!wacU2giZ!DO@aXTsW|xAFf0@jAL93jR~_)zW0^Gd#U*kx`}A8o;@V zp(hP(8+f(0WcZ1LCk#)jNZTBE%1|3#`l79H;IdUn^aYbDp92E<^>{u4=%N#&jOKgD=@Fwxjw0e~$bFFdAx(kj zILPS{-A_>r&(A?FKphP*JlZmqThA%2wGn50oRsis!uwBuFGG92m)TK1r+{M-b>UNw zEy_`FlR-GV&b7U>>d(ILM&gP(aLfXQ!(;!gXgJzuXVH(f(un)kpAEQp~ z^af;Pug3Ur%;?hO(r>*7%8FeFBKNLRN^e4Z@1JL)RuR@h$Wnqk|p>RvR!+e5O0_$BeIkXu3AP3OhtmqwL5DySu$l7eSC5dtul-m}tB0Yz$iKxb3zDU^YqEZw z4|N&J0evsDz-2q#dcEw`pcoh=|E_(B`EOvb_kE#`z6*C|kCOY=-5U4ni}2~fJH)s? zlbl?)89WqJO8LdF15}jy#eWay%fTxeZMk#E+*^vUG0sJ0Ar+~9@sq&3$Xg#kJ{g|R z1t@>@i!R6yLw*MG{gA&6?J1C-2+Y0t2IOx7^uIuU4C><`f5jfC=$AvG8FCi#7oZ^n z@+Np89rC{hqRN6_9D$=$DBxPaQ85vfG}=#<&fAvM9y!>W;ANjyWu_N zksKFq3V8*jEJ&XMWosd);2R-PhIRlFWmc5I!HtFNRI8p# ztu$%D)+-$pi$gjZDqERS;RgeQ4AspT`FV&guC%`a7RR?!P=Weds;1 z9Shw<69EitoG>{^c5RuL)HXyRltN@4!>18&!z=kiGzH(vcp9^M4MWKY(-| z(tkr5gtn{~k!miawU8c%^cJMAA&nq+Y&GFyWarkLiE!ioU?Xt!q-`kgLH8DCC5-WB ziPn@j%dO=VY1{C0+~?W6NJEi&aqAN-7G_9f)t|I_EEuKH)@LM6o3YLAZGu;j$>E`| zCOeY>OqxXg_NOd6ogJMmohhB&^k$@b3exkC=&b(^Ii2w;$Q3WaEFq^W>46-)J6ZAE z-j?jHT0s3;DXEg@{Nnckrs+PeWZ=jaYQ!=G3-?MBomgKz(71_uLt8>98|A31V{8!r zA|>0#jQSqnxglMKL<3zVx*@SDM7C~Q!t4$Z_cnc!evs0HQ=%Kq`?0WLkg(e~C)9^x zhW)PH@T%j)p6!)5G2g!sMmZP03;I3?#)IR;mk*}lG&%qsXg4gFE|v~95*BoZBtD#m zZxYkPE8>6O=Q4TjVZ$T`^zOWI&Hw?-wvn9Xa_0>-iUl3J02T|kM?y$A7}7xL0r+6z zA&K-py!oyc0B(bH64EJ16_A!gx(8ANq=-odOy>;*UvG;46+jcR0DlxS&B5w{uL>v* z4d59<*%Xh42p$;%*UL%UBV*-D0D_rZd89C#!YzW752+ZE01KjDKN`R_D7#8=xG_NT zcckJ5Qn@2{@r*N+)4hQtacUr{xGe+*z7Nr|B))qZWgoYUyt)niW=$akJ@-LRZGb+L z5Pg$Arv`9QpLbrr8eR7mcQlaqcN`wo8+sAezdeYA#lfRcnglp03ZK|!=b5qvFfA&- z=u|%kTt71BnK`I)MJYuCMGf7De?dK621OA?9YqsG9bJ|gl8xl-Don^M8{m|?ux6}dZ zHFvLbCU1q?KIwk5U}j>VhPuMx_78X}HGVDB4R|rsA|VEPU`D0;arhbgwJcQJBy;zq zEFh=Aw}?Ii`JakD_Kr9yYm>bWm)0`yQxF6WGt>y_qwdfVC;!x@d;>mGU58&o&jiFN z;6zn)<-y%M+z9tJBhD*HEDn;#_mt|{5U57b2;W#hV|SR|n4>lZ$1x1qz3N&L2iXhKT ztFxCU@&#ZVjP)>ln$t4iSjpIKc=eDEdS(1i-XvbeGlCmFOmM@82{MS8e&aRwCln-s zg_8+^U6t$$I=Ji#{NE}2=l_Mn)4#(ZFfDLMYxMCn?5hJKAL8iDYsP?x0hzH~*Ls*F zc@x`6(c2C#W9p+0h}Yo8xDxOO8shOsvy+#@@)Axax3R|-ORN>HvI--}^+yeM3|&`& z2f!6h!#8_cFh@fG8F0T;2PN7jhh9;H8@aClEjGB z4m1ki?mU)ZFF8A{P0c+4J_NeM@jfNOIvV8$TKNL(FSrX$=|nwY&~xm;WlHf9h8tZ0 zkqaQB@9IxpHAwq?o5G^@EMuOohp#L6F z%`a~Ei{?Sn-H@4>4XirqAI}EwI5>+>B<@XMv6<+eDEZ^;RHS+tJ`acQCRG<9g;S7f z45Vq0RzpI=zwJ5zq2A(NU`so#IFCBia-B3#w{$&~%8_wI1iYD5t z{k9XWe|a5e6>LGO*C4$C$qA_qQahxhkY3($;=w1MRmFYZ61G!_@WaISOnMTSLV&VJ z1u~-pP=@M}SVitWSkAiXV?k3^k{KO*V)4;d!qpa1{> diff --git a/boards/ark/fmu-v6x/nuttx-config/bootloader/defconfig b/boards/ark/fmu-v6x/nuttx-config/bootloader/defconfig index c74d5c18b1..8d18fafac5 100644 --- a/boards/ark/fmu-v6x/nuttx-config/bootloader/defconfig +++ b/boards/ark/fmu-v6x/nuttx-config/bootloader/defconfig @@ -7,6 +7,7 @@ # # CONFIG_DEV_CONSOLE is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_SPI_EXCHANGE is not set # CONFIG_STM32H7_SYSCFG is not set CONFIG_ARCH="arm" @@ -23,10 +24,12 @@ CONFIG_ARMV7M_ICACHE=y CONFIG_ARMV7M_MEMCPY=y CONFIG_ARMV7M_USEBASEPRI=y CONFIG_BOARDCTL_RESET=y +CONFIG_BOARDCTL=y CONFIG_BOARD_INITTHREAD_PRIORITY=254 CONFIG_BOARD_LATE_INITIALIZE=y CONFIG_BOARD_LOOPSPERMSEC=95150 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_C99_BOOL8=y CONFIG_CDCACM=y CONFIG_CDCACM_IFLOWCONTROL=y @@ -40,6 +43,25 @@ CONFIG_CLOCK_MONOTONIC=y CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_SYMBOLS=y CONFIG_DEFAULT_SMALL=y +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set +# CONFIG_NSH_DISABLE_FREE is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_KILL is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MODCMDS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PRINTF is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_DISABLE_MQUEUE=y CONFIG_DISABLE_PTHREAD=y CONFIG_EXPERIMENTAL=y @@ -51,7 +73,6 @@ CONFIG_IDLETHREAD_STACKSIZE=750 CONFIG_LIBC_FLOATINGPOINT=y CONFIG_LIBC_LONG_LONG=y CONFIG_LIBC_STRERROR=y -CONFIG_LIB_BOARDCTL=y CONFIG_MEMSET_64BIT=y CONFIG_MEMSET_OPTSPEED=y CONFIG_PREALLOC_TIMERS=50 @@ -92,5 +113,5 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="bootloader_main" +CONFIG_INIT_STACKSIZE=2944 +CONFIG_INIT_ENTRYPOINT="bootloader_main" diff --git a/boards/ark/fmu-v6x/nuttx-config/nsh/defconfig b/boards/ark/fmu-v6x/nuttx-config/nsh/defconfig index d7d30f72c2..147582d8da 100644 --- a/boards/ark/fmu-v6x/nuttx-config/nsh/defconfig +++ b/boards/ark/fmu-v6x/nuttx-config/nsh/defconfig @@ -7,6 +7,7 @@ # # CONFIG_DISABLE_ENVIRON is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_MMCSD_HAVE_CARDDETECT is not set # CONFIG_MMCSD_HAVE_WRITEPROTECT is not set # CONFIG_MMCSD_MMCSUPPORT is not set @@ -14,14 +15,44 @@ # CONFIG_NSH_DISABLEBG is not set # CONFIG_NSH_DISABLESCRIPT is not set # CONFIG_NSH_DISABLE_ARP is not set +# CONFIG_NSH_DISABLE_CAT is not set +# CONFIG_NSH_DISABLE_CD is not set +# CONFIG_NSH_DISABLE_CP is not set +# CONFIG_NSH_DISABLE_DATE is not set # CONFIG_NSH_DISABLE_DF is not set +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set # CONFIG_NSH_DISABLE_EXEC is not set +# CONFIG_NSH_DISABLE_EXPORT is not set +# CONFIG_NSH_DISABLE_FREE is not set # CONFIG_NSH_DISABLE_GET is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_IFCONFIG is not set +# CONFIG_NSH_DISABLE_IFUPDOWN is not set # CONFIG_NSH_DISABLE_ITEF is not set +# CONFIG_NSH_DISABLE_KILL is not set # CONFIG_NSH_DISABLE_LOOPS is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set # CONFIG_NSH_DISABLE_MKFATFS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_NSLOOKUP is not set +# CONFIG_NSH_DISABLE_PS is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE is not set +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_RM is not set +# CONFIG_NSH_DISABLE_RMDIR is not set # CONFIG_NSH_DISABLE_SEMICOLON is not set +# CONFIG_NSH_DISABLE_SET is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_TELNETD is not set +# CONFIG_NSH_DISABLE_TEST is not set # CONFIG_NSH_DISABLE_TIME is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_ARCH="arm" CONFIG_ARCH_BOARD_CUSTOM=y CONFIG_ARCH_BOARD_CUSTOM_DIR="../../../../boards/ark/fmu-v6x/nuttx-config" @@ -40,11 +71,11 @@ CONFIG_ARMV7M_MEMCPY=y CONFIG_ARMV7M_USEBASEPRI=y CONFIG_ARM_MPU_EARLY_RESET=y CONFIG_BOARDCTL_RESET=y +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BOARD_CRASHDUMP=y CONFIG_BOARD_LOOPSPERMSEC=95751 CONFIG_BOARD_RESET_ON_ASSERT=2 CONFIG_BUILTIN=y -CONFIG_C99_BOOL8=y CONFIG_CDCACM=y CONFIG_CDCACM_IFLOWCONTROL=y CONFIG_CDCACM_PRODUCTID=0x0039 @@ -86,6 +117,8 @@ CONFIG_HAVE_CXXINITIALIZE=y CONFIG_I2C=y CONFIG_I2C_RESET=y CONFIG_IDLETHREAD_STACKSIZE=750 +CONFIG_INIT_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2944 CONFIG_IOB_NBUFFERS=24 CONFIG_IOB_THROTTLE=0 CONFIG_IPCFG_BINARY=y @@ -93,6 +126,7 @@ CONFIG_IPCFG_CHARDEV=y CONFIG_IPCFG_PATH="/fs/mtd_net" CONFIG_LIBC_FLOATINGPOINT=y CONFIG_LIBC_LONG_LONG=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_LIBC_STRERROR=y CONFIG_MEMSET_64BIT=y CONFIG_MEMSET_OPTSPEED=y @@ -115,6 +149,7 @@ CONFIG_NETINIT_DHCPC=y CONFIG_NETINIT_DNS=y CONFIG_NETINIT_DNSIPADDR=0XC0A800FE CONFIG_NETINIT_DRIPADDR=0XC0A800FE +CONFIG_NETINIT_MONITOR=y CONFIG_NETINIT_THREAD=y CONFIG_NETINIT_THREAD_PRIORITY=49 CONFIG_NETUTILS_TELNETD=y @@ -160,17 +195,16 @@ CONFIG_RAW_BINARY=y CONFIG_READLINE_CMD_HISTORY=y CONFIG_READLINE_TABCOMPLETION=y CONFIG_RTC_DATETIME=y -CONFIG_SCHED_ATEXIT=y CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 CONFIG_SCHED_WAITPID=y -CONFIG_SDCLONE_DISABLE=y CONFIG_SDMMC2_SDIO_PULLUP=y CONFIG_SEM_PREALLOCHOLDERS=32 CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y @@ -208,6 +242,7 @@ CONFIG_STM32H7_PHYSR_100MBPS=0x8 CONFIG_STM32H7_PHYSR_FULLDUPLEX=0x10 CONFIG_STM32H7_PHYSR_MODE=0x10 CONFIG_STM32H7_PHYSR_SPEED=0x8 +CONFIG_STM32H7_PHY_POLLING=y CONFIG_STM32H7_PROGMEM=y CONFIG_STM32H7_RTC=y CONFIG_STM32H7_RTC_AUTO_LSECLOCK_START_DRV_CAPABILITY=y @@ -229,7 +264,6 @@ CONFIG_STM32H7_SPI5=y CONFIG_STM32H7_SPI6=y CONFIG_STM32H7_SPI6_DMA=y CONFIG_STM32H7_SPI6_DMA_BUFFER=1024 -CONFIG_STM32H7_SPI_DMA=y CONFIG_STM32H7_TIM12=y CONFIG_STM32H7_TIM1=y CONFIG_STM32H7_TIM4=y @@ -290,6 +324,4 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="nsh_main" CONFIG_WATCHDOG=y diff --git a/boards/ark/fmu-v6x/src/board_config.h b/boards/ark/fmu-v6x/src/board_config.h index 12d526f142..9c6e81d836 100644 --- a/boards/ark/fmu-v6x/src/board_config.h +++ b/boards/ark/fmu-v6x/src/board_config.h @@ -375,11 +375,11 @@ /* SD card bringup does not work if performed on the IDLE thread because it * will cause waiting. Use either: * - * CONFIG_LIB_BOARDCTL=y, OR + * CONFIG_BOARDCTL=y, OR * CONFIG_BOARD_INITIALIZE=y && CONFIG_BOARD_INITTHREAD=y */ -#if defined(CONFIG_BOARD_INITIALIZE) && !defined(CONFIG_LIB_BOARDCTL) && \ +#if defined(CONFIG_BOARD_INITIALIZE) && !defined(CONFIG_BOARDCTL) && \ !defined(CONFIG_BOARD_INITTHREAD) # warning SDIO initialization cannot be perfomed on the IDLE thread #endif diff --git a/boards/ark/fmu-v6x/src/can.c b/boards/ark/fmu-v6x/src/can.c index f4c59012fb..cdebe7a3ad 100644 --- a/boards/ark/fmu-v6x/src/can.c +++ b/boards/ark/fmu-v6x/src/can.c @@ -65,7 +65,7 @@ uint16_t board_get_can_interfaces(void) #include #include "chip.h" -#include "arm_arch.h" +#include "arm_internal.h" #include "chip.h" #include "stm32_can.h" diff --git a/boards/ark/fmu-v6x/src/usb.c b/boards/ark/fmu-v6x/src/usb.c index 92b6d33eb6..1c64e94ba1 100644 --- a/boards/ark/fmu-v6x/src/usb.c +++ b/boards/ark/fmu-v6x/src/usb.c @@ -51,7 +51,7 @@ #include #include -#include +#include "arm_internal.h" #include #include #include diff --git a/boards/atl/mantis-edu/nuttx-config/nsh/defconfig b/boards/atl/mantis-edu/nuttx-config/nsh/defconfig index 94f275a25b..1a571bce90 100644 --- a/boards/atl/mantis-edu/nuttx-config/nsh/defconfig +++ b/boards/atl/mantis-edu/nuttx-config/nsh/defconfig @@ -7,6 +7,7 @@ # # CONFIG_DISABLE_ENVIRON is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_FS_PROCFS_EXCLUDE_ENVIRON is not set # CONFIG_MMCSD_HAVE_CARDDETECT is not set # CONFIG_MMCSD_HAVE_WRITEPROTECT is not set @@ -41,9 +42,11 @@ CONFIG_ARMV7M_MEMCPY=y CONFIG_ARMV7M_USEBASEPRI=y CONFIG_ARM_MPU_EARLY_RESET=y CONFIG_BOARDCTL_RESET=y +CONFIG_BOARDCTL=y CONFIG_BOARD_CRASHDUMP=y CONFIG_BOARD_LOOPSPERMSEC=22114 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y CONFIG_C99_BOOL8=y CONFIG_CDCACM=y @@ -59,6 +62,25 @@ CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_HARDFAULT_ALERT=y CONFIG_DEBUG_SYMBOLS=y CONFIG_DEFAULT_SMALL=y +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set +# CONFIG_NSH_DISABLE_FREE is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_KILL is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MODCMDS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PRINTF is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_DEV_FIFO_SIZE=0 CONFIG_DEV_PIPE_MAXSIZE=1024 CONFIG_DEV_PIPE_SIZE=70 @@ -127,12 +149,13 @@ CONFIG_RAW_BINARY=y CONFIG_READLINE_CMD_HISTORY=y CONFIG_READLINE_TABCOMPLETION=y CONFIG_RTC_DATETIME=y -CONFIG_SCHED_ATEXIT=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 @@ -234,5 +257,5 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2944 +CONFIG_INIT_ENTRYPOINT="nsh_main" diff --git a/boards/atl/mantis-edu/src/pwr.cpp b/boards/atl/mantis-edu/src/pwr.cpp index e645d00529..d732370cb6 100644 --- a/boards/atl/mantis-edu/src/pwr.cpp +++ b/boards/atl/mantis-edu/src/pwr.cpp @@ -55,7 +55,7 @@ #include #include -#include +#include #include "board_config.h" #include diff --git a/boards/av/x-v1/nuttx-config/nsh/defconfig b/boards/av/x-v1/nuttx-config/nsh/defconfig index f5dbb79fbe..cf5ad33764 100644 --- a/boards/av/x-v1/nuttx-config/nsh/defconfig +++ b/boards/av/x-v1/nuttx-config/nsh/defconfig @@ -7,6 +7,7 @@ # # CONFIG_DISABLE_ENVIRON is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_FS_PROCFS_EXCLUDE_ENVIRON is not set # CONFIG_MMCSD_HAVE_CARDDETECT is not set # CONFIG_MMCSD_HAVE_WRITEPROTECT is not set @@ -53,15 +54,36 @@ CONFIG_ARMV7M_MEMCPY=y CONFIG_ARMV7M_USEBASEPRI=y CONFIG_ARM_MPU_EARLY_RESET=y CONFIG_BOARDCTL_RESET=y +CONFIG_BOARDCTL=y CONFIG_BOARD_CRASHDUMP=y CONFIG_BOARD_LOOPSPERMSEC=22114 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y CONFIG_C99_BOOL8=y CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_HARDFAULT_ALERT=y CONFIG_DEBUG_SYMBOLS=y CONFIG_DEFAULT_SMALL=y +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set +# CONFIG_NSH_DISABLE_FREE is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_KILL is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MODCMDS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PRINTF is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_DEV_FIFO_SIZE=0 CONFIG_DEV_PIPE_MAXSIZE=1024 CONFIG_DEV_PIPE_SIZE=70 @@ -149,12 +171,13 @@ CONFIG_RAW_BINARY=y CONFIG_READLINE_CMD_HISTORY=y CONFIG_READLINE_TABCOMPLETION=y CONFIG_RTC_DATETIME=y -CONFIG_SCHED_ATEXIT=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 @@ -266,5 +289,5 @@ CONFIG_USART6_RXBUFSIZE=600 CONFIG_USART6_RXDMA=y CONFIG_USART6_TXBUFSIZE=1500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2944 +CONFIG_INIT_ENTRYPOINT="nsh_main" diff --git a/boards/av/x-v1/src/board_config.h b/boards/av/x-v1/src/board_config.h index ed08d8ad00..9d97e1c3a6 100644 --- a/boards/av/x-v1/src/board_config.h +++ b/boards/av/x-v1/src/board_config.h @@ -114,7 +114,7 @@ /* SD card bringup does not work if performed on the IDLE thread because it * will cause waiting. Use either: * - * CONFIG_LIB_BOARDCTL=y, OR + * CONFIG_BOARDCTL=y, OR * CONFIG_BOARD_INITIALIZE=y && CONFIG_BOARD_INITTHREAD=y */ diff --git a/boards/bitcraze/crazyflie/nuttx-config/nsh/defconfig b/boards/bitcraze/crazyflie/nuttx-config/nsh/defconfig index af6ca377c5..68634a0659 100644 --- a/boards/bitcraze/crazyflie/nuttx-config/nsh/defconfig +++ b/boards/bitcraze/crazyflie/nuttx-config/nsh/defconfig @@ -7,6 +7,7 @@ # # CONFIG_DISABLE_ENVIRON is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_MMCSD_HAVE_CARDDETECT is not set # CONFIG_MMCSD_HAVE_WRITEPROTECT is not set # CONFIG_MMCSD_MMCSUPPORT is not set @@ -36,9 +37,11 @@ CONFIG_ARCH_STACKDUMP=y CONFIG_ARMV7M_MEMCPY=y CONFIG_ARMV7M_USEBASEPRI=y CONFIG_BOARDCTL_RESET=y +CONFIG_BOARDCTL=y CONFIG_BOARD_CRASHDUMP=y CONFIG_BOARD_LOOPSPERMSEC=16717 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y CONFIG_C99_BOOL8=y CONFIG_CDCACM=y @@ -54,6 +57,25 @@ CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_HARDFAULT_ALERT=y CONFIG_DEBUG_SYMBOLS=y CONFIG_DEFAULT_SMALL=y +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set +# CONFIG_NSH_DISABLE_FREE is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_KILL is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MODCMDS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PRINTF is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_DEV_FIFO_SIZE=0 CONFIG_DEV_PIPE_MAXSIZE=1024 CONFIG_DEV_PIPE_SIZE=70 @@ -115,12 +137,13 @@ CONFIG_RAM_SIZE=196608 CONFIG_RAM_START=0x20000000 CONFIG_RAW_BINARY=y CONFIG_RTC_DATETIME=y -CONFIG_SCHED_ATEXIT=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 @@ -184,5 +207,5 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2944 +CONFIG_INIT_ENTRYPOINT="nsh_main" diff --git a/boards/bitcraze/crazyflie/src/spi.cpp b/boards/bitcraze/crazyflie/src/spi.cpp index e9beabbdb3..bd5f6db353 100644 --- a/boards/bitcraze/crazyflie/src/spi.cpp +++ b/boards/bitcraze/crazyflie/src/spi.cpp @@ -44,7 +44,7 @@ #include #include -#include +#include #include #include #include "board_config.h" diff --git a/boards/bitcraze/crazyflie/src/usb.c b/boards/bitcraze/crazyflie/src/usb.c index af187d8df6..29bae3dcf9 100644 --- a/boards/bitcraze/crazyflie/src/usb.c +++ b/boards/bitcraze/crazyflie/src/usb.c @@ -51,7 +51,7 @@ #include #include -#include +#include #include #include "board_config.h" diff --git a/boards/bitcraze/crazyflie21/nuttx-config/nsh/defconfig b/boards/bitcraze/crazyflie21/nuttx-config/nsh/defconfig index 72cd38e642..b2e8272545 100644 --- a/boards/bitcraze/crazyflie21/nuttx-config/nsh/defconfig +++ b/boards/bitcraze/crazyflie21/nuttx-config/nsh/defconfig @@ -7,6 +7,7 @@ # # CONFIG_DISABLE_ENVIRON is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_MMCSD_HAVE_CARDDETECT is not set # CONFIG_MMCSD_HAVE_WRITEPROTECT is not set # CONFIG_MMCSD_MMCSUPPORT is not set @@ -35,9 +36,11 @@ CONFIG_ARCH_STACKDUMP=y CONFIG_ARMV7M_MEMCPY=y CONFIG_ARMV7M_USEBASEPRI=y CONFIG_BOARDCTL_RESET=y +CONFIG_BOARDCTL=y CONFIG_BOARD_CRASHDUMP=y CONFIG_BOARD_LOOPSPERMSEC=16717 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y CONFIG_C99_BOOL8=y CONFIG_CDCACM=y @@ -52,6 +55,25 @@ CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_HARDFAULT_ALERT=y CONFIG_DEBUG_SYMBOLS=y CONFIG_DEFAULT_SMALL=y +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set +# CONFIG_NSH_DISABLE_FREE is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_KILL is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MODCMDS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PRINTF is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_DEV_FIFO_SIZE=0 CONFIG_DEV_PIPE_MAXSIZE=1024 CONFIG_DEV_PIPE_SIZE=70 @@ -114,12 +136,13 @@ CONFIG_RAM_SIZE=196608 CONFIG_RAM_START=0x20000000 CONFIG_RAW_BINARY=y CONFIG_RTC_DATETIME=y -CONFIG_SCHED_ATEXIT=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 @@ -183,5 +206,5 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2944 +CONFIG_INIT_ENTRYPOINT="nsh_main" diff --git a/boards/bitcraze/crazyflie21/src/spi.cpp b/boards/bitcraze/crazyflie21/src/spi.cpp index e9beabbdb3..bd5f6db353 100644 --- a/boards/bitcraze/crazyflie21/src/spi.cpp +++ b/boards/bitcraze/crazyflie21/src/spi.cpp @@ -44,7 +44,7 @@ #include #include -#include +#include #include #include #include "board_config.h" diff --git a/boards/bitcraze/crazyflie21/src/usb.c b/boards/bitcraze/crazyflie21/src/usb.c index af187d8df6..29bae3dcf9 100644 --- a/boards/bitcraze/crazyflie21/src/usb.c +++ b/boards/bitcraze/crazyflie21/src/usb.c @@ -51,7 +51,7 @@ #include #include -#include +#include #include #include "board_config.h" diff --git a/boards/cuav/can-gps-v1/nuttx-config/canbootloader/defconfig b/boards/cuav/can-gps-v1/nuttx-config/canbootloader/defconfig index 01f7bafa11..a275dd0e78 100644 --- a/boards/cuav/can-gps-v1/nuttx-config/canbootloader/defconfig +++ b/boards/cuav/can-gps-v1/nuttx-config/canbootloader/defconfig @@ -23,6 +23,25 @@ CONFIG_CLOCK_MONOTONIC=y CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_SYMBOLS=y CONFIG_DEFAULT_SMALL=y +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set +# CONFIG_NSH_DISABLE_FREE is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_KILL is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MODCMDS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PRINTF is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_DISABLE_MOUNTPOINT=y CONFIG_DISABLE_MQUEUE=y CONFIG_DISABLE_PTHREAD=y @@ -35,7 +54,7 @@ CONFIG_IDLETHREAD_STACKSIZE=4096 CONFIG_LIBC_FLOATINGPOINT=y CONFIG_LIBC_LONG_LONG=y CONFIG_LIBC_STRERROR=y -CONFIG_LIB_BOARDCTL=y +CONFIG_BOARDCTL=y CONFIG_FS_PROCFS_MAX_TASKS=0 CONFIG_MM_REGIONS=2 CONFIG_NAME_MAX=0 @@ -59,4 +78,4 @@ CONFIG_STM32_NOEXT_VECTORS=y CONFIG_STM32_TIM8=y CONFIG_TASK_NAME_SIZE=0 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=4096 +CONFIG_INIT_STACKSIZE=4096 diff --git a/boards/cuav/can-gps-v1/nuttx-config/nsh/defconfig b/boards/cuav/can-gps-v1/nuttx-config/nsh/defconfig index c33c19ca78..f24cd29f7a 100644 --- a/boards/cuav/can-gps-v1/nuttx-config/nsh/defconfig +++ b/boards/cuav/can-gps-v1/nuttx-config/nsh/defconfig @@ -9,15 +9,41 @@ # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set # CONFIG_NSH_DISABLEBG is not set # CONFIG_NSH_DISABLESCRIPT is not set +# CONFIG_NSH_DISABLE_CAT is not set +# CONFIG_NSH_DISABLE_CD is not set +# CONFIG_NSH_DISABLE_CP is not set +# CONFIG_NSH_DISABLE_DATE is not set # CONFIG_NSH_DISABLE_DF is not set +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set # CONFIG_NSH_DISABLE_EXEC is not set # CONFIG_NSH_DISABLE_EXIT is not set +# CONFIG_NSH_DISABLE_EXPORT is not set +# CONFIG_NSH_DISABLE_FREE is not set # CONFIG_NSH_DISABLE_GET is not set +# CONFIG_NSH_DISABLE_HELP is not set # CONFIG_NSH_DISABLE_ITEF is not set +# CONFIG_NSH_DISABLE_KILL is not set # CONFIG_NSH_DISABLE_LOOPS is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set # CONFIG_NSH_DISABLE_MKFATFS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PS is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE is not set +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_RM is not set +# CONFIG_NSH_DISABLE_RMDIR is not set # CONFIG_NSH_DISABLE_SEMICOLON is not set +# CONFIG_NSH_DISABLE_SET is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_TEST is not set # CONFIG_NSH_DISABLE_TIME is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set # CONFIG_STM32_DMACAPABLE is not set CONFIG_ARCH="arm" CONFIG_ARCH_BOARD_CUSTOM=y @@ -35,9 +61,8 @@ CONFIG_ARM_MPU_EARLY_RESET=y CONFIG_BOARDCTL_RESET=y CONFIG_BOARD_LOOPSPERMSEC=16717 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y -CONFIG_C99_BOOL8=y -CONFIG_CLOCK_MONOTONIC=y CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_HARDFAULT_ALERT=y CONFIG_DEBUG_SYMBOLS=y @@ -61,8 +86,11 @@ CONFIG_HAVE_CXXINITIALIZE=y CONFIG_I2C=y CONFIG_I2C_RESET=y CONFIG_IDLETHREAD_STACKSIZE=750 +CONFIG_INIT_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2624 CONFIG_LIBC_FLOATINGPOINT=y CONFIG_LIBC_LONG_LONG=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_LIBC_STRERROR=y CONFIG_MEMSET_64BIT=y CONFIG_MEMSET_OPTSPEED=y @@ -77,9 +105,6 @@ CONFIG_NSH_ARGCAT=y CONFIG_NSH_BUILTIN_APPS=y CONFIG_NSH_CMDPARMS=y CONFIG_NSH_CROMFSETC=y -CONFIG_NSH_DISABLE_IFCONFIG=y -CONFIG_NSH_DISABLE_IFUPDOWN=y -CONFIG_NSH_DISABLE_TELNETD=y CONFIG_NSH_LINELEN=128 CONFIG_NSH_MAXARGUMENTS=15 CONFIG_NSH_NESTDEPTH=8 @@ -98,12 +123,12 @@ CONFIG_RAM_SIZE=262144 CONFIG_RAM_START=0x20000000 CONFIG_RAW_BINARY=y CONFIG_RTC_DATETIME=y -CONFIG_SCHED_ATEXIT=y CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 @@ -151,5 +176,3 @@ CONFIG_USART2_BAUD=57600 CONFIG_USART2_RXBUFSIZE=600 CONFIG_USART2_TXBUFSIZE=1100 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2624 -CONFIG_USER_ENTRYPOINT="nsh_main" diff --git a/boards/cuav/can-gps-v1/src/can.c b/boards/cuav/can-gps-v1/src/can.c index 5a32d62832..89b8ba2281 100644 --- a/boards/cuav/can-gps-v1/src/can.c +++ b/boards/cuav/can-gps-v1/src/can.c @@ -50,7 +50,7 @@ #include #include "chip.h" -#include "arm_arch.h" +#include "arm_internal.h" #include "stm32.h" #include "stm32_can.h" diff --git a/boards/cuav/nora/extras/cuav_nora_bootloader.bin b/boards/cuav/nora/extras/cuav_nora_bootloader.bin index fe1e749e7f575ae3767d0df87d63b3f9ad13fd3e..d56835b1b10521bf33323fb0f1b92c23521fa1ed 100755 GIT binary patch delta 17755 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 delta 17266 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

0wjbF5UKN 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 Z@7GE;JN(-K^;6)g0@Tr$;ZPjT|37nZF9-kt diff --git a/boards/cuav/nora/nuttx-config/bootloader/defconfig b/boards/cuav/nora/nuttx-config/bootloader/defconfig index 9ea14fb7c9..de867781a1 100644 --- a/boards/cuav/nora/nuttx-config/bootloader/defconfig +++ b/boards/cuav/nora/nuttx-config/bootloader/defconfig @@ -7,6 +7,7 @@ # # CONFIG_DEV_CONSOLE is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_SPI_EXCHANGE is not set # CONFIG_STM32H7_SYSCFG is not set CONFIG_ARCH="arm" @@ -23,10 +24,12 @@ CONFIG_ARMV7M_ICACHE=y CONFIG_ARMV7M_MEMCPY=y CONFIG_ARMV7M_USEBASEPRI=y CONFIG_BOARDCTL_RESET=y +CONFIG_BOARDCTL=y CONFIG_BOARD_INITTHREAD_PRIORITY=254 CONFIG_BOARD_LATE_INITIALIZE=y CONFIG_BOARD_LOOPSPERMSEC=22114 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_C99_BOOL8=y CONFIG_CDCACM=y CONFIG_CDCACM_IFLOWCONTROL=y @@ -40,6 +43,25 @@ CONFIG_CLOCK_MONOTONIC=y CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_SYMBOLS=y CONFIG_DEFAULT_SMALL=y +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set +# CONFIG_NSH_DISABLE_FREE is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_KILL is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MODCMDS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PRINTF is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_DISABLE_MQUEUE=y CONFIG_DISABLE_PTHREAD=y CONFIG_EXPERIMENTAL=y @@ -89,5 +111,5 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="bootloader_main" +CONFIG_INIT_STACKSIZE=2944 +CONFIG_INIT_ENTRYPOINT="bootloader_main" diff --git a/boards/cuav/nora/nuttx-config/nsh/defconfig b/boards/cuav/nora/nuttx-config/nsh/defconfig index 8b0629c4d0..db224148ca 100644 --- a/boards/cuav/nora/nuttx-config/nsh/defconfig +++ b/boards/cuav/nora/nuttx-config/nsh/defconfig @@ -7,21 +7,48 @@ # # CONFIG_DISABLE_ENVIRON is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_MMCSD_HAVE_CARDDETECT is not set # CONFIG_MMCSD_HAVE_WRITEPROTECT is not set # CONFIG_MMCSD_MMCSUPPORT is not set # CONFIG_MMCSD_SPI is not set # CONFIG_NSH_DISABLEBG is not set # CONFIG_NSH_DISABLESCRIPT is not set +# CONFIG_NSH_DISABLE_CAT is not set +# CONFIG_NSH_DISABLE_CD is not set +# CONFIG_NSH_DISABLE_CP is not set +# CONFIG_NSH_DISABLE_DATE is not set # CONFIG_NSH_DISABLE_DF is not set +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set # CONFIG_NSH_DISABLE_EXEC is not set # CONFIG_NSH_DISABLE_EXIT is not set +# CONFIG_NSH_DISABLE_EXPORT is not set +# CONFIG_NSH_DISABLE_FREE is not set # CONFIG_NSH_DISABLE_GET is not set +# CONFIG_NSH_DISABLE_HELP is not set # CONFIG_NSH_DISABLE_ITEF is not set +# CONFIG_NSH_DISABLE_KILL is not set # CONFIG_NSH_DISABLE_LOOPS is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set # CONFIG_NSH_DISABLE_MKFATFS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PS is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE is not set +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_RM is not set +# CONFIG_NSH_DISABLE_RMDIR is not set # CONFIG_NSH_DISABLE_SEMICOLON is not set +# CONFIG_NSH_DISABLE_SET is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_TEST is not set # CONFIG_NSH_DISABLE_TIME is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_ARCH="arm" CONFIG_ARCH_BOARD_CUSTOM=y CONFIG_ARCH_BOARD_CUSTOM_DIR="../../../../boards/cuav/nora/nuttx-config" @@ -43,8 +70,8 @@ CONFIG_BOARDCTL_RESET=y CONFIG_BOARD_CRASHDUMP=y CONFIG_BOARD_LOOPSPERMSEC=95150 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y -CONFIG_C99_BOOL8=y CONFIG_CDCACM=y CONFIG_CDCACM_IFLOWCONTROL=y CONFIG_CDCACM_PRODUCTID=0x004c @@ -53,7 +80,6 @@ CONFIG_CDCACM_RXBUFSIZE=600 CONFIG_CDCACM_TXBUFSIZE=12000 CONFIG_CDCACM_VENDORID=0x3163 CONFIG_CDCACM_VENDORSTR="CUAV" -CONFIG_CLOCK_MONOTONIC=y CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_HARDFAULT_ALERT=y CONFIG_DEBUG_SYMBOLS=y @@ -83,8 +109,11 @@ CONFIG_HAVE_CXXINITIALIZE=y CONFIG_I2C=y CONFIG_I2C_RESET=y CONFIG_IDLETHREAD_STACKSIZE=750 +CONFIG_INIT_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2944 CONFIG_LIBC_FLOATINGPOINT=y CONFIG_LIBC_LONG_LONG=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_LIBC_STRERROR=y CONFIG_MEMSET_64BIT=y CONFIG_MEMSET_OPTSPEED=y @@ -103,9 +132,6 @@ CONFIG_NSH_ARGCAT=y CONFIG_NSH_BUILTIN_APPS=y CONFIG_NSH_CMDPARMS=y CONFIG_NSH_CROMFSETC=y -CONFIG_NSH_DISABLE_IFCONFIG=y -CONFIG_NSH_DISABLE_IFUPDOWN=y -CONFIG_NSH_DISABLE_TELNETD=y CONFIG_NSH_LINELEN=128 CONFIG_NSH_MAXARGUMENTS=15 CONFIG_NSH_NESTDEPTH=8 @@ -127,17 +153,16 @@ CONFIG_RAW_BINARY=y CONFIG_READLINE_CMD_HISTORY=y CONFIG_READLINE_TABCOMPLETION=y CONFIG_RTC_DATETIME=y -CONFIG_SCHED_ATEXIT=y CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 CONFIG_SCHED_WAITPID=y -CONFIG_SDCLONE_DISABLE=y CONFIG_SDMMC1_SDIO_PULLUP=y CONFIG_SEM_PREALLOCHOLDERS=32 CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y @@ -187,7 +212,6 @@ CONFIG_STM32H7_SPI5=y CONFIG_STM32H7_SPI6=y CONFIG_STM32H7_SPI6_DMA=y CONFIG_STM32H7_SPI6_DMA_BUFFER=1024 -CONFIG_STM32H7_SPI_DMA=y CONFIG_STM32H7_TIM12=y CONFIG_STM32H7_TIM15=y CONFIG_STM32H7_TIM1=y @@ -237,6 +261,4 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="nsh_main" CONFIG_WATCHDOG=y diff --git a/boards/cuav/x7pro/extras/cuav_x7pro_bootloader.bin b/boards/cuav/x7pro/extras/cuav_x7pro_bootloader.bin index 0b83b8cc0d139b0b837784876ac14476224f3cef..e74d9778e7f8fc2ae8defc0eb922f2f34335680c 100755 GIT binary patch delta 17754 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 delta 17280 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 diff --git a/boards/cuav/x7pro/nuttx-config/bootloader/defconfig b/boards/cuav/x7pro/nuttx-config/bootloader/defconfig index 56d0a0be58..1040f4872b 100644 --- a/boards/cuav/x7pro/nuttx-config/bootloader/defconfig +++ b/boards/cuav/x7pro/nuttx-config/bootloader/defconfig @@ -7,6 +7,7 @@ # # CONFIG_DEV_CONSOLE is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_SPI_EXCHANGE is not set # CONFIG_STM32H7_SYSCFG is not set CONFIG_ARCH="arm" @@ -23,10 +24,12 @@ CONFIG_ARMV7M_ICACHE=y CONFIG_ARMV7M_MEMCPY=y CONFIG_ARMV7M_USEBASEPRI=y CONFIG_BOARDCTL_RESET=y +CONFIG_BOARDCTL=y CONFIG_BOARD_INITTHREAD_PRIORITY=254 CONFIG_BOARD_LATE_INITIALIZE=y CONFIG_BOARD_LOOPSPERMSEC=22114 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_C99_BOOL8=y CONFIG_CDCACM=y CONFIG_CDCACM_IFLOWCONTROL=y @@ -40,6 +43,25 @@ CONFIG_CLOCK_MONOTONIC=y CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_SYMBOLS=y CONFIG_DEFAULT_SMALL=y +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set +# CONFIG_NSH_DISABLE_FREE is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_KILL is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MODCMDS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PRINTF is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_DISABLE_MQUEUE=y CONFIG_DISABLE_PTHREAD=y CONFIG_EXPERIMENTAL=y @@ -51,7 +73,6 @@ CONFIG_IDLETHREAD_STACKSIZE=750 CONFIG_LIBC_FLOATINGPOINT=y CONFIG_LIBC_LONG_LONG=y CONFIG_LIBC_STRERROR=y -CONFIG_LIB_BOARDCTL=y CONFIG_MEMSET_64BIT=y CONFIG_MEMSET_OPTSPEED=y CONFIG_PREALLOC_TIMERS=50 @@ -89,5 +110,5 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="bootloader_main" +CONFIG_INIT_STACKSIZE=2944 +CONFIG_INIT_ENTRYPOINT="bootloader_main" diff --git a/boards/cuav/x7pro/nuttx-config/nsh/defconfig b/boards/cuav/x7pro/nuttx-config/nsh/defconfig index 277039146c..ee3786999a 100644 --- a/boards/cuav/x7pro/nuttx-config/nsh/defconfig +++ b/boards/cuav/x7pro/nuttx-config/nsh/defconfig @@ -7,21 +7,48 @@ # # CONFIG_DISABLE_ENVIRON is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_MMCSD_HAVE_CARDDETECT is not set # CONFIG_MMCSD_HAVE_WRITEPROTECT is not set # CONFIG_MMCSD_MMCSUPPORT is not set # CONFIG_MMCSD_SPI is not set # CONFIG_NSH_DISABLEBG is not set # CONFIG_NSH_DISABLESCRIPT is not set +# CONFIG_NSH_DISABLE_CAT is not set +# CONFIG_NSH_DISABLE_CD is not set +# CONFIG_NSH_DISABLE_CP is not set +# CONFIG_NSH_DISABLE_DATE is not set # CONFIG_NSH_DISABLE_DF is not set +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set # CONFIG_NSH_DISABLE_EXEC is not set # CONFIG_NSH_DISABLE_EXIT is not set +# CONFIG_NSH_DISABLE_EXPORT is not set +# CONFIG_NSH_DISABLE_FREE is not set # CONFIG_NSH_DISABLE_GET is not set +# CONFIG_NSH_DISABLE_HELP is not set # CONFIG_NSH_DISABLE_ITEF is not set +# CONFIG_NSH_DISABLE_KILL is not set # CONFIG_NSH_DISABLE_LOOPS is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set # CONFIG_NSH_DISABLE_MKFATFS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PS is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE is not set +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_RM is not set +# CONFIG_NSH_DISABLE_RMDIR is not set # CONFIG_NSH_DISABLE_SEMICOLON is not set +# CONFIG_NSH_DISABLE_SET is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_TEST is not set # CONFIG_NSH_DISABLE_TIME is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_ARCH="arm" CONFIG_ARCH_BOARD_CUSTOM=y CONFIG_ARCH_BOARD_CUSTOM_DIR="../../../../boards/cuav/x7pro/nuttx-config" @@ -43,8 +70,8 @@ CONFIG_BOARDCTL_RESET=y CONFIG_BOARD_CRASHDUMP=y CONFIG_BOARD_LOOPSPERMSEC=95150 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y -CONFIG_C99_BOOL8=y CONFIG_CDCACM=y CONFIG_CDCACM_IFLOWCONTROL=y CONFIG_CDCACM_PRODUCTID=0x004c @@ -60,7 +87,6 @@ CONFIG_DEFAULT_SMALL=y CONFIG_DEV_FIFO_SIZE=0 CONFIG_DEV_PIPE_MAXSIZE=1024 CONFIG_DEV_PIPE_SIZE=70 -CONFIG_DISABLE_MQUEUE=y CONFIG_EXAMPLES_CALIB_UDELAY=y CONFIG_EXPERIMENTAL=y CONFIG_FAT_DMAMEMORY=y @@ -84,7 +110,10 @@ CONFIG_HAVE_CXXINITIALIZE=y CONFIG_I2C=y CONFIG_I2C_RESET=y CONFIG_IDLETHREAD_STACKSIZE=750 +CONFIG_INIT_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2944 CONFIG_LIBC_LONG_LONG=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_LIBC_STRERROR=y CONFIG_MEMSET_64BIT=y CONFIG_MEMSET_OPTSPEED=y @@ -103,9 +132,6 @@ CONFIG_NSH_ARGCAT=y CONFIG_NSH_BUILTIN_APPS=y CONFIG_NSH_CMDPARMS=y CONFIG_NSH_CROMFSETC=y -CONFIG_NSH_DISABLE_IFCONFIG=y -CONFIG_NSH_DISABLE_IFUPDOWN=y -CONFIG_NSH_DISABLE_TELNETD=y CONFIG_NSH_LINELEN=128 CONFIG_NSH_MAXARGUMENTS=15 CONFIG_NSH_NESTDEPTH=8 @@ -127,17 +153,16 @@ CONFIG_RAW_BINARY=y CONFIG_READLINE_CMD_HISTORY=y CONFIG_READLINE_TABCOMPLETION=y CONFIG_RTC_DATETIME=y -CONFIG_SCHED_ATEXIT=y CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 CONFIG_SCHED_WAITPID=y -CONFIG_SDCLONE_DISABLE=y CONFIG_SDMMC1_SDIO_PULLUP=y CONFIG_SEM_PREALLOCHOLDERS=32 CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y @@ -187,7 +212,6 @@ CONFIG_STM32H7_SPI5=y CONFIG_STM32H7_SPI6=y CONFIG_STM32H7_SPI6_DMA=y CONFIG_STM32H7_SPI6_DMA_BUFFER=1024 -CONFIG_STM32H7_SPI_DMA=y CONFIG_STM32H7_TIM12=y CONFIG_STM32H7_TIM15=y CONFIG_STM32H7_TIM1=y @@ -237,6 +261,4 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="nsh_main" CONFIG_WATCHDOG=y diff --git a/boards/cuav/x7pro/nuttx-config/test/defconfig b/boards/cuav/x7pro/nuttx-config/test/defconfig index 97b93866e5..13a63b5447 100644 --- a/boards/cuav/x7pro/nuttx-config/test/defconfig +++ b/boards/cuav/x7pro/nuttx-config/test/defconfig @@ -7,21 +7,48 @@ # # CONFIG_DISABLE_ENVIRON is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_MMCSD_HAVE_CARDDETECT is not set # CONFIG_MMCSD_HAVE_WRITEPROTECT is not set # CONFIG_MMCSD_MMCSUPPORT is not set # CONFIG_MMCSD_SPI is not set # CONFIG_NSH_DISABLEBG is not set # CONFIG_NSH_DISABLESCRIPT is not set +# CONFIG_NSH_DISABLE_CAT is not set +# CONFIG_NSH_DISABLE_CD is not set +# CONFIG_NSH_DISABLE_CP is not set +# CONFIG_NSH_DISABLE_DATE is not set # CONFIG_NSH_DISABLE_DF is not set +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set # CONFIG_NSH_DISABLE_EXEC is not set # CONFIG_NSH_DISABLE_EXIT is not set +# CONFIG_NSH_DISABLE_EXPORT is not set +# CONFIG_NSH_DISABLE_FREE is not set # CONFIG_NSH_DISABLE_GET is not set +# CONFIG_NSH_DISABLE_HELP is not set # CONFIG_NSH_DISABLE_ITEF is not set +# CONFIG_NSH_DISABLE_KILL is not set # CONFIG_NSH_DISABLE_LOOPS is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set # CONFIG_NSH_DISABLE_MKFATFS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PS is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE is not set +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_RM is not set +# CONFIG_NSH_DISABLE_RMDIR is not set # CONFIG_NSH_DISABLE_SEMICOLON is not set +# CONFIG_NSH_DISABLE_SET is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_TEST is not set # CONFIG_NSH_DISABLE_TIME is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_ARCH="arm" CONFIG_ARCH_BOARD_CUSTOM=y CONFIG_ARCH_BOARD_CUSTOM_DIR="../../../../boards/cuav/x7pro/nuttx-config" @@ -43,8 +70,8 @@ CONFIG_BOARDCTL_RESET=y CONFIG_BOARD_CRASHDUMP=y CONFIG_BOARD_LOOPSPERMSEC=95150 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y -CONFIG_C99_BOOL8=y CONFIG_CDCACM=y CONFIG_CDCACM_IFLOWCONTROL=y CONFIG_CDCACM_PRODUCTID=0x004c @@ -60,7 +87,6 @@ CONFIG_DEFAULT_SMALL=y CONFIG_DEV_FIFO_SIZE=0 CONFIG_DEV_PIPE_MAXSIZE=1024 CONFIG_DEV_PIPE_SIZE=70 -CONFIG_DISABLE_MQUEUE=y CONFIG_EXAMPLES_CALIB_UDELAY=y CONFIG_EXPERIMENTAL=y CONFIG_FAT_DMAMEMORY=y @@ -84,7 +110,10 @@ CONFIG_HAVE_CXXINITIALIZE=y CONFIG_I2C=y CONFIG_I2C_RESET=y CONFIG_IDLETHREAD_STACKSIZE=750 +CONFIG_INIT_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2944 CONFIG_LIBC_LONG_LONG=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_LIBC_STRERROR=y CONFIG_MEMSET_64BIT=y CONFIG_MEMSET_OPTSPEED=y @@ -103,9 +132,6 @@ CONFIG_NSH_ARGCAT=y CONFIG_NSH_BUILTIN_APPS=y CONFIG_NSH_CMDPARMS=y CONFIG_NSH_CROMFSETC=y -CONFIG_NSH_DISABLE_IFCONFIG=y -CONFIG_NSH_DISABLE_IFUPDOWN=y -CONFIG_NSH_DISABLE_TELNETD=y CONFIG_NSH_LINELEN=128 CONFIG_NSH_MAXARGUMENTS=15 CONFIG_NSH_NESTDEPTH=8 @@ -127,17 +153,16 @@ CONFIG_RAW_BINARY=y CONFIG_READLINE_CMD_HISTORY=y CONFIG_READLINE_TABCOMPLETION=y CONFIG_RTC_DATETIME=y -CONFIG_SCHED_ATEXIT=y CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 CONFIG_SCHED_WAITPID=y -CONFIG_SDCLONE_DISABLE=y CONFIG_SDMMC1_SDIO_PULLUP=y CONFIG_SEM_PREALLOCHOLDERS=32 CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y @@ -187,7 +212,6 @@ CONFIG_STM32H7_SPI5=y CONFIG_STM32H7_SPI6=y CONFIG_STM32H7_SPI6_DMA=y CONFIG_STM32H7_SPI6_DMA_BUFFER=1024 -CONFIG_STM32H7_SPI_DMA=y CONFIG_STM32H7_TIM12=y CONFIG_STM32H7_TIM15=y CONFIG_STM32H7_TIM1=y @@ -240,6 +264,4 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="nsh_main" CONFIG_WATCHDOG=y diff --git a/boards/cubepilot/cubeorange/extras/cubepilot_cubeorange_bootloader.bin b/boards/cubepilot/cubeorange/extras/cubepilot_cubeorange_bootloader.bin index f31c6ae94794575cc79e0d1656a6ff3092781183..e442354cca3a0a82d69cb50f73a89c3cadafdeb6 100755 GIT binary patch delta 17306 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 TYN($Ec^QY$lkX7IJ30Rcc`7RW delta 17183 zcmZX63w#q*7Wcg~lXUu`fffjDDM{0o^Z}$TNO^~}OdkQuOGQ8p6x^vrh`bhDC4qvx zRt2sPUMf&U6kMB@x>T%1)Lq}3fVj}gS_KWIC{tRPNs}huxhd}YeP4gSn>%w~bMKvV z&*Oj2^q7bF_8UfheK1N(XI=evFuQd;*~?@(M*OPTF`_+CUMVaSeo$t*k<{+f3)?L5 zZq&I9yRJ!bt{a-D-Pd9e7WM5hNdK!QO5ZNU)m{sf@4BJc!M3^J3fk;Qk+`^+=8awa zwvAnp+p4?zZ?hM-F({317*>Y#!>q)Tdp^ZFtZZ26PRpqCNMe0AyAnoL7fKvk-IcH{ zsVrVRa{IfL2FYA_RymOyFBW#&*?1e0rumw?%AarUTJd~58O0{$jSL{^mJdkhO61|BLByg?$)Gn% zL&S8o5GxE9_3*GlpGn9Rko2KnCl0qMO{n=QLl&#QtA8Pa$I*v-P-V@AfvNdcA42?>%W<}*Ax7ZcOm>tzsqx!Xeg%?J6{OQN zMXlhhi8i0NuS}~fUUA2Jm8pLzax&w1*N@=|`{9>wK+;QodvWLnF2PdG`=~iGhCxVY zFGhM^z*5Qkob-LuoO`hWrOla)<6w|2if!tr%97lV+tFrL zn$~Nv;kLqyzh7UR6b3U}s&!;6|l4y8%(a+g8A4$@yC zy#Q%5quLEk`W)@fYL&;F{HAVcNZ*P zqDL=qu&{qCI)SOx0D--=5AhdaJlc-7Nkof-cN_iZzl{#ZBL4Cr@?>lVUO^7W8r19i zA^spozK9(;;2=DdPLfW97V{016z|CgQVhulgV*R>t(t~pF$cD5qF>W^Whc(RQccN_ zb}MK|uqKONLET7yZ6h%a8{|0YOEIDB$nTNiN_C_)Nu1O8Yuy$&(MVU&geM%RgU;Ev zJvY5rO7M5WcF|$zR@ob#spSNqLVG{q>vk@Wl~Q~v;WJmvzGteL-O>B-?x=m2p&aej z!x=mY2_B&ERgVq0VOPc4K-NcvKtzejwWV0J~6 z(pf+1N29)X)6&;`^kp_(leVJf&j%o$lE{d5seB9U#@Fq5082>Qph1owl!D!mHhv*A z0uw;Giwdg6dBx=e>L!WDEU~QxB0WWAiltN~Ama?row{dW(_!|=+=jCziKm)zDxNgZ zTz>u2nCOmA`z=t$%tRx`c)n4P`A!{-W_laOJy>)?;dDnf(!R_AR`-fhpffCD4=@gi zWnNJ@O~s;`o%*!~>0@@$+Dsw7kn1dBYO3K}z$)HYi>1$eA^Bu5wNwXd{1J|H&DxOs ze$XhW=n9|5dDt|d?x=UXh&s6#INBR#qwzMBI#}SvO_sRU2L+@XP(EJdbD55FD{DIz z$3?f!6By~=p`ywVESQ{S!x^+ppVM$q+CLTY)vP(x8BlJneLjz>F>s)E%2KmPYreh4Sm0 zBayL?l=mMvrq|C2uA->|9z7FQ^_zcg(WPmL9;7Q%xR`$`OBS)=wV7|>A@?aDKa3tX zD_tQ6`lqM4{Z0Yz(+PYh=2__@e^HSKNOL~AKnWC`^PVO#@Rt`BtM(PRbgr;j6 zGb7#pkWNAcXYm<3BdJ52P~aM^V=yZUcJ250)sE=~2y_b5}U?$T_Fv!cR`BoR+w&9Nmaahj5ELn7+< zm<9T@?{%K9qxwiqRlJLC-zMNTA(@2W%u0)cAWfToXWwLGQfdk-*%i)KE`>(x1Wl9D zFjyF3RSPk~P%$J+0dg$f%v=tT>+y+`>08iRO$|fEEwyk&0?U?BW^gQUwU9HjFQhew zX3Vl{;Bl>|! zi&@E}%xvU3=c;H~mQv6NtIGSNy+5#VB-sMLdXe-{K=KyA{-Vy9aI3+Ju`vNw&PoFm zZ6j^B&VS1rl3xyWdx51*jTIu-aYAN&k%^U#DCE_F$s=ku+^JJ%5AbBJ<2p+~==QH&Qn8ldH`0?1h7#s+rP*D%2+{F&u~ z`@&o}G!)mtzEg#v5U;e>SH=rA> z3TFX(7fe(v}*p+ zC9vH=_CRa+=!E2d^_pPS-}M~z+Kcg&Noh=w_AgFG(RRf z=Q?or@Xl4!&YFhmot%)Q8u;z_MyF_W6#_qFJVuz%+rTrC6dmRXbK$s#7cfcjlFaV_HrXIpwvDFvhXgCHf;lH5bf)p`c5JAo9|T^lwd$>;0a=YpmPJ(AA&WiJ(GQAnE9+b7J(!XzzIy@9Mv%1hj| zL6sHhQ7y~bhVus0WjRqQ-ps)1j_4(4lT40@Ju0EZg*t5!Icto9c1$k3jxPf5T4c`| zIIbglsJud*XH?Aa!S@bdqZ72FX^Y0d8_>cGEt2oHFssmT&Ar1{0sjrRI2LZy8Z^58=c%t6?d;rNC*%7RN#a~@z{aD zXg^%aNUJ{RyB^W56b=-|mJKsT2?d4Q_+9L!71BV|bWN$A+Bi-q0m^t<;e@4) zgH9t|mp2JzcYC72`ss9sFL)jrzl* z-UFMPZb}?n*ZRq1-5?_M~Z4` zjDq)p#s}n<5$s3%y42DXg)6*TH{BIIUER4F>BU@78{?I1adp1I#@0$rnd0i)uoeu; z+9^ll|BO2Nkc}4J%@yFzZ`oN2m%Y1J`POfSL$`j@RaAV^-VY%u z(RUSeVIvUGtez`Xiyc+*MHPQCR2n4AexfKQklU+1Q39qF(jd4$XhMch+GplVhMGSW zG}*&+26C@J+f2DWeXzYD8VE}z{Uuc5ioBPDP0tlGT_Jf^h;Dkm%??}Mbj@yFor@#| zP6Ayd?HAUQt8^|$&CXU1U%=93kVl5_*3n1y%de;axpdO9JVroSqdm!G1HkS|@g!M? zh(j6;0w^9#4KY|jc!3yfFbJa&sMq7tuzS*rP zx~Y$DdUVr@vyZx!fR6bSKc(yp6gpEk{RtYcJOhQaF{S6V{u3xL;9x=DY6%ToNNFqY?ccb=_MAONmP~TAlDXETNt2hQMl~|R54rjQbNK) zxr7n=!Co9C&}#tU;F=uEn9hW5)OTlOVEiCSGNupsxaz?2ic2;Dj?(6i~^j zRc4wVbQNA_@b{3zS>yO@M)F0G)s69N`vzEAoaA3 z^txAG7G~p>S>%~av(^|osmwMds?`@x!rYS7%mq3pZ;<>a(=;&H+qOI;kMiqQgybB* zZ3PcxYb1uOad;YeC~FSxCa$a`!)v`qmdA?*DHdQ_+Wwtz`?sOJ)&(*WRKnNE&8&eV zGeXD^IU`xP4^Hej*Tc!Cd{KB-i39^;Qy?EKaz3Zi!vXp;9T?)gBlUUNuQS+0{yicc z4<)@L986|!{f3dZSmuh4tju%bBcv|TjLJDdzk z#`DBAX&<%|>*V3gPkyp`vJQLdUz|J&rkJn z`DMyej{6nHs$<9z}!{=R!k=v0xfZ2V*Wmv`$GVEltX zSwPZ#%G*O!opJ0Ukxw^Bacrs-$COK`*qw-rGzFiuM4>RzUd7AQ4jy@G7#WX3jnyG79!43Q>SidY^K}p!{c0 zC@6NxNw4=Hqpy{dvV1eau;-+I_|6obi331VddbIvxa2O=(ycyZyxod*KYKaJ-$*`~ zI-jcz?QJBr@q>uTk~{zv7Af4sxqv@?p`9rrV?1ct7Tt7YVG8Hl5{0=?`DNlfsL-^Y zZ)Y?cZIP~v;%BxYB6Nx2i?p^`B9_opTsX@%1dQ*Hyb&f%8GA^6vRMHJ7AJ(C)n+l` zu_Ur^ih~Yq66V`N^5{^7$d4|R`sQGQ&Y5sXm8Nu255`Om+*?DZy#sV#d6R{&;qarv zeHO5Tik-qhfjLi=0cq<;ohT~zdK4RV9Y@^uXhv}tDKn6YL-O`!242j1L|@D2+8jU+ zQR*v}?GE9mizurNK$i6(YD>1dpGu*s=~uy{oje|0#9fc#j#>=vBT4tero?4M7roqk zb;#?Td<0ELk}f6{*entlY8ap`1?7%c$z9#Scy z%pt9We=fs;ijoV9Y$ieaAS6HYA=9bBf3-xO-=}>&@!-rdTcYj2Ji3`xw%@$c2lis> zKiScfVB!G_!>K^6dL!r)$Or1i7-Zl&b5J_S{;By$%2lX3hIH#I0`^76Fo6=u_ci18Of^7&v+Wx(~f%9EA|58bPu zf+s37E0-kFlh9Fl(30V~Cn-4i1j^X=0o)w{h5*)|0o~(ZGbMpo;YX3;dtdir6YH)KaefT|p&?ltWJNApaw}AS zwX(M8$_kfDF`FXF;=7%W2rJ(lFBIC4;Y>S|Yad?BS{0BNV@g2~LHfK5@lwN%`hP~S zLcs+*o>g!X&KiD+6qG!c@cG3~uO+3wf+sKvo`SNe#!c>&taRJ}E`FxcUOcP;>F`^u z6b;7aiDqUmMLa-B^HWAi#rcC!-qWgSVx?~Y53m>aK~T@u5&@;}R?wmMJ5d}!0M+kz zrpNJaYcl9(;w-sMN{ADd7~!ER*q4qPH%6=x-aN zq#xKh*=Fg|#!JE>>w^k+oQ}#j?-#VN{Fy>R^EgnLLZIYM4nzpA{P=$7qj8SzweLm= zCEchbP9NPF5gC`MK9(s(L>imp^o=)|Xe5pGzoI0QE7nIMl1+R!nzx#iP9Mgf-ZZA@ zOM%%(?9dR|NR^^R5h1(w8+r)P{|w_1*oh8e@6 zhw8>;C0(%PIui=Lq72pOgxt)OW@uwF0E+W0v>kWvSe#6r zxHmht?H9bCZq4jzJDOw2TlY?h)JDN_Cp@cYN$0(j@XKUW`Jz!Low1!-KFVMLO3C&e z>frfDdbTM^uoYh`oD)e$o!JtOIyG%r&yF7Fts|tleCU){oH1`(iUue{a!grf={aXs z_nERRNfSleBuadoS$f5pDB(DjyWZlw^`28s?5Zm+s_9TgKhm?)znvt_oR%`y{dVUH zwxupIYy8E??1GCwTw|rF8DrsZ@Yu0NvSH@!8588()G-ky~Ta>u(!DJXWnqpdrFw&EfiV=5q=-_CU!f^u?Od)HYUHd zZiRR1Ej5#Por#;${TP`#YmREw&&5I+**9wjjv?Mz!(t}HB2{ySCbQB{A=GJ#c~F=spgsG9s8nR&75pVDeHS9H&zYNf=5@p?@UqrHj-3B^ zeZ#XX8ru*Bx?}{R$1}Dw0$~s!dZM2@Fu`J45OL=M4y$7)Kn0Lme)W=j=O#K7I2>`H zyo?82MW+C1j*bMDMtMygoZ15s>Tg4Gf+FNdUHNYe8 zS12Nys~}@e3vEfIcZGs-F15ULmpeTJ`8n@*?W(*3iL+8pTa3*Ugpecgn)aBbpC`U( zW#xWL{UX&xq^DhH!W>&$(I~GcC+U)RAS@g!_+RbbbfG)!P%$+I<gQm6xwFU7(X*%r#yptW}hz0iPudfBTL zTD_D{Q&lb`e@#BRZ&+C&K%(~tFj%`GleQV@I=oC}o~t&zGYo7eAXuj;D`7IR2PphB z4(B^h_X*n>VFMgVpPvrhAjbR6{nvmXc?!ZZG!6W8n+<>tvi|-gwG&F##gYB@k7w4z zk?-y|jsg`791axd;-q8+92lSmanhW-xGM(+GKF&xVt5YH4l?3_Q7Qja@(eW~Jn3kw z!#eFnTZ@RY0>CDn3FOHKQovDC7a|8ANMW8+$OjLk%vr6d4(KOnvaemlM`kMq2{kv( zL;QJ26COl-A>_ZOf8D)*d_Lkc7a)EWq<=vgx)AXadmC{xvHgzycj-UMa#{emV5psp8SPBAdYUG#0j z96{<#*MTlPoP4xU4|qJKI!Z=VnTxdQY+5lW|J#RC;hbU}9HzrQZ2S!vas>L-OZ(Gt z=$MSP&-P%XPaA1@iq+nLjC`|J*j7s&XGx`M*uFA|EGVegmeOSu`Aqe!G#0Sf!Z3a_ z-pATf;#&vIs1&kcSyevf0B8?_q5IUTLdnE3Bq*l`AEW9ZXcUV;C*grD*ZSQb5Y%*`bdgWNMEXJg`y$^YA3dbUdF0AN`FI8y{P5Vh>7E{WM-Uk~A*E%B zB`90{VJ{**s?x;ZEpPNXoUQU$=`REX@$LmKKsC8`Z>i{9how>eAH7yl3)@!N=&GCg5Pgq^}tv1;HXM6Dhl+AokuYdNvYq{p3 zFdzlKtHpj`Uo5QTI+J-b47Simq84YU^A|DFS|7P*u`cypUkQ{i_Wks%;kgoFKwVPZ zeoIPo{(2U$vY~|x1VoT^i&MtuFH*IQS+9~f)depaal=Cg+u|z#^F*o6uSD5*+(T_+ z7Ijg_VlnE}@tn{P0B}a~DI{1i8P6e;mJDIOQpmg|Y0=uqE_f+V+8OBsvUQ2RzxJMd#{RcN{j>!KJq`(nG-c?s!z4x~Q2j>JA9#NNnv`$4Vi*v!0gt zm3A+Mtx00VpzIEDFeqOaBiIYEnJQ0Wgz8(WQLgE2_eN#Rm9P5q^i<2s{pdx+9 zAKOPk`>1a%Ve{`Hvadpqr<2na!yP-6!=M#X6&}9P5WPM|$aY0n7Q#+NFH#x4 zv{CDpI?}mLZA4HW2M2`S=Ky$S$--~7)f^c4KSth?$(t|DVT&)vGmY~$$dmDP*y%6ShH?|i&{d7sK(w0Tg-ffE`+ikuTng6P#5b_Af6FsD5={=0Si41u3tYdnpE9`H4 z891cnmgb2*Gx~ND8ewQX=}Um1q+u;@Y})3fJ6f}8vlkhwJrG$D|EeY0{od`34oCM> z@2&yobB(PEd?Fp9VbLn@7*~y$ZMz~?*$kB(wyH3MCf=2M;2nA956(Ptb5Mk1BfOc9 z?b{o*umSnK73&Nxcr$1z#JS~!YSv}{ce}8Z7V3-8vG=(N^;#2_9tqL6mx!=5KZL{Y z6-)PpuX3PlCRmBdprp{P#!_iB-AGmVqzwXV4=~iAVI(jJHAGq%?6jaO9G`&nHB~x6 zZ$AKgoh>d)dm*>+qN> zTTc4&OnoC=^1}Om3}v^uaVnI8y1cg-885j91N;(_V}g@ixnRI1z(VUX!&5SZ!eLPx z4VA4C?hC9@|=)LLmvXXtapORb%5kPrf2ek zWbR{5h}^vJSY=Fd@7vQ-E|v(r^51(&S=H=;xxr8!^>kCTMcTSTic|gSjUcY7e5SOw z{+FtG80U~FkC!qp2gr`cr!zAH0`FQK%G<0c;ua^-5QKx9{&j)FHVtSWih%RqJ(;-K#3`LE>Lk zh)>o}SzV49ribiWlZw9}^=tI_2XbM}MhEdz(G`@7LJ{DI(g7$GkRRYXXfg{w*a z2;mTjsflo^mq3~h$<(l=c8eHYrqREsJYeFWH0h--PjU06f?W`74l62>|YI)KC8NE)2dcdogv1^9^OL==EhF zG*oPSq4kM)*JmQcYyidcP2li0^zkjG1W9`V=4^veE zbpe?R2ueD#H{wY(>t3;_T1>DtKl#DegQD8*hnj%g>X*EDOq0cX{!!bTcBE6nxMV<< zKcp7LmUVbi#5tQ7kpBtZK?;BS;tf{Xc`$ zQ_5*L<2GTiFcg3;B>fWD2*0O$$&vM`F)xR>6t;yrnSbjg?)9^oPkKq(lSYt=GoBn* zNtY50xaqQhT2Nfo>rQrj9G7wq(6e4u%D`5XV-TKzc)=?}7h5wB8se0hm@haIX0r^m1cS-=F5Tyk2>yw#qposP_Sq=<( zEs{*Vl$P>+SHUg`$sfZsRiN+$^ag5;Fq(;dE1L7H`7iLCAB`z)CYi7 zJNp1I3V&6Db$ta0g|^W&umDbLg?I&LXEmavWPtCUCHSeaYO2p2N+6S;n$3*pA$y+M zgfSWT^ve!fo&W@U2zo;pD{$ovuF;jrt|elO>rgQ#P+RXoh|T!49p!)8&gAO=#~Lm8 zVYgx-4u!&~Q`}ocG-{$7WsY}mv)tn@fF463(p1};FCwx^gh0@-$iR{bm0!Agwle^T zvRSd7)=J{46ij7dPRa=}Ewo#D4-FfWnr?~go+L5eB|_~@uTkJmgk)E!3OEZthW+A* zWf~yR(-bZ_UbyW6KL~w++>hkS(^du)d(#G8A^4WVRxFKV`vM>)<^of>N1W~I4<4*Y zcT#05pyUZ)<*krnkiEF?mnu~%P__36dj*tvAF0`p?RW;_ZAZ2;ulcuw{lMbv(VhvF zq<&V|#e4<`AgLAh8UUV9~Ct+Dd!Hv21p{C-XYb&K6YrjKU!h z9Gq~y1sMv2<3NX^5BeB?b_e8_m7id#hl+pm2ISpJD=bP?$b~&$+;?HI{Y))2Sdla} zs29L(2v8n+i8@WVl$ch~W%eSXI&it284!}s1h^EYg#m};`5-yyNMSbjkPjRJ<_PQ5 zGvz%b!)a#D1&HX(h)L}E-&T>Un{5gSNdDy#onLMRldrZuveO6(Ck+->!3ov@!}@#Z2k#|7jyqh*wwc1` z3O^Oha(KxBS=$4;AIo)`nMZAgMOPNRu9%&lw5tp;I>Tmw4_#%cZ8_-qPpB<`I!>4gsKU|k(rdQENraw_ASVi%R6y)B#1KLOp>GuQ z4ap_t@W8{(kBJ1D5@`B*co?caeg?x-!}0Zl-WCH(h_5sb}L(=!J z1$?43AU_GB(J0hFFbYb)4UNhBTXYWXnSmQlOj9o1C!SZ(8Hhbep9HaRb8IiIHP~KT znk@< zh2Ps0G{jkHbgJFulNb08xsH8tP7u^feh)VT z34)aH;1u4bbELxI-*<(BU;aAuzvC5-A~KG2-z1J@10C$P;ya<0Np-}c^7MtAt&nyg zu$s5weEO8Wr$&8GKSY?|N?f+d(&Is?S|M>sk32%@>w$E?gr5zHT=QS=KKs-EK6~pQ zo^1ybju8|&DsWf#C*DDEZo`rb!XCZd`S%uMI;*&4HQBvgpknC;w_$qm1+u(V&U@Xi!8qUIs zU>bN2IDOx@7YxKF`Q+jN*24!62uWIng%YTna0TLH=hFe+1wDuXTr9n>NH)Y3P$*J`xU@r7|}U$oUDM-a+G?Sxn6+MUMZF2GoX! zXrh5pq-6W(LGSp7mEzIMZT-Ygl^ADAqY=2(;1Jof{T`e~KHqM*FQ(^&txwMmyBjys z5Gs2^-1Jm&zKcK%BFZK<_4nxl$}oVWIsgI%U8Y}h_~jcx14JI}7dMJgMf+`qqF_5C z?k(s6SJgh^h%%eWp`5}>Zj2t<)r@#!byNq|$y6`bY z)&((mH5B=a-VrWFfDgu|!0`ivP`zG}ulADZJI6bufB`Vx!DVK6^B2K(QR{v3s{u1? z2pV}Ic8mCLN z(Re0VPHA=|s!>84YI|n~Kv0nXj*%gWIYs^RRF|Yq;W$CxNZr3mxnIuvU_hf^KJVAI zF`a{1Z~{lqpN4KVIS+U8oL_$0|A4|TtDhEgkvlhEaOeSe@yovkCWZ6o{nV&Zo__$8 z3$8;Qr3VLhi^7=}C8F#S@nkbN_#@{k>Rref*`a1nH1qJu09&+R+EeF`!#y(2ahHIz zw-Fpcvpjn(PHBsCXd)|k+L^Ow75>ZzP|mo&5WiAlbbBqYcd%Ts<5HA(E-}9-%4V=d ziQrwfEVjV|;bybB-42w!$-Qsd z_vh+6B3X@lhVYixAl}keh}4~&YOA1=fq)fM7*8i-I_yCQJ(=MhT;r$T@J#7m`0hA3jIz839N}i6z>Csndr|h3?&Sz=pW!qpf3Arvjj>#O|yh3__bUruGkqp=$ zxcoX;@VUmEbbveL2^SXdG5D%ZiF}*i2UmOi@_}GPxD^AfXkDoyfhzUa+62J<)dF{n z1z+eCB^5q>O`FQfEc)FI8f~Y->-MvK{?F=gTRV70 zSsQDmZK`3xs5$q!zIyW9^MjZx3OV|G2D9EzzIi^GdCX64JfDY;l3}}sF=jt8@0y%2 zQ<>)~n#Nva4`@95ruAz9KISKTcFhG4)VpgOsogz455jVciYEg+=n!_W%P(ICM~7ct z2W(pdLHmBW1(XwtR^u}GJ{2Nkj)9@D=P|s4ytOBjUvr9Y@XMbENXs6bW6>#;YQ8nF zKav)nQovlGPL#nS8adUSUs>4r#;xdFE^{(i(pZX_q%)2}3jpoxa*qc+o?>Ocxs@gc zn8hQm38EF8f1>y&?I9|H{t>-|w=U28i0tY^{U7*FL9sqf67sgEZr2!uXE07F-c&&$C#a|k|WX@_aiU|!Um2yUKaap>Ziy2#&Hx=?8FDw4$9U!uR zWxE-J21wy(CW#(IPxgq&!I59l?J$*QP34R}7zx#i7=KVkHjH!Xf320Jdsd1tA z%M-z-XWk0R&w#!g-KsiJ1Xjk2)W!(P@*jxqA9| z_#7}z4_70e>d-O3C>Hw3@)zzIb*b^4PCn-GcJ3RL8QF@m6I+q=xN;f3`GMgLG?Kz> zS=2EVqwFN8v61sH=!cg7p}w!yUOd}U(NV~PQAGN`n3?$8|3;NE{?OW9TtDx{1UB9q z01jR;U1tDc^J8GTj%qEAz2kt=8~0Xar}aRzV_5XSSCH>h9<|pG?ZHap{!kNagqSQ+ zzAru2(4zwYuurScBOCYq6F{xf{Ym35fLCyOG>32jHnJBne2=QgU;d$tZ-~06g0iN7 z6QV2WHhok_+ccggukJ4xUFRPOH}CpK!0!n^*4>ed0o@rb-jNG~nbw1rsbKTc(uu+0 zAl*mX?#N?)rM%YMW_B^PJZ@hwUJ{4vjBBa`04#}j(Cgm1Vb z|I$li)Ds~`FPmvX`tN|PG=U1M~FxCoi@t#N^n-0CCIswYxw`Azy2f|m^$@;^iCQ?NiBZR1$ zrTRlY5ANX>QFDOS)6ci*{pP!QrS)$NflmeQ=Iq^E4Hes=JOb`% z&cppy$fNGoN5Vbr7k&30RQd3IY&fr9d1MfFxUwJwH5>8ikVn$%OvFEHMEskOeuPvC zWxqm>q5L-FG;JIK;j54`M^C%F`kFauM%`Iy@Tj_dUM! zaRlq3?dV?~LiG`^r!qsK?2$$AoIgQ38{(TP`o?NliunA+WckrSr7u2#c#j?NyH_E8 zJLJP3L;PS!9|5p^9?}I!Yu3P0m-lu3^Rm7?`fh&v@xJ>@Wm3F@S*G6A*_-_K#Pl2nM Npk9_7C2No6{U02w|G@wN diff --git a/boards/cubepilot/cubeorange/extras/cubepilot_io-v2_default.bin b/boards/cubepilot/cubeorange/extras/cubepilot_io-v2_default.bin index 3eab1b7bde3e7607ec5af723162e9ebda9537246..4d29f3a0415562d157333f3a3e4cf7b3dc991db0 100755 GIT binary patch delta 16717 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 RZ~kccQOFOciDT!3{|EMP7@q(D delta 16568 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 RZ~kccQOFOciDT!3{|EMP7@q(D delta 16568 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 #include -#include +#include #include #include "board_config.h" diff --git a/boards/freefly/can-rtk-gps/nuttx-config/canbootloader/defconfig b/boards/freefly/can-rtk-gps/nuttx-config/canbootloader/defconfig index 4c8d867815..fb9069dd1b 100644 --- a/boards/freefly/can-rtk-gps/nuttx-config/canbootloader/defconfig +++ b/boards/freefly/can-rtk-gps/nuttx-config/canbootloader/defconfig @@ -24,6 +24,25 @@ CONFIG_CLOCK_MONOTONIC=y CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_SYMBOLS=y CONFIG_DEFAULT_SMALL=y +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set +# CONFIG_NSH_DISABLE_FREE is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_KILL is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MODCMDS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PRINTF is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_DISABLE_MOUNTPOINT=y CONFIG_DISABLE_MQUEUE=y CONFIG_DISABLE_PTHREAD=y @@ -39,7 +58,7 @@ CONFIG_IDLETHREAD_STACKSIZE=4096 CONFIG_LIBC_FLOATINGPOINT=y CONFIG_LIBC_LONG_LONG=y CONFIG_LIBC_STRERROR=y -CONFIG_LIB_BOARDCTL=y +CONFIG_BOARDCTL=y CONFIG_FS_PROCFS_MAX_TASKS=0 CONFIG_MM_REGIONS=2 CONFIG_NAME_MAX=0 @@ -64,4 +83,4 @@ CONFIG_STM32F7_PROGMEM=y CONFIG_STM32F7_TIM8=y CONFIG_TASK_NAME_SIZE=0 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=4096 +CONFIG_INIT_STACKSIZE=4096 diff --git a/boards/freefly/can-rtk-gps/nuttx-config/nsh/defconfig b/boards/freefly/can-rtk-gps/nuttx-config/nsh/defconfig index 7f6030b465..2d72923509 100644 --- a/boards/freefly/can-rtk-gps/nuttx-config/nsh/defconfig +++ b/boards/freefly/can-rtk-gps/nuttx-config/nsh/defconfig @@ -38,8 +38,8 @@ CONFIG_ARM_MPU_EARLY_RESET=y CONFIG_BOARDCTL_RESET=y CONFIG_BOARD_LOOPSPERMSEC=22114 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y -CONFIG_C99_BOOL8=y CONFIG_CDCACM=y CONFIG_CDCACM_IFLOWCONTROL=y CONFIG_CDCACM_PRODUCTID=0x0016 @@ -48,11 +48,29 @@ CONFIG_CDCACM_RXBUFSIZE=600 CONFIG_CDCACM_TXBUFSIZE=12000 CONFIG_CDCACM_VENDORID=0x26ac CONFIG_CDCACM_VENDORSTR="Freefly" -CONFIG_CLOCK_MONOTONIC=y CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_HARDFAULT_ALERT=y CONFIG_DEBUG_SYMBOLS=y CONFIG_DEFAULT_SMALL=y +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set +# CONFIG_NSH_DISABLE_FREE is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_KILL is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MODCMDS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PRINTF is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_DEV_FIFO_SIZE=0 CONFIG_DEV_PIPE_MAXSIZE=1024 CONFIG_DEV_PIPE_SIZE=70 @@ -72,8 +90,11 @@ CONFIG_HAVE_CXXINITIALIZE=y CONFIG_I2C=y CONFIG_I2C_RESET=y CONFIG_IDLETHREAD_STACKSIZE=750 +CONFIG_INIT_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2624 CONFIG_LIBC_FLOATINGPOINT=y CONFIG_LIBC_LONG_LONG=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_LIBC_STRERROR=y CONFIG_MEMSET_64BIT=y CONFIG_MEMSET_OPTSPEED=y @@ -88,9 +109,6 @@ CONFIG_NSH_ARGCAT=y CONFIG_NSH_BUILTIN_APPS=y CONFIG_NSH_CMDPARMS=y CONFIG_NSH_CROMFSETC=y -CONFIG_NSH_DISABLE_IFCONFIG=y -CONFIG_NSH_DISABLE_IFUPDOWN=y -CONFIG_NSH_DISABLE_TELNETD=y CONFIG_NSH_LINELEN=128 CONFIG_NSH_MAXARGUMENTS=15 CONFIG_NSH_NESTDEPTH=8 @@ -112,12 +130,12 @@ CONFIG_RAW_BINARY=y CONFIG_READLINE_CMD_HISTORY=y CONFIG_READLINE_TABCOMPLETION=y CONFIG_RTC_DATETIME=y -CONFIG_SCHED_ATEXIT=y CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 @@ -170,5 +188,3 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2624 -CONFIG_USER_ENTRYPOINT="nsh_main" diff --git a/boards/freefly/can-rtk-gps/src/can.c b/boards/freefly/can-rtk-gps/src/can.c index 9e9d09c4f9..4fd810d041 100644 --- a/boards/freefly/can-rtk-gps/src/can.c +++ b/boards/freefly/can-rtk-gps/src/can.c @@ -48,7 +48,7 @@ #include #include "chip.h" -#include "arm_arch.h" +#include "arm_internal.h" #include "chip.h" #include "stm32_can.h" diff --git a/boards/freefly/can-rtk-gps/src/usb.c b/boards/freefly/can-rtk-gps/src/usb.c index 587516cb8d..553bd8f0f7 100644 --- a/boards/freefly/can-rtk-gps/src/usb.c +++ b/boards/freefly/can-rtk-gps/src/usb.c @@ -51,7 +51,7 @@ #include #include -#include +#include #include #include #include diff --git a/boards/holybro/can-gps-v1/nuttx-config/canbootloader/defconfig b/boards/holybro/can-gps-v1/nuttx-config/canbootloader/defconfig index 96608932d1..e2e44987ee 100644 --- a/boards/holybro/can-gps-v1/nuttx-config/canbootloader/defconfig +++ b/boards/holybro/can-gps-v1/nuttx-config/canbootloader/defconfig @@ -23,6 +23,25 @@ CONFIG_CLOCK_MONOTONIC=y CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_SYMBOLS=y CONFIG_DEFAULT_SMALL=y +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set +# CONFIG_NSH_DISABLE_FREE is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_KILL is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MODCMDS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PRINTF is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_DISABLE_MOUNTPOINT=y CONFIG_DISABLE_MQUEUE=y CONFIG_DISABLE_PTHREAD=y @@ -35,7 +54,7 @@ CONFIG_IDLETHREAD_STACKSIZE=4096 CONFIG_LIBC_FLOATINGPOINT=y CONFIG_LIBC_LONG_LONG=y CONFIG_LIBC_STRERROR=y -CONFIG_LIB_BOARDCTL=y +CONFIG_BOARDCTL=y CONFIG_FS_PROCFS_MAX_TASKS=0 CONFIG_MM_REGIONS=2 CONFIG_NAME_MAX=0 @@ -58,4 +77,4 @@ CONFIG_STM32_NOEXT_VECTORS=y CONFIG_STM32_TIM8=y CONFIG_TASK_NAME_SIZE=0 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=4096 +CONFIG_INIT_STACKSIZE=4096 diff --git a/boards/holybro/can-gps-v1/nuttx-config/nsh/defconfig b/boards/holybro/can-gps-v1/nuttx-config/nsh/defconfig index dede82a525..a55f285b4d 100644 --- a/boards/holybro/can-gps-v1/nuttx-config/nsh/defconfig +++ b/boards/holybro/can-gps-v1/nuttx-config/nsh/defconfig @@ -7,6 +7,7 @@ # # CONFIG_DISABLE_OS_API is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_NSH_DISABLEBG is not set # CONFIG_NSH_DISABLESCRIPT is not set # CONFIG_NSH_DISABLE_DF is not set @@ -33,8 +34,10 @@ CONFIG_ARMV7M_MEMCPY=y CONFIG_ARMV7M_USEBASEPRI=y CONFIG_ARM_MPU_EARLY_RESET=y CONFIG_BOARDCTL_RESET=y +CONFIG_BOARDCTL=y CONFIG_BOARD_LOOPSPERMSEC=16717 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y CONFIG_C99_BOOL8=y CONFIG_CLOCK_MONOTONIC=y @@ -42,6 +45,25 @@ CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_HARDFAULT_ALERT=y CONFIG_DEBUG_SYMBOLS=y CONFIG_DEFAULT_SMALL=y +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set +# CONFIG_NSH_DISABLE_FREE is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_KILL is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MODCMDS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PRINTF is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_DEV_FIFO_SIZE=0 CONFIG_DEV_PIPE_MAXSIZE=1024 CONFIG_DEV_PIPE_SIZE=70 @@ -98,12 +120,13 @@ CONFIG_RAM_SIZE=262144 CONFIG_RAM_START=0x20000000 CONFIG_RAW_BINARY=y CONFIG_RTC_DATETIME=y -CONFIG_SCHED_ATEXIT=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 @@ -158,5 +181,5 @@ CONFIG_USART2_RXDMA=y CONFIG_USART2_SERIAL_CONSOLE=y CONFIG_USART2_TXBUFSIZE=2500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=4096 -CONFIG_USER_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=4096 +CONFIG_INIT_ENTRYPOINT="nsh_main" diff --git a/boards/holybro/can-gps-v1/src/can.c b/boards/holybro/can-gps-v1/src/can.c index 5a32d62832..89b8ba2281 100644 --- a/boards/holybro/can-gps-v1/src/can.c +++ b/boards/holybro/can-gps-v1/src/can.c @@ -50,7 +50,7 @@ #include #include "chip.h" -#include "arm_arch.h" +#include "arm_internal.h" #include "stm32.h" #include "stm32_can.h" diff --git a/boards/holybro/can-gps-v1/src/usb.c b/boards/holybro/can-gps-v1/src/usb.c index 7705c0d907..ac46c4a4fe 100644 --- a/boards/holybro/can-gps-v1/src/usb.c +++ b/boards/holybro/can-gps-v1/src/usb.c @@ -51,7 +51,7 @@ #include #include -#include +#include #include #include "board_config.h" diff --git a/boards/holybro/durandal-v1/extras/holybro_durandal-v1_bootloader.bin b/boards/holybro/durandal-v1/extras/holybro_durandal-v1_bootloader.bin index 28ea4d6af7e67ab887a63ec705d857a15ec818f2..78c96abba255b4c36e4b4acf464bcbd908d01df6 100755 GIT binary patch delta 17435 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 F{{#Png9!it delta 16780 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 delta 16986 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 diff --git a/boards/holybro/durandal-v1/nuttx-config/bootloader/defconfig b/boards/holybro/durandal-v1/nuttx-config/bootloader/defconfig index fa77567d82..9bb2c6d4eb 100644 --- a/boards/holybro/durandal-v1/nuttx-config/bootloader/defconfig +++ b/boards/holybro/durandal-v1/nuttx-config/bootloader/defconfig @@ -7,6 +7,7 @@ # # CONFIG_DEV_CONSOLE is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_SPI_EXCHANGE is not set # CONFIG_STM32H7_SYSCFG is not set CONFIG_ARCH="arm" @@ -23,10 +24,12 @@ CONFIG_ARMV7M_ICACHE=y CONFIG_ARMV7M_MEMCPY=y CONFIG_ARMV7M_USEBASEPRI=y CONFIG_BOARDCTL_RESET=y +CONFIG_BOARDCTL=y CONFIG_BOARD_INITTHREAD_PRIORITY=254 CONFIG_BOARD_LATE_INITIALIZE=y CONFIG_BOARD_LOOPSPERMSEC=22114 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_C99_BOOL8=y CONFIG_CDCACM=y CONFIG_CDCACM_IFLOWCONTROL=y @@ -40,6 +43,25 @@ CONFIG_CLOCK_MONOTONIC=y CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_SYMBOLS=y CONFIG_DEFAULT_SMALL=y +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set +# CONFIG_NSH_DISABLE_FREE is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_KILL is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MODCMDS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PRINTF is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_DISABLE_MQUEUE=y CONFIG_DISABLE_PTHREAD=y CONFIG_EXPERIMENTAL=y @@ -51,7 +73,6 @@ CONFIG_IDLETHREAD_STACKSIZE=750 CONFIG_LIBC_FLOATINGPOINT=y CONFIG_LIBC_LONG_LONG=y CONFIG_LIBC_STRERROR=y -CONFIG_LIB_BOARDCTL=y CONFIG_FS_PROCFS_MAX_TASKS=8 CONFIG_MEMSET_64BIT=y CONFIG_MEMSET_OPTSPEED=y @@ -90,5 +111,5 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="bootloader_main" +CONFIG_INIT_STACKSIZE=2944 +CONFIG_INIT_ENTRYPOINT="bootloader_main" diff --git a/boards/holybro/durandal-v1/nuttx-config/nsh/defconfig b/boards/holybro/durandal-v1/nuttx-config/nsh/defconfig index e849cf0bf2..9e0a5d45b7 100644 --- a/boards/holybro/durandal-v1/nuttx-config/nsh/defconfig +++ b/boards/holybro/durandal-v1/nuttx-config/nsh/defconfig @@ -7,6 +7,7 @@ # # CONFIG_DISABLE_ENVIRON is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_MMCSD_HAVE_CARDDETECT is not set # CONFIG_MMCSD_HAVE_WRITEPROTECT is not set # CONFIG_MMCSD_MMCSUPPORT is not set @@ -40,9 +41,11 @@ CONFIG_ARMV7M_MEMCPY=y CONFIG_ARMV7M_USEBASEPRI=y CONFIG_ARM_MPU_EARLY_RESET=y CONFIG_BOARDCTL_RESET=y +CONFIG_BOARDCTL=y CONFIG_BOARD_CRASHDUMP=y CONFIG_BOARD_LOOPSPERMSEC=95150 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y CONFIG_C99_BOOL8=y CONFIG_CDCACM=y @@ -59,6 +62,25 @@ CONFIG_DEBUG_HARDFAULT_ALERT=y CONFIG_DEBUG_MEMFAULT=y CONFIG_DEBUG_SYMBOLS=y CONFIG_DEFAULT_SMALL=y +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set +# CONFIG_NSH_DISABLE_FREE is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_KILL is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MODCMDS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PRINTF is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_DEV_FIFO_SIZE=0 CONFIG_DEV_PIPE_MAXSIZE=1024 CONFIG_DEV_PIPE_SIZE=70 @@ -128,12 +150,13 @@ CONFIG_RAW_BINARY=y CONFIG_READLINE_CMD_HISTORY=y CONFIG_READLINE_TABCOMPLETION=y CONFIG_RTC_DATETIME=y -CONFIG_SCHED_ATEXIT=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 @@ -236,6 +259,6 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2944 +CONFIG_INIT_ENTRYPOINT="nsh_main" CONFIG_WATCHDOG=y diff --git a/boards/holybro/durandal-v1/src/board_config.h b/boards/holybro/durandal-v1/src/board_config.h index 9335693a0f..ab2de8be7d 100644 --- a/boards/holybro/durandal-v1/src/board_config.h +++ b/boards/holybro/durandal-v1/src/board_config.h @@ -254,7 +254,7 @@ /* SD card bringup does not work if performed on the IDLE thread because it * will cause waiting. Use either: * - * CONFIG_LIB_BOARDCTL=y, OR + * CONFIG_BOARDCTL=y, OR * CONFIG_BOARD_INITIALIZE=y && CONFIG_BOARD_INITTHREAD=y */ diff --git a/boards/holybro/durandal-v1/src/can.c b/boards/holybro/durandal-v1/src/can.c index 3834074f37..c71b2e8793 100644 --- a/boards/holybro/durandal-v1/src/can.c +++ b/boards/holybro/durandal-v1/src/can.c @@ -46,7 +46,7 @@ #include #include "chip.h" -#include "arm_arch.h" +#include "arm_internal.h" #include "chip.h" #include "stm32_can.h" diff --git a/boards/holybro/durandal-v1/src/usb.c b/boards/holybro/durandal-v1/src/usb.c index 9d5915c0e6..6d42476b71 100644 --- a/boards/holybro/durandal-v1/src/usb.c +++ b/boards/holybro/durandal-v1/src/usb.c @@ -51,7 +51,7 @@ #include #include -#include +#include #include #include #include diff --git a/boards/holybro/kakutef7/nuttx-config/nsh/defconfig b/boards/holybro/kakutef7/nuttx-config/nsh/defconfig index d97354e910..50065f5b5c 100644 --- a/boards/holybro/kakutef7/nuttx-config/nsh/defconfig +++ b/boards/holybro/kakutef7/nuttx-config/nsh/defconfig @@ -7,6 +7,7 @@ # # CONFIG_DISABLE_ENVIRON is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_MMCSD_HAVE_CARDDETECT is not set # CONFIG_MMCSD_HAVE_WRITEPROTECT is not set # CONFIG_MMCSD_MMCSUPPORT is not set @@ -40,9 +41,11 @@ CONFIG_ARMV7M_MEMCPY=y CONFIG_ARMV7M_USEBASEPRI=y CONFIG_ARM_MPU_EARLY_RESET=y CONFIG_BOARDCTL_RESET=y +CONFIG_BOARDCTL=y CONFIG_BOARD_CRASHDUMP=y CONFIG_BOARD_LOOPSPERMSEC=22114 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y CONFIG_C99_BOOL8=y CONFIG_CDCACM=y @@ -58,6 +61,25 @@ CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_HARDFAULT_ALERT=y CONFIG_DEBUG_SYMBOLS=y CONFIG_DEFAULT_SMALL=y +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set +# CONFIG_NSH_DISABLE_FREE is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_KILL is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MODCMDS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PRINTF is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_DEV_FIFO_SIZE=0 CONFIG_DEV_PIPE_MAXSIZE=1024 CONFIG_DEV_PIPE_SIZE=70 @@ -129,12 +151,13 @@ CONFIG_RAM_SIZE=245760 CONFIG_RAM_START=0x20010000 CONFIG_RAW_BINARY=y CONFIG_RTC_DATETIME=y -CONFIG_SCHED_ATEXIT=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 @@ -215,5 +238,5 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2944 +CONFIG_INIT_ENTRYPOINT="nsh_main" diff --git a/boards/holybro/kakutef7/src/usb.c b/boards/holybro/kakutef7/src/usb.c index 0ea22da849..4ac9829971 100644 --- a/boards/holybro/kakutef7/src/usb.c +++ b/boards/holybro/kakutef7/src/usb.c @@ -51,7 +51,7 @@ #include #include -#include +#include #include #include #include diff --git a/boards/holybro/kakuteh7/extras/holybro_kakuteh7_bootloader.bin b/boards/holybro/kakuteh7/extras/holybro_kakuteh7_bootloader.bin index 5a54390368d45a973fbfdeba21fd022796f2be48..31b9f65bddeb7c94c54c5d0c3a91cb29afe38f48 100755 GIT binary patch delta 16895 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 Cpmq5G delta 16109 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 #include -#include +#include #include #include #include diff --git a/boards/holybro/pix32v5/extras/px4_io-v2_default.bin b/boards/holybro/pix32v5/extras/px4_io-v2_default.bin index 51403914013d2f9cecc849dfda750db977a95303..957f0f13a12e8eb8a7979955f29ad98d82433933 100755 GIT binary patch delta 17038 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 delta 16986 zcmc(Gdwf$x+VITD$)#ya)0RSSlw4X!8!jy^Qf?B`_OvC%a?uq5HBc_6!a@OM!3zl# zw1DoSqi&_3V0FEKuT7y!!ICQYdf!bzc7e)TMU8E}oRrErX`1AFCaJ6M_xt|({(1BJ zO=ix_oM&d9dFHv!`LvxGc$=}CMuR z0fq4D5EfPpl}K#H&)!868w;h_pS{R+fI(U|9%&Im+EuS1)e|T7;| zS`G`lq#s-NKwEK#0qSGen7FVwKRnllKxG+%r&*g*AgLm)cItNYDnfTyaMVkt+=uNVplshLh4g+C+u&(n)E# zHc277q~(xsf|Mv1ro8LYbRb=Eo1ELdUd!#4Y?`pRg1n}j9(z1^WMjwo#W2@b$dAfR zN;N!(MI~9SD!`chRrSo+$3`QSrY)ul>9jEW#vsxuE5hQ_K}7}9g~bEJ8l#&!J*cTn ztU$ul;0S1YJQ9F0jHapVwE zy#eVIr1OW!dof%_K~Oz`@x*Jx;>SbXfd3DMIwXZg27ptELETi~kmy9(!g#7}8xp4b zl@nQ?hVAv#b+llly*nML6jn`}tPhRUa!fuJEaYc(3Z75ovDc@r=duMQ^9&%STheh2 zmKZnkO~B6Yg#^s&dW3|Q?}w^!w-f%e1U4bgweyCmVJDHtwZ(1?=W&`!nHC9~$op}H zG5IXgJ~0NV9w0cr+OBE?>Zy-X&tp0asF);~4u!1}RH;qD#dC_P@x0C!7Tw`|E*IvT8P@XSZBhqv(LSm+ zMleZOi-n@Wd}k~1#*fc4OQQ@jTeT3*7rhvIU?F8t(^itDE`8F1JerO~30q|nt`@zd zbi{(pB{03t+PZRjwisz-zN%wv8`9#}=uqVJh-Yy>S(q>fUm#B=%*8%(G2t^jj~vy^ z!Fl8>%`|))NlUEO8n&<8KGU3BQnShG?B?-njIc3)n~;h5qMJv;=n!d0%)}p(mlJd4 zg)5NIMJ^`l?A^f%SkMQ-uOBx&k<^;edeD;UD%@VdWx8YnmW?Sv!asszoVgs`=7V8# zq;D~t38@|zvL=@Y88!+D%EA>s@6_#bft6qI7SI$!SVvkUce5opyGjk*0 z-P)i$YeE-n&tuW;LFAF-@yz@n`CD>!!h=C002Usr9(b@02^Yzg;ijlnOF*km34Gntq?p8aa*X)hT{*4u?4tVcT5myN<=?{HZI!ZMEU0yA0O`X}&uh|q9XP!mIeI9c^h9T83jh*&-&jU^qUt?RxH{1I7>$ZoyQ=K)u z$=1xTvt8%=Y+EAywGQ|z%OPD7a2z$DjUoUE@*xbRR4AcHDH}?G0P7otuvJHyFA@gM zP+Z6X7rS0~FlSipXm$Rv z34pG5AffGav=4Ao4g?REEMZe#JIcreuIeW{Q>V$lZ$_$Fq$71PevTxj)ibY$$+KzC z+G+KAAir5K02YLHW?nLn3zKbi<;X>k7dD{ms@v+@3hSz>tE{tZ58E<0W=VI3A;@?Yyg7z=L&Si`I;gU!HW(}HVSz7s_0dmwCKtq+gpZn37?w0s(Wz*6>w zo=4g7whTVE;*cZPj)boQ<14VRWH42i19@iP7~jOpYQwBUK7nk&&ip^i#qDrNH&s-AHxvd9p7f9UmnxXBg!3 zCm>Z7`7C3yy$W8VV^L7F_V+@r5QJP@&(>dLXUt~@$Wf;EmC!`HzMR0fVXkCAsXC*yqL%bb~J*o}oJq?3No z42^=@Z22j|8v4BXq-@MsyIopkVIy)A@Sz>@$~aA1#R-_|ZijvsFrxCC;Z00KQtLj8 z-1ANAZm8KP>_eIkrU6e$YGoX>4dumr5i?K2=R2A82Q4ZPQL-8c&s_=d7 zrQ4=y3yYtG*(~|hFeA<(zA-5{l_;~uCXNb6n9773*NhyV6&7D2)3U~|_+d!aa<{|= z;PhA$(8QkbT$VepZ2;jk7F5%VemQs98P{|~%5*R!wn@ifqHdbPAu{Ss;mtJvYh~_6DwilXFi3{A-f&2om1$ zvstBGMu3+*2=D}%qPXi%&P5zOgIF*@>y)lkkb79@ks8`5Ok?*HXjA)AG01aR>d#k? zt&^Q7i1c3}Wpp3oE4e0KGf!qSaeJf59muI_z5F1GLe z5zC~h3(&-=p1(`T48ZbV2cU;ak4vofX6uVPsqA8!4ok&a!wMPXtfpo~^L|ExZShycG$L+QVV7Kd9yOu+pu-v6{DrMG5p1Io-0qP+G(J zfAh}Zfottpgl5=~el&-CY@CYUWl89|3s#p@J%d*jFnt#`xAd({i0xWJH(mNrLJM|z z%Yd0okfwCwDc=E%0zdodLP<3X&xq?~7--9v_u1czgX#%5pRVMpmog8ER?0jm6Unzu z>=CO`?nu`@?jYyj7H}y5{;3d`IrYp0jww>~?Z#AB>kGev6oAK4H|kTybV}&J0_e9R z#BvL{3N9pW3Z39^k!ns=DLZ>w>6x-jkW!Tr8~0(l)M=AN){3%0(2u@D0&pb0X9&^td;tU( z7T*g0D6(>9uF z=DVT?Rc(!}%-~~qJX2=IedpMde%8F(66abd6@o=?zt~D`^C*u-u3u$a9ZW!bf^J5O z^EXgv+z8lb3Mjrp&X-ArHpHX8b22zPb&ZZFq~>+WPKuoou)eTpgAD;gD8hb!g`Mw| zHDs{(b8L_~5V7W_WEq3QvZ6@KX*#5~(cCDjf}?ULEQSK)2Sd?pAMCr-q2upcukXdo z&t5(MBM@i``vWB+SoyTJ(N^01AA$AjDJ%PO@S76WjGxYK4~rMc-Pvi(Km24{wqAKM zfVE$Oj5?Z~Y*}7=zf-?`pGD!3`9|XWb`|VnP-45aTsH3m8HxQ-@kw0*pshW$jEdUb z!)OJ5azY|Ev$O4`XFpdW?Wd3^#o=sSgd5lUwe7e_J3;h-@dyhm26_aY*;gf}{QR`E zpq=&I9x0!cirb;jl=D4_+Tso*7z00gsoz5IM&F2w^g1dT+eZQ%EF6+j+iAbz!G3R8 zY+eKY65!HvUF$f4Jf^_3@SLy2{SLj0skYY*>lL@aRvJS9yVprIB=K@0^Ek^j-*slTH7+zyn_hiM%ukY z_YOAPpu~+PtK9f1Pzx9wRO^S6uejoE-XS;L^swN6LBb8m=lyjLJEkEO<;g5pEjU!L zUouRP?{*~&RNny5PD+_a?j5Z6rw^b9S@&M3iLzJRh=iBJlt&M^U)(=^C1)8xn_sL) z!rJiXQfW&YZ|#-KSFfTkEaJBC`41_4ak#M@!0w}9oA*!W3@eQ&I6 zjCoIQEWCq+n()1Y`v&(xzpz*kqIS{`{<*LV#&kO$ zrknU}L3`HXf4Z*-ObV`DtoKr)U&iiy~W8|bScdUzLw zn)jCspql3Ts8I_R9<)ZeQRb;^u>Dd`M>!P|UJoII9*p8tpwGOZo6Gd}e;QT29t?Sx_78#l^Y@;h|f@vC6?gtGa5@2(xhotMhYK0|u*^0TUfR3L^$ zRdAw{;lT4c$7EX!*0y4MSj-HPVpCBO7M6#>ub~1XlN&wH4BONI8==ra?x#%m7*O@xhtJZSi1+ zn!%#tq;L3Vh6tWZ zfdr$9fw4Um(8`VosGM-7AJB9}kVocE7|oOgDbG~?^K`W8$qD0Ak+4b{Te-nDf`4C% zbKs(^cFMsuLE@fp3&RG9YNCGW4@1Xo;nv51qLG%KVdVM(@Lt!JP^IUWItd6RWFj`j z7dadnXW)~aO*}H8YjqtIk~C!CGn@zcoxHmApsj@GY@K{#c^^m)3WKET^Y1{y)gh#{ z*?#p#r*av5kC%ldogeC_M+o`68GQKP^aZ46tY9GPso71RWgrt}wsStMAvR))KMn$% z`Uz)}!xP8buY{C(g*8E&ZtM77We$o@y1?B05q19vR^!NS)UAO8kPv-iJQ%7ukPMO< zV4A4p9rk{PKp=EVMyDL=Ghk^xx2i*Cjc8EARw>T5 zM}P|M46qj;53nWQv{pG|s}#Qbfol{1YfX|&{QZRnn4qvTmxuqk_ZJ}HDR6dCpwuR& z&e5F~m76Wbzz-KntZBc+EU}aQ9;zb6bM@<#Q&}#N%Mq0F{q4D&3U>dm{v$O<*4Z1K z-8H$~>KY_e`@wMn48^gyxxTogWZf~#&u;3dXSOH(VpCM9+6??}YsW%o zK+E3`?55ODCxrA=B}})mVEzZiL%}FsrFZBgo#3Y~ZUenVLq+W>`9gbp5@?sz1J7?c z^2_se=X*w=8kmaOzZ}#)N*m?j>+4poOD?ThYp6AVpY*(RDj)d%mh%8_qo9E2L-~TC zc`e9W7u{F}prPVaSHwVu0qfdg=T87+e>GU)jJb^koEGr8aF%Mr6sLtYdtC=bX`Pv( zwD(jLrF5nd#<@=GY~J6+;!D7Tq~`sG2yT!8rde2115Ed%WkVc?@+Nsw=OuwXlIj_4 zP2&^W4V>nk)biWcSl2T!AX#JOFRt0YK6$OiYF*_pSi$OcY}vm`^G;YCXLq@!Q`)&} zcCFd9@x3)}=^ZVzRynT|>VQwJg^rs$p-%HoRNJN#`^bz``E5zoXIe7(p!iJ))`aCe zel;wjun;i-R=%a>YBoef*D!eoMR!PUYuW8YI})OLWhQ+v?YS zHinH5$U{!L_am;HTbBpkF9cld(U6S$dR<=W*EK8GEy`F~lM0Ln83I5Hb>Ov+iy(OO zU_KD?MgRXq^V^{)ntzYw;@@GpZX^s$9seUagA?1aAj4s?gajvN*w1Aez(iT-RF!H4 z8R|@@|LnZf(s~O6RLyh0cp(C261_j4edFJls}?XqU)GhYIa+2SWrWmVonTG|Y+{K7 zlwnf=m0SgL=^J1Rj1_Z0E5bRL&hMX7;atJ99Xe28w9EbNzwgi$?En#rcyL7k9Se6# zucyg<39=QuK}e8MSEf51m!9vz$!tyT%zR`JCJaDM1V_XBtYmUXNnFxN%<7hqSwMkuC9ZcLP2qB#DNWwtdPn{ z#dSz*2qUAvDN?Dw5b)AE&nZ0eQwzU1UR{wo*S3w&(>rlU%}ZC5|HK^hx@O zNQdOEi#=E~*B0Y!si_S+JUGsptSR$5zhLf=rszizqZ;*0!ZTMZxU ze33tB(>E;6h&5@hyxQ8-x+1M+vA(pzq5a*6vXaFP3bQa=)4&$}idwojsI`mZ!r9K( zL7~hWi-c!Dg_1gQcwHpUP#T`V{g*dZ>+)uD?}9u*CC^!CG{gbsK65c5(jI%)htvhV zYMHthD}V85CbO4;6_+Q%aJyU#>^|N5?dYS_3E(;UN?y9%@MWJ-sOHc ztEkk>vAt?GEOv(eX8D_s#pB$~8MjF6gjmzFu5Z%Dj~zc&UHYYTduOAoIm4aN)LQH) z>5W6%9OGbnDjGU(j6fBR#SO&`vfeluU9XvY8@vr+@pNc9_nME5k^7PvN`g<8F;}Sa zkt~^Eim!#V1>7Moa)iTFAcVzSFuGHnR5Jxp4!9`p5KhK5#B%XzZGJ`rYI1I77h&d& zvu6*4OS1(#n^{r{xD|kDJ#dx*)%bBs+{I^GpG$oyA!QJpnAKO}a5ZhC$7kw2n#O^1wcUL6)+4vJoI zCfZ{8WYS*r0Z=4yOr2%_K+3m89EG43{i-HuswVa{RE*~I;0GANEp7i&Dsn(N0O<&% zmJiDm9&9k!ro%qJS{@Qd2bW0f%*AE>7nhX@7aGgKAK>~P*uioLozsLg(cI|NfgOyr z8Ld=npc+Qqh;kKI;H=1Ej76@E!kt8S%LDfPElQ4g6+eZ9*^(YYmdvY2;3W2Wd<&(+ zXF#>JIWaedlS6%~l*{3Rv@}(kWs7YQI;cn;^w#rCEwLysyvKWPN4k3cJ%}3A+dQ|| zmCLPohRi0nGAl}K$k5rt6vWn1wZ>G5RC^%R+aq1;%4JrWO=hK?>LWVN>fsK6t#axi zWVr*N@;}z{q=b%~_MrqIi(RLEISEQP_TgAObs?y@22i@b>V8tfN3f5HrLFyLG+wR0 zm22nPeRC3SyL{SbN-(=eLat4?)qUD$NXVJ%e%+TZ>uQZLExMdG;IJpTn1FH`6Hwez zDL7)3-KTvM6DE-D(=rz@Ox^=mPWx&S0ROQ&+>1?S;h3Yvii{&&yTG+ZUmoe24$M1T zumH$bISBS~ccs9@R0?d&zr2-#D&}+e*Ti_d?Y|)V+oWgOn2l)rS?_6IUV_F$-={mv zxDCD6|8&BOOs}}II68@YER{k-%~KlHC{AUlhb?e$*ec$H77G73u7m(mwURX&v}O;9Cdc${2p zHy;0l6o=w{aq0oD7I+QCYK$*Dy}C@i__pP5eM;HWu5=FR&-sw7!G#PdrCFtFa2bAF zru57%oyMWbWvx#Pr85;6z*1wqyKS7YdX^xqwH^8lyRYTMfd-luA{ZHH5Zh) z)4nAMO|1qXrHzcIH70l5<(Rze%U^!a2)W4y_{j~16tzBA7$s|JO}4{EGwwTkQOwKk z=vtohmcVMSD)1#(Z;3|#qc=^^Bw%;RKxawy0K55HZ_e;WFjN2dol1YrI}Zr%ApAFa z(+3>Y*n_8_Zf44b))%~U`xUbEURlCH_W&>kFX#$iLW*uAeyXt?A56wm7pHZ#p0Esb zrE{&8<1RGrEwX9m=&`4{kIRf-ywVpVYcKl{c6Ll@JDjv}9@I3ZG}c>9UYTi~pg2a6 zE$fS6=-wttahZ+fAO43<@SIEEfzLnc4R(>tS+f#boM;^77pvFhfL|1RN@UNh@#Mhl z8Fs3mYPq1e8>IhWm!=~qx?I#uVL<~VMShhszFmImELC^^0b0W1Lw>=Fr*>Gp7uVQc zse`*75mjbLywfGYBKE+0$_qAd4z2|sEnIjohr~6f>&Cr_YWT}{<(F!1MM8mpluwgz z(?e^*;$r`|-t>t*QZSko^d!p_mh{S|^Qva1zPF%TkC<}AV= zlRa}L;)UeIoS8K&TydcOIRz&<>$jckJC~4kAt>G-l4qrK88|fIlocsNWS6*Zx1c_D6QQ{z$r1D|VaeJXf4)Lj=SWfnuC+hM;BYU&iV%IG0I)%k{dxbU{)3h#tn)$g4CsirEk4;ZI6QR+uiAFiT00`GLE^#)IP;8awdYB9OKTY?E)2Xqzh>`3Q^ZS{il|y9ArjA z3(CFKjmF_uKkH%EeAdIR!A~lleL~8#feRNxY}sAR3xT~d(0s6Iyk};u=>!e%N27d+ zUGMjxN8j&Zw$7~0;0xOojg1T1QMQ&-4M*b|%h{}ftH@By9RqNmNQy>e{Mj869}E8g zI_mE5_kamG8wp#o*S+~bD)HQ7E#LzS=(s$Pv|;f$dDoI0I|^{gT&2%5$d{IB#e06| zuBN^}jak-0mjn^MtOlU_v0PDc8Voc`Yp76(Xlg)9s~UjT11z4tSYK zmn7AJoNF3wNHm4zT=9t*UpCx-35rh*QQ9(sQmqVkd#}K~xrdx%Yzw%Lq~!~O;<=#> zwwEQ9XmEp0Eq$LY}^v3ilQjAmSl2q(D_>W~fy|cIJ)GyCs zyPEgH{e_)D@v7elikX}XKnF?%ry$~}1{w;AwGfXy>bj37(33#V_u=SJCpgP}2w-0F zBV(ZJq(3g-+J1d+mm>C3P&`TAD9gZqBOjHGu|IPb0=eLEXylPIGe2ruYT6R4;CbXv z__MSqPkk+Yhiu0|i{gTs`q3n~yP$2}s)4|Y9G-O&W6(Nf`WLtAd9w9}w|T2C;=7{0 zh~l;qp5>Oc%k(%$#vj}Y(bvkbnCM3aBiFnY49A>b5+a>7ZLvJFSu~x^f2us!%65aB^n1W9?$wvs(?e7q+HzHQaYz@Vwcc-zs?*gRAFP?*~zrXWEZb zz{2DHLGQ!BuI1KUJ2Y*Jr77TL2#bfo`$ngZT(k`Xd!#B9wR$PDq&|v^e(IwLiFcks zt~9t#FaoUjQ@@L=Ks=-snLcvKAO@~RGGDkbqxHN?=0MtutslBntLp9G_Zn6bBT+FL z=)M*SbPtK%!0&@6l=~)BCHk=JL*Y~qJdW(RG1VQ(Pu@2(Zz-`r% z3~Jzp!OZL6n4uG=c&=+3!A1O;VDsA(8-ikP=*L!;JL256BhE_K9u{>Hy}OA(_)P&? z{Y28)DSxdqQ!_g#7M`W8kx*U-#msN^E^~_7yOhCF`)35FYp0hprRtE#pG|5HiKEJF}NSp+B*+Sy^;8c!Y){_2m zi^OEIeKG3Oa9c+=fab19MlAi5jzJmaEp?x^ z;45hIU7mv$hp^vqI6ay3^x)1;$beh4KvN=vmjMmICy>VdLzAiCfglrA6J~p<1TSAQ}W=Q^HQH`eZiu4jI-umvD-6Tt*A@Q5VdOVD;r7joQx{_`{n8+&r#gNVE?YK*JO-%Bcd~ zcg_I!Cd%0qvG?dz$9T!igYyGSDl0^S)O=FA%2olELaHs`RkaO?hXxUCM<*`NOJZ>y z>ANj$X+DU50q9_Y3Tc0UoH7?I+!AKe=7R3ZRKDAT4D?h<5n2(d!`kOsurOgz18$1v zD{<_t z@0+*ZqH^uBq+P(miyY_&oW?qRIFG2`?&;)A91j)WwBq3Be|7 z)4X#%3?>a>ZBuKBV3rXF7HUuITs$7L0Z}25vIi>1CC8H52fBgarIg9)16t7mG35Vml##6k?P2!7}-eTlCge}L-YD& zkT(yJ=a**XO!wacU2giZ!DO@aXTsW|xAFf0@jAL93jR~_)zW0^Gd#U*kx`}A8o;@V zp(hP(8+f(0WcZ1LCk#)jNZTBE%1|3#`l79H;IdUn^aYbDp92E<^>{u4=%N#&jOKgD=@Fwxjw0e~$bFFdAx(kj zILPS{-A_>r&(A?FKphP*JlZmqThA%2wGn50oRsis!uwBuFGG92m)TK1r+{M-b>UNw zEy_`FlR-GV&b7U>>d(ILM&gP(aLfXQ!(;!gXgJzuXVH(f(un)kpAEQp~ z^af;Pug3Ur%;?hO(r>*7%8FeFBKNLRN^e4Z@1JL)RuR@h$Wnqk|p>RvR!+e5O0_$BeIkXu3AP3OhtmqwL5DySu$l7eSC5dtul-m}tB0Yz$iKxb3zDU^YqEZw z4|N&J0evsDz-2q#dcEw`pcoh=|E_(B`EOvb_kE#`z6*C|kCOY=-5U4ni}2~fJH)s? zlbl?)89WqJO8LdF15}jy#eWay%fTxeZMk#E+*^vUG0sJ0Ar+~9@sq&3$Xg#kJ{g|R z1t@>@i!R6yLw*MG{gA&6?J1C-2+Y0t2IOx7^uIuU4C><`f5jfC=$AvG8FCi#7oZ^n z@+Np89rC{hqRN6_9D$=$DBxPaQ85vfG}=#<&fAvM9y!>W;ANjyWu_N zksKFq3V8*jEJ&XMWosd);2R-PhIRlFWmc5I!HtFNRI8p# ztu$%D)+-$pi$gjZDqERS;RgeQ4AspT`FV&guC%`a7RR?!P=Weds;1 z9Shw<69EitoG>{^c5RuL)HXyRltN@4!>18&!z=kiGzH(vcp9^M4MWKY(-| z(tkr5gtn{~k!miawU8c%^cJMAA&nq+Y&GFyWarkLiE!ioU?Xt!q-`kgLH8DCC5-WB ziPn@j%dO=VY1{C0+~?W6NJEi&aqAN-7G_9f)t|I_EEuKH)@LM6o3YLAZGu;j$>E`| zCOeY>OqxXg_NOd6ogJMmohhB&^k$@b3exkC=&b(^Ii2w;$Q3WaEFq^W>46-)J6ZAE z-j?jHT0s3;DXEg@{Nnckrs+PeWZ=jaYQ!=G3-?MBomgKz(71_uLt8>98|A31V{8!r zA|>0#jQSqnxglMKL<3zVx*@SDM7C~Q!t4$Z_cnc!evs0HQ=%Kq`?0WLkg(e~C)9^x zhW)PH@T%j)p6!)5G2g!sMmZP03;I3?#)IR;mk*}lG&%qsXg4gFE|v~95*BoZBtD#m zZxYkPE8>6O=Q4TjVZ$T`^zOWI&Hw?-wvn9Xa_0>-iUl3J02T|kM?y$A7}7xL0r+6z zA&K-py!oyc0B(bH64EJ16_A!gx(8ANq=-odOy>;*UvG;46+jcR0DlxS&B5w{uL>v* z4d59<*%Xh42p$;%*UL%UBV*-D0D_rZd89C#!YzW752+ZE01KjDKN`R_D7#8=xG_NT zcckJ5Qn@2{@r*N+)4hQtacUr{xGe+*z7Nr|B))qZWgoYUyt)niW=$akJ@-LRZGb+L z5Pg$Arv`9QpLbrr8eR7mcQlaqcN`wo8+sAezdeYA#lfRcnglp03ZK|!=b5qvFfA&- z=u|%kTt71BnK`I)MJYuCMGf7De?dK621OA?9YqsG9bJ|gl8xl-Don^M8{m|?ux6}dZ zHFvLbCU1q?KIwk5U}j>VhPuMx_78X}HGVDB4R|rsA|VEPU`D0;arhbgwJcQJBy;zq zEFh=Aw}?Ii`JakD_Kr9yYm>bWm)0`yQxF6WGt>y_qwdfVC;!x@d;>mGU58&o&jiFN z;6zn)<-y%M+z9tJBhD*HEDn;#_mt|{5U57b2;W#hV|SR|n4>lZ$1x1qz3N&L2iXhKT ztFxCU@&#ZVjP)>ln$t4iSjpIKc=eDEdS(1i-XvbeGlCmFOmM@82{MS8e&aRwCln-s zg_8+^U6t$$I=Ji#{NE}2=l_Mn)4#(ZFfDLMYxMCn?5hJKAL8iDYsP?x0hzH~*Ls*F zc@x`6(c2C#W9p+0h}Yo8xDxOO8shOsvy+#@@)Axax3R|-ORN>HvI--}^+yeM3|&`& z2f!6h!#8_cFh@fG8F0T;2PN7jhh9;H8@aClEjGB z4m1ki?mU)ZFF8A{P0c+4J_NeM@jfNOIvV8$TKNL(FSrX$=|nwY&~xm;WlHf9h8tZ0 zkqaQB@9IxpHAwq?o5G^@EMuOohp#L6F z%`a~Ei{?Sn-H@4>4XirqAI}EwI5>+>B<@XMv6<+eDEZ^;RHS+tJ`acQCRG<9g;S7f z45Vq0RzpI=zwJ5zq2A(NU`so#IFCBia-B3#w{$&~%8_wI1iYD5t z{k9XWe|a5e6>LGO*C4$C$qA_qQahxhkY3($;=w1MRmFYZ61G!_@WaISOnMTSLV&VJ z1u~-pP=@M}SVitWSkAiXV?k3^k{KO*V)4;d!qpa1{> diff --git a/boards/holybro/pix32v5/nuttx-config/nsh/defconfig b/boards/holybro/pix32v5/nuttx-config/nsh/defconfig index 898ff192dd..f09c6001e8 100644 --- a/boards/holybro/pix32v5/nuttx-config/nsh/defconfig +++ b/boards/holybro/pix32v5/nuttx-config/nsh/defconfig @@ -7,6 +7,7 @@ # # CONFIG_DISABLE_ENVIRON is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_FS_PROCFS_EXCLUDE_ENVIRON is not set # CONFIG_MMCSD_HAVE_CARDDETECT is not set # CONFIG_MMCSD_HAVE_WRITEPROTECT is not set @@ -41,9 +42,11 @@ CONFIG_ARMV7M_MEMCPY=y CONFIG_ARMV7M_USEBASEPRI=y CONFIG_ARM_MPU_EARLY_RESET=y CONFIG_BOARDCTL_RESET=y +CONFIG_BOARDCTL=y CONFIG_BOARD_CRASHDUMP=y CONFIG_BOARD_LOOPSPERMSEC=22114 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y CONFIG_C99_BOOL8=y CONFIG_CDCACM=y @@ -59,6 +62,25 @@ CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_HARDFAULT_ALERT=y CONFIG_DEBUG_SYMBOLS=y CONFIG_DEFAULT_SMALL=y +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set +# CONFIG_NSH_DISABLE_FREE is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_KILL is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MODCMDS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PRINTF is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_DEV_FIFO_SIZE=0 CONFIG_DEV_PIPE_MAXSIZE=1024 CONFIG_DEV_PIPE_SIZE=70 @@ -127,12 +149,13 @@ CONFIG_RAW_BINARY=y CONFIG_READLINE_CMD_HISTORY=y CONFIG_READLINE_TABCOMPLETION=y CONFIG_RTC_DATETIME=y -CONFIG_SCHED_ATEXIT=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 @@ -238,5 +261,5 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2944 +CONFIG_INIT_ENTRYPOINT="nsh_main" diff --git a/boards/holybro/pix32v5/src/board_config.h b/boards/holybro/pix32v5/src/board_config.h index 0c17be2100..203b5c8420 100644 --- a/boards/holybro/pix32v5/src/board_config.h +++ b/boards/holybro/pix32v5/src/board_config.h @@ -338,7 +338,7 @@ /* SD card bringup does not work if performed on the IDLE thread because it * will cause waiting. Use either: * - * CONFIG_LIB_BOARDCTL=y, OR + * CONFIG_BOARDCTL=y, OR * CONFIG_BOARD_INITIALIZE=y && CONFIG_BOARD_INITTHREAD=y */ diff --git a/boards/holybro/pix32v5/src/can.c b/boards/holybro/pix32v5/src/can.c index d25a500cd4..fb3ecceb2d 100644 --- a/boards/holybro/pix32v5/src/can.c +++ b/boards/holybro/pix32v5/src/can.c @@ -69,7 +69,7 @@ uint16_t board_get_can_interfaces(void) #include #include "chip.h" -#include "arm_arch.h" +#include "arm_internal.h" #include "chip.h" #include "stm32_can.h" diff --git a/boards/holybro/pix32v5/src/usb.c b/boards/holybro/pix32v5/src/usb.c index ef279653d9..0e28676586 100644 --- a/boards/holybro/pix32v5/src/usb.c +++ b/boards/holybro/pix32v5/src/usb.c @@ -51,7 +51,7 @@ #include #include -#include +#include #include #include #include diff --git a/boards/matek/gnss-m9n-f4/nuttx-config/canbootloader/defconfig b/boards/matek/gnss-m9n-f4/nuttx-config/canbootloader/defconfig index a15e228515..2996967722 100644 --- a/boards/matek/gnss-m9n-f4/nuttx-config/canbootloader/defconfig +++ b/boards/matek/gnss-m9n-f4/nuttx-config/canbootloader/defconfig @@ -23,6 +23,25 @@ CONFIG_CLOCK_MONOTONIC=y CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_SYMBOLS=y CONFIG_DEFAULT_SMALL=y +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set +# CONFIG_NSH_DISABLE_FREE is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_KILL is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MODCMDS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PRINTF is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_DISABLE_MOUNTPOINT=y CONFIG_DISABLE_MQUEUE=y CONFIG_DISABLE_PTHREAD=y @@ -35,7 +54,7 @@ CONFIG_IDLETHREAD_STACKSIZE=4096 CONFIG_LIBC_FLOATINGPOINT=y CONFIG_LIBC_LONG_LONG=y CONFIG_LIBC_STRERROR=y -CONFIG_LIB_BOARDCTL=y +CONFIG_BOARDCTL=y CONFIG_MM_REGIONS=2 CONFIG_NAME_MAX=0 CONFIG_NUNGET_CHARS=0 @@ -61,4 +80,4 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 +CONFIG_INIT_STACKSIZE=2944 diff --git a/boards/matek/gnss-m9n-f4/nuttx-config/nsh/defconfig b/boards/matek/gnss-m9n-f4/nuttx-config/nsh/defconfig index b2d50ba188..74e1277860 100644 --- a/boards/matek/gnss-m9n-f4/nuttx-config/nsh/defconfig +++ b/boards/matek/gnss-m9n-f4/nuttx-config/nsh/defconfig @@ -7,6 +7,7 @@ # # CONFIG_DISABLE_OS_API is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_MMCSD_HAVE_CARDDETECT is not set # CONFIG_MMCSD_HAVE_WRITEPROTECT is not set # CONFIG_MMCSD_MMCSUPPORT is not set @@ -38,8 +39,10 @@ CONFIG_ARCH_STACKDUMP=y CONFIG_ARMV7M_MEMCPY=y CONFIG_ARMV7M_USEBASEPRI=y CONFIG_BOARDCTL_RESET=y +CONFIG_BOARDCTL=y CONFIG_BOARD_LOOPSPERMSEC=16717 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y CONFIG_C99_BOOL8=y CONFIG_CDCACM=y @@ -54,6 +57,25 @@ CONFIG_CLOCK_MONOTONIC=y CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_SYMBOLS=y CONFIG_DEFAULT_SMALL=y +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set +# CONFIG_NSH_DISABLE_FREE is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_KILL is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MODCMDS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PRINTF is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_DEV_FIFO_SIZE=0 CONFIG_DEV_PIPE_MAXSIZE=1024 CONFIG_DEV_PIPE_SIZE=70 @@ -116,12 +138,13 @@ CONFIG_RAM_SIZE=131072 CONFIG_RAM_START=0x20000000 CONFIG_RAW_BINARY=y CONFIG_RTC_DATETIME=y -CONFIG_SCHED_ATEXIT=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 @@ -190,5 +213,5 @@ CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_DUALSPEED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2944 +CONFIG_INIT_ENTRYPOINT="nsh_main" diff --git a/boards/matek/gnss-m9n-f4/src/can.c b/boards/matek/gnss-m9n-f4/src/can.c index acc20252fa..7737965dc6 100755 --- a/boards/matek/gnss-m9n-f4/src/can.c +++ b/boards/matek/gnss-m9n-f4/src/can.c @@ -50,7 +50,7 @@ #include #include "chip.h" -#include "arm_arch.h" +#include "arm_internal.h" #include "stm32.h" #include "stm32_can.h" diff --git a/boards/matek/gnss-m9n-f4/src/usb.c b/boards/matek/gnss-m9n-f4/src/usb.c index d90fa31c30..6ecbb60321 100755 --- a/boards/matek/gnss-m9n-f4/src/usb.c +++ b/boards/matek/gnss-m9n-f4/src/usb.c @@ -51,7 +51,7 @@ #include #include -#include +#include #include #include "board_config.h" diff --git a/boards/matek/h743-mini/extras/matek_h743-mini_bootloader.bin b/boards/matek/h743-mini/extras/matek_h743-mini_bootloader.bin index 21c84e1d2b6166ea3e62bfe64f9cd295e804ea66..358bb6cc38c8435fe07ced9187dcf10a094f45a5 100755 GIT binary patch delta 17249 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 delta 16631 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 aUl+ZA$lq${e;A%>Ky_<4L=GJ;`hNgbtbalP diff --git a/boards/matek/h743-slim/nuttx-config/bootloader/defconfig b/boards/matek/h743-slim/nuttx-config/bootloader/defconfig index 92fb47fcec..9be0611803 100644 --- a/boards/matek/h743-slim/nuttx-config/bootloader/defconfig +++ b/boards/matek/h743-slim/nuttx-config/bootloader/defconfig @@ -7,6 +7,7 @@ # # CONFIG_DEV_CONSOLE is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_SPI_EXCHANGE is not set # CONFIG_STM32H7_SYSCFG is not set CONFIG_ARCH="arm" @@ -23,10 +24,12 @@ CONFIG_ARMV7M_ICACHE=y CONFIG_ARMV7M_MEMCPY=y CONFIG_ARMV7M_USEBASEPRI=y CONFIG_BOARDCTL_RESET=y +CONFIG_BOARDCTL=y CONFIG_BOARD_INITTHREAD_PRIORITY=254 CONFIG_BOARD_LATE_INITIALIZE=y CONFIG_BOARD_LOOPSPERMSEC=22114 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_C99_BOOL8=y CONFIG_CDCACM=y CONFIG_CDCACM_IFLOWCONTROL=y @@ -40,6 +43,25 @@ CONFIG_CLOCK_MONOTONIC=y CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_SYMBOLS=y CONFIG_DEFAULT_SMALL=y +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set +# CONFIG_NSH_DISABLE_FREE is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_KILL is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MODCMDS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PRINTF is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_DISABLE_MQUEUE=y CONFIG_DISABLE_PTHREAD=y CONFIG_EXPERIMENTAL=y @@ -51,7 +73,6 @@ CONFIG_IDLETHREAD_STACKSIZE=750 CONFIG_LIBC_FLOATINGPOINT=y CONFIG_LIBC_LONG_LONG=y CONFIG_LIBC_STRERROR=y -CONFIG_LIB_BOARDCTL=y CONFIG_FS_PROCFS_MAX_TASKS=8 CONFIG_MEMSET_64BIT=y CONFIG_MEMSET_OPTSPEED=y @@ -90,5 +111,5 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="bootloader_main" +CONFIG_INIT_STACKSIZE=2944 +CONFIG_INIT_ENTRYPOINT="bootloader_main" diff --git a/boards/matek/h743-slim/nuttx-config/nsh/defconfig b/boards/matek/h743-slim/nuttx-config/nsh/defconfig index 8597eeb6af..59efb97000 100644 --- a/boards/matek/h743-slim/nuttx-config/nsh/defconfig +++ b/boards/matek/h743-slim/nuttx-config/nsh/defconfig @@ -7,6 +7,7 @@ # # CONFIG_DISABLE_ENVIRON is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_MMCSD_HAVE_CARDDETECT is not set # CONFIG_MMCSD_HAVE_WRITEPROTECT is not set # CONFIG_MMCSD_MMCSUPPORT is not set @@ -39,9 +40,11 @@ CONFIG_ARMV7M_MEMCPY=y CONFIG_ARMV7M_USEBASEPRI=y CONFIG_ARM_MPU_EARLY_RESET=y CONFIG_BOARDCTL_RESET=y +CONFIG_BOARDCTL=y CONFIG_BOARD_CRASHDUMP=y CONFIG_BOARD_LOOPSPERMSEC=95150 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y CONFIG_C99_BOOL8=y CONFIG_CDCACM=y @@ -58,6 +61,25 @@ CONFIG_DEBUG_HARDFAULT_ALERT=y CONFIG_DEBUG_MEMFAULT=y CONFIG_DEBUG_SYMBOLS=y CONFIG_DEFAULT_SMALL=y +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set +# CONFIG_NSH_DISABLE_FREE is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_KILL is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MODCMDS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PRINTF is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_DEV_FIFO_SIZE=0 CONFIG_DEV_PIPE_MAXSIZE=1024 CONFIG_DEV_PIPE_SIZE=70 @@ -118,12 +140,13 @@ CONFIG_RAW_BINARY=y CONFIG_READLINE_CMD_HISTORY=y CONFIG_READLINE_TABCOMPLETION=y CONFIG_RTC_DATETIME=y -CONFIG_SCHED_ATEXIT=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 @@ -223,6 +246,6 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2944 +CONFIG_INIT_ENTRYPOINT="nsh_main" CONFIG_WATCHDOG=y diff --git a/boards/matek/h743/extras/matek_h743_bootloader.bin b/boards/matek/h743/extras/matek_h743_bootloader.bin index f863a2499ac709d2d3953c3ab993a7cc577b244f..8dd5ed219be4448957980d1d900bbf2b89f31574 100755 GIT binary patch delta 17249 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 delta 16631 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 #include "chip.h" -#include "arm_arch.h" +#include "arm_internal.h" #include "chip.h" #include "stm32_can.h" diff --git a/boards/modalai/fc-v1/src/usb.c b/boards/modalai/fc-v1/src/usb.c index 8fbe73df91..28965c442d 100644 --- a/boards/modalai/fc-v1/src/usb.c +++ b/boards/modalai/fc-v1/src/usb.c @@ -51,7 +51,7 @@ #include #include -#include +#include #include #include #include diff --git a/boards/modalai/fc-v2/extras/modalai_fc-v2_bootloader.bin b/boards/modalai/fc-v2/extras/modalai_fc-v2_bootloader.bin index ad47bb2f1d700aebbc5bcc8b1d3d2d2658095d65..668fb1d01b38aae223c49e0ad4f60bb538b452c7 100755 GIT binary patch delta 17353 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 pt8}Q*mrOXC9XShV(g_8aynVE<1|b6X #include "chip.h" -#include "arm_arch.h" +#include "arm_internal.h" #include "chip.h" #include "stm32_can.h" diff --git a/boards/modalai/fc-v2/src/usb.c b/boards/modalai/fc-v2/src/usb.c index 9d5915c0e6..6d42476b71 100644 --- a/boards/modalai/fc-v2/src/usb.c +++ b/boards/modalai/fc-v2/src/usb.c @@ -51,7 +51,7 @@ #include #include -#include +#include #include #include #include diff --git a/boards/mro/ctrl-zero-classic/extras/mro_ctrl-zero-classic_bootloader.bin b/boards/mro/ctrl-zero-classic/extras/mro_ctrl-zero-classic_bootloader.bin index 2b83862c2ec4b874c1406740720eb969e644445b..100d9a83889319d643f962c1b382f006dad3a2e3 100755 GIT binary patch delta 17325 zcmZ|0349bq+CN^^-80j<$Uq309E3R%2$=vw!VwN7OhP9Rj&P_5tPTXQV>lw{g1)X3 z2*@Q06s{0N!H6QqnhA~)Fa`x(U5}mNa6u^Qo!s zuIf6UdXDe&wDbdW#?7d+6HuCpb@bTGY}fN-7n8X(Rno>rHxBw;yLnsfpc{c{Wx^FD z!-XWlS9?7$t*f;5rgn3lB~{{}W@QJzv9cp#V^v4bjTMDFi_&;!!X#u!C?;0Jxjw}S zlM*IwvGzNMqzEsP#`usl*W1`J?X|{^<*)T3%h}|?VgO0^p=?DUU*VFQJTnw73a+A> zJO#a>HH^{_LTRVoM?44D$3A6i8C*=3s)sNyar-G~4t7TWe`RjnOd9+a0~D@+FR~>gc^uJtLabo`63O3GGQHUCc-9Gk%CK5+2_aS5KL{^War^z*bXasFzcLd@Wk-ia+*dmIP zMVfAR^sGXrO5^PgZPkj8*TSk)b!aypHLyiU8tu*c9kpgadUHSG|FH~b@=o5xWJbD@ z>dzbbNgPb^@X^C%w`zb}}}No$`v2Yp+n7E2^Bx0IMJ=ovcY`968an z$|8&`9y#sI4ONcXbghb&MhAya)C&*WSgFIGQ;a_lg`BA=HpXPGz;-FYclidwtaQ)I znR0A7A~sLBY!NFFD@FP;i*@jXv+0ZW+mRIMuMty=TEr)9Sb92;4AbxMCBc6RJXaZ$ zRv=?Pm?R6$BI%T(mU;zKilZDz8s<-iTqBtSN#XmoAuJv8VripaCD~gQ&J0oz0q6t=dR5aqXaD4{ScaUl!oq}`(()2jQ7p_Nq zXENgBoG2|MF9@lMr`^q6u+V^ZaxmbFie6x9wLmrQfz^md?{rn9mC%Aw(tRRT{b|ZA~|&)p_+6WRAFmOmXWX zq1Md$pX=5^8PaPT@R&VyaqE!zp8K{3ODBEp9%y$?xZ&f_c!l%jT9xpMzK8Jr4KACN zeo;8V_gI9UM_WX3%nt*Y9uwoU3AL^#|&YVkO4${ z(#NH$pcF|jLP=cnV-9+K&}(ST7N&=5T!rVinh%#FbGvJ3_{kLCO;6OGi9+NgsQXtW z#VK6s)t2b$@j}KRc=;W;Z3#DN_tL#=xGrr#jiY)Ye$Wkh8Yj>RBNMFV24dON+m7~M zQP7%mLbHNOkiJPlT0A@#7{o4XOp8`L1++d`88%5JpbWtss@njI3$sO|Tk)Vc@pvOn z$79TS(-qS;+*Z}2z8%F{+&?HNFI4x7?OSM(*1x*te%)Thq6KEM$0(IDSYmPiXG`Zt z=HopR?ZV<`Yvy0A;@S%sBvrwP*C{F6u(ZGzlD`Tjz}aM_&%K<{xGE(75G(?Y2J?9h z5670Ho;b0`#JMQWhKx}n3>>j-=T_FWmBw-{jC3aSHFUqzQ=%9V&W;k<_Rzzp#U8)0 z>;%PxeuXnb&&9he-*qrf0axvrWUjEV(y#tJVS}XuApvPhq1KX zs}`pHwk`r?6p-<~;zyqHbAqE_ynu(5z&Ky`&nmb$A=!=elN2ucgm_kb)YdiLygNAY z5d~O#hRelD2gsIQ>1jLsl>*+a7x;F}v(i)kf&v#1(j0Vwk`p@X$$=9>^uu&^EY0?I zk+rrV*BMuwB3|3VN-WEm8J8Y5{4nqstcNaowup1Y8H(OgTz_rLfwHbTyt}7xurMUM z0@$+AdfScliU$K7L8(`vM98#q4j7X5_={TWCrpkmM(N2S9>eBE6(KQCF_oOFqXNCAJkCL9UJBeTBp(UUK9&ZNJ{Oqb1173C z6NJQKwGb`z6+^PMlici`#|-TxgX5FJyiQkaarPD0*M{Wi&LvCeSw@{d=W}`N&b0cF z+^dr;iPtfYDdgpNlY z%~rLWZP#H-JrCo0JH)l>g*36tDawon&$4Co9q_UsIeiX)=8-da+kaC?W0jC*Y zzZpph>Fe<@eU|K=CWVISgvhmPWG7_J?ZSF6M^4h zr9TNso~}2v;aVd@8TC47hmo>Fx_Vk~t^bZE)K`8Zbk{TJhBQ7#h*-@D1CJG080ka^ zXJ~|%+@v<4&mfciex2If%RO*4*ItC^3~Uaws28p+Di=+Qk*Q`OlEl!t=pYyAMuVuON#G+$J`ZwuJ$hVgSjlgvN(|<_b z>xZ4$_JUERXI zaiy-;U9=+7McFhXebb5eWU)48Pw6^Mn9Y_5svWdZRW)6wo35X>sCJCMi=O$ZYCLrI zX(ySQ*vGD_w*1eoLfQjYt%9B?@zOph@p3!H3s<*T1S9lvwQ9kVNAlMG7RAKpt^X}b zwP+zDz1gYS(-J;>A^B9N1s1^I-{+|)4Bb?L>`#Fs_IF=+p}Y;(wRynAPSC@`JDFmv zPlnQ+-ZL@b2bH28h%7Bg?k5iJI~F)+u5-OO$AL^qlX@vRXpJ?|&9t3nRqc8*KB+IS zM?V9Jv~-fiNg4L~&fn|S!+`0DK#lZeSkU~JMc{r@rb$eMe#AaueXRv%{8?wYxY99X zHU0n@zgMES<$@^1x!8oHm%XC|T7z`rVf^r@tlvNgsOTD2(e|{?(_1(pSrvbNbbY0m z;m8L@$GEd##20~?Wnkp^@k{Y~JPU0hk~JOf7wNiTH2#YozdX%-|sa{`$(PDa4nut5jv$U^~K zjZA98Vyst7BLm2UtJMYuu7?JYzKgIzH(3ETcFq6gN|BSaqRoNKJz63_eZ!-Z@~EKI zIld69t-3~}|2Dj-pqlHw9;$rSvLu+ClFr(>F|0YN2}w`+IFkkrLFqaqP4RVYKyHJ^ zfTSQ9m(n-#%fJJXM~?J1_F$xx0B7ssTiOP)Pu+)M?c}AD>_o<{%8YQUmSk?k*}dvA zE0J;hItKX1D)LRrPVG9O~nQ*|b!}3`m$d z;5ogZ8%ArK^dEp4c~C>&T_aD0256@aSg9AZ;Tnhjs1f@|4Q2rUUp02q8VPQtK?iJD z4=IDPV@Q-OhvhmukrLsHeyXrig_~BSM>$@2bW*>J^|faeRI34XtwrJYaTkG)pfE+f zHokt8Py!oV4;t&D`aUO-{*DKk@4BPFK52J_zp z7!a$!da@j)U>w#Eb84cU*0|EC64uwFEEi}Kk?mRx{2ZigNZuX#y9XJ&TKT^7ch60# zf^VrbQswc#&AtA>hlc<;KIz-iLFH(r@rtss7VntnpsneJ0naj0$hXM0QmnBZ6R+9c z^pwEL+Ps|b^#TXw8@L)8+|*@1ZlWTuy@b&Vj|;treSd>7G15;yrkdTe(|Xt4#VhDL z48eQgt&J-_rd@7?tJ$z|H+{?=PUx!D7*=j{bqzR@1i!b;dy+Jk@Ed% z;vEoaF#;##IfC-9p|rBz4%3T=t*kpJ-v$LBw;@fu=Ly~H1>7iE%y;yJsUG#U)@zIC zd1R#bPZ0gWgtQ{Mk-L0!BS9p>>>$z zD#(xh(gqaxklto{a1L}rvUtP8L2rY7cR*u`N9`WqcmK{K27U5~cqMC9ZUZd3&*wP> z7N4q^v1^?(m254Q0i%7$WLiZDik4}eQ6lr=F-OXaWUc<;1(dapboQE(C1!;u^MVh< zS+_LALRZiFK!=Pg6Q@xv9K@j1O|)vD&H~@B9yR1o09(Eax=Rtz z>`vftpFp|_$xuU54Skqh`^gAHe`a3Iu_p{CFyti3G{Qcw2JyU;lS=)ZG#}EF{+KWy zPp*#!!JaIZ*K4G|2k7qpUtt^cG+gKNG}0%ZcHtRR4#=Q?_MC#Z4-wVUC@!k)sgCmm4N|E%P(zXTZ^Y2#9Y^%y`$S<$4 z-gF`95rx`n9`{uba4X9lPsC*2X$k`+_WwI8wKU0R5}TGGi3zLQSOCPsiLQW*_XAoo zsnWzx#AB?06#3n100=(pK$S>Z?Wb#jrP@y^UUd7jqyGlX2<18>C#SX0;F_^cGBxHDKnjI3({UeFr4kLpQfM&-AUTO_MYn`p_smUq7mE zy)~n8lmN@mCMIc$4N%)qu-VGFqenIf+Zu2|y9d^3%sn7Vx+0X&bDb#tbCDA!EMC9( z%f<8Sb;UX{@6IjLzB{+{rKK=EM3*BZf76&(e%?4x*w=oZZ7tUowAvRlKv37p=a*ky z7F7^uD=oXa%p_s<3uT=J)TX%D>m}|?b7f42W|6R$oWph9X?+PEf{AHZL zo=k>qSZnR;PMT~IOnfpL1CNwW2tWD-v+>-3ez zsdGToRj#0&XdA{aK5zVd*_y@s;l$Ys-EPb3D4OTl-TD zC2gFASJ`?CSyjF`h$iXQXpl=c#gFW_?I&2A4VB zk^dWmH`V=I7m~9>T>{D^RpJOPBKof9boriTO=YJ#PH8I&i3sSUfqXNt@X@|X>!J)e zfR}?mde$kAYTLq$>xc&wlJcF34Ry+{5HixMo?&$+DEB^*>-@4@Juy>w9i9f|Xpp74 zdV1X{{}5)s-wY&+GxKyiLLVtJEJDMn0 z$@BcS<-8*#&nB#S6ac3WnP*}@*=|lYo$GvOS)6E+VgTr*^)H6&{|NPUj)vaz%sqk3nfVp3mzI>23^p zdiXopYlb6!`Uu3o0r>~rdGScZZ|zR6Lw*cW1eDYC_VAjAN3i%h88>PGK7Z_~Q4ZXL zHmyf|9@18#yD`W5k2#BJufDOC-eM4gq7{;NDU8Xqq5}>H6g>RUWL;Vi8R&+IfWuz5 z(Os?psR4!WJTxMzv(q3Lh3E90asj#a&?4H{q=(Z??|5G;3d(PX|KIe!IxQq`54{TD z;N2Anw91D;Eg4C+KfD|7Bj#}fm_7kAYn+}@1&;lB++b`tOqq8PGdt=CkD?(({w)Fp zU>)h;TOn7GFZ2FlpP?{-t@2bOdKdA>d!RH>_ru7<-$8Ev_kD8x|Gs~w`(6o)^gb|{ zIf|;iA3I+>l*p%>q*wr+j8ZI9)2`LHl5v4H_sk8PkgsUx?H8xoYT9|6ukih&-)ZO3 z6k99c=T?QEH&fxqUKMllXWEeTWLT$GfQ8N=x5u0C3nb1uP<%f`u@0(>171-dx~VN5 z3AT$$nCt*UK|10ER6gT8D8*f(mXqG_ql{=k=s4+PAIiWjm@04*^0Fc_cU+P^df~UQ z4ak5Ti>l|O+b1dt>8U2KTIb;R$PMf8UYIRVxUsWfX#dcah+k>q&J#<%-hvq>e~v9l zm<5I3Ce0R4X|(6h-C(q9Y!Qwo@oQV62(Lu*1v=Yw5la}8%KYB=S@L@R1U!he7oI|Y!=)XhfaEW>A&-&2;Y0+z(ftnZ-wCe zI>4-eg%ChPpg?lyCWY-iKHkyW0()8%@O%n8icG963V0%KD+0Gev8c28JfNtM!@_|+ z8jwj~@a{m;MvA{{_Z0@@dOvx$Fmv>(P#<`a3Rc;Z;V?K@fJc(+qM!+?BUKb?onRS< z08(vUXbs7>(0`c>&4o|QXrva+&;Np#)JPrqsH?;eqyEf@q*WTgVo(qo!mR|HGG#IWlj56NE#IdP$tzIj6V z*~1l#NQ!l!!M|K8FY8~>Hvc2*c~@K6oRr_@_g1husp7r|rCkRe%iFmhJQn9BKmcL{ zEU*VLEZw(2sh}w+0|i{o9t330s}kswR{^|^0ELftcFIeE`q<`>yfp|gn3V@O2phrP zG-Sb0a0pg;IDl&H7PJUt<%Aq013%*%=w@=# zO+_VK0}#8Hi)-iA7HH<%5Syxj4ibW_$eHiCUNLvL=3345*z}7Hx0*KN9Mjs0u*J|69Jgv%#uq1VIOTsqL3}7 zZm?ep5q}v{`7H3mWahiH5{_ksQ7$~1Rd6!S%)KZ%$Nz@Y-y+{kTr}(Jro;-|iZcD~ zib88@PX&)*6g&=@y>L%ga)%?bAWF~)IER3F113TRD@3%$DL5J&Y*8qq-90-A=V}|G z1bAkq?cDbe>!cNSJuu-@Wfg_}oWQ|80HivIGLAGdyC}dx^;C-VMNT$~*80dPkyE3l zT~V?sozMj~nQRpH0zo?Fr1jpp{0SXrcNMmKPQmd%4*pG=5bDY`PB`wyC{VbO#47(m zwO*^`MgnkrS+Ug;1?@Wl{skmy)}3fij|FTkhao0$I?xCneo@#}nDrA;@V@F4TFUG= zmQl=LypotFFN!_7CQ`b>&NSyqO=~U+ZS=3scg1>T5BXUyQ4Dzp=4N?l^%bA5Qr`>ak|?Z*4291(x(68>S9tk6W8aH6WBNlhv@?eNCb;pzGVh}S_%frL(lLVJ~TtzH;9FtrhCSWJ?Z-3m1)OdE;Q$X}+J zV}AM-SJUawn6SCA2XRgt7om@Q9M*fQq9>ix9>TlGn3DNJPFKdX>-k8N6;^kYcV8RN zQ;0Gd2=9A^t3;Bs(k$V~;}iP%Hv1~?ILNmpea9WC>~Y9i&`U|ovSj8-dn+^Vo|=>? zX(MT!Bv_6-=}2V~5Twd=%vyQp%St(^qpq-^rcD(EFo1s-88Cf9s^B`*zMO5Yi^!bV z6k#rGx^kVBO8N`%OAv&SWb^dV_Q5VXv~mx#CwcXw=14cQhwf^=m?Ua;V1Thg^6J1> zzZ6T_sAO=}V^{Ir%3`hQvPai_cM4PwZsi4!3F@XBnBlt$yC`B;;o)C+(>I>uLV+h= zXciua|HnK@cPpo1H_kz=OioLk%`-moj+#mOjfow1cP<$+W2S1+FNMMwvSG#)+=E=0 z(Jyk)FBw8?7z*7nvp@4^@3D-T*%;p^b7%EU;lKby?Uv}rDHyY3w-5=y2(RF8IS>P6 z=d4)+CD_CaNC)X=R(|#FOIuk4ZhO!sHHdPGn05`qASq3x=Oght!7^8K{{jvxWXBbh zAvFW$4$f^d`jI62pc_hlr4TFh5v=t=c?adq!y-TuQe04}ssl!{N25L;l-GyoQ(CHP zomn=fJ`&_Xg~&*4om}em<~trO7295lvrdIBVw!19D%x#cl-1Py*KT3-GURU0k2lmM zgOc=vu)CjqNJ>+K75s~h4+)vV`)#TSzx=eXqpYrsZ&PvR0%Gl$&z-Gr?-$$q;xs|i ziVU>TV(8*-^Y@+tVKm4*I*fxL^S*513f^twxzir%E%dq!!X!b0b~Kz{&Vx3K3p(cC z3iEyoOto)#LUUo97Hva*SqG^0Hx>QU3(B@x<6PIub}EJ1WDu`sZfK0i_;}JfrBDxg zm=ptDv(1!z?kcUIPlaR&bX*`Cp@nK%$El2nfz=Gj-;(l2`xO-e6gwCkWV9a&U$%Ly zW!a9}@VYXvDM7gjo>mkx1F;)PnI~~L-+U5cKtQ>f9Ja@i^z}({{?WYbFM+{*7e{St zezMKRf$Js}0zuA6eZk{J#SSNZQBR>AgczQKR7);CHY9bsH``PLti`;`az&>aMCzH zDzzsW{U&hIhL6Xt$Md2&DMdL8d&5at3iont`{VDPFEV{C(M1ASrj5K&z;4*8X}kGrZQO}5}0db^dX|3H#X{a zunPQ?XDe9gH}cfHz7ZFK)9$+9?q6iMGt@De(7 z^eAOVP02Ut#7r9_ZS;cpZ^^LfMG71QA|4 ze=^`F$!mX#w>NmP5l%eT!#UXK#TmDN>1)vM9$KHiN84bE>4DWjjU)B+d1`Tm6J_v? zI$>iiD=qOQPgKJStp-dx_n2-X9rg;JK^`GZM)O_n}kz=`CwCvxyGa{7sp_Wo|4+zeU)C-eioJ1D>9>(aY*t*oRD-SI@N z#%7g!@@kx=axq!FYoPXF8e1`#clxrRyu^$5ATx7G599c&??dZ#H$@mJ z%dQf82=T(aGOj(9&x73=?<3-Z{_2(U8ELMM>|CHX+I&UuywG=btLfDup;ujUU9~l} zaV1O-vwicyE9)aaE=XOna=xndIZ-8XstX=8=%$-CHo})1=Kd?okomr=ukE?{9iUu- zHda_AcFBrAl?h-$njCGb55tPvx%5^>+7Bdr-wl4S$P#Gd2M8`nYH3@|N+G=E7=04u zBdH4qo6TiZ!)em67h(pg+({bMd8(D4@4VrO9O!k&NoldHD<&+f{y|nPOlQnx#Nvm%EOG@{C|h&AK%+*k7@q+-e&u$JD*m*cW?7bl^Nanr1Hx3VXXB09;fr2BOl+h z+DEwZ?nLCgWt|GS2J%Q3oDlR{>#jm=dt&S*7s^1=+m#zyiGJ}2ro5HRUi^hUKXkv2 zI>6uXSnp_`p%QRyu%aIDok0wBNh7bP21Jmz`GDJu2FW`UC59Ga#*F%eNBP0io&M19%0EJ z!tg8$uI_^YnF?wXU34tnZlp`93Lh~YSb11lA2I>AQ9~4osRHg5F6-2vU+ptbVS={CC=CN6!1 zWQ#Zw&mgD83HIZlbRV{YQjlI#t`}O$b`_$GA+G+fj;Q;aRqv`P2hJeOg{RoKRbf#~ zI}3iWko;=sZ`MlT7uU6|c;sG%)h5?1C~vHD&obBH;n&uG-gvhSZiV!+E6N)25hhpMn3? zPzlidmd_M|Qxf^Fmc0V@`40h7@pL8Ff$dM1MF#_iCZskM!HJj|AdAaq#9s(@MR{ca zbCEVImts}Fd(7nf@*L(D|1oCCYz(UL+@%wl96xz)>15`nkKA4QMZ`5R4hUhUt&}t_ zD@@dPe&R_Ku6a-<0@EQ5$Yv&x%{j63Sij{HFpejSDok+vH&u+slgYOgqqqP-M}&W7 z8#BsFs-FomyA@KsBD?RkGQ?jfN4$F};zxqY7BBEZl29ff@VJj6H&!^}e)fJ6R`1G! z$AD<#RkfZAf{HKuKg=BHAuU#)jP0|`(S01x)@HQ-cKm=9# z1E44RjtamLpFAOu0eAlnr~qW4?^igZ1unx3#t)L>4Q$_jD1J%?Y}!R7yNQYJ(8^Tin9tLae4?_tfsTyqLA6xvPme8f?^7lbW~A~AF5fs*Q#pHg=u`?2PX%LY<&z$0`fb4$%BVGt)6pF+1{%_ zdIcnP0>pt)ZX1xRlN%J+qxGxtLz=TTF(7XNVNQ{CpWJqwxSmf*UFH7;;)0ZEG%#`_ z*noWn2rH3XoonF#K#)YfV2s`l;2qms1P|T~lH3<&FfRnjD=%c=Da850D7y+wpeP%X z9_>^Mk^>Fu*HX3G*>*ZMxfwz12bUV#vQqp_tCBRTnGlVD+Enom*$#_24zpkp#=v_S zuv2u=^dBf;L%K#NT9gd-^gR!Z*{loiu*c=bondPMV8ZMn!v8nXO< zdNL?T*8WeXeHp-10Bd$q0vP7~8CVH~6?G$z0lDvg1uGzF9@ra5Y6->`bHW_4udoeJ zsZ;n21(3*P049~u;mWh-0w%S@W?sX#CT#-DB|B*i#pO4G9!7PdPlAy} zY~Chpjs_HmT|=37KFqBZnxfDYp9j=;5~ADIPz0U6q;<03;MRq4oy>ZaoMH*c6G_>N zBh^&JyBbj>Yf(o?U9l|aF4V+81+Rb(c#KtDJFmF#6a)H4$!s5oXB;7^JVJPpx zQ2wlSsdm#%H~}gRC-iJard;7Lti(Z|dY9-3$aP9&tA7&<<6+HO_n5L2aag^2*S>mi zl!Vn@X~V$Zcy@+BTiI85$%D-iP%9b6+2+a+c1<@6MOfz#ZB=-oB7b;U33HV#3 zfX9)aDhM~@`x_G*Kl2LB9EK(RK%q^$lq5uwqQIB(0+N`Y~K;4I32BU7MEhQjdh5a;D z92S$n#%&3|%a{}FZgu!!wHR5STn26jxC_bsJCBH^;$cv;t2g27>NO#Gd}kO&_PRV8 zGj>Oqe)h1CbEZ~UKkQ~qmpmNgtf|SPGXLmOn=iOErn8=^6a><>0?uB1cnW94^Ec3= zZQTR!;Wn4qlgn!yG*EF@AqW3R`V-(3epv+RR?)CeO&VjE zuNJn{ZUSC{GK<_UCAzYJMgo^SXjt#wZ;fs?m+dJx*DsgWb9y0)qB&J#1pqUkrvXC! z1n$yU0cEw@Tb{Mu_L$4?AzDP2kW2Nn;E}gH`>iJ$kBYs8CWS8nA4ed@v429W8}2H; zh9~ik!<%rnL4+fVAvo;;O z^mOlIbIaLdbMPTbhFoe?3*OV$hWFBjPJ~2TOwm_27!@G+00dCOB3kd4Zv|PQ!~tJ@ zq^WEN#a%%3?<&6lg+9jJg#Re8t#-n}KP^5E!v9PoS-nQjeC8+BYf|iQc51;Eh*ouY zn8D{2ep}Av$} z{f$qH1ga9KS{H5xEL`DhXl4WW=lm@nd826{^`;he)CF*x`$=R~5<^as{#8aMJwPVG zof`rOt4iz#8vv4#${`4u=>~W}@oJJr)1rkqOGhN5pdqI(7O6N`I&x z>u1{ftTNg9tx6I~gj(q|$X>xnB@MQXvpt0zr3+ zGF8+@NBYwG)INT>C>Z8}fb}7L0JaTf40DC`cFW7r_O9Tl<f=--zibccMB5KBILx%b4ee#*&ER>x&LmQvG>P+Hw@o~+7S z9?(%!K{T}V8<^0f$T}DSXVinfx)oT`Rt3|DDm^BO+yH)3C@0Aqaq z3W#rSFiix^%wT#298&ARW53D^1c?pTMI-U3ng^eB%En=RuK4;*#KV@^dWc^F3r?-i0M-!;XJg|CJd5nzXv!VyJ7ViH zE07*I!kRn?8>?{kfUuZiN41zPp#FGtwGDz~9D6|gqRSNxw25B>B(PBj)=d1SF-%D( znXxH@;e6!9O}eBTUTWO_O6i9KJEJl5P4$@YfwPmpZPGEJ zVz&+|vM+$aTcpVE1_n780Y1GO2ZS${+tkl1@@D~(wt4j69|9(T;1VX~!NxX&x~MjI zSG`~U+NWz} z+7ndiV8I=-qB|c|?gvMx-!6;3#}xj^BNL*VxU-q?p;8fW{DaC^$o=w5zOc&v+G7fr zqHc?fGC+(#i^5r+Nov*&Y}Mpf4bt^aBDGq8_3@iiAME zO|{QBFjZkCqc`eM{P1cvzD4kB{g}UbiSf0Ed+$l91fm1u1Y}MTA}^cEjDoH}mWu*yVrCgKm(d{hNxqR(tc{CG&z4SyQkH>YjXLC@OQ;;Nod zk=~+4M|TCnY@0Kz47^W@yT7fX0m5Ro`Q@d4Z1KrMf$3}E3l6_L9<+_F&=@=k{M``L zB*l?ew>^!w67RNw{A!4D@XN)1lDS=PUw9lD^X|m=gxI6wl5+!mS`_wNiD<}7*O;=? z^?7$s-K#ueq{8 z`=xl_zg<+hGKnJ`*$^?BFXgeIgV^qROmO9ek5%B);L6f_9+PN-yxsG_p1KI%B2oo4 zN4eq|0}Z-ewAmkA_)y-R=;>W})!CK?P@!@ve*nJ7qi;PuK3e6}9K|0%KtMTqJt#j4 z`k1#__Nz^!HJ&l;8 zBHu3;_~xgYbr3=^q!%G%5N;u#lepyN%4LOX1-s5fLx%FK^V`N_WKM2D(gJdu7$E$w z=gwrDPX_HAn7Xb0XgeRh^al3>fDZrbz0l1sb{wnN*_(~a2>>@OO@`H0dQ7}e58xn0MF9#S zyLbH^pCa>jC&!z>N0}VOA^1!sgKfeFT%^c}Wc%*8o~l44uwS|YpV!f+8sgkNYFN-W z7_R-kLGZ8mu>QXM0eoFDOuR22=p0!5rggj<^gVd`R_6dkHt&!(Co_V?fq)W2i3`mPs5hI2#E#Nb9O#kte5P0IyiAn|y z+qq#r<@dY`ozo#1mo5{yD3J>QIHPJK!;-b`ao z2guYnQ%7C|GlL6T9PfpK@^$#Uhkm5fi}QhM8hM zK8LGF;@)SljcnQbJQEWj>bJfF@5;Hi4v>R;QuqvG$l#MNog|fS>zKQ7r26f@s_ufl zkwS*=dn|mFO}6hFQh1zd=LjLHlBoVGe;4lI7BzL3w|3vVy7L9gmp{8?`TT{8Ry?_M ze%Ue-*f;1=+Rjfp#53JF+nuYS;7fR}fqR-mOgj1;^2qM;2)L*3MRngtcjqzT{Mg$4 zN!Z>q6Cz(BtsjW^GDsg}Al^Fw@o|t(f%E}9dmQrlkoI<`pRy1?eGuX|K{_xP@w;gb z37SP)q3oxjh~EOw*F$<7uIEBNKL_!TEM2q|!7-%u=r0?gW63qCjD5($MSmW$?71aN zP^hZ}p>t1we;d++`WJ{GVl*EShf8} zN7SNQAv-49-%BU^-s6(8@Vil6M1s(4W-=)3M*tOs*V3R$Jo)84^NcJw8j!aRn!~>v|KEkAuq+DEsUCGnkfEfCsLlBO+bQy_gH1q4D`wxt1E9x4KAprBie5P1n#F9{Un zbyZ+|l!ppb5rwNwOT84VMZxRan}B+O%C!m_NIY-{!Wg zza6=y`gZ>{pZkIdD6I{lGz4YGA;gjE{F|t)VGUD9QxD@z^(dAs3BQmu2rpNsWRM%V zF=CpUkL8C8dU#o(-^^$7Nc>qeJ38{BJHN z@(PT9ITCSC;r@~LTq6=+2{?+C>r@FP9yozoB4cQT zbdF-A=XgpiIl+qGHP5<_GN80s)AJl+wZge z?|*vuy7!+EUk@<`ZEERM3x8yFsqN_cPo3>-p4xDvnh}2q72C$bB%5UWAIj7sv zMn;^_W3^H52>ehxZJ0bQ&q0Z!yDzmP3Z8Vc27}!oP^R)rI^h&z#8Lp*SX8@{gGYqD0%IQrkSq@z5vbI} zr!sBHF2<1OP>V^S;kIZu5}yfVKuw8z{pnCgh?YQFxcv)-68|1x4RIxT4kXSDsKjw0 zB%Y8}FdB)|WF&qfQ=%^z^cjSC=xyI*IoB~npgKOGsN4fGd+Mmuhgt*{rHOF3OQ2o@ zr}8dW z6Eq~l3K|n^$->w0EF)0YgzduyIgj~M%*Yh^BQjjBj7&G$Kqr8UOhZ8BXnd}YZyJL1gS55DX-c9X{+IV?j}3t^clXnHbI9#+h+8r`oxNSMfXf9DW#o zNjC0B;u$}iQq*eX)gq%tBHPWT6tq6=p2-tzr2sY9l-yRWo?MR&Y-u7h8QXICs7@_K z+Wav3=EWmbOhZn%e{FYC+YwZsh}vH|rIgu~X@)&hZ0kyW-%Rq@C;-FvtGIRHAW9$DI`tO>&L7AlpR zFwjzV?bDd(j!*l|lSh}M5u?4|%E)rJ9%eJY3-j(PIx4fegX_sydM~4UO)k(G7BG8h zr^wK+$*iVgLG5<^YJ+&1S+F{jk1u39i|E>FpbOZ=TdOJYlwXmKg;J;LV2>Aoq-$3z z(ut6fSCJjQNaa%I0riJ`;{?>n#sF!rn~BERQR-lx6E;}mS|8$(Za~>Mfy<#g&MvR( zSQr=GI)|sleHtBdpYE#JiRc%x%(lcU@AL)+T3!3Zv zF}i92=@MO3>fEOs#RZKU1r?v~u2@T%*bCJ7il>m_2=pUcTkK~$bx18K#I_v94&hlDIJ6z zVQhq23Q(ubKkt(e*-eO(r@0@R4@O4Fs16-nk{iQRG5(@P~#a(Y>7&kBIntW zfI3byfS-;U*SUJ4kJMJhy9xOI5?&})fM&(HA&{ocf3R=-NK$GFBMLHWFB6q~9j|GY z8wc}4Y-&D+A1Wx47{uq}E%c=zPE1IgNKQd(GdB(uHq`-%1eYu!%;0eFN+D}uUP^0H zq>q9+ARBWta~O#ZxiFdHH6CgQbC?mw`0?_D)TlRtlQTTpApZ? zx+W@Lmo0gF_fY`I0JzjSO+}s>GA=mn;gqWu3`Dih9WZ~?ve4g1CvM8uDe^W zHVyD*u3X=C-ccH1ecNXLKUJao5nIJOOdME?4 z;v1hLJr&4YvmYqunSh$NG*|><0}?mmjzNXdnSJk8r2FvX!Gm>)!0>>QLbdDEK$-vV zN(~Bj3{G~Q^VP0XnHVptC!O#3Yu81XZhB2?IMa16Y5CZH6;AVyBk9y4E~1gziNqy- zqnp~z)IBV-9g1}4qh+97gzo}GPO$u@x-!uf2?rE~I%ji$P$vg z;EX>D;U|U|v)>B!Y9cxwkgz2icrU=O@HtQ@HPg#PIx_j5{QyfdZ2jF3{%DBSxyC=1 zC%4WJmCuci&b|grKMc8QGFa1Cy`ANgR0F>o*W?n6?m}R5wATm=ItZ*3iP2$JF&n5@ zk&gD%ZZGUY6}8oxX2Q#msDr1y-0hX)0L%5jmr{HA(guJu;Y-zvw|`L|FS4}SQz&Yf z>gx6IfCBxU)EeGVoMuL%;Y36u4GfclgB;j{4AdS=&4CUWS9w39jDo2e%7+l8q+dE&I6O7mj!~psS5&v z_A)#?cUZEqdL28SF-4z8Vm!$D2*7K@Mg%HSFPsaSBlJi-9*}%Q#zi4hvg5PY*KQ@cMjXc?)3Fbv$Nhj+0#7>{0QXnozdK zqvIoiK4~!{jB`hn&wOA(g?nG>x#9a;Q$OH`BZDk&2I;aziGsV~a5u+IM(OzBD``;) zEVi!@YV8feW&7c5t4jz8e;y#pk+De&aF6nHZeY=?G|l02!96K@dRu_Vv`Fu9)Y9Ad z(6GtFR|k;JZvO)rwS1D$?qlICc91^=?478c0mny+$}2vI&s+q%Gy&}$14zAH6G z@B^k(J4Xs?akNbB20akaZDgn)8S7SylVrB=O8qo<^fYznN~9NZK$(n}O~T4NgPo}p zn=^%#Ibq!xRJh~LrvI6GrD?5cgeL?$aKwn z#Rqzc8MKV+k<++FgK+aUZZiyWF7oSymB2L@`N{rJYV=gDF&ca+E<;o)HQov?p@26M zJOS_DMlKbw7bI>E5a>|iX`tepAN~D5Wa)iwB2>@_Y9*it>RhCn(G(9d%5v*>!~R>p z>nbYFwD&_uO!Qv?4cQ0?G^6`+)k0@gd{M>YhDw7-F=u4i3}So5898WPCJuu8eP(1h z(_Wq@8fqUeXxIY^X&638aWxUlwIrE@!Lx3{v?_mp@E#E~HkI`YbXc@-5PmX2AM#_%XB--AgWh4&7SDc+h8KF}jb{9qO*r?MSKeZde>~pyF|@c0Hc)z9D?Wxc z(p!UdCVgRb@b!hq|#H+=t|x2ICNfq3K~ggg3o`fbaV#d27*?c zEc~O665WbQfL&75VK6yDq5;2>kqW5rs-m*jE~O5q;>$~EY*=Q%$WZYZ=t*JI2G^ve zEOYsPsbcu7qF*W&R?SRWSfM2%-w*(Na5REG4p3C24})f21q#Xk4a=RO{~wkGe}bi> zvAT-5{1SMBn*zIyp%iH}&Pg9qM9bUA1@V`N~tbPiY8o zu>7ei;%3RNlgrHyxeKq+)Yf`MG66qj#MhKRc%4CXQITw9j3T9gl8p}=?bL%fGPC%B zS#sNABT(_bLqGU7$`5Ed!i?}Jm|bV8UXtyoM_R3*RC3inteyblZYpT}v`RfSi+>qf zL(&zHdfFy(-6O3Gv+=E2_)w-rYgCTOGtG%=_4mhMZAohSd$J~92!}Gw1J$9nr2wda zZkZzG2JFi?K--bHFl#I|1^+c`7S)BlSxJVsdk!v*7Yt%7IB!Y+_rv{VCPQC}Y@fgHC2z6y&9bJI9>3!vXs8>MwVsvkL^q$&vqZ#U3>?{~gooINwz)kfd zQ|l0CK^hl2+^^xWac3#=)^Ycm6Z(ZH(4G{jMy3sh<+ni;z=L)7PSbwbLl}r63E-W% zY9~UFC>QYXmwWGtuI{^aMIh+Ve#*5fHVK=n~S4|vFUkl)uChF)5frbwzj->Q6fYZg4&~u`XawrB$)O(TW zI>3=E-UIcgSY`RE^8uN*Y3&>=g{wu}k~ow`+o-Uc;S>nL??QDWz(OZ zf7SO~2F5=Klm#T-FTXoP)fvYu5V&-M7{{cFader8iam)`k*45GI~6}*}7A?ayQD2PXs72oVeMt>_SX8Fs(+-Jpq`cD;}iUT*L_==waamijHt(*PGc&C-p z{pw@IKokCP@?5q~scFJ(@q=)=HF*FkERxxKXM+O;5^TOx$Ap#7E;fl2O83HAu$yDJC`w%e66=^*znlN@n`b&!p z3@nZ(@7h&pq{iUP!bwgtvzec3SEPKULg4ZX#oi^DVQePQsN9?`=)si9hI^ZG(ltS>&ZDe0@Vu;5h$Y$Tc{YV;reB8+b#hdG5qm9)J!Ca_4kkSS zFp0~GE_$`)%8)lZxd>7YCY?_zuvZ zw;1_ynHzsbW^;nlbif8h!abLPYxgdKgGGEKgTHD;1sIZ-?V4ud_F~0%WEFqRA7!q# zMtayzPHhH;{IY_K-K~^i@p`K5vXBbie9#+CgN;F7qQ;*F?UGExnG0RWP-tgFxdnR) zKb##mO~qF?a-f!_3Z+f4_r;chGuj1Z$46GyOF`)7aB)z&(({1KjxU_jb$fA5%=rEatrtbb zW7Y^Sfz>aeqm`MJixLSXbX4xMW_a&`SfHL41V$_dmrv})mu0KDP^6hnP%F}-Ay!yq zB_lr#UGcF+_aw%-(a2waG*xC49a(V9`km)U<=o_V@eF>Tb2IqqV}Y~LhpAmi93D3M zw}&!$Y7c#wglbeg;p@A>2Oa@-0Hr?#s>i+-f&#Jp&jNA!ebYmk8BeW1<<)|BRFSkH zMqo{%M<(j4jj=~pR=C}=#T-!@-{o>f*tnK>zR->gr`qWp$M9mtCWE-Re=5i#DD9<) z6C1ZRd=|m*1>aNS7@10ONBPbN=k-04BXqf#gG$NA%UYN>1YN64&P%N||}+b`!6TE>FDq=1e)F&M$W_VbC( z$Ksq_tKW~}OS(`=oIbiUA~G&heK=E$h%~mu>6@<8(MTK$vIV1#xneuD zT$I5Im}2tp@8GycySKlx=_(^m&KLu~!DGf4@$2Q|s)l*U(yDwmQ4^gcYT_u5 zt;=Q87_R%YeRroo>tI)0fpDpgPuJ6j0TYjoVCt|#z<8M9O?el6xpanp?HR1A)oIV@)UuSPyL9DG47 z*gP|X{+rw|XJ#%%Md9tUh9*N0T0x!Wn1}ds9_`xAN2MYICsSWB;tvWwGi!Ec8yu7t zN)0(M*FWD}_dJ8fG)93c8G#6S#&$*^3IvEAPo6z6!D^ltarb*Ftc@K74M4nj!-tp7 zPISsZ9C4t#j03ldP6pJ>j|7%RcuhS}?cNCWcZ!rClQ!~9+ZJCrzKQ5U4iIm@^{^@J z7jOAAz#|@zi9a+)M#k)mq$iQy6*9`caPgHs?(`hgXMI1kt8(`y&PX|FHMWfB6=&jA z?O|&_Z+y}6%01SG1*-E%PllGm8e3b@D4#bw>4I+{Y@Cv*f3^G4`L1x3#oQE zWd@qAybVfug4|Y_TDb#~IBF|jk_$CSz%=B01sa$*Kqh`JR!o)|u?^H9R-D!6b!EXmCf*!`XpV)l4Nre?RLW;^ zuAvr$Cz)+!SfxF0zbK%rAh1bS0^ajr3Pexp75w3YDfA06{_(+-Su17LUj2BD>FRmv z;7r*dqLxc@5O*8OyoV510rel{X5anua}hUn9>o2i+=Mb=KH}n_kbZAN-GHahc@p09 zzJfoRlM6^JD~wnHBAlOf|$r%1;;#OiDAT<3Pcj&@j?a9d1zO}fUqq% z5O+TGTJ}Ff5j#%%wm~in*^lup#JvF5yPyylJ{u1O+6hcye<$Wnr1yq!_uSd^nGi0Y zmqITLVaL2w`hgIBY2Llj>7iN&*CoifM;23>%sHq z-&0oWkDaOm?cqItj19T91o3mDrx)tALYAEt4*+JWT8)s?LDZX&#GEK-)_`g8609j3 z*0_V5Cae*p&NLmU!o%^;^Y!43Cs;?&h$wTBHl1B7grtA_sZ^j-N(aPrz)u-}2ZkJh zZurP}G7p)Pw)L7GwD@TgX-}~^8j+D}(ehjB7;%z6X{s8)R|@F{1r6G%WE(|(a|6WL zz!h5ni(30r1a1eL>&Z;VgcwR9Izz^ zY;8+ZS=Z0`s_CshQlAGwO*Tq4`7A7CB-DRw@@@R{!+I(gGmqp^)A5)`#>`Ilc1ycL z$jI_37Z+JWk}VJpEfP`{?+xAZMX#YuDzAhoVpJm9DARSc z*y-Q3pp+Y=BL1t-{dnerQV?9PEwEV)YZtC96tzsACBCrYDVv*mrwyS0d=Ir3ndl$M z^{@W-tyjIo2}s=D)j~foFXmUWoynX9CY$faSqn4Nc?)Q9wI4sQP?!3?zXaMB`hR)e z@InbcpgyU7k2R$wZ!H6!vY~}EBuU_!g(>6m7O2`ruT_bx>U$p=aotNM+vG0*>qM^3 zt3;-|o}u>93vQFBVlnE}aV*~t+}{wnmT}6WiPS9o@S-8~*D_wSC@oqWc^l5;FAiG# z5Wl@hU-Bj(3K>@|xWe50;mV-&j;wQctT_U3b+YMgwD>SEzPnykr!J}-X59u!9*M0T zYZy_Xwl|QLfZXmQPHQ}_Vvwmr7!11C`3UCw*i4l-F+%knQ7BjSwELnm{oZ&nEspWT zhNVdrex@RQ$e;U1LI0@ltYPEtVcb-qr>5c7is8;}@&Ql^iG~hKoxFX6ijQ6!!<*dE zm4yJQ=mjdnS9W6ClHfYqsf`FpV}U-%eKxpm^7^g^!Sx6~N-f~o&O~*8uz)k*&J4rs%qb2Gi3(rlVioWMsRMGcb56{7=)`udsRY{dK#hT6`prgF+`ryv<&ghFD z+}Y+F*?Q>Cw$*8>ky)UKsKuo_GBaO&f5-)MKOV6tBps_cf!4trJDfhP2cJ&27w_oql6 z9yU0_xgJjDv}0?N766dfQ?bV2hLb^yA@?m?sa<3GFSsZ%P3g_rarDLr^;$C}KB|z@ zOGK17SE0h^N{RP}ud<=79E`+d&`}7eDRF8G0i-HSX@kJn0}pD*FcSEK8nQ184$^Qt zoU?%RwN*M^@7N2lHVO08>~}y33y2(l9Onq5Be#Ghtw?Vv-{3cdG2kZpw=l&y5j52! z*7GeWos4aTk#ic3$!1p^XrqUxBzkJAsCRVyJZL9?JynlPri+KCT=iUjo*J{TDyhDu z-ZR@&PmR93>6ky)+&j|+ADs6S$kgVcQlS;J<(gt-yxUQ>E4$DqABw-!n#)C(-z|7megvA~G6$Q5kNa4t%U~DRmGVo-jo3{|KDRdKXw+ zd-04X^mJ|ruYAG z;n-W1M^Ei(P%oK7QQ7#>C#TY{2JyR3PNU0%Sbp-8$XX#DkYSeHfKM+i9&)_rAHE^{ zWgp5ypkv1a;>-fXIVTtz49lia)YG`qVW9qspLa~A=Hq`k#c#vm-yT&J@pg5vueE)2Z-bfNkvKogrRic6ADU? z^&Ik*^RwY z7Twa*K_lE*dPvd=881WrDr+PJi^K#SlbnJQrW@k`-iQ3ia4`Aj$#3WUa*U+nrY3*{#R| zg7#Zk%?s|g*0^**i4F2{I&w5o6KdDIW>sA@189B;K%@snwLJh&f>LWh^iiXmt-f=Q z+23{`ogDT`1|{huVo+>aLrsV{YZrpjXAm1C&Tqf8wE2DH$fyv`KV&Y_OoSYQ?m?ZJ zIJ|Eym(mdU6{MbAMp7KN@PqlG;O9c(Z^8BOf3gREvNkp5RfSDqE|L)Q?>$&tJCi=s zgNy!R1gZGsU&dCFtwe*@bV*Rn%kJtm$2v~OrJM!lS&u4ZU@OWt@J~Sw;pL$Vt*jWq zmR-Bd&|(BVLpGo}EwintgH13)!Y~q-_87tNStdrQy5Zl2>vgXiiC+HrV&v_Fz%-w!mumA zMOEt}tPgT?kJo_wE@+INhC~kp#E&y+lo`Wsm`*PK~?)cEe z7BVQJq|VQpd;MS4u3rBa@qSf6n?57Y z9#tf_QU#oa8_j%q&^iVD&r@VJIiA1cg(wI)K=xSK_!=H%-j7eOGdZ7wEZUK+ z^c#V#U_LOEDc?K35;x2U2bfO*0wlEpTn+(TR*$bt7V?|aHRvS7PQq%nxS5QKV;EDs zH}e|D%;Z(Ojr@KP94vqBA~F>4M*t56Ka4T{>Iq7(%D=!?_ZR=}3raiXR@juPkPXMZ z*dM}T`?)$|uOe}BNY6vi5IlM46%sOGQ({^{m#INmwf9mxJwTC81=$q(A`Rilb0Pep zGlkyRjem6V6pIZmJzds~d6$Jg8^l{&88M07{{t0ft98!9K~)OdO6{!?%uUNgN`*#^ z^B}```8S zC*K8d9Cx^r?dALzGB+8layaCmr0oXXk6}A4^ka6zg3Alulr63^?J7fz&ae@@2XDAh z`n`~*+?#Ryh0IR=$ybub2GlQQ$O{f5@BQ$$cchx z6(BoFJ5;1sVQdtPRiu(Kc;SJTCj<;#F?4-1JPlDFKZj|mfqVm?x5Ypv?B%Vk>S%EF zV(8J!0*a1Pxg3MXi-091w05X8Jup1Ou}2P7$k zZ*44hehVqDNPHfg3^aU8LgmHVL2+myCIJn}4mARD>&%W~5~YrVZ1^OBcQ2i0$zRFSG&41oJ~X0-3uBE zVU~GKjKHK)L(=!G2KU6&p!63IjYhr}Qc+O)9q5cNZqhlmrv|P&Iz_&4zi>`Qry%nr zeF7xH&9c9;+F*ZUbs}HE|K>B>UpJ~xVnrM&wbpJ>?Vmki1=zYg-8 zMUTb$JCM^r)InAnwK>HZl&IePS1?i$WQ+9&Xbln0|B-o{)|=r*qL?JZjoCuZEAkSv zg`6DY0ztj#k6bg5AV>~RPQ2S>jYK&7yH7X-q;Hh}kyki}$T-q-6Th)!pp)5Bd{yFdN!yEp&o-3~zE7+#hJ1p9PB;74YaTER;?ghZ{(Knpw@e;Kl42=oX>sNj?f z+|}zC$WtU4(S$?O@DGRg`<4_-J4E(x)bDq1SQld>iBAFPU^riv$lP2&=e2&lljJ}% z6fvV@Dd{7UO&gw~nWRNwVQc=N#=x+tRQ^(XKjBk3#+A}!1a380!S!43q0(^sR>S=< z-AC=cdUiP4xSk|XIU3`pr3!Q17!nYX3ER~_rt>Jn0Fr7i2o!XQeBBX{u7?beceF=X zFGLmXu@?%w{ghBs+yO__g&*EFo_<8Zd$t+xJL|syUo%iOWBJ++j^1J2)^aKl=`5hu z{liZ(hQlYzl9N@w*fXBc_=a`rtSGSil+^w5eBH`am;8thrP7c2CD%t-vwh^q`P~H; z@VZOXjygAWSeA?-3W6H4bhc-No95vovPnRGU=XU;%F^{7ykz@0rx-MVi+6CT1y24v z*e+_lUwS=g0Wcoueo3CML55+OwTlLvH^at04Q+8ln;nh#r)Rc2A114S$xivy0C+!e zJ+k5`^-cI^)YpO3P}(GG9I`<9`&LkezuYsP#3iQ!z7a*2YvfAfoI1|NO-;0;)VX$9 zs`0CB5vg&yL_5i5lBA3lWo86QXhUt^Yy%Gz)PK0hkVqdV(Rrdvl9+HDuWusJU%4zG z<$gGzDIlE-Xxr${!3@NJqvuXRx0+oCIyp8V{Wb8Q%q?k{5_6tCJC}Fr!SNE1ZUiTU z>lXvWsFGiN5R?nHLmj1u@b*QSH7`g+rV`;;3xxM0XUpmx$Qaq7W{$RS@EHM9G;hkY z=Z?TVGS2dpK&-b3;y^RJHCC6n$u%^Q;l1tjC!fgNsSlx@_IxRPEyw6;tZ#NOY_an~ zlyEjNuPDlHuty0HT(&N>!wZ2lkVRYgC0vo^@d1d6MnjOA9?Q?+CFy1;LqH=e9uxm4 zAJq}5x(HH#r@g=XB24_HJ*8;(lnlG+!aE%db6`mA42Xo<1+XxXg@F)tl|3M(1UCD~ zA~$-R$h5(;d&-Yz8#*Exjb}Rlj?W<6(pCs0nw)B{Ad7)?6;v2c7Gpl?v+@7*Re|#m z73LLI*%$d98Z4hBN5F~^(`4SC8<@zi1X(oT+im)i|jy8_bQP(-*F4ZX;-sj>*F z)Zgk7!1b@@*~1KkLMO?o@Hr%VI3R5dsrOL18lHlYCxFS=$&7mwv&0V`prnPc>{9wan;yj^BH65Pez3|9mlnUK_x_znDxv5x_A!a;Zaj z(vD%YC4lWaCMJ~2bKFH!nDfkDjd%Byeiwm{1#tb2+290?*f|z^cFxU(q#UE{&42(p zWF71XNY^0F5s=mZ+txtFen7ei$_a5+Q>92`ATQ=H7z(?dptj*Jc4cy_j&qFx>5Cxl z-lcOcIF3>+w+8k{;{4+>mW$IV3Fx#ZKLt1>fFLHH!4of8}SR{}0(s(nB2l%SQ#%98zUr@!3T)M#t2CZ!Mj3o1_(=6 zK~^f{@<2e#-QCN>=YeVZaW&$I4jluGVtxR>@X|e_E;RkUlZ$z>o&6SNMz$hTVk;7# zltGhdgXs+T8*BEtP1#K-s7vxqFFnwH4`h1L=_l(Uy9vBJNje!yHUmu`!ccn6L?&J%1C0i)d zw$C~lOkUDj6dDe~J>Py;niRrWd+(XC7#tUKnjQpeVMmB`NDB40WrH6)54sG5yuAS> z0Vy#=>-$4J2t++f1NAf%kk*D|2w`u@r-pyx+j0Z7m0Qpp*VWEp+pv3YlCuD?wG;{i z3f-JS#-cFN7+&D@hQ> zB=_*)gq|tk8t+QK_mBkjM99t~?OHNdU*Dhq+n0t{OL4N}#*i7RDDw+sQ}vAzuvakwx7q zT(_?z`8X`|Ybd&7vAjj-4=x5{5%7t5ccmwqal&h9^pib!+-oUgwgQh}!^YnsB_w?v zw)d8a1K4gb4i)J=1wap953KGpFCifZTt*@3IDYZ9RbV2jUVn-z!cV`xmTnHxc?Q^QPBOq!xIiX7{0oO zcOMvaFVT}Jgb>lPRDY`Hz&+d|VhxbzqKYwWO)W)X} z*Xcl)@_0hu+((pTWe-=2^JPGI;&)J4?M@DEvN zbs6I#>x{oEP6~hgb~^UF%_e43b7Fc=7NI#bib84oz>^2V(xA&gJn*n7G8t&Y1q~El Zc6gu$p$Fl967(ns^>Wc6yz6l8{{egi3t9jG diff --git a/boards/mro/ctrl-zero-classic/nuttx-config/bootloader/defconfig b/boards/mro/ctrl-zero-classic/nuttx-config/bootloader/defconfig index d29195ef58..6f8acdd78f 100644 --- a/boards/mro/ctrl-zero-classic/nuttx-config/bootloader/defconfig +++ b/boards/mro/ctrl-zero-classic/nuttx-config/bootloader/defconfig @@ -7,6 +7,7 @@ # # CONFIG_DEV_CONSOLE is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_SPI_EXCHANGE is not set # CONFIG_STM32H7_SYSCFG is not set CONFIG_ARCH="arm" @@ -23,10 +24,12 @@ CONFIG_ARMV7M_ICACHE=y CONFIG_ARMV7M_MEMCPY=y CONFIG_ARMV7M_USEBASEPRI=y CONFIG_BOARDCTL_RESET=y +CONFIG_BOARDCTL=y CONFIG_BOARD_INITTHREAD_PRIORITY=254 CONFIG_BOARD_LATE_INITIALIZE=y CONFIG_BOARD_LOOPSPERMSEC=95150 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_C99_BOOL8=y CONFIG_CDCACM=y CONFIG_CDCACM_IFLOWCONTROL=y @@ -40,6 +43,25 @@ CONFIG_CLOCK_MONOTONIC=y CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_SYMBOLS=y CONFIG_DEFAULT_SMALL=y +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set +# CONFIG_NSH_DISABLE_FREE is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_KILL is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MODCMDS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PRINTF is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_DISABLE_MQUEUE=y CONFIG_DISABLE_PTHREAD=y CONFIG_EXPERIMENTAL=y @@ -51,7 +73,6 @@ CONFIG_IDLETHREAD_STACKSIZE=750 CONFIG_LIBC_FLOATINGPOINT=y CONFIG_LIBC_LONG_LONG=y CONFIG_LIBC_STRERROR=y -CONFIG_LIB_BOARDCTL=y CONFIG_FS_PROCFS_MAX_TASKS=8 CONFIG_MEMSET_64BIT=y CONFIG_MEMSET_OPTSPEED=y @@ -90,5 +111,5 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="bootloader_main" +CONFIG_INIT_STACKSIZE=2944 +CONFIG_INIT_ENTRYPOINT="bootloader_main" diff --git a/boards/mro/ctrl-zero-classic/nuttx-config/nsh/defconfig b/boards/mro/ctrl-zero-classic/nuttx-config/nsh/defconfig index 7de8c128fd..ca35547b89 100644 --- a/boards/mro/ctrl-zero-classic/nuttx-config/nsh/defconfig +++ b/boards/mro/ctrl-zero-classic/nuttx-config/nsh/defconfig @@ -7,6 +7,7 @@ # # CONFIG_DISABLE_ENVIRON is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_MMCSD_HAVE_CARDDETECT is not set # CONFIG_MMCSD_HAVE_WRITEPROTECT is not set # CONFIG_MMCSD_MMCSUPPORT is not set @@ -40,9 +41,11 @@ CONFIG_ARMV7M_MEMCPY=y CONFIG_ARMV7M_USEBASEPRI=y CONFIG_ARM_MPU_EARLY_RESET=y CONFIG_BOARDCTL_RESET=y +CONFIG_BOARDCTL=y CONFIG_BOARD_CRASHDUMP=y CONFIG_BOARD_LOOPSPERMSEC=95150 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y CONFIG_C99_BOOL8=y CONFIG_CDCACM=y @@ -59,6 +62,25 @@ CONFIG_DEBUG_HARDFAULT_ALERT=y CONFIG_DEBUG_MEMFAULT=y CONFIG_DEBUG_SYMBOLS=y CONFIG_DEFAULT_SMALL=y +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set +# CONFIG_NSH_DISABLE_FREE is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_KILL is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MODCMDS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PRINTF is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_DEV_FIFO_SIZE=0 CONFIG_DEV_PIPE_MAXSIZE=1024 CONFIG_DEV_PIPE_SIZE=70 @@ -129,12 +151,13 @@ CONFIG_RAW_BINARY=y CONFIG_READLINE_CMD_HISTORY=y CONFIG_READLINE_TABCOMPLETION=y CONFIG_RTC_DATETIME=y -CONFIG_SCHED_ATEXIT=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 @@ -232,5 +255,5 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2944 +CONFIG_INIT_ENTRYPOINT="nsh_main" diff --git a/boards/mro/ctrl-zero-classic/src/usb.c b/boards/mro/ctrl-zero-classic/src/usb.c index e60a93bb59..fe32ce71ac 100644 --- a/boards/mro/ctrl-zero-classic/src/usb.c +++ b/boards/mro/ctrl-zero-classic/src/usb.c @@ -47,7 +47,7 @@ #include #include -#include +#include #include #include #include diff --git a/boards/mro/ctrl-zero-f7-oem/nuttx-config/nsh/defconfig b/boards/mro/ctrl-zero-f7-oem/nuttx-config/nsh/defconfig index ad56d733ab..bdba51d6bd 100644 --- a/boards/mro/ctrl-zero-f7-oem/nuttx-config/nsh/defconfig +++ b/boards/mro/ctrl-zero-f7-oem/nuttx-config/nsh/defconfig @@ -7,6 +7,7 @@ # # CONFIG_DISABLE_ENVIRON is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_MMCSD_HAVE_CARDDETECT is not set # CONFIG_MMCSD_HAVE_WRITEPROTECT is not set # CONFIG_MMCSD_MMCSUPPORT is not set @@ -40,9 +41,11 @@ CONFIG_ARMV7M_MEMCPY=y CONFIG_ARMV7M_USEBASEPRI=y CONFIG_ARM_MPU_EARLY_RESET=y CONFIG_BOARDCTL_RESET=y +CONFIG_BOARDCTL=y CONFIG_BOARD_CRASHDUMP=y CONFIG_BOARD_LOOPSPERMSEC=22114 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y CONFIG_C99_BOOL8=y CONFIG_CDCACM=y @@ -58,6 +61,25 @@ CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_HARDFAULT_ALERT=y CONFIG_DEBUG_SYMBOLS=y CONFIG_DEFAULT_SMALL=y +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set +# CONFIG_NSH_DISABLE_FREE is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_KILL is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MODCMDS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PRINTF is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_DEV_FIFO_SIZE=0 CONFIG_DEV_PIPE_MAXSIZE=1024 CONFIG_DEV_PIPE_SIZE=70 @@ -126,12 +148,13 @@ CONFIG_RAW_BINARY=y CONFIG_READLINE_CMD_HISTORY=y CONFIG_READLINE_TABCOMPLETION=y CONFIG_RTC_DATETIME=y -CONFIG_SCHED_ATEXIT=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 @@ -233,5 +256,5 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2944 +CONFIG_INIT_ENTRYPOINT="nsh_main" diff --git a/boards/mro/ctrl-zero-f7-oem/src/usb.c b/boards/mro/ctrl-zero-f7-oem/src/usb.c index 0ea22da849..4ac9829971 100644 --- a/boards/mro/ctrl-zero-f7-oem/src/usb.c +++ b/boards/mro/ctrl-zero-f7-oem/src/usb.c @@ -51,7 +51,7 @@ #include #include -#include +#include #include #include #include diff --git a/boards/mro/ctrl-zero-f7/nuttx-config/nsh/defconfig b/boards/mro/ctrl-zero-f7/nuttx-config/nsh/defconfig index ad7a96047d..9147ec7f9e 100644 --- a/boards/mro/ctrl-zero-f7/nuttx-config/nsh/defconfig +++ b/boards/mro/ctrl-zero-f7/nuttx-config/nsh/defconfig @@ -7,6 +7,7 @@ # # CONFIG_DISABLE_ENVIRON is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_MMCSD_HAVE_CARDDETECT is not set # CONFIG_MMCSD_HAVE_WRITEPROTECT is not set # CONFIG_MMCSD_MMCSUPPORT is not set @@ -40,9 +41,11 @@ CONFIG_ARMV7M_MEMCPY=y CONFIG_ARMV7M_USEBASEPRI=y CONFIG_ARM_MPU_EARLY_RESET=y CONFIG_BOARDCTL_RESET=y +CONFIG_BOARDCTL=y CONFIG_BOARD_CRASHDUMP=y CONFIG_BOARD_LOOPSPERMSEC=22114 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y CONFIG_C99_BOOL8=y CONFIG_CDCACM=y @@ -58,6 +61,25 @@ CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_HARDFAULT_ALERT=y CONFIG_DEBUG_SYMBOLS=y CONFIG_DEFAULT_SMALL=y +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set +# CONFIG_NSH_DISABLE_FREE is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_KILL is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MODCMDS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PRINTF is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_DEV_FIFO_SIZE=0 CONFIG_DEV_PIPE_MAXSIZE=1024 CONFIG_DEV_PIPE_SIZE=70 @@ -126,12 +148,13 @@ CONFIG_RAW_BINARY=y CONFIG_READLINE_CMD_HISTORY=y CONFIG_READLINE_TABCOMPLETION=y CONFIG_RTC_DATETIME=y -CONFIG_SCHED_ATEXIT=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 @@ -231,5 +254,5 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2944 +CONFIG_INIT_ENTRYPOINT="nsh_main" diff --git a/boards/mro/ctrl-zero-f7/src/usb.c b/boards/mro/ctrl-zero-f7/src/usb.c index 0ea22da849..4ac9829971 100644 --- a/boards/mro/ctrl-zero-f7/src/usb.c +++ b/boards/mro/ctrl-zero-f7/src/usb.c @@ -51,7 +51,7 @@ #include #include -#include +#include #include #include #include diff --git a/boards/mro/ctrl-zero-h7-oem/extras/mro_ctrl-zero-h7-oem_bootloader.bin b/boards/mro/ctrl-zero-h7-oem/extras/mro_ctrl-zero-h7-oem_bootloader.bin index 86dc50de7b9c4140d7356a8214ecd9a4b48857a7..49f645b82b7a07d3e0f4d454c473f78ebe7f7198 100755 GIT binary patch delta 17323 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 delta 17206 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

DE)P7#Vru>@?otm}mc_OnJb(T@ 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 Qlb~1*t&0xf7Y^tCA4*vYP5=M^ diff --git a/boards/mro/ctrl-zero-h7-oem/nuttx-config/bootloader/defconfig b/boards/mro/ctrl-zero-h7-oem/nuttx-config/bootloader/defconfig index 920a30bf1d..dab089575a 100644 --- a/boards/mro/ctrl-zero-h7-oem/nuttx-config/bootloader/defconfig +++ b/boards/mro/ctrl-zero-h7-oem/nuttx-config/bootloader/defconfig @@ -7,6 +7,7 @@ # # CONFIG_DEV_CONSOLE is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_SPI_EXCHANGE is not set # CONFIG_STM32H7_SYSCFG is not set CONFIG_ARCH="arm" @@ -23,10 +24,12 @@ CONFIG_ARMV7M_ICACHE=y CONFIG_ARMV7M_MEMCPY=y CONFIG_ARMV7M_USEBASEPRI=y CONFIG_BOARDCTL_RESET=y +CONFIG_BOARDCTL=y CONFIG_BOARD_INITTHREAD_PRIORITY=254 CONFIG_BOARD_LATE_INITIALIZE=y CONFIG_BOARD_LOOPSPERMSEC=95150 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_C99_BOOL8=y CONFIG_CDCACM=y CONFIG_CDCACM_IFLOWCONTROL=y @@ -40,6 +43,25 @@ CONFIG_CLOCK_MONOTONIC=y CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_SYMBOLS=y CONFIG_DEFAULT_SMALL=y +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set +# CONFIG_NSH_DISABLE_FREE is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_KILL is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MODCMDS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PRINTF is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_DISABLE_MQUEUE=y CONFIG_DISABLE_PTHREAD=y CONFIG_EXPERIMENTAL=y @@ -51,7 +73,6 @@ CONFIG_IDLETHREAD_STACKSIZE=750 CONFIG_LIBC_FLOATINGPOINT=y CONFIG_LIBC_LONG_LONG=y CONFIG_LIBC_STRERROR=y -CONFIG_LIB_BOARDCTL=y CONFIG_FS_PROCFS_MAX_TASKS=8 CONFIG_MEMSET_64BIT=y CONFIG_MEMSET_OPTSPEED=y @@ -90,5 +111,5 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="bootloader_main" +CONFIG_INIT_STACKSIZE=2944 +CONFIG_INIT_ENTRYPOINT="bootloader_main" diff --git a/boards/mro/ctrl-zero-h7-oem/nuttx-config/nsh/defconfig b/boards/mro/ctrl-zero-h7-oem/nuttx-config/nsh/defconfig index ac21595e47..6642b16495 100644 --- a/boards/mro/ctrl-zero-h7-oem/nuttx-config/nsh/defconfig +++ b/boards/mro/ctrl-zero-h7-oem/nuttx-config/nsh/defconfig @@ -7,6 +7,7 @@ # # CONFIG_DISABLE_ENVIRON is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_MMCSD_HAVE_CARDDETECT is not set # CONFIG_MMCSD_HAVE_WRITEPROTECT is not set # CONFIG_MMCSD_MMCSUPPORT is not set @@ -40,9 +41,11 @@ CONFIG_ARMV7M_MEMCPY=y CONFIG_ARMV7M_USEBASEPRI=y CONFIG_ARM_MPU_EARLY_RESET=y CONFIG_BOARDCTL_RESET=y +CONFIG_BOARDCTL=y CONFIG_BOARD_CRASHDUMP=y CONFIG_BOARD_LOOPSPERMSEC=95150 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y CONFIG_C99_BOOL8=y CONFIG_CDCACM=y @@ -59,6 +62,25 @@ CONFIG_DEBUG_HARDFAULT_ALERT=y CONFIG_DEBUG_MEMFAULT=y CONFIG_DEBUG_SYMBOLS=y CONFIG_DEFAULT_SMALL=y +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set +# CONFIG_NSH_DISABLE_FREE is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_KILL is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MODCMDS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PRINTF is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_DEV_FIFO_SIZE=0 CONFIG_DEV_PIPE_MAXSIZE=1024 CONFIG_DEV_PIPE_SIZE=70 @@ -129,12 +151,13 @@ CONFIG_RAW_BINARY=y CONFIG_READLINE_CMD_HISTORY=y CONFIG_READLINE_TABCOMPLETION=y CONFIG_RTC_DATETIME=y -CONFIG_SCHED_ATEXIT=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 @@ -232,5 +255,5 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2944 +CONFIG_INIT_ENTRYPOINT="nsh_main" diff --git a/boards/mro/ctrl-zero-h7-oem/src/usb.c b/boards/mro/ctrl-zero-h7-oem/src/usb.c index e60a93bb59..fe32ce71ac 100644 --- a/boards/mro/ctrl-zero-h7-oem/src/usb.c +++ b/boards/mro/ctrl-zero-h7-oem/src/usb.c @@ -47,7 +47,7 @@ #include #include -#include +#include #include #include #include diff --git a/boards/mro/ctrl-zero-h7/extras/mro_ctrl-zero-h7_bootloader.bin b/boards/mro/ctrl-zero-h7/extras/mro_ctrl-zero-h7_bootloader.bin index 6c09ebda15577d9267b040399365bd78f6e148e8..60c3fe2539d6e47ef3fe9e0145a6b8ea97132227 100755 GIT binary patch delta 17347 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 OSq@LjkK$*K<@_JI!3p^Q diff --git a/boards/mro/ctrl-zero-h7/nuttx-config/bootloader/defconfig b/boards/mro/ctrl-zero-h7/nuttx-config/bootloader/defconfig index bea411e71f..1de5bf7328 100644 --- a/boards/mro/ctrl-zero-h7/nuttx-config/bootloader/defconfig +++ b/boards/mro/ctrl-zero-h7/nuttx-config/bootloader/defconfig @@ -7,6 +7,7 @@ # # CONFIG_DEV_CONSOLE is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_SPI_EXCHANGE is not set # CONFIG_STM32H7_SYSCFG is not set CONFIG_ARCH="arm" @@ -23,10 +24,12 @@ CONFIG_ARMV7M_ICACHE=y CONFIG_ARMV7M_MEMCPY=y CONFIG_ARMV7M_USEBASEPRI=y CONFIG_BOARDCTL_RESET=y +CONFIG_BOARDCTL=y CONFIG_BOARD_INITTHREAD_PRIORITY=254 CONFIG_BOARD_LATE_INITIALIZE=y CONFIG_BOARD_LOOPSPERMSEC=95150 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_C99_BOOL8=y CONFIG_CDCACM=y CONFIG_CDCACM_IFLOWCONTROL=y @@ -40,6 +43,25 @@ CONFIG_CLOCK_MONOTONIC=y CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_SYMBOLS=y CONFIG_DEFAULT_SMALL=y +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set +# CONFIG_NSH_DISABLE_FREE is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_KILL is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MODCMDS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PRINTF is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_DISABLE_MQUEUE=y CONFIG_DISABLE_PTHREAD=y CONFIG_EXPERIMENTAL=y @@ -51,7 +73,6 @@ CONFIG_IDLETHREAD_STACKSIZE=750 CONFIG_LIBC_FLOATINGPOINT=y CONFIG_LIBC_LONG_LONG=y CONFIG_LIBC_STRERROR=y -CONFIG_LIB_BOARDCTL=y CONFIG_FS_PROCFS_MAX_TASKS=8 CONFIG_MEMSET_64BIT=y CONFIG_MEMSET_OPTSPEED=y @@ -90,5 +111,5 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="bootloader_main" +CONFIG_INIT_STACKSIZE=2944 +CONFIG_INIT_ENTRYPOINT="bootloader_main" diff --git a/boards/mro/ctrl-zero-h7/nuttx-config/nsh/defconfig b/boards/mro/ctrl-zero-h7/nuttx-config/nsh/defconfig index 1db30f975a..8c4397038f 100644 --- a/boards/mro/ctrl-zero-h7/nuttx-config/nsh/defconfig +++ b/boards/mro/ctrl-zero-h7/nuttx-config/nsh/defconfig @@ -7,6 +7,7 @@ # # CONFIG_DISABLE_ENVIRON is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_MMCSD_HAVE_CARDDETECT is not set # CONFIG_MMCSD_HAVE_WRITEPROTECT is not set # CONFIG_MMCSD_MMCSUPPORT is not set @@ -40,9 +41,11 @@ CONFIG_ARMV7M_MEMCPY=y CONFIG_ARMV7M_USEBASEPRI=y CONFIG_ARM_MPU_EARLY_RESET=y CONFIG_BOARDCTL_RESET=y +CONFIG_BOARDCTL=y CONFIG_BOARD_CRASHDUMP=y CONFIG_BOARD_LOOPSPERMSEC=95150 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y CONFIG_C99_BOOL8=y CONFIG_CDCACM=y @@ -59,6 +62,25 @@ CONFIG_DEBUG_HARDFAULT_ALERT=y CONFIG_DEBUG_MEMFAULT=y CONFIG_DEBUG_SYMBOLS=y CONFIG_DEFAULT_SMALL=y +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set +# CONFIG_NSH_DISABLE_FREE is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_KILL is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MODCMDS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PRINTF is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_DEV_FIFO_SIZE=0 CONFIG_DEV_PIPE_MAXSIZE=1024 CONFIG_DEV_PIPE_SIZE=70 @@ -129,12 +151,13 @@ CONFIG_RAW_BINARY=y CONFIG_READLINE_CMD_HISTORY=y CONFIG_READLINE_TABCOMPLETION=y CONFIG_RTC_DATETIME=y -CONFIG_SCHED_ATEXIT=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 @@ -229,5 +252,5 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2944 +CONFIG_INIT_ENTRYPOINT="nsh_main" diff --git a/boards/mro/ctrl-zero-h7/src/usb.c b/boards/mro/ctrl-zero-h7/src/usb.c index e60a93bb59..fe32ce71ac 100644 --- a/boards/mro/ctrl-zero-h7/src/usb.c +++ b/boards/mro/ctrl-zero-h7/src/usb.c @@ -47,7 +47,7 @@ #include #include -#include +#include #include #include #include diff --git a/boards/mro/pixracerpro/extras/mro_pixracerpro_bootloader.bin b/boards/mro/pixracerpro/extras/mro_pixracerpro_bootloader.bin index 78dffd23315700e28eff6f7bc50eb3e1fee686f3..377d31315be5596e438d99450ba32712c6abca1e 100755 GIT binary patch delta 17272 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 U?^!4x4|ySn&|lvt>F*EwKe}NZ6951J delta 17250 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 S=TqQn7HFEY4&x_|mf(wEgDB`VUpnwjj_)DOO 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 delta 16986 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 diff --git a/boards/mro/x21-777/nuttx-config/nsh/defconfig b/boards/mro/x21-777/nuttx-config/nsh/defconfig index 1ddbbe7600..0bfbc71859 100644 --- a/boards/mro/x21-777/nuttx-config/nsh/defconfig +++ b/boards/mro/x21-777/nuttx-config/nsh/defconfig @@ -7,6 +7,7 @@ # # CONFIG_DISABLE_ENVIRON is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_MMCSD_HAVE_CARDDETECT is not set # CONFIG_MMCSD_HAVE_WRITEPROTECT is not set # CONFIG_MMCSD_MMCSUPPORT is not set @@ -40,9 +41,11 @@ CONFIG_ARMV7M_MEMCPY=y CONFIG_ARMV7M_USEBASEPRI=y CONFIG_ARM_MPU_EARLY_RESET=y CONFIG_BOARDCTL_RESET=y +CONFIG_BOARDCTL=y CONFIG_BOARD_CRASHDUMP=y CONFIG_BOARD_LOOPSPERMSEC=22114 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y CONFIG_C99_BOOL8=y CONFIG_CDCACM=y @@ -58,6 +61,25 @@ CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_HARDFAULT_ALERT=y CONFIG_DEBUG_SYMBOLS=y CONFIG_DEFAULT_SMALL=y +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set +# CONFIG_NSH_DISABLE_FREE is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_KILL is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MODCMDS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PRINTF is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_DEV_FIFO_SIZE=0 CONFIG_DEV_PIPE_MAXSIZE=1024 CONFIG_DEV_PIPE_SIZE=70 @@ -126,12 +148,13 @@ CONFIG_RAW_BINARY=y CONFIG_READLINE_CMD_HISTORY=y CONFIG_READLINE_TABCOMPLETION=y CONFIG_RTC_DATETIME=y -CONFIG_SCHED_ATEXIT=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 @@ -233,5 +256,5 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2944 +CONFIG_INIT_ENTRYPOINT="nsh_main" diff --git a/boards/mro/x21-777/src/usb.c b/boards/mro/x21-777/src/usb.c index 0ea22da849..4ac9829971 100644 --- a/boards/mro/x21-777/src/usb.c +++ b/boards/mro/x21-777/src/usb.c @@ -51,7 +51,7 @@ #include #include -#include +#include #include #include #include diff --git a/boards/mro/x21/extras/px4_io-v2_default.bin b/boards/mro/x21/extras/px4_io-v2_default.bin index 51403914013d2f9cecc849dfda750db977a95303..957f0f13a12e8eb8a7979955f29ad98d82433933 100755 GIT binary patch delta 17038 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 delta 16986 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 diff --git a/boards/mro/x21/nuttx-config/nsh/defconfig b/boards/mro/x21/nuttx-config/nsh/defconfig index fe47ead119..8c79f1d0e7 100644 --- a/boards/mro/x21/nuttx-config/nsh/defconfig +++ b/boards/mro/x21/nuttx-config/nsh/defconfig @@ -7,6 +7,7 @@ # # CONFIG_DISABLE_ENVIRON is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_MMCSD_HAVE_CARDDETECT is not set # CONFIG_MMCSD_HAVE_WRITEPROTECT is not set # CONFIG_MMCSD_MMCSUPPORT is not set @@ -37,9 +38,11 @@ CONFIG_ARMV7M_MEMCPY=y CONFIG_ARMV7M_USEBASEPRI=y CONFIG_ARM_MPU_EARLY_RESET=y CONFIG_BOARDCTL_RESET=y +CONFIG_BOARDCTL=y CONFIG_BOARD_CRASHDUMP=y CONFIG_BOARD_LOOPSPERMSEC=16717 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y CONFIG_C99_BOOL8=y CONFIG_CDCACM=y @@ -55,6 +58,25 @@ CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_HARDFAULT_ALERT=y CONFIG_DEBUG_SYMBOLS=y CONFIG_DEFAULT_SMALL=y +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set +# CONFIG_NSH_DISABLE_FREE is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_KILL is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MODCMDS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PRINTF is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_DEV_FIFO_SIZE=0 CONFIG_DEV_PIPE_MAXSIZE=1024 CONFIG_DEV_PIPE_SIZE=70 @@ -119,12 +141,13 @@ CONFIG_RAM_SIZE=262144 CONFIG_RAM_START=0x20000000 CONFIG_RAW_BINARY=y CONFIG_RTC_DATETIME=y -CONFIG_SCHED_ATEXIT=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 @@ -226,5 +249,5 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2944 +CONFIG_INIT_ENTRYPOINT="nsh_main" diff --git a/boards/mro/x21/src/can.c b/boards/mro/x21/src/can.c index 5a32d62832..89b8ba2281 100644 --- a/boards/mro/x21/src/can.c +++ b/boards/mro/x21/src/can.c @@ -50,7 +50,7 @@ #include #include "chip.h" -#include "arm_arch.h" +#include "arm_internal.h" #include "stm32.h" #include "stm32_can.h" diff --git a/boards/mro/x21/src/usb.c b/boards/mro/x21/src/usb.c index 6fbea86a0b..eed786901e 100644 --- a/boards/mro/x21/src/usb.c +++ b/boards/mro/x21/src/usb.c @@ -51,7 +51,7 @@ #include #include -#include +#include #include #include "board_config.h" diff --git a/boards/nxp/fmuk66-e/nuttx-config/nsh/defconfig b/boards/nxp/fmuk66-e/nuttx-config/nsh/defconfig index ffd9866653..f22e910b9a 100644 --- a/boards/nxp/fmuk66-e/nuttx-config/nsh/defconfig +++ b/boards/nxp/fmuk66-e/nuttx-config/nsh/defconfig @@ -25,8 +25,8 @@ CONFIG_ARMV7M_USEBASEPRI=y CONFIG_BOARDCTL_RESET=y CONFIG_BOARD_LOOPSPERMSEC=15175 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y -CONFIG_C99_BOOL8=y CONFIG_CDCACM=y CONFIG_CDCACM_BULKIN_REQLEN=96 CONFIG_CDCACM_PRODUCTID=0x001c @@ -35,7 +35,6 @@ CONFIG_CDCACM_RXBUFSIZE=600 CONFIG_CDCACM_TXBUFSIZE=8000 CONFIG_CDCACM_VENDORID=0x1FC9 CONFIG_CDCACM_VENDORSTR="NXP SEMICONDUCTORS" -CONFIG_CLOCK_MONOTONIC=y CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_HARDFAULT_ALERT=y CONFIG_DEBUG_SYMBOLS=y @@ -61,6 +60,8 @@ CONFIG_HAVE_CXX=y CONFIG_HAVE_CXXINITIALIZE=y CONFIG_I2C_RESET=y CONFIG_IDLETHREAD_STACKSIZE=750 +CONFIG_INIT_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2944 CONFIG_IOB_NBUFFERS=24 CONFIG_IOB_THROTTLE=0 CONFIG_KINETIS_ADC0=y @@ -111,14 +112,14 @@ CONFIG_KINETIS_UART_EXTEDED_BREAK=y CONFIG_KINETIS_UART_INVERT=y CONFIG_KINETIS_USBDCD=y CONFIG_KINETS_LPUART_LOWEST=y -CONFIG_LIBC_FLOATINGPOINT=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_LIBC_STRERROR=y CONFIG_LPUART0_BAUD=57600 CONFIG_LPUART0_SERIAL_CONSOLE=y CONFIG_MEMSET_64BIT=y CONFIG_MEMSET_OPTSPEED=y CONFIG_MMCSD=y -CONFIG_MMCSD_MULTIBLOCK_DISABLE=y +CONFIG_MMCSD_MULTIBLOCK_LIMIT=1 CONFIG_MMCSD_SDIO=y CONFIG_MTD=y CONFIG_MTD_BYTE_WRITE=y @@ -149,6 +150,7 @@ CONFIG_NSH_DISABLE_HEXDUMP=y CONFIG_NSH_DISABLE_LOSETUP=y CONFIG_NSH_DISABLE_MKFIFO=y CONFIG_NSH_DISABLE_MKRD=y +CONFIG_NSH_DISABLE_PRINTF=y CONFIG_NSH_DISABLE_PUT=y CONFIG_NSH_DISABLE_REBOOT=y CONFIG_NSH_DISABLE_TELNETD=y @@ -173,18 +175,18 @@ CONFIG_RAM_SIZE=262144 CONFIG_RAM_START=0x1fff0000 CONFIG_RAW_BINARY=y CONFIG_RTC=y -CONFIG_SCHED_ATEXIT=y CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 CONFIG_SCHED_WAITPID=y -CONFIG_SDCLONE_DISABLE=y CONFIG_SEM_PREALLOCHOLDERS=32 CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y +CONFIG_SERIAL_TERMIOS=y CONFIG_SIG_DEFAULT=y CONFIG_SIG_SIGALRM_ACTION=y CONFIG_SIG_SIGUSR1_ACTION=y @@ -214,6 +216,4 @@ CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_DUALSPEED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="nsh_main" CONFIG_WATCHDOG=y diff --git a/boards/nxp/fmuk66-e/nuttx-config/socketcan/defconfig b/boards/nxp/fmuk66-e/nuttx-config/socketcan/defconfig index 063557447b..1bf52b1d2e 100644 --- a/boards/nxp/fmuk66-e/nuttx-config/socketcan/defconfig +++ b/boards/nxp/fmuk66-e/nuttx-config/socketcan/defconfig @@ -23,8 +23,10 @@ CONFIG_ARCH_STACKDUMP=y CONFIG_ARMV7M_MEMCPY=y CONFIG_ARMV7M_USEBASEPRI=y CONFIG_BOARDCTL_RESET=y +CONFIG_BOARDCTL=y CONFIG_BOARD_LOOPSPERMSEC=15175 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y CONFIG_C99_BOOL8=y CONFIG_CAN_CONNS=1 @@ -119,7 +121,7 @@ CONFIG_LPUART0_SERIAL_CONSOLE=y CONFIG_MEMSET_64BIT=y CONFIG_MEMSET_OPTSPEED=y CONFIG_MMCSD=y -CONFIG_MMCSD_MULTIBLOCK_DISABLE=y +CONFIG_MMCSD_MULTIBLOCK_LIMIT=1 CONFIG_MMCSD_SDIO=y CONFIG_MTD=y CONFIG_MTD_BYTE_WRITE=y @@ -177,18 +179,20 @@ CONFIG_RAM_SIZE=262144 CONFIG_RAM_START=0x1fff0000 CONFIG_RAW_BINARY=y CONFIG_RTC=y -CONFIG_SCHED_ATEXIT=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 CONFIG_SCHED_WAITPID=y CONFIG_SDCLONE_DISABLE=y CONFIG_SEM_PREALLOCHOLDERS=32 CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y +CONFIG_SERIAL_TERMIOS=y CONFIG_SIG_DEFAULT=y CONFIG_SIG_SIGALRM_ACTION=y CONFIG_SIG_SIGUSR1_ACTION=y @@ -222,6 +226,6 @@ CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_DUALSPEED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2944 +CONFIG_INIT_ENTRYPOINT="nsh_main" CONFIG_WATCHDOG=y diff --git a/boards/nxp/fmuk66-e/src/can.c b/boards/nxp/fmuk66-e/src/can.c index 7589439f48..934e3f4fce 100644 --- a/boards/nxp/fmuk66-e/src/can.c +++ b/boards/nxp/fmuk66-e/src/can.c @@ -51,7 +51,7 @@ #include #include -#include "arm_arch.h" +#include "arm_internal.h" #include "board_config.h" diff --git a/boards/nxp/fmuk66-e/src/init.c b/boards/nxp/fmuk66-e/src/init.c index ecb7f1bd87..affa94492e 100644 --- a/boards/nxp/fmuk66-e/src/init.c +++ b/boards/nxp/fmuk66-e/src/init.c @@ -67,7 +67,7 @@ #include #include "board_config.h" -#include "arm_arch.h" +#include "arm_internal.h" #include #include diff --git a/boards/nxp/fmuk66-e/src/spi.cpp b/boards/nxp/fmuk66-e/src/spi.cpp index efdd6c484d..78d1a57ce2 100644 --- a/boards/nxp/fmuk66-e/src/spi.cpp +++ b/boards/nxp/fmuk66-e/src/spi.cpp @@ -47,7 +47,7 @@ #include #include -#include "arm_arch.h" +#include "arm_internal.h" #include "chip.h" #include #include "board_config.h" diff --git a/boards/nxp/fmuk66-e/src/usb.c b/boards/nxp/fmuk66-e/src/usb.c index 3c7098437e..20dd7e78cf 100644 --- a/boards/nxp/fmuk66-e/src/usb.c +++ b/boards/nxp/fmuk66-e/src/usb.c @@ -51,7 +51,7 @@ #include #include -#include +#include #include #include #include "board_config.h" diff --git a/boards/nxp/fmuk66-v3/nuttx-config/nsh/defconfig b/boards/nxp/fmuk66-v3/nuttx-config/nsh/defconfig index 56521b8d5e..0ea81b4343 100644 --- a/boards/nxp/fmuk66-v3/nuttx-config/nsh/defconfig +++ b/boards/nxp/fmuk66-v3/nuttx-config/nsh/defconfig @@ -9,6 +9,7 @@ # CONFIG_MMCSD_HAVE_WRITEPROTECT is not set # CONFIG_MMCSD_MMCSUPPORT is not set # CONFIG_MMCSD_SPI is not set +# CONFIG_NDEBUG is not set CONFIG_ARCH="arm" CONFIG_ARCH_BOARD_CUSTOM=y CONFIG_ARCH_BOARD_CUSTOM_DIR="../../../../boards/nxp/fmuk66-v3/nuttx-config" @@ -24,8 +25,8 @@ CONFIG_ARMV7M_USEBASEPRI=y CONFIG_BOARDCTL_RESET=y CONFIG_BOARD_LOOPSPERMSEC=15175 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y -CONFIG_C99_BOOL8=y CONFIG_CDCACM=y CONFIG_CDCACM_BULKIN_REQLEN=96 CONFIG_CDCACM_PRODUCTID=0x001c @@ -38,6 +39,7 @@ CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_HARDFAULT_ALERT=y CONFIG_DEBUG_SYMBOLS=y CONFIG_DEV_FIFO_SIZE=0 +CONFIG_DEV_PIPE_MAXSIZE=1024 CONFIG_DEV_PIPE_SIZE=70 CONFIG_DISABLE_MQUEUE=y CONFIG_DISABLE_POSIX_TIMERS=y @@ -62,8 +64,9 @@ CONFIG_HAVE_CXX=y CONFIG_HAVE_CXXINITIALIZE=y CONFIG_I2C_RESET=y CONFIG_IDLETHREAD_STACKSIZE=750 +CONFIG_INIT_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2944 CONFIG_IOB_NBUFFERS=24 -CONFIG_IOB_THROTTLE=0 CONFIG_KINETIS_ADC0=y CONFIG_KINETIS_ADC1=y CONFIG_KINETIS_CRC=y @@ -112,13 +115,14 @@ CONFIG_KINETIS_UART_EXTEDED_BREAK=y CONFIG_KINETIS_UART_INVERT=y CONFIG_KINETIS_USBDCD=y CONFIG_KINETS_LPUART_LOWEST=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_LIBC_STRERROR=y CONFIG_LPUART0_BAUD=57600 CONFIG_LPUART0_SERIAL_CONSOLE=y CONFIG_MEMSET_64BIT=y CONFIG_MEMSET_OPTSPEED=y CONFIG_MMCSD=y -CONFIG_MMCSD_MULTIBLOCK_DISABLE=y +CONFIG_MMCSD_MULTIBLOCK_LIMIT=1 CONFIG_MMCSD_SDIO=y CONFIG_MTD=y CONFIG_MTD_BYTE_WRITE=y @@ -149,6 +153,7 @@ CONFIG_NSH_DISABLE_HEXDUMP=y CONFIG_NSH_DISABLE_LOSETUP=y CONFIG_NSH_DISABLE_MKFIFO=y CONFIG_NSH_DISABLE_MKRD=y +CONFIG_NSH_DISABLE_PRINTF=y CONFIG_NSH_DISABLE_PUT=y CONFIG_NSH_DISABLE_REBOOT=y CONFIG_NSH_DISABLE_TELNETD=y @@ -173,18 +178,18 @@ CONFIG_RAM_SIZE=262144 CONFIG_RAM_START=0x1fff0000 CONFIG_RAW_BINARY=y CONFIG_RTC=y -CONFIG_SCHED_ATEXIT=y CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 CONFIG_SCHED_WAITPID=y -CONFIG_SDCLONE_DISABLE=y CONFIG_SEM_PREALLOCHOLDERS=32 CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y +CONFIG_SERIAL_TERMIOS=y CONFIG_SIG_DEFAULT=y CONFIG_SIG_SIGALRM_ACTION=y CONFIG_SIG_SIGUSR1_ACTION=y @@ -212,6 +217,4 @@ CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_DUALSPEED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="nsh_main" CONFIG_WATCHDOG=y diff --git a/boards/nxp/fmuk66-v3/nuttx-config/socketcan/defconfig b/boards/nxp/fmuk66-v3/nuttx-config/socketcan/defconfig index 906bd0ce85..12e2834df4 100644 --- a/boards/nxp/fmuk66-v3/nuttx-config/socketcan/defconfig +++ b/boards/nxp/fmuk66-v3/nuttx-config/socketcan/defconfig @@ -22,8 +22,10 @@ CONFIG_ARCH_STACKDUMP=y CONFIG_ARMV7M_MEMCPY=y CONFIG_ARMV7M_USEBASEPRI=y CONFIG_BOARDCTL_RESET=y +CONFIG_BOARDCTL=y CONFIG_BOARD_LOOPSPERMSEC=15175 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y CONFIG_C99_BOOL8=y CONFIG_CAN_CONNS=1 @@ -118,7 +120,7 @@ CONFIG_LPUART0_SERIAL_CONSOLE=y CONFIG_MEMSET_64BIT=y CONFIG_MEMSET_OPTSPEED=y CONFIG_MMCSD=y -CONFIG_MMCSD_MULTIBLOCK_DISABLE=y +CONFIG_MMCSD_MULTIBLOCK_LIMIT=1 CONFIG_MMCSD_SDIO=y CONFIG_MTD=y CONFIG_MTD_BYTE_WRITE=y @@ -176,18 +178,20 @@ CONFIG_RAM_SIZE=262144 CONFIG_RAM_START=0x1fff0000 CONFIG_RAW_BINARY=y CONFIG_RTC=y -CONFIG_SCHED_ATEXIT=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 CONFIG_SCHED_WAITPID=y CONFIG_SDCLONE_DISABLE=y CONFIG_SEM_PREALLOCHOLDERS=32 CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y +CONFIG_SERIAL_TERMIOS=y CONFIG_SIG_DEFAULT=y CONFIG_SIG_SIGALRM_ACTION=y CONFIG_SIG_SIGUSR1_ACTION=y @@ -219,6 +223,6 @@ CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_DUALSPEED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2944 +CONFIG_INIT_ENTRYPOINT="nsh_main" CONFIG_WATCHDOG=y diff --git a/boards/nxp/fmuk66-v3/nuttx-config/test/defconfig b/boards/nxp/fmuk66-v3/nuttx-config/test/defconfig index 9a0ddfc5a1..0c5accd6d8 100644 --- a/boards/nxp/fmuk66-v3/nuttx-config/test/defconfig +++ b/boards/nxp/fmuk66-v3/nuttx-config/test/defconfig @@ -22,8 +22,10 @@ CONFIG_ARCH_STACKDUMP=y CONFIG_ARMV7M_MEMCPY=y CONFIG_ARMV7M_USEBASEPRI=y CONFIG_BOARDCTL_RESET=y +CONFIG_BOARDCTL=y CONFIG_BOARD_LOOPSPERMSEC=15175 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y CONFIG_C99_BOOL8=y CONFIG_CDCACM=y @@ -116,7 +118,7 @@ CONFIG_LPUART0_SERIAL_CONSOLE=y CONFIG_MEMSET_64BIT=y CONFIG_MEMSET_OPTSPEED=y CONFIG_MMCSD=y -CONFIG_MMCSD_MULTIBLOCK_DISABLE=y +CONFIG_MMCSD_MULTIBLOCK_LIMIT=1 CONFIG_MMCSD_SDIO=y CONFIG_MTD=y CONFIG_MTD_BYTE_WRITE=y @@ -175,18 +177,20 @@ CONFIG_RAM_SIZE=262144 CONFIG_RAM_START=0x1fff0000 CONFIG_RAW_BINARY=y CONFIG_RTC=y -CONFIG_SCHED_ATEXIT=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 CONFIG_SCHED_WAITPID=y CONFIG_SDCLONE_DISABLE=y CONFIG_SEM_PREALLOCHOLDERS=32 CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y +CONFIG_SERIAL_TERMIOS=y CONFIG_SIG_DEFAULT=y CONFIG_SIG_SIGALRM_ACTION=y CONFIG_SIG_SIGUSR1_ACTION=y @@ -221,6 +225,6 @@ CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_DUALSPEED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2944 +CONFIG_INIT_ENTRYPOINT="nsh_main" CONFIG_WATCHDOG=y diff --git a/boards/nxp/fmuk66-v3/src/init.c b/boards/nxp/fmuk66-v3/src/init.c index 6d0c2f91fa..57e8633459 100644 --- a/boards/nxp/fmuk66-v3/src/init.c +++ b/boards/nxp/fmuk66-v3/src/init.c @@ -67,7 +67,7 @@ #include #include "board_config.h" -#include "arm_arch.h" +#include "arm_internal.h" #include #include diff --git a/boards/nxp/fmuk66-v3/src/spi.cpp b/boards/nxp/fmuk66-v3/src/spi.cpp index ccf25dfd04..5231e4c79e 100644 --- a/boards/nxp/fmuk66-v3/src/spi.cpp +++ b/boards/nxp/fmuk66-v3/src/spi.cpp @@ -47,7 +47,7 @@ #include #include -#include "arm_arch.h" +#include "arm_internal.h" #include "chip.h" #include #include "board_config.h" diff --git a/boards/nxp/fmuk66-v3/src/usb.c b/boards/nxp/fmuk66-v3/src/usb.c index 3c7098437e..20dd7e78cf 100644 --- a/boards/nxp/fmuk66-v3/src/usb.c +++ b/boards/nxp/fmuk66-v3/src/usb.c @@ -51,7 +51,7 @@ #include #include -#include +#include #include #include #include "board_config.h" diff --git a/boards/nxp/fmurt1062-v1/nuttx-config/nsh/defconfig b/boards/nxp/fmurt1062-v1/nuttx-config/nsh/defconfig index fd6c7667e5..9be4c2aed6 100644 --- a/boards/nxp/fmurt1062-v1/nuttx-config/nsh/defconfig +++ b/boards/nxp/fmurt1062-v1/nuttx-config/nsh/defconfig @@ -31,9 +31,9 @@ CONFIG_BOARD_CUSTOM_LEDS=y CONFIG_BOARD_FORCE_ALIGNMENT=y CONFIG_BOARD_LOOPSPERMSEC=104926 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BOOT_RUNFROMISRAM=y CONFIG_BUILTIN=y -CONFIG_C99_BOOL8=y CONFIG_CDCACM=y CONFIG_CDCACM_BULKIN_REQLEN=96 CONFIG_CDCACM_PRODUCTID=0x001d @@ -42,7 +42,6 @@ CONFIG_CDCACM_RXBUFSIZE=600 CONFIG_CDCACM_TXBUFSIZE=12000 CONFIG_CDCACM_VENDORID=0x1FC9 CONFIG_CDCACM_VENDORSTR="NXP SEMICONDUCTORS" -CONFIG_CLOCK_MONOTONIC=y CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_HARDFAULT_ALERT=y CONFIG_DEBUG_SYMBOLS=y @@ -115,7 +114,9 @@ CONFIG_IMXRT_USBDEV=y CONFIG_IMXRT_USDHC1=y CONFIG_IMXRT_USDHC1_INVERT_CD=y CONFIG_IMXRT_USDHC1_WIDTH_D1_D4=y -CONFIG_LIBC_FLOATINGPOINT=y +CONFIG_INIT_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2944 +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_LIBC_STRERROR=y CONFIG_LPUART2_BAUD=57600 CONFIG_LPUART2_RXBUFSIZE=600 @@ -166,6 +167,7 @@ CONFIG_NSH_DISABLE_IFUPDOWN=y CONFIG_NSH_DISABLE_LOSETUP=y CONFIG_NSH_DISABLE_MKFIFO=y CONFIG_NSH_DISABLE_MKRD=y +CONFIG_NSH_DISABLE_PRINTF=y CONFIG_NSH_DISABLE_PSSTACKUSAGE=y CONFIG_NSH_DISABLE_PUT=y CONFIG_NSH_DISABLE_REBOOT=y @@ -193,17 +195,16 @@ CONFIG_RAW_BINARY=y CONFIG_READLINE_CMD_HISTORY=y CONFIG_READLINE_TABCOMPLETION=y CONFIG_RTC=y -CONFIG_SCHED_ATEXIT=y CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1800 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 CONFIG_SCHED_WAITPID=y -CONFIG_SDCLONE_DISABLE=y CONFIG_SDIO_BLOCKSETUP=y CONFIG_SEM_PREALLOCHOLDERS=32 CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y @@ -226,6 +227,4 @@ CONFIG_USBDEV_DMA=y CONFIG_USBDEV_DUALSPEED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="nsh_main" CONFIG_WATCHDOG=y diff --git a/boards/nxp/fmurt1062-v1/src/board_config.h b/boards/nxp/fmurt1062-v1/src/board_config.h index ff166fe21d..73753ef5c4 100644 --- a/boards/nxp/fmurt1062-v1/src/board_config.h +++ b/boards/nxp/fmurt1062-v1/src/board_config.h @@ -363,7 +363,7 @@ /* SD card bringup does not work if performed on the IDLE thread because it * will cause waiting. Use either: * - * CONFIG_LIB_BOARDCTL=y, OR + * CONFIG_BOARDCTL=y, OR * CONFIG_BOARD_INITIALIZE=y && CONFIG_BOARD_INITTHREAD=y */ diff --git a/boards/nxp/fmurt1062-v1/src/can.c b/boards/nxp/fmurt1062-v1/src/can.c index eb5c40d188..f5d9a2280b 100644 --- a/boards/nxp/fmurt1062-v1/src/can.c +++ b/boards/nxp/fmurt1062-v1/src/can.c @@ -50,7 +50,7 @@ #include #include -#include "arm_arch.h" +#include "arm_internal.h" #include "board_config.h" diff --git a/boards/nxp/fmurt1062-v1/src/init.c b/boards/nxp/fmurt1062-v1/src/init.c index 9f2bb13b98..1b6feae537 100644 --- a/boards/nxp/fmurt1062-v1/src/init.c +++ b/boards/nxp/fmurt1062-v1/src/init.c @@ -63,7 +63,7 @@ #include #include -#include "arm_arch.h" +#include "arm_internal.h" #include "arm_internal.h" #include "imxrt_flexspi_nor_boot.h" #include "imxrt_iomuxc.h" diff --git a/boards/nxp/fmurt1062-v1/src/spi.cpp b/boards/nxp/fmurt1062-v1/src/spi.cpp index 5e9fa6131f..04274128f0 100644 --- a/boards/nxp/fmurt1062-v1/src/spi.cpp +++ b/boards/nxp/fmurt1062-v1/src/spi.cpp @@ -53,7 +53,7 @@ #include #include -#include +#include #include #include "imxrt_lpspi.h" #include "imxrt_gpio.h" diff --git a/boards/nxp/fmurt1062-v1/src/usb.c b/boards/nxp/fmurt1062-v1/src/usb.c index 24fe740fed..0d3c71348d 100644 --- a/boards/nxp/fmurt1062-v1/src/usb.c +++ b/boards/nxp/fmurt1062-v1/src/usb.c @@ -51,7 +51,7 @@ #include #include -#include +#include #include #include #include "board_config.h" diff --git a/boards/nxp/ucans32k146/nuttx-config/canbootloader/defconfig b/boards/nxp/ucans32k146/nuttx-config/canbootloader/defconfig index ce1602d8a0..551725194d 100644 --- a/boards/nxp/ucans32k146/nuttx-config/canbootloader/defconfig +++ b/boards/nxp/ucans32k146/nuttx-config/canbootloader/defconfig @@ -23,6 +23,7 @@ CONFIG_ARCH_STACKDUMP=y CONFIG_ARMV7M_USEBASEPRI=y CONFIG_BINFMT_DISABLE=y CONFIG_BOARDCTL_RESET=y +CONFIG_BOARDCTL=y CONFIG_BOARD_LOOPSPERMSEC=3997 CONFIG_C99_BOOL8=y CONFIG_CLOCK_MONOTONIC=y @@ -30,6 +31,25 @@ CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_HARDFAULT_ALERT=y CONFIG_DEBUG_SYMBOLS=y CONFIG_DEFAULT_SMALL=y +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set +# CONFIG_NSH_DISABLE_FREE is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_KILL is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MODCMDS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PRINTF is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_DISABLE_MOUNTPOINT=y CONFIG_DISABLE_MQUEUE=y CONFIG_DISABLE_PTHREAD=y @@ -42,7 +62,6 @@ CONFIG_IDLETHREAD_STACKSIZE=4096 CONFIG_LIBC_FLOATINGPOINT=y CONFIG_LIBC_LONG_LONG=y CONFIG_LIBC_STRERROR=y -CONFIG_LIB_BOARDCTL=y CONFIG_FS_PROCFS_MAX_TASKS=0 CONFIG_NAME_MAX=0 CONFIG_NUNGET_CHARS=0 @@ -63,4 +82,4 @@ CONFIG_STDIO_DISABLE_BUFFERING=y CONFIG_SYSLOG_DEFAULT=y CONFIG_TASK_NAME_SIZE=0 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=4096 +CONFIG_INIT_STACKSIZE=4096 diff --git a/boards/nxp/ucans32k146/nuttx-config/nsh/defconfig b/boards/nxp/ucans32k146/nuttx-config/nsh/defconfig index 72c84a0de2..34ef38eda5 100644 --- a/boards/nxp/ucans32k146/nuttx-config/nsh/defconfig +++ b/boards/nxp/ucans32k146/nuttx-config/nsh/defconfig @@ -25,7 +25,6 @@ CONFIG_BCH=y CONFIG_BOARDCTL_RESET=y CONFIG_BOARD_LOOPSPERMSEC=3997 CONFIG_BUILTIN=y -CONFIG_CLOCK_MONOTONIC=y CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_HARDFAULT_ALERT=y CONFIG_DEBUG_SYMBOLS=y @@ -43,8 +42,9 @@ CONFIG_I2CTOOL_DEFFREQ=100000 CONFIG_I2CTOOL_MAXADDR=0x7f CONFIG_I2CTOOL_MAXBUS=0 CONFIG_I2CTOOL_MINADDR=0x00 +CONFIG_INIT_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2176 CONFIG_INTELHEX_BINARY=y -CONFIG_LIBC_FLOATINGPOINT=y CONFIG_LIBC_STRERROR=y CONFIG_LPUART0_BAUD=38400 CONFIG_LPUART0_RXBUFSIZE=600 @@ -68,6 +68,9 @@ CONFIG_NET_TIMESTAMP=y CONFIG_NSH_ARCHINIT=y CONFIG_NSH_BUILTIN_APPS=y CONFIG_NSH_CROMFSETC=y +CONFIG_NSH_DISABLE_NSLOOKUP=y +CONFIG_NSH_DISABLE_PRINTF=y +CONFIG_NSH_DISABLE_TRUNCATE=y CONFIG_NSH_LINELEN=128 CONFIG_NSH_MAXARGUMENTS=15 CONFIG_NSH_NESTDEPTH=8 @@ -95,11 +98,11 @@ CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 CONFIG_SCHED_WAITPID=y -CONFIG_SDCLONE_DISABLE=y CONFIG_SERIAL_TERMIOS=y CONFIG_SIG_DEFAULT=y CONFIG_SPITOOL_MAXBUS=2 @@ -112,6 +115,4 @@ CONFIG_SYMTAB_ORDEREDBYNAME=y CONFIG_SYSTEM_I2CTOOL=y CONFIG_SYSTEM_NSH=y CONFIG_SYSTEM_SPITOOL=y -CONFIG_USERMAIN_STACKSIZE=2176 -CONFIG_USER_ENTRYPOINT="nsh_main" CONFIG_WATCHDOG=y diff --git a/boards/nxp/ucans32k146/src/autoleds.c b/boards/nxp/ucans32k146/src/autoleds.c index c4b67f8ca9..a762b71d28 100644 --- a/boards/nxp/ucans32k146/src/autoleds.c +++ b/boards/nxp/ucans32k146/src/autoleds.c @@ -72,7 +72,7 @@ #include #include -#include "arm_arch.h" +#include "arm_internal.h" #include "arm_internal.h" #include "s32k1xx_pin.h" diff --git a/boards/nxp/ucans32k146/src/board_config.h b/boards/nxp/ucans32k146/src/board_config.h index ea591a9f03..adc0a7f8f3 100644 --- a/boards/nxp/ucans32k146/src/board_config.h +++ b/boards/nxp/ucans32k146/src/board_config.h @@ -144,7 +144,7 @@ extern const struct peripheral_clock_config_s g_peripheral_clockconfig0[]; * CONFIG_BOARD_LATE_INITIALIZE=y : * Called from board_late_initialize(). * - * CONFIG_BOARD_LATE_INITIALIZE=y && CONFIG_LIB_BOARDCTL=y : + * CONFIG_BOARD_LATE_INITIALIZE=y && CONFIG_BOARDCTL=y : * Called from the NSH library * ****************************************************************************/ diff --git a/boards/nxp/ucans32k146/src/bringup.c b/boards/nxp/ucans32k146/src/bringup.c index 11a4f291d7..b74f21832d 100644 --- a/boards/nxp/ucans32k146/src/bringup.c +++ b/boards/nxp/ucans32k146/src/bringup.c @@ -76,7 +76,7 @@ * CONFIG_BOARD_LATE_INITIALIZE=y : * Called from board_late_initialize(). * - * CONFIG_BOARD_LATE_INITIALIZE=n && CONFIG_LIB_BOARDCTL=y : + * CONFIG_BOARD_LATE_INITIALIZE=n && CONFIG_BOARDCTL=y : * Called from the NSH library * ****************************************************************************/ diff --git a/boards/nxp/ucans32k146/src/spi.c b/boards/nxp/ucans32k146/src/spi.c index 9136edb2cc..e6e75202f3 100644 --- a/boards/nxp/ucans32k146/src/spi.c +++ b/boards/nxp/ucans32k146/src/spi.c @@ -48,7 +48,7 @@ #include #include -#include "arm_arch.h" +#include "arm_internal.h" #include "s32k1xx_config.h" #include "s32k1xx_lpspi.h" diff --git a/boards/nxp/ucans32k146/src/spi.cpp b/boards/nxp/ucans32k146/src/spi.cpp index 7ed6b8194f..860f3de249 100644 --- a/boards/nxp/ucans32k146/src/spi.cpp +++ b/boards/nxp/ucans32k146/src/spi.cpp @@ -47,7 +47,7 @@ #include #include -#include "arm_arch.h" +#include "arm_internal.h" #include "chip.h" #include diff --git a/boards/nxp/ucans32k146/src/userleds.c b/boards/nxp/ucans32k146/src/userleds.c index e9fce1b85a..1361c129da 100644 --- a/boards/nxp/ucans32k146/src/userleds.c +++ b/boards/nxp/ucans32k146/src/userleds.c @@ -45,7 +45,7 @@ #include -#include "arm_arch.h" +#include "arm_internal.h" #include "arm_internal.h" #include "s32k1xx_pin.h" diff --git a/boards/omnibus/f4sd/nuttx-config/nsh/defconfig b/boards/omnibus/f4sd/nuttx-config/nsh/defconfig index 76a57aada2..e10665684a 100644 --- a/boards/omnibus/f4sd/nuttx-config/nsh/defconfig +++ b/boards/omnibus/f4sd/nuttx-config/nsh/defconfig @@ -23,10 +23,12 @@ CONFIG_ARCH_INTERRUPTSTACK=512 CONFIG_ARMV7M_MEMCPY=y CONFIG_ARMV7M_USEBASEPRI=y CONFIG_BOARDCTL_RESET=y +CONFIG_BOARDCTL=y CONFIG_BOARD_CRASHDUMP=y CONFIG_BOARD_CUSTOM_LEDS=y CONFIG_BOARD_LOOPSPERMSEC=16717 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y CONFIG_C99_BOOL8=y CONFIG_CDCACM=y @@ -104,12 +106,13 @@ CONFIG_RAM_SIZE=196608 CONFIG_RAM_START=0x20000000 CONFIG_RAW_BINARY=y CONFIG_RTC_DATETIME=y -CONFIG_SCHED_ATEXIT=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 @@ -183,5 +186,5 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2944 +CONFIG_INIT_ENTRYPOINT="nsh_main" diff --git a/boards/omnibus/f4sd/src/usb.c b/boards/omnibus/f4sd/src/usb.c index f02ec76bb8..09f0cde408 100644 --- a/boards/omnibus/f4sd/src/usb.c +++ b/boards/omnibus/f4sd/src/usb.c @@ -51,7 +51,7 @@ #include #include -#include +#include #include #include "board_config.h" diff --git a/boards/px4/fmu-v2/extras/px4_io-v2_default.bin b/boards/px4/fmu-v2/extras/px4_io-v2_default.bin index 51403914013d2f9cecc849dfda750db977a95303..957f0f13a12e8eb8a7979955f29ad98d82433933 100755 GIT binary patch delta 17038 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 delta 16986 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 diff --git a/boards/px4/fmu-v2/nuttx-config/nsh/defconfig b/boards/px4/fmu-v2/nuttx-config/nsh/defconfig index e99d9b2682..03103d2dfc 100644 --- a/boards/px4/fmu-v2/nuttx-config/nsh/defconfig +++ b/boards/px4/fmu-v2/nuttx-config/nsh/defconfig @@ -7,21 +7,46 @@ # # CONFIG_DISABLE_ENVIRON is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_MMCSD_HAVE_CARDDETECT is not set # CONFIG_MMCSD_HAVE_WRITEPROTECT is not set # CONFIG_MMCSD_MMCSUPPORT is not set # CONFIG_MMCSD_SPI is not set # CONFIG_NSH_DISABLEBG is not set # CONFIG_NSH_DISABLESCRIPT is not set +# CONFIG_NSH_DISABLE_CAT is not set +# CONFIG_NSH_DISABLE_CD is not set +# CONFIG_NSH_DISABLE_CP is not set +# CONFIG_NSH_DISABLE_DATE is not set # CONFIG_NSH_DISABLE_DF is not set +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set # CONFIG_NSH_DISABLE_EXEC is not set # CONFIG_NSH_DISABLE_EXIT is not set +# CONFIG_NSH_DISABLE_EXPORT is not set +# CONFIG_NSH_DISABLE_FREE is not set # CONFIG_NSH_DISABLE_GET is not set +# CONFIG_NSH_DISABLE_HELP is not set # CONFIG_NSH_DISABLE_ITEF is not set +# CONFIG_NSH_DISABLE_KILL is not set # CONFIG_NSH_DISABLE_LOOPS is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set # CONFIG_NSH_DISABLE_PS is not set +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_RM is not set +# CONFIG_NSH_DISABLE_RMDIR is not set # CONFIG_NSH_DISABLE_SEMICOLON is not set +# CONFIG_NSH_DISABLE_SET is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_TEST is not set # CONFIG_NSH_DISABLE_TIME is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set # CONFIG_STM32_CCMEXCLUDE is not set CONFIG_ARCH="arm" CONFIG_ARCH_BOARD_CUSTOM=y @@ -40,8 +65,8 @@ CONFIG_BOARDCTL_RESET=y CONFIG_BOARD_CRASHDUMP=y CONFIG_BOARD_LOOPSPERMSEC=16717 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y -CONFIG_C99_BOOL8=y CONFIG_CDCACM=y CONFIG_CDCACM_IFLOWCONTROL=y CONFIG_CDCACM_PRODUCTID=0x0011 @@ -50,7 +75,6 @@ CONFIG_CDCACM_RXBUFSIZE=600 CONFIG_CDCACM_TXBUFSIZE=2000 CONFIG_CDCACM_VENDORID=0x26ac CONFIG_CDCACM_VENDORSTR="3D Robotics" -CONFIG_CLOCK_MONOTONIC=y CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_HARDFAULT_ALERT=y CONFIG_DEBUG_SYMBOLS=y @@ -58,7 +82,6 @@ CONFIG_DEFAULT_SMALL=y CONFIG_DEV_FIFO_SIZE=0 CONFIG_DEV_PIPE_MAXSIZE=1024 CONFIG_DEV_PIPE_SIZE=70 -CONFIG_DISABLE_MQUEUE=y CONFIG_FAT_DMAMEMORY=y CONFIG_FAT_LCNAMES=y CONFIG_FAT_LFN=y @@ -76,8 +99,11 @@ CONFIG_HAVE_CXXINITIALIZE=y CONFIG_I2C=y CONFIG_I2C_RESET=y CONFIG_IDLETHREAD_STACKSIZE=750 +CONFIG_INIT_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2944 CONFIG_LIBC_FLOATINGPOINT=y CONFIG_LIBC_LONG_LONG=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_MEMSET_64BIT=y CONFIG_MEMSET_OPTSPEED=y CONFIG_MMCSD=y @@ -94,8 +120,6 @@ CONFIG_NSH_ARGCAT=y CONFIG_NSH_BUILTIN_APPS=y CONFIG_NSH_CMDPARMS=y CONFIG_NSH_CROMFSETC=y -CONFIG_NSH_DISABLE_PSSTACKUSAGE=y -CONFIG_NSH_DISABLE_TELNETD=y CONFIG_NSH_LINELEN=128 CONFIG_NSH_MAXARGUMENTS=15 CONFIG_NSH_NESTDEPTH=8 @@ -106,24 +130,23 @@ CONFIG_NSH_VARS=y CONFIG_PIPES=y CONFIG_PREALLOC_TIMERS=50 CONFIG_PRIORITY_INHERITANCE=y -CONFIG_PTHREAD_MUTEX_ROBUST=y +CONFIG_PTHREAD_MUTEX_DEFAULT_PRIO_INHERIT=y CONFIG_PTHREAD_STACK_MIN=512 CONFIG_RAMTRON_SETSPEED=y CONFIG_RAM_SIZE=262144 CONFIG_RAM_START=0x20000000 CONFIG_RAW_BINARY=y CONFIG_RTC_DATETIME=y -CONFIG_SCHED_ATEXIT=y CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 CONFIG_SCHED_WAITPID=y -CONFIG_SDCLONE_DISABLE=y CONFIG_SDIO_BLOCKSETUP=y CONFIG_SEM_PREALLOCHOLDERS=32 CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y @@ -171,7 +194,6 @@ CONFIG_STM32_SPI2=y CONFIG_STM32_SPI4=y CONFIG_STM32_SPI4_DMA=y CONFIG_STM32_SPI4_DMA_BUFFER=512 -CONFIG_STM32_SPI_DMA=y CONFIG_STM32_SPI_DMATHRESHOLD=32 CONFIG_STM32_TIM10=y CONFIG_STM32_TIM11=y @@ -224,5 +246,3 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="nsh_main" diff --git a/boards/px4/fmu-v2/src/can.c b/boards/px4/fmu-v2/src/can.c index 5eea9bef17..25943d53e1 100644 --- a/boards/px4/fmu-v2/src/can.c +++ b/boards/px4/fmu-v2/src/can.c @@ -50,7 +50,7 @@ #include #include "chip.h" -#include "arm_arch.h" +#include "arm_internal.h" #include "stm32.h" #include "stm32_can.h" diff --git a/boards/px4/fmu-v2/src/usb.c b/boards/px4/fmu-v2/src/usb.c index 09920c9dfe..023ec0701e 100644 --- a/boards/px4/fmu-v2/src/usb.c +++ b/boards/px4/fmu-v2/src/usb.c @@ -51,7 +51,7 @@ #include #include -#include +#include #include #include "board_config.h" diff --git a/boards/px4/fmu-v3/extras/px4_io-v2_default.bin b/boards/px4/fmu-v3/extras/px4_io-v2_default.bin index 51403914013d2f9cecc849dfda750db977a95303..957f0f13a12e8eb8a7979955f29ad98d82433933 100755 GIT binary patch delta 17038 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 delta 16986 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 diff --git a/boards/px4/fmu-v3/nuttx-config/nsh/defconfig b/boards/px4/fmu-v3/nuttx-config/nsh/defconfig index 63f1162998..38e4b6dafc 100644 --- a/boards/px4/fmu-v3/nuttx-config/nsh/defconfig +++ b/boards/px4/fmu-v3/nuttx-config/nsh/defconfig @@ -7,21 +7,46 @@ # # CONFIG_DISABLE_ENVIRON is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_MMCSD_HAVE_CARDDETECT is not set # CONFIG_MMCSD_HAVE_WRITEPROTECT is not set # CONFIG_MMCSD_MMCSUPPORT is not set # CONFIG_MMCSD_SPI is not set # CONFIG_NSH_DISABLEBG is not set # CONFIG_NSH_DISABLESCRIPT is not set +# CONFIG_NSH_DISABLE_CAT is not set +# CONFIG_NSH_DISABLE_CD is not set +# CONFIG_NSH_DISABLE_CP is not set # CONFIG_NSH_DISABLE_DF is not set +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set # CONFIG_NSH_DISABLE_EXEC is not set # CONFIG_NSH_DISABLE_EXIT is not set +# CONFIG_NSH_DISABLE_EXPORT is not set +# CONFIG_NSH_DISABLE_FREE is not set # CONFIG_NSH_DISABLE_GET is not set +# CONFIG_NSH_DISABLE_HELP is not set # CONFIG_NSH_DISABLE_ITEF is not set +# CONFIG_NSH_DISABLE_KILL is not set # CONFIG_NSH_DISABLE_LOOPS is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set # CONFIG_NSH_DISABLE_MKFATFS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PRINTF is not set +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_RM is not set +# CONFIG_NSH_DISABLE_RMDIR is not set # CONFIG_NSH_DISABLE_SEMICOLON is not set +# CONFIG_NSH_DISABLE_SET is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_TEST is not set # CONFIG_NSH_DISABLE_TIME is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set # CONFIG_STM32_CCMEXCLUDE is not set CONFIG_ARCH="arm" CONFIG_ARCH_BOARD_CUSTOM=y @@ -40,8 +65,8 @@ CONFIG_BOARDCTL_RESET=y CONFIG_BOARD_CRASHDUMP=y CONFIG_BOARD_LOOPSPERMSEC=16717 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y -CONFIG_C99_BOOL8=y CONFIG_CDCACM=y CONFIG_CDCACM_IFLOWCONTROL=y CONFIG_CDCACM_PRODUCTID=0x0011 @@ -57,7 +82,6 @@ CONFIG_DEFAULT_SMALL=y CONFIG_DEV_FIFO_SIZE=0 CONFIG_DEV_PIPE_MAXSIZE=1024 CONFIG_DEV_PIPE_SIZE=70 -CONFIG_DISABLE_MQUEUE=y CONFIG_EXAMPLES_CALIB_UDELAY=y CONFIG_FAT_DMAMEMORY=y CONFIG_FAT_LCNAMES=y @@ -79,7 +103,10 @@ CONFIG_HAVE_CXXINITIALIZE=y CONFIG_I2C=y CONFIG_I2C_RESET=y CONFIG_IDLETHREAD_STACKSIZE=750 +CONFIG_INIT_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2944 CONFIG_LIBC_LONG_LONG=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_LIBC_STRERROR=y CONFIG_MEMSET_64BIT=y CONFIG_MEMSET_OPTSPEED=y @@ -97,9 +124,6 @@ CONFIG_NSH_ARGCAT=y CONFIG_NSH_BUILTIN_APPS=y CONFIG_NSH_CMDPARMS=y CONFIG_NSH_CROMFSETC=y -CONFIG_NSH_DISABLE_IFCONFIG=y -CONFIG_NSH_DISABLE_IFUPDOWN=y -CONFIG_NSH_DISABLE_TELNETD=y CONFIG_NSH_LINELEN=128 CONFIG_NSH_MAXARGUMENTS=15 CONFIG_NSH_NESTDEPTH=8 @@ -118,17 +142,16 @@ CONFIG_RAM_SIZE=262144 CONFIG_RAM_START=0x20000000 CONFIG_RAW_BINARY=y CONFIG_RTC_DATETIME=y -CONFIG_SCHED_ATEXIT=y CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 CONFIG_SCHED_WAITPID=y -CONFIG_SDCLONE_DISABLE=y CONFIG_SDIO_BLOCKSETUP=y CONFIG_SEM_PREALLOCHOLDERS=32 CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y @@ -176,7 +199,6 @@ CONFIG_STM32_SPI2=y CONFIG_STM32_SPI4=y CONFIG_STM32_SPI4_DMA=y CONFIG_STM32_SPI4_DMA_BUFFER=512 -CONFIG_STM32_SPI_DMA=y CONFIG_STM32_SPI_DMATHRESHOLD=32 CONFIG_STM32_TIM10=y CONFIG_STM32_TIM11=y @@ -229,5 +251,3 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="nsh_main" diff --git a/boards/px4/fmu-v3/nuttx-config/test/defconfig b/boards/px4/fmu-v3/nuttx-config/test/defconfig index 9f2cc8b1fb..5eccd7d009 100644 --- a/boards/px4/fmu-v3/nuttx-config/test/defconfig +++ b/boards/px4/fmu-v3/nuttx-config/test/defconfig @@ -7,21 +7,49 @@ # # CONFIG_DISABLE_ENVIRON is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_MMCSD_HAVE_CARDDETECT is not set # CONFIG_MMCSD_HAVE_WRITEPROTECT is not set # CONFIG_MMCSD_MMCSUPPORT is not set # CONFIG_MMCSD_SPI is not set # CONFIG_NSH_DISABLEBG is not set # CONFIG_NSH_DISABLESCRIPT is not set +# CONFIG_NSH_DISABLE_CAT is not set +# CONFIG_NSH_DISABLE_CD is not set +# CONFIG_NSH_DISABLE_CMP is not set +# CONFIG_NSH_DISABLE_CP is not set +# CONFIG_NSH_DISABLE_DATE is not set # CONFIG_NSH_DISABLE_DF is not set +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set # CONFIG_NSH_DISABLE_EXEC is not set # CONFIG_NSH_DISABLE_EXIT is not set +# CONFIG_NSH_DISABLE_EXPORT is not set +# CONFIG_NSH_DISABLE_FREE is not set # CONFIG_NSH_DISABLE_GET is not set +# CONFIG_NSH_DISABLE_HELP is not set # CONFIG_NSH_DISABLE_ITEF is not set +# CONFIG_NSH_DISABLE_KILL is not set # CONFIG_NSH_DISABLE_LOOPS is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set # CONFIG_NSH_DISABLE_MKFATFS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PS is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE is not set +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_RM is not set +# CONFIG_NSH_DISABLE_RMDIR is not set # CONFIG_NSH_DISABLE_SEMICOLON is not set +# CONFIG_NSH_DISABLE_SET is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_TEST is not set # CONFIG_NSH_DISABLE_TIME is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set # CONFIG_STM32_CCMEXCLUDE is not set CONFIG_ARCH="arm" CONFIG_ARCH_BOARD_CUSTOM=y @@ -40,8 +68,8 @@ CONFIG_BOARDCTL_RESET=y CONFIG_BOARD_CRASHDUMP=y CONFIG_BOARD_LOOPSPERMSEC=16717 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y -CONFIG_C99_BOOL8=y CONFIG_CDCACM=y CONFIG_CDCACM_IFLOWCONTROL=y CONFIG_CDCACM_PRODUCTID=0x0011 @@ -57,7 +85,6 @@ CONFIG_DEFAULT_SMALL=y CONFIG_DEV_FIFO_SIZE=0 CONFIG_DEV_PIPE_MAXSIZE=1024 CONFIG_DEV_PIPE_SIZE=70 -CONFIG_DISABLE_MQUEUE=y CONFIG_EXAMPLES_CALIB_UDELAY=y CONFIG_FAT_DMAMEMORY=y CONFIG_FAT_LCNAMES=y @@ -79,7 +106,10 @@ CONFIG_HAVE_CXXINITIALIZE=y CONFIG_I2C=y CONFIG_I2C_RESET=y CONFIG_IDLETHREAD_STACKSIZE=750 +CONFIG_INIT_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2944 CONFIG_LIBC_LONG_LONG=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_LIBC_STRERROR=y CONFIG_MEMSET_64BIT=y CONFIG_MEMSET_OPTSPEED=y @@ -97,9 +127,6 @@ CONFIG_NSH_ARGCAT=y CONFIG_NSH_BUILTIN_APPS=y CONFIG_NSH_CMDPARMS=y CONFIG_NSH_CROMFSETC=y -CONFIG_NSH_DISABLE_IFCONFIG=y -CONFIG_NSH_DISABLE_IFUPDOWN=y -CONFIG_NSH_DISABLE_TELNETD=y CONFIG_NSH_LINELEN=128 CONFIG_NSH_MAXARGUMENTS=15 CONFIG_NSH_NESTDEPTH=8 @@ -118,17 +145,16 @@ CONFIG_RAM_SIZE=262144 CONFIG_RAM_START=0x20000000 CONFIG_RAW_BINARY=y CONFIG_RTC_DATETIME=y -CONFIG_SCHED_ATEXIT=y CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 CONFIG_SCHED_WAITPID=y -CONFIG_SDCLONE_DISABLE=y CONFIG_SDIO_BLOCKSETUP=y CONFIG_SEM_PREALLOCHOLDERS=32 CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y @@ -176,7 +202,6 @@ CONFIG_STM32_SPI2=y CONFIG_STM32_SPI4=y CONFIG_STM32_SPI4_DMA=y CONFIG_STM32_SPI4_DMA_BUFFER=512 -CONFIG_STM32_SPI_DMA=y CONFIG_STM32_SPI_DMATHRESHOLD=32 CONFIG_STM32_TIM10=y CONFIG_STM32_TIM11=y @@ -232,5 +257,3 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="nsh_main" diff --git a/boards/px4/fmu-v3/src/can.c b/boards/px4/fmu-v3/src/can.c index 5eea9bef17..25943d53e1 100644 --- a/boards/px4/fmu-v3/src/can.c +++ b/boards/px4/fmu-v3/src/can.c @@ -50,7 +50,7 @@ #include #include "chip.h" -#include "arm_arch.h" +#include "arm_internal.h" #include "stm32.h" #include "stm32_can.h" diff --git a/boards/px4/fmu-v3/src/usb.c b/boards/px4/fmu-v3/src/usb.c index 09920c9dfe..023ec0701e 100644 --- a/boards/px4/fmu-v3/src/usb.c +++ b/boards/px4/fmu-v3/src/usb.c @@ -51,7 +51,7 @@ #include #include -#include +#include #include #include "board_config.h" diff --git a/boards/px4/fmu-v4/nuttx-config/nsh/defconfig b/boards/px4/fmu-v4/nuttx-config/nsh/defconfig index afa537f7eb..720ca8ba78 100644 --- a/boards/px4/fmu-v4/nuttx-config/nsh/defconfig +++ b/boards/px4/fmu-v4/nuttx-config/nsh/defconfig @@ -7,21 +7,47 @@ # # CONFIG_DISABLE_ENVIRON is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_MMCSD_HAVE_CARDDETECT is not set # CONFIG_MMCSD_HAVE_WRITEPROTECT is not set # CONFIG_MMCSD_MMCSUPPORT is not set # CONFIG_MMCSD_SPI is not set # CONFIG_NSH_DISABLEBG is not set # CONFIG_NSH_DISABLESCRIPT is not set +# CONFIG_NSH_DISABLE_CAT is not set +# CONFIG_NSH_DISABLE_CD is not set +# CONFIG_NSH_DISABLE_CP is not set +# CONFIG_NSH_DISABLE_DATE is not set # CONFIG_NSH_DISABLE_DF is not set +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set # CONFIG_NSH_DISABLE_EXEC is not set # CONFIG_NSH_DISABLE_EXIT is not set +# CONFIG_NSH_DISABLE_FREE is not set # CONFIG_NSH_DISABLE_GET is not set +# CONFIG_NSH_DISABLE_HELP is not set # CONFIG_NSH_DISABLE_ITEF is not set +# CONFIG_NSH_DISABLE_KILL is not set # CONFIG_NSH_DISABLE_LOOPS is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set # CONFIG_NSH_DISABLE_MKFATFS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PS is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE is not set +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_RM is not set +# CONFIG_NSH_DISABLE_RMDIR is not set # CONFIG_NSH_DISABLE_SEMICOLON is not set +# CONFIG_NSH_DISABLE_SET is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_TEST is not set # CONFIG_NSH_DISABLE_TIME is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set # CONFIG_STM32_CCMEXCLUDE is not set CONFIG_ARCH="arm" CONFIG_ARCH_BOARD_CUSTOM=y @@ -40,8 +66,8 @@ CONFIG_BOARDCTL_RESET=y CONFIG_BOARD_CRASHDUMP=y CONFIG_BOARD_LOOPSPERMSEC=16717 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y -CONFIG_C99_BOOL8=y CONFIG_CDCACM=y CONFIG_CDCACM_IFLOWCONTROL=y CONFIG_CDCACM_PRODUCTID=0x0012 @@ -57,7 +83,6 @@ CONFIG_DEFAULT_SMALL=y CONFIG_DEV_FIFO_SIZE=0 CONFIG_DEV_PIPE_MAXSIZE=1024 CONFIG_DEV_PIPE_SIZE=70 -CONFIG_DISABLE_MQUEUE=y CONFIG_EXAMPLES_CALIB_UDELAY=y CONFIG_FAT_DMAMEMORY=y CONFIG_FAT_LCNAMES=y @@ -79,7 +104,10 @@ CONFIG_HAVE_CXXINITIALIZE=y CONFIG_I2C=y CONFIG_I2C_RESET=y CONFIG_IDLETHREAD_STACKSIZE=750 +CONFIG_INIT_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2944 CONFIG_LIBC_LONG_LONG=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_LIBC_STRERROR=y CONFIG_MEMSET_64BIT=y CONFIG_MEMSET_OPTSPEED=y @@ -97,9 +125,6 @@ CONFIG_NSH_ARGCAT=y CONFIG_NSH_BUILTIN_APPS=y CONFIG_NSH_CMDPARMS=y CONFIG_NSH_CROMFSETC=y -CONFIG_NSH_DISABLE_IFCONFIG=y -CONFIG_NSH_DISABLE_IFUPDOWN=y -CONFIG_NSH_DISABLE_TELNETD=y CONFIG_NSH_LINELEN=128 CONFIG_NSH_MAXARGUMENTS=15 CONFIG_NSH_NESTDEPTH=8 @@ -118,17 +143,16 @@ CONFIG_RAM_SIZE=262144 CONFIG_RAM_START=0x20000000 CONFIG_RAW_BINARY=y CONFIG_RTC_DATETIME=y -CONFIG_SCHED_ATEXIT=y CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 CONFIG_SCHED_WAITPID=y -CONFIG_SDCLONE_DISABLE=y CONFIG_SDIO_BLOCKSETUP=y CONFIG_SEM_PREALLOCHOLDERS=32 CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y @@ -173,7 +197,6 @@ CONFIG_STM32_SPI1_DMA=y CONFIG_STM32_SPI1_DMA_BUFFER=512 CONFIG_STM32_SPI2=y CONFIG_STM32_SPI4=y -CONFIG_STM32_SPI_DMA=y CONFIG_STM32_SPI_DMATHRESHOLD=8 CONFIG_STM32_TIM10=y CONFIG_STM32_TIM11=y @@ -227,5 +250,3 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="nsh_main" diff --git a/boards/px4/fmu-v4/nuttx-config/test/defconfig b/boards/px4/fmu-v4/nuttx-config/test/defconfig index fd63253ba1..c38d9ba830 100644 --- a/boards/px4/fmu-v4/nuttx-config/test/defconfig +++ b/boards/px4/fmu-v4/nuttx-config/test/defconfig @@ -7,21 +7,49 @@ # # CONFIG_DISABLE_ENVIRON is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_MMCSD_HAVE_CARDDETECT is not set # CONFIG_MMCSD_HAVE_WRITEPROTECT is not set # CONFIG_MMCSD_MMCSUPPORT is not set # CONFIG_MMCSD_SPI is not set # CONFIG_NSH_DISABLEBG is not set # CONFIG_NSH_DISABLESCRIPT is not set +# CONFIG_NSH_DISABLE_CAT is not set +# CONFIG_NSH_DISABLE_CD is not set +# CONFIG_NSH_DISABLE_CMP is not set +# CONFIG_NSH_DISABLE_CP is not set +# CONFIG_NSH_DISABLE_DATE is not set # CONFIG_NSH_DISABLE_DF is not set +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set # CONFIG_NSH_DISABLE_EXEC is not set # CONFIG_NSH_DISABLE_EXIT is not set +# CONFIG_NSH_DISABLE_EXPORT is not set +# CONFIG_NSH_DISABLE_FREE is not set # CONFIG_NSH_DISABLE_GET is not set +# CONFIG_NSH_DISABLE_HELP is not set # CONFIG_NSH_DISABLE_ITEF is not set +# CONFIG_NSH_DISABLE_KILL is not set # CONFIG_NSH_DISABLE_LOOPS is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set # CONFIG_NSH_DISABLE_MKFATFS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PS is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE is not set +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_RM is not set +# CONFIG_NSH_DISABLE_RMDIR is not set # CONFIG_NSH_DISABLE_SEMICOLON is not set +# CONFIG_NSH_DISABLE_SET is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_TEST is not set # CONFIG_NSH_DISABLE_TIME is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set # CONFIG_STM32_CCMEXCLUDE is not set CONFIG_ARCH="arm" CONFIG_ARCH_BOARD_CUSTOM=y @@ -40,8 +68,8 @@ CONFIG_BOARDCTL_RESET=y CONFIG_BOARD_CRASHDUMP=y CONFIG_BOARD_LOOPSPERMSEC=16717 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y -CONFIG_C99_BOOL8=y CONFIG_CDCACM=y CONFIG_CDCACM_IFLOWCONTROL=y CONFIG_CDCACM_PRODUCTID=0x0012 @@ -57,7 +85,6 @@ CONFIG_DEFAULT_SMALL=y CONFIG_DEV_FIFO_SIZE=0 CONFIG_DEV_PIPE_MAXSIZE=1024 CONFIG_DEV_PIPE_SIZE=70 -CONFIG_DISABLE_MQUEUE=y CONFIG_EXAMPLES_CALIB_UDELAY=y CONFIG_FAT_DMAMEMORY=y CONFIG_FAT_LCNAMES=y @@ -79,7 +106,10 @@ CONFIG_HAVE_CXXINITIALIZE=y CONFIG_I2C=y CONFIG_I2C_RESET=y CONFIG_IDLETHREAD_STACKSIZE=750 +CONFIG_INIT_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2944 CONFIG_LIBC_LONG_LONG=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_LIBC_STRERROR=y CONFIG_MEMSET_64BIT=y CONFIG_MEMSET_OPTSPEED=y @@ -97,9 +127,6 @@ CONFIG_NSH_ARGCAT=y CONFIG_NSH_BUILTIN_APPS=y CONFIG_NSH_CMDPARMS=y CONFIG_NSH_CROMFSETC=y -CONFIG_NSH_DISABLE_IFCONFIG=y -CONFIG_NSH_DISABLE_IFUPDOWN=y -CONFIG_NSH_DISABLE_TELNETD=y CONFIG_NSH_LINELEN=128 CONFIG_NSH_MAXARGUMENTS=15 CONFIG_NSH_NESTDEPTH=8 @@ -118,17 +145,16 @@ CONFIG_RAM_SIZE=262144 CONFIG_RAM_START=0x20000000 CONFIG_RAW_BINARY=y CONFIG_RTC_DATETIME=y -CONFIG_SCHED_ATEXIT=y CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 CONFIG_SCHED_WAITPID=y -CONFIG_SDCLONE_DISABLE=y CONFIG_SDIO_BLOCKSETUP=y CONFIG_SEM_PREALLOCHOLDERS=32 CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y @@ -173,7 +199,6 @@ CONFIG_STM32_SPI1_DMA=y CONFIG_STM32_SPI1_DMA_BUFFER=512 CONFIG_STM32_SPI2=y CONFIG_STM32_SPI4=y -CONFIG_STM32_SPI_DMA=y CONFIG_STM32_SPI_DMATHRESHOLD=8 CONFIG_STM32_TIM10=y CONFIG_STM32_TIM11=y @@ -230,5 +255,3 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="nsh_main" diff --git a/boards/px4/fmu-v4/src/can.c b/boards/px4/fmu-v4/src/can.c index 5a32d62832..89b8ba2281 100644 --- a/boards/px4/fmu-v4/src/can.c +++ b/boards/px4/fmu-v4/src/can.c @@ -50,7 +50,7 @@ #include #include "chip.h" -#include "arm_arch.h" +#include "arm_internal.h" #include "stm32.h" #include "stm32_can.h" diff --git a/boards/px4/fmu-v4/src/usb.c b/boards/px4/fmu-v4/src/usb.c index 1b148e6eb0..5791d52cb0 100644 --- a/boards/px4/fmu-v4/src/usb.c +++ b/boards/px4/fmu-v4/src/usb.c @@ -51,7 +51,7 @@ #include #include -#include +#include #include #include "board_config.h" diff --git a/boards/px4/fmu-v4pro/extras/px4_io-v2_default.bin b/boards/px4/fmu-v4pro/extras/px4_io-v2_default.bin index 51403914013d2f9cecc849dfda750db977a95303..957f0f13a12e8eb8a7979955f29ad98d82433933 100755 GIT binary patch delta 17038 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 delta 16986 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 diff --git a/boards/px4/fmu-v4pro/nuttx-config/nsh/defconfig b/boards/px4/fmu-v4pro/nuttx-config/nsh/defconfig index 9ac90eefa8..e1b0b76dec 100644 --- a/boards/px4/fmu-v4pro/nuttx-config/nsh/defconfig +++ b/boards/px4/fmu-v4pro/nuttx-config/nsh/defconfig @@ -7,21 +7,48 @@ # # CONFIG_DISABLE_ENVIRON is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_MMCSD_HAVE_CARDDETECT is not set # CONFIG_MMCSD_HAVE_WRITEPROTECT is not set # CONFIG_MMCSD_MMCSUPPORT is not set # CONFIG_MMCSD_SPI is not set # CONFIG_NSH_DISABLEBG is not set # CONFIG_NSH_DISABLESCRIPT is not set +# CONFIG_NSH_DISABLE_CAT is not set +# CONFIG_NSH_DISABLE_CD is not set +# CONFIG_NSH_DISABLE_CP is not set +# CONFIG_NSH_DISABLE_DATE is not set # CONFIG_NSH_DISABLE_DF is not set +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set # CONFIG_NSH_DISABLE_EXEC is not set # CONFIG_NSH_DISABLE_EXIT is not set +# CONFIG_NSH_DISABLE_EXPORT is not set +# CONFIG_NSH_DISABLE_FREE is not set # CONFIG_NSH_DISABLE_GET is not set +# CONFIG_NSH_DISABLE_HELP is not set # CONFIG_NSH_DISABLE_ITEF is not set +# CONFIG_NSH_DISABLE_KILL is not set # CONFIG_NSH_DISABLE_LOOPS is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set # CONFIG_NSH_DISABLE_MKFATFS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PS is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE is not set +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_RM is not set +# CONFIG_NSH_DISABLE_RMDIR is not set # CONFIG_NSH_DISABLE_SEMICOLON is not set +# CONFIG_NSH_DISABLE_SET is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_TEST is not set # CONFIG_NSH_DISABLE_TIME is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set # CONFIG_STM32_CCMEXCLUDE is not set CONFIG_ARCH="arm" CONFIG_ARCH_BOARD_CUSTOM=y @@ -40,8 +67,8 @@ CONFIG_BOARDCTL_RESET=y CONFIG_BOARD_CRASHDUMP=y CONFIG_BOARD_LOOPSPERMSEC=16717 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y -CONFIG_C99_BOOL8=y CONFIG_CDCACM=y CONFIG_CDCACM_IFLOWCONTROL=y CONFIG_CDCACM_PRODUCTID=0x0013 @@ -57,7 +84,6 @@ CONFIG_DEFAULT_SMALL=y CONFIG_DEV_FIFO_SIZE=0 CONFIG_DEV_PIPE_MAXSIZE=1024 CONFIG_DEV_PIPE_SIZE=70 -CONFIG_DISABLE_MQUEUE=y CONFIG_EXAMPLES_CALIB_UDELAY=y CONFIG_FAT_DMAMEMORY=y CONFIG_FAT_LCNAMES=y @@ -79,7 +105,10 @@ CONFIG_HAVE_CXXINITIALIZE=y CONFIG_I2C=y CONFIG_I2C_RESET=y CONFIG_IDLETHREAD_STACKSIZE=750 +CONFIG_INIT_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2944 CONFIG_LIBC_LONG_LONG=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_LIBC_STRERROR=y CONFIG_MEMSET_64BIT=y CONFIG_MEMSET_OPTSPEED=y @@ -97,9 +126,6 @@ CONFIG_NSH_ARGCAT=y CONFIG_NSH_BUILTIN_APPS=y CONFIG_NSH_CMDPARMS=y CONFIG_NSH_CROMFSETC=y -CONFIG_NSH_DISABLE_IFCONFIG=y -CONFIG_NSH_DISABLE_IFUPDOWN=y -CONFIG_NSH_DISABLE_TELNETD=y CONFIG_NSH_LINELEN=128 CONFIG_NSH_MAXARGUMENTS=15 CONFIG_NSH_NESTDEPTH=8 @@ -120,17 +146,16 @@ CONFIG_RAW_BINARY=y CONFIG_READLINE_CMD_HISTORY=y CONFIG_READLINE_TABCOMPLETION=y CONFIG_RTC_DATETIME=y -CONFIG_SCHED_ATEXIT=y CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 CONFIG_SCHED_WAITPID=y -CONFIG_SDCLONE_DISABLE=y CONFIG_SDIO_BLOCKSETUP=y CONFIG_SEM_PREALLOCHOLDERS=32 CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y @@ -180,7 +205,6 @@ CONFIG_STM32_SPI1_DMA_BUFFER=512 CONFIG_STM32_SPI2=y CONFIG_STM32_SPI5=y CONFIG_STM32_SPI6=y -CONFIG_STM32_SPI_DMA=y CONFIG_STM32_SPI_DMATHRESHOLD=8 CONFIG_STM32_TIM10=y CONFIG_STM32_TIM11=y @@ -235,5 +259,3 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="nsh_main" diff --git a/boards/px4/fmu-v4pro/nuttx-config/test/defconfig b/boards/px4/fmu-v4pro/nuttx-config/test/defconfig index ade487fadf..ef2676936e 100644 --- a/boards/px4/fmu-v4pro/nuttx-config/test/defconfig +++ b/boards/px4/fmu-v4pro/nuttx-config/test/defconfig @@ -7,21 +7,49 @@ # # CONFIG_DISABLE_ENVIRON is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_MMCSD_HAVE_CARDDETECT is not set # CONFIG_MMCSD_HAVE_WRITEPROTECT is not set # CONFIG_MMCSD_MMCSUPPORT is not set # CONFIG_MMCSD_SPI is not set # CONFIG_NSH_DISABLEBG is not set # CONFIG_NSH_DISABLESCRIPT is not set +# CONFIG_NSH_DISABLE_CAT is not set +# CONFIG_NSH_DISABLE_CD is not set +# CONFIG_NSH_DISABLE_CMP is not set +# CONFIG_NSH_DISABLE_CP is not set +# CONFIG_NSH_DISABLE_DATE is not set # CONFIG_NSH_DISABLE_DF is not set +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set # CONFIG_NSH_DISABLE_EXEC is not set # CONFIG_NSH_DISABLE_EXIT is not set +# CONFIG_NSH_DISABLE_EXPORT is not set +# CONFIG_NSH_DISABLE_FREE is not set # CONFIG_NSH_DISABLE_GET is not set +# CONFIG_NSH_DISABLE_HELP is not set # CONFIG_NSH_DISABLE_ITEF is not set +# CONFIG_NSH_DISABLE_KILL is not set # CONFIG_NSH_DISABLE_LOOPS is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set # CONFIG_NSH_DISABLE_MKFATFS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PS is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE is not set +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_RM is not set +# CONFIG_NSH_DISABLE_RMDIR is not set # CONFIG_NSH_DISABLE_SEMICOLON is not set +# CONFIG_NSH_DISABLE_SET is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_TEST is not set # CONFIG_NSH_DISABLE_TIME is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set # CONFIG_STM32_CCMEXCLUDE is not set CONFIG_ARCH="arm" CONFIG_ARCH_BOARD_CUSTOM=y @@ -40,8 +68,8 @@ CONFIG_BOARDCTL_RESET=y CONFIG_BOARD_CRASHDUMP=y CONFIG_BOARD_LOOPSPERMSEC=16717 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y -CONFIG_C99_BOOL8=y CONFIG_CDCACM=y CONFIG_CDCACM_IFLOWCONTROL=y CONFIG_CDCACM_PRODUCTID=0x0013 @@ -57,7 +85,6 @@ CONFIG_DEFAULT_SMALL=y CONFIG_DEV_FIFO_SIZE=0 CONFIG_DEV_PIPE_MAXSIZE=1024 CONFIG_DEV_PIPE_SIZE=70 -CONFIG_DISABLE_MQUEUE=y CONFIG_EXAMPLES_CALIB_UDELAY=y CONFIG_FAT_DMAMEMORY=y CONFIG_FAT_LCNAMES=y @@ -79,7 +106,10 @@ CONFIG_HAVE_CXXINITIALIZE=y CONFIG_I2C=y CONFIG_I2C_RESET=y CONFIG_IDLETHREAD_STACKSIZE=750 +CONFIG_INIT_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2944 CONFIG_LIBC_LONG_LONG=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_LIBC_STRERROR=y CONFIG_MEMSET_64BIT=y CONFIG_MEMSET_OPTSPEED=y @@ -97,9 +127,6 @@ CONFIG_NSH_ARGCAT=y CONFIG_NSH_BUILTIN_APPS=y CONFIG_NSH_CMDPARMS=y CONFIG_NSH_CROMFSETC=y -CONFIG_NSH_DISABLE_IFCONFIG=y -CONFIG_NSH_DISABLE_IFUPDOWN=y -CONFIG_NSH_DISABLE_TELNETD=y CONFIG_NSH_LINELEN=128 CONFIG_NSH_MAXARGUMENTS=15 CONFIG_NSH_NESTDEPTH=8 @@ -120,17 +147,16 @@ CONFIG_RAW_BINARY=y CONFIG_READLINE_CMD_HISTORY=y CONFIG_READLINE_TABCOMPLETION=y CONFIG_RTC_DATETIME=y -CONFIG_SCHED_ATEXIT=y CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 CONFIG_SCHED_WAITPID=y -CONFIG_SDCLONE_DISABLE=y CONFIG_SDIO_BLOCKSETUP=y CONFIG_SEM_PREALLOCHOLDERS=32 CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y @@ -180,7 +206,6 @@ CONFIG_STM32_SPI1_DMA_BUFFER=512 CONFIG_STM32_SPI2=y CONFIG_STM32_SPI5=y CONFIG_STM32_SPI6=y -CONFIG_STM32_SPI_DMA=y CONFIG_STM32_SPI_DMATHRESHOLD=8 CONFIG_STM32_TIM10=y CONFIG_STM32_TIM11=y @@ -238,5 +263,3 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="nsh_main" diff --git a/boards/px4/fmu-v4pro/src/can.c b/boards/px4/fmu-v4pro/src/can.c index 5eea9bef17..25943d53e1 100644 --- a/boards/px4/fmu-v4pro/src/can.c +++ b/boards/px4/fmu-v4pro/src/can.c @@ -50,7 +50,7 @@ #include #include "chip.h" -#include "arm_arch.h" +#include "arm_internal.h" #include "stm32.h" #include "stm32_can.h" diff --git a/boards/px4/fmu-v4pro/src/usb.c b/boards/px4/fmu-v4pro/src/usb.c index 09920c9dfe..023ec0701e 100644 --- a/boards/px4/fmu-v4pro/src/usb.c +++ b/boards/px4/fmu-v4pro/src/usb.c @@ -51,7 +51,7 @@ #include #include -#include +#include #include #include "board_config.h" diff --git a/boards/px4/fmu-v5/extras/px4_io-v2_default.bin b/boards/px4/fmu-v5/extras/px4_io-v2_default.bin index 51403914013d2f9cecc849dfda750db977a95303..957f0f13a12e8eb8a7979955f29ad98d82433933 100755 GIT binary patch delta 17038 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 delta 16986 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 diff --git a/boards/px4/fmu-v5/nuttx-config/cryptotest/defconfig b/boards/px4/fmu-v5/nuttx-config/cryptotest/defconfig index 5ab78cad77..ec03c71693 100644 --- a/boards/px4/fmu-v5/nuttx-config/cryptotest/defconfig +++ b/boards/px4/fmu-v5/nuttx-config/cryptotest/defconfig @@ -7,6 +7,7 @@ # # CONFIG_DISABLE_ENVIRON is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_FS_PROCFS_EXCLUDE_ENVIRON is not set # CONFIG_MMCSD_HAVE_CARDDETECT is not set # CONFIG_MMCSD_HAVE_WRITEPROTECT is not set @@ -14,15 +15,41 @@ # CONFIG_MMCSD_SPI is not set # CONFIG_NSH_DISABLEBG is not set # CONFIG_NSH_DISABLESCRIPT is not set +# CONFIG_NSH_DISABLE_CAT is not set +# CONFIG_NSH_DISABLE_CD is not set +# CONFIG_NSH_DISABLE_CP is not set +# CONFIG_NSH_DISABLE_DATE is not set # CONFIG_NSH_DISABLE_DF is not set +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set # CONFIG_NSH_DISABLE_EXEC is not set # CONFIG_NSH_DISABLE_EXIT is not set +# CONFIG_NSH_DISABLE_EXPORT is not set +# CONFIG_NSH_DISABLE_FREE is not set # CONFIG_NSH_DISABLE_GET is not set +# CONFIG_NSH_DISABLE_HELP is not set # CONFIG_NSH_DISABLE_ITEF is not set +# CONFIG_NSH_DISABLE_KILL is not set # CONFIG_NSH_DISABLE_LOOPS is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set # CONFIG_NSH_DISABLE_MKFATFS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PS is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE is not set +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_RM is not set +# CONFIG_NSH_DISABLE_RMDIR is not set # CONFIG_NSH_DISABLE_SEMICOLON is not set +# CONFIG_NSH_DISABLE_SET is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_TEST is not set # CONFIG_NSH_DISABLE_TIME is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_ARCH="arm" CONFIG_ARCH_BOARD_CUSTOM=y CONFIG_ARCH_BOARD_CUSTOM_DIR="../../../../boards/px4/fmu-v5/nuttx-config" @@ -44,8 +71,8 @@ CONFIG_BOARDCTL_RESET=y CONFIG_BOARD_CRASHDUMP=y CONFIG_BOARD_LOOPSPERMSEC=22114 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y -CONFIG_C99_BOOL8=y CONFIG_CDCACM=y CONFIG_CDCACM_IFLOWCONTROL=y CONFIG_CDCACM_PRODUCTID=0x0032 @@ -54,7 +81,6 @@ CONFIG_CDCACM_RXBUFSIZE=600 CONFIG_CDCACM_TXBUFSIZE=12000 CONFIG_CDCACM_VENDORID=0x26ac CONFIG_CDCACM_VENDORSTR="3D Robotics" -CONFIG_CLOCK_MONOTONIC=y CONFIG_CRYPTO=y CONFIG_CRYPTO_RANDOM_POOL=y CONFIG_DEBUG_FULLOPT=y @@ -64,7 +90,6 @@ CONFIG_DEFAULT_SMALL=y CONFIG_DEV_FIFO_SIZE=0 CONFIG_DEV_PIPE_MAXSIZE=1024 CONFIG_DEV_PIPE_SIZE=70 -CONFIG_DISABLE_MQUEUE=y CONFIG_FAT_DMAMEMORY=y CONFIG_FAT_LCNAMES=y CONFIG_FAT_LFN=y @@ -86,8 +111,11 @@ CONFIG_HAVE_CXXINITIALIZE=y CONFIG_I2C=y CONFIG_I2C_RESET=y CONFIG_IDLETHREAD_STACKSIZE=750 +CONFIG_INIT_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2944 CONFIG_LIBC_FLOATINGPOINT=y CONFIG_LIBC_LONG_LONG=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_LIBC_STRERROR=y CONFIG_MEMSET_64BIT=y CONFIG_MEMSET_OPTSPEED=y @@ -105,9 +133,6 @@ CONFIG_NSH_ARGCAT=y CONFIG_NSH_BUILTIN_APPS=y CONFIG_NSH_CMDPARMS=y CONFIG_NSH_CROMFSETC=y -CONFIG_NSH_DISABLE_IFCONFIG=y -CONFIG_NSH_DISABLE_IFUPDOWN=y -CONFIG_NSH_DISABLE_TELNETD=y CONFIG_NSH_LINELEN=128 CONFIG_NSH_MAXARGUMENTS=15 CONFIG_NSH_NESTDEPTH=8 @@ -129,17 +154,16 @@ CONFIG_RAW_BINARY=y CONFIG_READLINE_CMD_HISTORY=y CONFIG_READLINE_TABCOMPLETION=y CONFIG_RTC_DATETIME=y -CONFIG_SCHED_ATEXIT=y CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 CONFIG_SCHED_WAITPID=y -CONFIG_SDCLONE_DISABLE=y CONFIG_SDMMC1_SDIO_MODE=y CONFIG_SDMMC1_SDIO_PULLUP=y CONFIG_SEM_PREALLOCHOLDERS=32 @@ -186,7 +210,6 @@ CONFIG_STM32F7_SPI2=y CONFIG_STM32F7_SPI4=y CONFIG_STM32F7_SPI5=y CONFIG_STM32F7_SPI6=y -CONFIG_STM32F7_SPI_DMA=y CONFIG_STM32F7_SPI_DMATHRESHOLD=8 CONFIG_STM32F7_TIM10=y CONFIG_STM32F7_TIM11=y @@ -241,5 +264,3 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="nsh_main" diff --git a/boards/px4/fmu-v5/nuttx-config/cyphal/defconfig b/boards/px4/fmu-v5/nuttx-config/cyphal/defconfig index 7695c64029..e4cedf8ff4 100644 --- a/boards/px4/fmu-v5/nuttx-config/cyphal/defconfig +++ b/boards/px4/fmu-v5/nuttx-config/cyphal/defconfig @@ -7,6 +7,7 @@ # # CONFIG_DISABLE_ENVIRON is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_FS_PROCFS_EXCLUDE_ENVIRON is not set # CONFIG_MMCSD_HAVE_CARDDETECT is not set # CONFIG_MMCSD_HAVE_WRITEPROTECT is not set @@ -14,15 +15,41 @@ # CONFIG_MMCSD_SPI is not set # CONFIG_NSH_DISABLEBG is not set # CONFIG_NSH_DISABLESCRIPT is not set +# CONFIG_NSH_DISABLE_CAT is not set +# CONFIG_NSH_DISABLE_CD is not set +# CONFIG_NSH_DISABLE_CP is not set +# CONFIG_NSH_DISABLE_DATE is not set # CONFIG_NSH_DISABLE_DF is not set +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set # CONFIG_NSH_DISABLE_EXEC is not set # CONFIG_NSH_DISABLE_EXIT is not set +# CONFIG_NSH_DISABLE_EXPORT is not set +# CONFIG_NSH_DISABLE_FREE is not set # CONFIG_NSH_DISABLE_GET is not set +# CONFIG_NSH_DISABLE_HELP is not set # CONFIG_NSH_DISABLE_ITEF is not set +# CONFIG_NSH_DISABLE_KILL is not set # CONFIG_NSH_DISABLE_LOOPS is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set # CONFIG_NSH_DISABLE_MKFATFS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PS is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE is not set +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_RM is not set +# CONFIG_NSH_DISABLE_RMDIR is not set # CONFIG_NSH_DISABLE_SEMICOLON is not set +# CONFIG_NSH_DISABLE_SET is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_TEST is not set # CONFIG_NSH_DISABLE_TIME is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_ARCH="arm" CONFIG_ARCH_BOARD_CUSTOM=y CONFIG_ARCH_BOARD_CUSTOM_DIR="../../../../boards/px4/fmu-v5/nuttx-config" @@ -44,8 +71,8 @@ CONFIG_BOARDCTL_RESET=y CONFIG_BOARD_CRASHDUMP=y CONFIG_BOARD_LOOPSPERMSEC=22114 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y -CONFIG_C99_BOOL8=y CONFIG_CAN_EXTID=y CONFIG_CAN_FIFOSIZE=32 CONFIG_CDCACM=y @@ -56,7 +83,6 @@ CONFIG_CDCACM_RXBUFSIZE=600 CONFIG_CDCACM_TXBUFSIZE=12000 CONFIG_CDCACM_VENDORID=0x26ac CONFIG_CDCACM_VENDORSTR="3D Robotics" -CONFIG_CLOCK_MONOTONIC=y CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_HARDFAULT_ALERT=y CONFIG_DEBUG_SYMBOLS=y @@ -64,7 +90,6 @@ CONFIG_DEFAULT_SMALL=y CONFIG_DEV_FIFO_SIZE=0 CONFIG_DEV_PIPE_MAXSIZE=1024 CONFIG_DEV_PIPE_SIZE=70 -CONFIG_DISABLE_MQUEUE=y CONFIG_FAT_DMAMEMORY=y CONFIG_FAT_LCNAMES=y CONFIG_FAT_LFN=y @@ -86,8 +111,11 @@ CONFIG_HAVE_CXXINITIALIZE=y CONFIG_I2C=y CONFIG_I2C_RESET=y CONFIG_IDLETHREAD_STACKSIZE=750 +CONFIG_INIT_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2944 CONFIG_LIBC_FLOATINGPOINT=y CONFIG_LIBC_LONG_LONG=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_LIBC_STRERROR=y CONFIG_MEMSET_64BIT=y CONFIG_MEMSET_OPTSPEED=y @@ -105,9 +133,6 @@ CONFIG_NSH_ARGCAT=y CONFIG_NSH_BUILTIN_APPS=y CONFIG_NSH_CMDPARMS=y CONFIG_NSH_CROMFSETC=y -CONFIG_NSH_DISABLE_IFCONFIG=y -CONFIG_NSH_DISABLE_IFUPDOWN=y -CONFIG_NSH_DISABLE_TELNETD=y CONFIG_NSH_LINELEN=128 CONFIG_NSH_MAXARGUMENTS=15 CONFIG_NSH_NESTDEPTH=8 @@ -129,17 +154,16 @@ CONFIG_RAW_BINARY=y CONFIG_READLINE_CMD_HISTORY=y CONFIG_READLINE_TABCOMPLETION=y CONFIG_RTC_DATETIME=y -CONFIG_SCHED_ATEXIT=y CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 CONFIG_SCHED_WAITPID=y -CONFIG_SDCLONE_DISABLE=y CONFIG_SDMMC1_SDIO_MODE=y CONFIG_SDMMC1_SDIO_PULLUP=y CONFIG_SEM_PREALLOCHOLDERS=32 @@ -190,7 +214,6 @@ CONFIG_STM32F7_SPI2=y CONFIG_STM32F7_SPI4=y CONFIG_STM32F7_SPI5=y CONFIG_STM32F7_SPI6=y -CONFIG_STM32F7_SPI_DMA=y CONFIG_STM32F7_SPI_DMATHRESHOLD=8 CONFIG_STM32F7_TIM10=y CONFIG_STM32F7_TIM11=y @@ -245,5 +268,3 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="nsh_main" diff --git a/boards/px4/fmu-v5/nuttx-config/debug/defconfig b/boards/px4/fmu-v5/nuttx-config/debug/defconfig index 6b0e41bc6b..36a1c93334 100644 --- a/boards/px4/fmu-v5/nuttx-config/debug/defconfig +++ b/boards/px4/fmu-v5/nuttx-config/debug/defconfig @@ -7,6 +7,7 @@ # # CONFIG_DISABLE_ENVIRON is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_FS_PROCFS_EXCLUDE_ENVIRON is not set # CONFIG_MMCSD_HAVE_CARDDETECT is not set # CONFIG_MMCSD_HAVE_WRITEPROTECT is not set @@ -14,15 +15,42 @@ # CONFIG_MMCSD_SPI is not set # CONFIG_NSH_DISABLEBG is not set # CONFIG_NSH_DISABLESCRIPT is not set +# CONFIG_NSH_DISABLE_CAT is not set +# CONFIG_NSH_DISABLE_CD is not set +# CONFIG_NSH_DISABLE_CP is not set +# CONFIG_NSH_DISABLE_DATE is not set # CONFIG_NSH_DISABLE_DF is not set +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set # CONFIG_NSH_DISABLE_EXEC is not set # CONFIG_NSH_DISABLE_EXIT is not set +# CONFIG_NSH_DISABLE_EXPORT is not set +# CONFIG_NSH_DISABLE_FREE is not set # CONFIG_NSH_DISABLE_GET is not set +# CONFIG_NSH_DISABLE_HELP is not set # CONFIG_NSH_DISABLE_ITEF is not set +# CONFIG_NSH_DISABLE_KILL is not set # CONFIG_NSH_DISABLE_LOOPS is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set # CONFIG_NSH_DISABLE_MKFATFS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PS is not set +# CONFIG_NSH_DISABLE_PSHEAPUSAGE is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE is not set +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_RM is not set +# CONFIG_NSH_DISABLE_RMDIR is not set # CONFIG_NSH_DISABLE_SEMICOLON is not set +# CONFIG_NSH_DISABLE_SET is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_TEST is not set # CONFIG_NSH_DISABLE_TIME is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_ARCH="arm" CONFIG_ARCH_BOARD_CUSTOM=y CONFIG_ARCH_BOARD_CUSTOM_DIR="../../../../boards/px4/fmu-v5/nuttx-config" @@ -44,8 +72,8 @@ CONFIG_BOARDCTL_RESET=y CONFIG_BOARD_CRASHDUMP=y CONFIG_BOARD_LOOPSPERMSEC=22114 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y -CONFIG_C99_BOOL8=y CONFIG_CDCACM=y CONFIG_CDCACM_IFLOWCONTROL=y CONFIG_CDCACM_PRODUCTID=0x0032 @@ -54,7 +82,6 @@ CONFIG_CDCACM_RXBUFSIZE=600 CONFIG_CDCACM_TXBUFSIZE=12000 CONFIG_CDCACM_VENDORID=0x26ac CONFIG_CDCACM_VENDORSTR="3D Robotics" -CONFIG_CLOCK_MONOTONIC=y CONFIG_DEBUG_ASSERTIONS=y CONFIG_DEBUG_BINFMT=y CONFIG_DEBUG_BINFMT_ERROR=y @@ -110,7 +137,6 @@ CONFIG_DEFAULT_SMALL=y CONFIG_DEV_FIFO_SIZE=0 CONFIG_DEV_PIPE_MAXSIZE=1024 CONFIG_DEV_PIPE_SIZE=70 -CONFIG_DISABLE_MQUEUE=y CONFIG_FAT_DMAMEMORY=y CONFIG_FAT_LCNAMES=y CONFIG_FAT_LFN=y @@ -132,8 +158,11 @@ CONFIG_HAVE_CXXINITIALIZE=y CONFIG_I2C=y CONFIG_I2C_RESET=y CONFIG_IDLETHREAD_STACKSIZE=1064 +CONFIG_INIT_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2944 CONFIG_LIBC_FLOATINGPOINT=y CONFIG_LIBC_LONG_LONG=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_LIBC_STRERROR=y CONFIG_MEMSET_64BIT=y CONFIG_MEMSET_OPTSPEED=y @@ -151,9 +180,6 @@ CONFIG_NSH_ARGCAT=y CONFIG_NSH_BUILTIN_APPS=y CONFIG_NSH_CMDPARMS=y CONFIG_NSH_CROMFSETC=y -CONFIG_NSH_DISABLE_IFCONFIG=y -CONFIG_NSH_DISABLE_IFUPDOWN=y -CONFIG_NSH_DISABLE_TELNETD=y CONFIG_NSH_LINELEN=128 CONFIG_NSH_MAXARGUMENTS=15 CONFIG_NSH_NESTDEPTH=8 @@ -175,17 +201,16 @@ CONFIG_RAW_BINARY=y CONFIG_READLINE_CMD_HISTORY=y CONFIG_READLINE_TABCOMPLETION=y CONFIG_RTC_DATETIME=y -CONFIG_SCHED_ATEXIT=y CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1300 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1728 CONFIG_SCHED_WAITPID=y -CONFIG_SDCLONE_DISABLE=y CONFIG_SDMMC1_SDIO_MODE=y CONFIG_SDMMC1_SDIO_PULLUP=y CONFIG_SEM_PREALLOCHOLDERS=32 @@ -231,7 +256,6 @@ CONFIG_STM32F7_SPI2=y CONFIG_STM32F7_SPI4=y CONFIG_STM32F7_SPI5=y CONFIG_STM32F7_SPI6=y -CONFIG_STM32F7_SPI_DMA=y CONFIG_STM32F7_SPI_DMATHRESHOLD=8 CONFIG_STM32F7_TIM10=y CONFIG_STM32F7_TIM11=y @@ -289,5 +313,3 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="nsh_main" diff --git a/boards/px4/fmu-v5/nuttx-config/mbedtls/defconfig b/boards/px4/fmu-v5/nuttx-config/mbedtls/defconfig new file mode 100644 index 0000000000..8e83e6d753 --- /dev/null +++ b/boards/px4/fmu-v5/nuttx-config/mbedtls/defconfig @@ -0,0 +1,244 @@ +# +# This file is autogenerated: PLEASE DO NOT EDIT IT. +# +# You can use "make menuconfig" to make any modifications to the installed .config file. +# You can then do "make savedefconfig" to generate a new defconfig file that includes your +# modifications. +# +# CONFIG_DISABLE_ENVIRON is not set +# CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_FS_PROCFS_EXCLUDE_ENVIRON is not set +# CONFIG_MMCSD_HAVE_CARDDETECT is not set +# CONFIG_MMCSD_HAVE_WRITEPROTECT is not set +# CONFIG_MMCSD_MMCSUPPORT is not set +# CONFIG_MMCSD_SPI is not set +# CONFIG_NSH_DISABLEBG is not set +# CONFIG_NSH_DISABLESCRIPT is not set +# CONFIG_NSH_DISABLE_DF is not set +# CONFIG_NSH_DISABLE_EXEC is not set +# CONFIG_NSH_DISABLE_EXIT is not set +# CONFIG_NSH_DISABLE_GET is not set +# CONFIG_NSH_DISABLE_ITEF is not set +# CONFIG_NSH_DISABLE_LOOPS is not set +# CONFIG_NSH_DISABLE_MKFATFS is not set +# CONFIG_NSH_DISABLE_SEMICOLON is not set +# CONFIG_NSH_DISABLE_TIME is not set +CONFIG_ARCH="arm" +CONFIG_ARCH_BOARD_CUSTOM=y +CONFIG_ARCH_BOARD_CUSTOM_DIR="../../../../boards/px4/fmu-v5/nuttx-config" +CONFIG_ARCH_BOARD_CUSTOM_DIR_RELPATH=y +CONFIG_ARCH_BOARD_CUSTOM_NAME="px4" +CONFIG_ARCH_CHIP="stm32f7" +CONFIG_ARCH_CHIP_STM32F765II=y +CONFIG_ARCH_CHIP_STM32F7=y +CONFIG_ARCH_INTERRUPTSTACK=512 +CONFIG_ARCH_STACKDUMP=y +CONFIG_ARMV7M_BASEPRI_WAR=y +CONFIG_ARMV7M_DCACHE=y +CONFIG_ARMV7M_DTCM=y +CONFIG_ARMV7M_ICACHE=y +CONFIG_ARMV7M_MEMCPY=y +CONFIG_ARMV7M_USEBASEPRI=y +CONFIG_ARM_MPU_EARLY_RESET=y +CONFIG_BOARDCTL_RESET=y +CONFIG_BOARD_CRASHDUMP=y +CONFIG_BOARD_LOOPSPERMSEC=22114 +CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 +CONFIG_BUILTIN=y +CONFIG_C99_BOOL8=y +CONFIG_CDCACM=y +CONFIG_CDCACM_IFLOWCONTROL=y +CONFIG_CDCACM_PRODUCTID=0x0032 +CONFIG_CDCACM_PRODUCTSTR="PX4 FMU v5.x" +CONFIG_CDCACM_RXBUFSIZE=600 +CONFIG_CDCACM_TXBUFSIZE=12000 +CONFIG_CDCACM_VENDORID=0x26ac +CONFIG_CDCACM_VENDORSTR="3D Robotics" +CONFIG_DEBUG_FULLOPT=y +CONFIG_DEBUG_HARDFAULT_ALERT=y +CONFIG_DEBUG_SYMBOLS=y +CONFIG_DEFAULT_SMALL=y +CONFIG_DEV_FIFO_SIZE=0 +CONFIG_DEV_PIPE_MAXSIZE=1024 +CONFIG_DEV_PIPE_SIZE=70 +CONFIG_DISABLE_MQUEUE=y +CONFIG_EXAMPLES_CALIB_UDELAY=y +CONFIG_FAT_DMAMEMORY=y +CONFIG_FAT_LCNAMES=y +CONFIG_FAT_LFN=y +CONFIG_FAT_LFN_ALIAS_HASH=y +CONFIG_FDCLONE_STDIO=y +CONFIG_FS_BINFS=y +CONFIG_FS_CROMFS=y +CONFIG_FS_FAT=y +CONFIG_FS_FATTIME=y +CONFIG_FS_PROCFS=y +CONFIG_FS_PROCFS_INCLUDE_PROGMEM=y +CONFIG_FS_PROCFS_MAX_TASKS=64 +CONFIG_FS_PROCFS_REGISTER=y +CONFIG_FS_ROMFS=y +CONFIG_GRAN=y +CONFIG_GRAN_INTR=y +CONFIG_HAVE_CXX=y +CONFIG_HAVE_CXXINITIALIZE=y +CONFIG_I2C=y +CONFIG_I2C_RESET=y +CONFIG_IDLETHREAD_STACKSIZE=750 +CONFIG_LIBC_LONG_LONG=y +CONFIG_LIBC_STRERROR=y +CONFIG_MEMSET_64BIT=y +CONFIG_MEMSET_OPTSPEED=y +CONFIG_MMCSD=y +CONFIG_MMCSD_SDIO=y +CONFIG_MMCSD_SDIOWAIT_WRCOMPLETE=y +CONFIG_MM_REGIONS=3 +CONFIG_MTD=y +CONFIG_MTD_BYTE_WRITE=y +CONFIG_MTD_PARTITION=y +CONFIG_MTD_RAMTRON=y +CONFIG_NAME_MAX=40 +CONFIG_NSH_ARCHINIT=y +CONFIG_NSH_ARGCAT=y +CONFIG_NSH_BUILTIN_APPS=y +CONFIG_NSH_CMDPARMS=y +CONFIG_NSH_CROMFSETC=y +CONFIG_NSH_DISABLE_IFCONFIG=y +CONFIG_NSH_DISABLE_IFUPDOWN=y +CONFIG_NSH_DISABLE_TELNETD=y +CONFIG_NSH_LINELEN=128 +CONFIG_NSH_MAXARGUMENTS=15 +CONFIG_NSH_NESTDEPTH=8 +CONFIG_NSH_QUOTE=y +CONFIG_NSH_ROMFSETC=y +CONFIG_NSH_ROMFSSECTSIZE=128 +CONFIG_NSH_STRERROR=y +CONFIG_NSH_VARS=y +CONFIG_OTG_ID_GPIO_DISABLE=y +CONFIG_PIPES=y +CONFIG_PREALLOC_TIMERS=50 +CONFIG_PRIORITY_INHERITANCE=y +CONFIG_PTHREAD_MUTEX_ROBUST=y +CONFIG_PTHREAD_STACK_MIN=512 +CONFIG_RAMTRON_SETSPEED=y +CONFIG_RAM_SIZE=245760 +CONFIG_RAM_START=0x20010000 +CONFIG_RAW_BINARY=y +CONFIG_READLINE_CMD_HISTORY=y +CONFIG_READLINE_TABCOMPLETION=y +CONFIG_RTC_DATETIME=y +CONFIG_SCHED_ATEXIT=y +CONFIG_SCHED_HPWORK=y +CONFIG_SCHED_HPWORKPRIORITY=249 +CONFIG_SCHED_HPWORKSTACKSIZE=1280 +CONFIG_SCHED_INSTRUMENTATION=y +CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_LPWORK=y +CONFIG_SCHED_LPWORKPRIORITY=50 +CONFIG_SCHED_LPWORKSTACKSIZE=1632 +CONFIG_SCHED_WAITPID=y +CONFIG_SDCLONE_DISABLE=y +CONFIG_SDMMC1_SDIO_MODE=y +CONFIG_SDMMC1_SDIO_PULLUP=y +CONFIG_SEM_NNESTPRIO=8 +CONFIG_SEM_PREALLOCHOLDERS=0 +CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y +CONFIG_SERIAL_TERMIOS=y +CONFIG_SIG_DEFAULT=y +CONFIG_SIG_SIGALRM_ACTION=y +CONFIG_SIG_SIGUSR1_ACTION=y +CONFIG_SIG_SIGUSR2_ACTION=y +CONFIG_SIG_SIGWORK=4 +CONFIG_STACK_COLORATION=y +CONFIG_START_DAY=30 +CONFIG_START_MONTH=11 +CONFIG_STDIO_BUFFER_SIZE=256 +CONFIG_STM32F7_ADC1=y +CONFIG_STM32F7_BBSRAM=y +CONFIG_STM32F7_BBSRAM_FILES=5 +CONFIG_STM32F7_BKPSRAM=y +CONFIG_STM32F7_DMA1=y +CONFIG_STM32F7_DMA2=y +CONFIG_STM32F7_DMACAPABLE=y +CONFIG_STM32F7_FLOWCONTROL_BROKEN=y +CONFIG_STM32F7_I2C1=y +CONFIG_STM32F7_I2C2=y +CONFIG_STM32F7_I2C3=y +CONFIG_STM32F7_I2C4=y +CONFIG_STM32F7_I2C_DYNTIMEO=y +CONFIG_STM32F7_I2C_DYNTIMEO_STARTSTOP=10 +CONFIG_STM32F7_OTGFS=y +CONFIG_STM32F7_PROGMEM=y +CONFIG_STM32F7_PWR=y +CONFIG_STM32F7_RTC=y +CONFIG_STM32F7_RTC_AUTO_LSECLOCK_START_DRV_CAPABILITY=y +CONFIG_STM32F7_RTC_MAGIC_REG=1 +CONFIG_STM32F7_SAVE_CRASHDUMP=y +CONFIG_STM32F7_SDMMC1=y +CONFIG_STM32F7_SDMMC_DMA=y +CONFIG_STM32F7_SERIALBRK_BSDCOMPAT=y +CONFIG_STM32F7_SERIAL_DISABLE_REORDERING=y +CONFIG_STM32F7_SPI1=y +CONFIG_STM32F7_SPI1_DMA=y +CONFIG_STM32F7_SPI1_DMA_BUFFER=1024 +CONFIG_STM32F7_SPI2=y +CONFIG_STM32F7_SPI4=y +CONFIG_STM32F7_SPI5=y +CONFIG_STM32F7_SPI6=y +CONFIG_STM32F7_SPI_DMA=y +CONFIG_STM32F7_SPI_DMATHRESHOLD=8 +CONFIG_STM32F7_TIM10=y +CONFIG_STM32F7_TIM11=y +CONFIG_STM32F7_UART4=y +CONFIG_STM32F7_UART7=y +CONFIG_STM32F7_UART8=y +CONFIG_STM32F7_USART1=y +CONFIG_STM32F7_USART2=y +CONFIG_STM32F7_USART3=y +CONFIG_STM32F7_USART6=y +CONFIG_STM32F7_USART_BREAKS=y +CONFIG_STM32F7_USART_INVERT=y +CONFIG_STM32F7_USART_SINGLEWIRE=y +CONFIG_STM32F7_USART_SWAP=y +CONFIG_STM32F7_WWDG=y +CONFIG_SYSTEM_CDCACM=y +CONFIG_SYSTEM_NSH=y +CONFIG_TASK_NAME_SIZE=24 +CONFIG_UART4_BAUD=57600 +CONFIG_UART4_RXBUFSIZE=600 +CONFIG_UART4_RXDMA=y +CONFIG_UART4_TXBUFSIZE=1500 +CONFIG_UART7_BAUD=57600 +CONFIG_UART7_RXBUFSIZE=600 +CONFIG_UART7_SERIAL_CONSOLE=y +CONFIG_UART7_TXBUFSIZE=1500 +CONFIG_UART8_BAUD=57600 +CONFIG_UART8_RXBUFSIZE=600 +CONFIG_UART8_RXDMA=y +CONFIG_UART8_TXBUFSIZE=1500 +CONFIG_USART1_BAUD=57600 +CONFIG_USART1_RXBUFSIZE=600 +CONFIG_USART1_TXBUFSIZE=1500 +CONFIG_USART2_BAUD=57600 +CONFIG_USART2_IFLOWCONTROL=y +CONFIG_USART2_OFLOWCONTROL=y +CONFIG_USART2_RXBUFSIZE=600 +CONFIG_USART2_RXDMA=y +CONFIG_USART2_TXBUFSIZE=1500 +CONFIG_USART3_BAUD=57600 +CONFIG_USART3_IFLOWCONTROL=y +CONFIG_USART3_OFLOWCONTROL=y +CONFIG_USART3_RXBUFSIZE=600 +CONFIG_USART3_RXDMA=y +CONFIG_USART3_TXBUFSIZE=3000 +CONFIG_USART3_TXDMA=y +CONFIG_USART6_BAUD=57600 +CONFIG_USART6_RXBUFSIZE=600 +CONFIG_USART6_RXDMA=y +CONFIG_USART6_TXBUFSIZE=1500 +CONFIG_USBDEV=y +CONFIG_USBDEV_BUSPOWERED=y +CONFIG_USBDEV_MAXPOWER=500 +CONFIG_USEC_PER_TICK=1000 +CONFIG_USERMAIN_STACKSIZE=2944 +CONFIG_USER_ENTRYPOINT="nsh_main" diff --git a/boards/px4/fmu-v5/nuttx-config/nsh/defconfig b/boards/px4/fmu-v5/nuttx-config/nsh/defconfig index e194b35406..956db24e60 100644 --- a/boards/px4/fmu-v5/nuttx-config/nsh/defconfig +++ b/boards/px4/fmu-v5/nuttx-config/nsh/defconfig @@ -7,6 +7,7 @@ # # CONFIG_DISABLE_ENVIRON is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_FS_PROCFS_EXCLUDE_ENVIRON is not set # CONFIG_MMCSD_HAVE_CARDDETECT is not set # CONFIG_MMCSD_HAVE_WRITEPROTECT is not set @@ -14,15 +15,41 @@ # CONFIG_MMCSD_SPI is not set # CONFIG_NSH_DISABLEBG is not set # CONFIG_NSH_DISABLESCRIPT is not set +# CONFIG_NSH_DISABLE_CAT is not set +# CONFIG_NSH_DISABLE_CD is not set +# CONFIG_NSH_DISABLE_CP is not set +# CONFIG_NSH_DISABLE_DATE is not set # CONFIG_NSH_DISABLE_DF is not set +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set # CONFIG_NSH_DISABLE_EXEC is not set # CONFIG_NSH_DISABLE_EXIT is not set +# CONFIG_NSH_DISABLE_EXPORT is not set +# CONFIG_NSH_DISABLE_FREE is not set # CONFIG_NSH_DISABLE_GET is not set +# CONFIG_NSH_DISABLE_HELP is not set # CONFIG_NSH_DISABLE_ITEF is not set +# CONFIG_NSH_DISABLE_KILL is not set # CONFIG_NSH_DISABLE_LOOPS is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set # CONFIG_NSH_DISABLE_MKFATFS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PS is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE is not set +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_RM is not set +# CONFIG_NSH_DISABLE_RMDIR is not set # CONFIG_NSH_DISABLE_SEMICOLON is not set +# CONFIG_NSH_DISABLE_SET is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_TEST is not set # CONFIG_NSH_DISABLE_TIME is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_ARCH="arm" CONFIG_ARCH_BOARD_CUSTOM=y CONFIG_ARCH_BOARD_CUSTOM_DIR="../../../../boards/px4/fmu-v5/nuttx-config" @@ -44,8 +71,8 @@ CONFIG_BOARDCTL_RESET=y CONFIG_BOARD_CRASHDUMP=y CONFIG_BOARD_LOOPSPERMSEC=22114 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y -CONFIG_C99_BOOL8=y CONFIG_CDCACM=y CONFIG_CDCACM_IFLOWCONTROL=y CONFIG_CDCACM_PRODUCTID=0x0032 @@ -61,7 +88,6 @@ CONFIG_DEFAULT_SMALL=y CONFIG_DEV_FIFO_SIZE=0 CONFIG_DEV_PIPE_MAXSIZE=1024 CONFIG_DEV_PIPE_SIZE=70 -CONFIG_DISABLE_MQUEUE=y CONFIG_EXAMPLES_CALIB_UDELAY=y CONFIG_FAT_DMAMEMORY=y CONFIG_FAT_LCNAMES=y @@ -84,7 +110,10 @@ CONFIG_HAVE_CXXINITIALIZE=y CONFIG_I2C=y CONFIG_I2C_RESET=y CONFIG_IDLETHREAD_STACKSIZE=750 +CONFIG_INIT_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2944 CONFIG_LIBC_LONG_LONG=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_LIBC_STRERROR=y CONFIG_MEMSET_64BIT=y CONFIG_MEMSET_OPTSPEED=y @@ -102,9 +131,6 @@ CONFIG_NSH_ARGCAT=y CONFIG_NSH_BUILTIN_APPS=y CONFIG_NSH_CMDPARMS=y CONFIG_NSH_CROMFSETC=y -CONFIG_NSH_DISABLE_IFCONFIG=y -CONFIG_NSH_DISABLE_IFUPDOWN=y -CONFIG_NSH_DISABLE_TELNETD=y CONFIG_NSH_LINELEN=128 CONFIG_NSH_MAXARGUMENTS=15 CONFIG_NSH_NESTDEPTH=8 @@ -117,7 +143,6 @@ CONFIG_OTG_ID_GPIO_DISABLE=y CONFIG_PIPES=y CONFIG_PREALLOC_TIMERS=50 CONFIG_PRIORITY_INHERITANCE=y -CONFIG_PTHREAD_MUTEX_ROBUST=y CONFIG_PTHREAD_STACK_MIN=512 CONFIG_RAMTRON_SETSPEED=y CONFIG_RAM_SIZE=245760 @@ -126,17 +151,16 @@ CONFIG_RAW_BINARY=y CONFIG_READLINE_CMD_HISTORY=y CONFIG_READLINE_TABCOMPLETION=y CONFIG_RTC_DATETIME=y -CONFIG_SCHED_ATEXIT=y CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 CONFIG_SCHED_WAITPID=y -CONFIG_SDCLONE_DISABLE=y CONFIG_SDMMC1_SDIO_MODE=y CONFIG_SDMMC1_SDIO_PULLUP=y CONFIG_SEM_PREALLOCHOLDERS=32 @@ -183,7 +207,6 @@ CONFIG_STM32F7_SPI2=y CONFIG_STM32F7_SPI4=y CONFIG_STM32F7_SPI5=y CONFIG_STM32F7_SPI6=y -CONFIG_STM32F7_SPI_DMA=y CONFIG_STM32F7_SPI_DMATHRESHOLD=8 CONFIG_STM32F7_TIM10=y CONFIG_STM32F7_TIM11=y @@ -238,5 +261,3 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="nsh_main" diff --git a/boards/px4/fmu-v5/nuttx-config/protected/defconfig b/boards/px4/fmu-v5/nuttx-config/protected/defconfig index bec6725e77..000b2d7d05 100644 --- a/boards/px4/fmu-v5/nuttx-config/protected/defconfig +++ b/boards/px4/fmu-v5/nuttx-config/protected/defconfig @@ -7,6 +7,7 @@ # # CONFIG_DISABLE_ENVIRON is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_FS_PROCFS_EXCLUDE_ENVIRON is not set # CONFIG_MMCSD_HAVE_CARDDETECT is not set # CONFIG_MMCSD_HAVE_WRITEPROTECT is not set @@ -14,15 +15,41 @@ # CONFIG_MMCSD_SPI is not set # CONFIG_NSH_DISABLEBG is not set # CONFIG_NSH_DISABLESCRIPT is not set +# CONFIG_NSH_DISABLE_CAT is not set +# CONFIG_NSH_DISABLE_CD is not set +# CONFIG_NSH_DISABLE_CP is not set +# CONFIG_NSH_DISABLE_DATE is not set # CONFIG_NSH_DISABLE_DF is not set +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set # CONFIG_NSH_DISABLE_EXEC is not set # CONFIG_NSH_DISABLE_EXIT is not set +# CONFIG_NSH_DISABLE_EXPORT is not set +# CONFIG_NSH_DISABLE_FREE is not set # CONFIG_NSH_DISABLE_GET is not set +# CONFIG_NSH_DISABLE_HELP is not set # CONFIG_NSH_DISABLE_ITEF is not set +# CONFIG_NSH_DISABLE_KILL is not set # CONFIG_NSH_DISABLE_LOOPS is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set # CONFIG_NSH_DISABLE_MKFATFS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PS is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE is not set +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_RM is not set +# CONFIG_NSH_DISABLE_RMDIR is not set # CONFIG_NSH_DISABLE_SEMICOLON is not set +# CONFIG_NSH_DISABLE_SET is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_TEST is not set # CONFIG_NSH_DISABLE_TIME is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_ARCH="arm" CONFIG_ARCH_BOARD_CUSTOM=y CONFIG_ARCH_BOARD_CUSTOM_DIR="../../../../boards/px4/fmu-v5/nuttx-config" @@ -47,9 +74,9 @@ CONFIG_BOARDCTL_RESET=y CONFIG_BOARD_CRASHDUMP=y CONFIG_BOARD_LOOPSPERMSEC=22114 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILD_PROTECTED=y CONFIG_BUILTIN=y -CONFIG_C99_BOOL8=y CONFIG_CDCACM=y CONFIG_CDCACM_IFLOWCONTROL=y CONFIG_CDCACM_PRODUCTID=0x0032 @@ -58,7 +85,6 @@ CONFIG_CDCACM_RXBUFSIZE=600 CONFIG_CDCACM_TXBUFSIZE=12000 CONFIG_CDCACM_VENDORID=0x26ac CONFIG_CDCACM_VENDORSTR="3D Robotics" -CONFIG_CLOCK_MONOTONIC=y CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_HARDFAULT_ALERT=y CONFIG_DEBUG_SYMBOLS=y @@ -66,7 +92,6 @@ CONFIG_DEFAULT_SMALL=y CONFIG_DEV_FIFO_SIZE=0 CONFIG_DEV_PIPE_MAXSIZE=1024 CONFIG_DEV_PIPE_SIZE=70 -CONFIG_DISABLE_MQUEUE=y CONFIG_FAT_DMAMEMORY=y CONFIG_FAT_LCNAMES=y CONFIG_FAT_LFN=y @@ -88,10 +113,13 @@ CONFIG_HAVE_CXXINITIALIZE=y CONFIG_I2C=y CONFIG_I2C_RESET=y CONFIG_IDLETHREAD_STACKSIZE=750 +CONFIG_INIT_ENTRYPOINT="px4_entry" +CONFIG_INIT_STACKSIZE=2944 CONFIG_LIBC_FLOATINGPOINT=y CONFIG_LIBC_LONG_LONG=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_LIBC_STRERROR=y -CONFIG_LIB_USRWORK=y +CONFIG_LIBC_USRWORK=y CONFIG_MEMSET_64BIT=y CONFIG_MEMSET_OPTSPEED=y CONFIG_MMCSD=y @@ -108,9 +136,6 @@ CONFIG_NSH_ARGCAT=y CONFIG_NSH_BUILTIN_APPS=y CONFIG_NSH_CMDPARMS=y CONFIG_NSH_CROMFSETC=y -CONFIG_NSH_DISABLE_IFCONFIG=y -CONFIG_NSH_DISABLE_IFUPDOWN=y -CONFIG_NSH_DISABLE_TELNETD=y CONFIG_NSH_LINELEN=128 CONFIG_NSH_MAXARGUMENTS=15 CONFIG_NSH_NESTDEPTH=8 @@ -133,17 +158,16 @@ CONFIG_RAW_BINARY=y CONFIG_READLINE_CMD_HISTORY=y CONFIG_READLINE_TABCOMPLETION=y CONFIG_RTC_DATETIME=y -CONFIG_SCHED_ATEXIT=y CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 CONFIG_SCHED_WAITPID=y -CONFIG_SDCLONE_DISABLE=y CONFIG_SDMMC1_SDIO_MODE=y CONFIG_SDMMC1_SDIO_PULLUP=y CONFIG_SEM_PREALLOCHOLDERS=32 @@ -190,7 +214,6 @@ CONFIG_STM32F7_SPI2=y CONFIG_STM32F7_SPI4=y CONFIG_STM32F7_SPI5=y CONFIG_STM32F7_SPI6=y -CONFIG_STM32F7_SPI_DMA=y CONFIG_STM32F7_SPI_DMATHRESHOLD=8 CONFIG_STM32F7_TIM10=y CONFIG_STM32F7_TIM11=y @@ -208,7 +231,6 @@ CONFIG_STM32F7_USART_SWAP=y CONFIG_STM32F7_WWDG=y CONFIG_SYSTEM_CDCACM=y CONFIG_SYSTEM_NSH=y -CONFIG_SYS_RESERVED=9 CONFIG_TASK_NAME_SIZE=24 CONFIG_UART4_BAUD=57600 CONFIG_UART4_RXBUFSIZE=600 @@ -246,5 +268,3 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="px4_entry" diff --git a/boards/px4/fmu-v5/nuttx-config/stackcheck/defconfig b/boards/px4/fmu-v5/nuttx-config/stackcheck/defconfig index d93a7f3149..8563721466 100644 --- a/boards/px4/fmu-v5/nuttx-config/stackcheck/defconfig +++ b/boards/px4/fmu-v5/nuttx-config/stackcheck/defconfig @@ -7,6 +7,7 @@ # # CONFIG_DISABLE_ENVIRON is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_FS_PROCFS_EXCLUDE_ENVIRON is not set # CONFIG_MMCSD_HAVE_CARDDETECT is not set # CONFIG_MMCSD_HAVE_WRITEPROTECT is not set @@ -14,15 +15,41 @@ # CONFIG_MMCSD_SPI is not set # CONFIG_NSH_DISABLEBG is not set # CONFIG_NSH_DISABLESCRIPT is not set +# CONFIG_NSH_DISABLE_CAT is not set +# CONFIG_NSH_DISABLE_CD is not set +# CONFIG_NSH_DISABLE_CP is not set +# CONFIG_NSH_DISABLE_DATE is not set # CONFIG_NSH_DISABLE_DF is not set +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set # CONFIG_NSH_DISABLE_EXEC is not set # CONFIG_NSH_DISABLE_EXIT is not set +# CONFIG_NSH_DISABLE_EXPORT is not set +# CONFIG_NSH_DISABLE_FREE is not set # CONFIG_NSH_DISABLE_GET is not set +# CONFIG_NSH_DISABLE_HELP is not set # CONFIG_NSH_DISABLE_ITEF is not set +# CONFIG_NSH_DISABLE_KILL is not set # CONFIG_NSH_DISABLE_LOOPS is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set # CONFIG_NSH_DISABLE_MKFATFS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PS is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE is not set +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_RM is not set +# CONFIG_NSH_DISABLE_RMDIR is not set # CONFIG_NSH_DISABLE_SEMICOLON is not set +# CONFIG_NSH_DISABLE_SET is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_TEST is not set # CONFIG_NSH_DISABLE_TIME is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_ARCH="arm" CONFIG_ARCH_BOARD_CUSTOM=y CONFIG_ARCH_BOARD_CUSTOM_DIR="../../../../boards/px4/fmu-v5/nuttx-config" @@ -45,8 +72,8 @@ CONFIG_BOARDCTL_RESET=y CONFIG_BOARD_CRASHDUMP=y CONFIG_BOARD_LOOPSPERMSEC=22114 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y -CONFIG_C99_BOOL8=y CONFIG_CDCACM=y CONFIG_CDCACM_IFLOWCONTROL=y CONFIG_CDCACM_PRODUCTID=0x0032 @@ -55,7 +82,6 @@ CONFIG_CDCACM_RXBUFSIZE=600 CONFIG_CDCACM_TXBUFSIZE=12000 CONFIG_CDCACM_VENDORID=0x26ac CONFIG_CDCACM_VENDORSTR="3D Robotics" -CONFIG_CLOCK_MONOTONIC=y CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_HARDFAULT_ALERT=y CONFIG_DEBUG_SYMBOLS=y @@ -63,7 +89,6 @@ CONFIG_DEFAULT_SMALL=y CONFIG_DEV_FIFO_SIZE=0 CONFIG_DEV_PIPE_MAXSIZE=1024 CONFIG_DEV_PIPE_SIZE=70 -CONFIG_DISABLE_MQUEUE=y CONFIG_FAT_DMAMEMORY=y CONFIG_FAT_LCNAMES=y CONFIG_FAT_LFN=y @@ -84,9 +109,12 @@ CONFIG_HAVE_CXX=y CONFIG_HAVE_CXXINITIALIZE=y CONFIG_I2C=y CONFIG_I2C_RESET=y -CONFIG_IDLETHREAD_STACKSIZE=864 +CONFIG_IDLETHREAD_STACKSIZE=878 +CONFIG_INIT_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2944 CONFIG_LIBC_FLOATINGPOINT=y CONFIG_LIBC_LONG_LONG=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_LIBC_STRERROR=y CONFIG_MEMSET_64BIT=y CONFIG_MEMSET_OPTSPEED=y @@ -104,9 +132,6 @@ CONFIG_NSH_ARGCAT=y CONFIG_NSH_BUILTIN_APPS=y CONFIG_NSH_CMDPARMS=y CONFIG_NSH_CROMFSETC=y -CONFIG_NSH_DISABLE_IFCONFIG=y -CONFIG_NSH_DISABLE_IFUPDOWN=y -CONFIG_NSH_DISABLE_TELNETD=y CONFIG_NSH_LINELEN=128 CONFIG_NSH_MAXARGUMENTS=15 CONFIG_NSH_NESTDEPTH=8 @@ -128,17 +153,16 @@ CONFIG_RAW_BINARY=y CONFIG_READLINE_CMD_HISTORY=y CONFIG_READLINE_TABCOMPLETION=y CONFIG_RTC_DATETIME=y -CONFIG_SCHED_ATEXIT=y CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 CONFIG_SCHED_WAITPID=y -CONFIG_SDCLONE_DISABLE=y CONFIG_SDMMC1_SDIO_MODE=y CONFIG_SDMMC1_SDIO_PULLUP=y CONFIG_SEM_PREALLOCHOLDERS=32 @@ -185,7 +209,6 @@ CONFIG_STM32F7_SPI2=y CONFIG_STM32F7_SPI4=y CONFIG_STM32F7_SPI5=y CONFIG_STM32F7_SPI6=y -CONFIG_STM32F7_SPI_DMA=y CONFIG_STM32F7_SPI_DMATHRESHOLD=8 CONFIG_STM32F7_TIM10=y CONFIG_STM32F7_TIM11=y @@ -240,5 +263,3 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="nsh_main" diff --git a/boards/px4/fmu-v5/nuttx-config/test/defconfig b/boards/px4/fmu-v5/nuttx-config/test/defconfig index e5e893f1cd..fdfa683185 100644 --- a/boards/px4/fmu-v5/nuttx-config/test/defconfig +++ b/boards/px4/fmu-v5/nuttx-config/test/defconfig @@ -7,6 +7,7 @@ # # CONFIG_DISABLE_ENVIRON is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_FS_PROCFS_EXCLUDE_ENVIRON is not set # CONFIG_MMCSD_HAVE_CARDDETECT is not set # CONFIG_MMCSD_HAVE_WRITEPROTECT is not set @@ -14,15 +15,41 @@ # CONFIG_MMCSD_SPI is not set # CONFIG_NSH_DISABLEBG is not set # CONFIG_NSH_DISABLESCRIPT is not set +# CONFIG_NSH_DISABLE_CAT is not set +# CONFIG_NSH_DISABLE_CD is not set +# CONFIG_NSH_DISABLE_CP is not set +# CONFIG_NSH_DISABLE_DATE is not set # CONFIG_NSH_DISABLE_DF is not set +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set # CONFIG_NSH_DISABLE_EXEC is not set # CONFIG_NSH_DISABLE_EXIT is not set +# CONFIG_NSH_DISABLE_EXPORT is not set +# CONFIG_NSH_DISABLE_FREE is not set # CONFIG_NSH_DISABLE_GET is not set +# CONFIG_NSH_DISABLE_HELP is not set # CONFIG_NSH_DISABLE_ITEF is not set +# CONFIG_NSH_DISABLE_KILL is not set # CONFIG_NSH_DISABLE_LOOPS is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set # CONFIG_NSH_DISABLE_MKFATFS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PS is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE is not set +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_RM is not set +# CONFIG_NSH_DISABLE_RMDIR is not set # CONFIG_NSH_DISABLE_SEMICOLON is not set +# CONFIG_NSH_DISABLE_SET is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_TEST is not set # CONFIG_NSH_DISABLE_TIME is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_ARCH="arm" CONFIG_ARCH_BOARD_CUSTOM=y CONFIG_ARCH_BOARD_CUSTOM_DIR="../../../../boards/px4/fmu-v5/nuttx-config" @@ -44,8 +71,8 @@ CONFIG_BOARDCTL_RESET=y CONFIG_BOARD_CRASHDUMP=y CONFIG_BOARD_LOOPSPERMSEC=22114 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y -CONFIG_C99_BOOL8=y CONFIG_CDCACM=y CONFIG_CDCACM_IFLOWCONTROL=y CONFIG_CDCACM_PRODUCTID=0x0032 @@ -61,7 +88,6 @@ CONFIG_DEFAULT_SMALL=y CONFIG_DEV_FIFO_SIZE=0 CONFIG_DEV_PIPE_MAXSIZE=1024 CONFIG_DEV_PIPE_SIZE=70 -CONFIG_DISABLE_MQUEUE=y CONFIG_EXAMPLES_CALIB_UDELAY=y CONFIG_FAT_DMAMEMORY=y CONFIG_FAT_LCNAMES=y @@ -84,7 +110,10 @@ CONFIG_HAVE_CXXINITIALIZE=y CONFIG_I2C=y CONFIG_I2C_RESET=y CONFIG_IDLETHREAD_STACKSIZE=750 +CONFIG_INIT_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2944 CONFIG_LIBC_LONG_LONG=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_LIBC_STRERROR=y CONFIG_MEMSET_64BIT=y CONFIG_MEMSET_OPTSPEED=y @@ -102,9 +131,6 @@ CONFIG_NSH_ARGCAT=y CONFIG_NSH_BUILTIN_APPS=y CONFIG_NSH_CMDPARMS=y CONFIG_NSH_CROMFSETC=y -CONFIG_NSH_DISABLE_IFCONFIG=y -CONFIG_NSH_DISABLE_IFUPDOWN=y -CONFIG_NSH_DISABLE_TELNETD=y CONFIG_NSH_LINELEN=128 CONFIG_NSH_MAXARGUMENTS=15 CONFIG_NSH_NESTDEPTH=8 @@ -117,7 +143,6 @@ CONFIG_OTG_ID_GPIO_DISABLE=y CONFIG_PIPES=y CONFIG_PREALLOC_TIMERS=50 CONFIG_PRIORITY_INHERITANCE=y -CONFIG_PTHREAD_MUTEX_ROBUST=y CONFIG_PTHREAD_STACK_MIN=512 CONFIG_RAMTRON_SETSPEED=y CONFIG_RAM_SIZE=245760 @@ -126,17 +151,16 @@ CONFIG_RAW_BINARY=y CONFIG_READLINE_CMD_HISTORY=y CONFIG_READLINE_TABCOMPLETION=y CONFIG_RTC_DATETIME=y -CONFIG_SCHED_ATEXIT=y CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 CONFIG_SCHED_WAITPID=y -CONFIG_SDCLONE_DISABLE=y CONFIG_SDMMC1_SDIO_MODE=y CONFIG_SDMMC1_SDIO_PULLUP=y CONFIG_SEM_PREALLOCHOLDERS=32 @@ -183,7 +207,6 @@ CONFIG_STM32F7_SPI2=y CONFIG_STM32F7_SPI4=y CONFIG_STM32F7_SPI5=y CONFIG_STM32F7_SPI6=y -CONFIG_STM32F7_SPI_DMA=y CONFIG_STM32F7_SPI_DMATHRESHOLD=8 CONFIG_STM32F7_TIM10=y CONFIG_STM32F7_TIM11=y @@ -241,5 +264,3 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="nsh_main" diff --git a/boards/px4/fmu-v5/src/board_config.h b/boards/px4/fmu-v5/src/board_config.h index c7f08bc385..d6fbc72ad9 100644 --- a/boards/px4/fmu-v5/src/board_config.h +++ b/boards/px4/fmu-v5/src/board_config.h @@ -355,7 +355,7 @@ /* SD card bringup does not work if performed on the IDLE thread because it * will cause waiting. Use either: * - * CONFIG_LIB_BOARDCTL=y, OR + * CONFIG_BOARDCTL=y, OR * CONFIG_BOARD_INITIALIZE=y && CONFIG_BOARD_INITTHREAD=y */ diff --git a/boards/px4/fmu-v5/src/can.c b/boards/px4/fmu-v5/src/can.c index d25a500cd4..fb3ecceb2d 100644 --- a/boards/px4/fmu-v5/src/can.c +++ b/boards/px4/fmu-v5/src/can.c @@ -69,7 +69,7 @@ uint16_t board_get_can_interfaces(void) #include #include "chip.h" -#include "arm_arch.h" +#include "arm_internal.h" #include "chip.h" #include "stm32_can.h" diff --git a/boards/px4/fmu-v5/src/stm32_userspace.c b/boards/px4/fmu-v5/src/stm32_userspace.c index 2c52f986bb..d906e41eb5 100644 --- a/boards/px4/fmu-v5/src/stm32_userspace.c +++ b/boards/px4/fmu-v5/src/stm32_userspace.c @@ -89,13 +89,13 @@ extern uint32_t _ebss; /* End+1 of .bss */ /* This is the user space entry point */ -int CONFIG_USER_ENTRYPOINT(int argc, char *argv[]); +int CONFIG_INIT_ENTRYPOINT(int argc, char *argv[]); int nsh_main(int argc, char *argv[]); const struct userspace_s userspace __attribute__((section(".userspace"))) = { /* General memory map */ - .us_entrypoint = (main_t)CONFIG_USER_ENTRYPOINT, + .us_entrypoint = (main_t)CONFIG_INIT_ENTRYPOINT, .us_textstart = (uintptr_t) &_stext, .us_textend = (uintptr_t) &_etext, .us_datasource = (uintptr_t) &_eronly, @@ -129,7 +129,7 @@ const struct userspace_s userspace __attribute__((section(".userspace"))) = { void px4_userspace_init(void); -int CONFIG_USER_ENTRYPOINT(int argc, char *argv[]) +int CONFIG_INIT_ENTRYPOINT(int argc, char *argv[]) { #ifdef CONFIG_NSH_ARCHINIT diff --git a/boards/px4/fmu-v5/src/usb.c b/boards/px4/fmu-v5/src/usb.c index ef279653d9..0e28676586 100644 --- a/boards/px4/fmu-v5/src/usb.c +++ b/boards/px4/fmu-v5/src/usb.c @@ -51,7 +51,7 @@ #include #include -#include +#include #include #include #include diff --git a/boards/px4/fmu-v5x/extras/px4_io-v2_default.bin b/boards/px4/fmu-v5x/extras/px4_io-v2_default.bin index 51403914013d2f9cecc849dfda750db977a95303..957f0f13a12e8eb8a7979955f29ad98d82433933 100755 GIT binary patch delta 17038 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 delta 16986 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 diff --git a/boards/px4/fmu-v5x/nuttx-config/nsh/defconfig b/boards/px4/fmu-v5x/nuttx-config/nsh/defconfig index e36b4ef4e3..691db4b31c 100644 --- a/boards/px4/fmu-v5x/nuttx-config/nsh/defconfig +++ b/boards/px4/fmu-v5x/nuttx-config/nsh/defconfig @@ -7,6 +7,7 @@ # # CONFIG_DISABLE_ENVIRON is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_MMCSD_HAVE_CARDDETECT is not set # CONFIG_MMCSD_HAVE_WRITEPROTECT is not set # CONFIG_MMCSD_MMCSUPPORT is not set @@ -14,14 +15,44 @@ # CONFIG_NSH_DISABLEBG is not set # CONFIG_NSH_DISABLESCRIPT is not set # CONFIG_NSH_DISABLE_ARP is not set +# CONFIG_NSH_DISABLE_CAT is not set +# CONFIG_NSH_DISABLE_CD is not set +# CONFIG_NSH_DISABLE_CP is not set +# CONFIG_NSH_DISABLE_DATE is not set # CONFIG_NSH_DISABLE_DF is not set +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set # CONFIG_NSH_DISABLE_EXEC is not set +# CONFIG_NSH_DISABLE_EXPORT is not set +# CONFIG_NSH_DISABLE_FREE is not set # CONFIG_NSH_DISABLE_GET is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_IFCONFIG is not set +# CONFIG_NSH_DISABLE_IFUPDOWN is not set # CONFIG_NSH_DISABLE_ITEF is not set +# CONFIG_NSH_DISABLE_KILL is not set # CONFIG_NSH_DISABLE_LOOPS is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set # CONFIG_NSH_DISABLE_MKFATFS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_NSLOOKUP is not set +# CONFIG_NSH_DISABLE_PS is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE is not set +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_RM is not set +# CONFIG_NSH_DISABLE_RMDIR is not set # CONFIG_NSH_DISABLE_SEMICOLON is not set +# CONFIG_NSH_DISABLE_SET is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_TELNETD is not set +# CONFIG_NSH_DISABLE_TEST is not set # CONFIG_NSH_DISABLE_TIME is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_ARCH="arm" CONFIG_ARCH_BOARD_CUSTOM=y CONFIG_ARCH_BOARD_CUSTOM_DIR="../../../../boards/px4/fmu-v5x/nuttx-config" @@ -43,8 +74,8 @@ CONFIG_BOARDCTL_RESET=y CONFIG_BOARD_CRASHDUMP=y CONFIG_BOARD_LOOPSPERMSEC=22114 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y -CONFIG_C99_BOOL8=y CONFIG_CDCACM=y CONFIG_CDCACM_IFLOWCONTROL=y CONFIG_CDCACM_PRODUCTID=0x0033 @@ -53,7 +84,6 @@ CONFIG_CDCACM_RXBUFSIZE=600 CONFIG_CDCACM_TXBUFSIZE=12000 CONFIG_CDCACM_VENDORID=0x3185 CONFIG_CDCACM_VENDORSTR="Auterion" -CONFIG_CLOCK_MONOTONIC=y CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_HARDFAULT_ALERT=y CONFIG_DEBUG_SYMBOLS=y @@ -62,7 +92,6 @@ CONFIG_DEV_FIFO_SIZE=0 CONFIG_DEV_GPIO=y CONFIG_DEV_PIPE_MAXSIZE=1024 CONFIG_DEV_PIPE_SIZE=70 -CONFIG_DISABLE_MQUEUE=y CONFIG_ETH0_PHY_LAN8742A=y CONFIG_FAT_DMAMEMORY=y CONFIG_FAT_LCNAMES=y @@ -86,6 +115,8 @@ CONFIG_HAVE_CXXINITIALIZE=y CONFIG_I2C=y CONFIG_I2C_RESET=y CONFIG_IDLETHREAD_STACKSIZE=750 +CONFIG_INIT_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2944 CONFIG_IOB_NBUFFERS=24 CONFIG_IOB_THROTTLE=0 CONFIG_IPCFG_BINARY=y @@ -150,7 +181,6 @@ CONFIG_OTG_ID_GPIO_DISABLE=y CONFIG_PIPES=y CONFIG_PREALLOC_TIMERS=50 CONFIG_PRIORITY_INHERITANCE=y -CONFIG_PTHREAD_MUTEX_ROBUST=y CONFIG_PTHREAD_STACK_MIN=512 CONFIG_RAMTRON_SETSPEED=y CONFIG_RAM_SIZE=245760 @@ -159,17 +189,16 @@ CONFIG_RAW_BINARY=y CONFIG_READLINE_CMD_HISTORY=y CONFIG_READLINE_TABCOMPLETION=y CONFIG_RTC_DATETIME=y -CONFIG_SCHED_ATEXIT=y CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 CONFIG_SCHED_WAITPID=y -CONFIG_SDCLONE_DISABLE=y CONFIG_SDMMC2_SDIO_PULLUP=y CONFIG_SEM_PREALLOCHOLDERS=32 CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y @@ -228,7 +257,6 @@ CONFIG_STM32F7_SPI3_DMA=y CONFIG_STM32F7_SPI3_DMA_BUFFER=1024 CONFIG_STM32F7_SPI5=y CONFIG_STM32F7_SPI6=y -CONFIG_STM32F7_SPI_DMA=y CONFIG_STM32F7_SPI_DMATHRESHOLD=8 CONFIG_STM32F7_TIM10=y CONFIG_STM32F7_TIM11=y @@ -290,5 +318,3 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="nsh_main" diff --git a/boards/px4/fmu-v5x/nuttx-config/test/defconfig b/boards/px4/fmu-v5x/nuttx-config/test/defconfig index e4c812c34b..bddcecea07 100644 --- a/boards/px4/fmu-v5x/nuttx-config/test/defconfig +++ b/boards/px4/fmu-v5x/nuttx-config/test/defconfig @@ -7,6 +7,7 @@ # # CONFIG_DISABLE_ENVIRON is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_MMCSD_HAVE_CARDDETECT is not set # CONFIG_MMCSD_HAVE_WRITEPROTECT is not set # CONFIG_MMCSD_MMCSUPPORT is not set @@ -14,14 +15,43 @@ # CONFIG_NSH_DISABLEBG is not set # CONFIG_NSH_DISABLESCRIPT is not set # CONFIG_NSH_DISABLE_ARP is not set +# CONFIG_NSH_DISABLE_CAT is not set +# CONFIG_NSH_DISABLE_CD is not set +# CONFIG_NSH_DISABLE_CP is not set +# CONFIG_NSH_DISABLE_DATE is not set # CONFIG_NSH_DISABLE_DF is not set +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set # CONFIG_NSH_DISABLE_EXEC is not set +# CONFIG_NSH_DISABLE_EXPORT is not set +# CONFIG_NSH_DISABLE_FREE is not set # CONFIG_NSH_DISABLE_GET is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_IFCONFIG is not set +# CONFIG_NSH_DISABLE_IFUPDOWN is not set # CONFIG_NSH_DISABLE_ITEF is not set +# CONFIG_NSH_DISABLE_KILL is not set # CONFIG_NSH_DISABLE_LOOPS is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set # CONFIG_NSH_DISABLE_MKFATFS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_NSLOOKUP is not set +# CONFIG_NSH_DISABLE_PS is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE is not set +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_RM is not set +# CONFIG_NSH_DISABLE_RMDIR is not set # CONFIG_NSH_DISABLE_SEMICOLON is not set +# CONFIG_NSH_DISABLE_SET is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_TEST is not set # CONFIG_NSH_DISABLE_TIME is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_ARCH="arm" CONFIG_ARCH_BOARD_CUSTOM=y CONFIG_ARCH_BOARD_CUSTOM_DIR="../../../../boards/px4/fmu-v5x/nuttx-config" @@ -43,8 +73,8 @@ CONFIG_BOARDCTL_RESET=y CONFIG_BOARD_CRASHDUMP=y CONFIG_BOARD_LOOPSPERMSEC=22114 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y -CONFIG_C99_BOOL8=y CONFIG_CDCACM=y CONFIG_CDCACM_IFLOWCONTROL=y CONFIG_CDCACM_PRODUCTID=0x0033 @@ -53,7 +83,6 @@ CONFIG_CDCACM_RXBUFSIZE=600 CONFIG_CDCACM_TXBUFSIZE=12000 CONFIG_CDCACM_VENDORID=0x3185 CONFIG_CDCACM_VENDORSTR="Auterion" -CONFIG_CLOCK_MONOTONIC=y CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_HARDFAULT_ALERT=y CONFIG_DEBUG_SYMBOLS=y @@ -62,7 +91,6 @@ CONFIG_DEV_FIFO_SIZE=0 CONFIG_DEV_GPIO=y CONFIG_DEV_PIPE_MAXSIZE=1024 CONFIG_DEV_PIPE_SIZE=70 -CONFIG_DISABLE_MQUEUE=y CONFIG_ETH0_PHY_LAN8742A=y CONFIG_FAT_DMAMEMORY=y CONFIG_FAT_LCNAMES=y @@ -86,6 +114,8 @@ CONFIG_HAVE_CXXINITIALIZE=y CONFIG_I2C=y CONFIG_I2C_RESET=y CONFIG_IDLETHREAD_STACKSIZE=750 +CONFIG_INIT_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2944 CONFIG_IOB_NBUFFERS=24 CONFIG_IOB_THROTTLE=0 CONFIG_IPCFG_BINARY=y @@ -93,6 +123,7 @@ CONFIG_IPCFG_CHARDEV=y CONFIG_IPCFG_PATH="/fs/mtd_net" CONFIG_LIBC_FLOATINGPOINT=y CONFIG_LIBC_LONG_LONG=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_LIBC_STRERROR=y CONFIG_MEMSET_64BIT=y CONFIG_MEMSET_OPTSPEED=y @@ -113,7 +144,6 @@ CONFIG_NETINIT_DHCPC=y CONFIG_NETINIT_DNS=y CONFIG_NETINIT_DNSIPADDR=0XC0A800FE CONFIG_NETINIT_DRIPADDR=0XC0A800FE -CONFIG_NETINIT_MONITOR=y CONFIG_NETINIT_THREAD=y CONFIG_NETINIT_THREAD_PRIORITY=49 CONFIG_NETUTILS_TELNETD=y @@ -159,17 +189,16 @@ CONFIG_RAW_BINARY=y CONFIG_READLINE_CMD_HISTORY=y CONFIG_READLINE_TABCOMPLETION=y CONFIG_RTC_DATETIME=y -CONFIG_SCHED_ATEXIT=y CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 CONFIG_SCHED_WAITPID=y -CONFIG_SDCLONE_DISABLE=y CONFIG_SDMMC2_SDIO_PULLUP=y CONFIG_SEM_PREALLOCHOLDERS=32 CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y @@ -228,7 +257,6 @@ CONFIG_STM32F7_SPI3_DMA=y CONFIG_STM32F7_SPI3_DMA_BUFFER=1024 CONFIG_STM32F7_SPI5=y CONFIG_STM32F7_SPI6=y -CONFIG_STM32F7_SPI_DMA=y CONFIG_STM32F7_SPI_DMATHRESHOLD=8 CONFIG_STM32F7_TIM10=y CONFIG_STM32F7_TIM11=y @@ -293,5 +321,3 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="nsh_main" diff --git a/boards/px4/fmu-v5x/src/board_config.h b/boards/px4/fmu-v5x/src/board_config.h index 28abf341b9..b1e13c5410 100644 --- a/boards/px4/fmu-v5x/src/board_config.h +++ b/boards/px4/fmu-v5x/src/board_config.h @@ -352,7 +352,7 @@ /* SD card bringup does not work if performed on the IDLE thread because it * will cause waiting. Use either: * - * CONFIG_LIB_BOARDCTL=y, OR + * CONFIG_BOARDCTL=y, OR * CONFIG_BOARD_INITIALIZE=y && CONFIG_BOARD_INITTHREAD=y */ diff --git a/boards/px4/fmu-v5x/src/can.c b/boards/px4/fmu-v5x/src/can.c index a383a56edd..bb777d8f04 100644 --- a/boards/px4/fmu-v5x/src/can.c +++ b/boards/px4/fmu-v5x/src/can.c @@ -65,7 +65,7 @@ uint16_t board_get_can_interfaces(void) #include #include "chip.h" -#include "arm_arch.h" +#include "arm_internal.h" #include "chip.h" #include "stm32_can.h" diff --git a/boards/px4/fmu-v5x/src/usb.c b/boards/px4/fmu-v5x/src/usb.c index 8fbe73df91..28965c442d 100644 --- a/boards/px4/fmu-v5x/src/usb.c +++ b/boards/px4/fmu-v5x/src/usb.c @@ -51,7 +51,7 @@ #include #include -#include +#include #include #include #include diff --git a/boards/px4/fmu-v6c/extras/px4_fmu-v6c_bootloader.bin b/boards/px4/fmu-v6c/extras/px4_fmu-v6c_bootloader.bin index c0e76324faba852030cb6fcb0850134c200942fd..377438fbaab6f413685d1925e33c74e61e15bea7 100755 GIT binary patch delta 17727 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 xB`0w8FnfMvEEN+XoBP#`-*8WYip6q@8G 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 delta 17518 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 diff --git a/boards/px4/fmu-v6c/extras/px4_io-v2_default.bin b/boards/px4/fmu-v6c/extras/px4_io-v2_default.bin index 51403914013d2f9cecc849dfda750db977a95303..957f0f13a12e8eb8a7979955f29ad98d82433933 100755 GIT binary patch delta 17038 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 delta 16986 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 diff --git a/boards/px4/fmu-v6c/nuttx-config/bootloader/defconfig b/boards/px4/fmu-v6c/nuttx-config/bootloader/defconfig index b1a80c8587..cf350412a6 100644 --- a/boards/px4/fmu-v6c/nuttx-config/bootloader/defconfig +++ b/boards/px4/fmu-v6c/nuttx-config/bootloader/defconfig @@ -7,6 +7,7 @@ # # CONFIG_DEV_CONSOLE is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_SPI_EXCHANGE is not set # CONFIG_STM32H7_SYSCFG is not set CONFIG_ARCH="arm" @@ -23,10 +24,12 @@ CONFIG_ARMV7M_ICACHE=y CONFIG_ARMV7M_MEMCPY=y CONFIG_ARMV7M_USEBASEPRI=y CONFIG_BOARDCTL_RESET=y +CONFIG_BOARDCTL=y CONFIG_BOARD_INITTHREAD_PRIORITY=254 CONFIG_BOARD_LATE_INITIALIZE=y CONFIG_BOARD_LOOPSPERMSEC=95150 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_C99_BOOL8=y CONFIG_CDCACM=y CONFIG_CDCACM_IFLOWCONTROL=y @@ -40,6 +43,25 @@ CONFIG_CLOCK_MONOTONIC=y CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_SYMBOLS=y CONFIG_DEFAULT_SMALL=y +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set +# CONFIG_NSH_DISABLE_FREE is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_KILL is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MODCMDS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PRINTF is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_DISABLE_MQUEUE=y CONFIG_DISABLE_PTHREAD=y CONFIG_EXPERIMENTAL=y @@ -51,7 +73,6 @@ CONFIG_IDLETHREAD_STACKSIZE=750 CONFIG_LIBC_FLOATINGPOINT=y CONFIG_LIBC_LONG_LONG=y CONFIG_LIBC_STRERROR=y -CONFIG_LIB_BOARDCTL=y CONFIG_MEMSET_64BIT=y CONFIG_MEMSET_OPTSPEED=y CONFIG_PREALLOC_TIMERS=50 @@ -92,5 +113,5 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="bootloader_main" +CONFIG_INIT_STACKSIZE=2944 +CONFIG_INIT_ENTRYPOINT="bootloader_main" diff --git a/boards/px4/fmu-v6c/nuttx-config/nsh/defconfig b/boards/px4/fmu-v6c/nuttx-config/nsh/defconfig index 886d41030c..93cb8f59de 100644 --- a/boards/px4/fmu-v6c/nuttx-config/nsh/defconfig +++ b/boards/px4/fmu-v6c/nuttx-config/nsh/defconfig @@ -7,21 +7,51 @@ # # CONFIG_DISABLE_ENVIRON is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_MMCSD_HAVE_CARDDETECT is not set # CONFIG_MMCSD_HAVE_WRITEPROTECT is not set # CONFIG_MMCSD_MMCSUPPORT is not set # CONFIG_MMCSD_SPI is not set # CONFIG_NSH_DISABLEBG is not set # CONFIG_NSH_DISABLESCRIPT is not set +# CONFIG_NSH_DISABLE_CAT is not set +# CONFIG_NSH_DISABLE_CD is not set +# CONFIG_NSH_DISABLE_CP is not set +# CONFIG_NSH_DISABLE_DATE is not set # CONFIG_NSH_DISABLE_DF is not set +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set # CONFIG_NSH_DISABLE_EXEC is not set # CONFIG_NSH_DISABLE_EXIT is not set +# CONFIG_NSH_DISABLE_EXPORT is not set +# CONFIG_NSH_DISABLE_FREE is not set # CONFIG_NSH_DISABLE_GET is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_IFCONFIG is not set +# CONFIG_NSH_DISABLE_IFUPDOWN is not set # CONFIG_NSH_DISABLE_ITEF is not set +# CONFIG_NSH_DISABLE_KILL is not set # CONFIG_NSH_DISABLE_LOOPS is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set # CONFIG_NSH_DISABLE_MKFATFS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PS is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE is not set +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_RM is not set +# CONFIG_NSH_DISABLE_RMDIR is not set # CONFIG_NSH_DISABLE_SEMICOLON is not set +# CONFIG_NSH_DISABLE_SET is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_TELNETD is not set +# CONFIG_NSH_DISABLE_TEST is not set # CONFIG_NSH_DISABLE_TIME is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_ARCH="arm" CONFIG_ARCH_BOARD_CUSTOM=y CONFIG_ARCH_BOARD_CUSTOM_DIR="../../../../boards/px4/fmu-v6c/nuttx-config" @@ -43,8 +73,8 @@ CONFIG_BOARDCTL_RESET=y CONFIG_BOARD_CRASHDUMP=y CONFIG_BOARD_LOOPSPERMSEC=95751 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y -CONFIG_C99_BOOL8=y CONFIG_CDCACM=y CONFIG_CDCACM_IFLOWCONTROL=y CONFIG_CDCACM_PRODUCTID=0x0038 @@ -53,7 +83,6 @@ CONFIG_CDCACM_RXBUFSIZE=600 CONFIG_CDCACM_TXBUFSIZE=12000 CONFIG_CDCACM_VENDORID=0x3185 CONFIG_CDCACM_VENDORSTR="Auterion" -CONFIG_CLOCK_MONOTONIC=y CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_HARDFAULT_ALERT=y CONFIG_DEBUG_MEMFAULT=y @@ -84,10 +113,13 @@ CONFIG_HAVE_CXXINITIALIZE=y CONFIG_I2C=y CONFIG_I2C_RESET=y CONFIG_IDLETHREAD_STACKSIZE=750 +CONFIG_INIT_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2944 CONFIG_IOB_NBUFFERS=24 CONFIG_IOB_NCHAINS=24 CONFIG_LIBC_FLOATINGPOINT=y CONFIG_LIBC_LONG_LONG=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_LIBC_STRERROR=y CONFIG_MEMSET_64BIT=y CONFIG_MEMSET_OPTSPEED=y @@ -128,17 +160,16 @@ CONFIG_RAW_BINARY=y CONFIG_READLINE_CMD_HISTORY=y CONFIG_READLINE_TABCOMPLETION=y CONFIG_RTC_DATETIME=y -CONFIG_SCHED_ATEXIT=y CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 CONFIG_SCHED_WAITPID=y -CONFIG_SDCLONE_DISABLE=y CONFIG_SEM_PREALLOCHOLDERS=32 CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y CONFIG_SERIAL_TERMIOS=y @@ -181,7 +212,6 @@ CONFIG_STM32H7_SPI1_DMA_BUFFER=1024 CONFIG_STM32H7_SPI2=y CONFIG_STM32H7_SPI2_DMA=y CONFIG_STM32H7_SPI2_DMA_BUFFER=4096 -CONFIG_STM32H7_SPI_DMA=y CONFIG_STM32H7_TIM12=y CONFIG_STM32H7_TIM1=y CONFIG_STM32H7_TIM4=y @@ -234,7 +264,5 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="nsh_main" CONFIG_WATCHDOG=y CONFIG_WQUEUE_NOTIFIER=y diff --git a/boards/px4/fmu-v6c/src/board_config.h b/boards/px4/fmu-v6c/src/board_config.h index 9e74b5e5f3..3fc91cf2c8 100644 --- a/boards/px4/fmu-v6c/src/board_config.h +++ b/boards/px4/fmu-v6c/src/board_config.h @@ -214,7 +214,7 @@ /* SD card bringup does not work if performed on the IDLE thread because it * will cause waiting. Use either: * - * CONFIG_LIB_BOARDCTL=y, OR + * CONFIG_BOARDCTL=y, OR * CONFIG_BOARD_INITIALIZE=y && CONFIG_BOARD_INITTHREAD=y */ diff --git a/boards/px4/fmu-v6c/src/can.c b/boards/px4/fmu-v6c/src/can.c index 3834074f37..c71b2e8793 100644 --- a/boards/px4/fmu-v6c/src/can.c +++ b/boards/px4/fmu-v6c/src/can.c @@ -46,7 +46,7 @@ #include #include "chip.h" -#include "arm_arch.h" +#include "arm_internal.h" #include "chip.h" #include "stm32_can.h" diff --git a/boards/px4/fmu-v6c/src/usb.c b/boards/px4/fmu-v6c/src/usb.c index 9d5915c0e6..6d42476b71 100644 --- a/boards/px4/fmu-v6c/src/usb.c +++ b/boards/px4/fmu-v6c/src/usb.c @@ -51,7 +51,7 @@ #include #include -#include +#include #include #include #include diff --git a/boards/px4/fmu-v6u/extras/px4_fmu-v6u_bootloader.bin b/boards/px4/fmu-v6u/extras/px4_fmu-v6u_bootloader.bin index f0ac3b98743a9c04e0cc720ca19ac5548c663bd2..b23346214976a05a9cc44f75900cfe0e635fc4fa 100755 GIT binary patch delta 17353 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 delta 16669 zcmZvD349bq_Hb2q&!lsafdrTwggKHhIe^IlgiD4=(g_(b;ZQ+P2Lf)#phP)@)nx_( z%HaW&2ZtySMHE&u32_M;lT}<#))~}YAo4c~I)rd^xVk4ZnfYE#aM$nuee?U(RCje% zb=9kPzt^1}X6Ltz`qEI8md?5cY+<(Rc(Rkpa*Vv9*)p;#P*E)`6@F4G-AL;5>4iQpxPm@gQY9`frfuB~ ze$%=ek(=sn4BS*(+R30azIk{#(hs*0YwmZcw&CT&r){;4{tih)eb;UzMAa2Z99wrI zVN){M8!TFug9%AqVM6VvrbTVX?dTa(=hteD|T`j~4BSgI&Nku-hkSQSP zW4}%uVOLsF+XaSfQU9yyqX-^H@9#y1xM{2oNw1M_`P|40F#h>S#8;EZ$a_fMfFXB1 ztH)(XD)6=ML;Tl|;cQKFjKI5@>?n6~%l8I;8In>Jq|>xUE#quScAvMuEkRkd?6&s; z)AVuVSjKVKkKqlk!$04Qq}~47QY1wlLprGSynv;d$2sX-Yv?jA!_uDPs4X&vLA9l! z%d_vsMwB*tMt*I@&7)7uvZ-#pxw@`-W`$lb36tzk+f(cd?04J#`#&Rm-T%)@uLoJ9 z)=)mp;t&q6Dz_b3_gNR0uQnd8W2Ik$rMB@f$wtLK^)qF0?x$U711nALv)b@GqA<+P z7^hCpuf@`s-g8|D!;@alXtWzeoLzZNC$=M2DhI%gw^iH@Jv~&=+I3>0xXoJfqd`Pz zvG!y!qwFo&$OjDSz~^!T1pO% zutmF&^prmXYJh|<9qI_l;!g{=e;LBkU;Ught}MS6NwfSaX+jW5#}yTf2DDL-^ofEc zZy?|`iu2Li-lR9ZF&X;uq==-&BYAlPQRgZ$@b$d3Z==tGHRXXt5r>#KFe?t>^@% zK?8`^vkUQQ`w?%T9cd@DD0rvS|NN)Zm$8V?+)oa~X5eMy%UGj&{{Y0l#*yo>qheo! zm(oSjh3qFI2PBWp2W$+K~Yk@@3wcD6wTcr`Z$|I?bsx!gzZAEFkCpNnD!y*gpW%t?l1{z ziB%(s>*Z1lJDzmS5-6f#zzQxkuS2V+*W>-0TIfus&O9NiM~i8j4@O@*d$@*e$_@9g z?@jJJEKU%J0NfDa(uX$3XlywZw6 zjg!Sg*4U0hkrI$qu})J7$TY)qyYU$SI;h>yyI^#li595$nX0O6&sutF7)vq#2 zpRx;AWeV{{Tu(7mUk4-syLf9AmfC$G`DoBEO$U2C1Jqo z^iB{_4;KSey>=FwU`K|b0xzz&#&ygSkZw@L1d-2Wx=%gP(7h-wx?`@uNZ*DWUnr<@ zy|)BtEl0`g#CgBLB-otmi#4KdeGJ!x{tG7N>&u0l&mOu71&00 z$rUIwp>30}Q-}~y+F)U-pf#XdZ`QI>a=;=y3#^Kj1_XqZk`HqPrl3$zcW=P>UMZ(n zEmU0E5Q$7hZqywa^-d2T*(7k2+ZD9W0=vEC=LA>rQ~?)M!rgEFImKs6k~~OPu5dA* zD~lJhVF*~Ru7JqTE2N3vv^aDj>bjmv& zh>$d-XdPI(?7Pso0nSF#TG*@s%F_V?{nP)wvRIFGF!jJ$iq33nso%P!nw40V$>u!+ zg+m|(ViauNWWDCWI>n0tC0QxDSMgHP;{;^jn=dr7Hoc$~k@T%!2Uz}sLZ4}xIbp8L zDe8b*?pO9XL`J$E)CsK@H5Nv?@-bb63MlrOT1E;6Iib*1pkpLoaG%}Oq7y=LXNay} z)rk#A&w?6&bVuxktqr~yU7d(@Nlt9I|MA+=!sZR4N+@tut-;yc89cG-ab!FU{pi+~ z__!V&QcD+mDLyR;0;z}O=Fn9yT^X#)td{-_kLZGs^udS!ZT;pyt%pBEMs>NmEK$Ju z2eUr`F~jumjN%E&=^z0q=cA0U7UrvLf~BEO@@V`}A*ZCih5=H%XFLnF6xqwbkTJ_>1OAVJWbIofIufWj{<}Tl1k6N3#d6>Ad0Z1vZ zbSY&ThXNOhI1BqyT1!a&I6x{Bw9Ggkc_hIQ^+o{eehQBxuOy@z7F4fr8P;sEsy%E^ z0yeks0LLd4u2UzZi9KFcdP*VxO32_?X_B&IusNv?#L4AIly(6MJzShdbpTd6t&sA; zNg^wml*$&aXO4N$S)_N$%8(F{hcB49bkSB9B*HZ?n zK%HWDWdp{aUs59)A4bOd#Yj38qMQn4G?BO=!*LZEJ!E(SlDdM5Yfc#>y&uxG%!c}K zh%6eC#wXw_jf}K1L|zz@GHy!QZMdoHA8-1>qXE=C5kRJTH#V}%Pr?Ep_h+u&2Ndy? zUoBXgETX9iNzan=LyBTD@4Pi6-|Z(4E*zpu0)7W160BdV29o>Vi!_FaI5fraowt6i zDx39idfNGxuYPSr_BBuTYCik2hqnCPcM;C*cj$L%5g*Zvw#(r)Ld};^q)*!oE4I<;Zd;eB;$JCqX@%?pE0hQ~6q*6P?!R|IcwX>AY z%Iszd%)7pS-t{mqvtz1oV5?a$z{CgY7A?KUvi?#uGuX26QnYHxVt{Ut-O~}Km5}^x zpBeV}uik^++R}cFA|!7FDn(L?kJ4{Qe(pHsIear`qkQN+MbmW5V@`$HEb?0#lq%|;{7gUOe!Cw;J!k zy0zr>aa~%b}Dxu7Udh8K7D@}rSOfDS9 zCxQ2^vZo#BH@%n2E7a4jVnz(Td&Ekepe>+1T!FWshXr~h-05Lap%I$9M=S@H9PY6% z+`|by*gHL(FbDsK9xu`!4v*6M4Y0=Vq5KHtcVew=u7sh#fqq99SE=Ie)(HvWiB|-U zSQSq#;2a%?r!i8^NB!3$yOg5A!npF`!0}Eg$T>hbt?=8}Gr;&!>qVt*YRh<`4AAB; z3MVXS8S)|0-S8%(?3bzu3i0#$E=^5xJ4F~Mbg`mmMt z1mznb7Ykd{#9Q9bWer%RL;V()2Htee-`NsZ)~`zZ`$IBd&=9@4j1ue@eyZS@TC@Ps zC?D?vcDz#48iqKzm8xg9_(4!bdXAyC{@OxcbwA-$zqq6gO}Jr(olHz zc$3A@|J)=k!;^(!%8^xtt&FtL-|M{qR+!4Reyyf?wvwme09BUyL9nc%Ruz55*pLBi zRs$H&Z8zckG|kZ>v$n~VvX(^Y?sAN49yB8dETe(&s`tR^W*f|{ad3Ue54u=7IjL~+wjE`Vh?KjwXK0AthtsBOyKG1YYcN{}a4jRTfR>Lr0p;ES=lQN-< z@M~a_ppO{aO>i%u zuxUuyv)mjZ44Q$rj}q0=7zOVFtq)LcRB!+t>ry+UDGFC~p>et^db+x21=5STpgYDZ z+2V?Pqn&M#S~JBJxnWfpG`3?c|26;UOV(L=H&=*zzGr7DT=rJ0Md3#KJXA%D73yj@ zVW1E(CS8h9ZEeXEcpX^o!F^TxYIeFht1^WpRY+Rt%c$RqbVWCvv+L^$TZ?KATd%p1 zv_q+{LD`o)7rdaYm_hfrOx(s)$6}vOTmdX~v5#&H8KS50&C%dnaT=q_@kA>)hy0#M z@Cdwr136W|TadKXPr-tvPl1H5ef-z|p=+j2A_Tv}X3!o1g;398)y$T7kYSeVSB?9w zU)5Dro#+~Xkd)-R0E(~)kZfk}`I<$Jn)u?XKN+iy5@t^*iW!9X@)JtHyi6Jb_ph0e z@kCc;zGSTbQ(-GTbcTw>LTwwB2=v9Z&C!5-D(R_EnJe;c4uG92X1YT1%n${3zP%Pe z-FmUsvLY8r3Q!B(Bpnx4l52D>NB!0g4*!6qb0CY1VUW>R4#=;n(zI%hS|5uMP*#B_ zrF;;WW~rWJTcViQViZ6Nv1v=^Jj}ogJ<0|%dDtd?_pnFVWRCw+yzTGM;xyVo-E}Vi zJG9Z>A(?M;D~fLF!|NYjzwDET-AX{m{E44Z-VTjU!}>o#=O@~sk#?pi{`*QtW*~kr zsJ@d&YDobh#;JL&F#!eto6O8iELasnhL;pO8W=XIfR(otHh)&5o|YxN46Q-=0!TP*3%%}> zSA-e+x-9Z~rUjeGPnm-mZ;;&1G!Iq>J0Anc_;t%da-QG5j0db7MJ8sA$0cNC)@*!} ze3_Lz;qATykHw2dDVB}5)Bf*=`yYY+S{KMaPzVoxNZqKY3|TG~Gjkoy(bGgQw=zN` zHCvmoK9CQlHlNeu;lTOx8nC@X2b#*W-(+whxi&H#r<1{>986|k(<`H{vrM;-Y{_%t zcS&^qJIsby@=)5N|;mCpt8s>A?x7Fnw#@By+-mAOyuMR^5i9S zvh|bGjH`VwmIdXN;r}OmFI0r&?V%UI0eJHX1X|%;pgp`uzMQ-Z7FTuG2)pMpp8G?CjdL|zo#fnmH6tGKR*BZ&T|FW`4CVRkaUmoZlbCuj$J77=|(Az zHArzxg@j7oNw`>3c%lo(Cyo-PD*XI|;*<8B_5(dUnqlv>>jbO9FW4jgB2FxtZAa1^ z(5xxSAZZ2}KGlf-Ns6Xs&N>`23AL@%`2dpUIAwc5`AJYHsPB@K-t0vtUk4{;`6|JR z=cIr5+Kbxbz#%EU;$uMwa_4C4vp!_H)q!=tdO6A8LcX7RKW-qStz!nEqGE-cGzT0{ zUui2vWQy+~tE{>NWMzu(w^}oXmBQnWfijp16pkg~T^|ct-^MMI1;zom^E+~9XxoD7(wcLKcSST`Z#S~d!6BEUHaF2!L6T$I4M4>yMa6cr zAbk{)pZSLYYQX|HU(SO^%Dc8oGrlQ|%ZA&`d(pZmSS&3qJ`9t9{MKN#YA zo`(8rM8djPI2nE7QRRh@`t9DpuRttXRnVCD{&( zc~8WIA42kX!JO)V>%Hou)(8&;)-S;$)tS|clc*Q0yZSY2hG%SYo}d>*a5$BMPbT*4 z%Zk-pBr)tps6+BYK~7w3r6WHJUhs0oW0T@sXw;qvA6|IW`n~&b_5CUDE=*8x zc2ezaFG{-zW&rQt{^>P0KMQ{KSm000A-n@gBf>`c)?lW9cQc1*R7E9F_Ph&x))Ao2 zV|_d53$L|Nq=*%M7OC^?WFI!O?s_<#dhk<*WNnZYxopX;fMywKW9`w^RW6reF-Mfg z-*h@6Yzw5OU+xFK9699!XNMiR>8?QYs48+ zS@uZ6m#2HY*3^Ltp2#S83d*L+Fc~oI3CAR0#qHI#rNf(%4!;B5T(AX?v@tuWLju$& zKjn5*1DFTxy&alXR{AH{?zN@;9;4?Qh=9_!gX8*m4~heGz3zBVdK~YzrGN${&V-S8 z%o$;4Y0l5v6})e23Vq6u9yb~hWw=W?CLAME%VoTTjJGX`dv9Ho^b?PmYh7MLA%9J7^O>J@dmdi{ulE(S>Dk;Qodnh8s%-=+FSCEC%hw~q< zA5;9b!0aNMrl$?mHej;IhIeZ(v2jVBctK5Cr=N_Tdp7%0_wwBWOJc~&GsdvbS`U$v zGloYG(~ZeWI<4~1Y2_JXMxeGyZz8?`N+A@~9t!PMhG}#{Zf0s5^f4R3v+_Ljoq6{- zoI*C=ogLfx8{SPfJga0&TMYU8-BTj9QS*RIo>#OavSKoRm6TR29DURo+oR>9j8-`R zY~Q|ao`0x!ladVQds5+?NIK}umT=UulHt8udY#t~kbhSUo3hs#^RBgckdl~V&ay}^ zIJ0iHmuE?uDB34U;^QpRUT2bo<5cb@tMmE?PC4mDV`*`Hw<`Lf-mU)4B)_sGb)5U% zo@MOW#>lJ*rz5iqPyck0m8NElgWu3`<4ok0$_b9)Zo0G@uT9cKCrg?*?6%!>+BC+? zUhSQ`c2Ehp8!vWoR2!0 z{Eo(D-l^BsOwuJLZpzI^-oHWT0R08S9MRn>wxh9$JUVlVYWc6FLOF5GoPlFVXy)*k ziNBhJ*l@rDwGq>-4CXndsd82xo)D!hgZTVr0d4C@#su#vDt_Ji;<;JEd;#s81_=90 z2=$m_<_VPo+ObQBG9V+b;ICQfUm^0*>^V`Iw-8?j2m8gFBxz2nL$4qc_aks8>R$$G zjmqiuP*yQN;`R?XtW6yO0WO`r;$;NTD4Mre;|1)|CTUtzR^vRBbK9eM6(E&3&_^bK z6GW%bxgvq%QC8FlG`uH5{e4JIP-q){rtOTcp4dY5n_3ZqV!!oqsaLw!QXay(}kPi=!dx_C_nIJ=+3&#K;qRmK+jH4 zI;#!U+aTSdzWODlNRtdq^+cB%B>%jm4N8#?bO0$9mdKu^Tn>7BX{`aB^PE>Jba*Kn zr`lOaK1t5pGrYVA{FnCzFj%J{v$hTCy1h(wo~t1Y83tes?xtguu`rp~1C;S04%b^h z>=(u}!Ui*vzWfkuZp*!vfh$4IJPm0Unr42w-3~4avi;sJ%M_qI4MP8rA{z5IB9lR&(l~qNz+1IGzc*~2W1N>xo@=NJ0;Ip55kqswj!*i zp0=MAQC0w$CT*jG?PlNaOu?F?)jK`u%g56G2io zKb2V&B;tGnb8nD5H-A!Ydaw@Sey1R0stab=_LNNVWY~6ECwYESUTUbg>8>rg6dgSe z))5_~cdQgkeDi1X=lZ}GEp_&hISa;C)cazm=|F{f&lh7uE-fXlyyzK4daamcXQcgr z{i+TVBz#aED=4$a3tK0FP4W_~bpfn>8`P^|?I7o->qIP#AZHfn9jjp!OKHzcHONSt z&aM@M^1pr95Ze=hb)cW__hHjj5Ec>WikFV3^UygNTffP|NT0RP_EcMKGcxgQT47TI zD^2kwPgBEo${``4ut__OZll;|Zepcz;G8WA`*bGwSbJ)G$DkS2LN;ux#>ead1x7I5 zJhr?@GP4W`%IU#Js7eaRwh+`J9@t|oY;99Z#m%1!R5Lofv_1{00o^Fw6Nzxfd>kyXBS(8@^pVV(nz_1bYJkgH+nVBR(Wjn zA5w{U_k0%(D|UIOiO$tnGW&n_+C(jY&jtR|3!oxtxehPk9(qZwMU1q!m%RSa-OS2f za`hoAbF!D@*-f~f%(uT7m4r4ZOanxNedMOSoFAg1Uac>EL|9mkhmq|IZE40ei`EoL zS~lMjUsUzD&4u6T1n|Gmhk;<2AL;dPz8#B(@F~0nhCbjUsf#ky`3o88NgpX+q%$=5 z%Amc<_sjFf7s`Y|jmeF>t*LGKYgq7>4J%@#eLnKsqSQ(G3ss$C)~F;-^@A6UyzHTq zJ>x5+)?i(JHOjv29%di2@CGPm)NDdMI-U~-fCn7H)Cw82_%1w~%v_wve4~)1i_@aD zkvHHF{#?sQACWza^<{4YX3%kUqBATa9;gn;?k{#$2Rh9)d+6A!Gsaw~p zgy=OfLbfZqx(Hwuy-;QR+D?sN8cFARv=KphJP-uE&jF84{+;U~a6Qt8421&MlcXL9 zrg8?{nZck4%KAHfQlL+=59tf(w)|8~F_P@?8(~QmH#?qSrh(Zx6-y6%ytE%_1u7mU z1nXB%gcu!6i|T9p{r$Pez{3cFhJ)u>!KypYwW#XOb3Hr^>6{)4iwq<6%`o;&htd4BA<$7fP>((Nu zBcM+5KzMB|Q`<^19{!|ydgw+tB>5_EO6zsaGxMcAiCaO13{5)(YSEAcZ{oE%(kBwYwX7AZhH+- z(qJT#`G3lEjpHo5@rXbI%G<%H^2Xa5HnSV{}^r|Hy&!2v!SGnO6-(X&ZHSh_!i z!>5L&d%{;a&{heCX9~i43P>zXYolON0g$+!Az(iOB?pZ_?P|!QFxJ97E8PeZwV2BM zsgHUI$s{o~auZnIA^EM)NkYVN;2Qc`EOFcg8r@;*={A&JU!xN`0N!((jw)tn94NVm zN|N05HTWH!Fdy0}h}s)bcJ|prB^TZ2pU2}C)g(8zHM-|yH{vnpHy-unnfqrto2^3Ex?YOlRCf!QT>+V}f_Na>4vffK4@KhL>avh4Y}+8LK-Y+&{1;l{?Aw zjR%e5+afZWyipl0>bXBu{TMz#hCX79-S;s#i}g-0&-Q$*ke;MOVt+)<aGIbI0RBrq4%qJaIR8cz%Au1%6Mm{3-kziCa;Gk2cL-QGpqz zm%O>sfWIQ2uhiq8NY~1B4&tYBBPbV#A|P0#6LN%r{BYkvZ>2B?t|t2lg*q$gU6op>wDL24_3|^$L;2ZzZ2_ai*J35! zj`M#GH;zs5R`OO z+kz+8uik4_oizh!e(^)_1x0n<3r_-ahhOsIF|AhbcMsd&u0=W}>`M&D^2gL<*ti-` zjyPo(1M=q(!K2JnOXpceieP3cMl`o=jumxt z31-OUMbcw^CNOQ5Nl~g^>Jw4PUJ1~LI%B5Mw{Eq>z%i}Xha(w6j9dTcH$i4~Viefdro#f}baYpB|^Cy3@V{GVAGC%*bAH@agp!lgz)o8b#aZ0ye?3ul|zc zmzb@NKeLv7U}<;;I(RVJ^oBF=y$h^j;mLK1!|EMRrHB81E9{ z={2t@L*R~tWLKz0ND}xl>{kb@B?=Fzi(E>)aLWT>33@c#&qV%HY2c~+5ILkE$}P?;(F%o9%c8vQ;likYSJ__9JFnRgG}xKC>#VRteRMzA{Ml$ccKp=bP-lgrDy4=IF`+h_heq; z*;#^Wmr2+MJe(6Qokhk%;V|Hn=z}q)U)=%uRpl2ieSXy&khd!xumx2b*G>5Y_ph*B z`Ah?~ERi%ds25lv3p{Y>6^K}n?T+}E_5hd4oMj-k_g#=QI8vDny~OPhFh_?{>RV?3Kco3O^MrV>qsWtnCF|iRF4M%)@r$!t)E? zR4mRDT`FUYaRV6eZ@5tUBuMn_&)NM_;imrNElcD4YUZUJ^0zv@!vk9x)WN=schS(e z4m<>r9qb;Ic6KxMf?FlbeA>k=IlC?-{|oXmD0a|HJMf6ZIIwwOku_jdgyhfRX(2r0 zgi0{%4+d1JTu1$8AQl+e0<65SRRvhvKlW7^8wF!Sa#=pSaDUq)B7v?1y1p5nhN@d% zz%+G0VSdnaVjxZQ{N@gIG`M3)fNa^2#BBVC9Nb`F;`+!}a3=@JZyPEd|AZ`0Bs~xI zJ5wGH9?y6?2;DZS7&8#@-zg%O&RkncBerpnCY~&ELX$65hq9v1C9P%G?zXB=MNRX` zlY@{yrK5QjYRHuH$zy_yQRiX}2UZzGvg(GnepOF6t%T-*7d98cEc07fku~7N^xdn# z@}Cxv{|qw8B-BId21>sLoyk8p>Kxkk!E29{C}-{wzf({P@ir{&+J@wJ^H0VneS}vP9OFVvt$1ABL#= z?|llJ<7_l53>1{`Vao?3Yi5{!0tt1RK*Rci7x0dp2fif5O!=X$t~_a1+j_llQ+Y>PMQIKhc%6 zbiK9LgA7_BX>qSSQt2OobiajP33^Z4b9Y|(*?(U7>>plP3z!=tDDt2HP1z*BJe!ai z6##kPigIq8!;>gN?hK_hUh?KRuX@KdLsGmjq+@vI(9?>1kqqB7G}0%Z17ug^-^i3r z`Hl-pf36y8vsmLGr6O*6I(XbevOO3J%ZT^3A(7Ea&)83F^jIzG7~fc233kC3EQ zSZIM~6VF5b2Za_rZxx(jp{s5!3;B37#kaPUrcm~uZ*B7c0diwDhI3=clS5*yKDi5` z+*ca+xz?|ZvC+IBzkDDR{(=EyTOMHV8lT=l6MtDuZ3jh8{+K=u&)IrmALME;*jzBA z**|<5E_lp7K>SRJai+GIfaMGgk%ODZ;xuw@v+n#V z38dknY+_gcm@c3UBM6Q?z~0e0`jvxUz8o|{uFY<7ofuWT+g>CJ_I7b+X*V3!O)_)K zMCL)raNS}`KIJs}`7zx5BKzzFWqq2(4hxYMB6tMxwl^?(Hcx4-u#Wq}46hiBF=9(39aTlp+V zzSx?QSr?!P7p1-i|E&6Qm={a|44_!>)@INqzuG;K2KT0s*yj=*JAG#ffHJv`@^|Kh(-;g>d*#GK|%-4CHC3oQ0ZU^1;8@{4{Nz*Szn4+J*X zt&Y-5XzE#oGcQa+*=6FExVo?r6xcZcB~nP$7oAQsvJ zv6q>iomQu`(K#%M6+B(cC!Z*M`$y2uxW5v=QDSsEt#5X-Tr886HgWVt(-A)=8Mcee155Y-*2I@`qz+HM~R zZp;|nSN7E6T_qXz>@)9lv+VxF`k4?ow2PpRBMS>5+#0)IPW3tv!aH80cwJj1(jc|LUPTuJ>D#C%o-W4xq1Pt-!&?K6E>x6XRAXQ4eMng3 zrAxfgn;8b>N4`G{VN$hSs| ztetHsv-2Q+$TKetVorWUcE3@kqFLOqqe-a3(~Cf0~kpNO70NM9#@0%Eq#?wLcs%v0GQB4}6Hn1wWe zNaKgmwNxC%zR({ztPA(0F-3rnjrOSn2%)xVFQoQ&fCvf%)zPtWU_Ie&XvelDx`*=$ zIsRgXZjIj%4r?IG(=CHLQTkhrf2M(RMf=3QXc!Y5{v zb*9m1K6nCexF>+_O}$80-AXG1to$L@M9~Hj>lVc#S(r#@p;jD{T*r{~zM_M+n_dj9 z@U;c>zznay(tq!e_Q7M!-1gqMqagEcni<|dJntCj?&u_NGA;Vb`$vom$?t%N<9Cc3 zaP-OMh`-`@?oqfJ^m0&M0xF!kBMUxM!#hLrOaBqK&A#6yJWZRdwXh8iiWyWdj1^j3 znid{xQ}|X@EQA~dEvEY8R%M@Pf=?|VD;UxVZk+XbIr!)dNe=KuQbM4g-8~4#P#p-B zTz6b%UKmz<^swB5QMtLA;kgA+XATsRH2xSXetN@c)PngwP|O8~;&2b+5EEV2o6bdy z{f5^7b+4BduX+cGEO>R@j8Srfb1>p8b)&oIL~o_p$%_UywQe z2gvlt=rx8|Y9Z+T@+2^@nRkNnGoaZ)+Qv)K>Wzn+b<$!ft}b=N52@L`ifs(;BQ+0QZE~SB>=p-szhhBE3!9GtW)F* zvhH-`^Y6ko(Mo^3e35s!Rdxp15}l1^fJ?;AU_5 zf43j&Zp-7qzfmCGmh*#Iw%4pv!8W9=Il&Pig$wMrr4)|sBp-W#M*2kCmWhThz2SFVKNTD=8WZ?Mag+T@4yPFE|h)=wmuAt6J3!3Y^ z*fV?!@$4C%Xa^j50tySt*W4o3rjr~NE%2A4B=WUk>A$re1y>6dx76&%Ww+&X5R;?# zkh8C6%lPKo^7q8{TB7Om|FkpVer5rVbpp=Ht_t{3d4ko;Z@oO_llU2O{*AYIlOd$kp%LOeXppFfG+htS-Ahc@YN;Kx_|T} zs(NCC5LH7}f2ileJ=`LyS<~nAvtW9^;Z9xsSoI2$e_-Ui(B)6)^OK2?{ClTn@6>8| z;DYuDxTiG__wPd;b?12`+|zN!uG5Bw@#wS&-nE4VmUp>*;kS;@>hM zz72{G%0g&UL0ck}*gIv{NJx$x1z}4l4~$0qOj<*MX;BG0+m(m-B50osWguL~L!DTF z_Bz8NGPPs?m?F zT)Gs7_m73d*wu(X59RlJ2<3&Zhpj<8EwnxT_j>v0^yQ@P?a7cvOWNN~P$^eJ4orT2 zTTi67`J@~?H>Mx_2+d_s6iWL7JVh`*4Y~{_xreex6$27Fp#h_@bmBX|PI@%qp97vx RfvZZ;$DTV#-aC}{e*n5;H7)=E diff --git a/boards/px4/fmu-v6u/nuttx-config/bootloader/defconfig b/boards/px4/fmu-v6u/nuttx-config/bootloader/defconfig index 17da3161c3..33fd9247f4 100644 --- a/boards/px4/fmu-v6u/nuttx-config/bootloader/defconfig +++ b/boards/px4/fmu-v6u/nuttx-config/bootloader/defconfig @@ -7,6 +7,7 @@ # # CONFIG_DEV_CONSOLE is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_SPI_EXCHANGE is not set # CONFIG_STM32H7_SYSCFG is not set CONFIG_ARCH="arm" @@ -23,10 +24,12 @@ CONFIG_ARMV7M_ICACHE=y CONFIG_ARMV7M_MEMCPY=y CONFIG_ARMV7M_USEBASEPRI=y CONFIG_BOARDCTL_RESET=y +CONFIG_BOARDCTL=y CONFIG_BOARD_INITTHREAD_PRIORITY=254 CONFIG_BOARD_LATE_INITIALIZE=y CONFIG_BOARD_LOOPSPERMSEC=95150 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_C99_BOOL8=y CONFIG_CDCACM=y CONFIG_CDCACM_IFLOWCONTROL=y @@ -40,6 +43,25 @@ CONFIG_CLOCK_MONOTONIC=y CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_SYMBOLS=y CONFIG_DEFAULT_SMALL=y +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set +# CONFIG_NSH_DISABLE_FREE is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_KILL is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MODCMDS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PRINTF is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_DISABLE_MQUEUE=y CONFIG_DISABLE_PTHREAD=y CONFIG_EXPERIMENTAL=y @@ -51,7 +73,6 @@ CONFIG_IDLETHREAD_STACKSIZE=750 CONFIG_LIBC_FLOATINGPOINT=y CONFIG_LIBC_LONG_LONG=y CONFIG_LIBC_STRERROR=y -CONFIG_LIB_BOARDCTL=y CONFIG_MEMSET_64BIT=y CONFIG_MEMSET_OPTSPEED=y CONFIG_PREALLOC_TIMERS=50 @@ -89,5 +110,5 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="bootloader_main" +CONFIG_INIT_STACKSIZE=2944 +CONFIG_INIT_ENTRYPOINT="bootloader_main" diff --git a/boards/px4/fmu-v6u/nuttx-config/nsh/defconfig b/boards/px4/fmu-v6u/nuttx-config/nsh/defconfig index b1f2c9c2ed..194455054f 100644 --- a/boards/px4/fmu-v6u/nuttx-config/nsh/defconfig +++ b/boards/px4/fmu-v6u/nuttx-config/nsh/defconfig @@ -7,21 +7,51 @@ # # CONFIG_DISABLE_ENVIRON is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_MMCSD_HAVE_CARDDETECT is not set # CONFIG_MMCSD_HAVE_WRITEPROTECT is not set # CONFIG_MMCSD_MMCSUPPORT is not set # CONFIG_MMCSD_SPI is not set # CONFIG_NSH_DISABLEBG is not set # CONFIG_NSH_DISABLESCRIPT is not set +# CONFIG_NSH_DISABLE_CAT is not set +# CONFIG_NSH_DISABLE_CD is not set +# CONFIG_NSH_DISABLE_CP is not set +# CONFIG_NSH_DISABLE_DATE is not set # CONFIG_NSH_DISABLE_DF is not set +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set # CONFIG_NSH_DISABLE_EXEC is not set # CONFIG_NSH_DISABLE_EXIT is not set +# CONFIG_NSH_DISABLE_EXPORT is not set +# CONFIG_NSH_DISABLE_FREE is not set # CONFIG_NSH_DISABLE_GET is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_IFCONFIG is not set +# CONFIG_NSH_DISABLE_IFUPDOWN is not set # CONFIG_NSH_DISABLE_ITEF is not set +# CONFIG_NSH_DISABLE_KILL is not set # CONFIG_NSH_DISABLE_LOOPS is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set # CONFIG_NSH_DISABLE_MKFATFS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PS is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE is not set +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_RM is not set +# CONFIG_NSH_DISABLE_RMDIR is not set # CONFIG_NSH_DISABLE_SEMICOLON is not set +# CONFIG_NSH_DISABLE_SET is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_TELNETD is not set +# CONFIG_NSH_DISABLE_TEST is not set # CONFIG_NSH_DISABLE_TIME is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_ARCH="arm" CONFIG_ARCH_BOARD_CUSTOM=y CONFIG_ARCH_BOARD_CUSTOM_DIR="../../../../boards/px4/fmu-v6u/nuttx-config" @@ -43,8 +73,8 @@ CONFIG_BOARDCTL_RESET=y CONFIG_BOARD_CRASHDUMP=y CONFIG_BOARD_LOOPSPERMSEC=95751 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y -CONFIG_C99_BOOL8=y CONFIG_CDCACM=y CONFIG_CDCACM_IFLOWCONTROL=y CONFIG_CDCACM_PRODUCTID=0x0036 @@ -53,7 +83,6 @@ CONFIG_CDCACM_RXBUFSIZE=600 CONFIG_CDCACM_TXBUFSIZE=12000 CONFIG_CDCACM_VENDORID=0x1B8C CONFIG_CDCACM_VENDORSTR="Gumstix" -CONFIG_CLOCK_MONOTONIC=y CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_HARDFAULT_ALERT=y CONFIG_DEBUG_MEMFAULT=y @@ -84,10 +113,13 @@ CONFIG_HAVE_CXXINITIALIZE=y CONFIG_I2C=y CONFIG_I2C_RESET=y CONFIG_IDLETHREAD_STACKSIZE=750 +CONFIG_INIT_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2944 CONFIG_IOB_NBUFFERS=24 CONFIG_IOB_NCHAINS=24 CONFIG_LIBC_FLOATINGPOINT=y CONFIG_LIBC_LONG_LONG=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_LIBC_STRERROR=y CONFIG_MEMSET_64BIT=y CONFIG_MEMSET_OPTSPEED=y @@ -128,17 +160,16 @@ CONFIG_RAW_BINARY=y CONFIG_READLINE_CMD_HISTORY=y CONFIG_READLINE_TABCOMPLETION=y CONFIG_RTC_DATETIME=y -CONFIG_SCHED_ATEXIT=y CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 CONFIG_SCHED_WAITPID=y -CONFIG_SDCLONE_DISABLE=y CONFIG_SDMMC2_SDIO_PULLUP=y CONFIG_SEM_PREALLOCHOLDERS=32 CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y @@ -191,7 +222,6 @@ CONFIG_STM32H7_SPI5=y CONFIG_STM32H7_SPI6=y CONFIG_STM32H7_SPI6_DMA=y CONFIG_STM32H7_SPI6_DMA_BUFFER=1024 -CONFIG_STM32H7_SPI_DMA=y CONFIG_STM32H7_TIM12=y CONFIG_STM32H7_TIM1=y CONFIG_STM32H7_TIM4=y @@ -243,7 +273,5 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="nsh_main" CONFIG_WATCHDOG=y CONFIG_WQUEUE_NOTIFIER=y diff --git a/boards/px4/fmu-v6u/src/board_config.h b/boards/px4/fmu-v6u/src/board_config.h index 7fbdc4d7ae..d943d79333 100644 --- a/boards/px4/fmu-v6u/src/board_config.h +++ b/boards/px4/fmu-v6u/src/board_config.h @@ -310,7 +310,7 @@ /* SD card bringup does not work if performed on the IDLE thread because it * will cause waiting. Use either: * - * CONFIG_LIB_BOARDCTL=y, OR + * CONFIG_BOARDCTL=y, OR * CONFIG_BOARD_INITIALIZE=y && CONFIG_BOARD_INITTHREAD=y */ diff --git a/boards/px4/fmu-v6u/src/can.c b/boards/px4/fmu-v6u/src/can.c index 3834074f37..c71b2e8793 100644 --- a/boards/px4/fmu-v6u/src/can.c +++ b/boards/px4/fmu-v6u/src/can.c @@ -46,7 +46,7 @@ #include #include "chip.h" -#include "arm_arch.h" +#include "arm_internal.h" #include "chip.h" #include "stm32_can.h" diff --git a/boards/px4/fmu-v6u/src/usb.c b/boards/px4/fmu-v6u/src/usb.c index 9d5915c0e6..6d42476b71 100644 --- a/boards/px4/fmu-v6u/src/usb.c +++ b/boards/px4/fmu-v6u/src/usb.c @@ -51,7 +51,7 @@ #include #include -#include +#include #include #include #include diff --git a/boards/px4/fmu-v6x/extras/px4_fmu-v6x_bootloader.bin b/boards/px4/fmu-v6x/extras/px4_fmu-v6x_bootloader.bin index 56f7587ef0d6d63c0e395d3dc3021a86eabe0b3e..dced54363e6ba576888509d6a3739cb66ce57f1c 100755 GIT binary patch delta 18120 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 BU)ulx delta 17288 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 delta 16986 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 diff --git a/boards/px4/fmu-v6x/nuttx-config/bootloader/defconfig b/boards/px4/fmu-v6x/nuttx-config/bootloader/defconfig index 40e04d9178..bdc8cbd023 100644 --- a/boards/px4/fmu-v6x/nuttx-config/bootloader/defconfig +++ b/boards/px4/fmu-v6x/nuttx-config/bootloader/defconfig @@ -7,6 +7,7 @@ # # CONFIG_DEV_CONSOLE is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_SPI_EXCHANGE is not set # CONFIG_STM32H7_SYSCFG is not set CONFIG_ARCH="arm" @@ -23,10 +24,12 @@ CONFIG_ARMV7M_ICACHE=y CONFIG_ARMV7M_MEMCPY=y CONFIG_ARMV7M_USEBASEPRI=y CONFIG_BOARDCTL_RESET=y +CONFIG_BOARDCTL=y CONFIG_BOARD_INITTHREAD_PRIORITY=254 CONFIG_BOARD_LATE_INITIALIZE=y CONFIG_BOARD_LOOPSPERMSEC=95150 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_C99_BOOL8=y CONFIG_CDCACM=y CONFIG_CDCACM_IFLOWCONTROL=y @@ -40,6 +43,25 @@ CONFIG_CLOCK_MONOTONIC=y CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_SYMBOLS=y CONFIG_DEFAULT_SMALL=y +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set +# CONFIG_NSH_DISABLE_FREE is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_KILL is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MODCMDS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PRINTF is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_DISABLE_MQUEUE=y CONFIG_DISABLE_PTHREAD=y CONFIG_EXPERIMENTAL=y @@ -51,7 +73,6 @@ CONFIG_IDLETHREAD_STACKSIZE=750 CONFIG_LIBC_FLOATINGPOINT=y CONFIG_LIBC_LONG_LONG=y CONFIG_LIBC_STRERROR=y -CONFIG_LIB_BOARDCTL=y CONFIG_MEMSET_64BIT=y CONFIG_MEMSET_OPTSPEED=y CONFIG_PREALLOC_TIMERS=50 @@ -92,5 +113,5 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="bootloader_main" +CONFIG_INIT_STACKSIZE=2944 +CONFIG_INIT_ENTRYPOINT="bootloader_main" diff --git a/boards/px4/fmu-v6x/nuttx-config/nsh/defconfig b/boards/px4/fmu-v6x/nuttx-config/nsh/defconfig index 274c7617a3..30fa23a61a 100644 --- a/boards/px4/fmu-v6x/nuttx-config/nsh/defconfig +++ b/boards/px4/fmu-v6x/nuttx-config/nsh/defconfig @@ -7,6 +7,7 @@ # # CONFIG_DISABLE_ENVIRON is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_MMCSD_HAVE_CARDDETECT is not set # CONFIG_MMCSD_HAVE_WRITEPROTECT is not set # CONFIG_MMCSD_MMCSUPPORT is not set @@ -14,14 +15,44 @@ # CONFIG_NSH_DISABLEBG is not set # CONFIG_NSH_DISABLESCRIPT is not set # CONFIG_NSH_DISABLE_ARP is not set +# CONFIG_NSH_DISABLE_CAT is not set +# CONFIG_NSH_DISABLE_CD is not set +# CONFIG_NSH_DISABLE_CP is not set +# CONFIG_NSH_DISABLE_DATE is not set # CONFIG_NSH_DISABLE_DF is not set +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set # CONFIG_NSH_DISABLE_EXEC is not set +# CONFIG_NSH_DISABLE_EXPORT is not set +# CONFIG_NSH_DISABLE_FREE is not set # CONFIG_NSH_DISABLE_GET is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_IFCONFIG is not set +# CONFIG_NSH_DISABLE_IFUPDOWN is not set # CONFIG_NSH_DISABLE_ITEF is not set +# CONFIG_NSH_DISABLE_KILL is not set # CONFIG_NSH_DISABLE_LOOPS is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set # CONFIG_NSH_DISABLE_MKFATFS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_NSLOOKUP is not set +# CONFIG_NSH_DISABLE_PS is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE is not set +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_RM is not set +# CONFIG_NSH_DISABLE_RMDIR is not set # CONFIG_NSH_DISABLE_SEMICOLON is not set +# CONFIG_NSH_DISABLE_SET is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_TELNETD is not set +# CONFIG_NSH_DISABLE_TEST is not set # CONFIG_NSH_DISABLE_TIME is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_ARCH="arm" CONFIG_ARCH_BOARD_CUSTOM=y CONFIG_ARCH_BOARD_CUSTOM_DIR="../../../../boards/px4/fmu-v6x/nuttx-config" @@ -40,11 +71,11 @@ CONFIG_ARMV7M_MEMCPY=y CONFIG_ARMV7M_USEBASEPRI=y CONFIG_ARM_MPU_EARLY_RESET=y CONFIG_BOARDCTL_RESET=y +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BOARD_CRASHDUMP=y CONFIG_BOARD_LOOPSPERMSEC=95751 CONFIG_BOARD_RESET_ON_ASSERT=2 CONFIG_BUILTIN=y -CONFIG_C99_BOOL8=y CONFIG_CDCACM=y CONFIG_CDCACM_IFLOWCONTROL=y CONFIG_CDCACM_PRODUCTID=0x0035 @@ -53,7 +84,6 @@ CONFIG_CDCACM_RXBUFSIZE=600 CONFIG_CDCACM_TXBUFSIZE=12000 CONFIG_CDCACM_VENDORID=0x3185 CONFIG_CDCACM_VENDORSTR="Auterion" -CONFIG_CLOCK_MONOTONIC=y CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_HARDFAULT_ALERT=y CONFIG_DEBUG_MEMFAULT=y @@ -86,6 +116,8 @@ CONFIG_HAVE_CXXINITIALIZE=y CONFIG_I2C=y CONFIG_I2C_RESET=y CONFIG_IDLETHREAD_STACKSIZE=750 +CONFIG_INIT_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2944 CONFIG_IOB_NBUFFERS=24 CONFIG_IOB_THROTTLE=0 CONFIG_IPCFG_BINARY=y @@ -93,6 +125,7 @@ CONFIG_IPCFG_CHARDEV=y CONFIG_IPCFG_PATH="/fs/mtd_net" CONFIG_LIBC_FLOATINGPOINT=y CONFIG_LIBC_LONG_LONG=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_LIBC_STRERROR=y CONFIG_MEMSET_64BIT=y CONFIG_MEMSET_OPTSPEED=y @@ -115,6 +148,7 @@ CONFIG_NETINIT_DHCPC=y CONFIG_NETINIT_DNS=y CONFIG_NETINIT_DNSIPADDR=0XC0A800FE CONFIG_NETINIT_DRIPADDR=0XC0A800FE +CONFIG_NETINIT_MONITOR=y CONFIG_NETINIT_THREAD=y CONFIG_NETINIT_THREAD_PRIORITY=49 CONFIG_NETUTILS_TELNETD=y @@ -160,17 +194,16 @@ CONFIG_RAW_BINARY=y CONFIG_READLINE_CMD_HISTORY=y CONFIG_READLINE_TABCOMPLETION=y CONFIG_RTC_DATETIME=y -CONFIG_SCHED_ATEXIT=y CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 CONFIG_SCHED_WAITPID=y -CONFIG_SDCLONE_DISABLE=y CONFIG_SDMMC2_SDIO_PULLUP=y CONFIG_SEM_PREALLOCHOLDERS=32 CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y @@ -208,6 +241,7 @@ CONFIG_STM32H7_PHYSR_100MBPS=0x8 CONFIG_STM32H7_PHYSR_FULLDUPLEX=0x10 CONFIG_STM32H7_PHYSR_MODE=0x10 CONFIG_STM32H7_PHYSR_SPEED=0x8 +CONFIG_STM32H7_PHY_POLLING=y CONFIG_STM32H7_PROGMEM=y CONFIG_STM32H7_RTC=y CONFIG_STM32H7_RTC_AUTO_LSECLOCK_START_DRV_CAPABILITY=y @@ -229,7 +263,6 @@ CONFIG_STM32H7_SPI5=y CONFIG_STM32H7_SPI6=y CONFIG_STM32H7_SPI6_DMA=y CONFIG_STM32H7_SPI6_DMA_BUFFER=1024 -CONFIG_STM32H7_SPI_DMA=y CONFIG_STM32H7_TIM12=y CONFIG_STM32H7_TIM1=y CONFIG_STM32H7_TIM4=y @@ -290,6 +323,4 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="nsh_main" CONFIG_WATCHDOG=y diff --git a/boards/px4/fmu-v6x/src/board_config.h b/boards/px4/fmu-v6x/src/board_config.h index c6546179c2..d02e0a5816 100644 --- a/boards/px4/fmu-v6x/src/board_config.h +++ b/boards/px4/fmu-v6x/src/board_config.h @@ -381,7 +381,7 @@ /* SD card bringup does not work if performed on the IDLE thread because it * will cause waiting. Use either: * - * CONFIG_LIB_BOARDCTL=y, OR + * CONFIG_BOARDCTL=y, OR * CONFIG_BOARD_INITIALIZE=y && CONFIG_BOARD_INITTHREAD=y */ diff --git a/boards/px4/fmu-v6x/src/can.c b/boards/px4/fmu-v6x/src/can.c index e11790a659..1f4e1f28a3 100644 --- a/boards/px4/fmu-v6x/src/can.c +++ b/boards/px4/fmu-v6x/src/can.c @@ -65,7 +65,7 @@ uint16_t board_get_can_interfaces(void) #include #include "chip.h" -#include "arm_arch.h" +#include "arm_internal.h" #include "chip.h" #include "stm32_can.h" diff --git a/boards/px4/fmu-v6x/src/usb.c b/boards/px4/fmu-v6x/src/usb.c index 9d5915c0e6..6d42476b71 100644 --- a/boards/px4/fmu-v6x/src/usb.c +++ b/boards/px4/fmu-v6x/src/usb.c @@ -51,7 +51,7 @@ #include #include -#include +#include #include #include #include diff --git a/boards/px4/io-v2/nuttx-config/nsh/defconfig b/boards/px4/io-v2/nuttx-config/nsh/defconfig index 1444f21613..a881389b6d 100644 --- a/boards/px4/io-v2/nuttx-config/nsh/defconfig +++ b/boards/px4/io-v2/nuttx-config/nsh/defconfig @@ -21,6 +21,25 @@ CONFIG_C99_BOOL8=y CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_SYMBOLS=y CONFIG_DEFAULT_SMALL=y +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set +# CONFIG_NSH_DISABLE_FREE is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_KILL is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MODCMDS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PRINTF is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_DISABLE_MOUNTPOINT=y CONFIG_DISABLE_MQUEUE=y CONFIG_DISABLE_PTHREAD=y @@ -61,5 +80,5 @@ CONFIG_USART3_RXBUFSIZE=64 CONFIG_USART3_RXDMA=y CONFIG_USART3_TXBUFSIZE=64 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=1100 -CONFIG_USER_ENTRYPOINT="user_start" +CONFIG_INIT_STACKSIZE=1100 +CONFIG_INIT_ENTRYPOINT="user_start" diff --git a/boards/raspberrypi/pico/nuttx-config/nsh/defconfig b/boards/raspberrypi/pico/nuttx-config/nsh/defconfig index 58d939dda3..e0ab5d5c40 100644 --- a/boards/raspberrypi/pico/nuttx-config/nsh/defconfig +++ b/boards/raspberrypi/pico/nuttx-config/nsh/defconfig @@ -16,8 +16,10 @@ CONFIG_ARCH_CHIP="rp2040" CONFIG_ARCH_CHIP_RP2040=y CONFIG_ARCH_INTERRUPTSTACK=512 CONFIG_BOARDCTL_RESET=y +CONFIG_BOARDCTL=y CONFIG_BOARD_LOOPSPERMSEC=10450 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y CONFIG_C99_BOOL8=y CONFIG_CDCACM=y @@ -82,12 +84,13 @@ CONFIG_RP2040_SPI0=y CONFIG_RP2040_SPI1=y CONFIG_RP2040_SPI=y CONFIG_RP2040_UART1=y -CONFIG_SCHED_ATEXIT=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 @@ -111,6 +114,6 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2944 +CONFIG_INIT_ENTRYPOINT="nsh_main" CONFIG_WATCHDOG=y diff --git a/boards/raspberrypi/pico/src/usb.c b/boards/raspberrypi/pico/src/usb.c index 393f80960e..bc6306ae6b 100644 --- a/boards/raspberrypi/pico/src/usb.c +++ b/boards/raspberrypi/pico/src/usb.c @@ -51,7 +51,7 @@ #include #include -#include +#include #include "board_config.h" /************************************************************************************ diff --git a/boards/sky-drones/smartap-airlink/nuttx-config/nsh/defconfig b/boards/sky-drones/smartap-airlink/nuttx-config/nsh/defconfig index 7017364cff..26aa631d9a 100644 --- a/boards/sky-drones/smartap-airlink/nuttx-config/nsh/defconfig +++ b/boards/sky-drones/smartap-airlink/nuttx-config/nsh/defconfig @@ -7,6 +7,7 @@ # # CONFIG_DISABLE_ENVIRON is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_MMCSD_HAVE_CARDDETECT is not set # CONFIG_MMCSD_HAVE_WRITEPROTECT is not set # CONFIG_MMCSD_MMCSUPPORT is not set @@ -40,9 +41,11 @@ CONFIG_ARMV7M_MEMCPY=y CONFIG_ARMV7M_USEBASEPRI=y CONFIG_ARM_MPU_EARLY_RESET=y CONFIG_BOARDCTL_RESET=y +CONFIG_BOARDCTL=y CONFIG_BOARD_CRASHDUMP=y CONFIG_BOARD_LOOPSPERMSEC=22114 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y CONFIG_C99_BOOL8=y CONFIG_CDCACM=y @@ -58,6 +61,25 @@ CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_HARDFAULT_ALERT=y CONFIG_DEBUG_SYMBOLS=y CONFIG_DEFAULT_SMALL=y +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set +# CONFIG_NSH_DISABLE_FREE is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_KILL is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MODCMDS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PRINTF is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_DEV_FIFO_SIZE=0 CONFIG_DEV_GPIO=y CONFIG_DEV_PIPE_MAXSIZE=1024 @@ -156,12 +178,13 @@ CONFIG_RAW_BINARY=y CONFIG_READLINE_CMD_HISTORY=y CONFIG_READLINE_TABCOMPLETION=y CONFIG_RTC_DATETIME=y -CONFIG_SCHED_ATEXIT=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 @@ -284,5 +307,5 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2944 +CONFIG_INIT_ENTRYPOINT="nsh_main" diff --git a/boards/sky-drones/smartap-airlink/src/board_config.h b/boards/sky-drones/smartap-airlink/src/board_config.h index e03f0d08f1..98ae0d90f4 100644 --- a/boards/sky-drones/smartap-airlink/src/board_config.h +++ b/boards/sky-drones/smartap-airlink/src/board_config.h @@ -300,7 +300,7 @@ /* SD card bringup does not work if performed on the IDLE thread because it * will cause waiting. Use either: * - * CONFIG_LIB_BOARDCTL=y, OR + * CONFIG_BOARDCTL=y, OR * CONFIG_BOARD_INITIALIZE=y && CONFIG_BOARD_INITTHREAD=y */ diff --git a/boards/sky-drones/smartap-airlink/src/can.c b/boards/sky-drones/smartap-airlink/src/can.c index 1a2775d698..3074b01cfb 100644 --- a/boards/sky-drones/smartap-airlink/src/can.c +++ b/boards/sky-drones/smartap-airlink/src/can.c @@ -46,7 +46,7 @@ #include #include "chip.h" -#include "arm_arch.h" +#include "arm_internal.h" #include "chip.h" #include "stm32_can.h" diff --git a/boards/sky-drones/smartap-airlink/src/usb.c b/boards/sky-drones/smartap-airlink/src/usb.c index 20d223245c..8377bb4bef 100644 --- a/boards/sky-drones/smartap-airlink/src/usb.c +++ b/boards/sky-drones/smartap-airlink/src/usb.c @@ -51,7 +51,7 @@ #include #include -#include +#include #include #include #include diff --git a/boards/spracing/h7extreme/nuttx-config/nsh/defconfig b/boards/spracing/h7extreme/nuttx-config/nsh/defconfig index cdcdf8f068..9297f19570 100644 --- a/boards/spracing/h7extreme/nuttx-config/nsh/defconfig +++ b/boards/spracing/h7extreme/nuttx-config/nsh/defconfig @@ -7,6 +7,7 @@ # # CONFIG_DISABLE_OS_API is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_MMCSD_HAVE_CARDDETECT is not set # CONFIG_MMCSD_HAVE_WRITEPROTECT is not set # CONFIG_MMCSD_MMCSUPPORT is not set @@ -41,9 +42,11 @@ CONFIG_ARMV7M_MEMCPY=y CONFIG_ARMV7M_USEBASEPRI=y CONFIG_ARM_MPU_EARLY_RESET=y CONFIG_BOARDCTL_RESET=y +CONFIG_BOARDCTL=y CONFIG_BOARD_CRASHDUMP=y CONFIG_BOARD_LOOPSPERMSEC=95150 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y CONFIG_C99_BOOL8=y CONFIG_CDCACM=y @@ -59,6 +62,25 @@ CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_HARDFAULT_ALERT=y CONFIG_DEBUG_SYMBOLS=y CONFIG_DEFAULT_SMALL=y +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set +# CONFIG_NSH_DISABLE_FREE is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_KILL is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MODCMDS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PRINTF is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_DEV_FIFO_SIZE=0 CONFIG_DEV_PIPE_MAXSIZE=1024 CONFIG_DEV_PIPE_SIZE=70 @@ -120,12 +142,13 @@ CONFIG_RAW_BINARY=y CONFIG_READLINE_CMD_HISTORY=y CONFIG_READLINE_TABCOMPLETION=y CONFIG_RTC_DATETIME=y -CONFIG_SCHED_ATEXIT=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 @@ -220,6 +243,6 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2688 -CONFIG_USER_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2688 +CONFIG_INIT_ENTRYPOINT="nsh_main" CONFIG_WATCHDOG=y diff --git a/boards/spracing/h7extreme/src/qspi.c b/boards/spracing/h7extreme/src/qspi.c index 5e8df9e816..6ba3549622 100644 --- a/boards/spracing/h7extreme/src/qspi.c +++ b/boards/spracing/h7extreme/src/qspi.c @@ -59,7 +59,7 @@ #include #include "arm_internal.h" -#include "arm_arch.h" +#include "arm_internal.h" #include "barriers.h" #include "stm32_gpio.h" @@ -90,6 +90,9 @@ /* Non-atomic, but more effective modification of registers */ +# undef modreg8 +# undef modreg16 +# undef modreg32 # define modreg8(v,m,a) putreg8((getreg8(a) & ~(m)) | ((v) & (m)), a) # define modreg16(v,m,a) putreg16((getreg16(a) & ~(m)) | ((v) & (m)), a) # define modreg32(v,m,a) putreg32((getreg32(a) & ~(m)) | ((v) & (m)), a) diff --git a/boards/spracing/h7extreme/src/usb.c b/boards/spracing/h7extreme/src/usb.c index 9d5915c0e6..6d42476b71 100644 --- a/boards/spracing/h7extreme/src/usb.c +++ b/boards/spracing/h7extreme/src/usb.c @@ -51,7 +51,7 @@ #include #include -#include +#include #include #include #include diff --git a/boards/uvify/core/nuttx-config/nsh/defconfig b/boards/uvify/core/nuttx-config/nsh/defconfig index 08921db7e1..0ca32ce334 100644 --- a/boards/uvify/core/nuttx-config/nsh/defconfig +++ b/boards/uvify/core/nuttx-config/nsh/defconfig @@ -7,6 +7,7 @@ # # CONFIG_DISABLE_ENVIRON is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_DISABLE_PTHREAD is not set # CONFIG_MMCSD_HAVE_CARDDETECT is not set # CONFIG_MMCSD_HAVE_WRITEPROTECT is not set # CONFIG_MMCSD_MMCSUPPORT is not set @@ -36,9 +37,11 @@ CONFIG_ARCH_STACKDUMP=y CONFIG_ARMV7M_MEMCPY=y CONFIG_ARMV7M_USEBASEPRI=y CONFIG_BOARDCTL_RESET=y +CONFIG_BOARDCTL=y CONFIG_BOARD_CRASHDUMP=y CONFIG_BOARD_LOOPSPERMSEC=16717 CONFIG_BOARD_RESET_ON_ASSERT=2 +CONFIG_BOARD_ASSERT_RESET_VALUE=0 CONFIG_BUILTIN=y CONFIG_C99_BOOL8=y CONFIG_CDCACM=y @@ -54,6 +57,25 @@ CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_HARDFAULT_ALERT=y CONFIG_DEBUG_SYMBOLS=y CONFIG_DEFAULT_SMALL=y +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_ENV is not set +# CONFIG_NSH_DISABLE_FREE is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_KILL is not set +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MODCMDS is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_PRINTF is not set +# CONFIG_NSH_DISABLE_PSSTACKUSAGE +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_SOURCE is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set CONFIG_DEV_FIFO_SIZE=0 CONFIG_DEV_PIPE_MAXSIZE=1024 CONFIG_DEV_PIPE_SIZE=70 @@ -118,12 +140,13 @@ CONFIG_RAM_SIZE=262144 CONFIG_RAM_START=0x20000000 CONFIG_RAW_BINARY=y CONFIG_RTC_DATETIME=y -CONFIG_SCHED_ATEXIT=y +CONFIG_LIBC_MAX_EXITFUNS=1 CONFIG_SCHED_HPWORK=y CONFIG_SCHED_HPWORKPRIORITY=249 CONFIG_SCHED_HPWORKSTACKSIZE=1280 CONFIG_SCHED_INSTRUMENTATION=y CONFIG_SCHED_INSTRUMENTATION_EXTERNAL=y +CONFIG_SCHED_INSTRUMENTATION_SWITCH=y CONFIG_SCHED_LPWORK=y CONFIG_SCHED_LPWORKPRIORITY=50 CONFIG_SCHED_LPWORKSTACKSIZE=1632 @@ -226,5 +249,5 @@ CONFIG_USBDEV=y CONFIG_USBDEV_BUSPOWERED=y CONFIG_USBDEV_MAXPOWER=500 CONFIG_USEC_PER_TICK=1000 -CONFIG_USERMAIN_STACKSIZE=2944 -CONFIG_USER_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=2944 +CONFIG_INIT_ENTRYPOINT="nsh_main" diff --git a/boards/uvify/core/src/can.c b/boards/uvify/core/src/can.c index 87e4ae6ec1..f35924dd26 100644 --- a/boards/uvify/core/src/can.c +++ b/boards/uvify/core/src/can.c @@ -50,7 +50,7 @@ #include #include "chip.h" -#include "arm_arch.h" +#include "arm_internal.h" #include "stm32.h" #include "stm32_can.h" diff --git a/boards/uvify/core/src/usb.c b/boards/uvify/core/src/usb.c index 9c089afb79..32f853b747 100644 --- a/boards/uvify/core/src/usb.c +++ b/boards/uvify/core/src/usb.c @@ -51,7 +51,7 @@ #include #include -#include +#include #include #include "board_config.h" diff --git a/platforms/common/shutdown.cpp b/platforms/common/shutdown.cpp index 8e7c3d877d..dcbd733ceb 100644 --- a/platforms/common/shutdown.cpp +++ b/platforms/common/shutdown.cpp @@ -100,7 +100,7 @@ int px4_shutdown_unlock() return ret; } -#if defined(CONFIG_SCHED_WORKQUEUE) || (!defined(CONFIG_BUILD_FLAT) && defined(CONFIG_LIB_USRWORK)) +#if defined(CONFIG_SCHED_WORKQUEUE) || (!defined(CONFIG_BUILD_FLAT) && defined(CONFIG_LIBC_USRWORK)) static struct work_s shutdown_work = {}; static uint16_t shutdown_counter = 0; ///< count how many times the shutdown worker was executed diff --git a/platforms/common/uORB/CMakeLists.txt b/platforms/common/uORB/CMakeLists.txt index 0f0060836b..c151d051c7 100644 --- a/platforms/common/uORB/CMakeLists.txt +++ b/platforms/common/uORB/CMakeLists.txt @@ -72,7 +72,7 @@ if (NOT DEFINED CONFIG_BUILD_FLAT AND "${PX4_PLATFORM}" MATCHES "nuttx") ${SRCS_COMMON} ${SRCS_KERNEL} ) - target_link_libraries(uORB_kernel PRIVATE cdev uorb_msgs) + target_link_libraries(uORB_kernel PRIVATE cdev uorb_msgs nuttx_mm) target_compile_options(uORB_kernel PRIVATE ${MAX_CUSTOM_OPT_LEVEL} -D__KERNEL__) # User side library in nuttx kernel/protected build @@ -80,9 +80,17 @@ if (NOT DEFINED CONFIG_BUILD_FLAT AND "${PX4_PLATFORM}" MATCHES "nuttx") ${SRCS_COMMON} ${SRCS_USER} ) +elseif("${PX4_PLATFORM}" MATCHES "nuttx") + + # Library for NuttX (flat build, posix...) + px4_add_library(uORB + ${SRCS_COMMON} + ${SRCS_KERNEL} + ) + target_link_libraries(uORB PRIVATE cdev nuttx_mm) else() - # Library for all other targets (flat build, posix...) + # Library for all other targets (posix...) px4_add_library(uORB ${SRCS_COMMON} ${SRCS_KERNEL} diff --git a/platforms/nuttx/NuttX/Make.defs.in b/platforms/nuttx/NuttX/Make.defs.in index 1e56ddff8f..315bf92300 100644 --- a/platforms/nuttx/NuttX/Make.defs.in +++ b/platforms/nuttx/NuttX/Make.defs.in @@ -102,7 +102,6 @@ FLAGS = $(MAXOPTIMIZATION) -g2 \ -fno-strict-aliasing \ -fomit-frame-pointer \ -Wall \ - -Werror \ -Wextra \ -Wlogical-op \ -Wno-cpp \ diff --git a/platforms/nuttx/NuttX/apps b/platforms/nuttx/NuttX/apps index 6d9010f47e..a489381b49 160000 --- a/platforms/nuttx/NuttX/apps +++ b/platforms/nuttx/NuttX/apps @@ -1 +1 @@ -Subproject commit 6d9010f47e7b00d9d86bbdd4630c78cd8d57ba35 +Subproject commit a489381b49835ecba6f3b873b5071d882a18152f diff --git a/platforms/nuttx/NuttX/nuttx b/platforms/nuttx/NuttX/nuttx index 6bafcb22b7..6ae751cd56 160000 --- a/platforms/nuttx/NuttX/nuttx +++ b/platforms/nuttx/NuttX/nuttx @@ -1 +1 @@ -Subproject commit 6bafcb22b7d62184fd1158c0b53c8dbd884275b8 +Subproject commit 6ae751cd56f27a51ae91af8f5c5ce00c04b874cb diff --git a/platforms/nuttx/src/bootloader/stm/stm32_common/systick.c b/platforms/nuttx/src/bootloader/stm/stm32_common/systick.c index 3bc2d00720..ebc83c400d 100644 --- a/platforms/nuttx/src/bootloader/stm/stm32_common/systick.c +++ b/platforms/nuttx/src/bootloader/stm/stm32_common/systick.c @@ -31,7 +31,7 @@ * ****************************************************************************/ -#include "arm_arch.h" +#include "arm_internal.h" #include "lib/systick.h" #include diff --git a/platforms/nuttx/src/px4/common/cdc_acm_check.cpp b/platforms/nuttx/src/px4/common/cdc_acm_check.cpp index 081205556e..d86556894d 100644 --- a/platforms/nuttx/src/px4/common/cdc_acm_check.cpp +++ b/platforms/nuttx/src/px4/common/cdc_acm_check.cpp @@ -286,7 +286,7 @@ static void mavlink_usb_check(void *arg) #if defined(CONFIG_SERIAL_PASSTHRU_UBLOX) speed_t baudrate = cfgetspeed(&uart_config); char baudstring[16]; - snprintf(baudstring, sizeof(baudstring), "%d", baudrate); + snprintf(baudstring, sizeof(baudstring), "%ld", baudrate); static const char *gps_argv[] {"gps", "stop", nullptr}; static const char *passthru_argv[] {"serial_passthru", "start", "-t", "-b", baudstring, "-e", USB_DEVICE_PATH, "-d", SERIAL_PASSTHRU_UBLOX_DEV, nullptr}; diff --git a/platforms/nuttx/src/px4/common/px4_24xxxx_mtd.c b/platforms/nuttx/src/px4/common/px4_24xxxx_mtd.c index bbca9c80c3..65e5794a96 100644 --- a/platforms/nuttx/src/px4/common/px4_24xxxx_mtd.c +++ b/platforms/nuttx/src/px4/common/px4_24xxxx_mtd.c @@ -514,7 +514,6 @@ static int at24c_ioctl(FAR struct mtd_dev_s *dev, int cmd, unsigned long arg) ret = at24c_eraseall(priv); break; - case MTDIOC_XIPBASE: default: ret = -ENOTTY; /* Bad command */ break; diff --git a/platforms/nuttx/src/px4/nxp/imxrt/board_critmon/board_critmon.c b/platforms/nuttx/src/px4/nxp/imxrt/board_critmon/board_critmon.c index a11632c3a6..723f21505f 100644 --- a/platforms/nuttx/src/px4/nxp/imxrt/board_critmon/board_critmon.c +++ b/platforms/nuttx/src/px4/nxp/imxrt/board_critmon/board_critmon.c @@ -42,7 +42,7 @@ #include #include "dwt.h" -#include "arm_arch.h" +#include "arm_internal.h" #include diff --git a/platforms/nuttx/src/px4/nxp/imxrt/board_reset/board_reset.cpp b/platforms/nuttx/src/px4/nxp/imxrt/board_reset/board_reset.cpp index b067e1c242..b60d57a4d4 100644 --- a/platforms/nuttx/src/px4/nxp/imxrt/board_reset/board_reset.cpp +++ b/platforms/nuttx/src/px4/nxp/imxrt/board_reset/board_reset.cpp @@ -40,7 +40,7 @@ #include #include #include -#include +#include #include #define PX4_IMXRT_RTC_REBOOT_REG 3 // Must be common with bootloader and: diff --git a/platforms/nuttx/src/px4/nxp/imxrt/version/board_identity.c b/platforms/nuttx/src/px4/nxp/imxrt/version/board_identity.c index 6df0b18f35..eb800c6a0a 100644 --- a/platforms/nuttx/src/px4/nxp/imxrt/version/board_identity.c +++ b/platforms/nuttx/src/px4/nxp/imxrt/version/board_identity.c @@ -41,7 +41,7 @@ #include #include #include -#include +#include #include #define CPU_UUID_BYTE_FORMAT_ORDER {3, 2, 1, 0, 7, 6, 5, 4} diff --git a/platforms/nuttx/src/px4/nxp/imxrt/version/board_mcu_version.c b/platforms/nuttx/src/px4/nxp/imxrt/version/board_mcu_version.c index a9e4a07609..d28253894e 100644 --- a/platforms/nuttx/src/px4/nxp/imxrt/version/board_mcu_version.c +++ b/platforms/nuttx/src/px4/nxp/imxrt/version/board_mcu_version.c @@ -42,7 +42,7 @@ #include #include -#include "arm_arch.h" +#include "arm_internal.h" #define DIGPROG_MINOR_SHIFT 0 #define DIGPROG_MINOR_MASK (0xff << DIGPROG_MINOR_SHIFT) diff --git a/platforms/nuttx/src/px4/nxp/kinetis/version/board_mcu_version.c b/platforms/nuttx/src/px4/nxp/kinetis/version/board_mcu_version.c index 8b0d174bc1..e92cb1dcda 100644 --- a/platforms/nuttx/src/px4/nxp/kinetis/version/board_mcu_version.c +++ b/platforms/nuttx/src/px4/nxp/kinetis/version/board_mcu_version.c @@ -40,7 +40,7 @@ #include #include -#include "arm_arch.h" +#include "arm_internal.h" #include "hardware/kinetis_sim.h" #define CHIP_TAG "Kinetis K??" diff --git a/platforms/nuttx/src/px4/nxp/s32k1xx/version/board_mcu_version.c b/platforms/nuttx/src/px4/nxp/s32k1xx/version/board_mcu_version.c index 93ebd40505..61e8819303 100644 --- a/platforms/nuttx/src/px4/nxp/s32k1xx/version/board_mcu_version.c +++ b/platforms/nuttx/src/px4/nxp/s32k1xx/version/board_mcu_version.c @@ -41,7 +41,7 @@ #include #include -#include "arm_arch.h" +#include "arm_internal.h" #include "hardware/s32k1xx_sim.h" #define CHIP_TAG "S32KXXX" diff --git a/platforms/nuttx/src/px4/nxp/s32k1xx/watchdog/iwdg.c b/platforms/nuttx/src/px4/nxp/s32k1xx/watchdog/iwdg.c index 98994df012..07c2357001 100644 --- a/platforms/nuttx/src/px4/nxp/s32k1xx/watchdog/iwdg.c +++ b/platforms/nuttx/src/px4/nxp/s32k1xx/watchdog/iwdg.c @@ -34,7 +34,6 @@ #include #include "arm_internal.h" -#include "arm_arch.h" #include "chip.h" #include "nvic.h" diff --git a/platforms/nuttx/src/px4/rpi/rpi_common/spi/spi.cpp b/platforms/nuttx/src/px4/rpi/rpi_common/spi/spi.cpp index 350b914342..9b05e6542a 100644 --- a/platforms/nuttx/src/px4/rpi/rpi_common/spi/spi.cpp +++ b/platforms/nuttx/src/px4/rpi/rpi_common/spi/spi.cpp @@ -43,7 +43,7 @@ #include #include -#include +#include #include static const px4_spi_bus_t *_spi_bus0; diff --git a/platforms/nuttx/src/px4/stm/stm32_common/board_critmon/board_critmon.c b/platforms/nuttx/src/px4/stm/stm32_common/board_critmon/board_critmon.c index 7b05384ab7..480bfc0250 100644 --- a/platforms/nuttx/src/px4/stm/stm32_common/board_critmon/board_critmon.c +++ b/platforms/nuttx/src/px4/stm/stm32_common/board_critmon/board_critmon.c @@ -42,7 +42,7 @@ #include #include "dwt.h" -#include "arm_arch.h" +#include "arm_internal.h" #include diff --git a/platforms/nuttx/src/px4/stm/stm32_common/spi/spi.cpp b/platforms/nuttx/src/px4/stm/stm32_common/spi/spi.cpp index a4e12318b6..989a543893 100644 --- a/platforms/nuttx/src/px4/stm/stm32_common/spi/spi.cpp +++ b/platforms/nuttx/src/px4/stm/stm32_common/spi/spi.cpp @@ -42,7 +42,7 @@ #include #include -#include +#include #include #include diff --git a/platforms/nuttx/src/px4/stm/stm32f7/watchdog/iwdg.c b/platforms/nuttx/src/px4/stm/stm32f7/watchdog/iwdg.c index a2c272a385..57fcfd067a 100644 --- a/platforms/nuttx/src/px4/stm/stm32f7/watchdog/iwdg.c +++ b/platforms/nuttx/src/px4/stm/stm32f7/watchdog/iwdg.c @@ -34,7 +34,7 @@ #include #include "arm_internal.h" -#include "arm_arch.h" +#include "arm_internal.h" #include "chip.h" #include "nvic.h" diff --git a/src/drivers/bootloaders/boot_app_shared.c b/src/drivers/bootloaders/boot_app_shared.c index a63efa5430..19127402a2 100644 --- a/src/drivers/bootloaders/boot_app_shared.c +++ b/src/drivers/bootloaders/boot_app_shared.c @@ -43,7 +43,7 @@ #include #include -#include "arm_arch.h" +#include "arm_internal.h" #include "boot_app_shared.h" #include @@ -54,7 +54,7 @@ #define CRC_H 1 #define CRC_L 0 -inline static void read(bootloader_app_shared_t *pshared) +inline static void read_shared(bootloader_app_shared_t *pshared) { pshared->signature = getreg32(signature_LOC); pshared->bus_speed = getreg32(bus_speed_LOC); @@ -63,7 +63,7 @@ inline static void read(bootloader_app_shared_t *pshared) pshared->crc.ul[CRC_H] = getreg32(crc_HiLOC); } -inline static void write(bootloader_app_shared_t *pshared) +inline static void write_shared(bootloader_app_shared_t *pshared) { putreg32(pshared->signature, signature_LOC); putreg32(pshared->bus_speed, bus_speed_LOC); @@ -126,7 +126,7 @@ __EXPORT int bootloader_app_shared_read(bootloader_app_shared_t *shared, eRole_t int rv = -EBADR; bootloader_app_shared_t working; - read(&working); + read_shared(&working); if ((role == App ? working.signature == BOOTLOADER_COMMON_APP_SIGNATURE : working.signature == BOOTLOADER_COMMON_BOOTLOADER_SIGNATURE) @@ -166,7 +166,7 @@ __EXPORT void bootloader_app_shared_write(bootloader_app_shared_t *shared, eRole bootloader_app_shared_t working = *shared; working.signature = (role == App ? BOOTLOADER_COMMON_APP_SIGNATURE : BOOTLOADER_COMMON_BOOTLOADER_SIGNATURE); working.crc.ull = calulate_signature(&working); - write(&working); + write_shared(&working); } /**************************************************************************** @@ -190,5 +190,5 @@ __EXPORT void bootloader_app_shared_invalidate(void) { bootloader_app_shared_t working; bootloader_app_shared_init(&working, Invalid); - write(&working); + write_shared(&working); } diff --git a/src/drivers/uavcan/uavcan_drivers/kinetis/driver/src/internal.hpp b/src/drivers/uavcan/uavcan_drivers/kinetis/driver/src/internal.hpp index 0dc4331a77..a76b5fde5b 100644 --- a/src/drivers/uavcan/uavcan_drivers/kinetis/driver/src/internal.hpp +++ b/src/drivers/uavcan/uavcan_drivers/kinetis/driver/src/internal.hpp @@ -9,7 +9,7 @@ #if UAVCAN_KINETIS_NUTTX # include -# include "arm_arch.h" +# include "arm_internal.h" # include # include # include diff --git a/src/drivers/uavcan/uavcan_servers.cpp b/src/drivers/uavcan/uavcan_servers.cpp index d6a05dba67..fa4b2aab10 100644 --- a/src/drivers/uavcan/uavcan_servers.cpp +++ b/src/drivers/uavcan/uavcan_servers.cpp @@ -214,8 +214,8 @@ void UavcanServers::migrateFWFromRoot(const char *sd_path, const char *sd_root_p } } - if (dev_dirent != nullptr) { - (void)closedir(dev_dirent); + if (sd_root_dir != nullptr) { + (void)closedir(sd_root_dir); } } diff --git a/src/modules/px4iofirmware/serial.cpp b/src/modules/px4iofirmware/serial.cpp index 9829fc2907..ef4a18cba7 100644 --- a/src/modules/px4iofirmware/serial.cpp +++ b/src/modules/px4iofirmware/serial.cpp @@ -49,7 +49,7 @@ /* XXX might be able to prune these */ #include #include -#include +#include #include //#define DEBUG