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

Get data from BLE and write to flash memory using pstorage

Hi,

I am having trouble to use flash to store data.

First, I write function and scan beacon, get information from this beacon and save to flash

I use a timer for saving data to flash but it is not work, I always get the error code = 0x00000010. It means "invalid flag". How can I solve this problem?

Thanks and regard

Parents
  • 0x00000010 is not 'Invalid Flag', invalid flag is error 10 decimal, that's error 0x10 hex which is 16 decimal which is Bad Memory Address.

    That tells you that source_data_1 isn't aligned.

    All the other advice about checking error codes is sound, you should check them all every single time. And I doubt there was ever a 'conflict' between pstorage and the beacon_event_handler, you can most likely fix the actual error now you know the difference between decimal and hex and put the code back the way it was.

  • First, you requested 16*100 = 1600 bytes which is more than a page. I hope you have changed

    #define PSTORAGE_MAX_APPLICATIONS   2   
    

    Second, I am not big expert in timeslots, but looks like beacon_evt_handler is called with highest priority 0X00, hence you cannot make any sd_flash_xx calls, which means that pstorage does not work in this context. It will hardfault if you try to call any sd_xxx calls at this priority. I am not sure if timeslots can be called with priority less than SVC, i will have to comeback with that information.

Reply
  • First, you requested 16*100 = 1600 bytes which is more than a page. I hope you have changed

    #define PSTORAGE_MAX_APPLICATIONS   2   
    

    Second, I am not big expert in timeslots, but looks like beacon_evt_handler is called with highest priority 0X00, hence you cannot make any sd_flash_xx calls, which means that pstorage does not work in this context. It will hardfault if you try to call any sd_xxx calls at this priority. I am not sure if timeslots can be called with priority less than SVC, i will have to comeback with that information.

Children
No Data
Related