i had used flash manager that is in BLE libraries to store datas for persistent storage. but it seems can't work after i enable the softdevice. so i try to use pstorage, i would like to know is pstorage for Persistent Storage(write/read datas )?
can anyone give me a help? this is my code:
static void example_cb_handler(pstorage_handle_t * handle,
uint8_t op_code,
uint32_t result,
uint8_t * p_data,
uint32_t data_len){
switch(op_code)
{
case PSTORAGE_LOAD_OP_CODE:
if (result == NRF_SUCCESS)
{
// Store operation successful.
}
else
{
// Store operation failed.
}
// Source memory can now be reused or freed.
break;
case PSTORAGE_UPDATE_OP_CODE:
if (result == NRF_SUCCESS)
{
// Update operation successful.
}
else
{
// Update operation failed.
}
break;
case PSTORAGE_CLEAR_OP_CODE:
if (result == NRF_SUCCESS)
{
// Clear operation successful.
}
else
{
// Clear operation failed.
}
break;
}
}
static pstorage_handle_t m_p_example_id;
int main (void){... APP_SCHED_INIT(sizeof(uint32_t), 16); ble_stack_init();
pstorage_module_param_t p_example_param;
p_example_param.block_size = 32;//0x10; // recommended to be >= 4 byte
p_example_param.block_count = 1;//60;
p_example_param.cb = example_cb_handler;
uint16_t dummy_block = 0;
// Must be static as the pstorage module processes the queue asynchronously
static uint8_t dummy_data[16] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 };
uint16_t dummy_size = 16;
uint16_t dummy_offset = 0;
pstorage_handle_t p_block_id;
uint8_t load_data[16];
err_code = pstorage_init();
APP_ERROR_CHECK(err_code);
err_code = pstorage_register (&p_example_param, &m_p_example_id);
APP_ERROR_CHECK(err_code);
err_code = pstorage_clear(&m_p_example_id, 32*1);
APP_ERROR_CHECK(err_code);
err_code = pstorage_block_identifier_get(&m_p_example_id, dummy_block, &p_block_id);
APP_ERROR_CHECK(err_code);
err_code = pstorage_store(&p_block_id, dummy_data, dummy_size, dummy_offset);
APP_ERROR_CHECK(err_code);
err_code = pstorage_load(load_data, &p_block_id, dummy_size, dummy_offset);
APP_ERROR_CHECK(err_code);
}
it can load data, but can't clear and store datas. what's the promble?