This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

flash manager not working before mesh_init in proxy_server main.c

Hi,

I want to store some data into flash and need to read before calling gap_params_init() in proxy_server demo.

1) when I am initializing flash manager using flash_manager_init() before mesh_init() in main.c getting below error

app_error_weak.c,   95, Mesh assert at 0x0002DC42 (:0)

2) when I am initializing flash manager after mesh_init() it is working fine.

can any guide me to use flash manager before setting advertisement data (gap_params_init())?

Thanks,

Pintu

Parents
  • Hi,

    When you initialize flash manager using flash_manager_init() before mesh_init(), which error code are you getting?

  • Hi,

    I am getting this error app_error_weak.c,   95, Mesh assert at 0x0002DC42 (:0) when calling below API in sequence sometime its work sometime getting error

    flash_manager_init();

    app_flash_init();

    From flash_helper.c

    void app_flash_init(void)
    {

        static fm_mem_listener_t flash_add_mem_available_struct = {
            .callback = flash_manager_mem_available,
            .p_args = app_flash_init
        };
        
        const uint32_t * start_address;
        uint32_t allocated_area_size;
        ERROR_CHECK(mesh_stack_persistence_flash_usage(&start_address, &allocated_area_size));

        flash_manager_config_t manager_config;
        manager_config.write_complete_cb = flash_write_complete;
        manager_config.invalidate_complete_cb = flash_invalidate_complete;
        manager_config.remove_complete_cb = flash_remove_complete;
        manager_config.min_available_space = WORD_SIZE;
        manager_config.p_area = (const flash_manager_page_t *)((uint32_t)start_address - PAGE_SIZE * APP_FLASH_PAGE_COUNT);
        manager_config.page_count = APP_FLASH_PAGE_COUNT;

    uint32_t status = flash_manager_add(&m_flash_manager, &manager_config);
        if (NRF_SUCCESS != status)
        {
            flash_manager_mem_listener_register(&flash_add_mem_available_struct);
            __LOG(LOG_SRC_APP, LOG_LEVEL_ERROR, "Unable to add flash manager for app data\n");
        }
    }  

    I have doubt of calculating manager_config.p_area, I am using flash area which is already occupy by mesh stack? if yes can you help to how to get free flash area to store my custom data in flash.

    Regards,

    Pintu

Reply Children
No Data
Related