cancel
Showing results for 
Search instead for 
Did you mean: 

Why does MemManage Fault occur in ITCM?

Mapyam
Associate II

Hi,

​MemManage Fault occured in ITCM when I changed the system clock and DMA channel.

Does ITCM cause errors? What are the causes of errors?

Any ideas?

I changed below:

system clock: 480MHz→400MHz

DMA: DMA2_Stream1 →BDMA_channel0

0693W00000QMuYHQA1.png0693W00000QMuYRQA1.png

3 REPLIES 3
Pavel A.
Evangelist III

Does the program just disable access to addresses near 0 in MPU, to trap null pointers dereference?

ConfigMPU() would certainly be something to review, or enable/disable in a bisection of the offending code. Could also isolate to specific slots within the MPU

Shouldn't be cache related as this is TCM

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
Mapyam
Associate II

>ConfigMPU() would certainly be something to review,

Does this mean I need to enable access to ITCM(0x0000'0000 ~) on the MPU?

For example, can data overflow from another area (like SRAM4 area) and access the ITCM area? Similar posts on ST Community seem to indicate that "memcpy" write data to unintended areas.

​<https://community.st.com/s/question/0D50X0000AvfBVKSQ2/random-hardfault-bug-with-stm32f730>​