cancel
Showing results for 
Search instead for 
Did you mean: 

Flash Memory HAL Drivers for Read and Write in stm32wb55 series.

We need dedicated drivers for Flash memory Read and Write operations dedicatedly. In example project given the just Read a 32-bit word data only. If we want to read the entire page or part of the page data and verification is there any driver layer available, please share to us.

1 ACCEPTED SOLUTION

Accepted Solutions
Remy ISSALYS
ST Employee

Hello,

You can look BLE_RfWithFlash example which allow to erase and write a number of flash sector configurable in app_conf.h file.

Best Regards

View solution in original post

6 REPLIES 6
Remy ISSALYS
ST Employee

Hello,

You can look BLE_RfWithFlash example which allow to erase and write a number of flash sector configurable in app_conf.h file.

Best Regards

Hi Remy,

Thanks for your reply. It is very much helpful to us to write a Flash application.

Regards,

Srinivas.V

Hi Remy,

We have Started using the BLE_RfWithFlash example code in my project. While using this code, it is hanged at below function.

void UTIL_SEQ_WaitEvt(UTIL_SEQ_bm_t EvtId_bm)

while ((EvtSet & EvtId_bm) == 0U)

 {

   UTIL_SEQ_EvtIdle(wait_task_idx, EvtId_bm). and it is not coming out from this loop.

 }, EvtSet value is always zero only.

we have added the flash_driver.c file to my project and I am able to integrate the code. But while execution we are getting the above issue.

Apart from the flash_driver.c file, we need to do any other changes in terms of configuration settings and sequencer related changes.

Regards,

Srinivas.V

Hello,

The CPU2 will prevent all flash activity (write or erase) in all cases when the BL RF Idle is shorter than 25ms. If your connection interval is shorter than 25 ms, you can't perform flash activity, maybe that's why you are hanged in WaitEvt function.

Best Regards

Hi Remy,

Thanks for your reply. We are not doing the any BL RF Operations at that event. But still, we are not getting the EvtSet Value, it is always zero only. Is there any way to check why it is not set or is there any way to know the who is blocking this event. So that we release this Event at that instance. Due this it is always going to Idle state and not executing the Flash operations.

Need more info on this Events, who is setting and who is blocking these events.

Regards,

Srinivas

Hello,

I think it's around SHCI_C2_FLASH_EraseActivity called in flash_driver.c but there isn't any reason if your connection interval is greater than 25 ms.

Best Regards