I have been examining the X-CUBE-EEPRMA1 codebase and noticed a couple of issues with the code that is causing delays in the firmware:
- m95xx.c. Line 344 "pObj->IO.Delay(6);". Is the 6 ms delay necessary? In line 353, the system checks if the chip is ready before proceeding to writing to the next page. Ref: Code Reference
- m95xx.c. Line 353 "while( pObj->IO.IsReady( pObj->IO.Address ) != M95_OK ) {};". Shouldn't the check for if the chip is ready be done before writing to it? Additionally, if a single page write is required, this would have cause an unnecessary delay. Ref: Code Ref