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

fs_store data lost after power off

Hi

I'm using fs_storage function to read and write in flash memory. Value successfully stored in evt->store.p_data but after power off it value become 0

switch(evt->id)
    {
        case FS_EVT_STORE:
            if(result == FS_SUCCESS)
            {
                stored_data = evt->store.p_data;
            }
    }

I'm using sdk11 with nrf528122.

Parents
  • Here is my code snippet

    //flash storage handler 
    static void fs_evt_handler(fs_evt_t const * const evt, fs_ret_t result)
    {
        switch(evt->id)
        {
            case FS_EVT_STORE:
                if(result == FS_SUCCESS)
                {
                    stored_data = evt->store.p_data;
    	        SEGGER_RTT_printf(0,"\n evt_stored_data : %x",*stored_data );
                }
                break;
    
            case FS_EVT_ERASE:
                // Handle erase event
                break;
    
            default:
                //Do nothing
    				           
                break;
    
        }
    }
    
    //Flash config
         FS_REGISTER_CFG(fs_config_t fs_config) =
         {
    		.callback  = fs_evt_handler,    // Function for event callbacks.
    		.num_pages = 1,                 // Number of physical flash pages required.
    		.priority  = 0xFE               // Priority for flash usage.
         };
    
    //flash store 
      ret = fs_store(&fs_config, fs_config.p_start_addr, &f_data, 1);
      fs_ret_t ret = fs_init();						//Flash storage init
    

    //For reading data from flash I'm calling same function and try to access data from *stored_data pointer (without erasing this will give me last value stored in flash)

    {
    		ret = fs_store(&fs_config, fs_config.p_start_addr, &f_data, 1);
    		SEGGER_RTT_printf(0,"\n Main evt_Flash_Data stored : %d",*stored_data );
                f_data= *stored_data;
    }
    
Reply
  • Here is my code snippet

    //flash storage handler 
    static void fs_evt_handler(fs_evt_t const * const evt, fs_ret_t result)
    {
        switch(evt->id)
        {
            case FS_EVT_STORE:
                if(result == FS_SUCCESS)
                {
                    stored_data = evt->store.p_data;
    	        SEGGER_RTT_printf(0,"\n evt_stored_data : %x",*stored_data );
                }
                break;
    
            case FS_EVT_ERASE:
                // Handle erase event
                break;
    
            default:
                //Do nothing
    				           
                break;
    
        }
    }
    
    //Flash config
         FS_REGISTER_CFG(fs_config_t fs_config) =
         {
    		.callback  = fs_evt_handler,    // Function for event callbacks.
    		.num_pages = 1,                 // Number of physical flash pages required.
    		.priority  = 0xFE               // Priority for flash usage.
         };
    
    //flash store 
      ret = fs_store(&fs_config, fs_config.p_start_addr, &f_data, 1);
      fs_ret_t ret = fs_init();						//Flash storage init
    

    //For reading data from flash I'm calling same function and try to access data from *stored_data pointer (without erasing this will give me last value stored in flash)

    {
    		ret = fs_store(&fs_config, fs_config.p_start_addr, &f_data, 1);
    		SEGGER_RTT_printf(0,"\n Main evt_Flash_Data stored : %d",*stored_data );
                f_data= *stored_data;
    }
    
Children
No Data
Related