ROM - Memory Report

Hello everybody,

I am doing some optimizations on the code due to I am at 94% of used of the ROM (I am using DFU).

When I created the memory report, I realized that there is a part called No Path that demads more than a half of the rom.

My questions are:

1. What does No Path refer to?

2. Is it possible to reduce its size?

Thank you in advace for your help.

Leonardo Santa

Parents
  • Hi Leonardo,

    Could you share a picture of the same after expanding the dropdown option for No Paths?

    Best Regards,

    Priyanka

  • Hi dear Priyanka,

    As you will see in the image, there are a lot of small files.

  • Hi Leonardo,

    This does seem to take a lot of memory. Could you let me know which sample/application you have used so that I can try to replicate this?

    -Priyanka

  • Hi Priyanka,

    I took the example from  Add DFU support to your application and I added some modifications.

    I have also realized that when I add some lines at the prj.conf the No Path memory usage increased drastically:

    1. CONFIG_MCUMGR_SMP_BT=y increases around 62kb the flash usage in the No Paths memory report.

    2.CONFIG_BT_CENTRAL=y increases around 45kb the flash usage in the No Paths memory report.

    My prj.conf looks like this:

    # Enable GPIO
    CONFIG_GPIO=y
    CONFIG_GPIO_AS_PINRESET=y
    
    # ENABLE UART
    CONFIG_SERIAL=y
    CONFIG_UART_CONSOLE=n
    CONFIG_UART_ASYNC_API=y
    CONFIG_NRFX_UARTE0=n
    CONFIG_UART_0_ASYNC=y
    CONFIG_UART_INTERRUPT_DRIVEN=n
    CONFIG_UART_0_INTERRUPT_DRIVEN=n
    CONFIG_UART_USE_RUNTIME_CONFIGURE=y
    CONFIG_NEWLIB_LIBC_FLOAT_PRINTF=n
    CONFIG_CBPRINTF_FP_SUPPORT=n
    CONFIG_LOG=n
    
    # Enable POWER SAVE
    CONFIG_PM_DEVICE=y
    CONFIG_NRFX_POWER=y
    
    # Enable LP_TIMER (RTC)
    CONFIG_NRFX_RTC0=n
    CONFIG_NRFX_RTC1=n
    CONFIG_NRFX_RTC2=y
    
    # Enable CLOCK
    CONFIG_NRFX_CLOCK=n
    CONFIG_CMU_HFCLK_HFRCO=n
    
    # DFU settings
    CONFIG_MCUMGR=y
    CONFIG_MCUMGR_CMD_IMG_MGMT=y
    CONFIG_MCUMGR_CMD_OS_MGMT=y
    CONFIG_BOOTLOADER_MCUBOOT=y
    CONFIG_SPEED_OPTIMIZATIONS=y
    CONFIG_BT_L2CAP_TX_MTU=252
    CONFIG_BT_BUF_ACL_RX_SIZE=256
    CONFIG_MCUMGR_SMP_BT=y
    CONFIG_MCUMGR_SMP_BT_AUTHEN=n
    CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=4096
    
    # Enable BLUETOOTH
    CONFIG_BT=y
    CONFIG_BT_SMP=y
    CONFIG_BT_CENTRAL=y
    #CONFIG_BT_PERIPHERAL=y
    CONFIG_BT_DEVICE_NAME="GATEWAY_MI"
    CONFIG_BT_CTLR_PHY_CODED=y
    CONFIG_BT_EXT_ADV=y
    #CONFIG_BT_SCAN=y
    CONFIG_BT_CTLR_TX_PWR_DYNAMIC_CONTROL=n
    CONFIG_BT_EXT_ADV_MAX_ADV_SET=1
    CONFIG_BT_SCAN_FILTER_ENABLE=y
    CONFIG_BT_SCAN_ADDRESS_CNT=5
    
    # Heap memory pool 256/1024/4096/16384
    CONFIG_HEAP_MEM_POOL_SIZE=4096
    CONFIG_NEWLIB_LIBC_MIN_REQUIRED_HEAP_SIZE=2048
    
    # C++ config
    CONFIG_NEWLIB_LIBC=y
    CONFIG_MINIMAL_LIBC=n
    CONFIG_CPLUSPLUS=y
    ##CONFIG_STD_CPP2A=y
    ##CONFIG_LIB_CPLUSPLUS=y
    ##CONFIG_NEWLIB_LIBC_NANO=n
    
    # disable features not needed
    CONFIG_DEBUG=n
    CONFIG_MDIO=n
    CONFIG_PRINTK=n

Reply
  • Hi Priyanka,

    I took the example from  Add DFU support to your application and I added some modifications.

    I have also realized that when I add some lines at the prj.conf the No Path memory usage increased drastically:

    1. CONFIG_MCUMGR_SMP_BT=y increases around 62kb the flash usage in the No Paths memory report.

    2.CONFIG_BT_CENTRAL=y increases around 45kb the flash usage in the No Paths memory report.

    My prj.conf looks like this:

    # Enable GPIO
    CONFIG_GPIO=y
    CONFIG_GPIO_AS_PINRESET=y
    
    # ENABLE UART
    CONFIG_SERIAL=y
    CONFIG_UART_CONSOLE=n
    CONFIG_UART_ASYNC_API=y
    CONFIG_NRFX_UARTE0=n
    CONFIG_UART_0_ASYNC=y
    CONFIG_UART_INTERRUPT_DRIVEN=n
    CONFIG_UART_0_INTERRUPT_DRIVEN=n
    CONFIG_UART_USE_RUNTIME_CONFIGURE=y
    CONFIG_NEWLIB_LIBC_FLOAT_PRINTF=n
    CONFIG_CBPRINTF_FP_SUPPORT=n
    CONFIG_LOG=n
    
    # Enable POWER SAVE
    CONFIG_PM_DEVICE=y
    CONFIG_NRFX_POWER=y
    
    # Enable LP_TIMER (RTC)
    CONFIG_NRFX_RTC0=n
    CONFIG_NRFX_RTC1=n
    CONFIG_NRFX_RTC2=y
    
    # Enable CLOCK
    CONFIG_NRFX_CLOCK=n
    CONFIG_CMU_HFCLK_HFRCO=n
    
    # DFU settings
    CONFIG_MCUMGR=y
    CONFIG_MCUMGR_CMD_IMG_MGMT=y
    CONFIG_MCUMGR_CMD_OS_MGMT=y
    CONFIG_BOOTLOADER_MCUBOOT=y
    CONFIG_SPEED_OPTIMIZATIONS=y
    CONFIG_BT_L2CAP_TX_MTU=252
    CONFIG_BT_BUF_ACL_RX_SIZE=256
    CONFIG_MCUMGR_SMP_BT=y
    CONFIG_MCUMGR_SMP_BT_AUTHEN=n
    CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=4096
    
    # Enable BLUETOOTH
    CONFIG_BT=y
    CONFIG_BT_SMP=y
    CONFIG_BT_CENTRAL=y
    #CONFIG_BT_PERIPHERAL=y
    CONFIG_BT_DEVICE_NAME="GATEWAY_MI"
    CONFIG_BT_CTLR_PHY_CODED=y
    CONFIG_BT_EXT_ADV=y
    #CONFIG_BT_SCAN=y
    CONFIG_BT_CTLR_TX_PWR_DYNAMIC_CONTROL=n
    CONFIG_BT_EXT_ADV_MAX_ADV_SET=1
    CONFIG_BT_SCAN_FILTER_ENABLE=y
    CONFIG_BT_SCAN_ADDRESS_CNT=5
    
    # Heap memory pool 256/1024/4096/16384
    CONFIG_HEAP_MEM_POOL_SIZE=4096
    CONFIG_NEWLIB_LIBC_MIN_REQUIRED_HEAP_SIZE=2048
    
    # C++ config
    CONFIG_NEWLIB_LIBC=y
    CONFIG_MINIMAL_LIBC=n
    CONFIG_CPLUSPLUS=y
    ##CONFIG_STD_CPP2A=y
    ##CONFIG_LIB_CPLUSPLUS=y
    ##CONFIG_NEWLIB_LIBC_NANO=n
    
    # disable features not needed
    CONFIG_DEBUG=n
    CONFIG_MDIO=n
    CONFIG_PRINTK=n

Children
Related