mirror of
https://github.com/openmv/openmv.git
synced 2025-11-04 14:49:50 +08:00
ports/stm32: Add support for additional GC blocks.
This commit is contained in:
parent
7aa40047a7
commit
112c753bb5
@ -107,27 +107,26 @@
|
||||
// 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_STACK_MEMORY DTCM // stack memory
|
||||
#define OMV_DMA_MEMORY SRAM3 // DMA buffers memory.
|
||||
#define OMV_FB_MEMORY DRAM // Framebuffer, fb_alloc
|
||||
#define OMV_JPEG_MEMORY DRAM // JPEG buffer memory buffer.
|
||||
#define OMV_JPEG_MEMORY_OFFSET (7M) // JPEG buffer is placed after FB/fballoc memory.
|
||||
#define OMV_VOSPI_MEMORY SRAM4 // VoSPI buffer memory.
|
||||
#define OMV_VOSPI_MEMORY_OFFSET (20K) // SRAM4 reserves 16K for CM4 + 4K D3 DMA buffers.
|
||||
#define OMV_FB_OVERLAY_MEMORY AXI_SRAM // Fast fb_alloc memory.
|
||||
|
||||
#define OMV_FB_SIZE (4M) // FB memory: header + VGA/GS image
|
||||
#define OMV_FB_ALLOC_SIZE (3M) // minimum fb alloc size
|
||||
#define OMV_FB_OVERLAY_SIZE (480 * 1024) // Fast fb_alloc memory size.
|
||||
#define OMV_STACK_SIZE (64K)
|
||||
#define OMV_MAIN_MEMORY SRAM1 // data, bss and heap
|
||||
#define OMV_DMA_MEMORY SRAM3 // DMA buffers memory.
|
||||
#define OMV_HEAP_SIZE (199K)
|
||||
#define OMV_SDRAM_SIZE (8 * 1024 * 1024) // This needs to be here for UVC firmware.
|
||||
|
||||
#define OMV_LINE_BUF_SIZE (11 * 1024) // Image line buffer round(2592 * 2BPP * 2 buffers).
|
||||
#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_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).
|
||||
#define OMV_VOSPI_MEMORY SRAM4 // VoSPI buffer memory.
|
||||
#define OMV_VOSPI_MEMORY_OFFSET (20K) // SRAM4 reserves 16K for CM4 + 4K D3 DMA buffers.
|
||||
#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_MSC_BUF_SIZE (2K) // USB MSC bot data
|
||||
#define OMV_VFS_BUF_SIZE (1K) // VFS struct + FATFS file buffer (624 bytes)
|
||||
#define OMV_JPEG_BUF_SIZE (1024 * 1024) // IDE JPEG buffer (header + data).
|
||||
#define OMV_SDRAM_SIZE (8 * 1024 * 1024) // This needs to be here for UVC firmware.
|
||||
#define OMV_LINE_BUF_SIZE (11 * 1024) // Image line buffer round(2592 * 2BPP * 2 buffers).
|
||||
|
||||
// Memory map.
|
||||
#define OMV_FLASH_ORIGIN 0x08000000
|
||||
|
||||
@ -47,14 +47,13 @@
|
||||
#define OMV_USB1_IRQ_HANDLER (USBD_IRQHandler)
|
||||
|
||||
// Linker script constants (see the linker script template port/x.ld.S).
|
||||
#define OMV_FB_MEMORY SRAM // Framebuffer, fb_alloc
|
||||
#define OMV_MAIN_MEMORY SRAM // data, bss and heap memory
|
||||
#define OMV_HEAP_SIZE (64K)
|
||||
#define OMV_STACK_MEMORY SRAM // stack memory
|
||||
|
||||
#define OMV_STACK_SIZE (8K)
|
||||
#define OMV_FB_MEMORY SRAM // Framebuffer, fb_alloc
|
||||
#define OMV_FB_SIZE (128K) // FB memory: header + QVGA/GS image
|
||||
#define OMV_FB_ALLOC_SIZE (16K) // minimum fb alloc size
|
||||
#define OMV_STACK_SIZE (8K)
|
||||
#define OMV_HEAP_SIZE (64K)
|
||||
#define OMV_JPEG_BUF_SIZE (16 * 1024) // IDE JPEG buffer (header + data).
|
||||
|
||||
#define OMV_TEXT_ORIGIN 0x00026000
|
||||
|
||||
@ -46,14 +46,13 @@ 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_FB_MEMORY RAM // Framebuffer, fb_alloc
|
||||
#define OMV_MAIN_MEMORY RAM // data, bss and heap memory
|
||||
#define OMV_HEAP_SIZE (60 * 1024) // MicroPython's heap
|
||||
#define OMV_STACK_MEMORY RAM // stack memory
|
||||
|
||||
#define OMV_STACK_SIZE (16K)
|
||||
#define OMV_FB_MEMORY RAM // Framebuffer, fb_alloc
|
||||
#define OMV_FB_SIZE (100K) // FB memory
|
||||
#define OMV_FB_ALLOC_SIZE (16K) // minimum fb alloc size
|
||||
#define OMV_STACK_SIZE (16K)
|
||||
#define OMV_HEAP_SIZE (60 * 1024) // MicroPython's heap
|
||||
#define OMV_JPEG_BUF_SIZE (20 * 1024) // IDE JPEG buffer (header + data).
|
||||
|
||||
// GP LED
|
||||
|
||||
@ -100,23 +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_STACK_MEMORY DTCM // stack memory
|
||||
#define OMV_DMA_MEMORY SRAM2 // DMA buffers memory.
|
||||
#define OMV_FB_MEMORY AXI_SRAM // Framebuffer, fb_alloc
|
||||
#define OMV_JPEG_MEMORY SRAM3 // JPEG buffer memory buffer.
|
||||
#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_FB_SIZE (400K) // FB memory: header + VGA/GS image
|
||||
#define OMV_FB_ALLOC_SIZE (100K) // minimum fb alloc size
|
||||
#define OMV_MAIN_MEMORY SRAM1 // data, bss and heap
|
||||
#define OMV_DMA_MEMORY SRAM2 // DMA buffers memory.
|
||||
#define OMV_HEAP_SIZE (181K)
|
||||
#define OMV_STACK_MEMORY DTCM // stack memory
|
||||
#define OMV_STACK_SIZE (64K)
|
||||
#define OMV_HEAP_SIZE (182K)
|
||||
|
||||
#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_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_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).
|
||||
#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_JPEG_BUF_SIZE (32 * 1024) // IDE JPEG buffer (header + data).
|
||||
|
||||
// Memory map.
|
||||
#define OMV_FLASH_ORIGIN 0x08000000
|
||||
|
||||
@ -108,26 +108,25 @@
|
||||
// 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_STACK_MEMORY DTCM // stack memory
|
||||
#define OMV_DMA_MEMORY SRAM3 // DMA buffers memory.
|
||||
#define OMV_FB_MEMORY DRAM // Framebuffer, fb_alloc
|
||||
#define OMV_JPEG_MEMORY DRAM // JPEG buffer memory buffer.
|
||||
#define OMV_JPEG_MEMORY_OFFSET (7M) // JPEG buffer is placed after FB/fballoc memory.
|
||||
#define OMV_VOSPI_MEMORY SRAM4 // VoSPI buffer memory.
|
||||
#define OMV_FB_OVERLAY_MEMORY AXI_SRAM // Fast fb_alloc memory.
|
||||
|
||||
#define OMV_FB_SIZE (4M) // FB memory: header + VGA/GS image
|
||||
#define OMV_FB_ALLOC_SIZE (3M) // minimum fb alloc size
|
||||
#define OMV_FB_OVERLAY_SIZE (480 * 1024) // Fast fb_alloc memory size.
|
||||
#define OMV_STACK_SIZE (64K)
|
||||
#define OMV_MAIN_MEMORY SRAM1 // data, bss and heap
|
||||
#define OMV_DMA_MEMORY SRAM3 // DMA buffers memory.
|
||||
#define OMV_HEAP_SIZE (160K)
|
||||
#define OMV_SDRAM_SIZE (8 * 1024 * 1024) // This needs to be here for UVC firmware.
|
||||
|
||||
#define OMV_LINE_BUF_SIZE (11 * 1024) // Image line buffer round(2592 * 2BPP * 2 buffers).
|
||||
#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_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_VOSPI_MEMORY SRAM4 // VoSPI buffer 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_JPEG_BUF_SIZE (1024 * 1024) // IDE JPEG buffer (header + data).
|
||||
#define OMV_SDRAM_SIZE (8 * 1024 * 1024) // This needs to be here for UVC firmware.
|
||||
#define OMV_LINE_BUF_SIZE (11 * 1024) // Image line buffer round(2592 * 2BPP * 2 buffers).
|
||||
|
||||
// Memory map.
|
||||
#define OMV_FLASH_ORIGIN 0x08000000
|
||||
|
||||
@ -62,21 +62,19 @@
|
||||
// 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_FB_MEMORY SRAM1 // Framebuffer, fb_alloc
|
||||
#define OMV_MAIN_MEMORY DTCM // data, bss and heap memory
|
||||
#define OMV_STACK_MEMORY DTCM // stack memory
|
||||
#define OMV_DMA_MEMORY SRAM2 // Misc DMA buffers
|
||||
|
||||
#define OMV_HEAP_SIZE (47K)
|
||||
#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_STACK_SIZE (8K)
|
||||
#define OMV_HEAP_SIZE (47K)
|
||||
|
||||
#define OMV_LINE_BUF_SIZE (2 * 1024) // Image line buffer round(320 * 2BPP * 2 buffers).
|
||||
#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_FFS_BUF_SIZE (16K) // Flash filesystem cache
|
||||
#define OMV_JPEG_BUF_SIZE (8 * 1024) // IDE JPEG buffer size (header + data).
|
||||
#define OMV_LINE_BUF_SIZE (2 * 1024) // Image line buffer round(320 * 2BPP * 2 buffers).
|
||||
|
||||
// Memory map.
|
||||
#define OMV_FLASH_ORIGIN 0x08000000
|
||||
|
||||
@ -61,21 +61,19 @@
|
||||
// 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_FB_MEMORY SRAM1 // Framebuffer, fb_alloc
|
||||
#define OMV_MAIN_MEMORY DTCM // data, bss and heap
|
||||
#define OMV_HEAP_SIZE (55K)
|
||||
#define OMV_STACK_MEMORY ITCM // stack memory
|
||||
#define OMV_STACK_SIZE (16K)
|
||||
#define OMV_DMA_MEMORY DTCM // Misc DMA buffers
|
||||
|
||||
#define OMV_FB_MEMORY SRAM1 // Framebuffer, fb_alloc
|
||||
#define OMV_FB_SIZE (300K) // FB memory: header + VGA/GS image
|
||||
#define OMV_FB_ALLOC_SIZE (84K) // minimum fb alloc size
|
||||
#define OMV_STACK_SIZE (16K)
|
||||
#define OMV_HEAP_SIZE (55K)
|
||||
|
||||
#define OMV_LINE_BUF_SIZE (3 * 1024) // Image line buffer round(640 * 2BPP * 2 buffers).
|
||||
#define OMV_JPEG_BUF_SIZE (22 * 1024) // IDE JPEG buffer (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_FFS_BUF_SIZE (32K) // Flash filesystem cache
|
||||
#define OMV_JPEG_BUF_SIZE (22 * 1024) // IDE JPEG buffer (header + data).
|
||||
#define OMV_LINE_BUF_SIZE (3 * 1024) // Image line buffer round(640 * 2BPP * 2 buffers).
|
||||
|
||||
// Memory map.
|
||||
#define OMV_FLASH_ORIGIN 0x08000000
|
||||
|
||||
@ -114,23 +114,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_FFS_MEMORY DTCM // Flash filesystem cache memory
|
||||
#define OMV_MAIN_MEMORY SRAM1 // data, bss and heap memory
|
||||
#define OMV_HEAP_SIZE (228K)
|
||||
#define OMV_STACK_MEMORY ITCM // stack memory
|
||||
#define OMV_DMA_MEMORY SRAM2 // DMA buffers memory.
|
||||
#define OMV_STACK_SIZE (64K)
|
||||
#define OMV_FB_MEMORY AXI_SRAM // Framebuffer, fb_alloc
|
||||
#define OMV_JPEG_MEMORY SRAM3 // JPEG buffer memory.
|
||||
#define OMV_VOSPI_MEMORY SRAM4 // VoSPI buffer memory.
|
||||
|
||||
#define OMV_FB_SIZE (400K) // FB memory: header + VGA/GS image
|
||||
#define OMV_FB_ALLOC_SIZE (100K) // minimum fb alloc size
|
||||
#define OMV_STACK_SIZE (64K)
|
||||
#define OMV_HEAP_SIZE (228K)
|
||||
|
||||
#define OMV_LINE_BUF_SIZE (5 * 1024) // Image line buffer.
|
||||
#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_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_JPEG_BUF_SIZE (32 * 1024) // IDE JPEG buffer (header + data).
|
||||
#define OMV_LINE_BUF_SIZE (5 * 1024) // Image line buffer.
|
||||
|
||||
// Memory map.
|
||||
#define OMV_FLASH_ORIGIN 0x08000000
|
||||
|
||||
@ -115,26 +115,25 @@
|
||||
// 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_STACK_MEMORY ITCM // stack memory
|
||||
#define OMV_DMA_MEMORY SRAM3 // Misc DMA buffers memory.
|
||||
#define OMV_FB_MEMORY DRAM // Framebuffer, fb_alloc
|
||||
#define OMV_JPEG_MEMORY DRAM // JPEG buffer memory buffer.
|
||||
#define OMV_JPEG_MEMORY_OFFSET (31M) // JPEG buffer is placed after FB/fballoc memory.
|
||||
#define OMV_VOSPI_MEMORY SRAM4 // VoSPI buffer memory.
|
||||
#define OMV_FB_OVERLAY_MEMORY AXI_SRAM // Fast fb_alloc memory.
|
||||
|
||||
#define OMV_FB_SIZE (20M) // FB memory: header + VGA/GS image
|
||||
#define OMV_FB_ALLOC_SIZE (11M) // minimum fb alloc size
|
||||
#define OMV_FB_OVERLAY_SIZE (496 * 1024) // Fast fb_alloc memory size.
|
||||
#define OMV_STACK_SIZE (64K)
|
||||
#define OMV_MAIN_MEMORY SRAM1 // data, bss and heap
|
||||
#define OMV_HEAP_SIZE (240K)
|
||||
#define OMV_SDRAM_SIZE (32 * 1024 * 1024) // This needs to be here for UVC firmware.
|
||||
|
||||
#define OMV_LINE_BUF_SIZE (11 * 1024) // Image line buffer round(2592 * 2BPP * 2 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_STACK_MEMORY ITCM // stack memory
|
||||
#define OMV_STACK_SIZE (64K)
|
||||
#define OMV_FB_MEMORY DRAM // Framebuffer, fb_alloc
|
||||
#define OMV_FB_SIZE (16M) // FB memory: header + VGA/GS image
|
||||
#define OMV_FB_ALLOC_SIZE (11M) // minimum fb alloc size
|
||||
#define OMV_FB_OVERLAY_MEMORY AXI_SRAM // Fast fb_alloc memory.
|
||||
#define OMV_FB_OVERLAY_SIZE (496K) // 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_DMA_MEMORY SRAM3 // Misc DMA buffers memory.
|
||||
#define OMV_VOSPI_MEMORY SRAM4 // VoSPI buffer memory.
|
||||
#define OMV_GC_BLOCK0_MEMORY DRAM // Extra GC block 0.
|
||||
#define OMV_GC_BLOCK0_SIZE (4M)
|
||||
#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 (32 * 1024 * 1024) // This needs to be here for UVC firmware.
|
||||
#define OMV_LINE_BUF_SIZE (11 * 1024) // Image line buffer round(2592 * 2BPP * 2 buffers).
|
||||
|
||||
// Memory map.
|
||||
#define OMV_FLASH_ORIGIN 0x08000000
|
||||
|
||||
@ -126,29 +126,26 @@
|
||||
// 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_STACK_MEMORY ITCM // stack memory
|
||||
#define OMV_DMA_MEMORY SRAM3 // Misc DMA buffers memory.
|
||||
#define OMV_FB_MEMORY DRAM // Framebuffer, fb_alloc
|
||||
#define OMV_JPEG_MEMORY DRAM // JPEG buffer memory buffer.
|
||||
#define OMV_JPEG_MEMORY_OFFSET (31M) // JPEG buffer is placed after FB/fballoc memory.
|
||||
#define OMV_VOSPI_MEMORY SRAM4 // VoSPI buffer memory.
|
||||
#define OMV_VOSPI_MEMORY_OFFSET (4K) // First 4K reserved for D3 DMA buffers.
|
||||
#define OMV_FB_OVERLAY_MEMORY AXI_SRAM // Fast fb_alloc memory.
|
||||
#define OMV_CYW43_MEMORY FLASH_EXT // CYW43 firmware in external flash mmap'd flash.
|
||||
#define OMV_CYW43_MEMORY_OFFSET (0x90F00000)// Last Mbyte.
|
||||
|
||||
#define OMV_HEAP_SIZE (196K)
|
||||
#define OMV_STACK_MEMORY ITCM // stack memory
|
||||
#define OMV_STACK_SIZE (64K)
|
||||
#define OMV_FB_MEMORY DRAM // Framebuffer, fb_alloc
|
||||
#define OMV_FB_SIZE (20M) // FB memory: header + VGA/GS image
|
||||
#define OMV_FB_ALLOC_SIZE (11M) // minimum fb alloc size
|
||||
#define OMV_FB_OVERLAY_SIZE (496 * 1024) // Fast fb_alloc memory size.
|
||||
#define OMV_STACK_SIZE (64K)
|
||||
#define OMV_HEAP_SIZE (196K)
|
||||
#define OMV_SDRAM_SIZE (32 * 1024 * 1024) // This needs to be here for UVC firmware.
|
||||
|
||||
#define OMV_LINE_BUF_SIZE (11 * 1024) // Image line buffer round(2592 * 2BPP * 2 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_FIR_LEPTON_BUF_SIZE (1K) // FIR Lepton Packet Double Buffer (328 bytes)
|
||||
#define OMV_FB_OVERLAY_MEMORY AXI_SRAM // Fast fb_alloc memory.
|
||||
#define OMV_FB_OVERLAY_SIZE (496K) // 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_DMA_MEMORY SRAM3 // Misc DMA buffers memory.
|
||||
#define OMV_VOSPI_MEMORY SRAM4 // VoSPI buffer memory.
|
||||
#define OMV_VOSPI_MEMORY_OFFSET (4K) // First 4K reserved for D3 DMA buffers.
|
||||
#define OMV_CYW43_MEMORY FLASH_EXT // CYW43 firmware in external flash mmap'd flash.
|
||||
#define OMV_CYW43_MEMORY_OFFSET (0x90F00000)// Last Mbyte.
|
||||
#define OMV_SDRAM_SIZE (32 * 1024 * 1024) // This needs to be here for UVC firmware.
|
||||
#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_FIR_LEPTON_BUF_SIZE (1K) // FIR Lepton Packet Double Buffer (328 bytes)
|
||||
#define OMV_LINE_BUF_SIZE (11 * 1024) // Image line buffer round(2592 * 2BPP * 2 buffers).
|
||||
|
||||
// Memory map.
|
||||
#define OMV_FLASH_ORIGIN 0x08000000
|
||||
|
||||
@ -107,26 +107,25 @@
|
||||
// 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_STACK_MEMORY ITCM // stack memory
|
||||
#define OMV_DMA_MEMORY SRAM3 // DMA buffers memory.
|
||||
#define OMV_FB_MEMORY DRAM // Framebuffer, fb_alloc
|
||||
#define OMV_JPEG_MEMORY DRAM // JPEG buffer memory buffer.
|
||||
#define OMV_JPEG_MEMORY_OFFSET (63M) // JPEG buffer is placed after FB/fballoc memory.
|
||||
#define OMV_VOSPI_MEMORY SRAM4 // VoSPI buffer memory.
|
||||
#define OMV_FB_OVERLAY_MEMORY AXI_SRAM // Fast fb_alloc memory.
|
||||
|
||||
#define OMV_FB_SIZE (32M) // FB memory: header + VGA/GS image
|
||||
#define OMV_FB_ALLOC_SIZE (31M) // minimum fb alloc size
|
||||
#define OMV_FB_OVERLAY_SIZE (496 * 1024) // Fast fb_alloc memory size.
|
||||
#define OMV_STACK_SIZE (64K)
|
||||
#define OMV_MAIN_MEMORY SRAM1 // data, bss and heap
|
||||
#define OMV_HEAP_SIZE (250K)
|
||||
#define OMV_SDRAM_SIZE (64 * 1024 * 1024) // This needs to be here for UVC firmware.
|
||||
|
||||
#define OMV_LINE_BUF_SIZE (11 * 1024) // Image line buffer round(2592 * 2BPP * 2 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_STACK_MEMORY ITCM // stack memory
|
||||
#define OMV_STACK_SIZE (64K)
|
||||
#define OMV_FB_MEMORY DRAM // Framebuffer, fb_alloc
|
||||
#define OMV_FB_SIZE (32M) // FB memory: header + VGA/GS image
|
||||
#define OMV_FB_ALLOC_SIZE (23M) // minimum fb alloc size
|
||||
#define OMV_FB_OVERLAY_MEMORY AXI_SRAM // Fast fb_alloc memory.
|
||||
#define OMV_FB_OVERLAY_SIZE (496K) // 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 (8M)
|
||||
#define OMV_DMA_MEMORY SRAM3 // DMA buffers memory.
|
||||
#define OMV_VOSPI_MEMORY SRAM4 // VoSPI buffer memory.
|
||||
#define OMV_SDRAM_SIZE (64 * 1024 * 1024) // This needs to be here for UVC firmware.
|
||||
#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 (11 * 1024) // Image line buffer round(2592 * 2BPP * 2 buffers).
|
||||
|
||||
// Memory map.
|
||||
#define OMV_FLASH_ORIGIN 0x08000000
|
||||
|
||||
@ -46,15 +46,14 @@ 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_FB_MEMORY RAM // Framebuffer, fb_alloc
|
||||
#define OMV_MAIN_MEMORY RAM // data, bss and heap memory
|
||||
#define OMV_STACK_MEMORY RAM // stack memory
|
||||
|
||||
#define OMV_FB_SIZE (151K) // FB memory: header + QVGA/GS image
|
||||
#define OMV_FB_ALLOC_SIZE (12K) // minimum fb alloc size
|
||||
#define OMV_MAIN_MEMORY RAM // data, bss and heap memory
|
||||
#define OMV_HEAP_SIZE (32 * 1024) // MicroPython's heap
|
||||
#define OMV_STACK_MEMORY RAM // stack memory
|
||||
#define OMV_STACK_SIZE (8K)
|
||||
#define OMV_HEAP_SIZE (32 * 1024) // MicroPython's heap
|
||||
#define OMV_JPEG_BUF_SIZE (20 * 1024) // IDE JPEG buffer (header + data).
|
||||
#define OMV_FB_MEMORY RAM // Framebuffer, fb_alloc
|
||||
#define OMV_FB_SIZE (151K) // FB memory: header + QVGA/GS image
|
||||
#define OMV_FB_ALLOC_SIZE (12K) // minimum fb alloc size
|
||||
#define OMV_JPEG_BUF_SIZE (20 * 1024) // IDE JPEG buffer (header + data).
|
||||
|
||||
// GP LED
|
||||
#define OMV_LED_PIN (25)
|
||||
|
||||
@ -93,7 +93,7 @@
|
||||
|
||||
#include "extmod/vfs.h"
|
||||
#include "extmod/vfs_fat.h"
|
||||
#include "boot_utils.h"
|
||||
#include "mp_utils.h"
|
||||
|
||||
int errno;
|
||||
extern char _vfs_buf[];
|
||||
@ -273,13 +273,8 @@ soft_reset:
|
||||
mp_thread_init();
|
||||
#endif
|
||||
|
||||
// Stack limit should be less than real stack size, so we have a
|
||||
// chance to recover from limit hit. (Limit is measured in bytes)
|
||||
mp_stack_set_top(&_estack);
|
||||
mp_stack_set_limit((char *) &_estack - (char *) &_sstack - 1024);
|
||||
|
||||
// GC init
|
||||
gc_init(&_heap_start, &_heap_end);
|
||||
// Initialize the stack and GC memory.
|
||||
mp_init_gc_stack(&_sstack, &_estack, &_heap_start, &_heap_end, 1024);
|
||||
|
||||
#if MICROPY_ENABLE_PYSTACK
|
||||
static mp_obj_t pystack[384];
|
||||
@ -405,7 +400,7 @@ soft_reset:
|
||||
if (res == FR_NO_FILESYSTEM) {
|
||||
// Create a fresh filesystem.
|
||||
led_state(LED_RED, 1);
|
||||
bootutils_init_filesystem(vfs_fat);
|
||||
mp_init_filesystem(vfs_fat);
|
||||
led_state(LED_RED, 0);
|
||||
// Flush storage
|
||||
storage_flush();
|
||||
@ -480,11 +475,11 @@ else {
|
||||
|
||||
|
||||
// Run boot.py script.
|
||||
bool interrupted = bootutils_exec_bootscript("boot.py", true, false);
|
||||
bool interrupted = mp_exec_bootscript("boot.py", true, false);
|
||||
|
||||
// Run main.py script on first soft-reset.
|
||||
if (first_soft_reset && !interrupted && mp_vfs_import_stat("main.py")) {
|
||||
bootutils_exec_bootscript("main.py", true, openmv_config.wifidbg);
|
||||
mp_exec_bootscript("main.py", true, openmv_config.wifidbg);
|
||||
goto soft_reset_exit;
|
||||
}
|
||||
|
||||
|
||||
@ -6,5 +6,6 @@
|
||||
fb_alloc_free_till_mark(); \
|
||||
} while (0);
|
||||
|
||||
#define MICROPY_GC_SPLIT_HEAP (1)
|
||||
#define MICROPY_PY_SOCKET_EXTENDED_STATE (1)
|
||||
#define MICROPY_BANNER_NAME_AND_VERSION "OpenMV " OPENMV_GIT_TAG "; MicroPython " MICROPY_GIT_TAG
|
||||
|
||||
@ -154,7 +154,7 @@ FIRM_OBJ += $(addprefix $(BUILD)/$(OMV_DIR)/common/, \
|
||||
pendsv.o \
|
||||
usbdbg.o \
|
||||
file_utils.o \
|
||||
boot_utils.o \
|
||||
mp_utils.o \
|
||||
sensor_utils.o \
|
||||
)
|
||||
|
||||
@ -253,7 +253,6 @@ FIRM_OBJ += $(addprefix $(BUILD)/$(MICROPY_DIR)/,\
|
||||
usb.o \
|
||||
usrsw.o \
|
||||
eth.o \
|
||||
gccollect.o \
|
||||
help.o \
|
||||
flash.o \
|
||||
flashbdev.o \
|
||||
|
||||
@ -56,13 +56,6 @@ _ram_end = ORIGIN(OMV_MAIN_MEMORY) + LENGTH(OMV_MAIN_MEMORY);
|
||||
_cm4_ram_start = ORIGIN(CM4_SRAM);
|
||||
#endif
|
||||
|
||||
#if defined(OMV_JPEG_MEMORY)
|
||||
#if !defined(OMV_JPEG_MEMORY_OFFSET)
|
||||
#define OMV_JPEG_MEMORY_OFFSET (0)
|
||||
#endif
|
||||
_jpeg_buf = ORIGIN(OMV_JPEG_MEMORY) + OMV_JPEG_MEMORY_OFFSET;
|
||||
#endif
|
||||
|
||||
#if defined(OMV_VOSPI_MEMORY)
|
||||
#if !defined(OMV_VOSPI_MEMORY_OFFSET)
|
||||
#define OMV_VOSPI_MEMORY_OFFSET (0)
|
||||
@ -111,6 +104,27 @@ SECTIONS
|
||||
/* used by the startup to initialize data */
|
||||
_sidata = LOADADDR(.data);
|
||||
|
||||
#if defined(OMV_GC_BLOCK0_MEMORY)
|
||||
.gc_block0 (NOLOAD) :
|
||||
{
|
||||
. = ALIGN(4);
|
||||
. += OMV_GC_BLOCK0_SIZE;
|
||||
. = ALIGN(4);
|
||||
} >OMV_GC_BLOCK0_MEMORY
|
||||
#endif
|
||||
|
||||
.gc_blocks_table :
|
||||
{
|
||||
. = ALIGN(4);
|
||||
_gc_blocks_table_start = .;
|
||||
#if defined(OMV_GC_BLOCK0_MEMORY)
|
||||
LONG (ADDR(.gc_block0))
|
||||
LONG (SIZEOF(.gc_block0) / 4)
|
||||
#endif
|
||||
_gc_blocks_table_end = .;
|
||||
. = ALIGN(4);
|
||||
} > FLASH_TEXT
|
||||
|
||||
/* Main framebuffer memory */
|
||||
.fb_memory (NOLOAD) :
|
||||
{
|
||||
@ -136,6 +150,17 @@ SECTIONS
|
||||
} >OMV_FB_OVERLAY_MEMORY
|
||||
#endif
|
||||
|
||||
#if defined(OMV_JPEG_MEMORY)
|
||||
/* JPEG framebuffer memory */
|
||||
.jpeg_memory (NOLOAD) :
|
||||
{
|
||||
. = ALIGN(4);
|
||||
_jpeg_buf = .; // IDE JPEG buffer
|
||||
. = . + OMV_JPEG_BUF_SIZE;
|
||||
. = ALIGN(4);
|
||||
} >OMV_JPEG_MEMORY
|
||||
#endif
|
||||
|
||||
/* Misc DMA buffers section */
|
||||
.dma_memory (NOLOAD) :
|
||||
{
|
||||
|
||||
@ -51,13 +51,6 @@ _ram_end = ORIGIN(OMV_MAIN_MEMORY) + LENGTH(OMV_MAIN_MEMORY);
|
||||
_ffs_cache = ORIGIN(OMV_FFS_MEMORY) + OMV_FFS_MEMORY_OFFSET;
|
||||
#endif
|
||||
|
||||
#if defined(OMV_JPEG_MEMORY)
|
||||
#if !defined(OMV_JPEG_MEMORY_OFFSET)
|
||||
#define OMV_JPEG_MEMORY_OFFSET (0)
|
||||
#endif
|
||||
_jpeg_buf = ORIGIN(OMV_JPEG_MEMORY) + OMV_JPEG_MEMORY_OFFSET;
|
||||
#endif
|
||||
|
||||
#if defined(OMV_VOSPI_MEMORY)
|
||||
#if !defined(OMV_VOSPI_MEMORY_OFFSET)
|
||||
#define OMV_VOSPI_MEMORY_OFFSET (0)
|
||||
@ -113,6 +106,17 @@ SECTIONS
|
||||
} >OMV_FB_OVERLAY_MEMORY
|
||||
#endif
|
||||
|
||||
#if defined(OMV_JPEG_MEMORY)
|
||||
/* JPEG framebuffer memory */
|
||||
.jpeg_memory (NOLOAD) :
|
||||
{
|
||||
. = ALIGN(4);
|
||||
_jpeg_buf = .; // IDE JPEG buffer
|
||||
. = . + OMV_JPEG_BUF_SIZE;
|
||||
. = ALIGN(4);
|
||||
} >OMV_JPEG_MEMORY
|
||||
#endif
|
||||
|
||||
/* Misc DMA buffers section */
|
||||
.dma_memory (NOLOAD) :
|
||||
{
|
||||
|
||||
Loading…
Reference in New Issue
Block a user