From 13c99c6332d8b560dafccaf1542285384cf1fe46 Mon Sep 17 00:00:00 2001 From: iabdalkader Date: Thu, 27 Jun 2024 10:27:54 +0200 Subject: [PATCH] boards/All: Optimize flash/memory usage to support the new TFLM. --- src/omv/boards/ARDUINO_GIGA/imlib_config.h | 2 +- src/omv/boards/ARDUINO_GIGA/omv_boardconfig.h | 11 +++--- .../omv_boardconfig.h | 3 +- .../omv_boardconfig.h | 3 +- .../ARDUINO_NICLA_VISION/omv_boardconfig.h | 35 +++++++++--------- .../boards/ARDUINO_PORTENTA_H7/imlib_config.h | 2 +- .../ARDUINO_PORTENTA_H7/omv_boardconfig.h | 9 +++-- src/omv/boards/OPENMV2/omv_boardconfig.h | 13 ++++--- src/omv/boards/OPENMV3/omv_boardconfig.h | 3 +- src/omv/boards/OPENMV4/omv_boardconfig.h | 37 ++++++++++--------- src/omv/boards/OPENMV4P/omv_boardconfig.h | 5 ++- src/omv/boards/OPENMV4_PRO/omv_boardconfig.h | 3 +- src/omv/boards/OPENMVPT/omv_boardconfig.h | 3 +- .../boards/OPENMV_RT1060/omv_boardconfig.h | 3 +- src/omv/boards/PICO/omv_boardconfig.h | 3 +- 15 files changed, 75 insertions(+), 60 deletions(-) diff --git a/src/omv/boards/ARDUINO_GIGA/imlib_config.h b/src/omv/boards/ARDUINO_GIGA/imlib_config.h index 11a0801c7..2920428d4 100644 --- a/src/omv/boards/ARDUINO_GIGA/imlib_config.h +++ b/src/omv/boards/ARDUINO_GIGA/imlib_config.h @@ -112,7 +112,7 @@ // Enable find_features() and built-in Haar cascades. (75KBs) #define IMLIB_ENABLE_FEATURES #define IMLIB_ENABLE_FEATURES_BUILTIN_FACE_CASCADE -#define IMLIB_ENABLE_FEATURES_BUILTIN_EYES_CASCADE +//#define IMLIB_ENABLE_FEATURES_BUILTIN_EYES_CASCADE // Enable Tensor Flow #if !defined(CUBEAI) diff --git a/src/omv/boards/ARDUINO_GIGA/omv_boardconfig.h b/src/omv/boards/ARDUINO_GIGA/omv_boardconfig.h index 078bb9751..8f772e06a 100644 --- a/src/omv/boards/ARDUINO_GIGA/omv_boardconfig.h +++ b/src/omv/boards/ARDUINO_GIGA/omv_boardconfig.h @@ -107,13 +107,13 @@ // Linker script constants (see the linker script template stm32fxxx.ld.S). // Note: fb_alloc is a stack-based, dynamically allocated memory on FB. // The maximum available fb_alloc memory = FB_ALLOC_SIZE + FB_SIZE - (w*h*bpp). -#define OMV_MAIN_MEMORY SRAM1 // data, bss and heap -#define OMV_DMA_MEMORY SRAM3 // DMA buffers memory. -#define OMV_HEAP_SIZE (199K) +#define OMV_MAIN_MEMORY SRAM1 // Data, BSS memory. +#define OMV_HEAP_MEMORY SRAM1 // Heap memory. +#define OMV_HEAP_SIZE (198K) #define OMV_STACK_MEMORY DTCM // stack memory #define OMV_STACK_SIZE (64K) #define OMV_FB_MEMORY DRAM // Framebuffer, fb_alloc -#define OMV_FB_SIZE (4M) // FB memory: header + VGA/GS image +#define OMV_FB_SIZE (3M) // FB memory: header + VGA/GS image #define OMV_FB_ALLOC_SIZE (2M) // minimum fb alloc size #define OMV_JPEG_MEMORY DRAM // JPEG buffer memory buffer. #define OMV_JPEG_BUF_SIZE (1024 * 1024) // IDE JPEG buffer (header + data). @@ -122,7 +122,8 @@ #define OMV_FB_OVERLAY_MEMORY AXI_SRAM // Fast fb_alloc memory. #define OMV_FB_OVERLAY_SIZE (480K) // Fast fb_alloc memory size. #define OMV_GC_BLOCK0_MEMORY DRAM // Extra GC block 0. -#define OMV_GC_BLOCK0_SIZE (1M) +#define OMV_GC_BLOCK0_SIZE (2M) +#define OMV_DMA_MEMORY SRAM3 // DMA buffers memory. #define OMV_MSC_BUF_SIZE (2K) // USB MSC bot data #define OMV_VFS_BUF_SIZE (1K) // VFS struct + FATFS file buffer (624 bytes) #define OMV_SDRAM_SIZE (8 * 1024 * 1024) // This needs to be here for UVC firmware. diff --git a/src/omv/boards/ARDUINO_NANO_33_BLE_SENSE/omv_boardconfig.h b/src/omv/boards/ARDUINO_NANO_33_BLE_SENSE/omv_boardconfig.h index 7eea685d0..5c4814bf7 100644 --- a/src/omv/boards/ARDUINO_NANO_33_BLE_SENSE/omv_boardconfig.h +++ b/src/omv/boards/ARDUINO_NANO_33_BLE_SENSE/omv_boardconfig.h @@ -47,7 +47,8 @@ #define OMV_USB1_IRQ_HANDLER (USBD_IRQHandler) // Linker script constants (see the linker script template port/x.ld.S). -#define OMV_MAIN_MEMORY SRAM // data, bss and heap memory +#define OMV_MAIN_MEMORY SRAM // Data, BSS memory +#define OMV_HEAP_MEMORY SRAM // Heap memory #define OMV_HEAP_SIZE (64K) #define OMV_STACK_MEMORY SRAM // stack memory #define OMV_STACK_SIZE (8K) diff --git a/src/omv/boards/ARDUINO_NANO_RP2040_CONNECT/omv_boardconfig.h b/src/omv/boards/ARDUINO_NANO_RP2040_CONNECT/omv_boardconfig.h index 356101e0d..53b4ec689 100644 --- a/src/omv/boards/ARDUINO_NANO_RP2040_CONNECT/omv_boardconfig.h +++ b/src/omv/boards/ARDUINO_NANO_RP2040_CONNECT/omv_boardconfig.h @@ -46,7 +46,8 @@ extern unsigned char *OMV_BOARD_UID_ADDR; // Unique address. #define OMV_USB1_IRQ_HANDLER (USBD_IRQHandler) // Linker script constants (see the linker script template port/x.ld.S). -#define OMV_MAIN_MEMORY RAM // data, bss and heap memory +#define OMV_MAIN_MEMORY RAM // Data/BSS memory +#define OMV_HEAP_MEMORY RAM // Heap memory #define OMV_HEAP_SIZE (60 * 1024) // MicroPython's heap #define OMV_STACK_MEMORY RAM // stack memory #define OMV_STACK_SIZE (16K) diff --git a/src/omv/boards/ARDUINO_NICLA_VISION/omv_boardconfig.h b/src/omv/boards/ARDUINO_NICLA_VISION/omv_boardconfig.h index 8f8dfd961..9abcd2003 100644 --- a/src/omv/boards/ARDUINO_NICLA_VISION/omv_boardconfig.h +++ b/src/omv/boards/ARDUINO_NICLA_VISION/omv_boardconfig.h @@ -100,18 +100,21 @@ // Linker script constants (see the linker script template stm32fxxx.ld.S). // Note: fb_alloc is a stack-based, dynamically allocated memory on FB. // The maximum available fb_alloc memory = FB_ALLOC_SIZE + FB_SIZE - (w*h*bpp). -#define OMV_MAIN_MEMORY SRAM1 // data, bss and heap -#define OMV_DMA_MEMORY SRAM2 // DMA buffers memory. -#define OMV_HEAP_SIZE (181K) +#define OMV_MAIN_MEMORY DTCM // Data/BSS memory. +#define OMV_HEAP_MEMORY ITCM // Heap memory +#define OMV_HEAP_SIZE (64K) #define OMV_STACK_MEMORY DTCM // stack memory -#define OMV_STACK_SIZE (64K) +#define OMV_STACK_SIZE (32K) #define OMV_FB_MEMORY AXI_SRAM // Framebuffer, fb_alloc #define OMV_FB_SIZE (400K) // FB memory: header + VGA/GS image #define OMV_FB_ALLOC_SIZE (100K) // minimum fb alloc size -#define OMV_JPEG_MEMORY SRAM3 // JPEG buffer memory buffer. +#define OMV_JPEG_MEMORY SRAM4 // JPEG buffer memory buffer. #define OMV_JPEG_BUF_SIZE (32 * 1024) // IDE JPEG buffer (header + data). -#define OMV_VOSPI_MEMORY SRAM4 // VoSPI frame buffer memory. -#define OMV_VOSPI_MEMORY_OFFSET (20K) // SRAM4 reserves 16K for CM4 + 4K D3 DMA buffers. +#define OMV_GC_BLOCK0_MEMORY SRAM1 // Extra GC block 0. +#define OMV_GC_BLOCK0_SIZE (276K) +#define OMV_GC_BLOCK1_MEMORY SRAM4 // Extra GC block 0. +#define OMV_GC_BLOCK1_SIZE (32K) +#define OMV_DMA_MEMORY SRAM2 // DMA buffers memory. #define OMV_MSC_BUF_SIZE (2K) // USB MSC bot data #define OMV_VFS_BUF_SIZE (1K) // VFS struct + FATFS file buffer (624 bytes) #define OMV_LINE_BUF_SIZE (3 * 1024) // Image line buffer round(640 * 2BPP * 2 buffers). @@ -124,11 +127,9 @@ #define OMV_ITCM_ORIGIN 0x00000000 #define OMV_ITCM_LENGTH 64K #define OMV_SRAM1_ORIGIN 0x30000000 -#define OMV_SRAM1_LENGTH 240K -#define OMV_SRAM2_ORIGIN 0x3003C000 // 16KB of SRAM1 -#define OMV_SRAM2_LENGTH 16K -#define OMV_SRAM3_ORIGIN 0x30040000 -#define OMV_SRAM3_LENGTH 32K +#define OMV_SRAM1_LENGTH 276K +#define OMV_SRAM2_ORIGIN 0x30045000 +#define OMV_SRAM2_LENGTH 12K #define OMV_SRAM4_ORIGIN 0x38000000 #define OMV_SRAM4_LENGTH 64K #define OMV_AXI_SRAM_ORIGIN 0x24000000 @@ -154,15 +155,15 @@ // Domain 2 DMA buffers region. #define OMV_DMA_MEMORY_D2 SRAM2 -#define OMV_DMA_MEMORY_D2_SIZE (4 * 1024) // Reserved memory for DMA buffers +#define OMV_DMA_MEMORY_D2_SIZE (1 * 1024) // Reserved memory for DMA buffers #define OMV_DMA_REGION_D2_BASE (OMV_SRAM2_ORIGIN + (0 * 1024)) #define OMV_DMA_REGION_D2_SIZE MPU_REGION_SIZE_16KB // Domain 3 DMA buffers region. -#define OMV_DMA_MEMORY_D3 SRAM4 -#define OMV_DMA_MEMORY_D3_SIZE (4 * 1024) // Reserved memory for DMA buffers -#define OMV_DMA_REGION_D3_BASE (OMV_SRAM4_ORIGIN + (16 * 1024)) -#define OMV_DMA_REGION_D3_SIZE MPU_REGION_SIZE_4KB +// #define OMV_DMA_MEMORY_D3 SRAM4 +// #define OMV_DMA_MEMORY_D3_SIZE (4 * 1024) // Reserved memory for DMA buffers +// #define OMV_DMA_REGION_D3_BASE (OMV_SRAM4_ORIGIN + (60 * 1024)) +// #define OMV_DMA_REGION_D3_SIZE MPU_REGION_SIZE_4KB // MDMA configuration #define OMV_MDMA_CHANNEL_DCMI_0 (0) diff --git a/src/omv/boards/ARDUINO_PORTENTA_H7/imlib_config.h b/src/omv/boards/ARDUINO_PORTENTA_H7/imlib_config.h index aa3685df8..0ebb275d3 100644 --- a/src/omv/boards/ARDUINO_PORTENTA_H7/imlib_config.h +++ b/src/omv/boards/ARDUINO_PORTENTA_H7/imlib_config.h @@ -112,7 +112,7 @@ // Enable find_features() and built-in Haar cascades. (75KBs) #define IMLIB_ENABLE_FEATURES #define IMLIB_ENABLE_FEATURES_BUILTIN_FACE_CASCADE -#define IMLIB_ENABLE_FEATURES_BUILTIN_EYES_CASCADE +//#define IMLIB_ENABLE_FEATURES_BUILTIN_EYES_CASCADE // Enable Tensor Flow #if !defined(CUBEAI) diff --git a/src/omv/boards/ARDUINO_PORTENTA_H7/omv_boardconfig.h b/src/omv/boards/ARDUINO_PORTENTA_H7/omv_boardconfig.h index 4b0640cb9..4cc98b73e 100644 --- a/src/omv/boards/ARDUINO_PORTENTA_H7/omv_boardconfig.h +++ b/src/omv/boards/ARDUINO_PORTENTA_H7/omv_boardconfig.h @@ -108,21 +108,22 @@ // Linker script constants (see the linker script template stm32fxxx.ld.S). // Note: fb_alloc is a stack-based, dynamically allocated memory on FB. // The maximum available fb_alloc memory = FB_ALLOC_SIZE + FB_SIZE - (w*h*bpp). -#define OMV_MAIN_MEMORY SRAM1 // data, bss and heap -#define OMV_DMA_MEMORY SRAM3 // DMA buffers memory. +#define OMV_MAIN_MEMORY SRAM1 // Data/BSS memory +#define OMV_HEAP_MEMORY SRAM1 // Heap memory #define OMV_HEAP_SIZE (160K) #define OMV_STACK_MEMORY DTCM // stack memory #define OMV_STACK_SIZE (64K) #define OMV_FB_MEMORY DRAM // Framebuffer, fb_alloc -#define OMV_FB_SIZE (4M) // FB memory: header + VGA/GS image +#define OMV_FB_SIZE (3M) // FB memory: header + VGA/GS image #define OMV_FB_ALLOC_SIZE (2M) // minimum fb alloc size #define OMV_FB_OVERLAY_MEMORY AXI_SRAM // Fast fb_alloc memory. #define OMV_FB_OVERLAY_SIZE (480K) // Fast fb_alloc memory size. #define OMV_JPEG_MEMORY DRAM // JPEG buffer memory buffer. #define OMV_JPEG_BUF_SIZE (1024 * 1024) // IDE JPEG buffer (header + data). #define OMV_GC_BLOCK0_MEMORY DRAM // Extra GC block 0. -#define OMV_GC_BLOCK0_SIZE (1M) +#define OMV_GC_BLOCK0_SIZE (2M) #define OMV_VOSPI_MEMORY SRAM4 // VoSPI buffer memory. +#define OMV_DMA_MEMORY SRAM3 // DMA buffers memory. #define OMV_MSC_BUF_SIZE (2K) // USB MSC bot data #define OMV_VFS_BUF_SIZE (1K) // VFS struct + FATFS file buffer (624 bytes) #define OMV_SDRAM_SIZE (8 * 1024 * 1024) // This needs to be here for UVC firmware. diff --git a/src/omv/boards/OPENMV2/omv_boardconfig.h b/src/omv/boards/OPENMV2/omv_boardconfig.h index fea334b6b..7ea6f8a5b 100644 --- a/src/omv/boards/OPENMV2/omv_boardconfig.h +++ b/src/omv/boards/OPENMV2/omv_boardconfig.h @@ -62,17 +62,18 @@ // Note: fb_alloc is a stack-based, dynamically allocated memory on FB. // The maximum available fb_alloc memory = FB_ALLOC_SIZE + FB_SIZE - (w*h*bpp). // Note: fb_alloc overwrites the line buffer which is only used during readout. -#define OMV_MAIN_MEMORY DTCM // data, bss and heap memory -#define OMV_DMA_MEMORY SRAM2 // Misc DMA buffers -#define OMV_HEAP_SIZE (47K) -#define OMV_STACK_MEMORY DTCM // stack memory +#define OMV_MAIN_MEMORY DTCM // Data/BSS memory +#define OMV_HEAP_MEMORY DTCM // Heap memory +#define OMV_HEAP_SIZE (46K) +#define OMV_STACK_MEMORY DTCM // stack memory #define OMV_STACK_SIZE (8K) #define OMV_FB_MEMORY SRAM1 // Framebuffer, fb_alloc #define OMV_FB_SIZE (152K) // FB memory: header + QVGA/GS image #define OMV_FB_ALLOC_SIZE (10K) // minimum fb alloc size #define OMV_JPEG_BUF_SIZE (8 * 1024) // IDE JPEG buffer size (header + data). -#define OMV_MSC_BUF_SIZE (2K) // USB MSC bot data -#define OMV_VFS_BUF_SIZE (1K) // VFS struct + FATFS file buffer (624 bytes) +#define OMV_DMA_MEMORY SRAM2 // Misc DMA buffers +#define OMV_MSC_BUF_SIZE (2K) // USB MSC bot data +#define OMV_VFS_BUF_SIZE (1K) // VFS struct + FATFS file buffer (624 bytes) #define OMV_FFS_BUF_SIZE (16K) // Flash filesystem cache #define OMV_LINE_BUF_SIZE (2 * 1024) // Image line buffer round(320 * 2BPP * 2 buffers). diff --git a/src/omv/boards/OPENMV3/omv_boardconfig.h b/src/omv/boards/OPENMV3/omv_boardconfig.h index 0adef39bf..8d212714e 100644 --- a/src/omv/boards/OPENMV3/omv_boardconfig.h +++ b/src/omv/boards/OPENMV3/omv_boardconfig.h @@ -61,7 +61,8 @@ // Linker script constants (see the linker script template stm32fxxx.ld.S). // Note: fb_alloc is a stack-based, dynamically allocated memory on FB. // The maximum available fb_alloc memory = FB_ALLOC_SIZE + FB_SIZE - (w*h*bpp). -#define OMV_MAIN_MEMORY DTCM // data, bss and heap +#define OMV_MAIN_MEMORY DTCM // Data/BSS memory +#define OMV_HEAP_MEMORY DTCM // Heap memory #define OMV_HEAP_SIZE (55K) #define OMV_STACK_MEMORY ITCM // stack memory #define OMV_STACK_SIZE (16K) diff --git a/src/omv/boards/OPENMV4/omv_boardconfig.h b/src/omv/boards/OPENMV4/omv_boardconfig.h index f40a26c09..94ddfb329 100644 --- a/src/omv/boards/OPENMV4/omv_boardconfig.h +++ b/src/omv/boards/OPENMV4/omv_boardconfig.h @@ -114,21 +114,24 @@ // Linker script constants (see the linker script template stm32fxxx.ld.S). // Note: fb_alloc is a stack-based, dynamically allocated memory on FB. // The maximum available fb_alloc memory = FB_ALLOC_SIZE + FB_SIZE - (w*h*bpp). -#define OMV_MAIN_MEMORY SRAM1 // data, bss and heap memory -#define OMV_HEAP_SIZE (228K) -#define OMV_STACK_MEMORY ITCM // stack memory +#define OMV_MAIN_MEMORY SRAM1 // Data/BSS memory +#define OMV_HEAP_MEMORY SRAM1 // Heap memory +#define OMV_HEAP_SIZE (230K) +#define OMV_STACK_MEMORY ITCM // stack memory #define OMV_STACK_SIZE (64K) -#define OMV_FB_MEMORY AXI_SRAM // Framebuffer, fb_alloc -#define OMV_FB_SIZE (400K) // FB memory: header + VGA/GS image -#define OMV_FB_ALLOC_SIZE (100K) // minimum fb alloc size -#define OMV_JPEG_MEMORY SRAM3 // JPEG buffer memory. +#define OMV_FB_MEMORY AXI_SRAM // Framebuffer, fb_alloc +#define OMV_FB_SIZE (400K) // FB memory: header + VGA/GS image +#define OMV_FB_ALLOC_SIZE (50K) // minimum fb alloc size +#define OMV_JPEG_MEMORY SRAM3 // JPEG buffer memory. #define OMV_JPEG_BUF_SIZE (32 * 1024) // IDE JPEG buffer (header + data). -#define OMV_DMA_MEMORY SRAM2 // DMA buffers memory. +#define OMV_GC_BLOCK0_MEMORY AXI_SRAM // Extra GC block 0. +#define OMV_GC_BLOCK0_SIZE (50K) #define OMV_VOSPI_MEMORY SRAM4 // VoSPI buffer memory. -#define OMV_FFS_MEMORY DTCM // Flash filesystem cache memory -#define OMV_MSC_BUF_SIZE (2K) // USB MSC bot data -#define OMV_VFS_BUF_SIZE (1K) // VFS struct + FATFS file buffer (624 bytes) -#define OMV_LINE_BUF_SIZE (5 * 1024) // Image line buffer. +#define OMV_DMA_MEMORY SRAM2 // DMA buffers memory. +#define OMV_FFS_MEMORY DTCM // Flash filesystem cache memory +#define OMV_MSC_BUF_SIZE (2K) // USB MSC bot data +#define OMV_VFS_BUF_SIZE (1K) // VFS struct + FATFS file buffer (624 bytes) +#define OMV_LINE_BUF_SIZE (3 * 1024) // Image line buffer round(640 * 2BPP * 2 buffers). // Memory map. #define OMV_FLASH_ORIGIN 0x08000000 @@ -138,9 +141,9 @@ #define OMV_ITCM_ORIGIN 0x00000000 #define OMV_ITCM_LENGTH 64K #define OMV_SRAM1_ORIGIN 0x30000000 -#define OMV_SRAM1_LENGTH 240K -#define OMV_SRAM2_ORIGIN 0x3003C000 // 16KB of SRAM1 -#define OMV_SRAM2_LENGTH 16K +#define OMV_SRAM1_LENGTH 248K +#define OMV_SRAM2_ORIGIN 0x3003E000 // 16KB of SRAM1 +#define OMV_SRAM2_LENGTH 8K #define OMV_SRAM3_ORIGIN 0x30040000 #define OMV_SRAM3_LENGTH 32K #define OMV_SRAM4_ORIGIN 0x38000000 @@ -162,9 +165,9 @@ // Domain 2 DMA buffers region. #define OMV_DMA_MEMORY_D2 SRAM2 -#define OMV_DMA_MEMORY_D2_SIZE (6 * 1024) // Reserved memory for DMA buffers +#define OMV_DMA_MEMORY_D2_SIZE (1 * 1024) // Reserved memory for DMA buffers #define OMV_DMA_REGION_D2_BASE (OMV_SRAM2_ORIGIN + (0 * 1024)) -#define OMV_DMA_REGION_D2_SIZE MPU_REGION_SIZE_16KB +#define OMV_DMA_REGION_D2_SIZE MPU_REGION_SIZE_8KB // Domain 3 DMA buffers region. //#define OMV_DMA_MEMORY_D3 SRAM4 diff --git a/src/omv/boards/OPENMV4P/omv_boardconfig.h b/src/omv/boards/OPENMV4P/omv_boardconfig.h index 93fb8ef1e..31c25ccca 100644 --- a/src/omv/boards/OPENMV4P/omv_boardconfig.h +++ b/src/omv/boards/OPENMV4P/omv_boardconfig.h @@ -115,8 +115,9 @@ // Linker script constants (see the linker script template stm32fxxx.ld.S). // Note: fb_alloc is a stack-based, dynamically allocated memory on FB. // The maximum available fb_alloc memory = FB_ALLOC_SIZE + FB_SIZE - (w*h*bpp). -#define OMV_MAIN_MEMORY SRAM1 // data, bss and heap -#define OMV_HEAP_SIZE (240K) +#define OMV_MAIN_MEMORY SRAM1 // Data/BSS memory +#define OMV_HEAP_MEMORY SRAM1 // Heap memory +#define OMV_HEAP_SIZE (239K) #define OMV_STACK_MEMORY ITCM // stack memory #define OMV_STACK_SIZE (64K) #define OMV_FB_MEMORY DRAM // Framebuffer, fb_alloc diff --git a/src/omv/boards/OPENMV4_PRO/omv_boardconfig.h b/src/omv/boards/OPENMV4_PRO/omv_boardconfig.h index b75501f40..b68b61e67 100644 --- a/src/omv/boards/OPENMV4_PRO/omv_boardconfig.h +++ b/src/omv/boards/OPENMV4_PRO/omv_boardconfig.h @@ -125,7 +125,8 @@ // Linker script constants (see the linker script template stm32fxxx.ld.S). // Note: fb_alloc is a stack-based, dynamically allocated memory on FB. // The maximum available fb_alloc memory = FB_ALLOC_SIZE + FB_SIZE - (w*h*bpp). -#define OMV_MAIN_MEMORY SRAM1 // data, bss and heap +#define OMV_MAIN_MEMORY SRAM1 // Data/BSS memory +#define OMV_HEAP_MEMORY SRAM1 // Heap memory #define OMV_HEAP_SIZE (196K) #define OMV_STACK_MEMORY ITCM // stack memory #define OMV_STACK_SIZE (64K) diff --git a/src/omv/boards/OPENMVPT/omv_boardconfig.h b/src/omv/boards/OPENMVPT/omv_boardconfig.h index 45b0a368e..cb4b44e63 100644 --- a/src/omv/boards/OPENMVPT/omv_boardconfig.h +++ b/src/omv/boards/OPENMVPT/omv_boardconfig.h @@ -107,7 +107,8 @@ // Linker script constants (see the linker script template stm32fxxx.ld.S). // Note: fb_alloc is a stack-based, dynamically allocated memory on FB. // The maximum available fb_alloc memory = FB_ALLOC_SIZE + FB_SIZE - (w*h*bpp). -#define OMV_MAIN_MEMORY SRAM1 // data, bss and heap +#define OMV_MAIN_MEMORY SRAM1 // Data/BSS memory +#define OMV_HEAP_MEMORY SRAM1 // Heap memory #define OMV_HEAP_SIZE (250K) #define OMV_STACK_MEMORY ITCM // stack memory #define OMV_STACK_SIZE (64K) diff --git a/src/omv/boards/OPENMV_RT1060/omv_boardconfig.h b/src/omv/boards/OPENMV_RT1060/omv_boardconfig.h index edf2ed301..9b5019737 100644 --- a/src/omv/boards/OPENMV_RT1060/omv_boardconfig.h +++ b/src/omv/boards/OPENMV_RT1060/omv_boardconfig.h @@ -73,7 +73,8 @@ // Linker script constants (see the linker script template mimxrt10xx.ld.S). // Note: fb_alloc is a stack-based, dynamically allocated memory on FB. // The maximum available fb_alloc memory = FB_ALLOC_SIZE + FB_SIZE - (w*h*bpp). -#define OMV_MAIN_MEMORY DTCM // data, bss and heap memory +#define OMV_MAIN_MEMORY DTCM // Data/BSS memory +#define OMV_HEAP_MEMORY DTCM // Heap memory #define OMV_HEAP_SIZE (284K) #define OMV_STACK_MEMORY ITCM1 // stack memory #define OMV_STACK_SIZE (32K) diff --git a/src/omv/boards/PICO/omv_boardconfig.h b/src/omv/boards/PICO/omv_boardconfig.h index 5f1db3572..e48b5bbfd 100644 --- a/src/omv/boards/PICO/omv_boardconfig.h +++ b/src/omv/boards/PICO/omv_boardconfig.h @@ -46,7 +46,8 @@ extern unsigned char *OMV_BOARD_UID_ADDR; // Unique ID address. #define OMV_USB1_IRQ_HANDLER (USBD_IRQHandler) // Linker script constants (see the linker script template port/x.ld.S). -#define OMV_MAIN_MEMORY RAM // data, bss and heap memory +#define OMV_MAIN_MEMORY RAM // Data/BSS memory +#define OMV_HEAP_MEMORY RAM // Heap memory #define OMV_HEAP_SIZE (32 * 1024) // MicroPython's heap #define OMV_STACK_MEMORY RAM // stack memory #define OMV_STACK_SIZE (8K)