From 7784cd1f40e5fc15f0bfdacee2779981efd84bb9 Mon Sep 17 00:00:00 2001 From: Daniel Agar Date: Fri, 29 Apr 2022 21:36:25 -0400 Subject: [PATCH] boards: mro_ctrl-zero-classic updates to sync with ctrl-zero-h7-oem --- Makefile | 2 +- boards/mro/ctrl-zero-classic/default.px4board | 10 ++--- .../mro_ctrl-zero-classic_bootloader.bin | Bin 0 -> 42872 bytes .../ctrl-zero-classic/init/rc.board_defaults | 3 +- .../nuttx-config/bootloader/defconfig | 5 ++- .../nuttx-config/include/board.h | 41 +++++++++--------- .../nuttx-config/nsh/defconfig | 7 +-- .../nuttx-config/scripts/script.ld | 1 - .../mro/ctrl-zero-classic/src/board_config.h | 3 +- boards/mro/ctrl-zero-classic/src/init.c | 12 ----- 10 files changed, 35 insertions(+), 49 deletions(-) create mode 100755 boards/mro/ctrl-zero-classic/extras/mro_ctrl-zero-classic_bootloader.bin diff --git a/Makefile b/Makefile index 7f43b46b68..78d3ab2d07 100644 --- a/Makefile +++ b/Makefile @@ -330,7 +330,7 @@ px4io_update: px4_io-v2_default cubepilot_io-v2_default cp build/cubepilot_io-v2_default/cubepilot_io-v2_default.bin boards/cubepilot/cubeyellow/extras/cubepilot_io-v2_default.bin git status -bootloaders_update: cuav_nora_bootloader cuav_x7pro_bootloader cubepilot_cubeorange_bootloader holybro_durandal-v1_bootloader matek_h743-slim_bootloader modalai_fc-v2_bootloader mro_ctrl-zero-h7_bootloader mro_ctrl-zero-h7-oem_bootloader mro_pixracerpro_bootloader px4_fmu-v6u_bootloader px4_fmu-v6x_bootloader +bootloaders_update: cuav_nora_bootloader cuav_x7pro_bootloader cubepilot_cubeorange_bootloader holybro_durandal-v1_bootloader matek_h743-slim_bootloader modalai_fc-v2_bootloader mro_ctrl-zero-classic_bootloader mro_ctrl-zero-h7_bootloader mro_ctrl-zero-h7-oem_bootloader mro_pixracerpro_bootloader px4_fmu-v6u_bootloader px4_fmu-v6x_bootloader git status .PHONY: coverity_scan diff --git a/boards/mro/ctrl-zero-classic/default.px4board b/boards/mro/ctrl-zero-classic/default.px4board index 6ac757c824..3915a6afb0 100644 --- a/boards/mro/ctrl-zero-classic/default.px4board +++ b/boards/mro/ctrl-zero-classic/default.px4board @@ -39,6 +39,7 @@ CONFIG_MODULES_ATTITUDE_ESTIMATOR_Q=y CONFIG_MODULES_BATTERY_STATUS=y CONFIG_MODULES_CAMERA_FEEDBACK=y CONFIG_MODULES_COMMANDER=y +CONFIG_MODULES_CONTROL_ALLOCATOR=y CONFIG_MODULES_DATAMAN=y CONFIG_MODULES_EKF2=y CONFIG_MODULES_ESC_BATTERY=y @@ -55,14 +56,13 @@ CONFIG_MODULES_LOAD_MON=y CONFIG_MODULES_LOCAL_POSITION_ESTIMATOR=y CONFIG_MODULES_LOGGER=y CONFIG_MODULES_MAG_BIAS_ESTIMATOR=y -CONFIG_MODULES_MAVLINK=y CONFIG_MODULES_MANUAL_CONTROL=y +CONFIG_MODULES_MAVLINK=y CONFIG_MODULES_MC_ATT_CONTROL=y CONFIG_MODULES_MC_AUTOTUNE_ATTITUDE_CONTROL=y CONFIG_MODULES_MC_HOVER_THRUST_ESTIMATOR=y CONFIG_MODULES_MC_POS_CONTROL=y CONFIG_MODULES_MC_RATE_CONTROL=y -CONFIG_MODULES_CONTROL_ALLOCATOR=y CONFIG_MODULES_NAVIGATOR=y CONFIG_MODULES_RC_UPDATE=y CONFIG_MODULES_ROVER_POS_CONTROL=y @@ -71,20 +71,18 @@ CONFIG_MODULES_SIH=y CONFIG_MODULES_TEMPERATURE_COMPENSATION=y CONFIG_MODULES_UUV_ATT_CONTROL=y CONFIG_MODULES_UUV_POS_CONTROL=y -CONFIG_MODULES_VMOUNT=y +CONFIG_MODULES_GIMBAL=y CONFIG_MODULES_VTOL_ATT_CONTROL=y -CONFIG_SYSTEMCMDS_BL_UPDATE=y CONFIG_SYSTEMCMDS_ACTUATOR_TEST=y +CONFIG_SYSTEMCMDS_BL_UPDATE=y CONFIG_SYSTEMCMDS_DMESG=y CONFIG_SYSTEMCMDS_DUMPFILE=y -CONFIG_SYSTEMCMDS_ESC_CALIB=y CONFIG_SYSTEMCMDS_GPIO=y CONFIG_SYSTEMCMDS_HARDFAULT_LOG=y CONFIG_SYSTEMCMDS_I2CDETECT=y CONFIG_SYSTEMCMDS_LED_CONTROL=y CONFIG_SYSTEMCMDS_MFT=y CONFIG_SYSTEMCMDS_MIXER=y -CONFIG_SYSTEMCMDS_MOTOR_RAMP=y CONFIG_SYSTEMCMDS_MOTOR_TEST=y CONFIG_SYSTEMCMDS_MTD=y CONFIG_SYSTEMCMDS_NSHTERM=y 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 new file mode 100755 index 0000000000000000000000000000000000000000..0e714e049b5010478c9554516bb3a9ea80a58853 GIT binary patch literal 42872 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

#}67jO2tOL*2FmF8S5E^YV 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 literal 0 HcmV?d00001 diff --git a/boards/mro/ctrl-zero-classic/init/rc.board_defaults b/boards/mro/ctrl-zero-classic/init/rc.board_defaults index e65d44442a..32117f4a58 100644 --- a/boards/mro/ctrl-zero-classic/init/rc.board_defaults +++ b/boards/mro/ctrl-zero-classic/init/rc.board_defaults @@ -4,7 +4,6 @@ #------------------------------------------------------------------------------ param set-default BAT1_V_DIV 10.1 -param set-default BAT1_A_PER_V 24 - +param set-default BAT1_A_PER_V 17 safety_button start diff --git a/boards/mro/ctrl-zero-classic/nuttx-config/bootloader/defconfig b/boards/mro/ctrl-zero-classic/nuttx-config/bootloader/defconfig index 29d401036e..d29195ef58 100644 --- a/boards/mro/ctrl-zero-classic/nuttx-config/bootloader/defconfig +++ b/boards/mro/ctrl-zero-classic/nuttx-config/bootloader/defconfig @@ -11,11 +11,11 @@ # CONFIG_STM32H7_SYSCFG is not set CONFIG_ARCH="arm" CONFIG_ARCH_BOARD_CUSTOM=y -CONFIG_ARCH_BOARD_CUSTOM_DIR="../nuttx-config" +CONFIG_ARCH_BOARD_CUSTOM_DIR="../../../../boards/mro/ctrl-zero-classic/nuttx-config" CONFIG_ARCH_BOARD_CUSTOM_DIR_RELPATH=y CONFIG_ARCH_BOARD_CUSTOM_NAME="px4" CONFIG_ARCH_CHIP="stm32h7" -CONFIG_ARCH_CHIP_STM32H743ZIT6=y +CONFIG_ARCH_CHIP_STM32H743II=y CONFIG_ARCH_CHIP_STM32H7=y CONFIG_ARCH_INTERRUPTSTACK=512 CONFIG_ARMV7M_BASEPRI_WAR=y @@ -29,6 +29,7 @@ CONFIG_BOARD_LOOPSPERMSEC=95150 CONFIG_BOARD_RESET_ON_ASSERT=2 CONFIG_C99_BOOL8=y CONFIG_CDCACM=y +CONFIG_CDCACM_IFLOWCONTROL=y CONFIG_CDCACM_PRODUCTID=0x1022 CONFIG_CDCACM_PRODUCTSTR="PX4 BL mRo ControlZero Classic" CONFIG_CDCACM_RXBUFSIZE=600 diff --git a/boards/mro/ctrl-zero-classic/nuttx-config/include/board.h b/boards/mro/ctrl-zero-classic/nuttx-config/include/board.h index d23e138252..9b1ae6342d 100644 --- a/boards/mro/ctrl-zero-classic/nuttx-config/include/board.h +++ b/boards/mro/ctrl-zero-classic/nuttx-config/include/board.h @@ -222,34 +222,35 @@ /* UART/USART */ -#define GPIO_USART2_RX GPIO_USART2_RX_2 /* PD6 */ -#define GPIO_USART2_TX GPIO_USART2_TX_2 /* PD5 */ -#define GPIO_USART2_RTS GPIO_USART2_RTS_2 /* PD4 */ -#define GPIO_USART2_CTS GPIO_USART2_CTS_NSS_2 /* PD3 */ +#define GPIO_USART2_TX GPIO_USART2_TX_2 /* PD5 */ +#define GPIO_USART2_RX GPIO_USART2_RX_2 /* PD6 */ +#define GPIO_USART2_CTS GPIO_USART2_CTS_NSS_2 /* PD3 */ +#define GPIO_USART2_RTS GPIO_USART2_RTS_2 /* PD4 */ -#define GPIO_USART3_RX GPIO_USART3_RX_3 /* PD9 */ -#define GPIO_USART3_TX GPIO_USART3_TX_3 /* PD8 */ -#define GPIO_USART3_RTS GPIO_USART3_RTS_2 /* PD12 */ -#define GPIO_USART3_CTS GPIO_USART3_CTS_NSS_2 /* PD11 */ +#define GPIO_USART3_TX GPIO_USART3_TX_3 /* PD8 */ +#define GPIO_USART3_RX GPIO_USART3_RX_3 /* PD9 */ +#define GPIO_USART3_CTS GPIO_USART3_CTS_NSS_2 /* PD11 */ +#define GPIO_USART3_RTS GPIO_USART3_RTS_2 /* PD12 */ -#define GPIO_UART4_RX GPIO_UART4_RX_1 /* PA1 */ -#define GPIO_UART4_TX GPIO_UART4_TX_1 /* PA0 */ +#define GPIO_UART4_TX GPIO_UART4_TX_2 /* PA0 */ +#define GPIO_UART4_RX GPIO_UART4_RX_2 /* PA1 */ -#define GPIO_USART6_RX GPIO_USART6_RX_1 /* PC7 */ -#define GPIO_USART6_TX GPIO_USART6_TX_2 /* PG14 */ +#define GPIO_USART6_TX 0 /* USART6 is RX-only */ +#define GPIO_USART6_RX GPIO_USART6_RX_1 /* PC7 */ -#define GPIO_UART7_RX GPIO_UART7_RX_1 /* PE7 */ -#define GPIO_UART7_TX GPIO_UART7_TX_1 /* PE8 */ +#define GPIO_UART7_TX GPIO_UART7_TX_3 /* PE8 */ +#define GPIO_UART7_RX GPIO_UART7_RX_3 /* PE7 */ -#define GPIO_UART8_RX GPIO_UART8_RX_1 /* PE0 */ -#define GPIO_UART8_TX GPIO_UART8_TX_1 /* PE1 */ +#define GPIO_UART8_TX GPIO_UART8_TX_1 /* PE1 */ +#define GPIO_UART8_RX GPIO_UART8_RX_1 /* PE0 */ /* CAN */ -#define GPIO_CAN1_RX GPIO_CAN1_RX_3 /* PD0 */ -#define GPIO_CAN1_TX GPIO_CAN1_TX_3 /* PD1 */ -#define GPIO_CAN2_RX GPIO_CAN2_RX_1 /* PB12 */ -#define GPIO_CAN2_TX GPIO_CAN2_TX_1 /* PB13 */ +#define GPIO_CAN1_RX GPIO_CAN1_RX_3 /* PD0 */ +#define GPIO_CAN1_TX GPIO_CAN1_TX_3 /* PD1 */ + +#define GPIO_CAN2_RX GPIO_CAN2_RX_1 /* PB12 */ +#define GPIO_CAN2_TX GPIO_CAN2_TX_1 /* PB13 */ /* SPI */ diff --git a/boards/mro/ctrl-zero-classic/nuttx-config/nsh/defconfig b/boards/mro/ctrl-zero-classic/nuttx-config/nsh/defconfig index c3f2615450..a11a26d664 100644 --- a/boards/mro/ctrl-zero-classic/nuttx-config/nsh/defconfig +++ b/boards/mro/ctrl-zero-classic/nuttx-config/nsh/defconfig @@ -28,7 +28,7 @@ CONFIG_ARCH_BOARD_CUSTOM_DIR="../../../../boards/mro/ctrl-zero-classic/nuttx-con CONFIG_ARCH_BOARD_CUSTOM_DIR_RELPATH=y CONFIG_ARCH_BOARD_CUSTOM_NAME="px4" CONFIG_ARCH_CHIP="stm32h7" -CONFIG_ARCH_CHIP_STM32H743ZIT6=y +CONFIG_ARCH_CHIP_STM32H743II=y CONFIG_ARCH_CHIP_STM32H7=y CONFIG_ARCH_INTERRUPTSTACK=512 CONFIG_ARCH_STACKDUMP=y @@ -38,6 +38,7 @@ 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=95150 @@ -45,6 +46,7 @@ CONFIG_BOARD_RESET_ON_ASSERT=2 CONFIG_BUILTIN=y CONFIG_C99_BOOL8=y CONFIG_CDCACM=y +CONFIG_CDCACM_IFLOWCONTROL=y CONFIG_CDCACM_PRODUCTID=0x1022 CONFIG_CDCACM_PRODUCTSTR="mRoControlZero Classic" CONFIG_CDCACM_RXBUFSIZE=600 @@ -73,6 +75,7 @@ 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 @@ -85,10 +88,8 @@ CONFIG_IDLETHREAD_STACKSIZE=750 CONFIG_LIBC_FLOATINGPOINT=y CONFIG_LIBC_LONG_LONG=y CONFIG_LIBC_STRERROR=y -CONFIG_FS_PROCFS_MAX_TASKS=64 CONFIG_MEMSET_64BIT=y CONFIG_MEMSET_OPTSPEED=y -CONFIG_MKFATFS_BUFFER_ALIGMENT=32 CONFIG_MMCSD=y CONFIG_MMCSD_SDIO=y CONFIG_MMCSD_SDIOWAIT_WRCOMPLETE=y diff --git a/boards/mro/ctrl-zero-classic/nuttx-config/scripts/script.ld b/boards/mro/ctrl-zero-classic/nuttx-config/scripts/script.ld index 50f6307bc5..076ff3dcee 100644 --- a/boards/mro/ctrl-zero-classic/nuttx-config/scripts/script.ld +++ b/boards/mro/ctrl-zero-classic/nuttx-config/scripts/script.ld @@ -199,7 +199,6 @@ SECTIONS } > AXI_SRAM /* Emit the the D3 power domain section for locating BDMA data */ - .sram4_reserve (NOLOAD) : { *(.sram4) diff --git a/boards/mro/ctrl-zero-classic/src/board_config.h b/boards/mro/ctrl-zero-classic/src/board_config.h index 32cc7d2516..68f3c49337 100644 --- a/boards/mro/ctrl-zero-classic/src/board_config.h +++ b/boards/mro/ctrl-zero-classic/src/board_config.h @@ -156,9 +156,8 @@ #define BOARD_HAS_STATIC_MANIFEST 1 -#define BOARD_NUM_IO_TIMERS 3 +#define BOARD_NUM_IO_TIMERS 4 -#define BOARD_DSHOT_MOTOR_ASSIGNMENT {3, 2, 1, 0, 4, 5, 6, 7}; #define BOARD_ENABLE_CONSOLE_BUFFER diff --git a/boards/mro/ctrl-zero-classic/src/init.c b/boards/mro/ctrl-zero-classic/src/init.c index 02a4a2eb7a..daaace48fb 100644 --- a/boards/mro/ctrl-zero-classic/src/init.c +++ b/boards/mro/ctrl-zero-classic/src/init.c @@ -123,16 +123,6 @@ __EXPORT void board_on_reset(int status) ************************************************************************************/ __EXPORT void stm32_boardinitialize(void) { - // clear all existing MPU configuration from bootloader - for (int region = 0; region < CONFIG_ARM_MPU_NREGIONS; region++) { - putreg32(region, MPU_RNR); - putreg32(0, MPU_RBAR); - putreg32(0, MPU_RASR); - - // save - putreg32(0, MPU_CTRL); - } - /* Reset PWM first thing */ board_on_reset(-1); @@ -196,12 +186,10 @@ __EXPORT int board_app_initialize(uintptr_t arg) if (!sdio_dev) { syslog(LOG_ERR, "[boot] Failed to initialize SDIO slot %d\n", 0); - return ERROR; } if (mmcsd_slotinitialize(0, sdio_dev) != OK) { syslog(LOG_ERR, "[boot] Failed to bind SDIO to the MMC/SD driver\n"); - return ERROR; } /* Assume that the SD card is inserted. What choice do we have? */