I am new in ARM and I am trying to understand the theory behind address translation in order to generate an address size fault at different levels. I know that during the process from virtual address to physical address translation the Long-descriptor translation table format descriptors are involved. Observing the formats "Block" and "Table" for level 1 and 2 and the format "Page" for level 3, if bits [47:40] are not zero then a translation that uses the descriptor will generate an Address size fault.
What I don't understand is why the bits [47:40] will not be zero, that is, if I am working in C and a page of RAM need to be allocaded, what possible reason would cause those bits to be set to a non-zero value?
I appreciate your help, thanks.
View all questions in Cortex-M / M-Profile forum