What happens if you try to use pstorage_load from an empty handle? What value does it load? Is there a way to check if the pstorage handle is empty?
What happens if you try to use pstorage_load from an empty handle? What value does it load? Is there a way to check if the pstorage handle is empty?
Hi sbailes
The pstorage handle represents the physical memory address that is read or written to. If the handle->block_id = 0x0003F400 and you pass that handle to a load function, you will read the specified number of bytes from 0x0003F400 and onwards. How pstorage allocates physical memory is documented on this thread.
So I suspect if the handle is empty with handle->block_id = 0x00000000, then you will attempt to read physical memory address 0x00000000.
I dont find any pstorage function to check if the handle is empty or not. What you could do is to initialize the handle->block_id to 0. Then when you have called pstorage_register, check if the handle->block_id is non zero, then pstorage has written to it surely. But when looking at the implementation of the pstorage_register function, handle->block_id is always written if the pstorage_register call returns NRF_SUCCESS, so you could check that as well.
I dont find any pstorage function to check if the handle is empty or not. What you could do is to initialize the handle->block_id to 0. Then when you have called pstorage_register, check if the handle->block_id is non zero, then pstorage has written to it surely. But when looking at the implementation of the pstorage_register function, handle->block_id is always written if the pstorage_register call returns NRF_SUCCESS, so you could check that as well.