2024-04-09 07:31 AM
Hello all,
We're having some 'strange behaviour' when interfacing our STM32F7 to a FPGA over the FMC bus. To isolate the problems, we're looking at all the control/addr/data on the FMC bus during memory transactions. We have a very good view into everything via the Lattice Reveal tool. The FPGA has 16-bit data bus, and we only want to access one register/memory location at a time.
Any insight welcome. If you want us to post more detail, please ask. Thanks all!!
Solved! Go to Solution.
2024-04-10 01:19 AM - edited 2024-04-10 01:33 AM
Hello,
And what if you configure that memory region as Device attribute using MPU? What happens?
2024-04-10 01:19 AM - edited 2024-04-10 01:33 AM
Hello,
And what if you configure that memory region as Device attribute using MPU? What happens?
2024-04-11 03:44 AM
After using MPU to setup region with all features disabled, it acts normally now. We can read single 16-bit address now. But please note there is no 'Device' attribute, we just disable all cache permissions, instruction access, etc.
2024-04-11 04:04 AM
There is no implicit/direct confing for Device attribute:
MPU attributes are defined by their settings (as you did).
What you set is the Strongly-Ordered attribute would also solve the problem as Device attribute.
See this table from the AN4838.
2024-04-11 07:19 AM - edited 2024-04-11 07:20 AM
@SofLit So in context of this question, what is better: "shared device" (TEX=0) or "non-shareable device" (TEX=2) ?