Hello,
So you mention that the accesses are OR'd, but if the RGD0 gives access rights to read, write, and execute for the entire memory. Based off that, wouldn't I have read, write, and execute accesses for the entire memory?
This isn't what I observe. When I try to read any memory location, I am thrown in to the HardFault_Handler.
// This gives a fault
uint8_t Tester = (*(uint8_t *)0x14000000U;
Even when I set the RGD[0] to give access to everything, M0-M7, I still get faults. I can still write, but I cannot read. Not sure why I can't read any location, but I can write, even when I gave the entire memory access to everything.
Is there also a way to make the region 0 not valid? I don't want to restrict access to the entire 4GB memory region, and I don't want to have issues when with the ORing of right accesses.