Hello forum team,
I have implemented a DMA MPU self test to check if the MPU works as expected.
I defined a 64 bit word as destination region (MPU region 0), and the first two DMA configuration registers as source region (MPU region 1). Source region is read only. If I configure destination region as read/write, the two DMA configuration registers are copied by DMA to the destination region.
Now I changed the destination region to "no access". I expect that ESM1.2 flag should be set. But it isn't. I see the following settings:
0. The destination region is not written as expected.
1. The fault flag in destination region status register DMAMPST is set (DMAMPS[0].REG0FT is 1) as expected.
2. The corresponding interrupt is enabled (DMAMPCTRL[0].INT0ENA is 1. More exactly DMAMPCTRL[0] = 0x0000030F).
3. The CP15 performance monitor register is 9x41141810. ie. event bus is enabled with bit 4 in this register.
4. The corresponding IRQ in ESM register ESMIESR1 is 1 (ESMIESR1 = 0x140000AC, ESM group 1, channel 2 is enabled).
I wonder why ESM1.2 is not set. Maybe I have forgotten to set some register?
I have used the same DMA setting in a device TMS570LS4357, if the destination is writable, no byte is written. Is there any difference between TMS570LS2135 and TMS570LS4357 which I shall take into consideration?
Thank you!
Best regards,
Libo