From 12831c1f731b56494507b35219c04c576ead533f Mon Sep 17 00:00:00 2001 From: "Kwabena W. Agyeman" Date: Sun, 21 Apr 2024 12:49:29 -0700 Subject: [PATCH] imlib: Change ARM_MATH_CM4/CM7 to DSP. --- src/omv/boards/ARDUINO_GIGA/omv_boardconfig.mk | 1 - src/omv/boards/ARDUINO_NANO_33_BLE_SENSE/omv_boardconfig.mk | 1 - src/omv/boards/ARDUINO_NICLA_VISION/omv_boardconfig.mk | 1 - src/omv/boards/ARDUINO_PORTENTA_H7/omv_boardconfig.mk | 1 - src/omv/boards/OPENMV1/omv_boardconfig.mk | 1 - src/omv/boards/OPENMV2/omv_boardconfig.mk | 1 - src/omv/boards/OPENMV3/omv_boardconfig.mk | 1 - src/omv/boards/OPENMV4/omv_boardconfig.mk | 1 - src/omv/boards/OPENMV4P/omv_boardconfig.mk | 1 - src/omv/boards/OPENMV4_PRO/omv_boardconfig.mk | 1 - src/omv/boards/OPENMVPT/omv_boardconfig.mk | 1 - src/omv/boards/OPENMV_RT1060/omv_boardconfig.mk | 1 - src/omv/imlib/apriltag.c | 4 ++-- src/omv/imlib/filter.c | 2 +- src/omv/imlib/stereo.c | 4 ++-- src/omv/ports/mimxrt/omv_portconfig.mk | 2 +- src/omv/ports/nrf/omv_portconfig.mk | 2 +- src/omv/ports/stm32/omv_portconfig.mk | 4 ++-- 18 files changed, 9 insertions(+), 21 deletions(-) diff --git a/src/omv/boards/ARDUINO_GIGA/omv_boardconfig.mk b/src/omv/boards/ARDUINO_GIGA/omv_boardconfig.mk index 216dd4db9..6b948c075 100755 --- a/src/omv/boards/ARDUINO_GIGA/omv_boardconfig.mk +++ b/src/omv/boards/ARDUINO_GIGA/omv_boardconfig.mk @@ -3,7 +3,6 @@ CPU=cortex-m7 FPU=fpv5-sp-d16 PORT=stm32 HAL_DIR=hal/stm32/h7 -ARM_MATH=ARM_MATH_CM7 HAL_INC='' CMSIS_MCU_H='' CFLAGS_MCU=MCU_SERIES_H7 diff --git a/src/omv/boards/ARDUINO_NANO_33_BLE_SENSE/omv_boardconfig.mk b/src/omv/boards/ARDUINO_NANO_33_BLE_SENSE/omv_boardconfig.mk index bde855783..33fb895d7 100755 --- a/src/omv/boards/ARDUINO_NANO_33_BLE_SENSE/omv_boardconfig.mk +++ b/src/omv/boards/ARDUINO_NANO_33_BLE_SENSE/omv_boardconfig.mk @@ -6,7 +6,6 @@ SD=s140 HAL_DIR=hal/nrfx CMSIS_MCU_H='' NRF_SOFTDEV=s140_nrf52_6.1.1 -ARM_MATH=ARM_MATH_CM4 CFLAGS_MCU=NRF52_SERIES OMV_BOARD_EXTRA_CFLAGS = -DCONFIG_GPIO_AS_PINRESET -DNRF52840_XXAA -DSOFTDEVICE_PRESENT -DBLUETOOTH_SD_DEBUG=1 -DBLUETOOTH_SD=140 VECT_TAB_OFFSET=0x26000 diff --git a/src/omv/boards/ARDUINO_NICLA_VISION/omv_boardconfig.mk b/src/omv/boards/ARDUINO_NICLA_VISION/omv_boardconfig.mk index cfdb27f84..c3374443f 100755 --- a/src/omv/boards/ARDUINO_NICLA_VISION/omv_boardconfig.mk +++ b/src/omv/boards/ARDUINO_NICLA_VISION/omv_boardconfig.mk @@ -3,7 +3,6 @@ CPU=cortex-m7 FPU=fpv5-sp-d16 PORT=stm32 HAL_DIR=hal/stm32/h7 -ARM_MATH=ARM_MATH_CM7 HAL_INC='' CMSIS_MCU_H='' CFLAGS_MCU=MCU_SERIES_H7 diff --git a/src/omv/boards/ARDUINO_PORTENTA_H7/omv_boardconfig.mk b/src/omv/boards/ARDUINO_PORTENTA_H7/omv_boardconfig.mk index a0e0bc5de..45df25028 100755 --- a/src/omv/boards/ARDUINO_PORTENTA_H7/omv_boardconfig.mk +++ b/src/omv/boards/ARDUINO_PORTENTA_H7/omv_boardconfig.mk @@ -3,7 +3,6 @@ CPU=cortex-m7 FPU=fpv5-sp-d16 PORT=stm32 HAL_DIR=hal/stm32/h7 -ARM_MATH=ARM_MATH_CM7 HAL_INC='' CMSIS_MCU_H='' CFLAGS_MCU=MCU_SERIES_H7 diff --git a/src/omv/boards/OPENMV1/omv_boardconfig.mk b/src/omv/boards/OPENMV1/omv_boardconfig.mk index 627e42443..990e52fdf 100755 --- a/src/omv/boards/OPENMV1/omv_boardconfig.mk +++ b/src/omv/boards/OPENMV1/omv_boardconfig.mk @@ -3,7 +3,6 @@ CPU=cortex-m4 FPU=fpv4-sp-d16 PORT=stm32 HAL_DIR=hal/stm32/f4 -ARM_MATH=ARM_MATH_CM4 HAL_INC='' CFLAGS_MCU=MCU_SERIES_F4 OMV_BOARD_EXTRA_CFLAGS=-DUSE_USB_FS diff --git a/src/omv/boards/OPENMV2/omv_boardconfig.mk b/src/omv/boards/OPENMV2/omv_boardconfig.mk index dd045f668..ba8dab982 100755 --- a/src/omv/boards/OPENMV2/omv_boardconfig.mk +++ b/src/omv/boards/OPENMV2/omv_boardconfig.mk @@ -3,7 +3,6 @@ CPU=cortex-m4 FPU=fpv4-sp-d16 PORT=stm32 HAL_DIR=hal/stm32/f4 -ARM_MATH=ARM_MATH_CM4 HAL_INC='' CMSIS_MCU_H='' CFLAGS_MCU=MCU_SERIES_F4 diff --git a/src/omv/boards/OPENMV3/omv_boardconfig.mk b/src/omv/boards/OPENMV3/omv_boardconfig.mk index 1e5690e41..398f0c6e1 100755 --- a/src/omv/boards/OPENMV3/omv_boardconfig.mk +++ b/src/omv/boards/OPENMV3/omv_boardconfig.mk @@ -3,7 +3,6 @@ CPU=cortex-m7 FPU=fpv5-sp-d16 PORT=stm32 HAL_DIR=hal/stm32/f7 -ARM_MATH=ARM_MATH_CM7 HAL_INC='' CMSIS_MCU_H='' CFLAGS_MCU=MCU_SERIES_F7 diff --git a/src/omv/boards/OPENMV4/omv_boardconfig.mk b/src/omv/boards/OPENMV4/omv_boardconfig.mk index 93c89415f..6fe2be3af 100755 --- a/src/omv/boards/OPENMV4/omv_boardconfig.mk +++ b/src/omv/boards/OPENMV4/omv_boardconfig.mk @@ -3,7 +3,6 @@ CPU=cortex-m7 FPU=fpv5-sp-d16 PORT=stm32 HAL_DIR=hal/stm32/h7 -ARM_MATH=ARM_MATH_CM7 HAL_INC='' CMSIS_MCU_H='' CFLAGS_MCU=MCU_SERIES_H7 diff --git a/src/omv/boards/OPENMV4P/omv_boardconfig.mk b/src/omv/boards/OPENMV4P/omv_boardconfig.mk index 93c89415f..6fe2be3af 100755 --- a/src/omv/boards/OPENMV4P/omv_boardconfig.mk +++ b/src/omv/boards/OPENMV4P/omv_boardconfig.mk @@ -3,7 +3,6 @@ CPU=cortex-m7 FPU=fpv5-sp-d16 PORT=stm32 HAL_DIR=hal/stm32/h7 -ARM_MATH=ARM_MATH_CM7 HAL_INC='' CMSIS_MCU_H='' CFLAGS_MCU=MCU_SERIES_H7 diff --git a/src/omv/boards/OPENMV4_PRO/omv_boardconfig.mk b/src/omv/boards/OPENMV4_PRO/omv_boardconfig.mk index 9d0bf63c5..120037c91 100755 --- a/src/omv/boards/OPENMV4_PRO/omv_boardconfig.mk +++ b/src/omv/boards/OPENMV4_PRO/omv_boardconfig.mk @@ -3,7 +3,6 @@ CPU=cortex-m7 FPU=fpv5-sp-d16 PORT=stm32 HAL_DIR=hal/stm32/h7 -ARM_MATH=ARM_MATH_CM7 HAL_INC='' CMSIS_MCU_H='' CFLAGS_MCU=MCU_SERIES_H7 diff --git a/src/omv/boards/OPENMVPT/omv_boardconfig.mk b/src/omv/boards/OPENMVPT/omv_boardconfig.mk index 2ce72bea5..e8d44d661 100755 --- a/src/omv/boards/OPENMVPT/omv_boardconfig.mk +++ b/src/omv/boards/OPENMVPT/omv_boardconfig.mk @@ -3,7 +3,6 @@ CPU=cortex-m7 FPU=fpv5-sp-d16 PORT=stm32 HAL_DIR=hal/stm32/h7 -ARM_MATH=ARM_MATH_CM7 HAL_INC='' CMSIS_MCU_H='' CFLAGS_MCU=MCU_SERIES_H7 diff --git a/src/omv/boards/OPENMV_RT1060/omv_boardconfig.mk b/src/omv/boards/OPENMV_RT1060/omv_boardconfig.mk index 53fdaefec..ed5f6b4f5 100755 --- a/src/omv/boards/OPENMV_RT1060/omv_boardconfig.mk +++ b/src/omv/boards/OPENMV_RT1060/omv_boardconfig.mk @@ -6,7 +6,6 @@ FABI=hard PORT=mimxrt HAL_DIR=hal/mimxrt/MIMXRT1062 CMSIS_MCU_H='' -ARM_MATH=ARM_MATH_CM7 OMV_BOARD_EXTRA_CFLAGS=-DBOARD_FLASH_SIZE=0x800000 VECT_TAB_OFFSET=0x0 MAIN_APP_ADDR=0x60000000 diff --git a/src/omv/imlib/apriltag.c b/src/omv/imlib/apriltag.c index 25659f2cf..54ac41511 100644 --- a/src/omv/imlib/apriltag.c +++ b/src/omv/imlib/apriltag.c @@ -10247,7 +10247,7 @@ image_u8_t *threshold(apriltag_detector_t *td, image_u8_t *im) // first, collect min/max statistics for each tile for (int ty = 0; ty < th; ty++) { for (int tx = 0; tx < tw; tx++) { -#if defined( OPTIMIZED ) && (defined(ARM_MATH_CM7) || defined(ARM_MATH_CM4)) +#if defined( OPTIMIZED ) && defined(ARM_MATH_DSP) uint32_t tmp, max32 = 0, min32 = 0xffffffff; for (int dy=0; dy < tilesz; dy++) { uint32_t v = *(uint32_t *)&im->buf[(ty*tilesz+dy)*s + tx*tilesz]; @@ -10416,7 +10416,7 @@ image_u8_t *threshold(apriltag_detector_t *td, image_u8_t *im) fb_free(); // im_min_tmp fb_free(); // im_max_tmp } -#if defined( OPTIMIZED ) && (defined(ARM_MATH_CM7) || defined(ARM_MATH_CM4)) +#if defined( OPTIMIZED ) && defined(ARM_MATH_DSP) if ((s & 0x3) == 0 && tilesz == 4) // if each line is a multiple of 4, we can do this faster { const uint32_t lowcontrast = 0x7f7f7f7f; diff --git a/src/omv/imlib/filter.c b/src/omv/imlib/filter.c index e9049a607..faa10240e 100644 --- a/src/omv/imlib/filter.c +++ b/src/omv/imlib/filter.c @@ -364,7 +364,7 @@ void imlib_mean_filter(image_t *img, const int ksize, bool threshold, int offset #ifdef IMLIB_ENABLE_MEDIAN static uint8_t hist_median(uint8_t *data, int len, const int cutoff) { int i; -#if defined(ARM_MATH_CM7) || defined(ARM_MATH_CM4) +#if defined(ARM_MATH_DSP) uint32_t oldsum = 0, sum32 = 0; for (i = 0; i < len; i += 4) { diff --git a/src/omv/imlib/stereo.c b/src/omv/imlib/stereo.c index 8f6002a47..80c2e7f7a 100644 --- a/src/omv/imlib/stereo.c +++ b/src/omv/imlib/stereo.c @@ -23,7 +23,7 @@ #define BLOCK_SIZE ((BLOCK_W) *(BLOCK_H)) static inline void shift(uint8_t *data, image_t *img, int x, int y) { -#if (defined(ARM_MATH_CM7) || defined(ARM_MATH_CM4)) && (!(BLOCK_SIZE % 4)) +#if defined(ARM_MATH_DSP) && (!(BLOCK_SIZE % 4)) int x_2 = x + BLOCK_W_R; uint32_t *data_32 = (uint32_t *) data; @@ -77,7 +77,7 @@ static inline void shift(uint8_t *data, image_t *img, int x, int y) { static inline uint32_t sad(uint8_t *data_l, uint8_t *data_r) { uint32_t diff = 0; -#if (defined(ARM_MATH_CM7) || defined(ARM_MATH_CM4)) && (!(BLOCK_SIZE % 4)) +#if defined(ARM_MATH_DSP) && (!(BLOCK_SIZE % 4)) uint32_t *data_l_32 = (uint32_t *) data_l; uint32_t *data_r_32 = (uint32_t *) data_r; diff --git a/src/omv/ports/mimxrt/omv_portconfig.mk b/src/omv/ports/mimxrt/omv_portconfig.mk index f1f221787..4fac43f2a 100644 --- a/src/omv/ports/mimxrt/omv_portconfig.mk +++ b/src/omv/ports/mimxrt/omv_portconfig.mk @@ -10,7 +10,7 @@ CFLAGS += -std=gnu99 -Wall -Werror -Warray-bounds -nostartfiles -fdata-sections # TODO: FIX HSE CFLAGS += -DCPU_$(MCU_VARIANT)\ -D$(TARGET)\ - -D$(ARM_MATH) -DARM_NN_TRUNCATE\ + -DARM_NN_TRUNCATE\ -D__FPU_PRESENT=1 -D__VFP_FP__\ -DHSE_VALUE=$(OMV_HSE_VALUE) \ -DMICROPY_PY_MACHINE_SDCARD=1 \ diff --git a/src/omv/ports/nrf/omv_portconfig.mk b/src/omv/ports/nrf/omv_portconfig.mk index 441608d5c..3830c0706 100644 --- a/src/omv/ports/nrf/omv_portconfig.mk +++ b/src/omv/ports/nrf/omv_portconfig.mk @@ -6,7 +6,7 @@ SD_DIR = $(TOP_DIR)/drivers/nrf # Compiler Flags CFLAGS += -std=gnu99 -Wall -Werror -Warray-bounds -mthumb -nostartfiles -fdata-sections -ffunction-sections -CFLAGS += -D$(MCU) -D$(CFLAGS_MCU) -D$(ARM_MATH) -DARM_NN_TRUNCATE -D__FPU_PRESENT=1 -D__VFP_FP__ -D$(TARGET)\ +CFLAGS += -D$(MCU) -D$(CFLAGS_MCU) -DARM_NN_TRUNCATE -D__FPU_PRESENT=1 -D__VFP_FP__ -D$(TARGET)\ -fsingle-precision-constant -Wdouble-promotion -mcpu=$(CPU) -mtune=$(CPU) -mfpu=$(FPU) -mfloat-abi=hard\ -DCMSIS_MCU_H=$(CMSIS_MCU_H) CFLAGS += $(OMV_BOARD_EXTRA_CFLAGS) diff --git a/src/omv/ports/stm32/omv_portconfig.mk b/src/omv/ports/stm32/omv_portconfig.mk index 10e28b472..726e9e8a9 100644 --- a/src/omv/ports/stm32/omv_portconfig.mk +++ b/src/omv/ports/stm32/omv_portconfig.mk @@ -5,7 +5,7 @@ LDSCRIPT ?= stm32fxxx # Compiler Flags CFLAGS += -std=gnu99 -Wall -Werror -Warray-bounds -mthumb -nostartfiles -fdata-sections -ffunction-sections -CFLAGS += -fno-inline-small-functions -D$(MCU) -D$(CFLAGS_MCU) -D$(ARM_MATH) -DARM_NN_TRUNCATE\ +CFLAGS += -fno-inline-small-functions -D$(MCU) -D$(CFLAGS_MCU) -DARM_NN_TRUNCATE\ -fsingle-precision-constant -Wdouble-promotion -mcpu=$(CPU) -mtune=$(CPU) -mfpu=$(FPU) -mfloat-abi=hard CFLAGS += -D__FPU_PRESENT=1 -D__VFP_FP__ -DUSE_DEVICE_MODE -DHSE_VALUE=$(OMV_HSE_VALUE)\ -D$(TARGET) -DVECT_TAB_OFFSET=$(VECT_TAB_OFFSET) -DMAIN_APP_ADDR=$(MAIN_APP_ADDR) -DSTM32_HAL_H=$(HAL_INC)\ @@ -87,7 +87,7 @@ else CM4_CFLAGS += -O2 -DNDEBUG endif CM4_CFLAGS += -std=gnu99 -Wall -Werror -Warray-bounds -mthumb -nostartfiles -fdata-sections -ffunction-sections -CM4_CFLAGS += -D$(MCU) -D$(CFLAGS_MCU) -D$(ARM_MATH) -DARM_NN_TRUNCATE -DCORE_CM4\ +CM4_CFLAGS += -D$(MCU) -D$(CFLAGS_MCU) -DARM_NN_TRUNCATE -DCORE_CM4\ -fsingle-precision-constant -Wdouble-promotion -mcpu=cortex-m4 -mtune=cortex-m4 -mfpu=$(FPU) -mfloat-abi=hard CM4_CFLAGS += -D__FPU_PRESENT=1 -D__VFP_FP__ -DHSE_VALUE=$(OMV_HSE_VALUE)\ -D$(TARGET) -DVECT_TAB_OFFSET=$(M4_VECT_TAB_OFFSET) -DMAIN_APP_ADDR=$(M4_APP_ADDR) -DSTM32_HAL_H=$(HAL_INC)