2018-05-16 03:50 PM
In AN4838 it states on page 7/16:
The STM32F7 Series and
STM32H7 Series do not support hardware coherency. the S field is equivalent to non-cacheable memory.
Aside from the typo, I find this information to be confusing. Does this mean that in F/H7 series devices that the S bit determines the cache behavior and is inter changeable with the C bit? Or is it ignored? Or is the S field and the S bit two different things?
Please clarify?
Solved! Go to Solution.
2018-05-18 05:02 AM
Yes, correct.
2018-05-17 04:07 AM
Hello
greenwood.greg
,The Shared attribute S is handled differently between Cortex-A and Cortex-M: In cortex-A, enabling S bit will enable Hardware coherency. However, cortex-Mdoesn’t support Hardware coherency snooping. So,enabling the S bit will automatically disable the cache.
Khouloud.
2018-05-17 11:20 AM
So then using a statement like:
MPU_InitStruct.IsShareable = MPU_ACCESS_SHAREABLE;
will override:
MPU_InitStruct.IsCacheable = MPU_ACCESS_CACHEABLE;
in the same region making that region NOT cacheable.
In the same vein:
MPU_InitStruct.IsCacheable = MPU_ACCESS_NOT_CACHEABLE;
MPU_InitStruct.IsShareable = MPU_ACCESS_SHAREABLE;
in the same region is redundant.
Would that be correct?
2018-05-18 05:02 AM
Yes, correct.