We meet a trouble when using DMA,We trigger the DMA to transfer data at a frequency of 160khz continuously, 32bytes per minor loop, During this time, if the flash programming operation occurs synchronously, an Instruction Fetch Error will be set,then code run away.
following is the description of the error register and DMA process diagram.
Detailed information is on page 414 of MPC5744 UM.
Through the debugger Trace32 we can see the instructions in the following section is destroyed by someting we do not know,When the program executes “g_u32_FlashProgramStart”,a function of EEPROM Emulation Software Driver
We wonder that if it is beyond the maximum capacity of the internal bus when DMA transferation and the flash programming operation occurs synchronously?
or we use the DMA in a wrong way?
How can we do to avoid such an error?