I'm trying to look for some improvements to writing to internal flash on the MPC5674. Currently to write large amounts of data we're having to suspend write operations, and resume regular program flow until we have enough time to continue writing to flash, and repeat this process. This is due to the fact that writing can take up to 500us, according to the datasheet, which is too long to write large multi-KB data without pausing to process other events.
From my understanding it's not possible to write more than 128 (or 256) bits at once, so is there another way of increasing write speeds?
this must be solved on application level. The solution is to start program/erase operation and then continue your regular program flow. Do not wait until the operation is completed. Check the result of operation later somewhere in your program flow. This solution expects that you do not need to access the partition which is being erased/programmed. If it is necessary, you would have to suspend/resume the operation.
It is the principle of asynchronous flash drivers. SSD flash drivers for new MPC57xx family use this approach - FlashProgram function is used to start the program operation but the function does not wait for result. It is necessary to use FlashCheckStatus function to get the result (and initiate next sub-operations).
SSD flash drivers for MPC56xx are synchronous, so the functions wait until the operation is completed.